<!--
Copyright 2013 The Chromium Authors. All rights reserved.
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

For brief details on how to modify this file to add your description, see
https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/one-pager.md

Please pretty-print and validate your edits by running the pretty_print.py
and validate_format.py scripts in the same directory as this file before
uploading your change for review.
-->

<histogram-configuration>

<!-- Histogram definitions -->

<histograms>

<histogram name="Accessibility.Android.AnimationsEnabled" enum="BooleanEnabled"
    expires_after="2019-11-02">
  <obsolete>
    Deprecated 11/2018 because a need was discovered for a non-boolean value.
    Superseded by Accessibility.Android.AnimationsEnabled2.
  </obsolete>
  <owner>dmazzoni@chromium.org</owner>
  <owner>smcgruer@chromium.org</owner>
  <summary>
    Tracks whether animations are enabled on Android (e.g. if the animator
    duration scale is non-zero.) The purpose is to inform the design of the
    prefers-reduced-motion media feature; see http://crbug.com/722548. This is
    checked once, 45 seconds after startup.
  </summary>
</histogram>

<histogram name="Accessibility.Android.AnimationsEnabled2"
    enum="AccessibilityAndroidAnimationsEnabled" expires_after="2019-11-02">
  <owner>dmazzoni@chromium.org</owner>
  <owner>smcgruer@chromium.org</owner>
  <summary>
    Tracks whether animations are enabled on Android (e.g. if the animator
    duration scale is non-zero.) The purpose is to inform the design of the
    prefers-reduced-motion media feature; see http://crbug.com/722548. This is
    checked once, 45 seconds after startup.

    This replaced Accessibility.Android.AnimationsEnabled because the older
    histogram did not capture the default (e.g. no flag) case.
  </summary>
</histogram>

<histogram name="Accessibility.Android.TabSwitcherPreferenceEnabled"
    enum="BooleanEnabled">
  <owner>twellington@chromium.org</owner>
  <owner>tedchoc@chromium.org</owner>
  <summary>
    Tracks whether the accessibility tab switcher is enabled when an
    accessibility service (e.g. TalkBack or Switch Access) is enabled that would
    typically cause the accessibility tab switcher to be used. Recorded when the
    activity is resumed or accessibility services are turned on.
  </summary>
</histogram>

<histogram name="Accessibility.AndroidServiceInfo"
    enum="AccessibilityAndroidServiceInfoEnum">
  <owner>dmazzoni@chromium.org</owner>
  <owner>paulmiller@chromium.org</owner>
  <summary>
    Tracks flags and capabilities of enabled accessibility services. Recorded
    every time an Android web content view first creates a virtual view
    hierarchy, indicating that some accessibility service is running. The number
    of emits of this histogram won't be as useful as the unique user counts. The
    primary purpose of this is to guide optimization by determining what
    capabilities of accessibility services are widespread and which ones are
    relatively rare.
  </summary>
</histogram>

<histogram name="Accessibility.CrosAlwaysShowA11yMenu" enum="BooleanEnabled">
  <owner>dmazzoni@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <summary>
    Whether the Chrome OS Accessibility Menu is set to be shown regardless of
    the state of a11y features.(checked once 45 secs after startup).
  </summary>
</histogram>

<histogram name="Accessibility.CrosAutoclick" enum="BooleanEnabled">
  <owner>dmazzoni@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>dtseng@chromium.org</owner>
  <summary>
    Whether the Chrome OS Autoclick feature is on (checked once 45 secs after
    startup).
  </summary>
</histogram>

<histogram name="Accessibility.CrosAutoclick.TrayMenu.ChangeAction"
    enum="AutoclickActionType">
  <owner>katie@chromium.org</owner>
  <owner>dtseng@chromium.org</owner>
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    A user has picked a new autoclick action type from the tray menu.
  </summary>
</histogram>

<histogram name="Accessibility.CrosAutoclickDelay" units="ms">
  <owner>dmazzoni@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>katie@chromium.org</owner>
  <summary>
    If the user has enabled Autoclick, this is the delay set by the user for
    autoclicks to occur, in milliseconds, at startup and when changed.
  </summary>
</histogram>

<histogram name="Accessibility.CrosCaretHighlight" enum="BooleanEnabled">
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    Whether the Chrome OS caret highlighting is on (checked once 45 secs after
    startup).
  </summary>
</histogram>

<histogram name="Accessibility.CrosChromeVoxAfterSwitchAccess"
    enum="BooleanEnabled">
  <owner>anastasi@google.com</owner>
  <owner>dtseng@chromium.org</owner>
  <summary>
    When ChromeVox is enabled, true if Switch Access was previously enabled.
  </summary>
</histogram>

<histogram name="Accessibility.CrosChromeVoxNext" enum="BooleanEnabled">
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    Set when a Chrome OS user has spoken feedback enabled, recorded once each
    time ChromeVox starts up. True if the user has enabled &quot;ChromeVox
    Next&quot;, a new ChromeVox experience that became the default in Chrome 56
    (but can be toggled on or off by the user), false otherwise.
  </summary>
</histogram>

<histogram name="Accessibility.CrosCursorHighlight" enum="BooleanEnabled">
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    Whether the Chrome OS cursor highlighting is on (checked once 45 secs after
    startup).
  </summary>
</histogram>

<histogram name="Accessibility.CrosDictation" enum="BooleanEnabled">
  <owner>anastasi@google.com</owner>
  <owner>dtseng@chromium.org</owner>
  <summary>
    Whether the ChromeOS dictation feature is enabled (checked once 45 secs
    after startup).
  </summary>
</histogram>

<histogram name="Accessibility.CrosDictation.ToggleDictationMethod"
    enum="CrosDictationToggleDictationMethod">
  <owner>anastasi@google.com</owner>
  <owner>dtseng@chromium.org</owner>
  <summary>Records how users invoke Dictation.</summary>
</histogram>

<histogram name="Accessibility.CrosFocusHighlight" enum="BooleanEnabled">
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    Whether the Chrome OS focus highlighting is on (checked once 45 secs after
    startup).
  </summary>
</histogram>

<histogram name="Accessibility.CrosHighContrast" enum="BooleanEnabled">
  <owner>dmazzoni@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <summary>
    Whether the Chrome OS High Contrast mode feature is on (checked once 45 secs
    after startup).
  </summary>
</histogram>

<histogram name="Accessibility.CrosLargeCursor" enum="BooleanEnabled">
  <owner>dmazzoni@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <summary>
    Whether the Chrome OS Large Cursor feature is on (checked once 45 secs after
    startup).
  </summary>
</histogram>

<histogram name="Accessibility.CrosLargeCursorSize" units="dip">
  <owner>yawano@chromium.org</owner>
  <owner>lpalmaro@chromium.org</owner>
  <summary>
    Cursor size of the Chrome OS Large Cursor (checked once 45 secs after
    startup).
  </summary>
</histogram>

<histogram name="Accessibility.CrosScreenMagnifier" enum="BooleanEnabled">
  <owner>dmazzoni@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <summary>
    Whether the Chrome OS Screen Magnifier feature is on (checked once 45 secs
    after startup).
  </summary>
</histogram>

<histogram name="Accessibility.CrosSelectToSpeak" enum="BooleanEnabled">
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    Whether the Chrome OS select-to-speak is on (checked once 45 secs after
    startup).
  </summary>
</histogram>

<histogram name="Accessibility.CrosSelectToSpeak.SpeechPitch"
    enum="CrosSelectToSpeakSpeechPitch">
  <obsolete>
    Deprecated 7/2018 in Issue 866550 in favor of using global Text-to-Speech
    settings for speech pitch.
  </obsolete>
  <owner>katie@chromium.org</owner>
  <summary>
    The speech pitch setting when Select-to-Speak was activated. It is stored as
    a sparse histogram with values (100 * speech_pitch). For example, a speech
    pitch of 1.0 (default) will be seen as 100.
  </summary>
</histogram>

<histogram name="Accessibility.CrosSelectToSpeak.SpeechRate"
    enum="CrosSelectToSpeakSpeechRate">
  <obsolete>
    Deprecated 7/2018 in Issue 866550 in favor of using global Text-to-Speech
    settings for speech rate.
  </obsolete>
  <owner>katie@chromium.org</owner>
  <summary>
    The speech rate setting when Select-to-Speak was activated. It is stored as
    a sparse histogram with values (100 * speech_rate). For example, a speech
    rate of 1.0 (default) will be seen as 100.
  </summary>
</histogram>

<histogram name="Accessibility.CrosSelectToSpeak.StartSpeechMethod"
    enum="CrosSelectToSpeakStartSpeechMethod">
  <owner>katie@chromium.org</owner>
  <summary>
    A user may activate Select-to-Speak by holding down 'search' and clicking or
    dragging a region with the mouse, or by highlighting an area and using
    search + s to read just the highlighted area. Track the methods here.
  </summary>
</histogram>

<histogram name="Accessibility.CrosSelectToSpeak.StateChangeEvent"
    enum="CrosSelectToSpeakStateChangeEvent">
  <owner>katie@chromium.org</owner>
  <summary>
    A user has tapped a button in the tray to change Select-to-Speak's state.
    The tap was interpreted by Select-to-Speak as a request to start selection,
    to cancel speech, or to cancel selection, depending on Select-to-Speak's
    internal state when the tap occured. This tracks when the button was tapped
    and the event that it generated.
  </summary>
</histogram>

<histogram name="Accessibility.CrosSelectToSpeak.WordHighlighting"
    enum="BooleanEnabled">
  <owner>katie@chromium.org</owner>
  <summary>
    Whether Select-to-Speak had per-word highlighting enabled when activated.
  </summary>
</histogram>

<histogram name="Accessibility.CrosSpokenFeedback" enum="BooleanEnabled">
  <owner>dmazzoni@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <summary>
    Whether the Chrome OS Spoken Feedback feature is on (checked once 45 secs
    after startup).
  </summary>
</histogram>

<histogram name="Accessibility.CrosStickyKeys" enum="BooleanEnabled">
  <owner>dmazzoni@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>tengs@chromium.org</owner>
  <summary>
    Whether the Chrome OS Sticky Keys feature is on (checked once 45 secs after
    startup).
  </summary>
</histogram>

<histogram name="Accessibility.CrosSwitchAccess" enum="BooleanEnabled">
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    Whether the Chrome OS switch access is on (checked once 45 secs after
    startup).
  </summary>
</histogram>

<histogram name="Accessibility.CrosSwitchAccessAfterChromeVox"
    enum="BooleanEnabled">
  <owner>anastasi@google.com</owner>
  <owner>dtseng@chromium.org</owner>
  <summary>
    When Switch Access is enabled, true if ChromeVox was previously enabled.
  </summary>
</histogram>

<histogram name="Accessibility.CrosVirtualKeyboard" enum="BooleanEnabled">
  <owner>dmazzoni@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <summary>
    Whether the Chrome OS Virtual Keyboard feature is on (checked once 45 secs
    after startup).
  </summary>
</histogram>

<histogram name="Accessibility.ImageLabels.ContextMenuOption"
    enum="AccessibilityImageLabelMode" expires_after="2020-02-15">
  <owner>katie@chromium.org</owner>
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    When a user selects the Chrome accessibility image labels option in the
    context menu, whether they are trying to enable or disable the feature, or
    enable it for a single use. Recorded when the user selects the option from
    the context menu. The feature may not have been enabled if they do not
    confirm on the modal dialog that appears after.
  </summary>
</histogram>

<histogram name="Accessibility.ImageLabels.Enabled" enum="BooleanEnabled"
    expires_after="2020-02-15">
  <owner>katie@chromium.org</owner>
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    Whether the Chrome accessibility image label setting is on (checked once 45
    secs after startup).
  </summary>
</histogram>

<histogram name="Accessibility.ImageLabels.FromSettings.ToggleSetting"
    enum="BooleanEnabled" expires_after="2020-02-15">
  <owner>katie@chromium.org</owner>
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    When a user selects the Chrome accessibility image labels option in
    chrome://settings, whether they are trying to enable or disable the feature.
    Recorded when the user activates the toggle from the settings page. The
    feature may not have been enabled if they do not confirm on the modal dialog
    that appears after.
  </summary>
</histogram>

<histogram name="Accessibility.ImageLabels.ModalDialogAccepted"
    enum="BooleanAccepted" expires_after="2020-02-15">
  <owner>katie@chromium.org</owner>
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    Whether a user accepts or does not accept a modal dialog enabling the image
    labels option. If the user does not accept it this does not track whether
    they closed it with the negative button, the close button, or keyboard
    escape.
  </summary>
</histogram>

<histogram name="Accessibility.InvertedColors" enum="BooleanEnabled">
  <owner>dmazzoni@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <summary>
    Whether Windows system settings show that high-contrast mode is enabled and
    the user has selected a light-on-dark color scheme (checked once 45 secs
    after startup). This causes Chrome to prompt the user with a bubble to
    optionally install a High Contrast extension and theme.
  </summary>
</histogram>

<histogram name="Accessibility.iOS.NewLargerTextCategory" enum="BooleanHit">
  <owner>mrsuyi@chromium.org</owner>
  <summary>
    This metric is related to the Preferred Content Size chosen by the user. It
    is only recorded once per session. This is hit if the chosen category is not
    listed in the map defined in
    /ios/chrome/browser/ui/util/dynamic_type_util.mm. In that case, we should
    update the code by adding an entry for the new category in that map. This is
    logged when the helper to returning the multiplier associated with the
    current preferred content size is called.
  </summary>
</histogram>

<histogram name="Accessibility.Mac.DifferentiateWithoutColor"
    enum="BooleanEnabled" expires_after="2019-11-02">
  <owner>ellyjones@chromium.org</owner>
  <summary>
    Whether the &quot;differentiate without color&quot; Mac system setting is
    enabled. This is checked once, 45 seconds after startup.
  </summary>
</histogram>

<histogram name="Accessibility.Mac.FullKeyboardAccessEnabled"
    enum="BooleanEnabled" expires_after="2019-11-02">
  <owner>ellyjones@chromium.org</owner>
  <summary>
    Whether the &quot;full keyboard access&quot; Mac system setting is enabled.
    This is checked once, 45 seconds after startup.
  </summary>
</histogram>

<histogram name="Accessibility.Mac.IncreaseContrast" enum="BooleanEnabled"
    expires_after="2019-11-02">
  <owner>ellyjones@chromium.org</owner>
  <summary>
    Whether the &quot;increase contrast&quot; Mac system setting is enabled.
    This is checked once, 45 seconds after startup.
  </summary>
</histogram>

<histogram name="Accessibility.Mac.ReduceMotion" enum="BooleanEnabled"
    expires_after="2019-11-02">
  <owner>dmazzoni@chromium.org</owner>
  <owner>smcgruer@chromium.org</owner>
  <summary>
    Tracks whether the accessibilityDisplayShouldReduceMotion system property is
    enabled. The purpose is to inform the design of the prefers-reduced-motion
    media feature; see http://crbug.com/722548. This is checked once, 45 seconds
    after startup.
  </summary>
</histogram>

<histogram name="Accessibility.Mac.ReduceTransparency" enum="BooleanEnabled"
    expires_after="2019-11-02">
  <owner>ellyjones@chromium.org</owner>
  <summary>
    Whether the &quot;reduce transparency&quot; Mac system setting is enabled.
    This is checked once, 45 seconds after startup.
  </summary>
</histogram>

<histogram name="Accessibility.ManuallyEnabled" enum="BooleanEnabled">
  <owner>dmazzoni@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <summary>
    Whether Chrome has enabled accessibility support because the user passed the
    --force-renderer-accessibility flag on the command-line (checked once 45
    secs after startup).
  </summary>
</histogram>

<histogram name="Accessibility.ModeFlag" enum="AccessibilityModeFlagEnum">
  <owner>dmazzoni@chromium.org</owner>
  <owner>aboxhall@chromium.org</owner>
  <summary>
    Whether individual accessibility mode flags are set. Tracked when each mode
    flag is flipped from false to true. These flags are flipped automatically
    when software communicates with Chrome via accessibility APIs. Flags can
    only be flipped off by advanced users or for debugging using
    chrome://accessibility/ - and that isn't tracked in this histogram.
  </summary>
</histogram>

<histogram name="Accessibility.OOBEStartupSoundDelay" units="ms">
  <owner>lpalmaro@chromium.org</owner>
  <owner>alemate@chromium.org</owner>
  <summary>
    Delay between login_prompt_visible and Chrome OS OOBE startup sound
    playback. Depends on sound subsystem initialization time.
  </summary>
</histogram>

<histogram base="true" name="Accessibility.ScreenReader.Image.MinSize"
    units="px" expires_after="M76">
<!-- Name completed by histogram_suffixes
       name="AccessibilityScreenReaderImage" -->

  <owner>katie@chromium.org</owner>
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    For every image on a page with screen reader accessibility mode enabled,
    this histogram will be used to understand minimum dimension of the image,
    i.e. either the width or height in px.
  </summary>
</histogram>

<histogram base="true" name="Accessibility.ScreenReader.Image.SizeRatio"
    units="%" expires_after="M76">
<!-- Name completed by histogram_suffixes
       name="AccessibilityScreenReaderImage" -->

  <owner>katie@chromium.org</owner>
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    For every image on a page with screen reader accessibility mode enabled,
    this histogram will be used to understand the size ratio of the image. This
    is the smaller dimension divided by the larger dimension.
  </summary>
</histogram>

<histogram name="Accessibility.State" enum="BooleanEnabled">
  <obsolete>
    Deprecated 12/2016 in Issue 672205 with the addition of
    Accessibility.ModeFlag.
  </obsolete>
  <owner>dmazzoni@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <summary>
    Whether Chrome has enabled accessibility support because it detects
    supported assistive technology running, or due to being manually enabled via
    a command-line flag (checked once 45 secs after startup).
  </summary>
</histogram>

<histogram name="Accessibility.Win.AnimationsEnabled" enum="BooleanEnabled"
    expires_after="2019-11-02">
  <owner>dmazzoni@chromium.org</owner>
  <owner>smcgruer@chromium.org</owner>
  <summary>
    Tracks whether the SPI_GETCLIENTAREAANIMATION system property is enabled.
    The purpose is to inform the design of the prefers-reduced-motion media
    feature; see http://crbug.com/722548. This is checked once, 45 seconds after
    startup.
  </summary>
</histogram>

<histogram name="Accessibility.WinAPIs" enum="AccessibilityWinAPIEnum">
  <owner>dmazzoni@chromium.org</owner>
  <owner>nektar@chromium.org</owner>
  <summary>Tracks usage of all public Windows accessibility APIs.</summary>
</histogram>

<histogram name="Accessibility.WinAPIs.GetPropertyValue"
    enum="AccessibilityWinAPIGetPropertyValueEnum" expires_after="2019-09-07">
  <owner>dmazzoni@chromium.org</owner>
  <owner>nektar@chromium.org</owner>
  <owner>kbabbitt@microsoft.com</owner>
  <summary>
    Tracks properties requested via UI Automation GetPropertyValue().
  </summary>
</histogram>

<histogram name="Accessibility.WinAudioDescription" enum="BooleanEnabled"
    expires_after="2019-11-02">
  <owner>dmazzoni@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <summary>
    Whether Windows system settings show that audio descriptions are enabled
    (checked once 45 secs after startup).
  </summary>
</histogram>

<histogram name="Accessibility.WinJAWS" enum="BooleanEnabled"
    expires_after="2019-11-02">
  <owner>dmazzoni@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <summary>
    Whether the third-party JAWS screen reader is running (checked once 45 secs
    after startup).
  </summary>
</histogram>

<histogram name="Accessibility.WinNVDA" enum="BooleanEnabled"
    expires_after="2019-11-02">
  <owner>dmazzoni@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <summary>
    Whether the third-party NVDA screen reader is running (checked once 45 secs
    after startup).
  </summary>
</histogram>

<histogram name="Accessibility.WinSAToGo" enum="BooleanEnabled"
    expires_after="2019-11-02">
  <owner>dmazzoni@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <summary>
    Whether the third-party System Access To Go screen reader is running
    (checked once 45 secs after startup).
  </summary>
</histogram>

<histogram name="Accessibility.WinScreenReader" enum="BooleanEnabled"
    expires_after="2019-11-02">
  <owner>dmazzoni@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <summary>
    Whether Windows system settings show that a screen reader is running
    (checked once 45 secs after startup). Note that this does not necessarily
    mean that Chrome has detected a supported screen reader and has enabled its
    accessibility mode.
  </summary>
</histogram>

<histogram name="Accessibility.WinStickyKeys" enum="BooleanEnabled"
    expires_after="2019-11-02">
  <owner>dmazzoni@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <summary>
    Whether Windows system settings show that Sticky Keys are enabled.
  </summary>
</histogram>

<histogram name="Accessibility.WinZoomText" enum="BooleanEnabled"
    expires_after="2019-11-02">
  <owner>dmazzoni@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <summary>
    Whether the third-party ZoomText screen magnifier is running.
  </summary>
</histogram>

<histogram name="AccountManager.Migrations.Result" enum="BooleanSuccess"
    expires_after="2019-11-05">
  <owner>sinhak@chromium.org</owner>
  <summary>
    Tracks the final result of migrating accounts to Chrome OS Account Manager.
    This is recorded only once per session, at login time.
  </summary>
</histogram>

<histogram base="true" name="AccountManager.Migrations.StepResult"
    enum="BooleanSuccess" expires_after="2019-11-05">
<!-- Name completed by histogram_suffixes
     name="AccountManagerMigrationSteps" -->

  <owner>sinhak@chromium.org</owner>
  <summary>
    Tracks the result of individual migration steps of migrating accounts to
    Chrome OS Account Manager. This is recorded only once per session, at login
    time.
  </summary>
</histogram>

<histogram name="AccountManager.NumAccounts" units="count"
    expires_after="2019-11-05">
  <owner>sinhak@chromium.org</owner>
  <summary>
    Tracks the number of accounts stored in Chrome OS Account Manager by a given
    user. This is recorded only once per session, at login time.
  </summary>
</histogram>

<histogram name="ActivityTracker.Collect.AnalyzerCreationError"
    enum="ActivityTrackerAnalyzerCreationError">
  <owner>siggi@chromium.org</owner>
  <summary>
    The analyzer creation error code. Logged each time analyzer creation fails,
    at most once per processed stability debug file.
  </summary>
</histogram>

<histogram name="ActivityTracker.Collect.InitStatus"
    enum="ActivityTrackerCollectInitStatus">
  <owner>siggi@chromium.org</owner>
  <summary>
    Status of the initialization to collect stability debug files. Logged once,
    during the initialization of the stability debug file collection.
  </summary>
</histogram>

<histogram name="ActivityTracker.Collect.StabilityFileCount" units="count">
  <owner>siggi@chromium.org</owner>
  <summary>
    Number of files found during stability file collection. Logged each time the
    stability file collection proceeds (at most once per launch).
  </summary>
</histogram>

<histogram name="ActivityTracker.Collect.Status"
    enum="ActivityTrackerCollectStatus">
  <owner>siggi@chromium.org</owner>
  <summary>
    Status for the collection of a stability debug file. Logged each time a
    debug file collection attempt is made.
  </summary>
</histogram>

<histogram name="ActivityTracker.Collect.SystemSessionAnalysisStatus"
    enum="ActivityTrackerSystemSessionAnalysisStatus">
  <owner>siggi@chromium.org</owner>
  <summary>
    Status for the analysis of the system session state. Logged each time a
    debug file is collected.
  </summary>
</histogram>

<histogram name="ActivityTracker.Collect.TotalTime" units="ms">
  <owner>siggi@chromium.org</owner>
  <summary>
    Time spent collecting stability debug information. Logged each time a
    collection is performed.
  </summary>
</histogram>

<histogram name="ActivityTracker.Collect.UncleanShutdownCount" units="count">
  <obsolete>
    Deprecated 05/2017 in favor of ActivityTracker.Collect.Status.
  </obsolete>
  <owner>manzagop@chromium.org</owner>
  <summary>
    Number of unclean shutdowns, as derived from the stability instrumentation.
    Logged each time stability file collection is performed.
  </summary>
</histogram>

<histogram name="ActivityTracker.Collect.UncleanSystemCount" units="count">
  <obsolete>
    Deprecated 05/2017 in favor of ActivityTracker.Collect.Status.
  </obsolete>
  <owner>manzagop@chromium.org</owner>
  <summary>
    Number of unclean shutdowns that can potentially be attributed to system
    instability. This should be smaller or equal to UncleanShutdownCount. Logged
    each time stability file collection is performed.
  </summary>
</histogram>

<histogram name="ActivityTracker.Collect.WriteDumpStatus"
    enum="ActivityTrackerWriteDumpStatus">
  <owner>siggi@chromium.org</owner>
  <summary>
    Status of the minidump writing. Logged each time a writing a minidump is
    attempted.
  </summary>
</histogram>

<histogram name="ActivityTracker.CollectCrash.Event"
    enum="ActivityTrackerCollectOnCrashEvent">
  <owner>siggi@chromium.org</owner>
  <summary>
    Events that occur during crash collection of the debug file. Logged each
    time an event of interest occurs during crash debug file collection.
  </summary>
</histogram>

<histogram name="ActivityTracker.CollectCrash.OpenForDeleteSuccess"
    enum="BooleanSuccess">
  <obsolete>
    Deprecated 05/2017 in favor of ActivityTracker.CollectCrash.Event.
  </obsolete>
  <owner>manzagop@chromium.org</owner>
  <summary>
    Success of the attempt to open the debug file for deletion. Logged each time
    a debug file is opened for deletion during collection from the crash
    handler.
  </summary>
</histogram>

<histogram name="ActivityTracker.CollectCrash.Status"
    enum="ActivityTrackerCollectStatus">
  <owner>siggi@chromium.org</owner>
  <summary>
    Status for the collection of a stability debug file. Logged each time a
    debug file collection attempt is made from the crash handler.
  </summary>
</histogram>

<histogram name="ActivityTracker.Record.Event"
    enum="ActivityTrackerRecordEvent">
  <owner>siggi@chromium.org</owner>
  <summary>
    Events pertaining to recording to the debug file. Logged each time an event
    of interest occurs wrt debug file recording.
  </summary>
</histogram>

<histogram name="ActivityTracker.Record.InitStatus"
    enum="ActivityTrackerRecordInitStatus">
  <obsolete>
    Deprecated 05/2017 in favor of ActivityTracker.Record.Event.
  </obsolete>
  <owner>manzagop@chromium.org</owner>
  <summary>
    Status of internal activity tracking initialization. Logged once, during the
    activity tracking initialization.
  </summary>
</histogram>

<histogram name="ActivityTracker.Record.SetupTime" units="ms">
  <owner>siggi@chromium.org</owner>
  <summary>
    Time spent setting up the stability debugging instrumentation. Logged once,
    during setup of the stability debugging instrumentation.
  </summary>
</histogram>

<histogram name="ActivityTracker.ThreadTrackers.Count" units="count">
  <owner>bcwhite@chromium.org</owner>
  <summary>
    The number of threads being tracked for activities such as waiting for a
    lock/event, a thread to join, or a task to run. Analysis of this data can
    reveal why a thread will not exit. This value is updated every time a new
    thread gets an activity tracked for the first time so will show one count
    for every permanent thread but multiple counts for a thread than exits and
    is replaced.
  </summary>
</histogram>

<histogram name="ActivityTracker.ThreadTrackers.MemLimitTrackerCount"
    units="count">
  <owner>bcwhite@chromium.org</owner>
  <summary>
    The limit on the number of thread trackers that could be allocated from the
    persistent memory segment. Trackers beyond this number were allocated from
    the heap and thus were not available for analysis. This value is updated on
    every &quot;memory full&quot; failure.
  </summary>
</histogram>

<histogram name="Ads.Features.AdResourceIsIsolated" enum="AdIsolatedInfo">
  <owner>csharrison@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    For a given ad request, logs information related to whether it is isolated
    from the top-level context. Logged per ad subresource request.
  </summary>
</histogram>

<histogram name="Ads.Features.ResourceIsSecure" enum="AdSecureInfo">
  <owner>csharrison@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    For a given request, logs information related to whether it is marked as an
    ad, and whether it is secure (e.g. https). Logged per subresource request.
  </summary>
</histogram>

<histogram name="Ads.Media.BytesReceived" units="KB" expires_after="2019-10-20">
  <owner>johnidel@chromium.org</owner>
  <summary>
    Total number of bytes buffered over the lifetime of a WebMediaPlayer inside
    of an adframe. Suffixed by type of playback.
  </summary>
</histogram>

<histogram name="Ads.Media.Duration" units="ms" expires_after="2019-12-05">
  <owner>johnidel@chromium.org</owner>
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Duration in milliseconds of HTML5 media (when known). Only recorded for
    media within ad subframes. This is recorded every time the duration changes
    for a video, and can be recorded multiple times for a single video (the
    overall duration may not be known when loading starts). Because the duration
    will generally increase as more video gets buffered, this histogram may skew
    low.
  </summary>
</histogram>

<histogram name="Ads.Media.LoadType" enum="MediaLoadType"
    expires_after="2019-09-18">
  <owner>johnidel@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Load type of HTML5 media in ad subframes such as URL, MediaSource and
    MediaStream.
  </summary>
</histogram>

<histogram name="Ads.ResourceUsage.Size.Cache" units="KB"
    expires_after="2019-10-02">
  <owner>johnidel@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    For a given resource fetched from the disk cache, logs the encoded body
    length of the resource, even if the resource request was canceled or
    incomplete. Recorded when the resource request is complete, or when the page
    is destroyed/navigated for incomplete resources.
  </summary>
</histogram>

<histogram name="Ads.ResourceUsage.Size.Mainframe.AdResource" units="KB"
    expires_after="2019-09-05">
  <obsolete>
    Deprecated 10/2018. Replaced with
    Ads.ResourceUsage.Size.Network.Mainframe.AdResource and
    Ads.ResourceUsage.Size.Cache.Mainframe.AdResource.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <owner>johnidel@chromium.org</owner>
  <summary>
    For a given ad resource in the main frame, logs the network bytes received
    for the resource, even if the resource request was canceled or incomplete.
  </summary>
</histogram>

<histogram name="Ads.ResourceUsage.Size.Mainframe.VanillaResource" units="KB"
    expires_after="2019-09-05">
  <obsolete>
    Deprecated 10/2018. Replaced with
    Ads.ResourceUsage.Size.Network.Mainframe.VanillaResource and
    Ads.ResourceUsage.Size.Cache.Mainframe.VanillaResource.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <owner>johnidel@chromium.org</owner>
  <summary>
    For a given non-ad resource in the main frame, logs the network bytes
    received for the resource, even if the resource request was canceled or
    incomplete.
  </summary>
</histogram>

<histogram base="true" name="Ads.ResourceUsage.Size.Mime" units="KB"
    expires_after="2019-09-10">
  <obsolete>
    Deprecated 10/2018. Replaced with Ads.ResourceUsage.Size.Cache.Mime and
    Ads.ResourceUsage.Size.Network.Mime.
  </obsolete>
  <owner>johnidel@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Size of resources tagged as ads, identified by the response header mime
    type. This includes resources that did not complete loading. Recorded when
    the resource request is completed. For incomplete requests, recorded when
    the page is destroyed/navigated.
  </summary>
</histogram>

<histogram name="Ads.ResourceUsage.Size.Network" units="KB"
    expires_after="2019-10-02">
  <owner>johnidel@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    For a given resource fetched from the network, logs the network bytes used
    to load the resource (including headers), even if the resource request was
    canceled or incomplete. Recorded when the resource request is complete, or
    when the page is destroyed/navigated for incomplete resources.
  </summary>
</histogram>

<histogram name="Ads.ResourceUsage.Size.Subframe.AdResource" units="KB"
    expires_after="2019-09-05">
  <obsolete>
    Deprecated 10/2018. Replaced with
    Ads.ResourceUsage.Size.Network.Subframe.AdResource and
    Ads.ResourceUsage.Size.Cache.Subframe.AdResource.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <owner>johnidel@chromium.org</owner>
  <summary>
    For a given ad resource in a subframe, logs the network bytes received for
    the resource, even if the resource request was canceled or incomplete.
  </summary>
</histogram>

<histogram name="Ads.ResourceUsage.Size.Subframe.VanillaResource" units="KB"
    expires_after="2019-09-05">
  <obsolete>
    Deprecated 10/2018. Replaced with
    Ads.ResourceUsage.Size.Network.Subframe.VanillaResource and
    Ads.ResourceUsage.Size.Cache.Subframe.VanillaResource.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <owner>johnidel@chromium.org</owner>
  <summary>
    For a given non-ad resource in a subframe, logs the network bytes received
    for the resource, even if the resource request was canceled or incomplete.
  </summary>
</histogram>

<histogram name="AnchorElementMetrics.Clicked.AreaRank" units="rank">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The rank of the clicked anchor element in terms of area. This histogram is
    recorded when the anchor element is clicked.
  </summary>
</histogram>

<histogram name="AnchorElementMetrics.Clicked.ClickIntervals" units="ms">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The interval between consecutive clicks of anchor elements. This histogram
    is recorded when an anchor element is clicked except the first click in the
    current document.
  </summary>
</histogram>

<histogram name="AnchorElementMetrics.Clicked.DurationLoadToFirstClick"
    units="ms">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The duration between page load and the first click of an anchor element. If
    the first click happens before page load, then the sample is recorded in
    bucket 0. This histogram is recorded when an anchor element is clicked for
    the first time in the current document.
  </summary>
</histogram>

<histogram name="AnchorElementMetrics.Clicked.HrefEngagementScore"
    units="score">
  <obsolete>
    Deprecated 07/2018. Replaced with
    AnchorElementMetrics.Clicked.HrefEngagementScore2.
  </obsolete>
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The target link (href) engagement score of an anchor element. The score is
    retrieved from the site engagement service. Currently all scores reported
    are set to 0. This will soon change. This histogram is recorded when the
    anchor element is clicked.
  </summary>
</histogram>

<histogram name="AnchorElementMetrics.Clicked.HrefEngagementScorePositive"
    units="score">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The site engagement score of the target link (href) of an anchor element.
    The score is retrieved from the site engagement service. This histogram is
    recorded when the anchor element is clicked, and the score is larger than 0.
  </summary>
</histogram>

<histogram name="AnchorElementMetrics.Clicked.NavigationScore" units="score">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The calculated navigation score of the target link (href) of an anchor
    element. The score is retrieved from the site engagement service. This
    histogram is recorded when the anchor element is clicked and the score has
    already been calculated when the document is loaded.
  </summary>
</histogram>

<histogram name="AnchorElementMetrics.Clicked.NavigationScoreRank" units="rank">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The rank of the navigation score of the target link (href) of an anchor
    element. This histogram is recorded when the anchor element is clicked and
    the score has already been calculated when the document is loaded.
  </summary>
</histogram>

<histogram name="AnchorElementMetrics.Clicked.OnDSE.SameHost"
    enum="BooleanAnchorElementSameHost">
  <owner>tbansal@chromium.org</owner>
  <summary>
    True if the target link of the anchor element has the same host as the root
    document. Recorded only on default search engine pages.
  </summary>
</histogram>

<histogram name="AnchorElementMetrics.Clicked.OnNonDSE.SameHost"
    enum="BooleanAnchorElementSameHost">
  <owner>tbansal@chromium.org</owner>
  <summary>
    True if the target link of the anchor element has the same host as the root
    document. Recorded only on pages whose URL do not match the default search
    engine.
  </summary>
</histogram>

<histogram name="AnchorElementMetrics.Clicked.RatioContainsImage_ContainsImage"
    units="%">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The ratio times 100 between the number of anchor elements that contains
    images and the total number of anchor elements. This histogram is recorded
    when the anchor element is clicked and it contains images.
  </summary>
</histogram>

<histogram name="AnchorElementMetrics.Clicked.RatioContainsImage_NoImage"
    units="%">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The ratio times 100 between the number of anchor elements that contains
    images and the total number of anchor elements. This histogram is recorded
    when the anchor element is clicked and it does not contain images.
  </summary>
</histogram>

<histogram name="AnchorElementMetrics.Clicked.RatioInIframe_InIframe" units="%">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The ratio times 100 between the number of anchor elements that is inside an
    iframe and the total number of anchor elements. This histogram is recorded
    when the anchor element is clicked and it is inside an iframe.
  </summary>
</histogram>

<histogram name="AnchorElementMetrics.Clicked.RatioInIframe_NotInIframe"
    units="%">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The ratio times 100 between the number of anchor elements that is inside an
    iframe and the total number of anchor elements. This histogram is recorded
    when the anchor element is clicked and it is not inside an iframe.
  </summary>
</histogram>

<histogram name="AnchorElementMetrics.Clicked.RatioRootHeight" units="%">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The ratio between the height of the root document and the height of the
    viewport times 100. This histogram is recorded when the anchor element is
    clicked.
  </summary>
</histogram>

<histogram name="AnchorElementMetrics.Clicked.RatioSameHost_DiffHost" units="%">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The ratio times 100 between the number of anchor elements whose href have
    the same host as the document and the total number of anchor elements. This
    histogram is recorded when the anchor element is clicked and href of the
    anchor element has a different host than the document.
  </summary>
</histogram>

<histogram name="AnchorElementMetrics.Clicked.RatioSameHost_SameHost" units="%">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The ratio times 100 between the number of anchor elements whose href have
    the same host as the document and the total number of anchor elements. This
    histogram is recorded when the anchor element is clicked and href of the
    anchor element has the same host as the document.
  </summary>
</histogram>

<histogram
    name="AnchorElementMetrics.Clicked.RatioUrlIncremented_NotIncremented"
    units="%">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The ratio times 100 between the number of anchor elements whose href is
    incremented by one from the url of the document and the total number of
    anchor elements. This histogram is recorded when the anchor element is
    clicked and its href is not incremented by one from the url of the document.
  </summary>
</histogram>

<histogram
    name="AnchorElementMetrics.Clicked.RatioUrlIncremented_UrlIncremented"
    units="%">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The ratio times 100 between the number of anchor elements whose href is
    incremented by one from the url of the document and the total number of
    anchor elements. This histogram is recorded when the anchor element is
    clicked and its href is incremented by one from the url of the document.
  </summary>
</histogram>

<histogram base="true" name="AnchorElementMetrics.ContainsImage" enum="Boolean">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    True if the anchor element contains an image element, false if it is not.
  </summary>
</histogram>

<histogram base="true" name="AnchorElementMetrics.DocumentEngagementScore"
    units="score">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The site engagement score of the document URL. The score is retrieved from
    the site engagement service.
  </summary>
</histogram>

<histogram base="true" name="AnchorElementMetrics.HrefEngagementScore2"
    units="score">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The site engagement score of the target link (href) of an anchor element.
    The score is retrieved from the site engagement service.
  </summary>
</histogram>

<histogram base="true" name="AnchorElementMetrics.HrefEngagementScoreExternal"
    units="score">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The site engagement score of the target link (href) of an anchor element.
    The score is retrieved from the site engagement service. This histogram is
    recorded when href is an external link.
  </summary>
</histogram>

<histogram name="AnchorElementMetrics.IsAdFrameElement" units="Boolean">
  <owner>tbansal@chromium.org</owner>
  <summary>
    True if the anchor element was inside an iframe tagged as an ad iframe.
  </summary>
</histogram>

<histogram base="true" name="AnchorElementMetrics.IsInIFrame" enum="Boolean">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    True if the anchor element is within an iframe, false if it is not.
  </summary>
</histogram>

<histogram base="true" name="AnchorElementMetrics.IsSameHost" enum="Boolean">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    True if the target link of the anchor element has the same host as the root
    document.
  </summary>
</histogram>

<histogram base="true" name="AnchorElementMetrics.IsUrlIncrementedByOne"
    enum="Boolean">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    True if the target URL of the anchor element and the URL of the root
    document only differ by one number, and the number in the target URL equals
    the number in the the URL of the root document plus one.
  </summary>
</histogram>

<histogram base="true" name="AnchorElementMetrics.RatioArea" units="%">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The ratio times 100 between the clickable region area of an anchor element,
    and the viewport area.
  </summary>
</histogram>

<histogram base="true"
    name="AnchorElementMetrics.RatioDistanceCenterToVisibleTop" units="%">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The ratio times 100 between the distance from the center of the clickable
    region of an anchor element to the top edge of the visible region, and the
    viewport height.
  </summary>
</histogram>

<histogram base="true" name="AnchorElementMetrics.RatioDistanceRootBottom"
    units="%">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The ratio times 100 between the distance from the bottom of the clickable
    region of an anchor element to the bottom edge of the root frame, and the
    viewport height.
  </summary>
</histogram>

<histogram base="true" name="AnchorElementMetrics.RatioDistanceRootTop"
    units="%">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The ratio times 100 between the distance from the top of the clickable
    region of an anchor element to the top edge of the root frame, and the
    viewport height.
  </summary>
</histogram>

<histogram base="true" name="AnchorElementMetrics.RatioDistanceTopToVisibleTop"
    units="%">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The ratio times 100 between the distance from the top of the clickable
    region of an anchor element to the top edge of the visible region, and the
    viewport height.
  </summary>
</histogram>

<histogram base="true" name="AnchorElementMetrics.RatioVisibleArea" units="%">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The ratio times 100 between the visible clickable region area of an anchor
    element, and the viewport area.
  </summary>
</histogram>

<histogram name="AnchorElementMetrics.Visible.HighestNavigationScore"
    units="score">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The highest navigation score of the anchor elements sent to the browser
    process on a page load. This histogram is recorded when the webpage is
    loaded. Normalized to a value between 0.0 and 100.0.
  </summary>
</histogram>

<histogram name="AnchorElementMetrics.Visible.NumberOfAnchorElements"
    units="count">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The number of anchor element metrics sent to the browser process on a page
    load. This histogram is recorded when the webpage is loaded.
  </summary>
</histogram>

<histogram name="AnchorElementMetrics.Visible.NumberOfAnchorElementsAfterMerge"
    units="count">
  <owner>chelu@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The number of anchor element metrics sent to the browser process on a page
    load. Anchor elements having the same href are merged and counted as 1. This
    histogram is recorded when the webpage is loaded.
  </summary>
</histogram>

<histogram name="Android.Activity.ChromeTabbedActivity.StopReason"
    enum="AndroidActivityStopReason">
  <owner>twellington@chromium.org</owner>
  <summary>
    What caused ChromeTabbedActivity#onStop() to be called, which indicates that
    Chrome is sent to the background.
  </summary>
</histogram>

<histogram name="Android.Activity.ChromeTabbedActivity.SystemBackAction"
    enum="AndroidActivitySystemBackAction">
  <owner>twellington@chromium.org</owner>
  <summary>
    What happened when the user hit the system back button in
    ChromeTabbedActivity.
  </summary>
</histogram>

<histogram name="Android.AppNotificationStatus" enum="NotificationAppStatus">
  <owner>peter@chromium.org</owner>
  <summary>
    Records whether notifications are enabled for Chrome, as the Android app,
    every time metrics are logged.
  </summary>
</histogram>

<histogram name="Android.ArmFpu" enum="AndroidArmFpu">
  <obsolete>
    Removed 2019-01: New releases of Chrome+Android+ARM rely on NEON support.
  </obsolete>
  <owner>fdegans@chromium.org</owner>
  <summary>
    Reports the FPU capabilities of the Android ARM device. This is recorded
    once per browser session during startup.
  </summary>
</histogram>

<histogram name="Android.AutofillAssistant.DropOutReason"
    enum="AutofillAssistantDropOutReason" expires_after="2020-01-25">
  <owner>mcarlen@chromium.org</owner>
  <summary>
    Reports the drop out reason of an Autofill Assistant script. It is recorded
    when Autofill Assistant is shut down or terminated. The AA_START value is
    used as a baseline and counts the number of attempted starts of Autofill
    Assistant flows. The sum of all drop out reasons should be the same as the
    number of attempted starts (i.e. AA_START).
  </summary>
</histogram>

<histogram name="Android.BackgroundTaskScheduler.TaskCanceled"
    enum="BackgroundTaskId">
  <owner>fgorski@chromium.org</owner>
  <owner>nyquist@chromium.org</owner>
  <summary>Records that a specific background task has been canceled.</summary>
</histogram>

<histogram name="Android.BackgroundTaskScheduler.TaskLoadedNative"
    enum="BackgroundTaskId">
  <owner>fgorski@chromium.org</owner>
  <owner>nyquist@chromium.org</owner>
  <summary>Records that a specific background task has loaded native.</summary>
</histogram>

<histogram name="Android.BackgroundTaskScheduler.TaskScheduled.Failure"
    enum="BackgroundTaskId">
  <owner>fgorski@chromium.org</owner>
  <owner>nyquist@chromium.org</owner>
  <summary>
    Records that a specific background task has failed to be scheduled.
  </summary>
</histogram>

<histogram name="Android.BackgroundTaskScheduler.TaskScheduled.Success"
    enum="BackgroundTaskId">
  <owner>fgorski@chromium.org</owner>
  <owner>nyquist@chromium.org</owner>
  <summary>
    Records that a specific background task has been successfully scheduled.
  </summary>
</histogram>

<histogram name="Android.BackgroundTaskScheduler.TaskStarted"
    enum="BackgroundTaskId">
  <owner>fgorski@chromium.org</owner>
  <owner>nyquist@chromium.org</owner>
  <summary>Records that a specific background task has been started.</summary>
</histogram>

<histogram name="Android.BackgroundTaskScheduler.TaskStopped"
    enum="BackgroundTaskId">
  <owner>fgorski@chromium.org</owner>
  <owner>nyquist@chromium.org</owner>
  <summary>
    Records that a specific background task has been stopped by Background Task
    Scheduler before it was able to complete itself.
  </summary>
</histogram>

<histogram name="Android.ChildProcessLauncher.OnServiceConnectedTime"
    units="ms">
  <obsolete>
    Deprecated 08/2017. Made decision in issue 736066 with already acquired
    data. So this is no longer needed.
  </obsolete>
  <owner>boliu@chromium.org</owner>
  <summary>
    Measure time from bindService call to onServiceConnected. This is part of
    launching child services on Android that's under Android's control. Recorded
    in the first onServiceConnected of a connection.
  </summary>
</histogram>

<histogram name="Android.ChildProcessLauncher.OnServiceConnectedTimedOut"
    enum="BooleanTimedOut">
  <obsolete>
    Deprecated 08/2017. Made decision in issue 736066 with already acquired
    data. So this is no longer needed.
  </obsolete>
  <owner>boliu@chromium.org</owner>
  <summary>
    Boolean histogram that records whether bindServiced timed out. Timeout is
    recorded in a delayed task, and success is recorded in onServiceConnected
    callback.
  </summary>
</histogram>

<histogram name="Android.ChromeBrowserProvider.CallerHasPermission"
    enum="ClientAppId">
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Android: Count of requests to Chrome browser which are granted to other apps
    to read/write user's bookmarks and history. Only records cases when the app
    has permission according to Android's permission manager.
  </summary>
</histogram>

<histogram name="Android.ChromeBrowserProvider.SignaturePassed"
    enum="ClientAppId">
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Android: Count of requests to Chrome browser which are granted to other apps
    to read/write user's bookmarks and history. Only records cases where the app
    is a system app or signed by Google.
  </summary>
</histogram>

<histogram name="Android.ChromeHome.DurationOpen" units="ms">
  <owner>mdjones@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>The duration the Chrome Home bottom sheet was open.</summary>
</histogram>

<histogram name="Android.ChromeHome.OpenReason" enum="ChromeHomeOpenReason">
  <owner>mdjones@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>The reason the bottom sheet was opened.</summary>
</histogram>

<histogram name="Android.ChromeHome.OpenSheetVelocity.Fail"
    units="microseconds/dp">
  <obsolete>
    Deprecated 03/2018. Chrome Home is being deprecated.
  </obsolete>
  <owner>mdjones@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Records the reciprocal of the velocity of a swipe that did not result in the
    bottom sheet opening. This value is recorded in microseconds per dp traveled
    and is only recorded if the &quot;chrome-home-swipe-logic&quot; experiment
    is set to &quot;velocity&quot;.
  </summary>
</histogram>

<histogram name="Android.ChromeHome.OpenSheetVelocity.Navigation"
    units="microseconds/dp">
  <obsolete>
    Deprecated 03/2018. Chrome Home is being deprecated.
  </obsolete>
  <owner>mdjones@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Records the reciprocal of the velocity of a swipe that resulted in the
    bottom sheet opening and the user navigating to a URL or a different sheet
    content. This value is recorded in microseconds per dp traveled.
  </summary>
</histogram>

<histogram name="Android.ChromeHome.OpenSheetVelocity.NoNavigation"
    units="microseconds/dp">
  <obsolete>
    Deprecated 03/2018. Chrome Home is being deprecated.
  </obsolete>
  <owner>mdjones@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Records the reciprocal of the velocity of a swipe that resulted in the
    bottom sheet opening but the user taking no action (i.e. the next action is
    the sheet closing). This value is recorded in microseconds per dp traveled.
  </summary>
</histogram>

<histogram name="Android.ChromeHome.OpenSheetVelocity.Success"
    units="microseconds/dp">
  <obsolete>
    Deprecated 03/2018. Chrome Home is being deprecated.
  </obsolete>
  <owner>mdjones@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Records the reciprocal velocity of a swipe that resulted in the bottom sheet
    opening. This value is recorded in microseconds per dp traveled and is only
    recorded if the &quot;chrome-home-swipe-logic&quot; experiment is set to
    &quot;velocity&quot;.
  </summary>
</histogram>

<histogram name="Android.ChromeHome.Promo.Result.Menu"
    enum="ChromeHomePromoResult">
  <obsolete>
    Deprecated 01/2018 with the removal of the first version of Chrome Home.
  </obsolete>
  <owner>mdjones@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The result of showing the Chrome Home promo when launched from the overflow
    menu. This action can only be performed if Chrome Home is enabled.
  </summary>
</histogram>

<histogram name="Android.ChromeHome.Promo.Result.NTP"
    enum="ChromeHomePromoResult">
  <obsolete>
    Deprecated 01/2018 with the removal of the first version of Chrome Home.
  </obsolete>
  <owner>mdjones@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The result of showing the Chrome Home promo when launched from the NTP. This
    action can only be performed if Chrome Home is disabled.
  </summary>
</histogram>

<histogram name="Android.ChromeHome.Promo.Result.Startup"
    enum="ChromeHomePromoResult">
  <obsolete>
    Deprecated 01/2018 with the removal of the first version of Chrome Home.
  </obsolete>
  <owner>mdjones@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The result of showing the Chrome Home promo when launched from startup. This
    action can only be performed if Chrome Home is disabled.
  </summary>
</histogram>

<histogram name="Android.ChromeHome.Promo.ShowReason"
    enum="ChromeHomePromoShowReason">
  <obsolete>
    Deprecated 01/2018 with the removal of the first version of Chrome Home.
  </obsolete>
  <owner>mdjones@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>The reason the Chrome Home promo was shown.</summary>
</histogram>

<histogram name="Android.ChromeHome.Survey.DownloadResponseCode"
    enum="SurveyDownloadResponseCodes">
  <obsolete>
    Deprecated 04/2018. Replaced with Android.Survey.DownloadResponseCode.
  </obsolete>
  <owner>danielpark@chromium.org</owner>
  <summary>The response code of the completed survey download request.</summary>
</histogram>

<histogram name="Android.ChromeHome.Survey.InfoBarClosingState"
    enum="InfoBarClosingStates">
  <obsolete>
    Deprecated 04/2018. Replaced with Android.Survey.InfoBarClosingState.
  </obsolete>
  <owner>danielpark@chromium.org</owner>
  <summary>
    If the infobar was visible when it was closed and if it was closed directly
    or not.
  </summary>
</histogram>

<histogram name="Android.ChromeHome.Survey.ShowSurvey" enum="BooleanSuccess">
  <obsolete>
    Deprecated 04/2018. Replaced with Android.Survey.ShowSurvey.
  </obsolete>
  <owner>danielpark@chromium.org</owner>
  <summary>
    Whether or not the survey was successfully shown after its download.
  </summary>
</histogram>

<histogram name="Android.ChromeHome.Survey.SurveyFilteringResults"
    enum="SurveyFilteringResult">
  <obsolete>
    Deprecated 04/2018. Replaced with Android.Survey.SurveyFilteringResults.
  </obsolete>
  <owner>danielpark@chromium.org</owner>
  <summary>
    The result of the survey filtering process. Each enum represents a different
    filter that caught the user. This is recorded on cold starts when we check
    if a user qualifies for a survey.
  </summary>
</histogram>

<histogram name="Android.ChromeHome.TimeBetweenCloseAndNextOpen" units="ms">
  <owner>mdjones@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The time between the last time the Chrome Home bottom sheet was closed and
    the next time it was opened.
  </summary>
</histogram>

<histogram name="Android.ChromeHome.TimeToFirstOpen" units="ms">
  <owner>mdjones@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The time between app creation and the first open of the Chrome Home bottom
    sheet for this run of Chrome.
  </summary>
</histogram>

<histogram name="Android.ChromeHome.UserPreference.Enabled"
    enum="BooleanEnabled">
  <owner>mdjones@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Records whether or not the user preference for Chrome Home is set to
    enabled. This is recorded whenever the browser is restarted and the state of
    Chrome Home is first checked. This metric is only recorded if the user's
    preference is set.
  </summary>
</histogram>

<histogram name="Android.CompressedResources.ExtractionBlockingTime" units="ms">
  <owner>estevenson@chromium.org</owner>
  <owner>agrieve@chromium.org</owner>
  <summary>
    The amount of time Chrome spends blocked on resource extraction. Generally,
    extraction is completed in the background but in certain cases a main-thread
    getResources() call may block on resource extraction.
  </summary>
</histogram>

<histogram name="Android.CompressedResources.ExtractionStatus"
    enum="AndroidResourceExtractionStatus">
  <owner>estevenson@chromium.org</owner>
  <owner>agrieve@chromium.org</owner>
  <summary>
    Describes the result of Android resource extraction, and is recorded once
    per browser start as part of deferred startup (not at time of extraction).
  </summary>
</histogram>

<histogram name="Android.CompressedResources.ExtractionTime" units="ms">
  <owner>estevenson@chromium.org</owner>
  <owner>agrieve@chromium.org</owner>
  <summary>
    The amount of time spent on resource extraction, whether or not extraction
    was performed in the background or foreground.
  </summary>
</histogram>

<histogram name="Android.CustomFeedback.Category"
    enum="AndroidFeedbackCategory">
  <obsolete>
    Deprecated 12/2018. CustomFeedback never shipped to 100% and is no longer
    planned for launch.
  </obsolete>
  <owner>jwanda@chromium.org</owner>
  <summary>
    Recorded when the user selects a category button when in the Custom Feedback
    UI.
  </summary>
</histogram>

<histogram name="Android.CustomFeedback.CategoryDetails"
    enum="AndroidFeedbackCategoryDetails">
  <obsolete>
    Deprecated 12/2018. CustomFeedback never shipped to 100% and is no longer
    planned for launch.
  </obsolete>
  <owner>jwanda@chromium.org</owner>
  <summary>
    Recorded when a user selects an option related to their problem within the
    Custom Feedback UI.
  </summary>
</histogram>

<histogram name="Android.DeviceSize.LargestDisplaySize" units="dp">
  <owner>twellington@chromium.org</owner>
  <owner>tedchoc@chromium.org</owner>
  <summary>
    Records the largest display dimension in dp during deferred startup. The
    display size is not affected by Android N multi-window mode. Clamped at
    200dp to 1200dp.
  </summary>
</histogram>

<histogram name="Android.DeviceSize.SmallestDisplaySize" units="dp">
  <owner>twellington@chromium.org</owner>
  <owner>tedchoc@chromium.org</owner>
  <summary>
    Records the smallest display dimension in dp during deferred startup. The
    display size is not affected by Android N multi-window mode. Clamped at 0 to
    1000dp.
  </summary>
</histogram>

<histogram name="Android.Download.InfoBar.CloseButtonClicked"
    enum="DownloadInfoBarState">
  <owner>shaktisahu@chromium.org</owner>
  <summary>
    Records the state of the download infobar when the user taps on the
    infobar's close button.
  </summary>
</histogram>

<histogram name="Android.Download.InfoBar.Shown"
    enum="DownloadInfoBar.ShownState">
  <owner>shaktisahu@chromium.org</owner>
  <summary>
    Records various types of messages representing the state of the downloads as
    they are shown on the download infobar.
  </summary>
</histogram>

<histogram name="Android.DownloadManager.Chips.Enabled" units="chips"
    expires_after="2020-01-30">
  <owner>shaktisahu@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    Records the number of chips being shown on download home. Recorded during
    initialization and also during any list change.
  </summary>
</histogram>

<histogram name="Android.DownloadManager.Filter"
    enum="AndroidDownloadFilterType">
  <owner>dtrainor@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    Recorded when the user selects a filter from the Chrome download manager
    navigation drawer.
  </summary>
</histogram>

<histogram name="Android.DownloadManager.ForegroundServiceLifecycle"
    enum="DownloadNotificationForegroundLifecycle">
  <owner>xingliu@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    Records instances where the foreground undergoes a lifecycle change (when
    the foreground starts, changes pinned notification, or stops).
  </summary>
</histogram>

<histogram name="Android.DownloadManager.InitialCount">
  <owner>dtrainor@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    The number of non-incognito download items displayed when the download UI is
    initialized.
  </summary>
</histogram>

<histogram name="Android.DownloadManager.InitialCount.Viewed">
  <owner>dtrainor@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    The number of non-incognito download items displayed that are already viewed
    by the user at any time, recorded when the download UI is initialized.
  </summary>
</histogram>

<histogram name="Android.DownloadManager.Item.OpenFailed"
    enum="AndroidDownloadFilterType">
  <owner>dtrainor@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>Recorded when a download fails to open.</summary>
</histogram>

<histogram name="Android.DownloadManager.Item.OpenSucceeded"
    enum="AndroidDownloadFilterType">
  <owner>dtrainor@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>Recorded when a download is opened.</summary>
</histogram>

<histogram name="Android.DownloadManager.List.Section.Menu.Images.Action"
    enum="Android.DownloadManager.List.Section.Menu.Actions">
  <owner>dtrainor@chromium.org</owner>
  <owner>shaktisahu@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>Recorded when a menu action is taken on the images section.</summary>
</histogram>

<histogram name="Android.DownloadManager.List.View.Action"
    enum="Android.DownloadManager.List.View.Actions">
  <owner>dtrainor@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>The count of Download Home list entry actions taken.</summary>
</histogram>

<histogram name="Android.DownloadManager.Menu.Action"
    enum="Android.DownloadManager.Menu.Actions">
  <owner>dtrainor@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>The count of Download Home top level menu actions taken.</summary>
</histogram>

<histogram name="Android.DownloadManager.Menu.Delete.SelectedCount">
  <owner>dtrainor@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    The number of items selected when performing a multi-delete action.
  </summary>
</histogram>

<histogram name="Android.DownloadManager.Menu.Share.SelectedCount">
  <owner>dtrainor@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    The number of items selected when performing a multi-share action.
  </summary>
</histogram>

<histogram name="Android.DownloadManager.NotificationInteraction"
    enum="DownloadNotificationInteractions">
  <owner>xingliu@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    Records instances where a user interacts with a download notification (ie.
    clicks on, pauses, resumes, cancels).
  </summary>
</histogram>

<histogram name="Android.DownloadManager.NotificationLaunch"
    enum="DownloadNotificationLaunchType">
  <owner>xingliu@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    Records instances when a notification is being launched for the first time
    or relaunched due to the need to dissociate the notification from the
    foreground (only on API less than 24).
  </summary>
</histogram>

<histogram name="Android.DownloadManager.NotificationsCount.ForegroundDisabled"
    units="notifications">
  <owner>xingliu@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    Records the number of notifications that are already existing (presumably
    displayed) when a new notification is being launched to help understand the
    frequency of multiple downloads with downloads as a foreground service
    disabled.
  </summary>
</histogram>

<histogram name="Android.DownloadManager.NotificationsCount.ForegroundEnabled"
    units="notifications">
  <owner>xingliu@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    Records the number of notifications that are already existing (presumably
    displayed) when a new notification is being launched to help understand the
    frequency of multiple downloads with downloads as a foreground service
    enabled.
  </summary>
</histogram>

<histogram name="Android.DownloadManager.OpenSource.Audio"
    enum="AndroidDownloadOpenSource">
  <owner>xingliu@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>Records how users open audio download files on Android.</summary>
</histogram>

<histogram name="Android.DownloadManager.OpenSource.Video"
    enum="AndroidDownloadOpenSource">
  <owner>xingliu@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>Records how users open video download files on Android.</summary>
</histogram>

<histogram name="Android.DownloadManager.OtherExtensions.InitialCount"
    enum="AndroidDownloadExtensionType">
  <owner>twellington@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    The extension type for non-incognito download items that match the
    &quot;other&quot; filter type. Recorded when the download UI is initialized.
  </summary>
</histogram>

<histogram name="Android.DownloadManager.OtherExtensions.OpenFailed"
    enum="AndroidDownloadExtensionType">
  <owner>twellington@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    The extension type for downloads that match the &quot;other&quot; filter
    type. Recorded when a download fails to open.
  </summary>
</histogram>

<histogram name="Android.DownloadManager.OtherExtensions.OpenSucceeded"
    enum="AndroidDownloadExtensionType">
  <owner>twellington@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    The extension type for downloads that match the &quot;other&quot; filter
    type. Recorded when a download is opened.
  </summary>
</histogram>

<histogram name="Android.DownloadManager.OtherExtensions.Share"
    enum="AndroidDownloadExtensionType">
  <owner>twellington@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    The extension type for downloads that match the &quot;other&quot; filter
    type. Recorded when downloads are shared through the download manager.
  </summary>
</histogram>

<histogram name="Android.DownloadManager.ServiceStopped.DownloadForeground"
    enum="DownloadNotificationServiceStopped">
  <owner>xingliu@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    Records instances of DownloadForegroundService stops. The number of expected
    stops (stopped) and unexpected stops (task removed, low memory, etc) can be
    compared to get a sense of how often the service crashes to see how it
    handles restarts. For example, the number of times the service is stopped
    because of low memory can be compared to the number of times the service has
    been destroyed to see how frequently it occurs. Or, the number of start
    sticky's will indicate how often the service is able to restart due to an
    unexpected stop.
  </summary>
</histogram>

<histogram name="Android.DownloadManager.ServiceStopped.DownloadNotification"
    enum="DownloadNotificationServiceStopped">
  <owner>xingliu@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    Records instances of DownloadNotificationService stops. The number of
    expected stops (stopped) and unexpected stops (task removed, low memory,
    etc) can be compared to get a sense of how often the service crashes to see
    how it handles restarts. For example, the number of times the service is
    stopped because of low memory can be compared to the number of times the
    service has been destroyed to see how frequently it occurs. Or, the number
    of start sticky's will indicate how often the service is able to restart due
    to an unexpected stop.
  </summary>
</histogram>

<histogram name="Android.DownloadManager.Share.Count">
  <owner>twellington@chromium.org</owner>
  <owner>ianwen@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>The number of downloads shared at the same time.</summary>
</histogram>

<histogram name="Android.DownloadManager.Share.FileTypes"
    enum="AndroidDownloadFilterType">
  <owner>twellington@chromium.org</owner>
  <owner>ianwen@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    Recorded when downloads are shared through the download manager. A recorded
    value of &quot;All&quot; indicates that multiple types of downloads were
    shared.
  </summary>
</histogram>

<histogram name="Android.DownloadManager.ShowStorageInfo" enum="BooleanVisible">
  <owner>shaktisahu@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    Recorded when the user clicks the info button on download home to toggle the
    storage info. The state recorded is after the visibility is toggled.
  </summary>
</histogram>

<histogram name="Android.DownloadManager.SpaceUsed" units="%">
  <owner>twellington@chromium.org</owner>
  <owner>ianwen@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>The percentage of total storage downloads consume.</summary>
</histogram>

<histogram base="true"
    name="Android.DownloadManager.Thumbnail.MaxRequiredStretch" units="%"
    expires_after="2020-01-30">
<!-- Name completed by histogram_suffixes
     name="AndroidDownloadTypes" -->

  <owner>shaktisahu@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    Records the required stretch of the smaller dimension before displaying an
    image on download home. Measured in percentage.
  </summary>
</histogram>

<histogram name="Android.DownloadManager.ViewRetentionTime.Audio"
    units="minutes" expires_after="2020-01-30">
  <owner>xingliu@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    The duration between when an audio file is downloaded and when the file is
    opened, only recorded when the user opens the file in download home UI.
  </summary>
</histogram>

<histogram name="Android.DownloadManager.ViewRetentionTime.Video"
    units="minutes" expires_after="2020-01-30">
  <owner>xingliu@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    The duration between when a video file is downloaded and when the file is
    opened, only recorded when the user opens the file in download home UI.
  </summary>
</histogram>

<histogram base="true" name="Android.FeatureModules.CachedInstallDuration"
    units="ms" expires_after="2020-01-01">
<!-- Name completed by histogram_suffixes
       name="AndroidFeatureModuleName" -->

  <owner>tiborg@chromium.org</owner>
  <owner>agrieve@chromium.org</owner>
  <summary>
    Duration of successful installs for each dynamic feature module. Only
    contains install durations for modules first requested *before* Chrome
    started last and may therefore be installed from cache.
  </summary>
</histogram>

<histogram base="true" name="Android.FeatureModules.InstallStatus"
    enum="FeatureModuleInstallStatus" expires_after="2020-01-01">
<!-- Name completed by histogram_suffixes
       name="AndroidFeatureModuleName" -->

  <owner>tiborg@chromium.org</owner>
  <owner>agrieve@chromium.org</owner>
  <summary>
    Install status for each dynamic feature module. Recorded after the
    installation has finished.
  </summary>
</histogram>

<histogram base="true" name="Android.FeatureModules.UncachedInstallDuration"
    units="ms" expires_after="2020-01-01">
<!-- Name completed by histogram_suffixes
       name="AndroidFeatureModuleName" -->

  <owner>tiborg@chromium.org</owner>
  <owner>agrieve@chromium.org</owner>
  <summary>
    Duration of successful installs for each dynamic feature module. Only
    contains install durations of modules first requested *after* Chrome started
    last and are therefore unlikely to be installed from cache.
  </summary>
</histogram>

<histogram name="Android.HistoryPage.OpenSelected">
  <owner>twellington@chromium.org</owner>
  <summary>
    The number of selected items the user opened in new tabs from the native
    Android history page.
  </summary>
</histogram>

<histogram name="Android.HistoryPage.RemoveSelected">
  <owner>twellington@chromium.org</owner>
  <summary>
    The number of selected items the user removed from the native Android
    history page.
  </summary>
</histogram>

<histogram name="Android.InstantApps.ApiCallDuration2" units="ms">
  <obsolete>
    Not being recorded as of 2017.
  </obsolete>
  <owner>mariakhomenko@chromium.org</owner>
  <summary>
    Measures the amount of time spent in the getInstantAppIntent() API call.
  </summary>
</histogram>

<histogram name="Android.InstantApps.ApiCallDurationWithApp" units="ms">
  <owner>sbirch@google.com</owner>
  <summary>
    Measures the amount of time spent in the getInstantAppIntent() API call when
    the API was able to find an Instant App for the URL. This is recorded for
    external intents coming into Chrome only and measures the delay before we
    dispatch the intent to Instant Apps.
  </summary>
</histogram>

<histogram name="Android.InstantApps.ApiCallDurationWithoutApp" units="ms">
  <owner>sbirch@google.com</owner>
  <summary>
    Measures the amount of time spent in the getInstantAppIntent() API call when
    the API was not able to find an Instant App for the URL. This is recorded
    for external intents coming into Chrome that get checked for their Instant
    Apps eligibility, but end up being loaded in Chrome. It's critical to keep
    this latency low for our startup performance.
  </summary>
</histogram>

<histogram name="Android.InstantApps.CallSource" enum="InstantAppsCallSource">
  <owner>sbirch@google.com</owner>
  <summary>
    For intents to load a web page in browser from Instant Apps, records where
    the request to load came from.
  </summary>
</histogram>

<histogram name="Android.InstantApps.DirectInstantAppsIntent"
    enum="DirectIntentType">
  <owner>sbirch@google.com</owner>
  <summary>
    Records events that occur when a user clicks on an intent:// URL that is
    dispatched to instant apps. The intent:// URLs to the Instant Apps are
    explicitly disabled unless they are launched from Google SERP, but we record
    other attempts as well.
  </summary>
</histogram>

<histogram name="Android.InstantApps.EligiblePageLoaded" enum="Boolean">
  <owner>sbirch@google.com</owner>
  <summary>
    Records whether any given successful page load (for http and https schemes
    only) could have been handled by an Instant App.
  </summary>
</histogram>

<histogram name="Android.InstantApps.FallbackDuration" units="ms">
  <owner>sbirch@google.com</owner>
  <summary>
    Measures the time from when we first received an eligible intent for Instant
    Apps to the time we processed it in the case where the Instant Apps activity
    had to invoke a fallback intent. This happens only on Android N and older.
  </summary>
</histogram>

<histogram name="Android.InstantApps.HandleIntentDuration" units="ms">
  <owner>sbirch@google.com</owner>
  <summary>
    Measures the amount of time spent triaging an incoming event to decide
    whether it needs to be routed to Instant Apps. This is time from
    ChromeLauncherActivity.onCreate() call to the time either startActivity() is
    called or the request proceeds. This is a superset of
    Android.InstantApps.ApiCallDurationWith[out]App.
  </summary>
</histogram>

<histogram name="Android.InstantApps.ShouldShowBanner" enum="InstantAppsBanner">
  <owner>sbirch@google.com</owner>
  <summary>
    Logs the reasons the banner is shown or hidden on an instant apps eligible
    pages. Triggered every time asynchronous Instant Apps API indicates the
    currently loaded page is instant apps eligible. Does not include Instant
    Apps eligible pages loaded directly through the omnibox.
  </summary>
</histogram>

<histogram name="Android.Intent.LaunchExternalAppFormSubmitHasUserGesture"
    enum="Boolean" expires_after="M74">
  <owner>tedchoc@chromium.org</owner>
  <owner>thildebr@chromium.org</owner>
  <summary>
    When an external application was launched as a result of a form submit, this
    tracks whether there was a user gesture associated with the submit.
  </summary>
</histogram>

<histogram name="Android.IntentHeaders" enum="IntentHeadersResult">
  <owner>peconn@chromium.org</owner>
  <summary>
    Records the usage of the Browser.EXTRA_HEADERS field for Intents that Chrome
    receives, breaking down by type of header and by whether the launching app
    was first or third party.
  </summary>
</histogram>

<histogram name="Android.IsLastSharedAppInfoRetrieved"
    enum="BooleanIsLastSharedAppInfoRetrieved">
  <owner>clank-team@google.com</owner>
  <summary>
    Signifies whether the last shared app information is retrieved successfully
    or not. This is logged when configuring the direct sharing menu item.
  </summary>
</histogram>

<histogram name="Android.KernelVersion" enum="AndroidKernelVersion">
  <owner>rsesek@chromium.org</owner>
  <summary>
    Reports the kernel major and minor version from the utsname.release field.
    The low 16 bits of each version are combined into a 32-bit integer. The
    range is from [0x00020006,0x0004000a] to track kernel versions 2.6 through
    4.10.
  </summary>
</histogram>

<histogram name="Android.Language.WrongLanguageAfterResume" enum="Boolean"
    expires_after="2019-08-01">
  <owner>tiborg@chromium.org</owner>
  <owner>digit@chromium.org</owner>
  <summary>
    Reports whether Chrome was started in a language other than the system
    language but we support the system language. That can happen if the user
    changes the system language and the required language split cannot be
    installed in time.
  </summary>
</histogram>

<histogram
    name="Android.MainActivity.ExplicitMainViewIntentDispatched.OnCreate"
    enum="BooleanDispatched">
  <owner>wnwen@chromium.org</owner>
  <summary>
    Whether VIEW intent sent explicitly to .Main activity was dispatched by
    onCreate().
  </summary>
</histogram>

<histogram
    name="Android.MainActivity.ExplicitMainViewIntentDispatched.OnNewIntent"
    enum="BooleanDispatched">
  <owner>wnwen@chromium.org</owner>
  <summary>
    Whether VIEW intent sent explicitly to .Main activity was dispatched by
    onNewIntent().
  </summary>
</histogram>

<histogram name="Android.MainActivity.UndispatchedExplicitMainViewIntentSource"
    enum="ClientAppId">
  <owner>wnwen@chromium.org</owner>
  <summary>
    Sources (ExternalAppId) of undispatched VIEW intents sent explicitly to
    .Main activity alias.
  </summary>
</histogram>

<histogram name="Android.ManageSpace.ActionTaken"
    enum="AndroidManageSpaceButton">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Recorded when the user presses a button in the 'Manage Space' screen for
    Chrome. Note: the 'Clear App Data' option is likely incorrect, as the result
    of that button disables UMA recording (as we factory reset the app).
  </summary>
</histogram>

<histogram name="Android.ManageSpace.TotalDiskUsageMB" units="MB">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Recorded when the user opens the 'Manage Space' screen for Chrome, after the
    disk usage is calculated. The disk usage value represents the accumulated
    disk usage by websites.
  </summary>
</histogram>

<histogram name="Android.ManageSpace.UnimportantDiskUsageMB" units="MB">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Recorded when the user opens the 'Manage Space' screen for Chrome, after the
    disk usage is calculated. The disk usage value represents the accumulated
    disk usage by websites that are not considered 'important'.
  </summary>
</histogram>

<histogram name="Android.MemoryPressureMonitor.GetMyMemoryState.Failed.Time"
    units="microseconds">
  <owner>ssid@chromium.org</owner>
  <summary>
    The duration of each failed ActivityManager.getMyMemoryState() call made by
    MemoryPressureMonitor.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Android.MemoryPressureMonitor.GetMyMemoryState.Succeeded.Time"
    units="microseconds">
  <owner>ssid@chromium.org</owner>
  <summary>
    The duration of each successful ActivityManager.getMyMemoryState() call made
    by MemoryPressureMonitor.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram base="true" name="Android.MemoryPressureNotification"
    enum="Android.MemoryPressureNotification">
  <owner>ssid@chromium.org</owner>
  <summary>
    Memory pressure notifications sent by Android through ComponentCallbacks2.
    This metric was added 04/2018; for prior data for the browser process see
    MemoryAndroid.NotificationBackground and
    MemoryAndroid.NotificationForeground.
  </summary>
</histogram>

<histogram name="Android.ModerateBindingCount" units="bindings">
  <owner>clank-team@google.com</owner>
  <summary>
    The number of moderate bindings which were kept while Chrome process is in
    the foreground. This is logged right before Chrome process goes into the
    background.
  </summary>
</histogram>

<histogram name="Android.MultiInstanceMigration.FailedToRenameMetadataFile"
    enum="Boolean">
  <owner>twellington@chromium.org</owner>
  <owner>tedchoc@chromium.org</owner>
  <summary>
    Renaming the old tab metadata file failed during multi-instance migration.
    Only true is recorded.
  </summary>
</histogram>

<histogram name="Android.MultiInstanceMigration.NewMetadataFileExists"
    enum="Boolean">
  <owner>twellington@chromium.org</owner>
  <owner>tedchoc@chromium.org</owner>
  <summary>
    The new tab metadata file already existed when multi-instance migration was
    attempted. Only true is recorded.
  </summary>
</histogram>

<histogram name="Android.MultiWindowMode.Active" enum="BooleanEnabled">
  <owner>twellington@chromium.org</owner>
  <owner>tedchoc@chromium.org</owner>
  <summary>
    Records on every metrics upload whether the activity is running in Android N
    multi-window mode or not.
  </summary>
</histogram>

<histogram name="Android.MultiWindowMode.IsTabletScreenWidthBelow600"
    enum="Boolean">
  <owner>twellington@chromium.org</owner>
  <owner>tedchoc@chromium.org</owner>
  <summary>
    Records whether the screen width is below 600dp when the activity is in
    Android N multi-window mode. True if the screen width is less than 600dp and
    false if is greater than or equal to 600dp.
  </summary>
</histogram>

<histogram name="Android.MultiWindowMode.ScreenHeight" units="dp">
  <owner>twellington@chromium.org</owner>
  <owner>tedchoc@chromium.org</owner>
  <summary>
    Records the screen height in dp when the activity is in Android N
    multi-window mode. Clamped at 200dp to 1200dp.
  </summary>
</histogram>

<histogram name="Android.MultiWindowMode.ScreenWidth" units="dp">
  <owner>twellington@chromium.org</owner>
  <owner>tedchoc@chromium.org</owner>
  <summary>
    Records the screen width in dp when the activity is in Android N
    multi-window mode. Clamped at 200dp to 1200dp.
  </summary>
</histogram>

<histogram name="Android.MultiWindowMode.TabletScreenWidth" units="dp">
  <owner>twellington@chromium.org</owner>
  <owner>tedchoc@chromium.org</owner>
  <summary>
    Records the screen width in dp when the activity is in Android N
    multi-window mode and the width is below 600dp.
  </summary>
</histogram>

<histogram name="Android.NativeBackgroundTask.TaskFinished"
    enum="BackgroundTaskId" expires_after="2019-08-01">
  <owner>mheikal@chromium.org</owner>
  <owner>hanxi@chromium.org</owner>
  <owner>hnakashima@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records that a specific background task has finished cleanly (i.e. no
    unexpected exits because of chrome crash or OOM). This includes tasks that
    have been stopped due to timeout.
  </summary>
</histogram>

<histogram name="Android.NativeBackgroundTask.TaskStarted"
    enum="BackgroundTaskId" expires_after="2019-08-01">
  <owner>mheikal@chromium.org</owner>
  <owner>hanxi@chromium.org</owner>
  <owner>hnakashima@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records that a specific native background task has been started. This does
    not consider tasks that are marked as DONE or RESCHEDULED before a call to
    start native is made (regardless of whether native is already loaded).
  </summary>
</histogram>

<histogram name="Android.NativeLibraryPreloader.Result.Browser"
    enum="NativeLibraryPreloaderResult">
  <owner>michaelbai@chromium.org</owner>
  <summary>
    The return value of NativeLibraryPreloader.loadLibrary() in browser process,
    is recorded once per browser process start.
  </summary>
</histogram>

<histogram name="Android.NativeLibraryPreloader.Result.Renderer"
    enum="NativeLibraryPreloaderResult">
  <owner>michaelbai@chromium.org</owner>
  <summary>
    The return value of NativeLibraryPreloader.loadLibrary() in renderer
    process, is recorded once per renderer process start.
  </summary>
</histogram>

<histogram name="Android.NTP.Impression" enum="NTPImpressionType">
  <owner>finkm@chromium.org</owner>
  <summary>
    Counts impressions of the NTP on Android. It also counts potential
    impressions. A potential impression is a place where it would make sense to
    open the NTP instead of the current view. E.g. the no-tab view is counted as
    a potential impression since this view could be replaced with the NTP. For
    better comparison regular impressions are also counted. The no-tab view
    counting happens right after the user closed the last tab and the regular
    impression counting happens at construction time of the NTP (=whenever a new
    tab is opened).
  </summary>
</histogram>

<histogram base="true" name="Android.OfflineItems.StateAtCancel"
    enum="OfflineItemsStateAtCancel">
  <owner>chili@chromium.org</owner>
  <summary>
    State of a download or offline page request at user-initiated cancel.
  </summary>
</histogram>

<histogram name="Android.Omnibox.InvalidMatch" enum="MatchResult">
  <owner>tedchoc@chromium.org</owner>
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Recorded every time AutocompleteController.java interacts with
    autocomplete_controller_android.cc via an index reference to an item.
    Indicates how often the match referenced by Java is different from the match
    referenced by C++ at that position.
  </summary>
</histogram>

<histogram name="Android.OmniboxFocusReason" enum="OmniboxFocusReason">
  <owner>mdjones@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <owner>amaralp@chromium.org</owner>
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>Records how the omnibox was focused.</summary>
</histogram>

<histogram name="Android.PackageStats.CacheSize" units="MB">
  <owner>nyquist@chromium.org</owner>
  <summary>
    Records the size of the user's cache at startup on Android O and above.
  </summary>
</histogram>

<histogram name="Android.PackageStats.CodeSize" units="MB">
  <owner>nyquist@chromium.org</owner>
  <summary>
    At startup, records the space on disk taken by Chrome application including
    APK resources, compiled libraries, and extracted native code. Only recorded
    for Android O and above.
  </summary>
</histogram>

<histogram name="Android.PackageStats.DataSize" units="MB">
  <owner>nyquist@chromium.org</owner>
  <summary>
    Records the size of the user's data directory at startup on Android O and
    above. Does not include cache size.
  </summary>
</histogram>

<histogram name="Android.Permissions.ReadStorage"
    enum="BooleanHasReadStoragePermission" expires_after="M75">
  <owner>jeffreycohen@chromium.org</owner>
  <owner>ewald@chromium.org</owner>
  <summary>
    At startup, records whether the Chrome application has been granted the read
    storage permission on Android.
  </summary>
</histogram>

<histogram name="Android.PhotoPicker.BitmapScalerTask" units="ms">
  <owner>finnur@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Measures the amount of time the BitmapScaler spent scaling a bitmap.
  </summary>
</histogram>

<histogram name="Android.PhotoPicker.CacheHits" units="Hits">
  <owner>finnur@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Measures the total number of images served from the high-res cache during
    the lifetime of the dialog.
  </summary>
</histogram>

<histogram name="Android.PhotoPicker.DecodeRequests" units="Hits">
  <owner>finnur@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Measures the total number of images sent for decoding during the lifetime of
    the dialog.
  </summary>
</histogram>

<histogram name="Android.PhotoPicker.DecoderHostFailureOutOfMemory" units="%">
  <owner>finnur@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The percentage of out-of-memory decoding failures, per batch of photos
    decoded. Intended to help identify if there are browsers where decoding
    fails 100% of the time. Be wary at looking at other numbers in the
    histogram, as a value emitted at, say, 50% may represent one failure in a
    two-item decoding or 50 failures in a hundred-item decoding. These are
    qualitatively different experiences for a user.
  </summary>
</histogram>

<histogram name="Android.PhotoPicker.DecoderHostFailureRuntime" units="%">
  <owner>finnur@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The percentage of runtime error decoding failures, per batch of photos
    decoded. Intended to help identify if there are browsers where decoding
    fails 100% of the time. Be wary at looking at other numbers in the
    histogram, as a value emitted at, say, 50% may represent one failure in a
    two-item decoding or 50 failures in a hundred-item decoding. These are
    qualitatively different experiences for a user.
  </summary>
</histogram>

<histogram name="Android.PhotoPicker.DialogAction"
    enum="PhotoPickerDialogAction">
  <owner>finnur@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Records which action the user takes in the PhotoPickerDialog.
  </summary>
</histogram>

<histogram name="Android.PhotoPicker.EnumeratedFiles" units="Files">
  <owner>finnur@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Measures the total number of files returned from the enumeration operation.
    Measured once at the end of the enumeration operation.
  </summary>
</histogram>

<histogram name="Android.PhotoPicker.EnumeratedRate"
    units="Files per 10th of a second">
  <owner>finnur@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Measures the enumeration rate (files per tenths of a second). Measured once
    at the end of the enumeration operation.
  </summary>
</histogram>

<histogram name="Android.PhotoPicker.EnumerationTime" units="ms">
  <owner>finnur@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Measures the amount of time the BitmapScaler spent enumerating files on
    disk. Measured once at the end of the enumeration operation.
  </summary>
</histogram>

<histogram name="Android.PhotoPicker.ExifOrientation" enum="ExifOrientation">
  <owner>finnur@chromium.org</owner>
  <summary>
    Records whether the EXIF orientation directive is present and what it is set
    to. Collected once per decoded image, but only on Android N and above (and
    when no IO error occurs).
  </summary>
</histogram>

<histogram name="Android.PhotoPicker.ImageByteCount" units="KB">
  <owner>finnur@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Measures the byte count of a decoded image. Only recorded on successful
    decodes.
  </summary>
</histogram>

<histogram name="Android.PhotoPicker.ImageDecodeTime" units="ms">
  <owner>finnur@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Measures the amount of time it takes the decoder to decode one image. Only
    recorded on successful decodes.
  </summary>
</histogram>

<histogram name="Android.PhotoPicker.RequestProcessTime" units="ms">
  <owner>finnur@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Measures the amount of time it takes to process one decode request end to
    end (RPC and actual decoding of the bits by utility process). Recorded
    whether or not the RPC/decode request was successful.
  </summary>
</histogram>

<histogram name="Android.PhotoPicker.UpscaleLowResBitmap" units="ms">
  <owner>finnur@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Measures the amount of time it takes to upscale a bitmap from the low-res
    cache. Recorded only when there a cache miss from the high-res bitmap but a
    cache hit from the low-res (placeholder) bitmap.
  </summary>
</histogram>

<histogram name="Android.PrepareMenu.OpenWebApkVisibilityCheck" units="ms">
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <summary>
    Measures the amount of time spent querying for whether a WebAPK is already
    installed.
  </summary>
</histogram>

<histogram name="Android.RecentTabsManager.OtherDevices" units="count">
  <owner>huayinz@chromium.org</owner>
  <summary>
    Records the number of other devices listed in recent tabs page when recent
    tabs page is loaded.
  </summary>
</histogram>

<histogram name="Android.RecentTabsManager.RecentlyClosedTabs" units="count">
  <owner>huayinz@chromium.org</owner>
  <summary>
    Records the number of recently-closed tabs shown in recent tabs page when
    recent tabs page is loaded.
  </summary>
</histogram>

<histogram name="Android.RecentTabsManager.TotalTabs" units="count">
  <owner>huayinz@chromium.org</owner>
  <summary>
    Records the total number of tabs listed in recent tabs page (sum of all tab
    from other devices plus recently-closed tabs) when recent tabs page is
    loaded.
  </summary>
</histogram>

<histogram name="Android.ResourceBundle.LoadLocaleFailure"
    enum="AndroidResourceBundleLocaleFailures" expires_after="M75">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Logged when ResourceBundle::LoadLocaleResources() returns the empty string
    for the locale in one of the error cases. The enum specifies which error
    case was hit.
  </summary>
</histogram>

<histogram name="Android.RestoreResult" enum="AndroidRestoreResult">
  <owner>aberent@chromium.org</owner>
  <summary>
    Whether Chrome tried to restore its settings from a previous device or
    installation, and what happened when it did. Only recorded on first run.
  </summary>
</histogram>

<histogram name="Android.SeccompStatus.PhotoPickerSandbox"
    enum="AndroidSeccompSandboxStatus">
  <owner>peter@chromium.org</owner>
  <owner>rsesek@chromium.org</owner>
  <summary>
    Reports the status of the seccomp-bpf sandbox in photo picker decoding
    processes. Anything other than &quot;Sandbox Engaged&quot; indicates the
    sandbox is not turned on. See https://crbug.com/477049.
  </summary>
</histogram>

<histogram name="Android.SeccompStatus.Prctl" enum="AndroidSeccompStatus">
  <owner>rsesek@chromium.org</owner>
  <summary>
    Reports the level of kernel support for the seccomp-bpf sandbox using
    prctl(PR_SET_SECCOMP).
  </summary>
</histogram>

<histogram name="Android.SeccompStatus.RendererSandbox"
    enum="AndroidSeccompSandboxStatus">
  <owner>rsesek@chromium.org</owner>
  <summary>
    Reports the status of the seccomp-bpf sandbox in renderer processes.
    Anything other than &quot;Sandbox Engaged&quot; indicates the sandbox is not
    turned on. See https://crbug.com/477049.
  </summary>
</histogram>

<histogram name="Android.SeccompStatus.Syscall" enum="AndroidSeccompStatus">
  <owner>rsesek@chromium.org</owner>
  <summary>
    Reports the level of kernel support for the seccomp-bpf sandbox using the
    seccomp system call.
  </summary>
</histogram>

<histogram name="Android.SelectFileDialogImgCount" units="images">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Records the number of images selected in either the new Photo Picker or the
    standard Android file picker. Note: Only recorded in situations determined
    to warrant the new Photo Picker (not, for example, if mixed content, like
    images and text files, was requested).
  </summary>
</histogram>

<histogram name="Android.SelectFileDialogScope" enum="SelectFileDialogScope">
  <owner>peter@chromium.org</owner>
  <summary>
    Records the scope of accepted content for a select file dialog when shown by
    a Web developer.
  </summary>
</histogram>

<histogram name="Android.StrictMode.CheckGooglePlayServicesTime" units="ms">
  <owner>wnwen@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Measures the amount of time due to a StrictMode violation from checking for
    whether play services is available.
  </summary>
</histogram>

<histogram name="Android.StrictMode.CheckGoogleSignedTime" units="ms">
  <owner>estevenson@chromium.org</owner>
  <owner>wnwen@chromium.org</owner>
  <summary>
    Measures the amount of time due to a StrictMode violation from checking for
    whether a package is Google signed.
  </summary>
</histogram>

<histogram name="Android.StrictMode.DocumentModeSharedPrefs" units="ms">
  <obsolete>
    Deprecated 05/2016 in Issue 582539 with the removal of document mode.
  </obsolete>
  <owner>hartmanng@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Measures the amount of time due to a StrictMode violation from fetching the
    DocumentMode shared preferences file.
  </summary>
</histogram>

<histogram name="Android.StrictMode.DocumentTabStateLoad" units="ms">
  <obsolete>
    Deprecated 05/2016 in Issue 582539 with the removal of document mode.
  </obsolete>
  <owner>wnwen@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Measures the amount of time due to a StrictMode violation from document mode
    loading its prioritized tab's state.
  </summary>
</histogram>

<histogram name="Android.StrictMode.DownloadsDir" units="ms">
  <owner>wnwen@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Measures the amount of time due to a StrictMode violation from fetching and
    possibly creating the downloads directory.
  </summary>
</histogram>

<histogram name="Android.StrictMode.NotificationUIBuildTime" units="ms">
  <owner>wnwen@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Measures the amount of time due to a StrictMode violation from custom
    notification builder through date formatting.
  </summary>
</histogram>

<histogram name="Android.StrictMode.OverrideUrlLoadingTime" units="ms">
  <owner>yfriedman@chromium.org</owner>
  <owner>wnwen@chromium.org</owner>
  <summary>
    Measures the amount of time due to a StrictMode violation from calling out
    to Android activity manager.
  </summary>
</histogram>

<histogram name="Android.StrictMode.SnippetUIBuildTime" units="ms">
  <owner>wnwen@chromium.org</owner>
  <owner>wnwen@chromium.org</owner>
  <summary>
    Measures the amount of time due to a StrictMode violation from snippet UI
    through date formatting.
  </summary>
</histogram>

<histogram name="Android.StrictMode.TabPersistentStore" units="ms">
  <owner>wnwen@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Measures time spent during StrictMode-whitelisted code in
    TabPersistentStore.
  </summary>
</histogram>

<histogram name="Android.StrictMode.ThumbnailCacheDir" units="ms">
  <owner>wnwen@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Measures the amount of time due to a StrictMode violation from fetching for
    the thumbnail cache directory.
  </summary>
</histogram>

<histogram name="Android.StrictMode.WebappAuthenticatorMac" units="ms">
  <owner>wnwen@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Measures the amount of time due to a StrictMode violation from looking up a
    webapp's MAC on startup.
  </summary>
</histogram>

<histogram name="Android.StrictMode.WebappDir" units="ms">
  <owner>wnwen@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Measures the amount of time due to a StrictMode violation from fetching for
    creating the webapp directory.
  </summary>
</histogram>

<histogram name="Android.StrictMode.WebappSaveState" units="ms">
  <owner>wnwen@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Measures the amount of time due to a StrictMode violation from reading and
    saving webapp state.
  </summary>
</histogram>

<histogram name="Android.StrictMode.WebappSharedPrefs" units="ms">
  <owner>hartmanng@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Measures the amount of time due to a StrictMode violation from fetching the
    Webapp shared preferences file.
  </summary>
</histogram>

<histogram name="Android.Survey.DownloadRequested" enum="BooleanRequested">
  <owner>twellington@chromium.org</owner>
  <summary>
    Recorded when a survey download is requested. If the client already has
    successfully downloaded a survey, 'not requested' is recorded.
  </summary>
</histogram>

<histogram name="Android.Survey.DownloadResponseCode"
    enum="SurveyDownloadResponseCodes">
  <owner>twellington@chromium.org</owner>
  <summary>The response code of the completed survey download request.</summary>
</histogram>

<histogram name="Android.Survey.InfoBarClosingState"
    enum="InfoBarClosingStates">
  <owner>twellington@chromium.org</owner>
  <summary>
    If the infobar was visible when it was closed and if it was closed directly
    or not.
  </summary>
</histogram>

<histogram name="Android.Survey.ShowSurvey" enum="BooleanSuccess">
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether or not the survey was successfully shown after its download.
  </summary>
</histogram>

<histogram name="Android.Survey.SurveyFilteringResults"
    enum="SurveyFilteringResult">
  <owner>twellington@chromium.org</owner>
  <summary>
    The result of the survey filtering process. Each enum represents a different
    filter that caught the user. This is recorded on cold starts when we check
    if a user qualifies for a survey.
  </summary>
</histogram>

<histogram name="Android.SysUtilsLowEndMatches" enum="BooleanEqual">
  <owner>ssid@chromium.org</owner>
  <summary>
    Measures whether Chrome low-end detection logic based on RAM size matches
    the Android system utility value for isLowRamDevice(). This is recorded once
    per browser start and may be recorded in the renderer if isLowEndDevice()
    bit is checked.
  </summary>
</histogram>

<histogram name="Android.TabNavigationInterceptResult"
    enum="NavigationInterceptResult">
  <owner>tedchoc@chromium.org</owner>
  <summary>
    The distribution of results when running ExternalNavigationHandler, this
    shows how often we send intents to be handled by other applications.
  </summary>
</histogram>

<histogram name="Android.TabPersistentStore.MergeStateMetadataFileSize"
    units="bytes">
  <owner>twellington@chromium.org</owner>
  <summary>
    The number of bytes read for the other tab state's metadata file when
    merging tab states in Android N+.
  </summary>
</histogram>

<histogram name="Android.TabPersistentStore.MergeStateTabCount" units="tabs">
  <owner>twellington@chromium.org</owner>
  <summary>
    The number of normal and incognito tabs merged (for Android N+
    multi-instance). This will be logged for both cold-start and non-cold-start
    merging assuming that the native library is loaded.
  </summary>
</histogram>

<histogram name="Android.TabPersistentStore.MergeStateTimePerTab" units="ms">
  <owner>twellington@chromium.org</owner>
  <summary>
    Measures the amount of time it takes to restore state for each merged tab
    (for Android N+ multi-instance). This will only be logged for non-cold-start
    merging, because restoring merged tabs is not distingushed from restoring
    regular tabs on cold start.
  </summary>
</histogram>

<histogram name="Android.TabPersistentStore.MetadataFileSize">
  <owner>wnwen@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>The number of bytes written for the tab metadata file.</summary>
</histogram>

<histogram name="Android.ThumbnailDiskStorage.CachedBitmap.Found"
    enum="BooleanFound" expires_after="2020-01-30">
  <owner>shaktisahu@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    Records the status of a thumbnail query from the thumbnail disk storage.
  </summary>
</histogram>

<histogram name="Android.ThumbnailDiskStorage.Size" units="KB"
    expires_after="2020-01-30">
  <owner>shaktisahu@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    Measures the size of the thumbnail disk storage used. Recorded during
    initialization.
  </summary>
</histogram>

<histogram base="true" name="Android.ThumbnailProvider.BitmapCache.Size"
    units="KB" expires_after="2020-01-30">
<!-- Name completed by histogram_suffixes
     name="ThumbnailProvider.ClientType" -->

  <owner>shaktisahu@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    Measures the size of the bitmap cache used. Recorded whenever a bitmap is
    added to the cache.
  </summary>
</histogram>

<histogram base="true" name="Android.ThumbnailProvider.CachedBitmap.Found"
    enum="BooleanFound" expires_after="2020-01-30">
<!-- Name completed by histogram_suffixes
     name="ThumbnailProvider.ClientType" -->

  <owner>shaktisahu@chromium.org</owner>
  <owner>clank-downloads@google.com</owner>
  <summary>
    Records the status of a thumbnail query from the thumbnail provider
    in-memory cache.
  </summary>
</histogram>

<histogram name="Android.WebView.LoadDataWithBaseUrl.BaseUrl"
    enum="WebViewUrlScheme" expires_after="2019-05-05">
  <owner>ntfschr@chromium.org</owner>
  <owner>torne@chromium.org</owner>
  <summary>
    Records the scheme for the baseUrl parameter to loadDataWithBaseURL. This
    also records if this value is &quot;empty&quot;, as determined by
    TextUtils.isEmpty().
  </summary>
</histogram>

<histogram name="Android.WebView.LoadDataWithBaseUrl.HistoryUrl"
    enum="HistoryUrlType">
  <owner>jamwalla@chromium.org</owner>
  <summary>
    Records whether the historyUrl parameter to loadDataWithBaseUrl is empty/
    null, the same as the baseUrl parameter, or different from baseUrl.
  </summary>
</histogram>

<histogram name="Android.WebView.LoadUrl.DataUriHasOctothorpe" enum="Boolean">
  <owner>smcgruer@chromium.org</owner>
  <summary>
    Records if a data url passed to loadUrl had a '#' character. This is to be
    used in the effort to deprecate the incorrect treatment of '#' characters in
    data URIs; see http://crbug.com/823666#c30.
  </summary>
</histogram>

<histogram name="Android.WebView.LoadUrl.UrlScheme" enum="WebViewUrlScheme"
    expires_after="2019-05-05">
  <owner>ntfschr@chromium.org</owner>
  <owner>torne@chromium.org</owner>
  <summary>
    Records the scheme for the URL loaded by a browser-initiated navigation.
    Specifically, this is the scheme of the URL passed to loadUrl() (and its
    overloads), postUrl(), and loadData (this is implicitly &quot;data:&quot;).
    also records if this value is &quot;empty&quot;, which means either null or
    &quot;about:blank&quot;. This intentionally excludes loadDataWithBaseURL().
  </summary>
</histogram>

<histogram name="Android.WebView.ShouldInterceptRequest.InterceptionType"
    enum="InterceptionType" expires_after="2020-02-11">
  <owner>timvolodine@chromium.org</owner>
  <owner>ntfschr@chromium.org</owner>
  <summary>
    Whether the request was intercepted by the embedder of Android WebView, and
    if so which url scheme was used. Intercepted request are requests for which
    the shouldInterceptRequest() callback returned a non-null response.
  </summary>
</histogram>

<histogram name="Android.WebView.SplitApkWorkaroundResult"
    enum="SplitApkWorkaroundResult" expires_after="M72">
  <owner>tiborg@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Result of applying a workaround to fix a crash on Android O if the WebView
    provider is a split APK (see crbug.com/889954 for more details).
  </summary>
</histogram>

<histogram name="Android.WebView.Startup.CreationTime.Stage1.FactoryInit"
    units="ms">
  <owner>changwan@chromium.org</owner>
  <summary>
    How long it takes to initialize a WebViewChromiumFactoryProvider. This is
    the first major phase of the WebViewChromium construction.
  </summary>
</histogram>

<histogram name="Android.WebView.Startup.CreationTime.Stage2.ProviderInit.Cold"
    units="ms">
  <owner>changwan@chromium.org</owner>
  <summary>
    How long it takes to initialize a WebViewProvider, the first time that one
    is initialized. WebViewProvider initialization is the second major phase of
    WebViewChromium construction. The first initialization is recorded
    separately because it is usually much slower than subsequent ones.
  </summary>
</histogram>

<histogram name="Android.WebView.Startup.CreationTime.Stage2.ProviderInit.Warm"
    units="ms">
  <owner>changwan@chromium.org</owner>
  <summary>
    How long it takes to initialize a WebViewProvider, the first time that one
    is initialized. WebViewProvider initialization is the second major phase of
    WebViewChromium construction. When it is not the first time, it is faster
    and thus recorded separately.
  </summary>
</histogram>

<histogram name="Android.WebView.SupportLibrary.ClientIsCompat"
    enum="WebViewClientTypeEnum" expires_after="2019-05-05">
  <owner>ntfschr@chromium.org</owner>
  <owner>changwan@chromium.org</owner>
  <summary>
    Records whether the WebViewClient provided by the app is an instance of
    WebViewClientCompat (and therefore exposes AndroidX callbacks). This is
    recorded each time the app sets a new WebViewClient via
    WebView#setWebViewClient().
  </summary>
</histogram>

<histogram name="Android.WebView.TargetSdkVersion" enum="AndroidApiLevel">
  <owner>changwan@chromium.org</owner>
  <summary>
    The version of the target SDK of the app WebView is running in. This is
    recorded at WebView creation.
  </summary>
</histogram>

<histogram name="Android.WebView.VariationsEnableState"
    enum="AndroidWebViewVariationsEnableState" expires_after="M69">
  <owner>paulmiller@chromium.org</owner>
  <owner>changwan@chromium.org</owner>
  <summary>
    Indicates whether variations is enabled. We want to know how enabling
    variations affects metrics, but we can't enable variations as a variations
    study, since variations can't enable/disable itself. Instead, WebView
    hard-codes a random variable for enabling variations, and reports the result
    in this histogram.
  </summary>
</histogram>

<histogram name="AndroidSms.FcmMessageDispatchFailure"
    enum="AndroidSmsFcmMessageType">
  <owner>azeemarshad@chromium.org</owner>
  <summary>
    Records message types for which all retry attempts failed when dispatching
    to Android Messages for Web Service-Worker. This is recorded when using FCM
    web push for background notificaitons.
  </summary>
</histogram>

<histogram name="AndroidSms.FcmMessageDispatchRetry"
    enum="AndroidSmsFcmMessageType">
  <owner>azeemarshad@chromium.org</owner>
  <summary>
    Records message types for which a retry was attempted when dispatching to
    Android Messages for Web Service-Worker. This is recorded when using FCM web
    push for background notificaitons.
  </summary>
</histogram>

<histogram name="AndroidSms.FcmMessageDispatchSuccess"
    enum="AndroidSmsFcmMessageType">
  <owner>azeemarshad@chromium.org</owner>
  <summary>
    Records message types for which dispatching to Android Messages for Web
    Service-Worker succeeded. This is recorded when using FCM web push for
    background notificaitons.
  </summary>
</histogram>

<histogram name="AndroidSms.MultiDeviceFeatureState"
    enum="MultiDevice_FeatureState">
  <owner>jlklein@chromium.org</owner>
  <summary>
    Indicates the feature state of the Messages feature. This metric is emitted
    to at the creation of the user session (when the user logs in), and when
    feature state updates occur.
  </summary>
</histogram>

<histogram name="AndroidSms.PWAInstallationResult"
    enum="WebAppInstallResultCode">
  <owner>azeemarshad@chromium.org</owner>
  <summary>
    Records installation result code when Android Messages for Web PWA is
    installed through Multidevice setup or settings.
  </summary>
</histogram>

<histogram name="AndroidSms.PWAUninstallationResult" enum="BooleanSuccess">
  <owner>azeemarshad@chromium.org</owner>
  <owner>hansberry@chromium.org</owner>
  <summary>
    Records success/failure for when Android Messages for Web PWA is
    uninstalled. The PWA is uninstalled when the messages URL changes, resulting
    in the PWA being uninstalled at the old URL and reinstalled at the new URL.
  </summary>
</histogram>

<histogram name="AndroidSms.ServiceWorkerLifetime" units="ms">
  <owner>azeemarshad@chromium.org</owner>
  <summary>
    Tracks the duration of time for which the Android Messages for Web Service-
    Worker is handling background connection.
  </summary>
</histogram>

<histogram name="AndroidSms.ServiceWorkerMessageDispatchStatus"
    enum="BooleanSuccess">
  <owner>azeemarshad@chromium.org</owner>
  <summary>
    Tracks dispatch success/failure status of the start streaming message sent
    to the Android Messages for Web Service-Worker.
  </summary>
</histogram>

<histogram name="AndroidTabCloseUndo.Toast"
    enum="AndroidTabCloseUndoToastEvent">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    When a user closes a tab an undo toast will popup on certain devices giving
    the user the chance to undo closing that tab. This stat tracks how the user
    interacts with that UI and what actions they take. A cold start means that
    the undo bar wasn't showing when it was triggered to show again. A warm
    start means that it was. Warm starts can happen when the user closes
    multiple tabs close together. When the undo bar is dismissed, all closes
    that were queued up to be undone are committed. This can happen either by a
    timeout or by an action by the user to move to another part of the UI.
  </summary>
</histogram>

<histogram name="AnimatedImage.NumOfFramesSkipped" units="count">
  <owner>khushalsagar@chromium.org</owner>
  <summary>
    If the frame rate for the image animation can not be reached, frames in the
    animation are skipped to catch up to the desired frame. This metric tracks
    the number of frames skipped during catch up, and can be used to assess the
    smoothness of these animations. It records the number of frames skipped each
    time the animation is ticked forward to draw the next frame. In the ideal
    case, where the animation can be drawn at the desired rate, 0 frames should
    be skipped. Note that skipping of frames can also be triggered if the
    animation was intentionally paused (on becoming off-screen, or the tab being
    hidden).
  </summary>
</histogram>

<histogram
    name="Animation.AnimationWorklet.Dispatcher.SynchronousMutateDuration"
    units="microseconds" expires_after="M77">
  <owner>majidvp@chromium.org</owner>
  <owner>animations-dev@chromium.org</owner>
  <summary>
    The time it takes the WorkletMutatorDispatcher to dispatch to and mutate all
    animation worklet mutators synchronously. This includes the time that it
    takes each AnimationWorkletGlobalScope to produce its output (which includes
    V8 script execution) and also any queuing cost associated with posting
    mutation tasks and recieving responses.
  </summary>
</histogram>

<histogram name="Animation.AnimationWorklet.GlobalScope.MutateDuration"
    units="microseconds" expires_after="M77">
  <obsolete>
    Deprecated as of 01/2019. Replaced with
    Animation.AnimationWorklet.MutateDuration.
  </obsolete>
  <owner>majidvp@chromium.org</owner>
  <owner>animations-dev@chromium.org</owner>
  <summary>
    The time it takes for AnimationWorkletGlobalScope to produce a mutation
    update. This includes all V8 script execution cost.
  </summary>
</histogram>

<histogram name="Animation.AnimationWorklet.MutateDuration"
    units="microseconds" expires_after="M77">
  <owner>majidvp@chromium.org</owner>
  <owner>kevers@chromium.org</owner>
  <owner>animations-dev@chromium.org</owner>
  <summary>
    The time it takes for an AnimationWorklet to produce a mutation update. This
    includes all V8 script execution cost.
  </summary>
</histogram>

<histogram name="AppBanners.BeforeInstallEvent"
    enum="AppBannersBeforeInstallEvent">
  <owner>dominickn@chromium.org</owner>
  <summary>
    App banners promote an application related to the current website, and are
    requested specifically through the current page's HTML. This stat tracks
    usage of the BeforeInstallPromptEvent, which allows developers to control
    when an app banner appears. The events in this histogram are not mutually
    exclusive - for example, preventDefault() must be called if prompt() is
    called.
  </summary>
</histogram>

<histogram name="AppBanners.DismissEvent" enum="AppBannersDismissEvent">
  <owner>pjmclachlan@google.com</owner>
  <owner>pcovell@google.com</owner>
  <summary>
    App banners promote an application related to the current website, and are
    requested specifically through the current page's HTML. This stat tracks the
    different ways that an app banner left the screen, e.g. through an automatic
    dismissal after navigation or an explicit user action.
  </summary>
</histogram>

<histogram name="AppBanners.DisplayEvent" enum="AppBannersDisplayEvent">
  <owner>pjmclachlan@google.com</owner>
  <owner>pcovell@google.com</owner>
  <summary>
    App banners promote an application related to the current website, and are
    requested specifically through the current page's HTML. This stat tracks
    when an app banner was requested and how the request was handled, e.g. the
    user blocked its appearance or the banner was ultimately created.
  </summary>
</histogram>

<histogram name="AppBanners.InstallableStatusCode"
    enum="AppBannersInstallableStatusCode">
  <owner>dominickn@chromium.org</owner>
  <summary>
    App banners promote an application related to the current website, and are
    requested specifically through the current page's HTML. This stat tracks the
    status code logged by the app banner system as it processes a site's
    eligibility for an app banner. Every request for a banner will be logged in
    a bucket of this histogram.
  </summary>
</histogram>

<histogram name="AppBanners.InstallEvent" enum="AppBannersInstallEvent">
  <owner>pjmclachlan@google.com</owner>
  <owner>pcovell@google.com</owner>
  <summary>
    App banners promote an application related to the current website, and are
    requested specifically through the current page's HTML. This stat tracks
    when a user triggers an install dialog for the app promoted by the banner,
    as well as whether or not the user ultimately decided to install the app.
  </summary>
</histogram>

<histogram name="AppBanners.MinutesFromFirstVisitToBannerShown" units="minutes">
  <owner>dominickn@chromium.org</owner>
  <summary>
    App banners promote an application related to the current website, and are
    requested specifically through the current page's HTML. This stat tracks the
    number of minutes between the first recorded visit to an origin and the time
    when the banner is actually shown.
  </summary>
</histogram>

<histogram name="AppBanners.UserResponse" enum="AppBannersUserResponse">
  <owner>dominickn@chromium.org</owner>
  <summary>
    App banners promote an application related to the current website, and are
    requested specifically through the current page's HTML. This stat
    specifically tracks a user's response to a displayed banner.
  </summary>
</histogram>

<histogram name="appcache.CheckResponseResult"
    enum="AppCacheCheckResponseResult">
  <owner>mek@chromium.org</owner>
  <summary>AppCache check response result code.</summary>
</histogram>

<histogram name="appcache.CompletionQueueTime" units="ms">
  <owner>mek@chromium.org</owner>
  <summary>
    Time elapsed between a completion task being queued and run.
  </summary>
</histogram>

<histogram name="appcache.CompletionRunTime" units="ms">
  <owner>mek@chromium.org</owner>
  <summary>
    The amount of time taken to run a completion task on the IO thread.
  </summary>
</histogram>

<histogram name="appcache.CorruptionDetected">
  <owner>mek@chromium.org</owner>
  <summary>
    Tracks the number of times corruption is detected in the sql database.
  </summary>
</histogram>

<histogram name="appcache.InitResult" enum="AppCacheInitResult">
  <owner>mek@chromium.org</owner>
  <summary>AppCache initialization result code.</summary>
</histogram>

<histogram name="appcache.JobStartDelay.AppCache" units="ms">
  <obsolete>
    Deprecated 2018-03-20. No longer tracked.
  </obsolete>
  <owner>mek@chromium.org</owner>
  <summary>
    How long URLRequests to be retrieved from the appcache are delayed.
  </summary>
</histogram>

<histogram name="appcache.JobStartDelay.Error" units="ms">
  <obsolete>
    Deprecated 2018-03-20. No longer tracked.
  </obsolete>
  <owner>mek@chromium.org</owner>
  <summary>
    How long URLRequests that result in a synthesized error are delayed.
  </summary>
</histogram>

<histogram name="appcache.JobStartDelay.Network" units="ms">
  <obsolete>
    Deprecated 2018-03-20. No longer tracked.
  </obsolete>
  <owner>mek@chromium.org</owner>
  <summary>
    How long URLRequests to be retrieved over the network are delayed.
  </summary>
</histogram>

<histogram name="appcache.MainPageLoad" enum="BooleanSecure">
  <owner>mek@chromium.org</owner>
  <summary>
    Counts the number of appcached page loads for secure vs insecure origins.
  </summary>
</histogram>

<histogram name="appcache.MainResourceResponseRetrieval" enum="BooleanSuccess">
  <owner>mek@chromium.org</owner>
  <summary>
    Tracks the success rate of retrieving a main resource from the appcache.
  </summary>
</histogram>

<histogram name="appcache.MissingManifestDetectedAtCallsite"
    enum="AppCacheErrorSite">
  <owner>mek@chromium.org</owner>
  <summary>Identifies where a missing manifest was detected occured.</summary>
</histogram>

<histogram name="appcache.MissingManifestEntry" enum="BooleanSuccess">
  <owner>mek@chromium.org</owner>
  <summary>
    Logged on each occurrence of there being no record for the manifest file in
    the entries table.
  </summary>
</histogram>

<histogram name="appcache.ReinitAttempt">
  <owner>mek@chromium.org</owner>
  <summary>
    Tracks the number of times the appcache reinit process occurs. The boolean
    value indicates whether it was a repeated attempt to reinitialize during a
    browsing session.
  </summary>
</histogram>

<histogram name="appcache.SubResourceResponseRetrieval" enum="BooleanSuccess">
  <owner>mek@chromium.org</owner>
  <summary>
    Tracks the success rate of retrieving a sub resource from the appcache.
  </summary>
</histogram>

<histogram name="appcache.TaskQueueTime" units="ms">
  <owner>mek@chromium.org</owner>
  <summary>
    Time elapsed between a background task being queued and run.
  </summary>
</histogram>

<histogram name="appcache.TaskRunTime" units="ms">
  <owner>mek@chromium.org</owner>
  <summary>The amount of time taken to run a background task.</summary>
</histogram>

<histogram name="appcache.UpdateJobResult" enum="AppCacheUpdateJobResult">
  <owner>mek@chromium.org</owner>
  <summary>AppCache update job result code.</summary>
</histogram>

<histogram name="appcache.UpdateProgressAtPointOfFaliure" units="%">
  <owner>mek@chromium.org</owner>
  <summary>Percent completion at point of failure of an update job.</summary>
</histogram>

<histogram name="appcache.UpdateWasOffOriginAtPointOfFailure" enum="Boolean">
  <owner>mek@chromium.org</owner>
  <summary>
    Whether the resource causing the failure was from a different origin.
  </summary>
</histogram>

<histogram name="appcache.UpdateWasStalledAtPointOfFailure" enum="Boolean">
  <owner>mek@chromium.org</owner>
  <summary>
    Whether any progresss had been made in the 5 minutes preceeding failure.
  </summary>
</histogram>

<histogram name="AppleScript.CommandEvent" enum="AppleScriptCommandEvents">
  <owner>spqchan@chromium.org</owner>
  <summary>The number of times an AppleScript event gets called.</summary>
</histogram>

<histogram name="Apps.AppInfoDialog.Launches" enum="AppInfoDialogLaunchOrigin">
  <owner>sashab@chromium.org</owner>
  <summary>
    The number of times the app info dialog is launched. This is gathered each
    time the app info dialog is opened, from each of the places the dialog can
    be opened from.
  </summary>
</histogram>

<histogram name="Apps.AppInfoDialog.OpenedForLocation" enum="AppLocation">
  <owner>sashab@chromium.org</owner>
  <summary>
    The location of the app that the dialog was opened for. This is gathered
    each time the app info dialog is opened.
  </summary>
</histogram>

<histogram name="Apps.AppInfoDialog.OpenedForType" enum="ExtensionType">
  <owner>sashab@chromium.org</owner>
  <summary>
    The type of the app that the dialog was opened for. This is gathered each
    time the app info dialog is opened.
  </summary>
</histogram>

<histogram name="Apps.AppLaunch" enum="AppLaunch">
  <owner>tapted@chromium.org</owner>
  <owner>benwells@chromium.org</owner>
  <summary>
    The number of times v2 packaged apps are launched grouped by
    extension_misc::AppLaunchBuckets. See also Extensions.AppLaunch.
  </summary>
</histogram>

<histogram name="Apps.AppLauncherPromo" enum="AppLauncherPromo">
  <obsolete>
    Deprecated 11/2017 in issue 600915 with the removal of app list on platforms
    other than Chrome OS.
  </obsolete>
  <owner>mad@chromium.org</owner>
  <summary>Interactions with the App Launcher promo dialog.</summary>
</histogram>

<histogram name="Apps.AppList.AnswerCardSearchProvider.SearchAnswerLoadingTime"
    units="ms" expires_after="2019-12-31">
  <owner>jennyz@chriomium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <summary>
    The time between sending an answer card request and receiving the
    notification that answer card has finished loading.
  </summary>
</histogram>

<histogram
    name="Apps.AppList.AnswerCardSearchProvider.SearchAnswerNavigationTime"
    units="ms" expires_after="2019-12-31">
  <owner>jennyz@chriomium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <summary>
    The time between sending an answer card request and receiving the
    notification navigation has been finished with a valid answer card.
  </summary>
</histogram>

<histogram name="Apps.AppList.AppSearchProvider.QueryTime" units="ms"
    expires_after="2019-12-31">
  <owner>jennyz@chromium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <summary>
    The time between sending a non-empty query to AppSearchProvider and
    receiving results back.
  </summary>
</histogram>

<histogram name="Apps.AppList.AppSearchProvider.ZeroStateLatency" units="ms"
    expires_after="2019-12-31">
  <owner>jennyz@chromium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <summary>
    The time between sending an empty query to AppSearchProvider and receiving
    Zero State recommendation results back.
  </summary>
</histogram>

<histogram name="Apps.AppList.LauncherSearchProvider.QueryTime" units="ms"
    expires_after="2019-12-31">
  <owner>jennyz@chriomium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <summary>
    The time between sending a non-empty query and receiving results back from
    the extension which performs the file search.
  </summary>
</histogram>

<histogram name="Apps.AppList.OmniboxProvider.QueryTime" units="ms"
    expires_after="2019-12-31">
  <owner>jennyz@chriomium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <summary>
    The time between sending an non-empty query and receiving search results
    back from OmniboxProvider which queries chrome AutocompelteController's
    search providers to get the results.
  </summary>
</histogram>

<histogram name="Apps.AppList.OmniboxProvider.ZeroStateLatency" units="ms"
    expires_after="2019-12-31">
  <owner>jennyz@chriomium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <summary>
    The time between sending an empty query and receiving zero state
    recommendations back from OmniboxProvider which queries chrome
    ZeroStateProvider and gets recent queries back from Google Autocomplete
    server.
  </summary>
</histogram>

<histogram name="Apps.AppList.ZeroStateSearchResultUserActionType"
    enum="AppListZeroStateSearchResultUserActionType"
    expires_after="2019-12-31">
  <owner>jennyz@chromium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <summary>
    The type of the action user performed on zero state search result. This is
    gathered per click of a remove or append button of a search result.
  </summary>
</histogram>

<histogram name="Apps.AppList.ZeroStateSearchResutRemovalDecision"
    enum="AppListZeroStateResultRemovalConfirmation" expires_after="2019-12-31">
  <owner>jennyz@chromium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <summary>
    The decision of the user whether to remove a zero state search result. This
    is gathered per click of a remove or cancel button of a search result
    removal confirmation dialog.
  </summary>
</histogram>

<histogram name="Apps.AppListAppLaunched" enum="SuggestedAppListAppLaunched">
  <owner>newcomer@chromium.org</owner>
  <summary>
    The number of apps launched from the launcher. This is logged each time an
    app is launched.
  </summary>
</histogram>

<histogram name="Apps.AppListAppLaunchedFullscreen"
    enum="SuggestedAppListAppLaunched">
  <owner>newcomer@chromium.org</owner>
  <summary>
    The number of apps launched from the fullscreen launcher. This is logged
    each time an app is launched. The bucket denotes whether the app is
    suggested.
  </summary>
</histogram>

<histogram name="Apps.AppListAppMovingType" enum="AppListAppMovingType">
  <owner>weidongg@chromium.org</owner>
  <summary>
    The different ways to move an app in app list's apps grid. Logged when the
    app moving succeeds.
  </summary>
</histogram>

<histogram name="Apps.AppListAppTypeClicked" enum="AppListAppType"
    expires_after="2019-05-20">
  <owner>pdyson@chromium.org</owner>
  <summary>
    The type of app clicked in the launcher on ChromeOS, recorded after the icon
    is clicked, before it is launched.
  </summary>
</histogram>

<histogram name="Apps.AppListBadgedAppsCount" units="apps">
  <owner>newcomer@chromium.org</owner>
  <summary>
    Number of apps (including ones in folders) with Chrome badge, across all
    Launcher pages. This is gathered per open-launcher event.
  </summary>
</histogram>

<histogram name="Apps.AppListCreationTime" units="ms">
  <owner>calamity@chromium.org</owner>
  <summary>
    The amount of time it takes to build the app list UI. This is logged each
    time the app list is built from scratch.
  </summary>
</histogram>

<histogram name="Apps.AppListDoodleAction" enum="AppListDoodleAction">
  <obsolete>
    App list doesn't support doodles anymore.
  </obsolete>
  <owner>calamity@chromium.org</owner>
  <summary>
    The number of user interactions with the app list doodle. This is logged
    once per action.
  </summary>
</histogram>

<histogram name="Apps.AppListFolder.ShowHide.AnimationSmoothness" units="%">
  <owner>wutao@chromium.org</owner>
  <summary>
    Relative smoothness of animations of showing and hiding app list folder.
    100% represents ideally smooth 60 frames per second. 50% represents only 30
    frames per second is achieved during the animations. 0% should not happen.
    This metric is recorded exactly once when the user starts the folder
    animation in the launcher.
  </summary>
</histogram>

<histogram base="true" name="Apps.AppListFolderNameLength" units="characters"
    expires_after="2019-12-31">
<!-- Name completed by histogram_suffixes
     name="TabletOrClamshellMode" -->

  <owner>mmourgos@chromium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <summary>
    The folder name length in characters when an app list folder gets renamed.
    Logged when the folder name is changed and the texfield is no longer in
    focus.
  </summary>
</histogram>

<histogram name="Apps.AppListFolderOpened" enum="AppListFolderOpened">
  <owner>newcomer@chromium.org</owner>
  <summary>
    The number of times folders are opened in the app list. This is logged when
    the folder is clicked.
  </summary>
</histogram>

<histogram name="Apps.AppListHide.InputLatency" units="ms">
  <owner>wutao@chromium.org</owner>
  <summary>
    Elapsed time from the input event to hide the launcher UI. This is logged
    each time the launcher is dismissed by pressing search key, clicking shelf
    button, or focusing out side of the launcher.
  </summary>
</histogram>

<histogram name="Apps.AppListHowEnabled" enum="AppListEnableSource">
  <obsolete>
    Deprecated 03/2018 with Mash AppList refactoring.
  </obsolete>
  <owner>tapted@chromium.org</owner>
  <summary>
    The trigger that caused the app list to be enabled. Recorded when the user
    first shows the app list. If not shown after one hour, will be recorded
    then. If Chrome was not running at the one-hour mark, will be recorded
    during the next Chrome startup.
  </summary>
</histogram>

<histogram name="Apps.AppListInternalApp.Activate"
    enum="AppListInternalAppName">
  <owner>wutao@chromium.org</owner>
  <summary>
    The internal app in apps grid was opened by the user. This is gathered per
    click of an internal app.
  </summary>
</histogram>

<histogram name="Apps.AppListPageOpened" enum="AppListPage">
  <owner>calamity@chromium.org</owner>
  <summary>
    The page that the app list goes to. This is gathered every time the user
    initiates a transition to another page in the launcher.
  </summary>
</histogram>

<histogram name="Apps.AppListPageSwitcherSource"
    enum="AppListPageSwitcherSource">
  <owner>newcomer@chromium.org</owner>
  <summary>
    The source used to switch pages in the app list's app grid. Logged when the
    page switch succeeds.
  </summary>
</histogram>

<histogram name="Apps.AppListPeekingToFullscreen"
    enum="AppListPeekingToFullscreenSource">
  <owner/>
  <summary>
    Replaced with Apps.AppListPeekingToFullscreenSource on 9/2017.
  </summary>
</histogram>

<histogram name="Apps.AppListPeekingToFullscreenSource"
    enum="AppListPeekingToFullscreenSource">
  <owner>newcomer@chromium.org</owner>
  <summary>
    The source which transitions the app list from Peeking to Fullscreen. This
    is logged when the transition method is used.
  </summary>
</histogram>

<histogram name="Apps.AppListPlayStoreQueryState"
    enum="AppListPlayStoreQueryState">
  <owner>hejq@chromium.org</owner>
  <summary>The state of a Play Store app search request.</summary>
</histogram>

<histogram name="Apps.AppListRecommendedImpResultCountAfterOpen" units="shows"
    expires_after="2019-12-31">
  <owner>napper@chromium.org</owner>
  <owner>robsc@chromium.org</owner>
  <summary>
    When a user opens an app recommendation result, this is the number of times
    we showed the result before opening. Number of times shown is reset to 0
    every 30 days, and is held on device.
  </summary>
</histogram>

<histogram name="Apps.AppListRecommendedResponse"
    enum="ReinstallResponseParseResult">
  <owner>napper@chromium.org</owner>
  <owner>robsc@chromium.org</owner>
  <summary>
    Response when parsing the recommended app list from Play Store for candidate
    app list, recorded every time a response from the play store is parsed in
    client.
  </summary>
</histogram>

<histogram name="Apps.AppListRecommendedResponse.Count">
  <owner>napper@chromium.org</owner>
  <owner>robsc@chromium.org</owner>
  <summary>
    Number of responses from server in Apps.AppListRecommendedResponse.count
    when fetching appListRecommendded GetAppReinstallCandidates.
  </summary>
</histogram>

<histogram name="Apps.AppListRecommendedResponse.Latency" units="ms">
  <owner>napper@chromium.org</owner>
  <owner>robsc@chromium.org</owner>
  <summary>
    Milliseconds elapsed to fetch appListRecommended GetAppReinstallCandidates.
  </summary>
</histogram>

<histogram name="Apps.AppListResultClickIndexAndQueryLength">
  <owner>tby@chromium.org</owner>
  <owner>jiameng@chromium.org</owner>
  <summary>
    The index of a clicked result in the search result box and the length of the
    search query. The index is relative to the SearchResultListView, not the
    overall position in the suggestion window.
  </summary>
</histogram>

<histogram name="Apps.AppListSearchBoxActivated"
    enum="SearchBoxActivationSource">
  <owner>newcomer@chromium.org</owner>
  <summary>
    The number of times the applist searchbox has been activated. This is split
    by keystroke, mouse press, and gesture tap activations. This is gathered
    each time the searchbox goes from inactive to active, not necessarily empty
    to non-empty.
  </summary>
</histogram>

<histogram name="Apps.AppListSearchCommenced" units="searches">
  <owner>tapted@chromium.org</owner>
  <summary>
    The number of searches that are started in the app list. This is gathered
    each time the app list search box transitions from empty to non-empty.
  </summary>
</histogram>

<histogram name="Apps.AppListSearchOmniboxResultOpenType"
    enum="AppListOmniboxResult" expires_after="2019-12-31">
  <owner>jennyz@chromium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The type of app list search omnibox result that was opened by the user. This
    is gathered per OmniboxResult opened in the app list's launcher suggestion
    window.
  </summary>
</histogram>

<histogram name="Apps.AppListSearchQueryLength" units="characters">
  <owner>calamity@chromium.org</owner>
  <summary>
    The length of the app list search query when a result is opened. This is
    gathered per click of a search result.
  </summary>
</histogram>

<histogram name="Apps.AppListSearchResultDistanceFromOrigin" units="keystrokes">
  <owner>calamity@chromium.org</owner>
  <summary>
    The minimum number of arrow keys a user would need to press to navigate to
    the opened search result. This is gathered per click of a search result.
  </summary>
</histogram>

<histogram name="Apps.AppListSearchResultInternalApp.Open"
    enum="AppListInternalAppName">
  <owner>wutao@chromium.org</owner>
  <summary>
    The app list search result of an internal app that was opened by the user.
    This is gathered per click of a search result.
  </summary>
</histogram>

<histogram name="Apps.AppListSearchResultInternalApp.Show"
    enum="AppListInternalAppName">
  <owner>wutao@chromium.org</owner>
  <summary>
    The app list search result of an internal app that was shown to the user.
    This is gathered per creation of a search result. Note: Typing a word with
    multiple letters could trigger multiple creations of the search result.
  </summary>
</histogram>

<histogram name="Apps.AppListSearchResultOpenDisplayType"
    enum="AppListSearchResultDisplayType">
  <owner>calamity@chromium.org</owner>
  <summary>
    The display type of the app list search result that was opened by the user.
    This is gathered per click of a search result.
  </summary>
</histogram>

<histogram name="Apps.AppListSearchResultOpenedSource"
    enum="ApplistSearchResultOpenedSource">
  <owner>newcomer@chromium.org</owner>
  <summary>The state of the app list when a search result was opened.</summary>
</histogram>

<histogram name="Apps.AppListSearchResultOpenType" enum="AppListSearchResult">
  <owner>tapted@chromium.org</owner>
  <summary>
    The type of app list search result that was opened by the user. This is
    gathered per SearchResult opened. Entries for milestone 62 are not accurate
    and should be filtered out when viewing this histogram
    (https://crbug.com/919550).
  </summary>
</histogram>

<histogram name="Apps.AppListShow.InputLatency" units="ms">
  <owner>wutao@chromium.org</owner>
  <summary>
    Elapsed time from the input event to show the launcher UI. This is logged
    each time the app list is shown by pressing search key, clicking shelf
    button, or swiping from shelf.
  </summary>
</histogram>

<histogram name="Apps.AppListShowSource" enum="AppListShowSource">
  <owner>newcomer@chromium.org</owner>
  <summary>
    The number of times the different sources for showing the app list are used.
    This is logged when the app list is shown.
  </summary>
</histogram>

<histogram name="Apps.AppListStateTransitionSource"
    enum="AppListStateTransitionSource">
  <owner>newcomer@chromium.org</owner>
  <summary>
    The number of transitions from the different AppListStates. This is gathered
    each time the launcher transitions from various states in
    AppListView::SetState (Peeking, Half, Fullscreen All Apps, Fullscreen
    Search, and Closed). Not all state transitions are collected because they
    are not meaningful in measuring user activity. This metric is only recorded
    when the Fullscreen App List feature is enabled.
  </summary>
</histogram>

<histogram name="Apps.AppListSuggestedChipLaunched" units="indices"
    expires_after="2019-09-01">
  <owner>newcomer@chromium.org</owner>
  <owner>charleszhao@chromium.org</owner>
  <summary>
    The number of times suggested chips are launched at each suggested-apps
    tile. An index i, ranged from 0 to kNumStartPageTiles - 1, is logged each
    time a suggested chip is launched from i-th tile.
  </summary>
</histogram>

<histogram name="Apps.AppListTileClickIndexAndQueryLength">
  <owner>tby@chromium.org</owner>
  <owner>jiameng@chromium.org</owner>
  <summary>
    The index of a clicked result in the search result app tiles and the length
    of the search query. The index is relative to the SearchTileItemListView,
    not the overall position in the suggestion window.
  </summary>
</histogram>

<histogram name="Apps.AppListTimeToDiscover" units="ms">
  <owner>tapted@chromium.org</owner>
  <summary>
    Time between enabling the app list, and a user explicitly choosing to show
    it. If the app list is not shown after one hour, an entry in the last bucket
    is recorded. If the user installs a second packaged app within one hour, or
    if the app list was not enabled by installing a packaged app from the Web
    Store, no time value is recorded - only Apps.AppListHowEnabled.
  </summary>
</histogram>

<histogram name="Apps.AppListWarmupDuration" units="ms">
  <obsolete>
    Deprecated 07/2016 in Issue 600915 with the removal of the app list on
    Windows.
  </obsolete>
  <owner>tapted@chromium.org</owner>
  <summary>
    The amount of time spent in warmup (in WarmupForProfile call). This will
    tell us how long warmup blocks the UI.
  </summary>
</histogram>

<histogram name="Apps.AppShimErrorVersion">
  <owner>jackhou@chromium.org</owner>
  <summary>
    Counts which major milestone versions of app_mode_loader are sending
    --app-shim-error. --app-shim-error is sent as a command line argument to
    Chrome when app_mode_loader was unable to dyload the Chrome Framework and
    call ChromeAppModeMain. For example, when Chrome updates from 32-bit to
    64-bit, an older shim will find the new framework version but fail to dyload
    it.
  </summary>
</histogram>

<histogram name="Apps.AppsInFolders" units="Apps">
<!-- Name completed by histogram_suffixes
     name="AppListFolderExperiment" -->

  <owner>newcomer@chromium.org</owner>
  <summary>
    The total number of apps in folders ignoring OEM folders. This is logged
    each time the app list is initialized. The
    &quot;FullscreenAppListDisabled&quot; suffix has been deprecated.
  </summary>
</histogram>

<histogram base="true" name="Apps.ContextMenuExecuteCommand"
    enum="ChromeOSUICommands">
<!-- Name completed by histogram_suffixes
     name="ContextMenuFromApp" -->

  <owner>newcomer@chromium.org</owner>
  <summary>
    The number of times a certain command was executed by a context menu, split
    by whether the context menu came from an app, or another part of the system
    UI.
  </summary>
</histogram>

<histogram base="true" name="Apps.ContextMenuShowSource" enum="MenuSourceType">
<!-- Name completed by histogram_suffixes
     name="AppUIComponent" -->

  <owner>newcomer@chromium.org</owner>
  <summary>
    The show source (touch, mouse, keyboard, etc) for a context menu. Split by
    the component from which the context menu originated.
  </summary>
</histogram>

<histogram base="true" name="Apps.ContextMenuUserJourneyTime" units="ms">
<!-- Name completed by histogram_suffixes
     name="AppUIComponent" -->

  <owner>newcomer@chromium.org</owner>
  <summary>
    The user journey time for a ContextMenu, defined as the time between
    launching a context menu and the context menu's close callback being
    activated. Not recorded whenever the context menu is not for an app icon on
    the shelf.
  </summary>
</histogram>

<histogram name="Apps.LockScreen.AppsProfile.Creation.Duration" units="ms">
  <owner>tbarzic@chromium.org</owner>
  <summary>
    The amount of time needed to create a lock screen apps profile. This metric
    is recorded only if the profile creation was successful. The lock screen
    apps profile is created if the user has an app enabled on Chrome OS lock
    screen, and is used as the context in which the app is launched on top of
    the lock screen.
  </summary>
</histogram>

<histogram name="Apps.LockScreen.AppsProfile.Creation.Success"
    units="BooleanSuccess">
  <owner>tbarzic@chromium.org</owner>
  <summary>
    Boolean indicating whether the lock screen apps profile creation succeeded.
    The lock screen apps profile is created if the user has an app enabled on
    Chrome OS lock screen, and is used as the context in which the app is
    launched on top of the lock screen.
  </summary>
</histogram>

<histogram name="Apps.LockScreen.DataItemStorage.ClearTextItemSize"
    units="bytes">
  <owner>tbarzic@chromium.org</owner>
  <summary>
    The size of a data item stored in the lock screen data item storage using
    chrome.lockScreen.data API as sent from the app - the item will be encrypted
    before getting stored in the storage.
  </summary>
</histogram>

<histogram name="Apps.LockScreen.DataItemStorage.EncryptedItemSize"
    units="bytes">
  <owner>tbarzic@chromium.org</owner>
  <summary>
    The size of an encrypted data item stored in the lock screen data item
    storage using chrome.lockScreen.data API.
  </summary>
</histogram>

<histogram base="true"
    name="Apps.LockScreen.DataItemStorage.FailedOperationDuration" units="ms">
  <owner>tbarzic@chromium.org</owner>
  <summary>
    The amount of time it took to complete a lock screen data item storage
    operation. Reported only on the operation failure.
  </summary>
</histogram>

<histogram base="true" name="Apps.LockScreen.DataItemStorage.OperationDuration"
    units="ms">
  <owner>tbarzic@chromium.org</owner>
  <summary>
    The amount of time it took to complete a lock screen data item storage
    operation. Reported only on the operation success.
  </summary>
</histogram>

<histogram base="true" name="Apps.LockScreen.DataItemStorage.OperationResult"
    enum="LockScreenDataItemOperationResult">
  <owner>tbarzic@chromium.org</owner>
  <summary>
    The result of a lock screen data item storage operation returned through
    chrome.lockScreen.data extension API.
  </summary>
</histogram>

<histogram name="Apps.LockScreen.DataItemStorage.RegisteredItemsCount">
  <owner>tbarzic@chromium.org</owner>
  <summary>
    The number of data items saved in the lock screen data item storage per app.
    This is recorded on startup, when the app attempts to use the
    chrome.lockScreen.data API.
  </summary>
</histogram>

<histogram name="Apps.LockScreen.NoteTakingApp.AppStatusOnNoteLaunch"
    enum="LockScreenNoteAppStatusOnLaunch">
  <owner>tbarzic@chromium.org</owner>
  <summary>
    Reported when a user attempts to launch a note taking app on the lock
    screen. It reports the note taking app state in the lock screen apps profile
    at the launch attempt time - for example, whether the app was enabled, or
    whether the app had been terminated and an app reload was attempted.
  </summary>
</histogram>

<histogram base="true" name="Apps.LockScreen.NoteTakingApp.AppWindowLifeTime"
    units="ms">
  <owner>tbarzic@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    The amount of time a lock screen enabled app window spent in a certain state
    during the app window activity. The state to which the histogram refers to
    is defined by the suffix. The metric is logged upon leaving the associated
    state.
  </summary>
</histogram>

<histogram name="Apps.LockScreen.NoteTakingApp.AvailabilityOnScreenLock"
    enum="LockScreenActionAvailability">
  <owner>tbarzic@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    The note taking action availability state on the lock screen, recorded when
    the user session is locked.
  </summary>
</histogram>

<histogram name="Apps.LockScreen.NoteTakingApp.FinalAppSessionState"
    enum="LockScreenAppSessionState">
  <owner>tbarzic@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    The state in which lock screen enabled note taking app was when the note
    taking session ended.
  </summary>
</histogram>

<histogram name="Apps.LockScreen.NoteTakingApp.LaunchDurationAtLaunchCancel"
    units="ms">
  <owner>tbarzic@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    The amount time a lock screen app had been launching when the app launch was
    canceled. Logged if the lock screen app session ends before the lock screen
    app window is shown.
  </summary>
</histogram>

<histogram name="Apps.LockScreen.NoteTakingApp.LaunchRequestOrdinalNumber">
  <owner>tbarzic@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    Ordinal number of a note taking app launch request from a lock screen within
    a lock screen session. If a note taking app is launched n times during a
    single lock screen session, this histogram will be reported with values 1
    through n. The launch counter is reset on screen unlock.
  </summary>
</histogram>

<histogram name="Apps.LockScreen.NoteTakingApp.LaunchRequestReason"
    enum="NewLockScreenNoteRequestType">
  <owner>tbarzic@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    The user action that launched note taking from the lock screen.
  </summary>
</histogram>

<histogram name="Apps.LockScreen.NoteTakingApp.LockScreenAppUnloaded"
    enum="LockScreenAppUnloadStatus">
  <owner>tbarzic@chromium.org</owner>
  <summary>
    Reported when a note taking app is unloaded from the lock screen apps
    profile while lock screen note taking is available. Reports the unload
    reason type, which can be used to deduce whether the app can be reloaded in
    the profile. The app unload event is not reported if the app is unloaded due
    to lock screen note taking becoming unavailble (e.g. when the user unlocks
    the screen).
  </summary>
</histogram>

<histogram name="Apps.LockScreen.NoteTakingApp.LockScreenInstallationDuration"
    units="ms">
  <owner>tbarzic@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    Amount of time needed to install a copy of a lock screen note taking app
    into lock screen apps profile.
  </summary>
</histogram>

<histogram name="Apps.LockScreen.NoteTakingApp.NoteTakingExitReason"
    enum="LockScreenNoteTakingExitReason">
  <owner>tbarzic@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    The reason the note taking on lock screen was ended (and lock screen app
    window was closed).
  </summary>
</histogram>

<histogram name="Apps.LockScreen.NoteTakingApp.ReloadCountOnAppTermination">
  <owner>tbarzic@chromium.org</owner>
  <summary>
    Reported when a note taking app is terminated in the lock screen apps
    profile. It reports the number of times the app was reloaded in the lock
    screen apps profile during the current lock screen session (prior to the
    termination).
  </summary>
</histogram>

<histogram name="Apps.LockScreen.NoteTakingApp.TimeToLoadAppWindowContents"
    units="ms">
  <owner>tbarzic@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    The amount of time needed to load a note taking app window contents on the
    lock screen - i.e. the time passed from the user requesting an app launch to
    the app window contents being loaded.
  </summary>
</histogram>

<histogram name="Apps.LockScreen.NoteTakingApp.TimeToShowWindow" units="ms">
  <owner>tbarzic@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    The amount of time needed to launch a note taking app window from the lock
    screen - i.e. the time passed from the user requesting an app launch to the
    app window appearing on the screen.
  </summary>
</histogram>

<histogram name="Apps.LockScreen.NoteTakingApp.UnlockUIAction"
    enum="LockScreenNoteTakingUnlockUIAction">
  <owner>tbarzic@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    The action the user took on the lock screen UI shown when lock screen app
    window is in background, shown under the lock screen.
  </summary>
</histogram>

<histogram name="Apps.NoteTakingApp.DefaultLaunchResult"
    enum="NoteTakingAppLaunchResult">
  <owner>derat@chromium.org</owner>
  <owner>jdufault@chromium.org</owner>
  <summary>
    The result of attempting to launch a default note-taking app on Chrome OS.
    Only reported if the preferred app was unspecified or failed to launch.
  </summary>
</histogram>

<histogram name="Apps.NoteTakingApp.PreferredLaunchResult"
    enum="NoteTakingAppLaunchResult">
  <owner>derat@chromium.org</owner>
  <owner>jdufault@chromium.org</owner>
  <summary>
    The result of attempting to launch the user-specified preferred note-taking
    app, if any, on Chrome OS.
  </summary>
</histogram>

<histogram name="Apps.NumberOfFolders" units="folder(s)">
  <owner>newcomer@google.com</owner>
  <summary>
    The number of folders that users have in their Launcher. Includes the OEM
    folder. This metric is recorded every time the launcher is shown.
  </summary>
</histogram>

<histogram name="Apps.NumberOfPages" units="page(s)">
  <owner>weidongg@chromium.org</owner>
  <summary>
    The number of pages that users have in the top level apps grid of their
    Launcher. This metric is recorded every time the launcher is shown.
  </summary>
</histogram>

<histogram name="Apps.NumberOfPagesNotFull" units="page(s)">
  <owner>weidongg@chromium.org</owner>
  <summary>
    The number of pages that are not full in the top level apps grid of
    Launcher. This metric is recorded every time the launcher is shown.
  </summary>
</histogram>

<histogram name="Apps.PaginationTransition.AnimationSmoothness" units="%">
  <owner>wutao@chromium.org</owner>
  <summary>
    Relative smoothness of animations of launcher pagination transitions. 100%
    represents ideally smooth 60 frames per second. 50% represents only 30
    frames per second is achieved during the animations. 0% should not happen.
    This metric is recorded exactly once when the user starts the pagination
    transition animation of the launcher.
  </summary>
</histogram>

<histogram name="Apps.StateTransition.AnimationSmoothness" units="%">
  <owner>newcomer@chromium.org</owner>
  <summary>
    Relative smoothness of animations of peeking launcher state transitions.
    100% represents ideally smooth 60 frames per second. 50% represents only 30
    frames per second is achieved during the animations. 0% should not happen.
    This metric is recorded exactly once when the user switches states of the
    launcher.
  </summary>
</histogram>

<histogram name="Apps.Window.Type" enum="AppsWindowType">
  <owner>stevenjb@chromium.org</owner>
  <summary>
    The type of app window opened (through the chrome.app.window API).
  </summary>
</histogram>

<histogram name="Arc.AndroidBootTime" units="ms">
  <owner>elijahtaylor@google.com</owner>
  <owner>shihuis@google.com</owner>
  <summary>The time elapsed for booting up the ARC instance.</summary>
</histogram>

<histogram name="Arc.AppCount">
  <owner>elijahtaylor@google.com</owner>
  <owner>shihuis@google.com</owner>
  <summary>
    The number of ARC apps open at any given time. Collected every 5 minutes.
    This indicates both how many users are engaging with apps and, when they do
    engage, how many apps they are engaging with at a time.
  </summary>
</histogram>

<histogram name="Arc.AppShortcuts.BuildMenuTime" units="ms">
  <owner>warx@chromium.org</owner>
  <summary>
    Record the time to build ARC app shortcut items on menu model. We get the
    needed metadata from Android and decode icons in the utility process. It is
    an asynchronous procedure so we need to know the longest waiting time.
  </summary>
</histogram>

<histogram name="Arc.AppsInstalledAtStartup" units="App Count">
  <owner>elijahtaylor@google.com</owner>
  <owner>shihuis@google.com</owner>
  <summary>
    Total number of ARC apps installed on a device measured at startup. Note:
    This includes launchable apps that are installed by default, such as Play
    Store and Settings, as well as any vendor specific apps.
  </summary>
</histogram>

<histogram name="Arc.boot_progress" units="ms">
  <owner>elijahtaylor@google.com</owner>
  <owner>shihuis@google.com</owner>
  <summary>
    The relative time of a boot progress event since the ARC starts.
  </summary>
</histogram>

<histogram name="Arc.BootContinueCodeInstallationResult"
    enum="ArcBootContinueCodeInstallationResult">
  <owner>elijahtaylor@google.com</owner>
  <owner>xzhou@google.com</owner>
  <summary>Code installation result for ARC boot continue.</summary>
</histogram>

<histogram name="Arc.CodeIntegrityCheckingTotalTime" units="ms">
  <owner>elijahtaylor@google.com</owner>
  <owner>xzhou@google.com</owner>
  <summary>
    Total time needed to check the integrity of host generated code. If
    signature checking fails, it also includes the time to regenerate and sign
    the code.
  </summary>
</histogram>

<histogram name="Arc.CodeRelocationResult" enum="ArcCodeRelocationResult">
  <owner>elijahtaylor@google.com</owner>
  <owner>xzhou@google.com</owner>
  <summary>Host code relocation result.</summary>
</histogram>

<histogram name="Arc.CodeRelocationTime" units="ms">
  <owner>elijahtaylor@google.com</owner>
  <owner>xzhou@google.com</owner>
  <summary>Time needed to relocate boot*.art files.</summary>
</histogram>

<histogram name="Arc.CodeSigningTime" units="ms">
  <owner>elijahtaylor@google.com</owner>
  <owner>xzhou@google.com</owner>
  <summary>Time needed to sign boot*.art files.</summary>
</histogram>

<histogram name="Arc.CodeVerificationResult" enum="ArcCodeVerificationResult">
  <owner>elijahtaylor@google.com</owner>
  <owner>xzhou@google.com</owner>
  <summary>
    Code verification result for host generated code for boot for login screen.
  </summary>
</histogram>

<histogram name="Arc.CodeVerificationTime" units="ms">
  <owner>elijahtaylor@google.com</owner>
  <owner>xzhou@google.com</owner>
  <summary>Time needed to verify host generated code.</summary>
</histogram>

<histogram name="Arc.ComplianceReportSinceUpdateNotificationTime" units="ms">
  <owner>alexchau@google.com</owner>
  <owner>emaxx@google.com</owner>
  <summary>
    Elapsed time from the policy update notification sent to ARC to the
    corresponding successfully obtained compliance report from CloudDPS.
  </summary>
</histogram>

<histogram name="Arc.ContainerLifetimeEvent" enum="ArcContainerLifetimeEvent">
  <owner>elijahtaylor@google.com</owner>
  <owner>yusukes@google.com</owner>
  <summary>
    The number of ARC container lifetime events. One START event and up to one
    non-START event are recorded per ARC session, which ends when the user opts
    out from ARC or signs out.
  </summary>
</histogram>

<histogram name="Arc.ContainerRestartAfterCrashCount">
  <owner>elijahtaylor@google.com</owner>
  <owner>yusukes@google.com</owner>
  <summary>
    The number of times ARC container crashes and automatically restarts in one
    ARC session, which ends when the user opts out from ARC or signs out.
  </summary>
</histogram>

<histogram name="Arc.CumulativeUseTime" units="seconds">
  <owner>elijahtaylor@google.com</owner>
  <owner>shihuis@google.com</owner>
  <summary>
    ARC use time. The use time is incremented in regular intervals while android
    container is active. Reported at most once a day, at which point accumulated
    time is reset (which means that sum of reported times for a OS version would
    give an estimate of ARC usage time per OS version).
  </summary>
</histogram>

<histogram name="Arc.CupsPrinting.PageCount" expires_after="2019-06-20">
  <owner>skau@google.com</owner>
  <owner>vkuzkokov@google.com</owner>
  <summary>
    The number of pages sent to a native printer by ARC. Reported for every
    print job originating in ARC container and sent to a CUPS printer.
  </summary>
</histogram>

<histogram name="Arc.EngagementTime.ArcTotal" units="ms">
  <owner>maajid@google.com</owner>
  <owner>shaochuan@google.com</owner>
  <owner>shihuis@google.com</owner>
  <summary>
    Total of Arc.EngagementTime.Background and Arc.EngagementTime.Foreground.
    Note that this differs from Arc.EngagementTime.Total in that this is the
    ARC++ engagement time, while Arc.EngagementTime.Total is the CrOS total
    engagement time on devices with ARC++ enabled. See Arc.EngagementTime.Total
    for definition of engagement and further details.
  </summary>
</histogram>

<histogram name="Arc.EngagementTime.Background" units="ms">
  <owner>maajid@google.com</owner>
  <owner>shaochuan@google.com</owner>
  <owner>shihuis@google.com</owner>
  <summary>
    Times when user is engaged and ARC++ apps are running in the background, but
    the user isn't focusing on an ARC++ app window. See Arc.EngagementTime.Total
    for definition of engagement and details.
  </summary>
</histogram>

<histogram name="Arc.EngagementTime.Foreground" units="ms">
  <owner>maajid@google.com</owner>
  <owner>shaochuan@google.com</owner>
  <owner>shihuis@google.com</owner>
  <summary>
    Times when user is engaged and focuses on an ARC++ app window. See
    Arc.EngagementTime.Total for definition of engagement and details.
  </summary>
</histogram>

<histogram name="Arc.EngagementTime.Total" units="ms">
  <owner>maajid@google.com</owner>
  <owner>shaochuan@google.com</owner>
  <owner>shihuis@google.com</owner>
  <summary>
    Total CrOS user session time (from login to logout) excluding times when
    user &quot;disengages&quot;: screen is locked or dims down due to user idle.
    Engagement time metrics, along with foreground and background time, are only
    collected on users with ARC++ enabled. All four metrics are accumulated and
    recorded to UMA once a day. For Total ARC++ engagement time, please see
    Arc.EngagementTime.ArcTotal.
  </summary>
</histogram>

<histogram name="Arc.FirstAppLaunchDelay.TimeDelta" units="ms">
  <owner>yusukes@google.com</owner>
  <owner>khmel@google.com</owner>
  <summary>
    How long the user sees the spinning icon waiting for ARC container boot.
    Zero when the container has already been up and running when the user
    launches the ARC app.
  </summary>
</histogram>

<histogram name="Arc.FirstAppLaunchRequest.TimeDelta" units="ms">
  <owner>yusukes@google.com</owner>
  <owner>khmel@google.com</owner>
  <summary>
    Elapsed time from the when UI is shown after login to when the user
    activates first ARC app.
  </summary>
</histogram>

<histogram name="Arc.FirstComplianceReportTime.SinceSignIn" units="ms">
  <owner>alexchau@google.com</owner>
  <owner>emaxx@google.com</owner>
  <summary>
    Elapsed time from the signing in process start to a successfully obtained
    compliance report from CloudDPS.
  </summary>
</histogram>

<histogram name="Arc.FirstComplianceReportTime.SinceStartup" units="ms">
  <owner>alexchau@google.com</owner>
  <owner>emaxx@google.com</owner>
  <summary>
    Elapsed time from ARC startup to a successfully obtained compliance report
    from CloudDPS. This value is not reported during the first startup when
    signing in happens.
  </summary>
</histogram>

<histogram name="Arc.ImeCount">
  <owner>yhanada@google.com</owner>
  <owner>tetsui@google.com</owner>
  <summary>
    The number of IME apps installed. Collected at startup and when an IME app
    is installed or uninstalled.
  </summary>
</histogram>

<histogram name="Arc.IntentHandlerAction" enum="ArcIntentHandlerAction">
  <obsolete>
    Deprecated April 2018 and replaced by ChromeOS.Apps.IntentPickerAction.
  </obsolete>
  <owner>elijahtaylor@google.com</owner>
  <owner>shihuis@google.com</owner>
  <summary>ARC intent handler action taken by user.</summary>
</histogram>

<histogram name="Arc.IntentHandlerDestinationPlatform"
    enum="ArcIntentHandlerDestinationPlatform">
  <obsolete>
    Deprecated April 2018 and replaced by
    ChromeOS.Apps.IntentPickerDestinationPlatform.
  </obsolete>
  <owner>elijahtaylor@google.com</owner>
  <owner>shihuis@google.com</owner>
  <summary>
    ARC intent handler destination platform. The destination may be specified
    due to the user explicit selection or a previously stored preference.
  </summary>
</histogram>

<histogram name="Arc.LowMemoryKiller.Count">
  <owner>elijahtaylor@google.com</owner>
  <owner>shihuis@google.com</owner>
  <summary>Cumulative count of low memory kills in one user session.</summary>
</histogram>

<histogram name="Arc.LowMemoryKiller.FirstKillLatency" units="ms">
  <owner>cywang@google.com</owner>
  <owner>elijahtaylor@google.com</owner>
  <owner>shihuis@google.com</owner>
  <summary>
    When Chrome OS is in low memory state, TabManager kills some victims to free
    memory. This value is the elapsed time between TabManager receiving the low
    memory notification and the first kill.
  </summary>
</histogram>

<histogram name="Arc.LowMemoryKiller.FreedSize" units="KB">
  <owner>elijahtaylor@google.com</owner>
  <owner>shihuis@google.com</owner>
  <summary>The memory size freed by each low memory kill event.</summary>
</histogram>

<histogram name="Arc.LowMemoryKiller.TimeDelta" units="ms">
  <owner>elijahtaylor@google.com</owner>
  <owner>shihuis@google.com</owner>
  <summary>The elapsed time to last low memory kill event.</summary>
</histogram>

<histogram name="Arc.NativeBridge" enum="ArcNativeBridgeType">
  <owner>elijahtaylor@google.com</owner>
  <owner>levarum@google.com</owner>
  <summary>
    Native bridge used for ARC. Can be unknown and none. This is collected along
    with Arc.State during every metrics recording interval, so it is in every
    record uploaded to the server (despite crbug.com/929583 which was fixed in
    M73). This is required because this value is used to categorize all other
    data in the dashboard as collected with specific native bridge in use. Since
    M74 this is also included in initial stability logs.
  </summary>
</histogram>

<histogram name="Arc.OOMKills.Count" units="kills">
  <owner>elijahtaylor@google.com</owner>
  <owner>shihuis@google.com</owner>
  <summary>Cumulative count of OOM kills in one user session.</summary>
</histogram>

<histogram name="Arc.OOMKills.Score" units="badness score">
  <owner>elijahtaylor@google.com</owner>
  <owner>shihuis@google.com</owner>
  <summary>
    The oom_badness score of a OOM killed process as reported by kernel.
  </summary>
</histogram>

<histogram name="Arc.OOMKills.TimeDelta" units="ms">
  <owner>elijahtaylor@google.com</owner>
  <owner>shihuis@google.com</owner>
  <summary>The elapsed time since last OOM kill event.</summary>
</histogram>

<histogram name="Arc.OptInAction" enum="ArcOptInAction">
  <owner>elijahtaylor@google.com</owner>
  <owner>shihuis@google.com</owner>
  <summary>Arc OptIn action taken by user.</summary>
</histogram>

<histogram name="Arc.OptInCancel" enum="ArcOptInCancel">
  <owner>elijahtaylor@google.com</owner>
  <owner>shihuis@google.com</owner>
  <summary>Arc OptIn cancelation reason.</summary>
</histogram>

<histogram name="Arc.OptInResult" enum="ArcOptInResult">
  <owner>elijahtaylor@google.com</owner>
  <owner>khmel@google.com</owner>
  <summary>Arc OptIn flow result.</summary>
</histogram>

<histogram name="Arc.OptInSilentAuthCode" enum="ArcOptInSilentAuthCode">
  <owner>elijahtaylor@google.com</owner>
  <summary>
    Arc Silent Auth Code status. This status is set during the ARC OptIn flow.
  </summary>
</histogram>

<histogram name="Arc.OptInSilentAuthCode.Reauthorization"
    enum="ArcOptInSilentAuthCode">
  <owner>khmel@google.com</owner>
  <summary>
    Arc Silent Auth Code status. This status is set during the ARC
    Device/Primary Account reauthorization flow.
  </summary>
</histogram>

<histogram name="Arc.OptInSilentAuthCode.SecondaryAccount"
    enum="ArcOptInSilentAuthCode">
  <owner>khmel@google.com</owner>
  <summary>
    Arc Silent Auth Code status. This status is set during the minting of an
    auth code for a Secondary Account. It can be set for Secondary Account
    signin or reauthorization.
  </summary>
</histogram>

<histogram name="Arc.PlayAutoInstallRequest.State"
    enum="ArcPlayAutoInstallRequestState" expires_after="2019-12-31">
<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->

  <owner>jhorwich@google.com</owner>
  <owner>khmel@google.com</owner>
  <summary>State of PlayAutoInstall flow after the request.</summary>
</histogram>

<histogram name="Arc.PlayAutoInstallRequest.TimeDelta" units="ms"
    expires_after="2019-12-31">
<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->

  <owner>jhorwich@google.com</owner>
  <owner>khmel@google.com</owner>
  <summary>
    Elapsed time from the when the PlayAutoInstall request was issued and
    completed.
  </summary>
</histogram>

<histogram name="Arc.PlayStoreSearch.QueryTime" units="ms">
  <owner>hejq@chromium.org</owner>
  <summary>
    Time between sending an Play Store app discovery request and the storing
    returned results.
  </summary>
</histogram>

<histogram name="Arc.PlayStoreSearch.ReturnedAppsTotal" units="apps">
  <owner>hejq@chromium.org</owner>
  <summary>
    The total number of returned apps of a Play Store app discovery query.
  </summary>
</histogram>

<histogram name="Arc.PlayStoreSearch.ReturnedInstantApps" units="apps">
  <owner>hejq@chromium.org</owner>
  <summary>
    The number of returned instant apps of a Play Store app discovery query.
  </summary>
</histogram>

<histogram name="Arc.PlayStoreSearch.ReturnedUninstalledApps" units="apps">
  <owner>hejq@chromium.org</owner>
  <summary>
    The number of returned uninstalled apps of a Play Store app discovery query.
  </summary>
</histogram>

<histogram name="Arc.PlayStoreShown.TimeDelta" units="ms">
<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->

  <owner>yusukes@google.com</owner>
  <owner>khmel@google.com</owner>
  <summary>
    Elapsed time from the when the user agrees ToS to when the Play Store window
    is shown to the user.
  </summary>
</histogram>

<histogram base="true" name="Arc.Provisioning.Result"
    enum="ArcProvisioningResult">
<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->

  <owner>alexchau@google.com</owner>
  <owner>phweiss@google.com</owner>
  <summary>
    The result (success or the type of failure) of ARC provisioning. The base
    value has been deprecated on 2016-09-15 in favour of per user type values.
  </summary>
</histogram>

<histogram name="Arc.Provisioning.TimeDelta.Failure" units="ms">
<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->

  <owner>alexchau@google.com</owner>
  <owner>phweiss@google.com</owner>
  <summary>
    Elapsed time from the signing in process start to call to onSignInFailed.
  </summary>
</histogram>

<histogram name="Arc.Provisioning.TimeDelta.Success" units="ms">
<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->

  <owner>alexchau@google.com</owner>
  <owner>phweiss@google.com</owner>
  <summary>
    Elapsed time from the signing in process start to successful call to
    onSignInComplete.
  </summary>
</histogram>

<histogram name="Arc.Reauthorization.Result" enum="ArcProvisioningResult">
<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->

  <owner>khmel@google.com</owner>
  <summary>
    The result (success or the type of failure) of ARC reauthorization.
  </summary>
</histogram>

<histogram name="Arc.SdkVersionUpgradeType" enum="ArcSdkVersionUpgradeType">
  <owner>niwa@google.com</owner>
  <owner>yusukes@google.com</owner>
  <summary>
    The types of ARC SDK version upgrade. (e.g. Upgrade from N to P) Reported
    when SDK version upgrade is detected during ARC boot.
  </summary>
</histogram>

<histogram name="Arc.Secondary.Signin.Result" enum="ArcProvisioningResult">
  <owner>khmel@google.com</owner>
  <summary>
    The result (success or the type of failure) of ARC Secondary Account signin/
    reauthorization.
  </summary>
</histogram>

<histogram name="Arc.ShareFilesOnExit" enum="ArcShareFilesOnExit"
    expires_after="M75">
  <owner>weifangsun@google.com</owner>
  <owner>djacobo@google.com</owner>
  <summary>
    Exit code coming from ARC's share files feature. Used to observe stability
    for the feature.
  </summary>
</histogram>

<histogram name="Arc.ShutdownTime" units="ms">
  <owner>elijahtaylor@google.com</owner>
  <summary>
    The time it takes for ARC to shut down. This value is recorded on ARC
    shutdown as the time is takes for the init process to exit after setting
    'sys.powerctl shutdown'. It is reported on the next ARC startup to avoid
    sending data during shutdown.
  </summary>
</histogram>

<histogram name="Arc.State" enum="BooleanEnabled">
  <owner>elijahtaylor@google.com</owner>
  <owner>shihuis@google.com</owner>
  <summary>
    Whether ARC is enabled or not. Before M56 this was collected only on login
    and when ARC was enabled or disabled. From M56 forward this is collected
    during every metrics recording interval, so it is in every record uploaded
    to the server (despite crbug.com/929583 which was fixed in M73). This is
    required because this value is used to categorize all other data in the
    dashboard as collected with ARC enabled or not. This is true even for users
    who are running on ecryptfs and skipped Ext4 migration; even though ARC Apps
    do not run until migration is complete on N or later systems. Since M74 this
    is also included in initial stability logs.
  </summary>
</histogram>

<histogram name="Arc.StateByUserType" enum="ArcEnableState">
<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->

  <owner>elijahtaylor@google.com</owner>
  <owner>shihuis@google.com</owner>
  <owner>khmel@google.com</owner>
  <summary>
    Similar to &quot;Arc.State&quot; metric but has separation by user type.
  </summary>
</histogram>

<histogram name="Arc.Supervision.Transition.Result"
    enum="ArcSupervisionTransitionResult" expires_after="M76">
  <owner>menegola@google.com</owner>
  <owner>escordeiro@google.com</owner>
  <owner>unichromeos-eng@google.com</owner>
  <summary>
    The result (success or the type of failure) of ARC supervision transition
    events.
  </summary>
</histogram>

<histogram name="Arc.Supervision.Transition.Screen.Success.TimeDelta"
    units="ms" expires_after="M76">
  <owner>brunoad@google.com</owner>
  <owner>menegola@google.com</owner>
  <owner>escordeiro@google.com</owner>
  <owner>unichromeos-eng@google.com</owner>
  <summary>
    Elapsed time for a successful supervision transition, during which the
    supervision transition screen was displayed.
  </summary>
</histogram>

<histogram name="Arc.Supervision.Transition.Screen.Successful"
    enum="BooleanSuccess" expires_after="M76">
  <owner>brunoad@google.com</owner>
  <owner>menegola@google.com</owner>
  <owner>escordeiro@google.com</owner>
  <owner>unichromeos-eng@google.com</owner>
  <summary>
    Whether supervision transition screen exited due to a successful transition.
  </summary>
</histogram>

<histogram name="Arc.UserInteraction" enum="ArcUserInteraction">
  <owner>jhorwich@chromium.org</owner>
  <owner>elijahtaylor@chromium.org</owner>
  <owner>shihuis@google.com</owner>
  <owner>maajid@chromium.org</owner>
  <summary>
    Counts user interactions with ARC by type, such as ARC app launches via the
    shelf or launcher.
  </summary>
</histogram>

<histogram name="ArcAuth.AccountCheckStatus" enum="ArcAuthAccountCheckStatus">
  <owner>elijahtaylor@google.com</owner>
  <summary>The status of account check before GMS Sign-in.</summary>
</histogram>

<histogram name="ArcAuth.AccountCheckTime" units="ms">
  <owner>elijahtaylor@chromium.org</owner>
  <summary>
    Elapsed time waiting for the account status check to be completed. This is
    not recorded in case of account status check failure.
  </summary>
</histogram>

<histogram name="ArcAuth.CheckinAttempts" units="attempts">
  <owner>elijahtaylor@chromium.org</owner>
  <summary>
    Number of attempts done while waiting for the check-in task to be completed.
    0 means that device was already checked-in. This is recorded in case
    check-in task is completed successfully.
  </summary>
</histogram>

<histogram name="ArcAuth.CheckinTime" units="ms">
  <owner>elijahtaylor@chromium.org</owner>
  <summary>
    Elapsed time waiting for the check-in task to be completed. This is recorded
    in case check-in task is completed successfully.
  </summary>
</histogram>

<histogram name="ArcAuth.NetworkWaitTime" units="ms">
  <owner>elijahtaylor@chromium.org</owner>
  <summary>
    Elapsed time waiting for network connection before starting other
    authorization operations.
  </summary>
</histogram>

<histogram name="ArcAuth.SignInTime" units="ms">
  <owner>elijahtaylor@chromium.org</owner>
  <summary>Elapsed time waiting for GMS sign-in to complete.</summary>
</histogram>

<histogram name="ArcRuntime.LowMemoryKiller.FreedSize" units="KB">
  <obsolete>
    Renamed to Arc.LowMemoryKiller.FreedSize on 2016/03/24.
  </obsolete>
  <owner>elijahtaylor@google.com</owner>
  <summary>The memory size freed by each low memory kill event.</summary>
</histogram>

<histogram name="ArcRuntime.LowMemoryKiller.TimeDelta" units="ms">
  <obsolete>
    Renamed to Arc.LowMemoryKiller.TimeDelta on 2016/03/24.
  </obsolete>
  <owner>elijahtaylor@google.com</owner>
  <summary>The elapsed time to last low memory kill event.</summary>
</histogram>

<histogram name="Ash.Accelerators.Deprecated.LockScreen"
    enum="DeprecatedAcceleratorUsage">
  <owner>afakhry@chromium.org</owner>
  <summary>
    The lock screen action has two accelerators: - Ctrl+Shift+L which is
    deprecated. - Search+L which is new. This histogram shows the number of
    times each accelerator (deprecated and new) is used.
  </summary>
</histogram>

<histogram name="Ash.Accelerators.Deprecated.NextIME"
    enum="DeprecatedAcceleratorUsage">
  <obsolete>
    Deprecated 01/2017 for Issue 672905.
  </obsolete>
  <owner>afakhry@chromium.org</owner>
  <summary>
    The switch to the next IME action has two accelerators: - Shift+Alt which is
    deprecated. - Ctrl+Shift+Space which is new. This histogram shows the number
    of times each accelerator (deprecated and new) is used.
  </summary>
</histogram>

<histogram name="Ash.Accelerators.Deprecated.ShowImeMenuBubble"
    enum="DeprecatedAcceleratorUsage">
  <owner>afakhry@chromium.org</owner>
  <summary>
    Showing the IME menu bubble has two accelerators: - Alt+Shift+K which is
    deprecated. - Search+Shift+K which is new. This histogram shows the number
    of times each accelerator (deprecated and new) is used.
  </summary>
</histogram>

<histogram name="Ash.Accelerators.Deprecated.ShowTaskManager"
    enum="DeprecatedAcceleratorUsage">
  <owner>afakhry@chromium.org</owner>
  <summary>
    Opening the task manager has two accelerators: - Shift+Esc which is
    deprecated. - Search+Esc which is new. This histogram shows the number of
    times each accelerator (deprecated and new) is used.
  </summary>
</histogram>

<histogram name="Ash.Accelerators.Deprecated.ToggleHighContrast"
    enum="DeprecatedAcceleratorUsage">
  <owner>afakhry@chromium.org</owner>
  <summary>
    Toggling the high contrast display mode has two accelerators: -
    Search+Shift+H which is deprecated. - Ctrl+Search+H which is new. This
    histogram shows the number of times each accelerator (deprecated and new) is
    used.
  </summary>
</histogram>

<histogram name="Ash.ActiveTouchPoints">
  <obsolete>
    Deprecated 02/2017 due to lack of usage.
  </obsolete>
  <owner>kuscher@google.com</owner>
  <owner>rbyers@chromium.org</owner>
  <summary>
    Number of active touch-points when a new touch-point is added.
  </summary>
</histogram>

<histogram name="Ash.ActiveWindowShowTypeOverTime" enum="ActiveWindowShowType">
  <owner>kuscher@google.com</owner>
  <summary>
    The show type of the active window tracked over time by logging on a regular
    basis (30 minutes).
  </summary>
</histogram>

<histogram name="Ash.AppList.TimeBetweenTaskSwitches" units="seconds">
  <obsolete>
    Deprecated 10/2016 for Issue 616581.
  </obsolete>
  <owner>bruthig@chromium.org</owner>
  <owner>tdanderson@chromium.org</owner>
  <summary>
    The amount of time between selecting an item from the Ash app list. Not
    recorded on the first time an item is selected from the app list after
    startup.
  </summary>
</histogram>

<histogram name="Ash.Desktop.TimeBetweenNavigateToTaskSwitches" units="seconds">
  <owner>bruthig@chromium.org</owner>
  <owner>tdanderson@chromium.org</owner>
  <summary>
    The number of seconds between task window activations triggered by users
    clicking or tapping on a window, as recorded by the Desktop_SwitchTask user
    action. Recorded on Chrome OS only. Task switches from other sources are
    ignored and do not affect this metric. In other words, if a user performs
    the following steps (1) click on task window 'A' (2) Alt+Tab to task 'Z'(3)
    click on task window 'B', then this will result in a sample recorded for the
    time delta between activating task window 'A'and 'B'.
  </summary>
</histogram>

<histogram name="Ash.DisplayColorManager.HasColorCorrectionMatrix"
    enum="Boolean">
  <owner>mcasas@chromium.org</owner>
  <owner>dcastagna@chromium.org</owner>
  <summary>
    Whether a display has a &quot;CTM&quot; matrix properties that can be used
    to set a color transform matrix. Recorded every time there is a display
    configuration update.
  </summary>
</histogram>

<histogram name="Ash.DisplayColorManager.IccFileDownloaded"
    enum="BooleanDownloaded">
  <owner>mcasas@chromium.org</owner>
  <owner>dcastagna@chromium.org</owner>
  <summary>
    This boolean keeps track if an ICC file was downloaded correctly (if true)
    or a local file was reused instead.
  </summary>
</histogram>

<histogram name="Ash.DisplayColorManager.IccFileFound" enum="Boolean">
  <obsolete>
    Deprecated 10/2017, replaced by Ash.DisplayColorManager.IccFileDownloaded
  </obsolete>
  <owner>mcasas@chromium.org</owner>
  <owner>dcastagna@chromium.org</owner>
  <summary>
    This boolean keeps track if a request for an ICC for a specific product id
    has been successful or not.
  </summary>
</histogram>

<histogram name="Ash.DisplayColorManager.ValidDisplayColorSpace" enum="Boolean">
  <owner>mcasas@chromium.org</owner>
  <owner>dcastagna@chromium.org</owner>
  <summary>
    This boolean keeps track if a Display update (i.e. when connecting a new
    one) carried valid ColorSpace information.
  </summary>
</histogram>

<histogram name="Ash.DisplayColorManager.ValidProductId" enum="Boolean">
  <owner>mcasas@chromium.org</owner>
  <owner>dcastagna@chromium.org</owner>
  <summary>
    Whether we could parse a valid product id from a display EDID. Recorded
    every time there is a display configuration update.
  </summary>
</histogram>

<histogram name="Ash.Dock.Action" enum="DockedAction">
  <owner>kuscher@google.com</owner>
  <owner>wutao@chromium.org</owner>
  <summary>
    User-initiated action taken that affects docked windows such as docking,
    undocking, minimizing, restoring, closing or just dragging a docked window.
  </summary>
</histogram>

<histogram name="Ash.Dock.ActionSource" enum="DockedActionSource">
  <owner>kuscher@google.com</owner>
  <owner>wutao@chromium.org</owner>
  <summary>
    Source (mouse, touch, keyboard or unknown) of the user-initiated action for
    docked windows.
  </summary>
</histogram>

<histogram name="Ash.Dock.ItemsAll">
  <owner>kuscher@google.com</owner>
  <owner>wutao@chromium.org</owner>
  <summary>
    Number of all docked windows or panels including hidden or minimized.
    Recorded on every user action that interacts with docked windows.
  </summary>
</histogram>

<histogram name="Ash.Dock.ItemsLarge">
  <owner>kuscher@google.com</owner>
  <owner>wutao@chromium.org</owner>
  <summary>
    Number of large (wider than dock maximum width) windows that had to be
    shrunk to get docked among the visible docked windows. Recorded on every
    user action that interacts with docked windows.
  </summary>
</histogram>

<histogram name="Ash.Dock.ItemsPanels">
  <owner>kuscher@google.com</owner>
  <owner>wutao@chromium.org</owner>
  <summary>
    Number of docked visible panels. Recorded on every user action that
    interacts with docked windows.
  </summary>
</histogram>

<histogram name="Ash.Dock.ItemsVisible">
  <owner>kuscher@google.com</owner>
  <owner>wutao@chromium.org</owner>
  <summary>
    Number of visible docked windows or panels. Recorded on every user action
    that interacts with docked windows.
  </summary>
</histogram>

<histogram name="Ash.Dock.TimeBetweenUse" units="seconds">
  <owner>kuscher@google.com</owner>
  <owner>wutao@chromium.org</owner>
  <summary>
    Time elapsed between instances of docking, undocking or any other action
    affecting docked state of a window.
  </summary>
</histogram>

<histogram name="Ash.Dock.Width" units="pixels">
  <owner>kuscher@google.com</owner>
  <owner>wutao@chromium.org</owner>
  <summary>
    Width of the docked area in pixels. Recorded every time it changes after a
    user window resize operation is completed.
  </summary>
</histogram>

<histogram name="Ash.GestureCreated" enum="UIEventType">
  <obsolete>
    Deprecated 08/2014 in Issue 352654, and replaced by Event.GestureCreated.
  </obsolete>
  <owner>kuscher@google.com</owner>
  <owner>rbyers@chromium.org</owner>
  <summary>
    The gesture-events recognized and dispatched by the browser gesture
    recognizer.
  </summary>
</histogram>

<histogram name="Ash.GestureTarget" enum="AshGestureActionType">
  <owner>kuscher@google.com</owner>
  <owner>rbyers@chromium.org</owner>
  <summary>
    The gesture-events recognized and dispatched for UI components owned by Ash.
    For browser gestures, see Event.Touch.GestureType.
  </summary>
</histogram>

<histogram name="Ash.ImmersiveFullscreen.WindowType" enum="WindowType">
  <owner>kuscher@google.com</owner>
  <summary>
    The type of the window which is put into immersive fullscreen. Immersive
    fullscreen is entered via the F4 key.
  </summary>
</histogram>

<histogram name="Ash.InteractiveWindowResize.TimeToPresent" units="ms"
    expires_after="M77">
  <owner>mustash-team@google.com</owner>
  <summary>
    Time between when the size of a window changes during an interactive window
    resize and the results are drawn (presented) on screen. This is recorded for
    each movement of the mouse/pointer that results in a resize.
  </summary>
</histogram>

<histogram name="Ash.Login.Lock.AuthMethod.Switched"
    enum="AuthMethodSwitchType">
  <owner>jdufault@google.com</owner>
  <summary>
    The count of auth method switching actions in ChromeOS lock screen.
  </summary>
</histogram>

<histogram name="Ash.Login.Lock.AuthMethod.Used.ClamShellMode"
    enum="AuthMethod">
  <owner>jdufault@google.com</owner>
  <summary>
    The usage of different auth methods (PIN / Password / Smartlock /
    Fingerprint) in ChromeOS lock screen clamshell mode.
  </summary>
</histogram>

<histogram name="Ash.Login.Lock.AuthMethod.Used.TabletMode" enum="AuthMethod">
  <owner>jdufault@google.com</owner>
  <summary>
    The usage of different auth methods (PIN / Password / Smartlock /
    Fingerprint) in ChromeOS lock screen tablet mode.
  </summary>
</histogram>

<histogram name="Ash.Login.Lock.NumPasswordAttempts.UntilFailure" units="count">
  <owner>jdufault@google.com</owner>
  <summary>
    The number of incorrect password entered in ChromeOS lock screen until the
    user gives up (switch pods or user sign out the current session or shutdown
    the device).
  </summary>
</histogram>

<histogram name="Ash.Login.Lock.NumPasswordAttempts.UntilSuccess" units="count">
  <owner>jdufault@google.com</owner>
  <summary>
    The number of incorrect password entered in ChromeOS lock screen until a
    successful attempt.
  </summary>
</histogram>

<histogram name="Ash.Login.Lock.UserClicks" enum="LockScreenUserClickTarget">
  <owner>jdufault@google.com</owner>
  <summary>
    The numbers of times that users click on the shelf buttons, trays and lock
    screen note on the ChromeOS lock screen.
  </summary>
</histogram>

<histogram name="Ash.Login.Login.UserClicks" enum="LoginScreenUserClickTarget">
  <owner>agawronska@google.com</owner>
  <summary>
    The numbers of times that users click on the shelf buttons and trays on the
    ChromeOS login screen.
  </summary>
</histogram>

<histogram name="Ash.NightLight.DisplayCrtcCtmSupport"
    enum="AshNightLightDisplayCrtcCtmSupportType">
  <owner>afakhry@chromium.org</owner>
  <summary>
    The type of CRTC color transorm matrix support for the currently connected
    displays. Emitted when cursor compositing status is refreshed, but only when
    Night Light is on. The cursor compositing status is refreshed whenever there
    is a change in Night Light status or color temperature.
  </summary>
</histogram>

<histogram name="Ash.NightLight.ScheduleType" enum="AshNightLightScheduleType">
  <owner>afakhry@chromium.org</owner>
  <summary>
    The selected Night Light schedule type. Emitted when the user changes the
    Night Light schedule type from the Display System Settings.
  </summary>
</histogram>

<histogram name="Ash.NightLight.Temperature"
    enum="AshNightLightTemperatureRanges">
  <owner>afakhry@chromium.org</owner>
  <summary>
    The ranges in which the selected values of the Night Light color temperature
    reside. Emitted when the user drags the Night Light color temperature slider
    to change its value from the Display System Settings.
  </summary>
</histogram>

<histogram name="Ash.NumberOfVisibleWindowsInPrimaryDisplay" units="Windows">
  <owner>jamescook@chromium.org</owner>
  <summary>
    An upper bound on the number of windows visible to the user on the primary
    display. Determined by processing the windows in increasing z-order and
    counting all non-minimized windows until a maximized or fullscreen window is
    processed. This metric is logged periodically every 30 minutes.
  </summary>
</histogram>

<histogram name="Ash.PersistentWindow.NumOfWindowsRestored">
  <owner>warx@chromium.org</owner>
  <summary>
    The number of windows restored in multi-display scenario, such as due to
    disconnecting and reconnecting display, enabling and disabling mirror mode,
    entering and leaving dock mode. Zero is not recorded.
  </summary>
</histogram>

<histogram name="Ash.Pip.Events" enum="AshPipEvents" expires_after="2019-09-01">
  <owner>edcourtney@chromium.org</owner>
  <summary>
    Various individiual Picture-in-picture related events. See AshPipEvents.
  </summary>
</histogram>

<histogram name="Ash.Pip.FreeResizeFinishArea" units="%"
    expires_after="2019-09-01">
  <owner>edcourtney@chromium.org</owner>
  <summary>
    Area of a Picture-in-picture window when ending a free-resize, as a
    percentage of the area it takes up on the display it is on.
  </summary>
</histogram>

<histogram name="Ash.Pip.FreeResizeInitialArea" units="%"
    expires_after="2019-09-01">
  <owner>edcourtney@chromium.org</owner>
  <summary>
    Initial area of a Picture-in-picture window when beginning a free-resize, as
    a percentage of the area it takes up on the display it is on.
  </summary>
</histogram>

<histogram name="Ash.Pip.Position" enum="AshPipPosition"
    expires_after="2019-09-01">
  <owner>edcourtney@chromium.org</owner>
  <summary>
    The position that a Picture-in-picture window was moved to by a user drag.
  </summary>
</histogram>

<histogram name="Ash.PowerButtonScreenshot.DelayBetweenAccelKeyPressed"
    units="ms">
  <owner>warx@chromium.org</owner>
  <summary>
    Record the delay when power button and volume down key are both pressed,
    which indicates user might want to use accelerator to take screenshot. This
    will help us determine the best chord delay among metrics.
  </summary>
</histogram>

<histogram name="Ash.ProcessCreationToFirstPresent" units="ms">
  <owner>sky@chromium.org</owner>
  <summary>
    The delta between when chrome main starts to when the Chrome OS system UI
    (ash) is visible to the user (specifically the first time pixels are lit up
    on the primary display showing the Chrome OS system UI).
  </summary>
</histogram>

<histogram name="Ash.Rotation.AnimationSmoothness" units="%">
  <owner>wutao@chromium.org</owner>
  <summary>
    Relative smoothness of animations when rotating screen. 100% represents
    ideally smooth 60 frames per second. 50% represents only 30 frames per
    second is achieved during the animations. 0% should not happen. This metric
    is recorded exactly once when the user rotates the screen.
  </summary>
</histogram>

<histogram name="Ash.Shelf.Menu.NumItemsEnabledUponSelection" units="Count">
  <owner>bruthig@google.com</owner>
  <owner>tdanderson@google.com</owner>
  <summary>
    Tracks the number of menu items that are enabled in a shelf item's secondary
    menu. This metric is only recorded when a menu item is selected.
  </summary>
</histogram>

<histogram name="Ash.Shelf.Menu.SelectedMenuItemIndex" units="Index">
  <owner>bruthig@google.com</owner>
  <owner>tdanderson@google.com</owner>
  <summary>
    Tracks the index of the selected menu item in a shelf item's secondary menu.
    This metric is only recorded when a menu item is selected.
  </summary>
</histogram>

<histogram name="Ash.Shelf.NumberOfItems" units="Icons">
  <owner>bruthig@google.com</owner>
  <owner>tdanderson@google.com</owner>
  <summary>
    The number of icons in the shelf, not including the App Launcher icon. This
    metric is recorded every 30 minutes.
  </summary>
</histogram>

<histogram name="Ash.Shelf.NumberOfPinnedItems" units="Icons">
  <owner>bruthig@google.com</owner>
  <owner>tdanderson@google.com</owner>
  <summary>
    The number of pinned icons in the shelf, not including the App Launcher
    icon. This metric is recorded every 30 minutes.
  </summary>
</histogram>

<histogram name="Ash.Shelf.NumberOfUnpinnedItems" units="Icons">
  <owner>bruthig@google.com</owner>
  <owner>tdanderson@google.com</owner>
  <summary>
    The number of unpinned icons in the shelf. This metric is recorded every 30
    minutes.
  </summary>
</histogram>

<histogram name="Ash.Shelf.Palette.Assistant.CircledPercentage" units="%">
  <owner>kaznacheev@chromium.org</owner>
  <summary>
    The percentage of the screen area circled by the Assistant pen. Recorded
    when the &quot;closed shape&quot; gesture is recognized.
  </summary>
</histogram>

<histogram name="Ash.Shelf.Palette.Assistant.GestureDuration" units="ms">
  <owner>kaznacheev@chromium.org</owner>
  <summary>
    The duration of an Assistant pen gesture. Recorded at the end of every
    gesture.
  </summary>
</histogram>

<histogram name="Ash.Shelf.Palette.Assistant.GestureInterval" units="ms">
  <owner>kaznacheev@chromium.org</owner>
  <summary>
    The interval between subsequent Assistant pen gestures within a session.
    Session is defined as the period while the Assistant tool is enabled.
    Recorded at the end of each gesture except for the first one in the session.
    The interval is computed excluding the gesture duration.
  </summary>
</histogram>

<histogram name="Ash.Shelf.Palette.Assistant.GesturesPerSession">
  <owner>kaznacheev@chromium.org</owner>
  <summary>
    The number of Assistant pen gestures per session. Session is defined as the
    period while the Assistant tool is enabled. Recorded at the end of the
    session.
  </summary>
</histogram>

<histogram name="Ash.Shelf.Palette.Assistant.GesturesPerSession.Recognized">
  <owner>kaznacheev@chromium.org</owner>
  <summary>
    The number of recognized Assistant pen gestures per session. Session is
    defined as the period while the Assistant tool is enabled. Recorded at the
    end of the session.
  </summary>
</histogram>

<histogram name="Ash.Shelf.Palette.Assistant.GestureType"
    enum="AssistantGestureType">
  <owner>kaznacheev@chromium.org</owner>
  <summary>
    The type of the Assistant pen gesture. Recorded at the end of each gesture.
  </summary>
</histogram>

<histogram name="Ash.Shelf.Palette.Assistant.HighlighterLength" units="dp">
  <owner>kaznacheev@chromium.org</owner>
  <summary>
    The length of a recognized &quot;horizontal stroke&quot; Assistant pen
    gesture. Recorded at the and of the gesture.
  </summary>
</histogram>

<histogram name="Ash.Shelf.Palette.InAssistantMode" units="ms">
  <owner>kaznacheev@chromium.org</owner>
  <summary>
    The amount of time spent in Palette Assistant mode. Recorded when the
    Assistant mode is exited.
  </summary>
</histogram>

<histogram name="Ash.Shelf.Palette.InLaserPointerMode" units="ms">
  <owner>jdufault@chromium.org</owner>
  <summary>
    The amount of time spend in Palette Laser pointer mode. Recorded when the
    Laser pointer mode is exited.
  </summary>
</histogram>

<histogram name="Ash.Shelf.Palette.InMagnifyMode" units="ms">
  <owner>jdufault@chromium.org</owner>
  <summary>
    The amount of time spend in Palette Magnify mode. Recorded when the Magnify
    mode is exited.
  </summary>
</histogram>

<histogram name="Ash.Shelf.Palette.ModeCancellation"
    enum="PaletteModeCancelType">
  <owner>jdufault@chromium.org</owner>
  <summary>
    Tracks the number of times a palette mode is explicitly cancelled or
    switched out of.
  </summary>
</histogram>

<histogram name="Ash.Shelf.Palette.Usage" enum="PaletteTrayOptions">
  <owner>jdufault@chromium.org</owner>
  <summary>
    Recorded every time that the palette option has been selected from the
    palette that has been opened manually (not via a stylus eject event).
  </summary>
</histogram>

<histogram name="Ash.Shelf.Palette.Usage.AutoOpened" enum="PaletteTrayOptions">
  <owner>jdufault@chromium.org</owner>
  <summary>
    Recorded every time that the palette option has been selected from the
    palette that has been opened automatically (by a stylus eject event).
  </summary>
</histogram>

<histogram name="Ash.Shelf.Palette.Usage.Shortcut" enum="PaletteTrayOptions">
  <owner>kaznacheev@chromium.org</owner>
  <summary>
    Recorded every time that the palette option has been selected by means other
    that the palette menu (e.g. stylus barrel button or a keyboard accelerator).
  </summary>
</histogram>

<histogram name="Ash.Shelf.TimeBetweenNavigateToTaskSwitches" units="seconds">
  <owner>bruthig@google.com</owner>
  <owner>tdanderson@google.com</owner>
  <summary>
    The number of seconds between contiguous task switch user actions triggered
    by the Shelf buttons where the user activates a different user-predictable
    task. Task switches from other sources are ignored and do not affect this
    metric. In other words, if a user performs the following steps (1) launch
    task 'A' from the Shelf (2) Alt+Tab to task 'Z' (3) launch task 'B' from the
    Shelf, then this will result in a sample recorded for the time delta between
    launching tasks 'A' and 'B'.
  </summary>
</histogram>

<histogram name="Ash.Shelf.TimeBetweenWindowMinimizedAndActivatedActions"
    units="ms">
  <owner>bruthig@google.com</owner>
  <owner>tdanderson@google.com</owner>
  <summary>
    Tracks the amount of time between a window being minimized by the shelf and
    subsequently activated. In other words this metric is only recorded if a
    shelf button pressed action causes a window to be minimized and the very
    next shelf button pressed action causes the same window to be activated.
  </summary>
</histogram>

<histogram name="Ash.ShelfAlignmentOverTime" enum="ShelfAlignmentValue">
  <owner>kuscher@google.com</owner>
  <summary>
    The current state of the shelf (alignment) tracked over time by logging on a
    regular basis (30 minutes), this is used instead of log in or shelf usage to
    track users that do not lock/unlock or log in frequently and use a small
    number of browser instances or otherwise infrequently interact with the
    shelf launcher.
  </summary>
</histogram>

<histogram name="Ash.ShelfAlignmentUsage" enum="ShelfAlignmentValue">
  <owner>kuscher@google.com</owner>
  <summary>
    The current state of the shelf (alignment) when the shelf launcher is used
    to launch an app/window/etc, this is used instead of log in to give data on
    users that do not lock/unlock or log in frequently.
  </summary>
</histogram>

<histogram name="Ash.SplitView.TimeInSplitView" units="ms">
  <owner>xdai@chromium.org</owner>
  <summary>
    The amount of time that the user spent in split view mode. The time is
    measured from the moment a window is snapped to one side of the screen to
    when split view mode is ended.
  </summary>
</histogram>

<histogram name="Ash.StationaryTouchDuration" units="seconds">
  <obsolete>
    Deprecated 02/2017 due to lack of usage.
  </obsolete>
  <owner>kuscher@google.com</owner>
  <owner>rbyers@chromium.org</owner>
  <summary>The duration of mostly stationary long-duration touches.</summary>
</histogram>

<histogram name="Ash.SystemMenu.DefaultView.VisibleRows"
    enum="SystemMenuDefaultViewRows">
  <owner>bruthig@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    The visible rows displayed in the system menu's default view. Recorded each
    time the menu is opened.
  </summary>
</histogram>

<histogram name="Ash.SystemMenu.PercentageOfWorkAreaHeightCoveredByMenu"
    units="%">
  <owner>tbuckley@chromium.org</owner>
  <summary>
    The height of the system menu divided by the height of the Ash desktop work
    area; a value over 100% indicates that a portion of the system menu is not
    visible to the user. Recorded each time the menu is opened.
  </summary>
</histogram>

<histogram name="Ash.SystemMenu.Rows" units="rows">
  <owner>tbuckley@chromium.org</owner>
  <summary>
    The number of user-visible rows in the system menu's default view. Recorded
    each time the menu is opened.
  </summary>
</histogram>

<histogram name="Ash.Tab.TimeBetweenSwitchToExistingTabUserActions"
    units="seconds">
  <obsolete>
    Deprecated 10/2016 for Issue 616581.
  </obsolete>
  <owner>bruthig@chromium.org</owner>
  <owner>tdanderson@chromium.org</owner>
  <summary>
    The number of seconds between tab switches triggered by a user gesture (e.g.
    Ctrl+T, Ctrl+1, tapping or clicking the tab strip, etc).
  </summary>
</histogram>

<histogram name="Ash.TimeBetweenTaskSwitches" units="seconds">
  <owner>bruthig@google.com</owner>
  <owner>tdanderson@google.com</owner>
  <summary>
    The number of seconds between contiguous task switch user actions triggered
    by any of the other task switch actions that are tracked. (e.g.,
    Ash.Shelf.TimeBetweenNavigateToTaskSwitches,
    Ash.Tab.TimeBetweenSwitchToExistingTabUserActions,
    Ash.WindowCycleController.TimeBetweenTaskSwitches,
    Ash.AppList.TimeBetweenTaskSwitches,
    Ash.WindowSelector.TimeBetweenActiveWindowChanges, etc). Note the
    Ash.AppList.TimeBetweenTaskSwitches and
    Ash.Tab.TimeBetweenSwitchToExistingTabUserActions histograms were deprecated
    and removed in 10/2016.
  </summary>
</histogram>

<histogram name="Ash.TouchDuration" units="ms">
  <obsolete>
    Deprecated 12/2013 in r239809, and replaced by Ash.TouchDuration2.
  </obsolete>
  <owner>kuscher@google.com</owner>
  <summary>The duration of a touch-sequence.</summary>
</histogram>

<histogram name="Ash.TouchDuration2" units="ms">
  <obsolete>
    Deprecated 08/2014 in Issue 352654, and replaced by Event.TouchDuration.
  </obsolete>
  <owner>kuscher@google.com</owner>
  <owner>rbyers@chromium.org</owner>
  <summary>The duration of a touch-sequence.</summary>
</histogram>

<histogram name="Ash.TouchMaxDistance" units="pixels">
  <obsolete>
    Deprecated 08/2014 in Issue 352654, and replaced by Event.TouchMaxDistance.
  </obsolete>
  <owner>kuscher@google.com</owner>
  <owner>rbyers@chromium.org</owner>
  <summary>
    The maximum euclidean distance in dips which a touch point has travelled
    away from its starting point. Only measured for single finger gestures.
  </summary>
</histogram>

<histogram name="Ash.TouchMoveInterval" units="ms">
  <obsolete>
    Deprecated 02/2017 due to lack of usage.
  </obsolete>
  <owner>kuscher@google.com</owner>
  <owner>rbyers@chromium.org</owner>
  <summary>The interval between touch-move events.</summary>
</histogram>

<histogram name="Ash.TouchMoveSteps" units="pixels">
  <owner>kuscher@google.com</owner>
  <owner>rbyers@chromium.org</owner>
  <summary>The distance between touch-move events.</summary>
</histogram>

<histogram name="Ash.TouchPositionX" units="pixels">
  <obsolete>
    Deprecated 07/2018 due to lack of usage.
  </obsolete>
  <owner>tdanderson@chromium.org</owner>
  <owner>kuscher@google.com</owner>
  <summary>The position of the touch-events along the X axis.</summary>
</histogram>

<histogram name="Ash.TouchPositionY" units="pixels">
  <obsolete>
    Deprecated 07/2018 due to lack of usage.
  </obsolete>
  <owner>tdanderson@chromium.org</owner>
  <owner>kuscher@google.com</owner>
  <summary>The position of the touch-events along the Y axis.</summary>
</histogram>

<histogram name="Ash.TouchRadius" units="pixels">
  <obsolete>
    Deprecated 07/2018 due to lack of usage.
  </obsolete>
  <owner>tdanderson@chromium.org</owner>
  <owner>kuscher@google.com</owner>
  <summary>The radius of a touch event.</summary>
</histogram>

<histogram name="Ash.TouchStartAfterEnd" units="ms">
  <owner>kuscher@google.com</owner>
  <summary>
    The interval between the end of a touch-sequence and the start of the next
    touch-sequence.
  </summary>
</histogram>

<histogram name="Ash.TouchStartBurst">
  <obsolete>
    Deprecated 02/2017 due to lack of usage.
  </obsolete>
  <owner>kuscher@google.com</owner>
  <owner>rbyers@chromium.org</owner>
  <summary>
    The number of rapid touch-starts that happened within a short interval.
    Logged once for each such burst group.
  </summary>
</histogram>

<histogram name="Ash.TouchView.LidAngle" units="degrees">
  <owner>derat@chromium.org</owner>
  <summary>
    Chrome OS only. The computed angle between the lid and the keyboard panel.
    These values are imprecise and may be tens of degrees off from reality.
    Reported once per hour that the system is awake, and not reported if the
    system doesn't have two accelerometers.
  </summary>
</histogram>

<histogram name="Ash.TouchView.TouchViewActive" units="ms">
  <owner>girard@chromium.org</owner>
  <summary>
    The length of time that TouchView is active, for each activation.
  </summary>
</histogram>

<histogram name="Ash.TouchView.TouchViewActivePercentage" units="%">
  <owner>girard@chromium.org</owner>
  <summary>The proportion of time spent in TouchView during a session.</summary>
</histogram>

<histogram name="Ash.TouchView.TouchViewActiveTotal" units="minutes">
  <owner>girard@chromium.org</owner>
  <summary>The total time that TouchView is active during a session.</summary>
</histogram>

<histogram name="Ash.TouchView.TouchViewInactive" units="ms">
  <owner>girard@chromium.org</owner>
  <summary>The length of time between TouchView activations.</summary>
</histogram>

<histogram name="Ash.TouchView.TouchViewInactiveTotal" units="minutes">
  <owner>girard@chromium.org</owner>
  <summary>
    The total time that TouchView is not active during a session.
  </summary>
</histogram>

<histogram name="Ash.Wallpaper.Apps" enum="WallpaperApps">
  <obsolete>
    Deprecated as of 2/2018. Currently there is only one type of Wallpaper App.
  </obsolete>
  <owner>xdai@chromium.org</owner>
  <summary>
    The Wallpaper App that the user is using right now on Chrome OS. It's the
    app that is used when the user right clicks on desktop and selects &quot;Set
    wallpaper&quot; or when the user selects &quot;Set wallpaper&quot; from
    chrome://settings page. This is recorded at user login.
  </summary>
</histogram>

<histogram name="Ash.Wallpaper.ColorExtraction.Durations" units="ms">
  <owner>bruthig@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    The time taken to extract colors from wallpapers. Recorded each time the
    wallpaper image changes. It may contain multiple colors extracted.
  </summary>
</histogram>

<histogram name="Ash.Wallpaper.ColorExtraction.UserDelay" units="ms">
  <owner>bruthig@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    The time taken to extract colors from 'expensive' wallpapers. Recorded each
    time the wallpaper image changes and the color extraction is expected to be
    expensive, e.g. image size &gt; 100 pixels. This includes time spent
    switching threads. It may contain multiple colors extracted.
  </summary>
</histogram>

<histogram name="Ash.Wallpaper.ColorExtractionResult" enum="BooleanSuccess">
  <obsolete>
    Deprecated as of 6/2017.
  </obsolete>
  <owner>bruthig@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    Tracks the success rate for wallpaper color extraction. Recorded each time
    the wallpaper image changes.
  </summary>
</histogram>

<histogram name="Ash.Wallpaper.ColorExtractionResult2"
    enum="WallpaperColorExtractionResult">
  <owner>warx@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    Tracks the success rate for wallpaper color extraction. Recorded each time
    the wallpaper image changes for each extracted wallpaper prominent color.
  </summary>
</histogram>

<histogram name="Ash.Wallpaper.CustomLayout" enum="WallpaperLayout">
  <owner>xdai@chromium.org</owner>
  <summary>
    The custom wallpaper layout type. Recorded when the user sets a new custom
    wallpaper or changes the existing custom wallpaper's layout.
  </summary>
</histogram>

<histogram name="Ash.Wallpaper.DefaultIndex">
  <obsolete>
    Deprecated as of 11/2012. Use of indices has been removed.
  </obsolete>
  <owner>kuscher@google.com</owner>
  <summary>
    The wallpaper index if one of the default wallpapers has been selected.
    Recorded at user login. Currently only for the old wallpaper picker UI.
  </summary>
</histogram>

<histogram name="Ash.Wallpaper.Source" enum="WallpaperType">
  <owner>xdai@chromium.org</owner>
  <summary>
    Recorded when a new wallpaper is set, either by the built-in Wallpaper
    Picker App, or by a third party App. Note the wallpaper change triggered by
    Sync file system event doesn't count.
  </summary>
</histogram>

<histogram name="Ash.Wallpaper.TimeSpentExtractingColors" units="ms">
  <obsolete>
    Deprecated as of 04/2017 in favor of Ash.Wallpaper.ColorExtraction.Durations
    and Ash.Wallpaper.ColorExtraction.UserDelay.
  </obsolete>
  <owner>bruthig@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    The time taken to extract colors from wallpapers. Recorded each time the
    wallpaper image changes. NOTE, this measure also included the time spent
    jumping between threads, thus it was deprecated in favor of
    Ash.Wallpaper.ColorExtraction.Durations.
  </summary>
</histogram>

<histogram name="Ash.Wallpaper.TimeSpentResizing" units="ms">
  <owner>bruthig@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    The time taken to resize wallpapers. Recorded once each time the wallpaper
    changes (e.g. initial wallpaper loading at boot, switching user avatar at
    login screen, switching between logged in users, user selects new wallpaper,
    etc).
  </summary>
</histogram>

<histogram name="Ash.Wallpaper.Type" enum="WallpaperType">
  <owner>kuscher@google.com</owner>
  <summary>The wallpaper type. Recorded at user login.</summary>
</histogram>

<histogram name="Ash.Window.AnimationSmoothness.CrossFade" units="%">
  <owner>wutao@chromium.org</owner>
  <summary>
    Relative smoothness of cross fade animation when setting window bounds. 100%
    represents ideally smooth 60 frames per second. 50% represents when only 30
    frames per second is achieved during the animations. 0% should not happen.
    This metric is recorded exactly once when SetBoundsDirectCrossFade is
    called, such as when window is maximized.
  </summary>
</histogram>

<histogram name="Ash.Window.AnimationSmoothness.Hide" units="%">
  <owner>wutao@chromium.org</owner>
  <summary>
    Relative smoothness of hiding window animation. 100% represents ideally
    smooth 60 frames per second. 50% represents when only 30 frames per second
    is achieved during the animations. 0% should not happen. This metric is
    recorded exactly once when AnimateHideWindowCommon is called, such as when
    window is closed.
  </summary>
</histogram>

<histogram name="Ash.WindowCycleController.CycleTime" units="ms">
  <owner>wutao@chromium.org</owner>
  <owner>tbuckley@google.com</owner>
  <summary>
    The amount of time the Alt key is held after pressing Alt+Tab to begin
    cycling through windows.
  </summary>
</histogram>

<histogram name="Ash.WindowCycleController.Items" units="items">
  <owner>wutao@chromium.org</owner>
  <owner>tbuckley@google.com</owner>
  <summary>
    The number of windows in the Alt+Tab selector. Only recorded once when
    cycling starts, not every time when Tab is pressed without releasing Alt.
  </summary>
</histogram>

<histogram name="Ash.WindowCycleController.SelectionDepth" units="items">
  <owner>wutao@chromium.org</owner>
  <owner>tbuckley@google.com</owner>
  <summary>
    When a window is selected after pressing Alt+Tab, records that window's
    position in the global MRU ordering. 1 represents the most-recently used
    window, 2 represents the next most-recently used window, and so on. Recorded
    when Alt+Tab cycling stops, i.e., when Alt key is released.
  </summary>
</histogram>

<histogram name="Ash.WindowCycleController.TimeBetweenTaskSwitches"
    units="seconds">
  <owner>wutao@chromium.org</owner>
  <owner>tbuckley@google.com</owner>
  <summary>
    The number of seconds between task switches triggered by the next window and
    previous window accelerator keys (ie Alt+Tab, Alt+Shift+Tab).
  </summary>
</histogram>

<histogram name="Ash.WindowManager.Lock.Success" units="ms">
  <owner>jdufault@chromium.org</owner>
  <summary>
    How long it took for the screen lock process to complete. This does not
    include timeouts.
  </summary>
</histogram>

<histogram name="Ash.WindowManager.Lock.Timeout" units="ms">
  <owner>jdufault@chromium.org</owner>
  <summary>
    How long it took for the screen lock process to complete, for timeouts only.
  </summary>
</histogram>

<histogram name="Ash.WindowSelector.AnimationSmoothness.Close" units="%">
  <owner>estade@chromium.org</owner>
  <summary>
    Relative smoothness of animations when closing a window in overview mode.
    100% represents ideally smooth 60 frames per second.
  </summary>
</histogram>

<histogram name="Ash.WindowSelector.AnimationSmoothness.Enter" units="%">
  <owner>estade@chromium.org</owner>
  <summary>
    Relative smoothness of animations when entering overview mode. 100%
    represents ideally smooth 60 frames per second.
  </summary>
</histogram>

<histogram name="Ash.WindowSelector.AnimationSmoothness.Exit" units="%">
  <owner>estade@chromium.org</owner>
  <summary>
    Relative smoothness of animations when exiting overview mode. 100%
    represents ideally smooth 60 frames per second.
  </summary>
</histogram>

<histogram name="Ash.WindowSelector.ArrowKeyPresses">
  <owner>flackr@chromium.org</owner>
  <summary>
    The number of times the arrow keys are pressed in overview mode per session,
    i.e. between bringing up overview mode and ending it. This is only measured
    for the sessions that end by selecting a window with the enter key.
  </summary>
</histogram>

<histogram name="Ash.WindowSelector.CycleTime" units="ms">
  <obsolete>
    Deprecated as of 06/2014. No longer relevant since alt-tab switching was
    separated from WindowSelector.
  </obsolete>
  <owner>flackr@chromium.org</owner>
  <owner>kuscher@google.com</owner>
  <summary>
    The amount of time the Alt key is held after pressing Alt+Tab to begin
    cycling through windows.
  </summary>
</histogram>

<histogram name="Ash.WindowSelector.Items">
  <owner>flackr@chromium.org</owner>
  <owner>kuscher@google.com</owner>
  <summary>
    The number of items (single windows or groups of windows such as panels) in
    the overview mode, present at the start of each session.
  </summary>
</histogram>

<histogram name="Ash.WindowSelector.ItemsWhenTextFilteringUsed" units="items">
  <owner>flackr@chromium.org</owner>
  <summary>
    The number of items showing in overview mode at the moment when an item is
    selected or when selection is canceled. Only recorded if the text filtering
    textfield contains a non-empty string.
  </summary>
</histogram>

<histogram name="Ash.WindowSelector.KeyPressesOverItemsRatio" units="%">
  <owner>flackr@chromium.org</owner>
  <summary>
    The ratio between the arrow key presses and the number of overview items,
    expressed as a percentage for a single session.
  </summary>
</histogram>

<histogram name="Ash.WindowSelector.OverviewClosedItems">
  <owner>flackr@chromium.org</owner>
  <summary>
    The number of items closed from the window overview for a single session.
  </summary>
</histogram>

<histogram name="Ash.WindowSelector.SelectionDepth" units="items">
  <owner>estade@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    When a window is selected in overview mode, records that window's position
    in the global MRU ordering. 1 represents the most-recently used window, 2
    represents the next most-recently used window, and so on.
  </summary>
</histogram>

<histogram name="Ash.WindowSelector.TextFilteringStringLength"
    units="characters">
  <owner>flackr@chromium.org</owner>
  <summary>
    The length of the string entered into the text filtering textfield at the
    moment when an item is selected or when selection is canceled.
  </summary>
</histogram>

<histogram name="Ash.WindowSelector.TextFilteringTextfieldCleared">
  <owner>flackr@chromium.org</owner>
  <summary>
    The number of times the text filtering textfield has had all of its text
    removed within a single overview mode session. Measured from the time
    overview mode is invoked to when an item is selected or when selection is
    canceled.
  </summary>
</histogram>

<histogram name="Ash.WindowSelector.TimeBetweenActiveWindowChanges"
    units="seconds">
  <owner>bruthig@chromium.org</owner>
  <summary>
    The amount of time between endings of overview mode sessions which were
    caused by the user selecting a window which was not previously active. Only
    recorded on the second and later times after startup that the user selected
    a window which was not previously active.
  </summary>
</histogram>

<histogram name="Ash.WindowSelector.TimeBetweenUse" units="ms">
  <owner>flackr@chromium.org</owner>
  <owner>kuscher@google.com</owner>
  <summary>
    The amount of time between uses of overview mode, recorded when overview
    mode is entered. Only recorded on the second and later times after startup
    that the user entered overview mode.
  </summary>
</histogram>

<histogram name="Ash.WindowSelector.TimeInOverview" units="ms">
  <owner>flackr@chromium.org</owner>
  <owner>kuscher@google.com</owner>
  <summary>
    The amount of time spent in overview mode. Overview mode is engaged by
    pressing the overview button. The time is measured from the moment the
    windows begin animating to a thumbnail size preview to when a window is
    selected or selection is canceled.
  </summary>
</histogram>

<histogram name="Ash.WindowSelector.TimeInOverviewWithTextFiltering" units="ms">
  <owner>flackr@chromium.org</owner>
  <summary>
    The amount of time spent in overview mode when text filtering is used. The
    time is measured from the moment the windows begin animating to a thumbnail
    size preview to when a window is selected or selection is canceled. Only
    recorded if the text filtering textfield contains a non-empty string.
  </summary>
</histogram>

<histogram name="Assistant.ButtonClickCount" enum="AssistantButtonId"
    expires_after="2019-11-13">
  <owner>xiaohuic@chromium.org</owner>
  <owner>meilinw@chromium.org</owner>
  <summary>
    The number of times buttons on Assistant UI (e.g., minimize) are clicked.
  </summary>
</histogram>

<histogram name="Assistant.ContainerView.Resize.AnimationSmoothness" units="%">
  <owner>wutao@chromium.org</owner>
  <summary>
    Relative animation smoothness of resizing assistant container window. 100%
    represents ideally smooth 60 frames per second. 50% represents when only 30
    frames per second is achieved during the animations. 0% should not happen.
    This metric is recorded when the container window resizing is finished.
  </summary>
</histogram>

<histogram name="Assistant.EntryPoint" enum="AssistantEntryPoint"
    expires_after="2019-11-01">
  <owner>xiaohuic@chromium.org</owner>
  <owner>meilinw@chromium.org</owner>
  <summary>
    Record the Assistant entry point where Assistant UI becomes visible.
  </summary>
</histogram>

<histogram name="Assistant.ExitPoint" enum="AssistantExitPoint"
    expires_after="2019-11-19">
  <owner>xiaohuic@chromium.org</owner>
  <owner>meilinw@chromium.org</owner>
  <summary>
    Record the Assistant exit point where Assistant UI becomes invisible.
  </summary>
</histogram>

<histogram name="Assistant.HotwordEnableNotification" enum="BooleanHit">
  <owner>updowndota@chromium.org</owner>
  <summary>
    Counts the number of times user click the hotword enable notification to
    open Assistant settings.
  </summary>
</histogram>

<histogram name="Assistant.OptInFlow.GetSettingsRequestTime" units="ms">
  <owner>updowndota@chromium.org</owner>
  <summary>
    Amount of time between get settings request and response. The request will
    be sent for each time the Assistant OptIn Flow is triggered to get string
    texts from the server.
  </summary>
</histogram>

<histogram name="Assistant.OptInFlow.LoadingTimeoutCount">
  <owner>updowndota@chromium.org</owner>
  <summary>
    Number of times that the loading timeout triggers. The loading timeout is
    set by the Assistant OptIn Flow loading screen, which shows up during the
    server string texts and webviews are pending.
  </summary>
</histogram>

<histogram name="Assistant.OptInFlowStatus" enum="AssistantOptInFlowStatus">
  <owner>updowndota@chromium.org</owner>
  <summary>Record the status of the Assistant opt-in flow.</summary>
</histogram>

<histogram name="Assistant.QueryCountPerEntryPoint" enum="AssistantEntryPoint"
    expires_after="2019-10-15">
  <owner>xiaohuic@chromium.org</owner>
  <owner>meilinw@chromium.org</owner>
  <summary>Number of queries fired for each entry point.</summary>
</histogram>

<histogram name="Assistant.QueryResponseType" enum="AssistantQueryResponseType"
    expires_after="2019-11-26">
  <owner>xiaohuic@chromium.org</owner>
  <owner>meilinw@chromium.org</owner>
  <summary>The Assistant query response type.</summary>
</histogram>

<histogram name="Assistant.QuerySource" enum="AssistantQuerySource"
    expires_after="2019-11-30">
  <owner>xiaohuic@chromium.org</owner>
  <owner>meilinw@chromium.org</owner>
  <summary>
    The source of Assistant query (e.g. dialog plate text field, voice input).
    Recorded when the query is committed.
  </summary>
</histogram>

<histogram name="Assistant.ServiceEnabledUserCount" enum="BooleanEnabled"
    expires_after="2019-11-13">
  <owner>xiaohuic@chromium.org</owner>
  <owner>meilinw@chromium.org</owner>
  <summary>
    Among eligible users, whether the user has the Assistant service enabled.
    Recorded once for every UMA upload. The set of eligible users includes all
    users with profiles that can allow Assistant service to be enabled
    (AssistantAllowedState is limited by locale, policy, etc).
  </summary>
</histogram>

<histogram name="Assistant.ServiceStartTime" units="ms">
  <owner>updowndota@chromium.org</owner>
  <summary>Amount of time spent in starting Assistant service.</summary>
</histogram>

<histogram name="AsyncDNS.AttemptCountFail">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Count of DnsAttempts before DnsTransaction completes with failure.
  </summary>
</histogram>

<histogram name="AsyncDNS.AttemptCountSuccess">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Count of DnsAttempts before DnsTransaction completes successfully.
  </summary>
</histogram>

<histogram name="AsyncDNS.ConfigChange" enum="BooleanSuccess">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Whether DnsConfigService::OnConfigChange actually corresponded to a change
    in DnsConfig.
  </summary>
</histogram>

<histogram name="AsyncDNS.ConfigNotifyInterval" units="ms">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time between calls to DnsConfigService::InvalidateConfig.
  </summary>
</histogram>

<histogram name="AsyncDNS.ConfigParseDuration" units="ms">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>Duration of time spent parsing DnsConfig.</summary>
</histogram>

<histogram name="AsyncDNS.ConfigParsePosix" enum="AsyncDNSConfigParsePosix">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Counts of results of parsing DnsConfig in DnsConfigServicePosix.
  </summary>
</histogram>

<histogram name="AsyncDNS.ConfigParseResult" enum="BooleanSuccess">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>Whether DnsConfig was parsed successfully.</summary>
</histogram>

<histogram name="AsyncDNS.ConfigParseWin" enum="AsyncDNSConfigParseWin">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Counts of results of parsing DnsConfig in DnsConfigServiceWin.
  </summary>
</histogram>

<histogram name="AsyncDNS.DNSChangerDetected" enum="BooleanSuccess">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Whether the first valid DnsConfig included a rogue nameserver.
  </summary>
</histogram>

<histogram name="AsyncDNS.DnsClientDisabledReason" enum="NetErrorCodes">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Counts of specific error codes returned by DnsTask if a subsequent ProcTask
    succeeded, at the end of a streak of failures after which the DnsClient was
    disabled.
  </summary>
</histogram>

<histogram name="AsyncDNS.DnsClientEnabled" enum="BooleanSuccess">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    TRUE counts the events when a valid DnsConfig is received and used to enable
    DnsClient, while FALSE counts the events when DnsClient is disabled after a
    series of successful fallbacks from DnsTask to ProcTask.
  </summary>
</histogram>

<histogram name="AsyncDNS.FallbackFail" units="ms">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time spent by ProcTask in failing fallback resolutions.
  </summary>
</histogram>

<histogram name="AsyncDNS.FallbackSuccess" units="ms">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time spent by ProcTask in successful fallback resolutions.
  </summary>
</histogram>

<histogram name="AsyncDNS.HaveDnsConfig" enum="BooleanSuccess">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Whether there was a valid DNS configuration at the start of a job which
    eventually completed successfully.
  </summary>
</histogram>

<histogram name="AsyncDNS.HostParseResult" enum="BooleanSuccess">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>Whether DnsHosts were parsed successfully.</summary>
</histogram>

<histogram name="AsyncDNS.HostsChange" enum="BooleanSuccess">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Whether DnsConfigService::OnHostsChange actually corresponded to a change in
    DnsHosts.
  </summary>
</histogram>

<histogram name="AsyncDNS.HostsNotifyInterval" units="ms">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time between calls to DnsConfigService::InvalidateHosts.
  </summary>
</histogram>

<histogram name="AsyncDNS.HostsParseDuration" units="ms">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>Duration of time spent parsing DnsHosts.</summary>
</histogram>

<histogram name="AsyncDNS.HostsParseWin" enum="AsyncDNSHostsParseWin">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Counts of results of parsing DnsHosts in DnsConfigServiceWin.
  </summary>
</histogram>

<histogram name="AsyncDNS.HostsSize" units="bytes">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    The size of the HOSTS file observed before each attempt to parse it.
  </summary>
</histogram>

<histogram name="AsyncDNS.JobQueueTime" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTime.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the time the HostResolverImpl::Job was created and the
    time the Job was started (using DnsClient).
  </summary>
</histogram>

<histogram name="AsyncDNS.JobQueueTime_HIGHEST" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTime.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the time the HostResolverImpl::Job was created and the
    time the Job was started (using DnsClient). Includes only Jobs which had
    priority HIGHEST when started.
  </summary>
</histogram>

<histogram name="AsyncDNS.JobQueueTime_IDLE" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTime.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the time the HostResolverImpl::Job was created and the
    time the Job was started (using DnsClient). Includes only Jobs which had
    priority IDLE when started.
  </summary>
</histogram>

<histogram name="AsyncDNS.JobQueueTime_LOW" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTime.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the time the HostResolverImpl::Job was created and the
    time the Job was started (using DnsClient). Includes only Jobs which had
    priority LOW when started.
  </summary>
</histogram>

<histogram name="AsyncDNS.JobQueueTime_LOWEST" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTime.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the time the HostResolverImpl::Job was created and the
    time the Job was started (using DnsClient). Includes only Jobs which had
    priority LOWEST when started.
  </summary>
</histogram>

<histogram name="AsyncDNS.JobQueueTime_MEDIUM" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTime.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the time the HostResolverImpl::Job was created and the
    time the Job was started (using DnsClient). Includes only Jobs which had
    priority MEDIUM when started.
  </summary>
</histogram>

<histogram name="AsyncDNS.JobQueueTimeAfterChange" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTimeAfterChange.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the last time the priority of a HostResolverImpl::Job
    changed (when a Request was attached or detached) and the time the Job was
    started (using DnsClient).
  </summary>
</histogram>

<histogram name="AsyncDNS.JobQueueTimeAfterChange_HIGHEST" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTimeAfterChange.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the last time the priority of a HostResolverImpl::Job
    changed (when a Request was attached or detached) and the time the Job was
    started (using DnsClient). Includes only Jobs which had priority HIGHEST
    when started.
  </summary>
</histogram>

<histogram name="AsyncDNS.JobQueueTimeAfterChange_IDLE" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTimeAfterChange.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the last time the priority of a HostResolverImpl::Job
    changed (when a Request was attached or detached) and the time the Job was
    started (using DnsClient). Includes only Jobs which had priority IDLE when
    started.
  </summary>
</histogram>

<histogram name="AsyncDNS.JobQueueTimeAfterChange_LOW" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTimeAfterChange.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the last time the priority of a HostResolverImpl::Job
    changed (when a Request was attached or detached) and the time the Job was
    started (using DnsClient). Includes only Jobs which had priority LOW when
    started.
  </summary>
</histogram>

<histogram name="AsyncDNS.JobQueueTimeAfterChange_LOWEST" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTimeAfterChange.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the last time the priority of a HostResolverImpl::Job
    changed (when a Request was attached or detached) and the time the Job was
    started (using DnsClient). Includes only Jobs which had priority LOWEST when
    started.
  </summary>
</histogram>

<histogram name="AsyncDNS.JobQueueTimeAfterChange_MEDIUM" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTimeAfterChange.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the last time the priority of a HostResolverImpl::Job
    changed (when a Request was attached or detached) and the time the Job was
    started (using DnsClient). Includes only Jobs which had priority MEDIUM when
    started.
  </summary>
</histogram>

<histogram name="AsyncDNS.NameServersType" enum="AsyncDNSNameServersType">
  <obsolete>
    Deprecated as of 4/2016.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Type of nameservers in the DNS config, recorded each time the config is read
    by the DNSConfigService.
  </summary>
</histogram>

<histogram name="AsyncDNS.ParseToAddressList" enum="AsyncDNSParseResult">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Counts of results of parsing addresses out of DNS responses in successful
    DnsTransactions.
  </summary>
</histogram>

<histogram name="AsyncDNS.PrefDefaultSource" enum="AsyncDNSPrefDefaultSource">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    The source of the async DNS preference's default. Logged at startup, when
    the IO thread is created.
  </summary>
</histogram>

<histogram name="AsyncDNS.PrefSource" enum="AsyncDNSPrefSource">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    The source of the async DNS preference's value. Logged at startup, when the
    IO thread is created.
  </summary>
</histogram>

<histogram name="AsyncDNS.Rcode" enum="AsyncDNSRcode">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>robpercival@chromium.org</owner>
  <summary>
    The DNS response rcode
    (https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6).
    Logged when a DnsTransaction finishes an attempt at a DNS record lookup. It
    may make multiple attempts - the rcode of each attempt will be logged. No
    logging will occur for attempts that do not obtain a response from a DNS
    server.

    Only DNS record lookups performed by the internal DNS resolver
    (&quot;AsyncDNS&quot;) will have their rcode logged. Lookups performed by
    the system resolver will not have their rcode logged.
  </summary>
</histogram>

<histogram name="AsyncDNS.ResolveError" enum="NetErrorCodes">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.DnsTaskError.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Counts of specific error codes returned by DnsTask if a subsequent ProcTask
    succeeded.
  </summary>
</histogram>

<histogram name="AsyncDNS.ResolveFail" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.DnsTaskFail.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Duration of time taken by DnsTask in resolutions that failed. Excludes time
    spent in the subsequent fallback.
  </summary>
</histogram>

<histogram name="AsyncDNS.ResolveStatus" enum="AsyncDNSResolveStatus">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Counts of the overall results of using asynchronous DNS in HostResolverImpl.
    This only includes jobs started with valid DNS configuration and excludes
    synchronous resolutions (as IP literals, from cache, and from HOSTS).
  </summary>
</histogram>

<histogram name="AsyncDNS.ResolveSuccess" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.DnsTaskSuccess.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Duration of time taken by DnsTask in resolutions that succeeded.
  </summary>
</histogram>

<histogram name="AsyncDNS.ResolveSuccess_FAMILY_IPV4" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.DnsTaskSuccess.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Same as AsyncDNS.ResolveSuccess, but limited to pure IPv4 lookups.
  </summary>
</histogram>

<histogram name="AsyncDNS.ResolveSuccess_FAMILY_IPV6" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.DnsTaskSuccess.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Same as AsyncDNS.ResolveSuccess, but limited to pure IPv6 lookups.
  </summary>
</histogram>

<histogram name="AsyncDNS.ResolveSuccess_FAMILY_UNSPEC" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.DnsTaskSuccess.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Same as AsyncDNS.ResolveSuccess, but limited to IPv4/IPv6 lookups.
  </summary>
</histogram>

<histogram name="AsyncDNS.ServerCount">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Count of servers in DnsConfig. Recorded on every new DnsSession, which is
    created on DNS change.
  </summary>
</histogram>

<histogram name="AsyncDNS.ServerFailureIndex">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Index in DnsConfig of the failing server, recorded at the time of failure.
  </summary>
</histogram>

<histogram name="AsyncDNS.ServerFailuresAfterNetworkChange">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Count of server failures after network change before first success in the
    DnsSession. Recorded at the time of first success.
  </summary>
</histogram>

<histogram name="AsyncDNS.ServerFailuresAfterSuccess">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Count of server failures after success until the end of the session. Server
    has reported success at some point during the session. Recorded at the end
    of the DnsSession.
  </summary>
</histogram>

<histogram name="AsyncDNS.ServerFailuresBeforeSuccess">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Count of server failures before success. This is NOT the first success in
    the DnsSession. Recorded at the time of success.
  </summary>
</histogram>

<histogram name="AsyncDNS.ServerFailuresWithoutSuccess">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Count of server failures without success until the end of the session.
    Server has never reported success during the DnsSession. Recorded at the end
    of the DnsSession.
  </summary>
</histogram>

<histogram name="AsyncDNS.ServerIsGood" enum="BooleanSuccess">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    The current server is &quot;good&quot; and does not have to be skipped.
  </summary>
</histogram>

<histogram name="AsyncDNS.SortFailure" units="ms">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time taken in failing calls to AddressSorter in dual-stack
    resolutions using DnsTask.
  </summary>
</histogram>

<histogram name="AsyncDNS.SortSuccess" units="ms">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time taken in successful calls to AddressSorter in dual-stack
    resolutions using DnsTask.
  </summary>
</histogram>

<histogram name="AsyncDNS.SuffixSearchDone">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    The number of names from the search name list consumed during a successful
    transaction (QTYPE A only).
  </summary>
</histogram>

<histogram name="AsyncDNS.SuffixSearchRemain">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    The number of names left on the search name list at the end of a successful
    transaction (QTYPE A only).
  </summary>
</histogram>

<histogram name="AsyncDNS.SuffixSearchStart">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    The number of names on the search name list at the start of a transaction
    (QTYPE A only).
  </summary>
</histogram>

<histogram name="AsyncDNS.TCPAttemptFail" units="ms">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time taken by DnsTCPAttempt in failed attempts. Excludes
    timeouts.
  </summary>
</histogram>

<histogram name="AsyncDNS.TCPAttemptSuccess" units="ms">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time taken by DnsTCPAttempt in successful attempts.
  </summary>
</histogram>

<histogram name="AsyncDNS.TimeoutErrorHistogram" units="ms">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Difference between RTT and timeout calculated using Histogram algorithm.
  </summary>
</histogram>

<histogram name="AsyncDNS.TimeoutErrorHistogramUnder" units="ms">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Difference between timeout calculated using Histogram algorithm and RTT.
  </summary>
</histogram>

<histogram name="AsyncDNS.TimeoutErrorJacobson" units="ms">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Difference between RTT and timeout calculated using Jacobson algorithm.
  </summary>
</histogram>

<histogram name="AsyncDNS.TimeoutErrorJacobsonUnder" units="ms">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Difference between timeout calculated using Jacobson algorithm and RTT.
  </summary>
</histogram>

<histogram name="AsyncDNS.TimeoutSpentHistogram" units="ms">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time that would be spent waiting for lost request using
    Histogram algorithm.
  </summary>
</histogram>

<histogram name="AsyncDNS.TimeoutSpentJacobson" units="ms">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time that would be spent waiting for lost request using Jacobson
    algorithm.
  </summary>
</histogram>

<histogram name="AsyncDNS.TotalTime" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.TotalTime.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Duration of time since a HostResolverImpl::Resolve request to the time a
    result is posted. Excludes canceled, evicted, and aborted requests. Includes
    cache hits (recorded as 0). Excludes speculative requests.
  </summary>
</histogram>

<histogram name="AsyncDNS.TotalTime_speculative" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.TotalTime_speculative.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Duration of time since a HostResolverImpl::Resolve request to the time a
    result is posted. Excludes canceled, evicted, and aborted requests. Includes
    cache hits (recorded as 0). Speculative requests only.
  </summary>
</histogram>

<histogram name="AsyncDNS.TransactionFailure" units="ms">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time taken in failing DnsTransactions. This includes server
    failures, timeouts and NXDOMAIN results.
  </summary>
</histogram>

<histogram name="AsyncDNS.TransactionSuccess" units="ms">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time taken in successful DnsTransactions. This includes all
    NOERROR answers, even if they indicate the name has no addresses or they
    cannot be parsed.
  </summary>
</histogram>

<histogram name="AsyncDNS.TransactionSuccess_A" units="ms">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Same as AsyncDNS.TransactionSuccess but limited to A query type.
  </summary>
</histogram>

<histogram name="AsyncDNS.TransactionSuccess_AAAA" units="ms">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Same as AsyncDNS.TransactionSuccess but limited to AAAA query type.
  </summary>
</histogram>

<histogram name="AsyncDNS.TTL" units="ms">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    TTL of the resolved addresses, as in the response received from the server.
    For results served from local cache, the TTL is from the original response.
  </summary>
</histogram>

<histogram name="AsyncDNS.UDPAttemptFail" units="ms">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time taken by DnsUDPAttempt in failed attempts. Excludes
    timeouts.
  </summary>
</histogram>

<histogram name="AsyncDNS.UDPAttemptSuccess" units="ms">
  <obsolete>
    Removed as of 12/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time taken by DnsUDPAttempt in successful attempts. Includes
    responses arriving after timeout, if multiple attempts are allowed.
  </summary>
</histogram>

<histogram name="AsyncDNS.UnchangedConfigInterval" units="ms">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time since the last empty config result to the time a non-change
    OnConfigChange is received.
  </summary>
</histogram>

<histogram name="AsyncDNS.UnchangedHostsInterval" units="ms">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time since the last empty config result to the time a non-change
    OnHostsChange is received.
  </summary>
</histogram>

<histogram name="AsyncDNS.WatchStatus" enum="AsyncDNSWatchStatus">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    The result of DnsConfigService watch. Counts STARTED on every initialization
    and FAILED_* on any failure.
  </summary>
</histogram>

<histogram name="Aura.CreatedGpuBrowserCompositor" enum="CompositorType">
  <owner>jbauman@chromium.org</owner>
  <summary>
    Whether the browser compositor uses GPU or the software renderer.
  </summary>
</histogram>

<histogram name="AuthPolicy.ErrorTypeOfAuthenticateUser"
    enum="AuthPolicyErrorType">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Result from an attempt to authenticate a user to an Active Directory domain.
  </summary>
</histogram>

<histogram name="AuthPolicy.ErrorTypeOfAutoMachinePasswordChange"
    enum="AuthPolicyErrorType">
  <owner>ljusten@chromium.org</owner>
  <summary>Result from automatic background machine password renewal.</summary>
</histogram>

<histogram name="AuthPolicy.ErrorTypeOfAutoTgtRenewal"
    enum="AuthPolicyErrorType">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Result from automatic background ticket-granting-ticket renewal.
  </summary>
</histogram>

<histogram name="AuthPolicy.ErrorTypeOfGetUserKerberosFiles"
    enum="AuthPolicyErrorType">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Result of an attempt to get an Active Directory user's Kerberos
    ticket-granting-ticket and configuration data.
  </summary>
</histogram>

<histogram name="AuthPolicy.ErrorTypeOfGetUserStatus"
    enum="AuthPolicyErrorType">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Result of an attempt to get the status of an Active Directory user's
    Kerberos ticket, password and account.
  </summary>
</histogram>

<histogram name="AuthPolicy.ErrorTypeOfJoinADDomain" enum="AuthPolicyErrorType">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Result from an attempt to join a machine to an Active Directory domain.
  </summary>
</histogram>

<histogram name="AuthPolicy.ErrorTypeOfRefreshDevicePolicy"
    enum="AuthPolicyErrorType">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Result from an attempt to fetch device policy from an Active Directory
    domain and store it on disk.
  </summary>
</histogram>

<histogram name="AuthPolicy.ErrorTypeOfRefreshUserPolicy"
    enum="AuthPolicyErrorType">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Result from an attempt to fetch user policy from an Active Directory domain
    and store it on disk.
  </summary>
</histogram>

<histogram name="AuthPolicy.FailedTriesOfKinit">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Number of times 'kinit' failed until the next try succeeded or the method
    gave up because a maximum number of tries was exceeded. 'kinit' is run for
    Active Directory enrolled devices during user authentication and device
    policy fetch.
  </summary>
</histogram>

<histogram name="AuthPolicy.FailedTriesOfSmbClient">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Number of times 'smbclient' failed until it the next try succeeded or the
    method gave up because a maximum number of tries was exceeded. 'smbclient'
    is run for Active Directory enrolled devices during policy fetch.
  </summary>
</histogram>

<histogram name="AuthPolicy.NumGposToDownload">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Number of group policy objects attached to a specific user or machine on an
    Active Directory domain. This value is recorded when user or device policy
    is fetched from an Active Directory server.
  </summary>
</histogram>

<histogram name="AuthPolicy.TimeToAuthenticateUser" units="ms">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Time in milliseconds to authenticate a user to an Active Directory domain.
    The value is recorded no matter if the operation was successful or not.
  </summary>
</histogram>

<histogram name="AuthPolicy.TimeToGetUserKerberosFiles" units="ms">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Time in milliseconds to get the Kerberos ticket-granting-ticket and
    configuration data of an Active Directory user. The value is recorded no
    matter if the operation was successful or not.
  </summary>
</histogram>

<histogram name="AuthPolicy.TimeToGetUserStatus" units="ms">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Time in milliseconds to get status information of an Active Directory user.
    The value is recorded no matter if the operation was successful or not.
  </summary>
</histogram>

<histogram name="AuthPolicy.TimeToJoinADDomain" units="ms">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Time in milliseconds to join a machine to an Active Directory domain. Domain
    join is part of the Active Directory enrollment process. The value is
    recorded no matter if the operation was successful or not.
  </summary>
</histogram>

<histogram name="AuthPolicy.TimeToRefreshDevicePolicy" units="ms">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Time in milliseconds to fetch device policy from an Active Directory domain
    and store it on disk. The value is recorded no matter if the operation was
    successful or not.
  </summary>
</histogram>

<histogram name="AuthPolicy.TimeToRefreshUserPolicy" units="ms">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Time in milliseconds to fetch user policy from an Active Directory domain
    and store it on disk. The value is recorded no matter if the operation was
    successful or not.
  </summary>
</histogram>

<histogram name="AuthPolicy.TimeToRunKinit" units="ms">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Time in milliseconds to call 'kinit' (request Kerberos ticket-granting-
    ticket). TGTs are requested regularly for accessing services on Active
    Directory domains. The value is recorded no matter if the operation was
    successful or not.
  </summary>
</histogram>

<histogram name="AuthPolicy.TimeToRunKlist" units="ms">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Time in milliseconds to call 'klist' (print Kerberos ticket-granting-ticket
    information). The command reveals a TGT's lifetime, which is used to
    determine TGT status in GetUserStatus() called periodically by Chrome. The
    value is recorded no matter if the operation was successful or not.
  </summary>
</histogram>

<histogram name="AuthPolicy.TimeToRunKpasswd" units="ms">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Time in milliseconds to call 'kpasswd' (change Active Directory password).
    The command is used to change the machine account password. By default, it
    is run every 30 days by the AuthPolicy daemon. The value is recorded no
    matter if the operation was successful or not.
  </summary>
</histogram>

<histogram name="AuthPolicy.TimeToRunNetAdsGpo" units="ms">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Time in milliseconds to call 'net ads gpo list' (list Active Directory group
    policy objects). The value is recorded no matter if the operation was
    successful or not.
  </summary>
</histogram>

<histogram name="AuthPolicy.TimeToRunNetAdsInfo" units="ms">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Time in milliseconds to call 'net ads info' (query Active Directory
    information). The value is recorded no matter if the operation was
    successful or not.
  </summary>
</histogram>

<histogram name="AuthPolicy.TimeToRunNetAdsJoin" units="ms">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Time in milliseconds to call 'net ads join' (join machine to an Active
    Directory domain). The value is recorded no matter if the operation was
    successful or not.
  </summary>
</histogram>

<histogram name="AuthPolicy.TimeToRunNetAdsSearch" units="ms">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Time in milliseconds to call 'net ads search' (query information about an
    Active Directory account). The value is recorded no matter if the operation
    was successful or not.
  </summary>
</histogram>

<histogram name="AuthPolicy.TimeToRunNetAdsWorkgroup" units="ms">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Time in milliseconds to call 'net ads workgroup' (query Active Directory
    workgroup). The value is recorded no matter if the operation was successful
    or not.
  </summary>
</histogram>

<histogram name="AuthPolicy.TimeToRunSmbclient" units="ms">
  <owner>ljusten@chromium.org</owner>
  <summary>
    Time in milliseconds to call 'smbclient' (download policy from an Active
    Directory domain). The value is recorded no matter if the operation was
    successful or not.
  </summary>
</histogram>

<histogram name="Autocheckout.Bubble" enum="AutocheckoutBubble">
  <obsolete>
    Deprecated as of 8/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures the frequency of user interactions with the Autocheckout bubble,
    which prompts users to invoke Autocheckout on supported websites.
  </summary>
</histogram>

<histogram name="Autocheckout.BuyFlow" enum="AutocheckoutBuyFlow">
  <obsolete>
    Deprecated as of 8/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures the frequency of final states reached in Autocheckout buy flow.
  </summary>
</histogram>

<histogram name="Autocheckout.DismissalState"
    enum="AutofillDialogDismissalState">
  <obsolete>
    Deprecated as of 8/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The state of the Autocheckout dialog when it was dismissed.</summary>
</histogram>

<histogram name="Autocheckout.FlowDuration" units="ms">
  <obsolete>
    Deprecated as of 8/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures the time elapsed between when the user submitted the Autocheckout
    dialog and when the Autocheckout flow, or filling process, concluded.
  </summary>
</histogram>

<histogram name="Autocheckout.FlowDuration.Failed" units="ms">
  <obsolete>
    Deprecated as of 8/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures the time elapsed between when the user submitted the Autocheckout
    dialog and when the Autocheckout flow concluded, in cases where the flow
    failed.
  </summary>
</histogram>

<histogram name="Autocheckout.FlowDuration.Succeeded" units="ms">
  <obsolete>
    Deprecated as of 8/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures the time elapsed between when the user submitted the Autocheckout
    dialog and when the Autocheckout flow concluded, in cases where the flow
    succeeded.
  </summary>
</histogram>

<histogram name="Autocheckout.InitialUserState"
    enum="AutofillDialogInitialUserState">
  <obsolete>
    Deprecated as of 8/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The initial state of a user that's interacting with a freshly shown
    Autocheckout dialog.
  </summary>
</histogram>

<histogram name="Autocheckout.PopupInDialog" enum="AutofillDialogPopupEvent">
  <obsolete>
    Deprecated as of 8/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    User interactions with the Autofill popup shown while filling an
    Autocheckout dialog.
  </summary>
</histogram>

<histogram name="Autocheckout.Security" enum="AutofillDialogSecurity">
  <obsolete>
    Deprecated as of 8/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures the frequency of security warnings and errors in the Autocheckout
    dialog.
  </summary>
</histogram>

<histogram name="Autocheckout.UiDuration" units="ms">
  <obsolete>
    Deprecated as of 8/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures the duration for which an Autocheckout dialog was shown.
  </summary>
</histogram>

<histogram name="Autocheckout.UiDuration.Cancel" units="ms">
  <obsolete>
    Deprecated as of 8/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures the duration for which an Autocheckout dialog was shown, in cases
    where the user ended up canceling out of the dialog.
  </summary>
</histogram>

<histogram name="Autocheckout.UiDuration.Submit" units="ms">
  <obsolete>
    Deprecated as of 8/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures the duration for which an Autocheckout dialog was shown, in cases
    where the user ended up accepting the dialog.
  </summary>
</histogram>

<histogram name="Autocheckout.UiEvents" enum="AutofillDialogUiEvents">
  <obsolete>
    Deprecated as of 8/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures how users are interacting with the Autocheckout dialog UI.
  </summary>
</histogram>

<histogram name="Autocheckout.UiLatencyToShow" units="ms">
  <obsolete>
    Deprecated as of 8/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures the duration of time it takes for the Autocheckout UI to be
    actionable by the user after it is shown.
  </summary>
</histogram>

<histogram name="Autocheckout.WalletErrors" enum="WalletErrors">
  <obsolete>
    Deprecated as of 8/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures the frequency of errors in communicating with the Google Online
    Wallet server.
  </summary>
</histogram>

<histogram name="Autocheckout.WalletRequiredActions"
    enum="WalletRequiredActions">
  <obsolete>
    Deprecated as of 8/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures the frequency of required user actions returned by the Google
    Online Wallet server.
  </summary>
</histogram>

<histogram name="Autocheckout.WhitelistDownloadDuration" units="ms">
  <obsolete>
    Deprecated as of 8/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures time taken to download the Autocheckout whitelist file.
  </summary>
</histogram>

<histogram name="Autocheckout.WhitelistDownloadDuration.Failed" units="ms">
  <obsolete>
    Deprecated as of 8/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures time taken to download the Autocheckout whitelist file in case the
    download was failed.
  </summary>
</histogram>

<histogram name="Autocheckout.WhitelistDownloadDuration.Succeeded" units="ms">
  <obsolete>
    Deprecated as of 8/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures time taken to download the Autocheckout whitelist file in case the
    download was succeeded.
  </summary>
</histogram>

<histogram name="Autocomplete.Cleanup" units="entries">
  <owner>seblalancette@chromium.org</owner>
  <summary>
    Logged when the Autocomplete Retention Policy cleaned up expired entries.
    Expired entries are entries that haven't been used in the last 14 months.
  </summary>
</histogram>

<histogram name="Autocomplete.DaysSinceLastUse" units="days">
  <owner>seblalancette@chromium.org</owner>
  <summary>
    Logged when users select Autocomplete entries in the dropdown, this
    histogram captures the number of days that have passed since the selected
    autocomplete entry was last used. I.e., the distribution of time between
    uses of an &quot;active&quot; autocomplete entry.
  </summary>
</histogram>

<histogram name="Autocomplete.Events" enum="AutocompleteEvents">
  <owner>seblalancette@chromium.org</owner>
  <summary>
    Autocomplete events recorded when the user interacts with suggestions served
    from Autocomplete.
  </summary>
</histogram>

<histogram name="Autocomplete.MatchType" enum="AutocompleteMatchType"
    expires_after="M77">
  <owner>tbansal@chromium.org</owner>
  <owner>ryansturm@chromium.org</owner>
  <summary>
    Type of AutocompleteMatch. Recorded every time the autocomplete action
    predictor in omnibox triggers a preresolve, or a preconnect.
  </summary>
</histogram>

<histogram name="AutocompleteActionPredictor.AccurateCount">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Every time we calculate the confidence for a URL to determine if it should
    be prerendered, we track the URL and confidence calculated. When an Omnibox
    navigation happens, if we calculated a confidence for that URL, a count is
    incremented for the confidence that was calculated. This histogram is then a
    histogram of counts that relates the number of correctly predicted URLs to a
    confidence value. By comparing that number to the
    AutocompleteActionPredictor.NavigationCount and
    Prerender.OmniboxNavigationsUsedPrerenderCount histograms, it's possible to
    determine the effect of changing the confidence threshold on the accuracy of
    prerendering prediction.
  </summary>
</histogram>

<histogram name="AutocompleteActionPredictor.Action"
    enum="AutocompleteActionPredictorAction">
  <owner>tbansal@chromium.org</owner>
  <summary>
    The distribution of network actions recommended by the
    AutocompleteActionPredictor. A network action can be one of the enumerated
    AutocompleteActionPredictor::Action values: PRERENDER, PRECONNECT, or NONE.
    The AutocompleteActionPredictor recommends one of these based on a
    confidence score for a given URL and user-entered text pair.
  </summary>
</histogram>

<histogram name="AutocompleteActionPredictor.Confidence">
  <owner>tbansal@chromium.org</owner>
  <summary>
    The distribution of confidence ratings. The AutocompleteActionPredictor uses
    a heuristic to calculate a confidence score given a URL and user-entered
    text pair. It is in the range [0,1] and is mapped on to a recommended
    action, one of the enumerated AutocompleteActionPredictor::Action values:
    PRERENDER, PRECONNECT or NONE. This is the distribution of those scores
    multiplied by 100.
  </summary>
</histogram>

<histogram name="AutocompleteActionPredictor.DatabaseAction"
    enum="AutocompleteActionPredictorDatabaseAction">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Trackes the number of times something is added, removed, or deleted from the
    AutocompleteActionPredictor backing database.
  </summary>
</histogram>

<histogram name="AutocompleteActionPredictor.DatabaseRowCount">
  <owner>tbansal@chromium.org</owner>
  <summary>
    The distribution of row counts for the AutocompleteActionPredictorDatabase.
    Each row contains information regarding the user's Omnibox use history.
  </summary>
</histogram>

<histogram name="AutocompleteActionPredictor.MatchIsInDb">
  <owner>tbansal@chromium.org</owner>
  <summary>
    A boolean that indicates if the autocomplete suggestion under consideration
    by the AutocompleteActionPredictor was found in the database. This gives an
    upper bound on the fraction of suggestions it is possible to calculate a
    confidence for, and thus an upper bound on the fraction of suggestions that
    can be prerendered.
  </summary>
</histogram>

<histogram name="AutocompleteActionPredictor.NavigationCount">
  <owner>tbansal@chromium.org</owner>
  <summary>
    The number of navigations triggered by the Omnibox and seen by the
    AutocompleteActionPredictor. This triggers when the Omnibox is showing
    Autocomplete results to the user and they select one with the mouse or by
    pressing enter.
  </summary>
</histogram>

<histogram name="AutodetectEncoding.Attempted" enum="BooleanAttempted">
  <obsolete>
    Deprecated as of 2/2016.
  </obsolete>
  <owner>jinsukkim@chromium.org</owner>
  <summary>
    Whether the text encoding auto detection logic was attempted for a web page.
    The logic is triggered when the parser fails to find the encoding method
    from other signals such as http header, meta tag, BOM, etc.

    If the logic successfully detects a new encoding method which is different
    from the default one, the result is reported through
    AutodetectEncoding.Detected with the encoding method (see below). Otherwise
    - i.e. detection logic somehow fails to work for the page or the detected
    one is same as the default - no result is reported.
  </summary>
</histogram>

<histogram name="AutodetectEncoding.Detected" enum="EncodingMethod"
    units="pages">
  <obsolete>
    Deprecated as of 2/2016.
  </obsolete>
  <owner>jinsukkim@chromium.org</owner>
  <summary>
    The number of web pages whose encoding method is found by the auto detection
    logic. Grouped by the encoding methods defined in EncodingMethod.
  </summary>
</histogram>

<histogram name="Autofill.AddressBook.AccessSkipped" enum="BooleanSkipped">
  <obsolete>
    Deprecated as of 8/2015.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    Whether an attempt to access the Mac AddressBook was skipped because doing
    so would incorrectly cause the appearance of the permissions dialog. This
    happens when Chrome auto-update changes the binary on disk before the first
    AddressBook access attempt.
  </summary>
</histogram>

<histogram name="Autofill.AddressBookAvailable" enum="BooleanAvailable">
  <obsolete>
    Deprecated as of 8/2015.
  </obsolete>
  <owner>isherman@chromium.org</owner>
  <summary>
    Whether the Mac AddressBook was available on an attempt to read data from
    it.
  </summary>
</histogram>

<histogram name="Autofill.AddressBookAvailableOnFirstAttempt"
    enum="BooleanAvailable">
  <obsolete>
    Deprecated as of 8/2015.
  </obsolete>
  <owner>isherman@chromium.org</owner>
  <summary>
    Whether the Mac AddressBook was available on the *first* attempt to read
    data from it. This is only recorded once per Chrome profile.
  </summary>
</histogram>

<histogram name="Autofill.AddressesDeletedForDisuse" units="addresses">
  <owner>wuandy@chromium.org</owner>
  <summary>
    The number of unverified autofill addresses deleted because they have not
    been used for a long time, and are not used as billing addresses of valid
    credit cards. Note the deletion only happens once per major version upgrade.
  </summary>
</histogram>

<histogram name="Autofill.AddressesSuppressedForDisuse" units="addresses">
  <owner>rogerm@chromium.org</owner>
  <summary>
    The number of address suggestions not shown in the Autofill popup because
    they have not been used recently enough. Note that suppression only applies
    when the user has not typed any text into the field. If any text is in the
    field, all matching addresses are displayed, regardless of how recently they
    have been used.
  </summary>
</histogram>

<histogram name="Autofill.AddressSuggestionsCount">
  <owner>isherman@chromium.org</owner>
  <summary>
    The number of address suggestions shown in the Autofill popup.
  </summary>
</histogram>

<histogram name="Autofill.AutocompleteEnabled" enum="BooleanEnabled">
  <owner>michaelbai@chromium.org</owner>
  <summary>Whether autocomplete is enabled.</summary>
</histogram>

<histogram name="Autofill.AutocompleteQuery" enum="BooleanCreated">
  <owner>michaelbai@chromium.org</owner>
  <summary>Whether an autocomplete query is created for a field.</summary>
</histogram>

<histogram name="Autofill.AutocompleteSuggestions" enum="BooleanHadSuggestions">
  <owner>michaelbai@chromium.org</owner>
  <summary>Whether there is any suggestions for an autocomplete query.</summary>
</histogram>

<histogram name="Autofill.AutomaticProfileCreation" enum="BooleanCreated">
  <obsolete>
    Deprecated as of 6/2015, replaced by Autofill.ProfileActionOnFormSubmitted.
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <summary>
    Whether a new Autofill profile was created automatically. In the
    &quot;false&quot; case, an existing profile was used (and possibly updated).
  </summary>
</histogram>

<histogram name="Autofill.CanLogUKM" enum="BooleanEnabled">
  <owner>dlkumar@google.com</owner>
  <owner>chrome-autofill@google.com</owner>
  <summary>
    Tracks whether UKM logging is enabled for the page in the Autofill.
  </summary>
</histogram>

<histogram name="Autofill.CardholderNameFixFlowPrompt.Events"
    enum="AutofillCardholderNameFixFlowPromptEvent" expires_after="2019-12-01">
  <owner>dlkumar@google.com</owner>
  <owner>jsaul@google.com</owner>
  <owner>chrome-autofill@google.com</owner>
  <summary>
    Events tracking the usage of the cardholder name fix flow prompt. This
    prompt is triggered whenever cardholder name must be explicitly requested
    from the user in order to upload the card to Google Payments.
  </summary>
</histogram>

<histogram name="Autofill.CardUploadDecision" enum="AutofillCardUploadDecision">
  <obsolete>
    Deprecated as of 2/2016, replaced by Autofill.CardUploadDecisionMetric.
  </obsolete>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Whether upload was offered upon detecting a form submission with credit card
    data and a reason if it wasn't.
  </summary>
</histogram>

<histogram name="Autofill.CardUploadDecisionExpanded"
    enum="AutofillCardUploadDecisionExpanded">
  <obsolete>
    Deprecated as of 5/2017, replaced by Autofill.CardUploadDecisionMetric.
  </obsolete>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Whether upload was offered upon detecting a form submission with credit card
    data and a detailed reason if it wasn't.
  </summary>
</histogram>

<histogram name="Autofill.CardUploadDecisionMetric"
    enum="AutofillCardUploadDecisionMetric">
  <owner>csashi@google.com</owner>
  <owner>jsaul@google.com</owner>
  <owner>sebsg@chromium.org</owner>
  <summary>
    Whether upload was offered upon detecting a form submission with credit card
    data, a detailed reason if upload was offered even with some missing fields
    and detailed reasons if it wasn't.
  </summary>
</histogram>

<histogram name="AutoFill.CCInfoBarAccepted">
  <obsolete>
    Deprecated as of 3/2011, replaced by Autofill.CreditCardInfoBar.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The Autofill credit card info bar was accepted.</summary>
</histogram>

<histogram name="AutoFill.CCInfoBarDenied">
  <obsolete>
    Deprecated as of 3/2011, replaced by Autofill.CreditCardInfoBar.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The Autofill credit card info bar was denied.</summary>
</histogram>

<histogram name="Autofill.CreditCardFillingInfoBar"
    enum="AutofillCreditCardInfoBar">
  <owner>mathp@chromium.org</owner>
  <summary>
    The relative frequency with which users accept, deny, or ignore the Autofill
    credit card assisted filling infobar prompt.
  </summary>
</histogram>

<histogram base="true" name="Autofill.CreditCardInfoBar"
    enum="AutofillCreditCardInfoBar">
  <owner>isherman@chromium.org</owner>
  <summary>
    The relative frequency with which users accept, deny, or ignore the Autofill
    credit card info bar prompt.
  </summary>
</histogram>

<histogram name="Autofill.CreditCardsDeletedForDisuse">
  <owner>wuandy@chromium.org</owner>
  <summary>
    The number of credit card deleted during a major version upgrade because
    they have not been used recently enough and are expired.
  </summary>
</histogram>

<histogram name="Autofill.CreditCardsSuppressedForDisuse">
  <owner>wuandy@chromium.org</owner>
  <summary>
    The number of credit card suggestions not shown in the Autofill popup
    because they have not been used recently enough and are expired. Note that
    suppression only applies when the user has not typed any text into the
    field. If any text is in the field, all matching cards are displayed,
    regardless of how recently they have been used and their expiration status.
  </summary>
</histogram>

<histogram name="Autofill.CreditCardUploadDisallowedForNetwork"
    enum="CreditCardUploadDisallowedNetwork">
  <owner>jsaul@google.com</owner>
  <summary>
    When a credit card is not allowed to be offered upload save due to its
    network, logs what the card network was.
  </summary>
</histogram>

<histogram name="Autofill.DaysSinceLastUse.CreditCard" units="days">
  <owner>sebsg@chromium.org</owner>
  <summary>
    Logs the number of days that have passed since the credit card was last
    used.
  </summary>
</histogram>

<histogram name="Autofill.DaysSinceLastUse.Profile" units="days">
  <owner>sebsg@chromium.org</owner>
  <summary>
    Logged at the time of autofill address use, this histogram captures the
    number of days that have passed since the address was last used. I.e., the
    distribution of time between uses of an &quot;active&quot; autofill address.
  </summary>
</histogram>

<histogram name="Autofill.DaysSinceLastUse.StoredCreditCard" units="days">
  <owner>rogerm@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="AutofillCreditCardType" -->

  <summary>
    Logs the number of days that have passed since each credit card belonging to
    a given Chrome Profile was last used. This is logged for each Autofill
    credit card once per Chrome User Profile load.
  </summary>
</histogram>

<histogram name="Autofill.DaysSinceLastUse.StoredProfile" units="days">
  <owner>rogerm@chromium.org</owner>
  <summary>
    This histogram captures the number of days that have passed since each
    stored address profile belonging to a given Chrome Profile was last used.
    This is logged for each Autofill address profile once per Chrome User
    Profile load.
  </summary>
</histogram>

<histogram name="Autofill.DaysSincePreviousUseAtSubmission.Profile"
    units="days">
  <owner>csashi@google.com</owner>
  <owner>jsaul@google.com</owner>
  <owner>sebsg@chromium.org</owner>
  <summary>
    Logs the number of days between most recent use without modification and the
    penultimate use of the profile when submitting a credit card form.
  </summary>
</histogram>

<histogram name="Autofill.DeveloperEngagement"
    enum="AutofillDeveloperEngagement">
  <owner>isherman@chromium.org</owner>
  <summary>
    Measures the adoption of the HTML autocomplete type hint specification (see
    http://is.gd/whatwg_autocomplete for more details). For each fillable form
    detected, logs whether that form includes author-specified type hints.
  </summary>
</histogram>

<histogram name="Autofill.ExpirationDateFixFlowPrompt.Events"
    enum="AutofillExpirationDateFixFlowPromptEvent" expires_after="2020-02-01">
  <owner>siashah@google.com</owner>
  <owner>jsaul@google.com</owner>
  <owner>chrome-autofill@google.com</owner>
  <summary>
    Events tracking the usage of the expiration date fix flow prompt. This
    prompt is triggered whenever expiration date must be explicitly requested
    from the user in order to upload the card to Google Payments.
  </summary>
</histogram>

<histogram name="Autofill.ExpirationDateFixFlowPromptShown" enum="Boolean"
    expires_after="2020-02-01">
  <owner>siashah@google.com</owner>
  <summary>
    The number of times the expiration date fix flow prompt is shown.
  </summary>
</histogram>

<histogram name="Autofill.FieldCount" units="form fields">
  <owner>kolos@chromium.org</owner>
  <owner>rogerm@chromium.org</owner>
  <summary>Number of fields in a form that Autofill encounters.</summary>
</histogram>

<histogram name="Autofill.FieldPrediction">
<!-- Name completed by histogram_suffixes
     name="AutofillFieldPredictionSource" -->

  <owner>rogerm@chromium.org</owner>
  <summary>
    Predicted and actual form field type. This is a computed sparse histogram
    where the value is ((predicted &lt;&lt; 16)| actual). Predicted and actual
    are taken from the autofill::ServerFieldType enumeration.
  </summary>
</histogram>

<histogram name="Autofill.FieldPredictionQuality.Aggregate"
    enum="AutofillFieldPredictionQuality">
<!-- Name completed by histogram_suffixes
     name="AutofillFieldPredictionSource" -->

  <owner>rogerm@chromium.org</owner>
  <summary>
    Aggregate Autofill field-type prediction outcomes. See
    https://en.wikipedia.org/wiki/Confusion_matrix for an explanation of the
    values.
  </summary>
</histogram>

<histogram name="Autofill.FieldPredictionQuality.ByFieldType"
    enum="AutofillFieldPredictionQualityByFieldType">
<!-- Name completed by histogram_suffixes
     name="AutofillFieldPredictionSource" -->

  <owner>rogerm@chromium.org</owner>
  <summary>
    Autofill field-type prediction outcomes, broken down by field type. See
    https://en.wikipedia.org/wiki/Confusion_matrix for an explanation of the
    values.
  </summary>
</histogram>

<histogram name="Autofill.FillDuration.FromInteraction.WithAutofill">
  <owner>isherman@chromium.org</owner>
  <summary>
    Time elapsed between the user's first interaction with a form and the form's
    submission, for an autofilled form.
  </summary>
</histogram>

<histogram name="Autofill.FillDuration.FromInteraction.WithoutAutofill">
  <owner>isherman@chromium.org</owner>
  <summary>
    Time elapsed between the user's first interaction with a form and the form's
    submission, for a non-autofilled form.
  </summary>
</histogram>

<histogram name="Autofill.FillDuration.FromLoad.WithAutofill">
  <owner>isherman@chromium.org</owner>
  <summary>
    Time elapsed between form load and form submission, for an autofilled form.
  </summary>
</histogram>

<histogram name="Autofill.FillDuration.FromLoad.WithoutAutofill">
  <owner>isherman@chromium.org</owner>
  <summary>
    Time elapsed between form load and form submission, for a non-autofilled
    form.
  </summary>
</histogram>

<histogram name="Autofill.FormEvents.Address" enum="AutofillFormEvent">
  <owner>waltercacau@chromium.org</owner>
  <summary>
    Autofill form events for address forms. These are recorded when the user
    interacts with a form requesting an address.
  </summary>
  <details>
    Important caveat about submission metrics: - Submission using autofill data
    is determined by simply evaluating if there was a fill operation in this
    page. So, if the user filled with local data, completed erased or modified
    the data after and then submitted, we would only emit one &quot;Submitted
    with server suggestion filled (once)&quot;; - The submission segmentation
    works by checking what kind of data was last filled for this type of form in
    the page load. So, if a user initially filled with local data and after that
    filled with server, we will only emit &quot;Submitted with server suggestion
    filled (once)&quot;.
  </details>
</histogram>

<histogram name="Autofill.FormEvents.CreditCard" enum="AutofillFormEvent">
  <owner>waltercacau@chromium.org</owner>
  <summary>
    Autofill form events for credit card forms. These are recorded when the user
    interacts with a form requesting a credit card.
  </summary>
  <details>
    Important caveat about submission metrics: - Submission using autofill data
    is determined by simply evaluating if there was a fill operation in this
    page. So, if the user filled with local data, completed erased or modified
    the data after and then submitted, we would only emit one &quot;Submitted
    with server suggestion filled (once)&quot;; - The submission segmentation
    works by checking what kind of data was last filled for this type of form in
    the page load. So, if a user initially filled with local data and after that
    filled with server, we will only emit &quot;Submitted with server suggestion
    filled (once)&quot;.
  </details>
</histogram>

<histogram name="Autofill.FormEvents.CreditCard.BankNameDisplayed"
    enum="BankNameDisplayedFormEvent">
  <owner>jsaul@google.com</owner>
  <owner>jiahuiguo@chromium.org</owner>
  <summary>
    Autofill form events for credit card forms. These are recorded when the user
    interacts with a form requesting a credit card, a dropdown of suggestions is
    shown and at least one of the suggestions has a bank name. Form events are
    logged at most once per page load.
  </summary>
  <details>
    These metrics are used to measure the impact of the bank name experiment.
    They are used to calculate the CTR of the autofill UI with bank names
    available. Not all credit cards will have bank names even if we launch the
    experiment. With these metrics we can run the experiment on 2 groups. For
    one group, we will show bank names if available. For the other, we won't
    shown.
  </details>
</histogram>

<histogram name="Autofill.FormEvents.CreditCard.OnNonsecurePage"
    enum="AutofillFormEvent">
  <owner>estark@chromium.org</owner>
  <summary>
    Autofill form events for credit card forms on nonsecure pages. These are
    recorded when the user interacts with a form requesting a credit card.
  </summary>
  <details>
    Important caveat about submission metrics: - Submission using autofill data
    is determined by simply evaluating if there was a fill operation in this
    page. So, if the user filled with local data, completed erased or modified
    the data after and then submitted, we would only emit one &quot;Submitted
    with server suggestion filled (once)&quot;; - The submission segmentation
    works by checking what kind of data was last filled for this type of form in
    the page load. So, if a user initially filled with local data and after that
    filled with server, we will only emit &quot;Submitted with server suggestion
    filled (once)&quot;.
  </details>
</histogram>

<histogram name="Autofill.FormSubmittedState" enum="AutofillFormSubmittedState">
  <owner>sebsg@chromium.org</owner>
  <summary>The autofill state related to a submitted form.</summary>
</histogram>

<histogram name="Autofill.HadUserOptedIn_To_WalletSyncTransportServerCards"
    enum="BooleanOptedIn" expires_after="M75">
  <owner>sebsg@chromium.org</owner>
  <owner>ftirelo@chromium.org</owner>
  <summary>
    Whether the user had opted-in to seeing their server cards in Wallet Sync
    Transport mode. Recorded when showing the autofill dropdown for credit
    cards.
  </summary>
</histogram>

<histogram name="Autofill.HasModifiedProfile.CreditCardFormSubmission"
    enum="Boolean">
  <owner>csashi@google.com</owner>
  <owner>jsaul@google.com</owner>
  <owner>sebsg@chromium.org</owner>
  <summary>
    Whether user modified an address profile shortly before submitting a credit
    card form.
  </summary>
</histogram>

<histogram name="Autofill.HiddenOrPresentationalSelectFieldsFilled"
    enum="BooleanHiddenPresentationalAutofilled">
  <owner>parastoog@chromium.org</owner>
  <summary>
    Logs when a hidden or presentational field is autofilled. The hidden or
    presentational fields are only autofilled for 'select' fields to support
    synthetic fields.
  </summary>
</histogram>

<histogram name="Autofill.IcuCollatorCreationSuccess" enum="BooleanSuccess">
  <owner>mathp@chromium.org</owner>
  <summary>
    Tracks whether Autofill was able to create the ICU collator successfully.
  </summary>
</histogram>

<histogram name="Autofill.InvalidProfileData.UsedForMetrics" enum="Boolean">
  <owner>rogerm@chromium.org</owner>
  <summary>
    Tracks whether or not autofill suppressed sending votes or calculating
    quality metrics because the profile data was marked as invalid. Logged
    during field-type validation if/when a field marked as invalid is found to
    match the submitted data.
  </summary>
</histogram>

<histogram name="Autofill.InvalidProfileData.UsedForSuggestion" enum="Boolean">
  <owner>rogerm@chromium.org</owner>
  <summary>
    Tracks whether or not autofill suppressed offering an autofill suggestion
    because the profile data was marked as invalid. Logged during autofill
    suggestion generation when a suggestion is about to generated based on a
    field marked as invalid.
  </summary>
</histogram>

<histogram name="Autofill.IsEnabled.PageLoad" enum="BooleanEnabled">
  <owner>isherman@chromium.org</owner>
  <summary>
    Tracks whether Autofill is enabled on page load for a page containing forms.
  </summary>
</histogram>

<histogram name="Autofill.IsEnabled.Startup" enum="BooleanEnabled">
  <owner>isherman@chromium.org</owner>
  <summary>Tracks whether Autofill is enabled when Chrome launches.</summary>
</histogram>

<histogram name="Autofill.KeyboardAccessoryButtonsIOS_ScreenReaderOff"
    enum="AutofillKeyboardAccessoryButtonsIOS">
  <owner>mahmadi@chromium.org</owner>
  <summary>
    [iOS] Measures the frequency of button presses on the iOS Autofill keyboard
    accessory view when VoiceOver is off.
  </summary>
</histogram>

<histogram name="Autofill.KeyboardAccessoryButtonsIOS_ScreenReaderOn"
    enum="AutofillKeyboardAccessoryButtonsIOS">
  <owner>mahmadi@chromium.org</owner>
  <summary>
    [iOS] Measures the frequency of button presses on the iOS Autofill keyboard
    accessory view when VoiceOver is on.
  </summary>
</histogram>

<histogram name="Autofill.LocalCardMigrationBubbleOffer"
    enum="AutofillLocalCardMigrationBubbleOffer">
  <owner>siyua@chromium.org</owner>
  <summary>
    Record events related to bubble showing. Logged when bubble is requested or
    is actually shown to users.
  </summary>
</histogram>

<histogram name="Autofill.LocalCardMigrationBubbleUserInteraction"
    enum="AutofillLocalCardMigrationBubbleUserInteraction">
  <owner>siyua@chromium.org</owner>
  <summary>Record how bubble is closed by different user interactions.</summary>
</histogram>

<histogram name="Autofill.LocalCardMigrationDialogActiveDuration" units="ms">
  <owner>siyua@chromium.org</owner>
  <summary>
    Record duration of the local card migration dialog being visible to users.
  </summary>
</histogram>

<histogram name="Autofill.LocalCardMigrationDialogOffer"
    enum="AutofillLocalCardMigrationDialogOffer">
  <owner>siyua@chromium.org</owner>
  <summary>
    Record events related to showing the local card migration dialog.
  </summary>
</histogram>

<histogram name="Autofill.LocalCardMigrationDialogUserInteraction"
    enum="AutofillLocalCardMigrationDialogUserInteraction">
  <owner>siyua@chromium.org</owner>
  <summary>
    Record user interactions related to local card migration dialog.
  </summary>
</histogram>

<histogram name="Autofill.LocalCardMigrationDialogUserSelectionPercentage"
    units="%">
  <owner>siyua@chromium.org</owner>
  <summary>
    Record the percentage of cards selected by the user in the migration dialog.
  </summary>
</histogram>

<histogram name="Autofill.LocalCardMigrationOrigin"
    enum="LocalCardMigrationPrompt">
  <owner>jiahuiguo@chromium.org</owner>
  <owner>jsaul@google.com</owner>
  <owner>siyua@chromium.org</owner>
  <summary>
    Records when local card migration prompts are shown and/or accepted.
  </summary>
</histogram>

<histogram name="Autofill.MacAddressBook" enum="AutofillMacAddressBook">
  <obsolete>
    Deprecated as of 8/2015.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    When Chrome tries to access the user's Address Book, OSX presents a blocking
    dialog which disrupts the user experience. A new Chrome feature has been
    introduced wherein Chrome only shows this blocking dialog if the user
    explicitly asked Chrome to access the user's Address Book. If a form's field
    looks like it might support Autofill suggestions from the user's Address
    Book and there are no other suggestions, Chrome shows an Autofill entry that
    prompts the user to give Chrome access to the user's Address Book. This
    histogram tracks the frequency that this Autofill entry is presented, and
    the frequency that this Autofill entry is selected.
  </summary>
</histogram>

<histogram name="Autofill.MacAddressBook.AcceptedSuggestionIsFromAddressBook"
    enum="BooleanFromAddressBook">
  <obsolete>
    Deprecated as of 8/2015.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    This metric is emitted each time the user accepts an Autofill suggestion. It
    records whether the result is from the Address Book.
  </summary>
</histogram>

<histogram name="Autofill.MacAddressBook.AccessTime" units="ms">
  <obsolete>
    Deprecated as of 8/2015.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    The amount of time spent accessing the OSX Address Book the first time after
    Chrome was launched. If this time is larger than ~100ms, this it is likely
    that the user was shown a blocking, modal dialog.
  </summary>
</histogram>

<histogram name="Autofill.MacAddressBook.ContainedMeCard"
    enum="BooleanContainedMeCard">
  <obsolete>
    Deprecated as of 8/2015.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    After a Chrome is given access to the Mac Address Book, whether the Address
    Book contained a Me card.
  </summary>
</histogram>

<histogram name="Autofill.MacAddressBook.MeCard.HadAddress"
    enum="BooleanHadAddress">
  <obsolete>
    Deprecated as of 8/2015.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    When Chrome is given access to the Me Card of the Address Book, whether the
    card has an address that contained a street number and either a city or zip
    code.
  </summary>
</histogram>

<histogram name="Autofill.MacAddressBook.MeCard.HadEmail"
    enum="BooleanHadEmail">
  <obsolete>
    Deprecated as of 8/2015.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    When Chrome is given access to the Me Card of the Address Book, whether the
    card has an email.
  </summary>
</histogram>

<histogram name="Autofill.MacAddressBook.MeCard.HadName" enum="BooleanHadName">
  <obsolete>
    Deprecated as of 8/2015.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    When Chrome is given access to the Me Card of the Address Book, whether the
    card has a name.
  </summary>
</histogram>

<histogram name="Autofill.MacAddressBook.MeCard.HadPhoneNumber"
    enum="BooleanHadPhoneNumber">
  <obsolete>
    Deprecated as of 8/2015.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    When Chrome is given access to the Me Card of the Address Book, whether the
    card has a phone number.
  </summary>
</histogram>

<histogram name="Autofill.MacAddressBook.NumShowsBeforeSelected">
  <obsolete>
    Deprecated as of 8/2015.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    The number of times that the access Address Book prompt has been shown when
    the user selects the prompt.
  </summary>
</histogram>

<histogram name="Autofill.ManageCardsPrompt" enum="AutofillManageCardsPrompt"
    expires_after="2019-09-01">
  <owner>manasverma@google.com</owner>
  <owner>jsaul@google.com</owner>
  <owner>sebsg@chromium.org</owner>
  <summary>
    The frequency of user interactions with the Manage Cards prompt.
  </summary>
</histogram>

<histogram name="Autofill.MaskedCardComparisonNetworksMatch"
    enum="BooleanEqual" expires_after="2019-08-16">
  <owner>caitlinfischer@google.com</owner>
  <owner>ftirelo@chromium.org</owner>
  <owner>tmartino@chromium.org</owner>
  <summary>
    This metric is recorded when two credit cards are compared using
    CreditCard::HasSameNumberAs and one of the cards in the comparison is
    masked. The metric measures whether there is a match between a masked card's
    network and the network of the card with which the masked card is being
    compared.
  </summary>
</histogram>

<histogram name="Autofill.NumberOfEditedAutofilledFieldsAtSubmission"
    units="fields">
  <owner>mathp@chromium.org</owner>
  <summary>
    The number of autofilled fields that were subsequently edited prior to the
    form being submitted.
  </summary>
</histogram>

<histogram name="Autofill.NumberOfProfilesConsideredForDedupe" units="profiles">
  <owner>mathp@chromium.org</owner>
  <summary>
    The number of Autofill profiles that have been considered for deduplication.
  </summary>
</histogram>

<histogram name="Autofill.NumberOfProfilesRemovedDuringDedupe" units="profiles">
  <owner>mathp@chromium.org</owner>
  <summary>
    The number of Autofill profiles that have been removed during deduplication.
  </summary>
</histogram>

<histogram name="Autofill.NumElementsMatchesNumFields" enum="Boolean">
  <owner>rogerm@chromium.org</owner>
  <summary>
    Records whether the number of fillable form elements matches the number of
    fields in the form's description. Instances where this is recorded as False,
    denote cases where autofill failed to preview/fill an autofill suggestion.
    This can happen when a fields is filtered out of a formless form.
  </summary>
</histogram>

<histogram name="Autofill.PasswordFormQueryVolume"
    enum="PasswordFormQueryVolume">
  <obsolete>
    Deprecated 10/2015.
  </obsolete>
  <owner>dvadym@chromium.org</owner>
  <owner>gcasto@chromium.org</owner>
  <summary>
    Tracks the increased load on the Autofill server if the restriction on
    querying for password forms with fewer than 3 fields were omitted.
  </summary>
</histogram>

<histogram name="Autofill.PayloadCompressionRatio" units="%">
  <obsolete>
    Deprecated as of 1/2016, autofill payload compression was removed.
  </obsolete>
  <owner>mathp@chromium.org</owner>
  <summary>
    Compression ratio of the query and upload payload that are sent to the
    Autofill server. The payload is compressed using gzip.
  </summary>
</histogram>

<histogram name="Autofill.PaymentsCustomerDataBillingIdIsValid" enum="Boolean"
    expires_after="2019-08-07">
  <obsolete>
    Deprecated as of 9/2018, replaced by
    Autofill.PaymentsCustomerDataBillingIdStatus.
  </obsolete>
  <owner>mathp@chromium.org</owner>
  <summary>
    When PaymentsCustomerData is used to send a request to Google Payments, we
    log the validity state of the billing customer ID.
  </summary>
</histogram>

<histogram name="Autofill.PaymentsCustomerDataBillingIdStatus"
    enum="BillingIdStatus" expires_after="2019-09-07">
  <owner>mathp@chromium.org</owner>
  <summary>
    When PaymentsCustomerData is used to send a request to Google Payments, we
    log the validity state of the billing customer ID.
  </summary>
</histogram>

<histogram name="Autofill.ProfileActionOnFormSubmitted"
    enum="AutofillProfileAction">
  <owner>sebsg@chromium.org</owner>
  <summary>
    The profile action that took place when a form was submitted.
  </summary>
</histogram>

<histogram name="AutoFill.ProfileCount">
  <obsolete>
    Deprecated as of 3/2011, replaced by Autofill.StoredProfileCount.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The number of Autofill address profiles a user has.</summary>
</histogram>

<histogram name="AutoFill.Quality" enum="AutofillQuality">
  <obsolete>
    Deprecated as of 3/2011, replaced by Autofill.Quality.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The quality of the AutoFill implementation.</summary>
</histogram>

<histogram name="Autofill.Quality" enum="AutofillQuality">
  <obsolete>
    Deprecated as of 2/2014 (M35), replaced by Autofill.UserHappiness.
  </obsolete>
  <owner>isherman@chromium.org</owner>
  <summary>The quality of the Autofill implementation.</summary>
</histogram>

<histogram name="Autofill.Quality.HeuristicType" enum="AutofillTypeQuality">
  <obsolete>
    Deprecated as of 6/2017, replaced by
    Autofill.FieldPredictionQuality.Aggregate.Heuristic.
  </obsolete>
  <owner>isherman@chromium.org</owner>
  <summary>The quality of Autofill's heuristic field type detection.</summary>
</histogram>

<histogram name="Autofill.Quality.HeuristicType.ByFieldType"
    enum="AutofillTypeQualityByFieldType">
  <obsolete>
    Deprecated as of 6/2017, replaced by
    Autofill.FieldPredictionQuality.ByFieldType.Heuristic.
  </obsolete>
  <owner>isherman@chromium.org</owner>
  <summary>
    The quality of Autofill's heuristic field type detection, broken down by the
    specific field type. Fields with multiple possible types (based on the
    stored Autofill data) are logged as having ambiguous type.
  </summary>
</histogram>

<histogram name="Autofill.Quality.PredictedType" enum="AutofillTypeQuality">
  <obsolete>
    Deprecated as of 6/2017, replaced by
    Autofill.FieldPredictionQuality.Aggregate.Overall.
  </obsolete>
  <owner>isherman@chromium.org</owner>
  <summary>The overall quality of the Autofill field type predictions.</summary>
</histogram>

<histogram name="Autofill.Quality.PredictedType.ByFieldType"
    enum="AutofillTypeQualityByFieldType">
  <obsolete>
    Deprecated as of 6/2017, replaced by
    Autofill.FieldPredictionQuality.ByFieldType.Overall.
  </obsolete>
  <owner>isherman@chromium.org</owner>
  <summary>
    The overall quality of the Autofill field type predictions, broken down by
    the specific field type. Fields with multiple possible types (based on the
    stored Autofill data) are logged as having ambiguous type.
  </summary>
</histogram>

<histogram name="Autofill.Quality.ServerType" enum="AutofillTypeQuality">
  <obsolete>
    Deprecated as of 6/2017, replaced by
    Autofill.FieldPredictionQuality.Aggregate.Server.
  </obsolete>
  <owner>isherman@chromium.org</owner>
  <summary>The quality of the Autofill server's field type detection.</summary>
</histogram>

<histogram name="Autofill.Quality.ServerType.ByFieldType"
    enum="AutofillTypeQualityByFieldType">
  <obsolete>
    Deprecated as of 6/2017, replaced by
    Autofill.FieldPredictionQuality.ByFieldType.Server.
  </obsolete>
  <owner>isherman@chromium.org</owner>
  <summary>
    The quality of the Autofill server's field type detection, broken down by
    the specific field type. Fields with multiple possible types (based on the
    stored Autofill data) are logged as having ambiguous type.
  </summary>
</histogram>

<histogram name="Autofill.QueriedCreditCardFormIsSecure" enum="BooleanSecure">
  <owner>mathp@chromium.org</owner>
  <summary>
    For credit card forms that are queried for Autofill, a ratio of how many are
    within secure contexts (which includes mixed passive content).
  </summary>
</histogram>

<histogram name="Autofill.Query.BackoffDelay" units="ms">
  <owner>rogerm@chromium.org</owner>
  <summary>
    The delay of a network request for a query due to exponential backoff.
  </summary>
</histogram>

<histogram name="Autofill.Query.FailingPayloadSize" units="bytes">
  <owner>rogerm@chromium.org</owner>
  <summary>
    The number of bytes that were sent in a query that subsequently failed. This
    is to help determine the appropriate threshold at which autofill queries
    should switch from GET to POST, and if there are certain sizes of queries
    which are prone to failure.
  </summary>
</histogram>

<histogram name="Autofill.Query.HttpResponseCode" enum="HttpResponseCode">
  <obsolete>
    Deprecated as of 8/2018, replaced by Autofill.Query.HttpResponseOrErrorCode.
  </obsolete>
  <owner>rogerm@chromium.org</owner>
  <summary>The HTTP response code returned on a query.</summary>
</histogram>

<histogram name="Autofill.Query.HttpResponseOrErrorCode"
    enum="CombinedHttpResponseAndNetErrorCode">
  <owner>rogerm@chromium.org</owner>
  <summary>
    The http response code or net error code returned on a query.
  </summary>
</histogram>

<histogram name="Autofill.Query.Method" enum="AutofillQueryMethod">
  <owner>rogerm@chromium.org</owner>
  <summary>The HTTP method used to query the autofill server.</summary>
</histogram>

<histogram name="Autofill.Query.RequestDuration" units="ms">
  <owner>rogerm@chromium.org</owner>
  <summary>The duration of a network request for a query.</summary>
</histogram>

<histogram name="Autofill.Query.WasInCache" enum="BooleanCacheHit">
  <owner>rogerm@chromium.org</owner>
  <summary>
    Was the autofill query response retrieved from the HTTP cache.
  </summary>
</histogram>

<histogram name="Autofill.RationalizationQuality.PhoneNumber"
    enum="AutofillRationalizationQualityMetric">
  <owner>wuandy@chromium.org</owner>
  <summary>
    The quality of fields rationalization, putting rationalization result into
    good/ok/bad categories.
  </summary>
</histogram>

<histogram name="Autofill.ResetFullServerCards.NumberOfCardsReset"
    units="Cards">
  <owner>sebsg@chromium.org</owner>
  <summary>The number of full server cards that were reset.</summary>
</histogram>

<histogram name="Autofill.ResetFullServerCards.NumberOfCardsReset.DryRun"
    units="Cards">
  <obsolete>
    Deprecated as of 10/2018 (M72).
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <summary>The number of full server cards that would have been reset.</summary>
</histogram>

<histogram
    name="Autofill.ResetFullServerCards.SyncServiceNotActiveOnInitialized"
    enum="Boolean">
  <owner>sebsg@chromium.org</owner>
  <summary>
    Records whether a sync service in a not active state is passed to Autofill
    OnSyncServiceInitialized.
  </summary>
</histogram>

<histogram name="Autofill.ResetFullServerCards.SyncServiceNullOnInitialized"
    enum="Boolean">
  <owner>sebsg@chromium.org</owner>
  <summary>
    Records whether a null sync service is passed to Autofill
    OnSyncServiceInitialized.
  </summary>
</histogram>

<histogram name="Autofill.ResetFullServerCards.SyncServiceStatusOnStateChanged"
    enum="SyncUploadState">
  <owner>sebsg@chromium.org</owner>
  <summary>
    Records the sync service state when OnStateChanged is called.
  </summary>
</histogram>

<histogram name="Autofill.SaveCardCardholderNamePrefilled" enum="Boolean">
  <owner>jsaul@google.com</owner>
  <summary>
    If the cardholder name fix flow is shown when credit card upload is offered,
    records if the cardholder name textfield was prefilled with the name from
    the user's Google Account.
  </summary>
</histogram>

<histogram name="Autofill.SaveCardCardholderNameWasEdited" enum="Boolean">
  <owner>jsaul@google.com</owner>
  <summary>
    If the cardholder name fix flow is shown during credit card upload and the
    user accepts upload, logs whether the final cardholder name was changed from
    its prefilled value or not.
  </summary>
</histogram>

<histogram name="Autofill.SaveCardReachedPersonalDataManager" enum="Boolean"
    expires_after="2019-06-30">
  <owner>jsaul@google.com</owner>
  <owner>sebsg@chromium.org</owner>
  <owner>mahmadi@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="AutofillCreditCardType" -->

  <summary>
    Records if the PersonalDataManager was notified to attempt saving of a card.
  </summary>
</histogram>

<histogram name="Autofill.SaveCardRequestExpirationDateReason"
    enum="AutofillSaveCardRequestExpirationDateReason">
  <owner>hozhng@google.com</owner>
  <owner>jsaul@google.com</owner>
  <summary>
    Records the reason expiration date was explicitly requested from the user
    during credit card save.
  </summary>
</histogram>

<histogram name="Autofill.SaveCardWithFirstAndLastNameComplete" enum="Boolean">
  <owner>sebsg@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="AutofillCreditCardType" -->

  <summary>
    Records if a card was saved from a form that had split name fields.
  </summary>
</histogram>

<histogram name="Autofill.SaveCardWithFirstAndLastNameOffered" enum="Boolean">
  <owner>sebsg@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="AutofillCreditCardType" -->

  <summary>
    Records if a card was offered to be saved from a form that had split name
    fields.
  </summary>
</histogram>

<histogram name="Autofill.SaveCreditCardPrompt"
    enum="AutofillSaveCreditCardPrompt">
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The relative frequency with which users accept or deny the Autofill save
    credit card prompt.
  </summary>
</histogram>

<histogram name="Autofill.ScanCreditCard.Completed" enum="BooleanCompleted">
  <owner>rouslan@chromium.org</owner>
  <summary>Whether a credit card scan was completed or cancelled.</summary>
</histogram>

<histogram name="Autofill.ScanCreditCard.Duration" units="ms">
  <owner>rouslan@chromium.org</owner>
  <summary>How long a credit card took to scan.</summary>
</histogram>

<histogram name="Autofill.ScanCreditCardPrompt"
    enum="AutofillScanCreditCardPrompt">
  <owner>estade@chromium.org</owner>
  <summary>Usage of the &quot;Scan card&quot; control item.</summary>
</histogram>

<histogram name="Autofill.ServerCardLinkClicked" enum="AutofillSyncState"
    expires_after="M75">
  <owner>sebsg@chromium.org</owner>
  <owner>ftirelo@chromium.org</owner>
  <summary>
    Logged when the user clicks on the server credit card link in the settings
    page.
  </summary>
</histogram>

<histogram name="Autofill.ServerExperimentId" enum="AutofillExperimentId">
  <obsolete>
    Deprecated as of 6/2011, replaced by Autofill.ServerExperimentId.Query.
  </obsolete>
  <owner>isherman@chromium.org</owner>
  <summary>
    The experiment ID received in response to an Autofill server query.
  </summary>
</histogram>

<histogram name="Autofill.ServerExperimentId.Query" enum="AutofillExperimentId">
  <obsolete>
    Deprecated as of 2/2014 (M35).
  </obsolete>
  <owner>isherman@chromium.org</owner>
  <summary>
    The experiment ID received in response to an Autofill server query.
  </summary>
</histogram>

<histogram name="Autofill.ServerExperimentId.Upload"
    enum="AutofillExperimentId">
  <obsolete>
    Deprecated as of 2/2014 (M35).
  </obsolete>
  <owner>isherman@chromium.org</owner>
  <summary>
    The experiment ID received at the time of an Autofill upload.
  </summary>
</histogram>

<histogram name="AutoFill.ServerQueryResponse" enum="AutofillQueryResult">
  <obsolete>
    Deprecated as of 3/2011, replaced by Autofill.ServerQueryResponse.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The usefulness of AutoFill server information.</summary>
</histogram>

<histogram name="Autofill.ServerQueryResponse" enum="AutofillQueryResult">
  <owner>isherman@chromium.org</owner>
  <summary>The usefulness of Autofill server information.</summary>
</histogram>

<histogram name="Autofill.ServerResponseHasDataForForm"
    enum="BooleanHadPredictions">
  <owner>mathp@chromium.org</owner>
  <summary>
    Tracks whether Autofill server had at least some prediction data for a given
    form at query response time.
  </summary>
</histogram>

<histogram name="Autofill.StoredCreditCardCount" units="cards">
  <owner>rogerm@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="AutofillCreditCardType" -->

  <summary>
    The number of credit cards a user has stored, measured at Chrome profile
    launch time.
  </summary>
</histogram>

<histogram name="Autofill.StoredCreditCardDisusedCount" units="cards">
  <owner>rogerm@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="AutofillCreditCardType" -->

  <summary>
    The number of disused credit cards a user has stored, measured at Chrome
    profile launch time. This is only reported for users who have at least one
    stored credit card.
  </summary>
</histogram>

<histogram name="Autofill.StoredLocalCreditCardCount" units="cards">
  <owner>mathp@chromium.org</owner>
  <summary>
    The number of local credit cards a user has stored, measured at Chrome
    profile launch time.
  </summary>
</histogram>

<histogram name="Autofill.StoredProfileCount">
  <owner>isherman@chromium.org</owner>
  <summary>
    The number of Autofill addresses a user has stored, measured at launch time.
  </summary>
</histogram>

<histogram name="Autofill.StoredProfileCountAtAutofillableFormSubmission">
  <owner>mathp@chromium.org</owner>
  <summary>
    The number of Autofill addresses a user has stored, measured when an
    autofillable form is submitted.
  </summary>
</histogram>

<histogram name="Autofill.StoredProfileDisusedCount">
  <owner>rogerm@chromium.org</owner>
  <summary>
    The number of stored Autofill address profiles which have not been used in a
    sufficiently long time for autofill to consider them disused. Measured once
    per Chrome user profile launch.
  </summary>
</histogram>

<histogram name="Autofill.StoredServerCreditCardCount" units="cards">
  <owner>mathp@chromium.org</owner>
  <summary>
    The number of server credit cards a user has stored, measured at Chrome
    profile launch time.
  </summary>
</histogram>

<histogram
    name="Autofill.StrikeDatabase.CreditCardSaveNotOfferedDueToMaxStrikes"
    enum="AutofillSaveType" expires_after="2020-03-18">
  <owner>jsaul@google.com</owner>
  <owner>annelim@google.com</owner>
  <summary>
    Records when credit card save is not offered (either at all on mobile or by
    simply not showing the bubble on desktop) due to the candidate card having
    too many strikes.
  </summary>
</histogram>

<histogram
    name="Autofill.StrikeDatabase.LocalCardMigrationNotOfferedDueToMaxStrikes"
    enum="AutofillSaveType" expires_after="2020-03-18">
  <owner>jsaul@google.com</owner>
  <owner>annelim@google.com</owner>
  <owner>jiahuiguo@chromium.org</owner>
  <summary>
    Records when local card migration is not offered due to the candidate's
    LocalCardMigration strike count reaching maximum strikes.
  </summary>
</histogram>

<histogram name="Autofill.StrikeDatabase.NthStrikeAdded.CreditCardSave"
    units="strikes" expires_after="2020-03-18">
  <owner>jsaul@google.com</owner>
  <owner>annelim@google.com</owner>
  <summary>
    Records the number of &quot;strikes&quot; a given card has, when a user
    dismisses a prompt to save a new credit card. The strike count is
    incremented each time the user dismisses the prompt.
  </summary>
</histogram>

<histogram name="Autofill.StrikeDatabase.NthStrikeAdded.LocalCardMigration"
    units="strikes" expires_after="2020-03-18">
  <owner>jsaul@google.com</owner>
  <owner>annelim@google.com</owner>
  <summary>
    Records the number of &quot;strikes&quot; a user has, when a prompt for
    local card migration is dismissed. The strike count is incremented each time
    the user dismisses the prompt.
  </summary>
</histogram>

<histogram name="Autofill.StrikeDatabase.StrikeDatabaseInitFailed"
    units="attempts" expires_after="2020-03-18">
  <owner>jsaul@google.com</owner>
  <owner>annelim@google.com</owner>
  <summary>
    When a StrikeDatabase fails to initialize, records the number of consecutive
    failed initialization attempts.
  </summary>
</histogram>

<histogram
    name="Autofill.StrikeDatabase.StrikesPresentWhenLocalCardMigrationAccepted"
    units="strikes" expires_after="2020-03-18">
  <owner>jsaul@google.com</owner>
  <owner>annelim@google.com</owner>
  <summary>
    Records the number of &quot;strikes&quot; a user has when local card
    migration is accepted.
  </summary>
</histogram>

<histogram name="Autofill.StrikeDatabase.StrikesPresentWhenLocalCardSaved"
    units="strikes" expires_after="2020-03-18">
  <owner>jsaul@google.com</owner>
  <owner>annelim@google.com</owner>
  <summary>
    Records the number of &quot;strikes&quot; a given card had when a user opted
    to save the card to Chrome.
  </summary>
</histogram>

<histogram name="Autofill.StrikeDatabase.StrikesPresentWhenServerCardSaved"
    units="strikes" expires_after="2020-03-18">
  <owner>jsaul@google.com</owner>
  <owner>annelim@google.com</owner>
  <summary>
    Records the number of &quot;strikes&quot; a given card had when a user
    successfully uploaded the card to Google Payments.
  </summary>
</histogram>

<histogram name="Autofill.StrikeDatabase.StrikesPresentWhenStrikeExpired"
    units="strikes" expires_after="2020-03-18">
  <owner>jsaul@google.com</owner>
  <owner>annelim@google.com</owner>
  <summary>
    Records the number of &quot;strikes&quot; present in a StrikeDatabase entry
    when a strike expires.
  </summary>
</histogram>

<histogram name="Autofill.SubmittedCardState" enum="AutofillSubmittedCardState">
  <owner>dlkumar@google.com</owner>
  <summary>
    Metric to measure credit card state when form is submitted, specifically if
    it had a valid card number and/or expiration date.
  </summary>
</histogram>

<histogram name="Autofill.SubmittedServerCardExpirationStatus"
    enum="AutofillSubmittedServerCardExpirationStatus">
  <owner>jsaul@google.com</owner>
  <summary>
    Metric to measure if a submitted card's expiration date matches the same
    server card's expiration date (unmasked or not). Cards are considered to be
    the same if they have the same card number (if unmasked) or if they have the
    same network and last four digits (if masked).
  </summary>
</histogram>

<histogram name="Autofill.SuggestionAcceptedIndex" units="position">
  <owner>mathp@chromium.org</owner>
  <summary>The index of the accepted Autofill suggestion in the popup.</summary>
</histogram>

<histogram name="Autofill.SuggestionAcceptedIndex.Autocomplete"
    units="position">
  <owner>mathp@chromium.org</owner>
  <summary>
    The index of the accepted Autocomplete suggestion in the popup.
  </summary>
</histogram>

<histogram name="Autofill.Timing.DetermineHeuristicTypes" units="ms">
  <owner>kenjitoyama@chromium.org</owner>
  <summary>
    Number of milliseconds passed between the start and end of
    FormStructure::DetermineHeuristicTypes().
  </summary>
</histogram>

<histogram name="Autofill.Timing.ParseForm" units="ms">
  <owner>kenjitoyama@chromium.org</owner>
  <summary>
    Number of milliseconds passed between the start and end of parsing a single
    form.
  </summary>
</histogram>

<histogram name="Autofill.Unknown.BackoffDelay" units="ms">
  <obsolete>
    Deprecated as of 01/2019, as it never occurs.
  </obsolete>
  <owner>rogerm@chromium.org</owner>
  <summary>
    The delay of a network request for which the download manager seems to have
    lost the request type due to exponential backoff. This should never be
    logged.
  </summary>
</histogram>

<histogram name="Autofill.Unknown.FailingPayloadSize" units="bytes">
  <obsolete>
    Deprecated as of 01/2019, as it never occurs.
  </obsolete>
  <owner>rogerm@chromium.org</owner>
  <summary>
    The number of bytes that were sent in a request for which the download
    manager seems to have lost the request type. This should never be logged.
  </summary>
</histogram>

<histogram name="Autofill.Unknown.HttpResponseCode" enum="HttpResponseCode">
  <obsolete>
    Deprecated as of 8/2018, replaced by
    Autofill.Unknown.HttpResponseOrErrorCode.
  </obsolete>
  <owner>rogerm@chromium.org</owner>
  <summary>
    The HTTP response code returned on a request for which the download manager
    seems to have lost the request type. This should never be logged.
  </summary>
</histogram>

<histogram name="Autofill.Unknown.HttpResponseOrErrorCode"
    enum="CombinedHttpResponseAndNetErrorCode">
  <obsolete>
    Deprecated as of 01/2019, as it never occurs.
  </obsolete>
  <owner>rogerm@chromium.org</owner>
  <summary>
    The http response code or net error code returned on a request for which the
    download manager seems to have lost the request type. This should never be
    logged.
  </summary>
</histogram>

<histogram name="Autofill.Unknown.RequestDuration" units="ms">
  <obsolete>
    Deprecated as of 01/2019, as it never occurs.
  </obsolete>
  <owner>rogerm@chromium.org</owner>
  <summary>
    The duration of a network request for which the download manager seems to
    have lost the request type. This should never be logged.
  </summary>
</histogram>

<histogram name="Autofill.UnmaskPrompt.Duration" units="ms">
  <owner>waltercacau@chromium.org</owner>
  <summary>
    Duration of the interaction with the UnmaskPrompt since it was shown until
    it was closed. This prompt is triggered when a user selects a masked card in
    an autofill dropdown.
  </summary>
</histogram>

<histogram name="Autofill.UnmaskPrompt.Events" enum="AutofillUnmaskPromptEvent">
  <owner>waltercacau@chromium.org</owner>
  <summary>
    Events tracking the usage of the unmasking prompt. This prompt is triggered
    when a user selects a masked card in a autofill dropdown.
  </summary>
</histogram>

<histogram name="Autofill.UnmaskPrompt.GetRealPanDuration" units="ms">
  <owner>waltercacau@chromium.org</owner>
  <summary>
    Duration of the GetRealPan API call. This API call is triggered by the
    unmasking prompt when the user types information to verify their ownership
    of the card being fetched.
  </summary>
</histogram>

<histogram name="Autofill.UnmaskPrompt.GetRealPanResult"
    enum="AutofillGetRealPanResult">
  <owner>waltercacau@chromium.org</owner>
  <summary>
    Tracks the result of the GetRealPan API call. This API call is triggered by
    the unmasking prompt when the user types information to verify their
    ownership of the card being fetched.
  </summary>
</histogram>

<histogram name="Autofill.UnmaskPrompt.TimeBeforeAbandonUnmasking" units="ms">
  <owner>waltercacau@chromium.org</owner>
  <summary>
    Time the user waited before abandoning an unmasking operation. In such a
    scenario, the user is cancelling a pending unmasking operation (possibly
    because it is taking too long). The time measured here corresponds to the
    time between the user clicking the &quot;Verify&quot; button and then
    clicking &quot;Cancel&quot;.
  </summary>
</histogram>

<histogram name="Autofill.UnmaskPrompt.UnmaskingDuration" units="ms">
  <owner>waltercacau@chromium.org</owner>
  <summary>
    Duration between the user clicking the Verify button within the unmasking
    prompt until we get a response back from the server. This prompt is
    triggered when a user selects a masked card in an autofill dropdown.
  </summary>
</histogram>

<histogram name="Autofill.UnownedFieldsWereFiltered" enum="Boolean">
  <owner>rogerm@chromium.org</owner>
  <summary>
    Records incidents where an implicit (formless) form has elements filtered
    out of it. This happens to unowned fields (directly embedded in the page
    with no enclosing &lt;form&gt; tag) without autocomplete attributes if
    formless forms are restricted to &quot;checkout&quot; pages. Logged when
    parsing forms/fields.
  </summary>
</histogram>

<histogram name="Autofill.Upload.BackoffDelay" units="ms" expires_after="never">
<!-- expires-never: https://crbug.com/915888 -->

  <owner>rogerm@chromium.org</owner>
  <summary>
    The delay of a network request for an upload due to exponential backoff.
  </summary>
</histogram>

<histogram name="Autofill.Upload.FailingPayloadSize" units="bytes">
  <owner>rogerm@chromium.org</owner>
  <summary>
    The number of bytes that were sent in an upload that subsequently failed.
    This is to help determine if there are certain upload sizes which are prone
    to failure.
  </summary>
</histogram>

<histogram name="Autofill.Upload.HttpResponseCode" enum="HttpResponseCode">
  <obsolete>
    Deprecated as of 8/2018, replaced by
    Autofill.Upload.HttpResponseOrErrorCode.
  </obsolete>
  <owner>rogerm@chromium.org</owner>
  <summary>The HTTP response code returned on an upload.</summary>
</histogram>

<histogram name="Autofill.Upload.HttpResponseOrErrorCode"
    enum="CombinedHttpResponseAndNetErrorCode" expires_after="never">
<!-- expires-never: https://crbug.com/915888 -->

  <owner>rogerm@chromium.org</owner>
  <summary>
    The http response code or net error code returned on an upload.
  </summary>
</histogram>

<histogram name="Autofill.Upload.MetadataConfigIsValid" enum="BooleanValid">
  <owner>rogerm@chromium.org</owner>
  <summary>
    Tracks whether or not the configuration fo metadata upload encoding is valid
    or invalid. Note that if the configuration is invalid, the client will fall
    back to a default configuration that sends 4 bits per byte (i.e., either the
    even or odd bits encoding).
  </summary>
</histogram>

<histogram name="Autofill.Upload.MetadataEncodingType"
    enum="AutofillMetadataEncodingType">
  <owner>rogerm@chromium.org</owner>
  <summary>
    The metadata encoding scheme used by the client to encode rich uploads.
  </summary>
</histogram>

<histogram name="Autofill.Upload.RequestDuration" units="ms"
    expires_after="never">
<!-- expires-never: https://crbug.com/915888 -->

  <owner>rogerm@chromium.org</owner>
  <summary>The duration of a network request for an upload.</summary>
</histogram>

<histogram name="Autofill.UploadAcceptedCardOrigin"
    enum="UploadAcceptedCardOrigin">
  <owner>jsaul@google.com</owner>
  <summary>
    Measures if a card for which upload was accepted is already stored as a
    local card on the device or if it has not yet been seen.
  </summary>
</histogram>

<histogram name="Autofill.UploadEvent" enum="BooleanSent">
<!-- Name completed by histogram_suffixes name="AutofillUploadEvents" -->

  <owner>rogerm@chromium.org</owner>
  <summary>
    Whether or not an upload was sent after having been triggered by a form
    submission or proxy-form-submission.
  </summary>
</histogram>

<histogram name="Autofill.UploadOfferedCardOrigin"
    enum="UploadOfferedCardOrigin">
  <owner>jsaul@google.com</owner>
  <summary>
    Measures if a card for which upload was offered is already stored as a local
    on the device or if it has not yet been seen.
  </summary>
</histogram>

<histogram name="Autofill.UserHappiness" enum="AutofillUserHappiness">
  <owner>isherman@chromium.org</owner>
  <summary>
    Measures the frequency of various events in the Autofill user interaction
    flow. By comparing frequencies, we can compute several interesting
    &quot;user happiness&quot; metrics.
  </summary>
</histogram>

<histogram name="Autofill.WalletAddressConversionType"
    enum="AutofillWalletAddressConversionType">
  <owner>sebsg@chromium.org</owner>
  <summary>
    Tracks how the different wallet addresses are converted to local autofill
    profiles.
  </summary>
</histogram>

<histogram base="true" name="Autofill.WalletAddresses" units="addresses"
    expires_after="2019-06-01">
  <obsolete>
    Deprecated as of 12/2018, replaced by Autofill.WalletAddresses2.
  </obsolete>
<!-- Name completed by histogram_suffixes name="AutofillWalletCardsDiff" -->

  <owner>sebsg@chromium.org</owner>
  <owner>jkrcal@chromium.org</owner>
  <summary>
    The number of Wallet addresses that were added to Chrome or removed from
    Chrome via Sync. Recorded when receiving an AUTOFILL_WALLET_DATA update from
    the Sync server. Recorded only if both the user had previously non-empty
    data set locally and the new data set is also non-empty (to rule out initial
    sync and wiping out data). This metric has a flaw that the Directory
    implementation (unlike the USS implementation) records the metric also on
    every startup and the resulting histograms are hard to compare.
  </summary>
</histogram>

<histogram base="true" name="Autofill.WalletAddresses2" units="addresses"
    expires_after="2019-06-01">
<!-- Name completed by histogram_suffixes name="AutofillWalletCardsDiff" -->

  <owner>sebsg@chromium.org</owner>
  <owner>jkrcal@chromium.org</owner>
  <summary>
    The number of Wallet addresses that were added to Chrome or removed from
    Chrome via Sync. Recorded when receiving an AUTOFILL_WALLET_DATA update from
    the Sync server. Recorded only if both the user had previously non-empty
    data set locally and the new data set is also non-empty (to rule out initial
    sync and wiping out data).
  </summary>
</histogram>

<histogram name="Autofill.WalletAddressesAdded" units="addresses">
  <obsolete>
    Deprecated as of 11/2018, replaced by Autofill.WalletAddresses.Added.
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <owner>treib@chromium.org</owner>
  <summary>
    The number of Wallet addresses that were added to Chrome via Sync. Recorded
    when receiving an AUTOFILL_WALLET_DATA update from the Sync server.
  </summary>
  <details>
    Can probably be removed around Q1 2019, after project Dice has rolled out.
  </details>
</histogram>

<histogram name="Autofill.WalletAddressesAddedOrRemoved" units="addresses">
  <obsolete>
    Deprecated as of 11/2018, replaced by
    Autofill.WalletAddresses.AddedOrRemoved.
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <owner>treib@chromium.org</owner>
  <summary>
    The total number of Wallet addresses that were added to or removed from
    Chrome via Sync. Recorded when receiving an AUTOFILL_WALLET_DATA update from
    the Sync server.
  </summary>
  <details>
    Can probably be removed around Q1 2019, after project Dice has rolled out.
  </details>
</histogram>

<histogram name="Autofill.WalletAddressesRemoved" units="addresses">
  <obsolete>
    Deprecated as of 11/2018, replaced by Autofill.WalletAddresses.Removed.
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <owner>treib@chromium.org</owner>
  <summary>
    The number of Wallet addresses that were removed from Chrome via Sync.
    Recorded when receiving an AUTOFILL_WALLET_DATA update from the Sync server.
  </summary>
  <details>
    Can probably be removed around Q1 2019, after project Dice has rolled out.
  </details>
</histogram>

<histogram base="true" name="Autofill.WalletCards" units="credit cards"
    expires_after="2019-06-01">
  <obsolete>
    Deprecated as of 12/2018, replaced by Autofill.WalletCards2.
  </obsolete>
<!-- Name completed by histogram_suffixes name="AutofillWalletCardsDiff" -->

  <owner>sebsg@chromium.org</owner>
  <owner>jkrcal@chromium.org</owner>
  <summary>
    The number of Wallet credit cards that were added to Chrome or removed from
    Chrome via Sync. Recorded when receiving an AUTOFILL_WALLET_DATA update from
    the Sync server. Recorded only if both the user had previously non-empty
    data set locally and the new data set is also non-empty (to rule out initial
    sync and wiping out data). This metric has a flaw that the Directory
    implementation (unlike the USS implementation) records the metric also on
    every startup and the resulting histograms are hard to compare.
  </summary>
</histogram>

<histogram base="true" name="Autofill.WalletCards2" units="credit cards"
    expires_after="2019-06-01">
<!-- Name completed by histogram_suffixes name="AutofillWalletCardsDiff" -->

  <owner>sebsg@chromium.org</owner>
  <owner>jkrcal@chromium.org</owner>
  <summary>
    The number of Wallet credit cards that were added to Chrome or removed from
    Chrome via Sync. Recorded when receiving an AUTOFILL_WALLET_DATA update from
    the Sync server. Recorded only if both the user had previously non-empty
    data set locally and the new data set is also non-empty (to rule out initial
    sync and wiping out data).
  </summary>
</histogram>

<histogram name="Autofill.WalletCardsAdded" units="credit cards">
  <obsolete>
    Deprecated as of 11/2018, replaced by Autofill.WalletCards.Added.
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <owner>treib@chromium.org</owner>
  <summary>
    The number of Wallet credit cards that were added to Chrome via Sync.
    Recorded when receiving an AUTOFILL_WALLET_DATA update from the Sync server.
  </summary>
  <details>
    Can probably be removed around Q1 2019, after project Dice has rolled out.
  </details>
</histogram>

<histogram name="Autofill.WalletCardsAddedOrRemoved" units="credit cards">
  <obsolete>
    Deprecated as of 11/2018, replaced by Autofill.WalletCards.AddedOrRemoved.
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <owner>treib@chromium.org</owner>
  <summary>
    The total number of Wallet credit cards that were added to or removed from
    Chrome via Sync. Recorded when receiving an AUTOFILL_WALLET_DATA update from
    the Sync server.
  </summary>
  <details>
    Can probably be removed around Q1 2019, after project Dice has rolled out.
  </details>
</histogram>

<histogram name="Autofill.WalletCardsRemoved" units="credit cards">
  <obsolete>
    Deprecated as of 11/2018, replaced by Autofill.WalletCards.Removed.
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <owner>treib@chromium.org</owner>
  <summary>
    The number of Wallet credit cards that were removed from Chrome via Sync.
    Recorded when receiving an AUTOFILL_WALLET_DATA update from the Sync server.
  </summary>
  <details>
    Can probably be removed around Q1 2019, after project Dice has rolled out.
  </details>
</histogram>

<histogram name="Autofill.WebView.AutofillSession" enum="AutofillSessionStates">
  <owner>michaelbai@chromium.org</owner>
  <summary>Records the state of an autofill session.</summary>
</histogram>

<histogram name="Autofill.WebView.CreatedByActivityContext"
    enum="BooleanEnabled">
  <owner>michaelbai@chromium.org</owner>
  <summary>Whether the autofill is created by activity context.</summary>
</histogram>

<histogram name="Autofill.WebView.Enabled" enum="BooleanEnabled">
  <owner>michaelbai@chromium.org</owner>
  <summary>
    Whether the autofill service is enabled in Android platform.
  </summary>
</histogram>

<histogram name="Autofill.WebView.SubmissionSource"
    enum="AutofillSubmissionSource">
  <owner>michaelbai@chromium.org</owner>
  <summary>Records the source of form submission.</summary>
</histogram>

<histogram name="Autofill.WebView.SuggestionTime" units="ms">
  <owner>michaelbai@chromium.org</owner>
  <summary>The time taken to display suggestion.</summary>
</histogram>

<histogram name="Autofill.WebView.UserChangedAutofilledField"
    enum="BooleanEnabled">
  <owner>michaelbai@chromium.org</owner>
  <summary>Whether the user changed autofilled field.</summary>
</histogram>

<histogram name="AutoScreenBrightness.AlsReaderStatus"
    enum="AutoScreenBrightnessAlsReaderStatus" expires_after="2019-12-31">
  <owner>tby@chromium.org</owner>
  <summary>
    Whether the ALS is enabled or the error otherwise. Chrome OS only.
  </summary>
</histogram>

<histogram name="AutoScreenBrightness.BrightnessChange.Cause"
    enum="AutoScreenBrightnessBrightnessChangeCause" expires_after="2019-12-31">
  <owner>jiameng@chromium.org</owner>
  <summary>Trigger of auto brightness update. Chrome OS only.</summary>
</histogram>

<histogram name="AutoScreenBrightness.BrightnessChange.ElapsedTime" units="ms"
    expires_after="2019-12-31">
  <owner>jiameng@chromium.org</owner>
  <summary>
    The time between two consecutive auto brightness changes. Chrome OS only.
  </summary>
</histogram>

<histogram name="AutoScreenBrightness.BrightnessMonitorStatus"
    enum="AutoScreenBrightnessBrightnessMonitorStatus"
    expires_after="2019-12-31">
  <owner>tby@chromium.org</owner>
  <summary>
    Whether the brightness monitor is enabled or the error otherwise. Chrome OS
    only.
  </summary>
</histogram>

<histogram name="AutoScreenBrightness.DailyUserAdjustment.Atlas" units="count"
    expires_after="2019-12-31">
  <owner>jiameng@chromium.org</owner>
  <summary>
    Number of times that a user has made brightness adjustments on an Atlas
    device with an ambient sensor that is supported by the auto screen
    brightness model. Reported daily. The count is accumulated through the day,
    spanning reboots, and sent once the system clock indicates that a full day
    or more has passed since the last report. If the system is suspended or off
    for more than a day, the current count will be reported immediately the next
    time the system boots, but the skipped days will not be reported. Chrome OS
    only.
  </summary>
</histogram>

<histogram name="AutoScreenBrightness.DailyUserAdjustment.Eve" units="count"
    expires_after="2019-12-31">
  <owner>jiameng@chromium.org</owner>
  <summary>
    Number of times that a user has made brightness adjustments on an Eve device
    with an ambient sensor that is supported by the auto screen brightness
    model. Reported daily. The count is accumulated through the day, spanning
    reboots, and sent once the system clock indicates that a full day or more
    has passed since the last report. If the system is suspended or off for more
    than a day, the current count will be reported immediately the next time the
    system boots, but the skipped days will not be reported. Chrome OS only.
  </summary>
</histogram>

<histogram name="AutoScreenBrightness.DailyUserAdjustment.NoAls" units="count"
    expires_after="2019-12-31">
  <owner>jiameng@chromium.org</owner>
  <summary>
    Number of times that a user has made brightness adjustments on a device
    without an ambient sensor. Reported daily. The count is accumulated through
    the day, spanning reboots, and sent once the system clock indicates that a
    full day or more has passed since the last report. If the system is
    suspended or off for more than a day, the current count will be reported
    immediately the next time the system boots, but the skipped days will not be
    reported. Chrome OS only.
  </summary>
</histogram>

<histogram name="AutoScreenBrightness.DailyUserAdjustment.SupportedAls"
    units="count" expires_after="2019-12-31">
  <owner>jiameng@chromium.org</owner>
  <summary>
    Number of times that a user has made brightness adjustments on a device with
    an ambient sensor that is supported by the auto screen brightness model.
    Reported daily. The count is accumulated through the day, spanning reboots,
    and sent once the system clock indicates that a full day or more has passed
    since the last report. If the system is suspended or off for more than a
    day, the current count will be reported immediately the next time the system
    boots, but the skipped days will not be reported. Chrome OS only.
  </summary>
</histogram>

<histogram name="AutoScreenBrightness.DailyUserAdjustment.UnsupportedAls"
    units="count" expires_after="2019-12-31">
  <owner>jiameng@chromium.org</owner>
  <summary>
    Number of times that a user has made brightness adjustments on a device with
    an ambient sensor that is not supported by the auto screen brightness model.
    Reported daily. The count is accumulated through the day, spanning reboots,
    and sent once the system clock indicates that a full day or more has passed
    since the last report. If the system is suspended or off for more than a
    day, the current count will be reported immediately the next time the system
    boots, but the skipped days will not be reported. Chrome OS only.
  </summary>
</histogram>

<histogram name="AutoScreenBrightness.DataError"
    enum="AutoScreenBrightnessDataError" expires_after="2019-12-31">
  <owner>jiameng@chromium.org</owner>
  <summary>
    Type of error seen when handling data related to automatic screen brightness
    adjustments. Only reported on Chrome OS.
  </summary>
</histogram>

<histogram name="AutoScreenBrightness.NewCurveSaved.Duration" units="ms"
    expires_after="2019-12-31">
  <owner>jiameng@chromium.org</owner>
  <summary>
    The time elapsed between training start and a new curve saved to disk. Only
    reported if a new curve was created and saved successfully to disk. Chrome
    OS only.
  </summary>
</histogram>

<histogram name="AutoScreenBrightness.NewCurveSaved.Success"
    enum="BooleanSuccess" expires_after="2019-12-31">
  <owner>jiameng@chromium.org</owner>
  <summary>
    Whether a new curve was successfully saved to disk. Only reported if a new
    curve was created during the training process. Chrome OS only.
  </summary>
</histogram>

<histogram name="AutoScreenBrightness.ParameterError"
    enum="AutoScreenBrightnessParameterError" expires_after="2019-12-31">
  <owner>tby@chromium.org</owner>
  <summary>
    When there is an error in the automatic screen brightness parameters, this
    records which kind of parameter is invalid. Chrome OS only.
  </summary>
</histogram>

<histogram name="AutoScreenBrightness.PersonalCurveValid" enum="BooleanValid"
    expires_after="2019-12-31">
  <owner>tby@chromium.org</owner>
  <summary>
    Whether the user's personal brightness curve is valid. Chrome OS only.
  </summary>
</histogram>

<histogram name="AutoScreenBrightness.TrainingCompleteDuration.NewCurve"
    units="ms" expires_after="2019-12-31">
  <owner>jiameng@chromium.org</owner>
  <summary>
    The time elapsed to complete training after which a new curve was generated.
    Chrome OS only.
  </summary>
</histogram>

<histogram name="AutoScreenBrightness.TrainingCompleteDuration.NoNewCurve"
    units="ms" expires_after="2019-12-31">
  <owner>jiameng@chromium.org</owner>
  <summary>
    The time elapsed to complete training after which no new curve was
    generated. Chrome OS only.
  </summary>
</histogram>

<histogram name="AutoScreenBrightness.UserAdjustment"
    enum="AutoScreenBrightnessUserAdjustment">
  <obsolete>
    Deprecated as of 11/2018. It has been replaced by DailyUserAdjustment.
  </obsolete>
  <owner>jiameng@chromium.org</owner>
  <summary>Type of user manual screen brightness adjustment.</summary>
</histogram>

<histogram name="AutoScreenBrightness.UserAdjustmentEffect"
    enum="AutoScreenBrightnessUserAdjustmentEffect" expires_after="2019-12-31">
  <owner>jiameng@chromium.org</owner>
  <summary>
    How user manual screen brightness adjustment changes the model. Chrome OS
    only.
  </summary>
</histogram>

<histogram base="true" name="BackgroundFetch.EventDispatchFailure.Dispatch"
    enum="ServiceWorkerStatusCode">
<!-- Name completed by histogram_suffixes name="BackgroundFetchEvents" -->

  <owner>peter@chromium.org</owner>
  <summary>
    Records the Service Worker status code that caused a Background Fetch API
    event to fail dispatching whilst trying to dispatch an event on the active
    Service Worker.
  </summary>
</histogram>

<histogram base="true" name="BackgroundFetch.EventDispatchFailure.FindWorker"
    enum="ServiceWorkerStatusCode">
<!-- Name completed by histogram_suffixes name="BackgroundFetchEvents" -->

  <owner>peter@chromium.org</owner>
  <summary>
    Records the Service Worker status code that caused a Background Fetch API
    event to fail dispatching whilst trying to find the Service Worker.
  </summary>
</histogram>

<histogram base="true" name="BackgroundFetch.EventDispatchFailure.StartWorker"
    enum="ServiceWorkerStatusCode">
<!-- Name completed by histogram_suffixes name="BackgroundFetchEvents" -->

  <owner>peter@chromium.org</owner>
  <summary>
    Records the Service Worker status code that caused a Background Fetch API
    event to fail dispatching whilst trying to start the active Service Worker.
  </summary>
</histogram>

<histogram base="true" name="BackgroundFetch.EventDispatchResult"
    enum="BackgroundFetchEventDispatchResult">
<!-- Name completed by histogram_suffixes name="BackgroundFetchEvents" -->

  <owner>peter@chromium.org</owner>
  <summary>
    Records the result of dispatching one of the Background Fetch API events to
    the Service Worker associated with the event.
  </summary>
</histogram>

<histogram name="BackgroundFetch.HasDuplicateRequests" enum="Boolean">
  <owner>rayankans@chromium.org</owner>
  <summary>
    Records whether the fetch requests contains any duplicate URLs. This is
    called after the provided requests are verified, but before the fetch is
    started.
  </summary>
</histogram>

<histogram name="BackgroundFetch.HasRequestsWithBody" enum="Boolean">
  <owner>nator@chromium.org</owner>
  <owner>rayankans@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Records whether the background fetch contains any requests with a body.
    Called before the fetch is started.
  </summary>
</histogram>

<histogram name="BackgroundFetch.IncompleteFetchesOnStartup">
  <owner>rayankans@chromium.org</owner>
  <summary>
    Records the number of Background Fetch registrations found on browser
    start-up. This is called after the initialization database task runs
    successfully.
  </summary>
</histogram>

<histogram base="true" name="BackgroundFetch.Manager" units="ms">
<!-- Name completed by histogram_suffixes name="BackgroundFetchManagerAPIsDuration" -->

  <owner>rayankans@chromium.org</owner>
  <summary>
    Records the duration of the mojo call for the exposed BackgroundFetchManager
    APIs.
  </summary>
</histogram>

<histogram name="BackgroundFetch.MatchCalledFromDocumentScope"
    enum="ScopeMatchCalledFrom" expires_after="2019-12-31">
  <owner>nator@chromium.org</owner>
  <owner>rayankans@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Records whether match() or matchAll() was called from Document Scope. Called
    when match() or matchAll() is invoked in the renderer process.
  </summary>
</histogram>

<histogram name="BackgroundFetch.MatchCalledWhenFetchIsIncomplete"
    enum="FetchStatusWhenMatchCalled" expires_after="2019-12-31">
  <owner>nator@chromium.org</owner>
  <owner>rayankans@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Records whether match() or matchAll() was called when the background fetch
    was incomplete. Called when match() or matchAll() is invoked in the renderer
    process.
  </summary>
</histogram>

<histogram name="BackgroundFetch.PercentOfRequestsForWhichUpdatesAreSent"
    units="%" expires_after="2019-12-31">
  <owner>nator@chromium.org</owner>
  <owner>rayankans@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Records the percent of requests for which updates are received in the
    renderer process from the browser process. Called when the completion event
    for a background fetch has finished processing.
  </summary>
</histogram>

<histogram name="BackgroundFetch.RegistrationCreatedError"
    enum="BackgroundFetchError">
  <obsolete>
    Deprecated 10/2018 since DB tasks record this more accurately.
  </obsolete>
  <owner>peter@chromium.org</owner>
  <owner>rayankans@chromium.org</owner>
  <summary>
    Records the error after the Background Fetch Data Manager creates a
    registration.
  </summary>
</histogram>

<histogram name="BackgroundFetch.RegistrationDeletedError"
    enum="BackgroundFetchError">
  <obsolete>
    Deprecated 10/2018 since DB tasks record this more accurately.
  </obsolete>
  <owner>peter@chromium.org</owner>
  <owner>rayankans@chromium.org</owner>
  <summary>
    Records the error after the Background Fetch Data Manager deletes a
    registration.
  </summary>
</histogram>

<histogram name="BackgroundFetch.SchedulerFinishedError"
    enum="BackgroundFetchError">
  <obsolete>
    Deprecated 10/2018 since DB tasks record this more accurately.
  </obsolete>
  <owner>peter@chromium.org</owner>
  <owner>rayankans@chromium.org</owner>
  <summary>
    Records the error after the Background Fetch Data Manager marks a
    registration for deletion. This is called when the Scheduler Controller is
    finished.
  </summary>
</histogram>

<histogram base="true" name="BackgroundFetch.Storage"
    enum="BackgroundFetchStorageError">
<!-- Name completed by histogram_suffixes name="BackgroundFetchDatabaseStorageErrors" -->

  <owner>rayankans@chromium.org</owner>
  <summary>Records the storage error when running a database task.</summary>
</histogram>

<histogram name="BackgroundMode.BackgroundApplicationsCount">
  <owner>atwilson@chromium.org</owner>
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>
    The number of background applications (extensions) for a profile that were
    loaded after the profile was registered with the BackgroundModeManager.
  </summary>
</histogram>

<histogram name="BackgroundMode.BackgroundModeEnabledPrefChanged"
    enum="BooleanEnabled">
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>
    Logged if BackgroundModeManager is running and listening for pref changes,
    and the pref does indeed change. The new value is logged.
  </summary>
</histogram>

<histogram name="BackgroundMode.MenuItemClick" enum="BackgroundModeMenuItem">
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>
    Logged when an item in the system tray icon menu is clicked.
  </summary>
</histogram>

<histogram name="BackgroundMode.OnStartup.AutoLaunchState"
    enum="AutoLaunchState" expires_after="2018-08-30">
  <owner>gab@chromium.org</owner>
  <summary>
    Logged during BackgroundModeManager's initialization. Indicates the
    AutoLaunchState the current browser process was launched in.
  </summary>
</histogram>

<histogram name="BackgroundMode.OnStartup.IsBackgroundModePrefEnabled"
    enum="BooleanEnabled" expires_after="2018-08-30">
  <owner>gab@chromium.org</owner>
  <summary>
    Logged during BackgroundModeManager's initialization. Indicates the state of
    the kBackgroundModeEnabled pref on startup.
  </summary>
</histogram>

<histogram name="BackgroundMode.TimeBeforeOptimizedRestart" units="ms">
  <owner>peter@chromium.org</owner>
  <summary>
    The duration of a session before the browser got restarted in the background
    by the BackgroundOptimizer to purge the memory.
  </summary>
</histogram>

<histogram name="BackgroundSync.Event.BatchSize">
  <owner>iclelland@chromium.org</owner>
  <summary>
    Records the number of sync events which were fired in a batch. A batch is
    defined as the set of sync events dispatched at the same time by the
    BackgroundSyncManager. One-shots usually run individually (a batch of one),
    unless the device was offline and multiple are waiting for the device to go
    back online.
  </summary>
</histogram>

<histogram name="BackgroundSync.Event.OneShotResult" enum="BooleanSuccess">
  <obsolete>
    As of 10/2015 this has been replaced by
    BackgroundSync.Event.OneShotResultPattern.
  </obsolete>
  <owner>iclelland@chromium.org</owner>
  <summary>Records whether a one-shot sync event succeeded or failed.</summary>
</histogram>

<histogram name="BackgroundSync.Event.OneShotResultPattern"
    enum="BackgroundSyncResultPattern">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Records whether a periodic sync event succeeded or failed and whether the
    sync event finished in the foreground or background.
  </summary>
  <details>
    A sync event finished in the foreground if the associated Service Worker
    Registration has a client at the time that the event finished.
  </details>
</histogram>

<histogram name="BackgroundSync.Event.OneShotStartedInForeground"
    enum="BooleanInForeground">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Records whether a one-shot sync started firing in the foreground or
    background. Called shortly before the event is fired.
  </summary>
</histogram>

<histogram name="BackgroundSync.Event.PeriodicResult" enum="BooleanSuccess">
  <obsolete>
    As of 10/2015 this has been replaced by
    BackgroundSync.Event.PeriodicResultPattern.
  </obsolete>
  <owner>iclelland@chromium.org</owner>
  <summary>Records whether a periodic sync event succeeded or failed.</summary>
</histogram>

<histogram name="BackgroundSync.Event.PeriodicResultPattern"
    enum="BackgroundSyncResultPattern">
  <obsolete>
    Stopped recording as of 1/2016.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Records whether a one-shot sync event succeeded or failed and whether the
    sync event finished in the foreground or background.
  </summary>
  <details>
    A sync event finished in the foreground if the associated Service Worker
    Registration has a client at the time that the event finished.
  </details>
</histogram>

<histogram name="BackgroundSync.Event.PeriodicStartedInForeground"
    enum="BooleanInForeground">
  <obsolete>
    Stopped recording as of 1/2016.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Records whether a periodic sync event started firing in the foreground or
    background. Called shortly before the event is fired.
  </summary>
</histogram>

<histogram name="BackgroundSync.Event.Time" units="ms">
  <owner>iclelland@chromium.org</owner>
  <summary>
    Time taken to execute a batch of sync events. A batch is defined as the set
    of sync events dispatched at the same time by the BackgroundSyncManager.
    Periodic syncs often run in a batch. One-shots usually run individually (a
    batch of one), unless the device was offline and multiple are waiting for
    the device to go back online.
  </summary>
</histogram>

<histogram name="BackgroundSync.LaunchTask.CancelSuccess" enum="BooleanSuccess">
  <owner>iclelland@chromium.org</owner>
  <summary>
    Records the result of attempting to cancel a future browser launch using the
    GCM Network Manager on Android.
  </summary>
</histogram>

<histogram name="BackgroundSync.LaunchTask.PlayServicesAvailable"
    enum="Boolean">
  <owner>iclelland@chromium.org</owner>
  <summary>
    Records whether Google Play Services is available to the Background Sync
    system on Android, for scheduling future sync events when the browser is not
    running. This will be logged at most once per run.
  </summary>
</histogram>

<histogram name="BackgroundSync.LaunchTask.ScheduleSuccess"
    enum="BooleanSuccess">
  <owner>iclelland@chromium.org</owner>
  <summary>
    Records the result of attempting to schedule a future browser launch using
    the GCM Network Manager on Android.
  </summary>
</histogram>

<histogram name="BackgroundSync.NetworkObserver.HasPermission" enum="Boolean">
  <owner>iclelland@chromium.org</owner>
  <summary>
    Records whether the browser has sufficient permissions to create a
    BackgroundSyncNetworkObserver object on Android, at the point when it tries
    to create it. This should never be false, but is being tracked in order to
    help resolve crbug.com/545473.
  </summary>
</histogram>

<histogram name="BackgroundSync.OptionConditionsChanged"
    enum="BooleanOptionConditionsChanged" expires_after="M75">
  <owner>rayankans@chromium.org</owner>
  <summary>
    Whether the Background Sync dispatch conditions changed between scheduling
    the operation and dispatching the event. This is collected right before the
    event is dispatched.
  </summary>
</histogram>

<histogram name="BackgroundSync.Registration.OneShot"
    enum="BackgroundSyncStatus">
  <owner>iclelland@chromium.org</owner>
  <summary>
    Records the result of attempting to register a one-shot sync.
  </summary>
</histogram>

<histogram name="BackgroundSync.Registration.OneShot.CouldFire"
    enum="BooleanCouldFireImmediately">
  <owner>iclelland@chromium.org</owner>
  <summary>
    Records the result of attempting to register a one-shot sync in a situation
    where the sync could fire immediately.
  </summary>
</histogram>

<histogram name="BackgroundSync.Registration.OneShot.IsDuplicate"
    enum="BooleanRegistrationIsDuplicate">
  <owner>iclelland@chromium.org</owner>
  <summary>
    Records whether a one-shot sync registration exactly duplicates an existing
    registered sync.
  </summary>
</histogram>

<histogram name="BackgroundSync.Registration.Periodic"
    enum="BackgroundSyncStatus">
  <obsolete>
    Stopped recording as of 1/2016.
  </obsolete>
  <owner>iclelland@chromium.org</owner>
  <summary>
    Records the result of attempting to register a periodic sync.
  </summary>
</histogram>

<histogram name="BackgroundSync.Registration.Periodic.IsDuplicate"
    enum="BooleanRegistrationIsDuplicate">
  <obsolete>
    Stopped recording as of 1/2016.
  </obsolete>
  <owner>iclelland@chromium.org</owner>
  <summary>
    Records whether a periodic sync registration exactly duplicates an existing
    registered sync.
  </summary>
</histogram>

<histogram name="BackgroundSync.Unregistration.OneShot"
    enum="BackgroundSyncStatus">
  <obsolete>
    Stopped recording as of 2/2016.
  </obsolete>
  <owner>iclelland@chromium.org</owner>
  <summary>
    Records the result of attempting to unregister a one-shot sync.
  </summary>
</histogram>

<histogram name="BackgroundSync.Unregistration.Periodic"
    enum="BackgroundSyncStatus">
  <obsolete>
    Stopped recording as of 1/2016.
  </obsolete>
  <owner>iclelland@chromium.org</owner>
  <summary>
    Records the result of attempting to unregister a periodic sync.
  </summary>
</histogram>

<histogram name="BackgroundSync.Wakeup.DelayTime" units="ms"
    expires_after="M75">
  <owner>nator@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <owner>rayankans@chromium.org</owner>
  <summary>
    If BackgroundSync uses BackgroundTaskScheduler to wake up Chrome, this
    records the delay from the soonest expected wake-up time. Recorded whenever
    a BackgroundSync background task is called after loading the native parts of
    the browser.
  </summary>
</histogram>

<histogram name="BackgroundTracing.SamplingProfilerUnwindResult"
    enum="SamplingProfilerUnwindResult" expires_after="M71">
  <owner>ssid@chromium.org</owner>
  <summary>Records the reason for unwind failues in sampling profiler.</summary>
</histogram>

<histogram name="BatteryStatus.NumberBatteriesLinux"
    enum="BatteryStatusNumberBatteries">
  <owner>timvolodine@chromium.org</owner>
  <summary>
    Number of batteries reported by the UPower service on Linux at the start of
    the Battery Status API.
  </summary>
</histogram>

<histogram name="BatteryStatus.NumberBatteriesMac"
    enum="BatteryStatusNumberBatteries">
  <owner>timvolodine@chromium.org</owner>
  <summary>
    Number of internal batteries reported by MacOS at the start of the Battery
    Status API.
  </summary>
</histogram>

<histogram name="BatteryStatus.NumberBatteriesWin"
    enum="BatteryStatusNumberBatteriesWin">
  <owner>timvolodine@chromium.org</owner>
  <summary>
    Number of batteries reported by Windows at the start of the Battery Status
    API.
  </summary>
</histogram>

<histogram name="BatteryStatus.StartAndroid" enum="BooleanSuccess">
  <owner>timvolodine@chromium.org</owner>
  <summary>
    Whether the Battery Status API was successfully started up on Android.
  </summary>
</histogram>

<histogram name="Blacklist.Blocked" enum="DllHash">
  <owner>csharp@chromium.org</owner>
  <summary>
    Records the name hashes of all the dlls that are blocked from the browser
    process.
  </summary>
</histogram>

<histogram name="Blacklist.PatchedInRenderer" enum="BooleanHit">
  <obsolete>
    Removed at 2015 July.
  </obsolete>
  <owner>csharp@chromium.org</owner>
  <summary>
    Counts the number of times a renderer process is started with the browser
    blacklist patch. This should never be hit.
  </summary>
</histogram>

<histogram name="Blacklist.RetryAttempts.Success">
  <owner>csharp@chromium.org</owner>
  <owner>proberge@google.com</owner>
  <summary>
    Records the number of attempts needed before the blacklist is properly set
    up. This is logged immediately after a successful setup.
  </summary>
</histogram>

<histogram name="Blacklist.Setup" enum="BlacklistSetup">
  <owner>csharp@chromium.org</owner>
  <summary>
    Records the successes and failures when running the browser blacklist setup
    code. Used to determine if the blacklist is working as intended during
    startup (since the blacklist runs before crash reporting is set up). This
    only occurs on Windows.
  </summary>
</histogram>

<histogram name="Blimp.Compositor.CommitSizeKb" units="KB">
  <owner>shaktisahu@chromium.org</owner>
  <summary>
    Records the size of the uncompressed commit messages received by Blimp
    compositor.
  </summary>
</histogram>

<histogram name="Blimp.Connected" enum="BooleanConnected">
  <owner>shaktisahu@chromium.org</owner>
  <summary>
    Records whether connection attempt to the Blimp engine was successful.
  </summary>
</histogram>

<histogram name="Blimp.Supported" enum="BooleanSupported">
  <owner>shaktisahu@chromium.org</owner>
  <summary>Records whether Blimp is supported.</summary>
</histogram>

<histogram name="Blimp.Tab.Visible" enum="BooleanVisible">
  <owner>shaktisahu@chromium.org</owner>
  <summary>Records whenever a Blimp tab toggles visibility.</summary>
</histogram>

<histogram name="Blink.Animate.UpdateTime" units="microseconds">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Time spent processing main frame animations during a main frame update.

    This histogram does not record metrics on machines with low-resolution
    clocks.
  </summary>
</histogram>

<histogram name="Blink.Binding.CreateV8ContextForMainFrame"
    units="microseconds">
  <owner>peria@chromium.org</owner>
  <summary>
    Time spent to create a v8::Context instance during a page loading in the
    main-frame window.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Blink.Binding.CreateV8ContextForNonMainFrame"
    units="microseconds">
  <owner>peria@chromium.org</owner>
  <summary>
    Time spent to create a v8::Context instance during a page loading in a
    non-main-frame window, e.g. iframe.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Blink.Binding.InitializeMainLocalWindowProxy"
    units="microseconds">
  <owner>peria@chromium.org</owner>
  <summary>
    Time spent initializing LocalWindowProxy during a page loading in main
    windows.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Blink.Binding.InitializeMainRemoteWindowProxy"
    units="microseconds">
  <owner>peria@chromium.org</owner>
  <summary>
    Time spent initializing RemoteWindowProxy during a page loading in main
    frame of OOPIF.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Blink.Binding.InitializeMainWindowProxy" units="microseconds">
  <obsolete>
    Deprecated as of 03/2017. This metric was split into two metrics depending
    if it figures time for local window proxies or remote ones.
  </obsolete>
  <owner>peria@chromium.org</owner>
  <summary>
    Time spent initializing WindowProxy during a page loading in main windows.
  </summary>
</histogram>

<histogram name="Blink.Binding.InitializeNonMainLocalWindowProxy"
    units="microseconds">
  <owner>peria@chromium.org</owner>
  <summary>
    Time spent initializing LocalWindowProxy during a page loading in non-main
    windows, e.g. iframe.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Blink.Binding.InitializeNonMainRemoteWindowProxy"
    units="microseconds">
  <owner>peria@chromium.org</owner>
  <summary>
    Time spent initializing RemoteWindowProxy during a page loading in OOPIF.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Blink.Binding.InitializeNonMainWindowProxy"
    units="microseconds">
  <obsolete>
    Deprecated as of 03/2017. This metric was split into two metrics depending
    if it figures time for local window proxies or remote ones.
  </obsolete>
  <owner>peria@chromium.org</owner>
  <summary>
    Time spent initializing WindowProxy during a page loading in non-main
    windows, e.g. iframe.
  </summary>
</histogram>

<histogram name="Blink.Binding.InitializeWindowProxy" units="microseconds">
  <obsolete>
    Deprecated as of 10/2016. This metric was split into two metrics depending
    if it figures time for main windows.
  </obsolete>
  <owner>peria@chromium.org</owner>
  <summary>Time spent initializing WindowProxy during a page loading.</summary>
</histogram>

<histogram name="Blink.BudgetAPI.QueryBudget" units="budget">
  <obsolete>
    Deprecated as of 08/2018 (M70) with the removal of the Budget API.
  </obsolete>
  <owner>peter@chromium.org</owner>
  <summary>
    Whenever the Budget API framework receives a query for the current budget,
    this records the total budget available to the origin, which is an internal
    Chrome value for the amount of background processing an origin can do
    without visibly alerting the user. Scale for the budget is 0 to 100. Care
    should be taken when drawing conclusions from this metric, as budget is
    based on both engagement and usage, so could vary significantly based on
    user behaviour and origin.
  </summary>
</histogram>

<histogram name="Blink.BudgetAPI.Reserve" enum="BooleanSuccess">
  <obsolete>
    Deprecated as of 08/2018 (M70) with the removal of the Budget API.
  </obsolete>
  <owner>peter@chromium.org</owner>
  <summary>
    Whenever the Budget API framework receives a request to reserve budget for a
    future background operation, this records whether the reserve request
    succeeded or not.
  </summary>
</histogram>

<histogram name="Blink.Canvas.2DLayerBridgeIsDeferred" enum="BooleanSuccess"
    expires_after="2019-12-31">
  <owner>aaronhk@chromium.org</owner>
  <owner>fserb@chromium.org</owner>
  <summary>
    Records if a 2D Layer Bridge is using deferred rendering when it is
    destroyed. Emitted in Canvas2DLayerBridge::~Canvas2DLayerBridge.
  </summary>
</histogram>

<histogram name="Blink.Canvas.ContextType" enum="CanvasContextType">
  <owner>fserb@chromium.org</owner>
  <owner>davidqu@chromium.org</owner>
  <summary>
    Records the context type names used to create canvas rendering contexts.
  </summary>
</histogram>

<histogram name="Blink.Canvas.CreateImageBitmapSource"
    enum="CanvasCreateImageBitmapSource" expires_after="2019-12-31">
  <owner>fserb@chromium.org</owner>
  <owner>davidqu@chromium.org</owner>
  <summary>
    The source from which an ImageBitmap is created by a createImageBitmap call.
  </summary>
</histogram>

<histogram name="Blink.Canvas.DrawImage" units="microseconds">
  <obsolete>
    Replaced with Blink.Canvas.DrawImage.Duration in 10/2018.
  </obsolete>
  <owner>junov@chromium.org</owner>
  <summary>
    Time spent on 2D canvas drawImage API call.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram base="true" name="Blink.Canvas.DrawImage.Duration"
    units="microseconds">
  <owner>fserb@chromium.org</owner>
  <owner>davidqu@chromium.org</owner>
  <summary>
    Time spent on the main thread during a 2D canvas drawImage API call.

    Note: This metric drops reports on clients with low-resolution clocks, which
    means these reports will be biased against a portion of the population on
    Windows. See Windows.HasHighResolutionTimeTicks for the affected sample.
  </summary>
</histogram>

<histogram base="true" name="Blink.Canvas.DrawImage.SqrtNumberOfPixels"
    units="sqrt(pixels)" expires_after="2019-12-31">
  <owner>fserb@chromium.org</owner>
  <owner>davidqu@chromium.org</owner>
  <summary>
    Stores the square root of the number of pixels drawn into a Canvas.
    Different histograms per CanvasImageSource.
  </summary>
</histogram>

<histogram name="Blink.Canvas.GetImageData" units="microseconds">
  <obsolete>
    Replaced with Blink.Canvas.GetImageDataScaledDuration in 10/2018.
  </obsolete>
  <owner>junov@chromium.org</owner>
  <summary>
    Time spent on 2D canvas getImageData API call.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram base="true" name="Blink.Canvas.GetImageDataScaledDuration"
    units="microseconds * 10/sqrt(pixels)" expires_after="2019-12-31">
  <owner>fserb@chromium.org</owner>
  <owner>davidqu@chromium.org</owner>
  <summary>
    Time in microseconds * 10 (10e-5 seconds) spent on the 2D canvas
    getImageData API call, divided by the square root of the total number of
    pixels of the image extracted from the canvas. Smaller is faster.

    The idea behind this elaborated unit is that the bigger the area of a canvas
    the longer the operation GetImageData takes, so we want a way to measure the
    overall performance regardless of the size of the canvas.
  </summary>
</histogram>

<histogram name="Blink.Canvas.GPUAccelerated2DCanvasDisableDeferralReason"
    enum="CanvasGPUAccelerated2DCanvasDisableDeferralReason"
    expires_after="2019-12-31">
  <owner>fserb@chromium.org</owner>
  <owner>davidqu@chromium.org</owner>
  <summary>
    The reasons why a GPU accelerated canvas stopped deferring its rendering
    operations.
  </summary>
</histogram>

<histogram name="Blink.Canvas.HibernationEvents" enum="CanvasHibernationEvent"
    expires_after="2019-12-31">
  <owner>fserb@chromium.org</owner>
  <summary>
    Records the occurrence of events related to 2D canvas GPU resource
    hibernation.
  </summary>
</histogram>

<histogram name="Blink.Canvas.IsComposited" enum="BooleanSuccess"
    expires_after="2020-10-24">
  <owner>aaronhk@chromium.org</owner>
  <owner>fserb@chromium.org</owner>
  <summary>
    Records if the canvas context is composited or not. Recorded in
    HTMLCanvasElement::GetCanvasRenderingContext.
  </summary>
</histogram>

<histogram name="Blink.Canvas.NumCanvasesPerPage" units="canvases"
    expires_after="2020-8-30">
  <owner>aaronhk@chromium.org</owner>
  <owner>fserb@chromium.org</owner>
  <summary>
    When a Document is shutdown, reports the number of canvases on that page.
  </summary>
</histogram>

<histogram name="Blink.Canvas.OffscreenCommitTimer" units="microseconds">
  <obsolete>
    Deprecated in 10/2018. Offscreen Canvas no longer needs commits.
  </obsolete>
  <owner>junov@chromium.org</owner>
  <owner>xidachen@chromium.org</owner>
  <summary>
    Wall clock durations of OffscreenCanvas.commit() calls.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Blink.Canvas.PutImageData" units="microseconds">
  <obsolete>
    Replaced with Blink.Canvas.PutImageDataScaledDuration in 10/2018.
  </obsolete>
  <owner>junov@chromium.org</owner>
  <summary>
    Time spent on 2D canvas putImageData API call.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram base="true" name="Blink.Canvas.PutImageDataScaledDuration"
    units="microseconds * 10/sqrt(pixels)" expires_after="2019-12-31">
  <owner>fserb@chromium.org</owner>
  <owner>davidqu@chromium.org</owner>
  <summary>
    Time in microseconds * 10 (10e-5 seconds) spent on the 2D canvas
    putImageData API call, divided by the square root of the total number of
    pixels of the imageData painted into the canvas. Smaller is faster.

    The idea behind this elaborated unit is that the bigger the area of a canvas
    the longer the operation PutImageData takes, so we want a way to measure the
    overall performance regardless of the size of the canvas.
  </summary>
</histogram>

<histogram base="true" name="Blink.Canvas.RequestedImageMimeTypes"
    enum="RequestedImageMimeType" expires_after="2019-12-31">
  <owner>fserb@chromium.org</owner>
  <owner>davidqu@chromium.org</owner>
  <summary>
    Records the occurence of image file formats passed into toDataURL and toBlob
    functions in canvas.
  </summary>
</histogram>

<histogram name="Blink.Canvas.ResourceProviderIsAccelerated"
    enum="BooleanEnabled">
  <owner>aaronhk@chromium.org</owner>
  <owner>fserb@chromium.org</owner>
  <summary>Logs if the canvas resource provider is accelerated or not.</summary>
</histogram>

<histogram name="Blink.Canvas.ResourceProviderType"
    enum="CanvasResourceProviderType">
  <owner>aaronhk@chromium.org</owner>
  <owner>fserb@chromium.org</owner>
  <summary>
    Records the type of resource provider used for a canvas (texture, bitmap or
    shared bitmap).
  </summary>
</histogram>

<histogram name="Blink.Canvas.SqrtNumberOfPixels" units="sqrt(pixels)"
    expires_after="2020-8-30">
  <owner>aaronhk@chromium.org</owner>
  <owner>fserb@chromium.org</owner>
  <summary>
    Stores the square root of the number of pixels in a new or resized offscreen
    canvas. Emitted from CanvasRenderingContextHost::RecordCanvasSizeToUMA.
  </summary>
</histogram>

<histogram base="true" name="Blink.Canvas.ToBlob.CompleteEncodingDelay"
    units="microseconds">
  <owner>fserb@chromium.org</owner>
  <owner>davidqu@chromium.org</owner>
  <summary>
    This metric measures the total time spent on completing encoding all the
    rows of an image (jpeg or png), as part of a canvas.toBlob API call.
    Encoding occurs during one or more idle periods on the main thread and the
    waiting time of the next idle period is included in the measurement. If the
    code has swtiched to force encoding path, we will not measure the delay in
    this metric.

    This metric is useful in helping us adjust the IdleTaskCompleteTimeoutDelay
    in canvas.toBlob. When the encoding idle task is delayed for longer than
    IdleTaskCompleteTimeoutDelay, the browser will switch to a non-idle task to
    force encoding to happen on the main thread.

    In addition, metric values from OffscreenCanvas.convertToBlob API call are
    also gathered into this histogram, because the logic flow is exactly the
    same as canvas.toBlob. It's worth to note that the values can come from idle
    tasks on either main or worker thread.

    Note: This metric drops reports on clients with low-resolution clocks, which
    means these reports will be biased against a portion of the population on
    Windows. See Windows.HasHighResolutionTimeTicks for the affected sample.
  </summary>
</histogram>

<histogram name="Blink.Canvas.ToBlob.IdleEncodeDuration" units="microseconds">
  <obsolete>
    Replaced with Blink.Canvas.ToBlob.CompleteEncodingDelay in 2017/12.
  </obsolete>
  <owner>junov@chromium.org</owner>
  <owner>xlai@chromium.org</owner>
  <summary>
    This metric measures the total time spent on encoding all the rows of an
    image (jpeg or png), excluding the waiting time of next idle periods. This
    is part of a canvas.toBlob API call. Encoding occurs during one or more idle
    periods on the main thread.
  </summary>
</histogram>

<histogram base="true" name="Blink.Canvas.ToBlob.IdleTaskStatus"
    enum="IdleTaskStatus">
  <owner>fserb@chromium.org</owner>
  <owner>davidqu@chromium.org</owner>
  <summary>
    Records the status of the idle task when finishing a toBlob call.

    In addition, metric values from OffscreenCanvas.convertToBlob API call are
    also gathered into this histogram, because the logic flow is exactly the
    same as canvas.toBlob. It's worth to note that the values can come from idle
    tasks on either main or worker thread.
  </summary>
</histogram>

<histogram base="true" name="Blink.Canvas.ToBlob.InitiateEncodingDelay"
    units="microseconds">
  <owner>fserb@chromium.org</owner>
  <owner>davidqu@chromium.org</owner>
  <summary>
    This metric measures the time spent from initiating image encoding (jpeg or
    png) on idle task to the actual execution time of initiation, as part of a
    canvas.toBlob API call.

    This metric is useful in helping us adjust the IdleTaskStartTimeoutDelay in
    canvas.toBlob. When the initialization idle task is delayed for longer than
    IdleTaskStartTimeoutDelay, the browser will switch to a non-idle task to
    force initialization and encoding to occur on the main thread.

    In addition, metric values from OffscreenCanvas.convertToBlob API call are
    also gathered into this histogram, because the logic flow is exactly the
    same as canvas.toBlob. It's worth to note that the values can come from idle
    tasks on either main or worker thread.

    Note: This metric drops reports on clients with low-resolution clocks, which
    means these reports will be biased against a portion of the population on
    Windows. See Windows.HasHighResolutionTimeTicks for the affected sample.
  </summary>
</histogram>

<histogram base="true" name="Blink.Canvas.ToBlob.ScaledDuration"
    units="microseconds/sqrt(pixels)" expires_after="2019-12-31">
  <owner>fserb@chromium.org</owner>
  <owner>davidqu@chromium.org</owner>
  <summary>
    Time in microseconds spent on the 2D canvas toBlob API call, divided by the
    square root of the total number of pixels of the canvas.

    In addition, metric values from OffscreenCanvas.convertToBlob API call are
    also gathered into this histogram, because the logic flow is exactly the
    same as canvas.toBlob. It's worth to note that the values can come from idle
    tasks on either main or worker thread.

    Note: This metric drops reports on clients with low-resolution clocks, which
    means these reports will be biased against a portion of the population on
    Windows. See Windows.HasHighResolutionTimeTicks for the affected sample.
  </summary>
</histogram>

<histogram name="Blink.Canvas.ToBlobDuration" units="microseconds">
  <obsolete>
    Replaced with Blink.Canvas.ToBlob.ScaledDuration in 10/2018.
  </obsolete>
  <owner>junov@chromium.org</owner>
  <owner>xlai@chromium.org</owner>
  <summary>
    Time spent on 2D canvas toBlob API call.

    In addition, metric values from OffscreenCanvas.convertToBlob API call are
    also gathered into this histogram, because the logic flow is exactly the
    same as canvas.toBlob. It's worth to note that the values can come from idle
    tasks on either main or worker thread.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Blink.Canvas.ToDataURL" units="microseconds">
  <obsolete>
    Replaced with Blink.Canvas.ToDataURLScaledDuration in 10/2018.
  </obsolete>
  <owner>junov@chromium.org</owner>
  <summary>
    Time spent on 2D canvas toDataURL API call.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram base="true" name="Blink.Canvas.ToDataURLScaledDuration"
    units="microseconds/sqrt(pixels)" expires_after="2019-12-31">
  <owner>fserb@chromium.org</owner>
  <owner>davidqu@chromium.org</owner>
  <summary>
    Time spent on 2D canvas toDataURL API call divided by the square root of the
    total number of pixels of the image. Smaller is faster.

    The idea behind this unit is that the bigger the area of a canvas the longer
    the operation ToDataURL takes, so we want a way to measure the overall
    performance regardless of the size of the canvas.
  </summary>
</histogram>

<histogram name="Blink.CheckerableImageCount" enum="CheckerableImageType">
  <obsolete>
    Deprecated on 2018-05-04.
  </obsolete>
  <owner>khushalsagar@chromium.org</owner>
  <summary>
    The number of images which could have been checkered (async decoded) for a
    performance gain, split by the DOM element type on which they were used.
    This is recorded each time an image for an element created by the page is
    loaded, either from the network or the local cache. The browser heuristics
    define an image to be checkerable if it is expected to have a long decode
    duration. Since these images may be on the rendering critical path, decoding
    them asychronously from painting other content can provide better
    performance be reducing overall content checkerboarding.
  </summary>
</histogram>

<histogram name="Blink.ColorGamut.Destination" enum="Gamut">
  <owner>brianosman@chromium.org</owner>
  <owner>mcasas@google.com</owner>
  <owner>ccameron@chromium.org</owner>
  <summary>Gamut properties of destination color space.</summary>
</histogram>

<histogram name="Blink.ColorGamut.Source" enum="Gamut">
  <owner>brianosman@chromium.org</owner>
  <owner>mcasas@google.com</owner>
  <owner>ccameron@chromium.org</owner>
  <summary>Gamut properties of image color space.</summary>
</histogram>

<histogram name="Blink.ColorSpace.Destination" enum="Gamma">
  <owner>brianosman@chromium.org</owner>
  <owner>mcasas@google.com</owner>
  <owner>ccameron@chromium.org</owner>
  <summary>Gamma properties of destination color space.</summary>
</histogram>

<histogram name="Blink.ColorSpace.Destination.ExtractedRawData"
    enum="ColorSpaceExtractedRawDataResult">
  <obsolete>
    Merged into Blink.ColorSpace.Destination.ICCResult on 2017-02-28.
  </obsolete>
  <owner>ccameron@chromium.org</owner>
  <summary>
    Whether or not the output color space ICC profile was able to produce raw
    transfer function tables.
  </summary>
</histogram>

<histogram name="Blink.ColorSpace.Destination.ICCResult"
    enum="ICCProfileAnalyzeResult">
  <owner>brianosman@chromium.org</owner>
  <owner>mcasas@google.com</owner>
  <owner>ccameron@chromium.org</owner>
  <summary>
    The result of analyzing the destiation color space's ICC profile.
  </summary>
</histogram>

<histogram name="Blink.ColorSpace.Destination.LinearFitError">
  <obsolete>
    Linear fit found to be always inaccurate on 2017-02-28.
  </obsolete>
  <owner>ccameron@chromium.org</owner>
  <summary>
    The L-infinity error (in 8-bit values) of the numerical approximation of
    table-based ICC profile transfer functions, when falling back to a linear
    approximation.
  </summary>
</histogram>

<histogram name="Blink.ColorSpace.Destination.Matrix"
    enum="ColorSpaceMatrixResult">
  <obsolete>
    Merged into Blink.ColorSpace.Destination.ICCResult on 2017-02-28.
  </obsolete>
  <owner>ccameron@chromium.org</owner>
  <summary>
    Whether or not to-XYZD50 matrix was extracted from the output color space
    ICC profile.
  </summary>
</histogram>

<histogram name="Blink.ColorSpace.Destination.NonlinearFitConverged"
    enum="ColorSpaceNonlinearFitConverged">
  <obsolete>
    Nonlinear fit code moved to skcms on 2018-04-25.
  </obsolete>
  <owner>ccameron@chromium.org</owner>
  <summary>
    Whether or not the nonlinear least squares fit of the table-based ICC
    profile transfer function for a single channel converged.
  </summary>
</histogram>

<histogram name="Blink.ColorSpace.Destination.NonlinearFitError">
  <obsolete>
    Nonlinear fit code moved to skcms on 2018-04-25.
  </obsolete>
  <owner>ccameron@chromium.org</owner>
  <summary>
    The L-infinity error (in 8-bit values) of the numerical approximation of
    table-based ICC profile transfer functions for a single channel, when the
    nonlinear approximation converged.
  </summary>
</histogram>

<histogram name="Blink.ColorSpace.Destination.NonlinearFitErrorCombined">
  <owner>brianosman@chromium.org</owner>
  <owner>mcasas@google.com</owner>
  <owner>ccameron@chromium.org</owner>
  <summary>
    The L-infinity error (in 8-bit values) of the numerical approximation of
    table-based ICC profile transfer functions for all channels combined, when
    the nonlinear approximation converged.
  </summary>
</histogram>

<histogram name="Blink.ColorSpace.Destination.Numerical"
    enum="ColorSpaceNumericalResult">
  <obsolete>
    Merged into Blink.ColorSpace.Destination.ICCResult on 2017-02-28.
  </obsolete>
  <owner>ccameron@chromium.org</owner>
  <summary>
    Whether or not the output color space ICC profile has a numerical transfer
    function.
  </summary>
</histogram>

<histogram name="Blink.ColorSpace.Destination.OneMinusTMax">
  <obsolete>
    TMax found to almost always be 1 on 2017-02-28.
  </obsolete>
  <owner>ccameron@chromium.org</owner>
  <summary>
    One minus the maximum value of table-based ICC profile transfer functions as
    an 8-bit fixed-point value. This histogram is temporary, to see if we can
    bake in the assumption that it will almost always be 255.
  </summary>
</histogram>

<histogram name="Blink.ColorSpace.Destination.TMin">
  <obsolete>
    TMin found to almost always be 0 on 2017-02-28.
  </obsolete>
  <owner>ccameron@chromium.org</owner>
  <summary>
    The minimum value of table-based ICC profile transfer functions as an 8-bit
    fixed-point value. This histogram is temporary, to see if we can bake in the
    assumption that it will almost always be 0.
  </summary>
</histogram>

<histogram name="Blink.ColorSpace.Source" enum="Gamma">
  <owner>brianosman@chromium.org</owner>
  <owner>mcasas@google.com</owner>
  <owner>ccameron@chromium.org</owner>
  <summary>Gamma properties of image color space.</summary>
</histogram>

<histogram base="true" name="Blink.Compositing.LayerPromotionCount">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Number of composited layers based on various reasons. Recorded when a page
    finishes its layer updates.
  </summary>
</histogram>

<histogram name="Blink.Compositing.UpdateTime" units="microseconds">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Time spent updating compositing in the Blink document lifecycle. This is the
    legacy compositing approach. BlinkGenPropertyTrees launches part of the new
    compositing approach and will use both this and
    Blink.CompositingCommit.UpdateTime.

    Note: As of M70, this histogram has stopped recording metrics on machines
    with low-resolution clocks.
  </summary>
</histogram>

<histogram name="Blink.CompositingCommit.UpdateTime" units="microseconds">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Time spent updating and pushing layers at the end of the paint step in the
    Blink document lifecycle. This is the new compositing approach in
    CompositeAfterPaint and is largely implemented by PaintArtifactCompositor.
    BlinkGenPropertyTrees is an incremental launch of part of the new
    compositing approach and will use both this and
    Blink.Compositing.UpdateTime.

    Note: As of M70, this histogram has stopped recording metrics on machines
    with low-resolution clocks.
  </summary>
</histogram>

<histogram name="Blink.CookieJar.SyncCookiesSetTime" units="microseconds">
  <owner>kinuko@chromium.org</owner>
  <owner>dcheng@chromium.org</owner>
  <summary>
    Microseconds per sync IPC call to set cookies.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Blink.CookieJar.SyncCookiesTime" units="microseconds">
  <owner>kinuko@chromium.org</owner>
  <owner>dcheng@chromium.org</owner>
  <summary>
    Microseconds per sync IPC call to fetch cookies.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Blink.DecodedImage.CanvasExpanded"
    enum="BooleanCanvasExpanded">
  <obsolete>
    Deprecated as of 11/29/2016.
  </obsolete>
  <owner>ryansturm@chromium.org</owner>
  <owner>bengr@google.com</owner>
  <summary>
    The original canvas dimensions were sufficient to determine image size. This
    is logged once per image header decode, which happens typically twice per
    image on the page.
  </summary>
</histogram>

<histogram name="Blink.DecodedImage.EffectiveDimensionsLocation" units="bytes">
  <obsolete>
    Deprecated as of 11/29/2016.
  </obsolete>
  <owner>ryansturm@chromium.org</owner>
  <owner>bengr@google.com</owner>
  <summary>
    How many bytes of the file were read before an image width and height were
    determined. This is logged once per image header decode, which happens
    typically twice per image on the page.
  </summary>
</histogram>

<histogram name="Blink.DecodedImage.JpegDensity" units="0.01 bits per pixel">
  <obsolete>
    Deprecated as of 08/23/2018. Replaced by Blink.DecodedImage.JpegDensity.*
  </obsolete>
  <owner>deymo@google.com</owner>
  <owner>compression-dev@google.com</owner>
  <summary>
    The compressed image density measured in 0.01 bits per pixel. This is logged
    once per image load after the whole image is loaded and only for JPEGs with
    at least 100 pixels on each dimension.
  </summary>
</histogram>

<histogram name="Blink.DecodedImage.JpegDensity.1000px"
    units="0.01 bits per pixel">
  <owner>deymo@google.com</owner>
  <owner>compression-dev@google.com</owner>
  <summary>
    The compressed image density measured in 0.01 bits per pixel. This is logged
    once per image load after the whole image is loaded and only for JPEGs with
    at least 1000 pixels on the smallest dimension (width or height).
  </summary>
</histogram>

<histogram name="Blink.DecodedImage.JpegDensity.100px"
    units="0.01 bits per pixel">
  <owner>deymo@google.com</owner>
  <owner>compression-dev@google.com</owner>
  <summary>
    The compressed image density measured in 0.01 bits per pixel. This is logged
    once per image load after the whole image is loaded and only for JPEGs with
    at least 100 pixels on the smallest dimension (width or height) but less
    than 400 pixels on the smallest dimension.
  </summary>
</histogram>

<histogram name="Blink.DecodedImage.JpegDensity.400px"
    units="0.01 bits per pixel">
  <owner>deymo@google.com</owner>
  <owner>compression-dev@google.com</owner>
  <summary>
    The compressed image density measured in 0.01 bits per pixel. This is logged
    once per image load after the whole image is loaded and only for JPEGs with
    at least 400 pixels on the smallest dimension (width or height) but less
    than 1000 pixels on the smallest dimension.
  </summary>
</histogram>

<histogram name="Blink.DecodedImage.Orientation" enum="DecodedImageOrientation">
  <owner>andrescj@chromium.org</owner>
  <owner>rob.buis@samsung.org</owner>
  <summary>Image orientation inferred during decode.</summary>
</histogram>

<histogram name="Blink.DecodedImage.WebPFileFormat" enum="WebPFileFormat">
  <owner>mcasas@chromium.org</owner>
  <owner>andrescj@chromium.org</owner>
  <summary>
    WebP file format parsed during Blink's header parsing phase (which should
    happen only once per image).
  </summary>
</histogram>

<histogram name="Blink.DecodedImage.XCanvasExpansion" units="pixels">
  <obsolete>
    Deprecated as of 11/29/2016.
  </obsolete>
  <owner>ryansturm@chromium.org</owner>
  <owner>bengr@google.com</owner>
  <summary>
    How much the canvas width needed to be expanded as a result of the first
    frame's width and x-offset being larger than the initial canvas width. This
    is logged once per image header decode, which happens typically twice per
    image on the page.
  </summary>
</histogram>

<histogram name="Blink.DecodedImage.YCanvasExpansion" units="pixels">
  <obsolete>
    Deprecated as of 11/29/2016.
  </obsolete>
  <owner>ryansturm@chromium.org</owner>
  <owner>bengr@google.com</owner>
  <summary>
    How much the canvas height needed to be expanded as a result of the first
    frame's height and y-offset being larger than the initial canvas height.
    This is logged once per image header decode, which happens typically twice
    per image on the page.
  </summary>
</histogram>

<histogram name="Blink.DecodedImageType" enum="DecodedImageType">
  <owner>urvang@chromium.org</owner>
  <summary>Image codec inferred during decode.</summary>
</histogram>

<histogram name="Blink.EventListenerDuration.Resize" units="microseconds">
  <obsolete>
    Deprecated 01/2018.
  </obsolete>
  <owner>bokan@chromium.org</owner>
  <summary>
    Time it takes to execute all the `resize` event listeners on a page when a
    resize event is fired. Tracked only for the main frame.
  </summary>
</histogram>

<histogram name="Blink.Fetch.RequestResourceTime" units="microseconds">
  <owner>csharrison@chromium.org</owner>
  <summary>
    The total microseconds spent in ResourceFetcher::requestResource.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Blink.Fonts.HarfBuzzFaceZeroCopyAccess" enum="BooleanSuccess">
  <owner>drott@chromium.org</owner>
  <summary>
    Counts success or failure of attempting to access font tables using the zero
    copy instantiation method in the HarfBuzz integration layer. This value is
    only recorded on non-Mac platforms. Reported each time a HarfBuzz face
    object is created.
  </summary>
</histogram>

<histogram name="Blink.Fonts.ShapeCache">
  <owner>eae@chromium.org</owner>
  <summary>
    Total number of entries in all Blink ShapeCache instances. The value is
    reported each time the FontCache::purge() method is called.
  </summary>
</histogram>

<histogram name="Blink.Fonts.VariableFontsRatio"
    enum="WebFontInstantiationResult">
  <owner>drott@chromium.org</owner>
  <summary>
    Tracks adoption ratio of variable fonts compared to conventional (in the
    sense of non-variable) web fonts. Recorded at the time of instantiating a
    Skia SkTypeface from the successfully decoded web font blob.
  </summary>
</histogram>

<histogram name="Blink.Fonts.WindowsUniqueLocalFontInstantiationResult"
    enum="WindowsUniqueLocalFontInstantiationResult" expires_after="M75">
  <owner>drott@chromium.org</owner>
  <summary>
    Tracks whether a locally uniquely matched font can be instantiated inside
    the renderer. Recorded at the time the renderer tries to instantiate the
    font in the font cache. If it fails (in rare cases), it can either be caused
    by the font being placed outside the Windows Fonts directory, or for an
    unknown reason. Track this to identify whether a browser side helper is
    needed to open the file handle outside the sandbox and pass it into the
    renderer.
  </summary>
</histogram>

<histogram name="Blink.ForcedStyleAndLayout.UpdateTime" units="microseconds">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Time spent computing layouts due to Javascript value requests. Specifically,
    time spent in Blink Document::UpdateStyleAndLayoutIgnorePendingStylesheets.

    This histogram only records metrics on machines with high-resolution clocks.
  </summary>
</histogram>

<histogram name="Blink.Gesture.Merged" enum="GestureMergeState">
  <owner>jyasskin@chromium.org</owner>
  <owner>domenic@google.com</owner>
  <summary>
    How many times two user gesture tokens were merged by UserGestureIndicator,
    and whether each token had an active gesture. One of the new token's
    gestures, if any, is moved to the old token.
  </summary>
</histogram>

<histogram name="Blink.HandleInputEvents.UpdateTime" units="microseconds">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Time spent processing rAF-aligned input during a main frame update.

    This histogram does not record metrics on machines with low-resolution
    clocks.
  </summary>
</histogram>

<histogram name="Blink.ImageDecoders.Jpeg.Area" units="pixels">
  <owner>andrescj@chromium.org</owner>
  <summary>
    Number of pixels in a decoded JPEG image. Recorded after decoding is done by
    Blink's JPEG decoder (as opposed to, possibly, a hardware decode
    accelerator). Tracking the image area may include degenerate cases, e.g., an
    image with area = 10000 and dimensions = 1x10000. However, it is reasonable
    to assume these cases are relatively rare and the area of the image can
    serve as a proxy of how useful a decode accelerator can be (the larger the
    area, the better).
  </summary>
</histogram>

<histogram name="Blink.ImageDecoders.Jpeg.ColorSpace" enum="JpegColorSpace">
  <owner>andrescj@chromium.org</owner>
  <owner>mcasas@chromium.org</owner>
  <summary>
    JPEG color space of a decoded image as guessed by libjpeg_turbo. Recorded
    after decoding is done by Blink's JPEG decoder (as opposed to, possibly, a
    hardware decode accelerator). When the color space is YCbCr, the chroma
    subsampling is also recorded.
  </summary>
</histogram>

<histogram name="Blink.IntersectionObservation.UpdateTime" units="microseconds">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Time spent computing IntersectionObserver observations in the Blink document
    lifecycle.

    Note: As of M70, this histogram has stopped recording metrics on machines
    with low-resolution clocks.
  </summary>
</histogram>

<histogram name="Blink.KeyboardLock.MethodCalled" enum="KeyboardLockMethods">
  <owner>joedow@chromium.org</owner>
  <owner>garykac@chromium.org</owner>
  <summary>
    Records each call to the navigator.keyboard{Lock|Unlock} methods.
  </summary>
</histogram>

<histogram name="Blink.LazyLoad.CrossOriginFrames.InitialDeferralAction"
    enum="LazyLoad.FrameInitialDeferralAction">
  <owner>sclittle@chromium.org</owner>
  <summary>
    Records the initial lazy loading action taken for a cross-origin iframe.
  </summary>
</histogram>

<histogram
    name="Blink.LazyLoad.CrossOriginFrames.LoadStartedAfterBeingDeferred"
    enum="NQEEffectiveConnectionType">
  <owner>sclittle@chromium.org</owner>
  <summary>
    Records the effective connection type whenever a lazily-loaded iframe that
    wasn't initially hidden or near the viewport starts loading. The count for
    an effective connection type in this histogram can be subtracted from the
    'Deferred' bucket from the
    Blink.LazyLoad.CrossOriginFrames.InitialDeferralAction.* histogram for the
    corresponding effective connection type to determine the number of iframes
    that LazyLoad is avoiding to load altogether.
  </summary>
</histogram>

<histogram name="Blink.LazyLoad.CrossOriginFrames.VisibleAfterBeingDeferred"
    enum="NQEEffectiveConnectionType">
  <owner>sclittle@chromium.org</owner>
  <summary>
    Records the effective connection type whenever a lazily-loaded iframe that
    wasn't initially hidden or near the viewport becomes visible. The count for
    an effective connection type in this histogram can be subtracted from the
    corresponding count in
    Blink.LazyLoad.CrossOriginFrames.LoadStartedAfterBeingDeferred to determine
    how many iframes were loaded unnecessarily by LazyLoad.
  </summary>
</histogram>

<histogram base="true" name="Blink.MainFrame.CompositingCommitRatio" units="%">
  <owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->

  <summary>
    The percentage of time between a BeginMainFrame and paint results commit in
    Blink that is used for committing paint results to the compositor.
  </summary>
</histogram>

<histogram base="true" name="Blink.MainFrame.CompositingRatio" units="%">
  <owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->

  <summary>
    The percentage of time between a BeginMainFrame and paint results commit in
    Blink that is used for computing Compositing.
  </summary>
</histogram>

<histogram base="true" name="Blink.MainFrame.ForcedStyleAndLayoutRatio"
    units="%">
  <owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->

  <summary>
    The time between each paint results commit used in computing forced style
    recalc and layouts for this document and ancestors as a percentage of the
    Blink local frame lifecycle update time.
  </summary>
</histogram>

<histogram base="true" name="Blink.MainFrame.IntersectionObservationRatio"
    units="%">
  <owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->

  <summary>
    The percentage of time between a BeginMainFrame and paint results commit in
    Blink that is used for computing Intersection Observations.
  </summary>
</histogram>

<histogram base="true" name="Blink.MainFrame.PaintRatio" units="%">
  <owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->

  <summary>
    The percentage of time between a BeginMainFrame and paint results commit in
    Blink that is used for computing Paint.
  </summary>
</histogram>

<histogram base="true" name="Blink.MainFrame.PrePaintRatio" units="%">
  <owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->

  <summary>
    The percentage of time between a BeginMainFrame and paint results commit in
    Blink that is used for computing PrePaint.
  </summary>
</histogram>

<histogram base="true" name="Blink.MainFrame.StyleAndLayoutRatio" units="%">
  <owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->

  <summary>
    The percentage of time between a BeginMainFrame and paint results commit in
    Blink that is used for computing Style and Layout.
  </summary>
</histogram>

<histogram name="Blink.MainFrame.UpdateTime" units="microseconds">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Time between a BeginMainFrame and paint results commit in Blink.

    This histogram will not record metrics on machines with low-resolution
    clocks.
  </summary>
</histogram>

<histogram name="Blink.MediaDocument.DownloadButton"
    enum="MediaDocumentDownloadButtonType">
  <obsolete>
    Deprecated 08/2017 as it is integrated into media controller.
  </obsolete>
  <owner>qinmin@chromium.org</owner>
  <summary>
    Records how the download button on the MediaDocument is used.
  </summary>
</histogram>

<histogram name="Blink.MediaElement.Autoplay" enum="MediaElementAutoPlay">
  <obsolete>
    Deprecated 11/2016 in Issue 666370 with the deprecation of Autoplay
    experiment.
  </obsolete>
  <owner>oysteine@chromium.org</owner>
  <summary>
    Records user observation and interaction with Media HTML elements that
    feature autoplay, either script-controlled or through the attribute.
  </summary>
</histogram>

<histogram name="Blink.MemoryCache.RevalidationPolicy"
    enum="RevalidationPolicy">
  <owner>hiroshige@chromium.org</owner>
  <summary>
    RevalidationPolicy used for non-preloading requests for each resource type.
    https://crbug.com/579496
  </summary>
</histogram>

<histogram name="Blink.MemoryCache.RevalidationPolicy.Dead"
    enum="RevalidationPolicy">
  <owner>hiroshige@chromium.org</owner>
  <summary>
    RevalidationPolicy used for requests that hit Resource only referenced from
    MemoryCache for each resource type. https://crbug.com/579496 Requests
    counted by this are also counted by Blink.MemoryCache.RevalidationPolicy or
    Blink.MemoryCache.RevalidationPolicy.Preload.
  </summary>
</histogram>

<histogram name="Blink.MemoryCache.RevalidationPolicy.Preload"
    enum="RevalidationPolicy">
  <owner>hiroshige@chromium.org</owner>
  <summary>
    RevalidationPolicy used for preloading requests for each resource type.
    https://crbug.com/579496
  </summary>
</histogram>

<histogram name="Blink.OffscreenCanvas.ContextType" enum="CanvasContextType">
  <owner>aaronhk@chromium.org</owner>
  <owner>fserb@chromium.org</owner>
  <summary>
    Records the context type names used to create offscreen canvas rendering
    contexts. Recorded in OffscreenCanvas::GetCanvasRenderingContext
  </summary>
</histogram>

<histogram name="Blink.OffscreenCanvas.NewOffscreenCanvas" enum="Boolean">
  <owner>aaronhk@chromium.org</owner>
  <owner>fserb@chromium.org</owner>
  <summary>
    Records the creation of a new offscreen canvas in OffscreenCanvas::Create.
  </summary>
</histogram>

<histogram name="Blink.OffscreenCanvas.SqrtNumberOfPixels" units="sqrt(pixels)"
    expires_after="2020-8-30">
  <owner>aaronhk@chromium.org</owner>
  <owner>fserb@chromium.org</owner>
  <summary>
    Stores the square root of the number of pixels in a new or resized offscreen
    canvas. Emitted from CanvasRenderingContextHost::RecordCanvasSizeToUMA.
  </summary>
</histogram>

<histogram name="Blink.OffscreenCanvas.TransferControlToOffscreen"
    enum="Boolean">
  <owner>aaronhk@chromium.org</owner>
  <owner>fserb@chromium.org</owner>
  <summary>
    Records a call to transfer a canvas offscreen. True indicates a successful
    transfer, false for a failure.
  </summary>
</histogram>

<histogram name="Blink.OffscreenCanvas.Transferred" enum="Boolean">
  <owner>aaronhk@chromium.org</owner>
  <owner>fserb@chromium.org</owner>
  <summary>
    Records when an offscreen canvas has been transferred from the main thread
    to a worker.
  </summary>
</histogram>

<histogram name="Blink.Paint.CachedItemPercentage" units="%">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Percentage of cached display items among all display items. Higher value
    means higher performance beause of less paint invalidation. Recorded when we
    finish updating paint in the Blink document lifecycle if we have enough data
    to report.
  </summary>
</histogram>

<histogram name="Blink.Paint.CachedSubsequencePercentage" units="%">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Percentage of cached subsequences of display items among all subsequences.
    Higher value means higher performance beause of less subsequence
    invalidation. Recorded when we finish updating paint in the Blink document
    lifecycle if we have enough data to report.
  </summary>
</histogram>

<histogram name="Blink.Paint.IndexedItemPercentage" units="%">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Percentage of display items that are put into the index because of
    out-of-order display item matching. Higher value means lower performance
    beause of the cost of out-of-order matching and indexing. Recorded when we
    finish updating paint in the Blink document lifecycle if we have enough data
    to report.
  </summary>
</histogram>

<histogram name="Blink.Paint.UpdateTime" units="microseconds">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Time spent updating paint in the Blink document lifecycle.

    Note: As of M70, this histogram has stopped recording metrics on machines
    with low-resolution clocks.
  </summary>
</histogram>

<histogram name="Blink.PaintInvalidation.UpdateTime" units="microseconds">
  <obsolete>
    SlimmingPaintInvalidation is enabled by default, so this histogram is no
    longer being logged.
  </obsolete>
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Time spent updating paint invalidation in the Blink document lifecycle. Not
    available when SlimmingPaintInvalidation or SlimmingPaintV2 is enabled.
  </summary>
</histogram>

<histogram name="Blink.PrePaint.UpdateTime" units="microseconds">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Time spent updating paint properties and paint invalidation in the Blink
    document lifecycle. Available when SlimmingPaintInvalidation or
    SlimmingPaintV2 is enabled.

    Note: As of M70, this histogram has stopped recording metrics on machines
    with low-resolution clocks.
  </summary>
</histogram>

<histogram name="Blink.ResourceFetcher.StaleWhileRevalidate"
    enum="BooleanAttempted" expires_after="M77">
  <owner>dtapuska@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <summary>Count of resources attempted Stale Revalidation.</summary>
</histogram>

<histogram name="Blink.ResourceFetcher.StaleWhileRevalidateDuration" units="ms"
    expires_after="M77">
  <owner>dtapuska@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <summary>Duration of completed stale revalidation attempts.</summary>
</histogram>

<histogram base="true" name="Blink.ResourceLoadScheduler.DecodedBytes"
    units="bytes">
  <obsolete>
    Deprecated as of 8/2018.
  </obsolete>
<!-- Name completed by histogram_suffixes name="ResourceLoadScheduler.FrameType" -->

  <owner>toyoshim@chromium.org</owner>
  <summary>Count received data size in bytes for each resource.</summary>
</histogram>

<histogram name="Blink.ResourceLoadScheduler.DecodedBytes.KBPerFrameStatus"
    enum="RendererSchedulerFrameType2">
  <owner>toyoshim@chromium.org</owner>
  <owner>altimin@chromium.org</owner>
  <summary>
    Total decoded size of resources associated with frames of a particular type.
    Recorded when a fetch has been completed.

    Each bucket of the histogram cointains the total size of all requests
    associated with frames with a particular frame status in kilobytes.
  </summary>
</histogram>

<histogram base="true" name="Blink.ResourceLoadScheduler.PeakRequests"
    units="requests">
<!-- Name completed by histogram_suffixes name="ResourceLoadScheduler.FrameType" -->

  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The largest number of outstanding resource requests issued by a frame until
    the network 2-quiet (no more than 2 active network requests for 1 seconds).
  </summary>
</histogram>

<histogram name="Blink.ResourceLoadScheduler.RequestCount"
    enum="ResourceLoadSchedulerCircumstance">
  <owner>toyoshim@chromium.org</owner>
  <summary>
    Count resource request circumstance, e.g. from the main frame vs sub-frames,
    or in throttled state vs in not-throttled state, on each resource load
    completion.
  </summary>
</histogram>

<histogram name="Blink.ResourceLoadScheduler.ThrottlingStateChangeCount"
    units="changes">
  <owner>toyoshim@chromium.org</owner>
  <summary>
    Count how many times the scheduler has changed throttling status from the
    frame creation until network activity quiets.
  </summary>
</histogram>

<histogram base="true" name="Blink.ResourceLoadScheduler.TotalDecodedBytes"
    units="bytes">
<!-- Name completed by histogram_suffixes name="ResourceLoadScheduler.FrameType" -->

  <owner>toyoshim@chromium.org</owner>
  <summary>
    Total received data size in bytes to load resources from the frame creation
    until network activity quiets.
  </summary>
</histogram>

<histogram base="true" name="Blink.ResourceLoadScheduler.TotalRequestCount"
    units="requests">
<!-- Name completed by histogram_suffixes name="ResourceLoadScheduler.FrameType" -->

  <owner>toyoshim@chromium.org</owner>
  <summary>
    Total number of resource requests completed from the frame creation until
    network activity quiets.
  </summary>
</histogram>

<histogram base="true" name="Blink.ResourceLoadScheduler.TotalTrafficBytes"
    units="bytes">
<!-- Name completed by histogram_suffixes name="ResourceLoadScheduler.FrameType" -->

  <owner>toyoshim@chromium.org</owner>
  <summary>
    Total traffic data in bytes transferred over networks to load resources from
    the frame creation until network activity quiets.
  </summary>
</histogram>

<histogram base="true" name="Blink.ResourceLoadScheduler.TrafficBytes"
    units="bytes">
  <obsolete>
    Deprecated as of 8/2018.
  </obsolete>
<!-- Name completed by histogram_suffixes name="ResourceLoadScheduler.FrameType" -->

  <owner>toyoshim@chromium.org</owner>
  <summary>
    Count traffic data size in bytes transferred over networks to load each
    resource.
  </summary>
</histogram>

<histogram name="Blink.ResourceLoadScheduler.TrafficBytes.KBPerFrameStatus"
    enum="RendererSchedulerFrameType2">
  <owner>toyoshim@chromium.org</owner>
  <owner>altimin@chromium.org</owner>
  <summary>
    Total encoded size of resources associated with frames of a particular type.
    Recorded when a fetch has been completed.

    Each bucket of the histogram cointains the total size of all requests
    associated with frames with a particular frame status in kilobytes.
  </summary>
</histogram>

<histogram name="Blink.RestoredCachedStyleSheet"
    enum="RestoredCachedStyleSheet">
  <obsolete>
    Deprecated 01/2016 and replaced by Blink.RestoredCachedStyleSheet2
  </obsolete>
  <owner>kouhei@chromium.org</owner>
  <summary>
    On each link stylesheet tag resolve, record whether a Blink MemoryCached
    StyleSheetContents was reused.
  </summary>
</histogram>

<histogram name="Blink.RestoredCachedStyleSheet2" enum="StyleSheetCacheStatus">
  <obsolete>
    Deprecated 04/2017.
  </obsolete>
  <owner>kouhei@chromium.org</owner>
  <summary>
    On each link stylesheet tag resolve, record which cache Blink hit.
  </summary>
</histogram>

<histogram name="Blink.ScanPendingActivityDuration" units="ms">
  <owner>haraken@chromium.org</owner>
  <summary>
    Duration of time taken to scan pending activities of all V8 wrappers in a
    worker thread.
  </summary>
</histogram>

<histogram name="Blink.Script.SchedulingType" enum="ScriptSchedulingType"
    expires_after="2020-10-24">
  <owner>kouhei@chromium.org</owner>
  <owner>hiroshige@chromium.org</owner>
  <summary>
    Number of script elements for each scheduling type, recorded for each
    successful #prepare-a-script.
  </summary>
</histogram>

<histogram name="Blink.ScriptValueSerializer.DOMWrapperCount" units="objects">
  <obsolete>
    Used to justify distribution of serialized data in the wild, but unlikely to
    be useful to track long-term.
  </obsolete>
  <owner>platform-architecture-dev@chromium.org</owner>
  <summary>
    Number of DOM wrappers serialized as part of an object passed to
    postMessage, IndexedDB, or another API that serializes script values.
  </summary>
</histogram>

<histogram name="Blink.ScriptValueSerializer.JSObjectCount" units="objects">
  <obsolete>
    Used to justify distribution of serialized data in the wild, but unlikely to
    be useful to track long-term.
  </obsolete>
  <owner>platform-architecture-dev@chromium.org</owner>
  <summary>
    Number of JavaScript objects (other than DOM wrappers) serialized as part of
    an object passed to postMessage, IndexedDB, or another API that serializes
    script values.
  </summary>
</histogram>

<histogram name="Blink.ScriptValueSerializer.PrimitiveCount" units="values">
  <obsolete>
    Used to justify distribution of serialized data in the wild, but unlikely to
    be useful to track long-term.
  </obsolete>
  <owner>platform-architecture-dev@chromium.org</owner>
  <summary>
    Number of primitive values (numbers, strings, etc.) serialized as part of an
    object passed to postMessage, IndexedDB, or another API that serializes
    script values.
  </summary>
</histogram>

<histogram name="Blink.ScrollingCoordinator.UpdateTime" units="microseconds">
  <owner>pdr@chromium.org</owner>
  <summary>
    The time it took to update scrolling coordinator data (scroll gesture
    regions, touch event rects, and main thread scrolling reasons). These values
    are calculated during the main-thread blink lifecycle.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Blink.SharedBuffer.FailedLock" enum="ResourceType">
  <owner>hiroshige@chromium.org</owner>
  <summary>
    Number of failed SharedBuffer::lock() calls for each resource type.
    https://crbug.com/603791
  </summary>
</histogram>

<histogram name="Blink.SharedBuffer.SuccessfulLock" enum="ResourceType">
  <owner>hiroshige@chromium.org</owner>
  <summary>
    Number of successful SharedBuffer::lock() calls for each resource type.
    https://crbug.com/603791
  </summary>
</histogram>

<histogram name="Blink.SharedBuffer.Unlock" enum="ResourceType">
  <owner>hiroshige@chromium.org</owner>
  <summary>
    Number of SharedBuffer::unlock() calls for each resource type.
    https://crbug.com/603791
  </summary>
</histogram>

<histogram name="Blink.StyleAndLayout.UpdateTime" units="microseconds">
  <owner>layout-dev@chromium.org</owner>
  <summary>
    Time spent updating style and layout in the Blink document lifecycle.

    Note: As of M70, this histogram has stopped recording metrics on machines
    with low-resolution clocks.
  </summary>
</histogram>

<histogram name="Blink.UseCounter.AnimatedCSSProperties"
    enum="MappedCSSProperties" expires_after="never">
<!-- expires-never: used by Chrome Platform Status dashboard -->

<!-- https://www.chromestatus.com/metrics/css/animated -->

  <owner>loonybear@chromium.org</owner>
  <summary>
    Records usage of animated CSS properties used on a page, either statically
    or dynamically, from the time the page is initialised to when it is closed
    or navigated away from. Each property is counted at most once per page per
    view via PageLoadMetricsObserver.
  </summary>
  <details>
    This histogram counts CSS properties only when they are animated by a CSS
    Animation. Refer to Blink.UseCounter.CSSProperties for more details.

    As of M69, Blink.UseCounter.AnimatedCSSProperties is moved from the blink
    side to the browser side.
  </details>
</histogram>

<histogram
    name="Blink.UseCounter.AnimatedCSSProperties_TestBrowserProcessLogging"
    enum="MappedCSSProperties">
  <obsolete>
    Renamed to Blink.UseCounter.AnimatedCSSProperties in 03/2018, M69. The old
    blink UseCounter is flawed in OOPIF, so moved to the browser side instead.
  </obsolete>
  <owner>loonybear@chromium.org</owner>
  <summary>
    Records usage of animated CSS properties used across all frames in a page,
    either statically or dynamically, from the time the page is initialised to
    when it is closed or navigated away from. Each property is counted at most
    once per page view except kTotalPagesMeasuredCSSSampleId which represents a
    page load (enum value of 1) and is counted exactly once per page view.
  </summary>
</histogram>

<histogram name="Blink.UseCounter.CSSProperties" enum="MappedCSSProperties"
    expires_after="never">
<!-- expires-never: used by Chrome Platform Status dashboard -->

<!-- https://www.chromestatus.com/metrics/css/animated -->

  <owner>loonybear@chromium.org</owner>
  <summary>
    Records usage of CSS properties used on a page, either statically or
    dynamically, from the time the page is initialised to when it is closed or
    navigated away from. Each property is counted at most once per page per view
    via PageLoadMetricsObserver.
  </summary>
  <details>
    The first time a CSS property is parsed on a page, the histogram is updated
    to increment the counter. Each histogram bucket corresponds to a CSS
    property (eg. width, border-radius). The exception is the 'Total pages
    measured' bucket - this counts the number of pages that CSS properties were
    counted on. When a page navigation occurs the page count bucket is
    incremented and tracking of the set of which properties have been seen is
    reset.

    These numbers give the percentage of pages that use a CSS property. For
    example, if the 'border-radius' histogram bucket has a count of 250, and the
    page count bucket (i.e. bucket number 1) has a count of 1000 - this means
    that 1000 pages were recorded, and border-radius was used on 25% of those
    pages.

    Note that CSS properties used inside of SVG images are tracked separately in
    the Blink.UseCounter.SVGImage.CSSProperties histogram.

    As of M57 this histogram supercedes WebCore.FeatureObserver.CSSProperties.

    As of M69, Blink.UseCounter.AnimatedCSSProperties is moved from the blink
    side to the browser side.
  </details>
</histogram>

<histogram name="Blink.UseCounter.CSSProperties_TestBrowserProcessLogging"
    enum="MappedCSSProperties">
  <obsolete>
    Renamed to Blink.UseCounter.CSSProperties in 03/2018, M69. The old blink
    UseCounter is flawed in OOPIF, so moved to the browser side instead.
  </obsolete>
  <owner>loonybear@chromium.org</owner>
  <summary>
    Records usage of CSS properties used across all frames in a page, either
    statically or dynamically, from the time the page is initialised to when it
    is closed or navigated away from. Each property is counted at most once per
    page per view except kTotalPagesMeasuredCSSSampleId which represents a page
    load (enum value of 1) and is counted exactly once per page view.
  </summary>
</histogram>

<histogram name="Blink.UseCounter.Extensions.Features" enum="FeatureObserver">
  <owner>loonybear@chromium.org</owner>
  <summary>
    Count of how many page loads use various features for pages with a
    chrome-extension:// URL only. The PageVisits bucket is incremented for each
    page load, and the other buckets incremented at most once per PageVisit via
    the WebCore::UserCounter class.
  </summary>
  <details>
    Warning: This histogram represents pre-renderer metrics and so is flawed
    under OOPIF.
  </details>
</histogram>

<histogram name="Blink.UseCounter.FeaturePolicy.Allow"
    enum="FeaturePolicyFeature" expires_after="2019-10-31">
  <owner>iclelland@chromium.org</owner>
  <summary>
    Counts the use of a specific feature policy via the &quot;allow&quot;
    attribute. Each policy is counted only once per page load.
  </summary>
</histogram>

<histogram name="Blink.UseCounter.FeaturePolicy.Header"
    enum="FeaturePolicyFeature" expires_after="2019-10-31">
  <owner>iclelland@chromium.org</owner>
  <summary>
    Counts the use of a specific feature policy via the
    &quot;Feature-Policy&quot; HTTP response header.
  </summary>
</histogram>

<histogram name="Blink.UseCounter.FeaturePolicy.PotentialViolation"
    enum="FeaturePolicyFeature" expires_after="2019-12-15">
  <owner>ekaramad@chromium.org</owner>
  <summary>
    Tracks potential violations of feature policies in a document. This is
    emitted once all the conditions for violating the feature policy are met in
    the document; regardless of whether or not the feature has been disabled in
    the document; in other words, it still records a potential violation even if
    there won't be a violation report generated. Note that this is recorded once
    per document.
  </summary>
</histogram>

<histogram name="Blink.UseCounter.Features" enum="FeatureObserver"
    expires_after="never">
<!-- expires-never: used by Chrome Platform Status dashboard -->

<!-- https://www.chromestatus.com/metrics/css/animated -->

  <owner>loonybear@chromium.org</owner>
  <summary>
    Count of how many page loads use various features across all frames in a
    page. The PageVisits bucket is incremented for each page load, and the other
    buckets incremented at most once per PageVisit via blink::UseCounter and
    UseCounterPageLoadMetricsObserver.
  </summary>
  <details>
    Note that features used inside of SVG images are tracked separately in the
    Blink.UseCounter.SVGImage.Features histogram. Features used inside of
    extension pages are tracked separately in the
    Blink.UseCounter.Extensions.Features histogram.

    As of M67, Blink.UseCounter.Features is moved from the blink side to the
    browser side, the semantics have changed a little. The blink side histogram
    is renamed to &quot;Blink.UseCounter.Features_Legacy&quot;.
  </details>
</histogram>

<histogram name="Blink.UseCounter.Features_Legacy" enum="FeatureObserver">
  <owner>loonybear@chromium.org</owner>
  <summary>
    Count of how many page loads use various features. The PageVisits bucket is
    incremented for each page load, and the other buckets incremented at most
    once per PageVisit via the blink::UseCounter class.
  </summary>
  <details>
    As of M67 this has been replaced by browser-side UseCounter. This is the old
    blink-side counters which are flawed in OOPIF scenarios because they are
    pre-renderer-processes. This histogram will be removed.
  </details>
</histogram>

<histogram name="Blink.UseCounter.Features_TestBrowserProcessLogging"
    enum="FeatureObserver">
  <obsolete>
    Renamed to Blink.UseCounter.Features in 03/2018, M67. The old blink
    UseCounter is flawed in OOPIF, so moved to the browser side (this) instead.
  </obsolete>
  <owner>loonybear@chromium.org</owner>
  <summary>
    Count of how many page loads use various features across all frames in a
    page. The PageVisits bucket is incremented for each page load, and the other
    buckets incremented at most once per PageVisit via the WebCore::UseCounter
    class. This counter lives in browser process.
  </summary>
</histogram>

<histogram name="Blink.UseCounter.MainFrame.Features" enum="FeatureObserver">
  <owner>loonybear@chromium.org</owner>
  <summary>
    Count of how many page loads use various features across in the main frame
    of a page. The PageVisits bucket is incremented at the beginning of each
    page load and the other buckets incremented at most once per PageVisit via
    blink::UseCounter and UseCounterPageLoadMetricsObserver throughout the
    lifetime of a page load metrics observer.
  </summary>
  <details>
    This histogram counts usage of web features in main frame only. Refer to
    Blink.UseCounter.Features for more details.
  </details>
</histogram>

<histogram name="Blink.UseCounter.SVGImage.AnimatedCSSProperties"
    enum="MappedCSSProperties">
  <obsolete>
    Removed in 06/2018, M69 since the histogram is not really useful. See
    https://crbug.com/804645.
  </obsolete>
  <owner>loonybear@chromium.org</owner>
  <summary>
    Like Blink.UseCounter.AnimatedCSSProperties but specifically for the case of
    CSS properties used inside of an SVG image.
  </summary>
  <details>
    Warning: This histogram represents pre-renderer metrics and so is flawed
    under OOPIF.

    This histogram counts usage of animated CSS properties only. Refer to
    Blink.UseCounter.SVGImage.CSSProperties for details.
  </details>
</histogram>

<histogram name="Blink.UseCounter.SVGImage.CSSProperties"
    enum="MappedCSSProperties">
  <obsolete>
    Removed in 06/2018, M69 since the histogram is not really useful. See
    https://crbug.com/804645.
  </obsolete>
  <owner>loonybear@chromium.org</owner>
  <summary>
    Like Blink.UseCounter.CSSProperties but specifically for the case of CSS
    properties used inside of an SVG image.
  </summary>
  <details>
    Warning: This histogram represents pre-renderer metrics and so is flawed
    under OOPIF.

    The 'Total pages measured' bucket is incremented each time a new SVG image
    is created. Note that the same SVG image can be used across multiple tabs in
    a single renderer but this counts as a single usage. See
    http://crbug.com/236262.
  </details>
</histogram>

<histogram name="Blink.UseCounter.SVGImage.Features" enum="FeatureObserver">
  <owner>loonybear@chromium.org</owner>
  <summary>
    Like Blink.UseCounter.Features except specifically for the case of SVG
    Images.
  </summary>
  <details>
    Warning: This histogram represents pre-renderer metrics and so is flawed
    under OOPIF.

    Count of how many SVG images use various features. The PageVisits bucket is
    incremented each time a new SVG image is created. Note that the same SVG
    image can be used across multiple tabs in a single renderer but this counts
    as a single usage. See http://crbug.com/236262.
  </details>
</histogram>

<histogram name="Blink.VisibleBeforeLoaded.LazyLoadEligibleFrames.BelowTheFold"
    enum="NQEEffectiveConnectionType">
  <owner>sclittle@chromium.org</owner>
  <summary>
    Records the effective connection type whenever a lazyload-eligible (i.e.
    cross-origin and non-hidden) iframe that was initially below the fold
    becomes visible before it finishes loading.
  </summary>
</histogram>

<histogram name="Blink.VisibleBeforeLoaded.LazyLoadImages.AboveTheFold"
    enum="NQEEffectiveConnectionType">
  <owner>sclittle@chromium.org</owner>
  <owner>rajendrant@chromium.org</owner>
  <summary>
    Records the effective connection type whenever a lazily loaded image that
    was initially above the fold becomes visible before it finishes loading.
  </summary>
</histogram>

<histogram name="Blink.VisibleBeforeLoaded.LazyLoadImages.BelowTheFold"
    enum="NQEEffectiveConnectionType">
  <owner>sclittle@chromium.org</owner>
  <owner>rajendrant@chromium.org</owner>
  <summary>
    Records the effective connection type whenever a lazily loaded image that
    was initially below the fold becomes visible before it finishes loading.
  </summary>
</histogram>

<histogram name="Blink.VisibleLoadTime.LazyLoadEligibleFrames.AboveTheFold"
    units="ms">
  <owner>sclittle@chromium.org</owner>
  <summary>
    Milliseconds spent waiting for an above the fold iframe to load. Only fires
    for iframes that would be eligible for lazy loading, i.e. cross-origin and
    non-hidden.
  </summary>
</histogram>

<histogram name="Blink.VisibleLoadTime.LazyLoadEligibleFrames.BelowTheFold"
    units="ms">
  <owner>sclittle@chromium.org</owner>
  <summary>
    Milliseconds spent waiting for a below the fold iframe to load. Only fires
    for iframes that would be eligible for lazy loading, i.e. cross-origin and
    non-hidden.
  </summary>
</histogram>

<histogram base="true" name="Blink.VisibleLoadTime.LazyLoadImages.AboveTheFold"
    units="ms">
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Milliseconds spent waiting for an above the fold image element to load. 0ms
    is recorded if the image is already loaded by the time user scrolls to it.
    EffectiveConnectionType (2G, 3G, etc) is recorded as suffix to this
    histogram.
  </summary>
</histogram>

<histogram base="true" name="Blink.VisibleLoadTime.LazyLoadImages.BelowTheFold"
    units="ms">
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Milliseconds spent waiting for a below the fold image element to load. 0ms
    is recorded if the image is already loaded by the time user scrolls to it.
    EffectiveConnectionType (2G, 3G, etc) is recorded as suffix to this
    histogram.
  </summary>
</histogram>

<histogram name="Blink.WindowOpen.FromAdState" enum="WindowOpenFromAdState"
    expires_after="2019-08-30">
  <owner>yaoxia@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Indicates whether the page called window.open() with an ad script in the
    stack and/or from an ad subframe. Recorded whenever window.open() is called
    when AdTagging is enabled.
  </summary>
</histogram>

<histogram name="Blink.XHR.setRequestHeader.HeaderValueCategoryInRFC7230"
    enum="XMLHttpRequestHeaderValueCategoryInRFC7230">
  <obsolete>
    Deprecated 06/2017 in Issues 455099 and 681769 (M61).
  </obsolete>
  <owner>hiroshige@chromium.org</owner>
  <summary>
    The count of XMLHttpRequest.setRequestHeader() calls where header values are
    invalid/valid but affected by normalization/valid in RFC 7230.
    https://crbug.com/455099.
  </summary>
</histogram>

<histogram name="BlinkGC.AtomicPhaseMarking" units="ms">
  <owner>oilpan-reviews@chromium.org</owner>
  <summary>
    Duration of finishing marking the transitive closure of objects during the
    final Blink garbage collection pause. Recorded at the end of each garbage
    collection.
  </summary>
</histogram>

<histogram name="BlinkGC.CollectGarbage" units="ms">
  <obsolete>
    Deprecated 06/2018. The sample taken here was a mix of marking, sweeping and
    compaction. Replaced by BlinkGC.AtomicPhaseMarking for the marking phase and
    BlinkGC.TimeForTotalCollectGarbage for the overal time.
  </obsolete>
  <owner>haraken@chromium.org</owner>
  <summary>
    Duration of time taken to run Heap::collectGarbage(). Recorded at the end of
    each garbage collection.
  </summary>
</histogram>

<histogram name="BlinkGC.CollectionRate" units="%">
  <owner>haraken@chromium.org</owner>
  <summary>
    The percentage of objects that have been collected by a Blink GC. 0 is
    passed if there were no objects when a Blink GC started.
  </summary>
</histogram>

<histogram name="BlinkGC.CommittedSize" units="MB">
  <owner>haraken@chromium.org</owner>
  <summary>
    The committed memory size in Blink GC. The value is reported when we see the
    highest memory usage we've ever seen in the renderer process.
  </summary>
</histogram>

<histogram name="BlinkGC.CompleteSweep" units="ms">
  <owner>haraken@chromium.org</owner>
  <summary>Duration of time taken to run ThreadState::completeSweep().</summary>
</histogram>

<histogram name="BlinkGC.GCReason" enum="GCReason">
  <owner>haraken@chromium.org</owner>
  <summary>A type of Blink GC.</summary>
</histogram>

<histogram name="BlinkGC.LowMemoryPageNavigationGC.Reduction" units="MB">
  <owner>keishi@chromium.org</owner>
  <summary>
    Amount of memory reduced with the GC triggered on page navigation while the
    device is in a low memory state. Only implemented on low end Android devices
    at the moment. Memory usage is approximated by summing the memory usage of
    the following allocators: BlinkGC, PartitionAlloc, and V8 main thread
    isolate heap.
  </summary>
</histogram>

<histogram name="BlinkGC.ObjectSizeAfterGC" units="KB">
  <owner>haraken@chromium.org</owner>
  <summary>
    The size of allocated objects just after Blink GC is triggered.
  </summary>
</histogram>

<histogram name="BlinkGC.ObjectSizeBeforeGC" units="KB">
  <owner>haraken@chromium.org</owner>
  <summary>
    The size of allocated objects just before Blink GC is triggered.
  </summary>
</histogram>

<histogram name="BlinkGC.ObjectSizeFreedByHeapCompaction" units="KB">
  <owner>haraken@chromium.org</owner>
  <summary>
    The total size of objects freed by BlinkGC's heap compaction. This is
    recorded once following each compaction.
  </summary>
</histogram>

<histogram name="BlinkGC.PerformPendingSweep" units="ms">
  <obsolete>
    Removed at 2014 Jan.
  </obsolete>
  <owner>haraken@chromium.org</owner>
  <summary>
    Duration of time taken to run ThreadState::performPendingSweep().
  </summary>
</histogram>

<histogram name="BlinkGC.SlowIncrementalMarkingFinalize.AtomicPhaseMarking"
    units="ms">
  <owner>oilpan-reviews@chromium.org</owner>
  <summary>
    Duration of finishing marking the transitive closure of objects during the
    final Blink garbage collection pause. Only recorded when incremental marking
    finalization took at least 40ms.
  </summary>
</histogram>

<histogram name="BlinkGC.SlowIncrementalMarkingFinalize.EagerSweep" units="ms">
  <owner>oilpan-reviews@chromium.org</owner>
  <summary>
    Duration of time taken to run eager sweep finalizers finalizers. Only
    recorded when incremental marking finalization took at least 40ms.
  </summary>
</histogram>

<histogram
    name="BlinkGC.SlowIncrementalMarkingFinalize.IncrementalMarkingFinalize"
    units="ms">
  <owner>oilpan-reviews@chromium.org</owner>
  <summary>
    Duration of time for incremental marking finalization. Only recorded when
    incremental marking finalization took at least 40ms.
  </summary>
</histogram>

<histogram name="BlinkGC.SlowIncrementalMarkingFinalize.InvokePreFinalizers"
    units="ms">
  <owner>oilpan-reviews@chromium.org</owner>
  <summary>
    Duration of time taken to invoke pre finalizers. Only recorded when
    incremental marking finalization took at least 40ms.
  </summary>
</histogram>

<histogram name="BlinkGC.SlowIncrementalMarkingFinalize.MarkWeakProcessing"
    units="ms">
  <owner>oilpan-reviews@chromium.org</owner>
  <summary>
    Duration of time taken for weak processing. Only recorded when incremental
    marking finalization took at least 40ms.
  </summary>
</histogram>

<histogram
    name="BlinkGC.SlowIncrementalMarkingFinalize.VisitCrossThreadPersistents"
    units="ms">
  <owner>oilpan-reviews@chromium.org</owner>
  <summary>
    Duration of time taken to visit cross thread persistents. Only recorded when
    incremental marking finalization took at least 40ms.
  </summary>
</histogram>

<histogram name="BlinkGC.SlowIncrementalMarkingFinalize.VisitDOMWrappers"
    units="ms">
  <owner>oilpan-reviews@chromium.org</owner>
  <summary>
    Duration of time taken to visit DOM wrappers. Only recorded when incremental
    marking finalization took at least 40ms.
  </summary>
</histogram>

<histogram name="BlinkGC.TimeForCoalesce" units="ms">
  <owner>haraken@chromium.org</owner>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Duration of memory coalesce operation in the Blink GC. Reported once per
    coalesce operation.
  </summary>
</histogram>

<histogram name="BlinkGC.TimeForGCCycle" units="ms">
  <owner>oilpan-reviews@chromium.org</owner>
  <summary>
    Sum of all durations of individual phases within one Blink garbage
    collection. Reported once per garbage collection at the end.
  </summary>
</histogram>

<histogram name="BlinkGC.TimeForGlobalWeakProcessing" units="ms">
  <owner>haraken@chromium.org</owner>
  <summary>
    Duration of time taken to run global weak processing of Blink GC.
  </summary>
</histogram>

<histogram name="BlinkGC.TimeForHeapCompaction" units="ms">
  <owner>haraken@chromium.org</owner>
  <summary>
    Duration of wall time taken to run BlinkGC's heap compaction.
  </summary>
</histogram>

<histogram name="BlinkGC.TimeForInvokingPreFinalizers" units="ms">
  <owner>haraken@chromium.org</owner>
  <summary>
    Duration of time taken to run ThreadState::invokePreFinalizers().
  </summary>
</histogram>

<histogram name="BlinkGC.TimeForNestedInV8" units="ms">
  <owner>oilpan-reviews@chromium.org</owner>
  <summary>
    Duration of the time of Blink garbage collection spent nested in a V8
    garbage collection. Reported once per garbage collection at the end.
  </summary>
</histogram>

<histogram name="BlinkGC.TimeForStoppingThreads" units="ms">
  <obsolete>
    As of 02/2017, the code to stop Blink threads was removed.
  </obsolete>
  <owner>haraken@chromium.org</owner>
  <summary>
    Duration of time taken to stop all Blink threads before starting a GC.
  </summary>
</histogram>

<histogram name="BlinkGC.TimeForSweepingAllObjects" units="ms">
  <owner>haraken@chromium.org</owner>
  <summary>Accumulated time taken to sweep all objects.</summary>
</histogram>

<histogram name="BlinkGC.TimeForThreadLocalWeakProcessing" units="ms">
  <obsolete>
    As of 02/2017, the code for thread-local weak processing was removed.
  </obsolete>
  <owner>haraken@chromium.org</owner>
  <summary>Duration of time taken to run thread-local weak processing.</summary>
</histogram>

<histogram name="BlinkGC.TimeForTotalCollectGarbage" units="ms">
  <owner>haraken@chromium.org</owner>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Duration of total Blink garbage collection time when the garbage collector
    is invoked for finishing a garbage collection. This includes finishing up
    any already running garbage collection operation as well as potentially
    performing a follow-up collection synchronously. Recorded each time after
    invoking the Blink garbage collector.
  </summary>
</histogram>

<histogram name="BlinkGC.TotalAllocatedSpace" units="KB">
  <owner>haraken@chromium.org</owner>
  <summary>
    The total size of allocated space in OS when a Blink GC is triggered.
  </summary>
</histogram>

<histogram name="BlinkGC.TotalObjectSpace" units="KB">
  <owner>haraken@chromium.org</owner>
  <summary>
    The total size of object space in all threads when a Blink GC is triggered.
  </summary>
</histogram>

<histogram name="BloatedRenderer.HandlingInBrowser"
    enum="BloatedRendererHandlingInBrowser">
  <owner>ulan@chromium.org</owner>
  <summary>
    Records how a bloated renderer was handled in the browser process.
  </summary>
</histogram>

<histogram name="BloatedRenderer.HandlingInResourceCoordinator"
    enum="BloatedRendererHandlingInResourceCoordinator">
  <owner>ulan@chromium.org</owner>
  <summary>
    Records how a bloated renderer was handled in the resource coordinator
    service.
  </summary>
</histogram>

<histogram name="BloatedRenderer.V8.NearV8HeapLimitHandling"
    enum="NearV8HeapLimitHandling">
  <owner>ulan@chromium.org</owner>
  <summary>
    Records how a bloated V8 heap was handled in the renderer process. It is
    emitted the first time V8 heap reaches the heap limit and invokes the
    NearHeapLimitCallback. Subsequent invocations of the callback are ignored.
    Thus it is emitted once per renderer process run.
  </summary>
</histogram>

<histogram name="Bluetooth.Android.GATTConnection.Disconnected.Result"
    enum="AndroidGATTConnectionErrorCodes">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Disconnected GATT connection status codes. Used to better understand errors
    seen in Android.
  </summary>
</histogram>

<histogram name="Bluetooth.Android.GATTConnection.Failure.Result"
    enum="AndroidGATTConnectionErrorCodes">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Failed GATT connection error codes. Used to better understand errors seen in
    Android.
  </summary>
</histogram>

<histogram name="Bluetooth.Android.GATTConnection.Success.Result"
    enum="AndroidGATTConnectionErrorCodes">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Successful GATT connection result codes. Used to better understand Android
    results.
  </summary>
</histogram>

<histogram name="Bluetooth.Availability" enum="BluetoothAvailability"
    expires_after="2019-12-31">
  <owner>kenrb@chromium.org</owner>
  <owner>kpaulhamus@chromium.org</owner>
  <summary>
    Determines the availability and capabilities of the Bluetooth driver. This
    metric is logged on startup.
  </summary>
</histogram>

<histogram name="Bluetooth.ConnectedDeviceCount" units="devices">
  <owner>adlr@chromium.org</owner>
  <summary>
    Counts the number of simulataneously connected Bluetooth devices. Used to
    direct testing efforts, and by our UI team to determine appropriate UI
    sizes.
  </summary>
</histogram>

<histogram name="Bluetooth.DiscoverySession.Start.Outcome"
    enum="BluetoothDiscoveryOutcomes">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the outcome of calls to BluetoothAdapter::StartDiscoverySession.
    Used to prioritize efforts to fix failures of this function.
  </summary>
</histogram>

<histogram name="Bluetooth.DiscoverySession.Stop.Outcome"
    enum="BluetoothDiscoveryOutcomes">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the outcome of calls to BluetoothDiscoverySession::Stop. Used to
    prioritize efforts to fix failures of this function.
  </summary>
</histogram>

<histogram name="Bluetooth.GATTErrors" enum="BluetoothGATTErrors">
  <obsolete>
    As of 08/2015 this has been replaced by
    Bluetooth.Web.Characteristic.ReadValue and
    Bluetooth.Web.Characteristic.WriteValue.
  </obsolete>
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records how many times each GATT Error has occured. The results will be used
    to determine how common this errors are and if we need to provide better
    error messages to the users.
  </summary>
</histogram>

<histogram base="true" name="Bluetooth.MacOS.Errors"
    enum="MacOSBluetoothOperationsResult">
<!-- Name completed by histogram_suffixes name="WebBluetoothMacOSAPIs" -->

  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records how many times each macOS GATT error has occured. The results will
    be used to determine how commun this errors are and if we need to provide
    better error messages to the users.
  </summary>
</histogram>

<histogram name="Bluetooth.PairingMethod" enum="BluetoothPairingMethod">
  <owner>adlr@chromium.org</owner>
  <summary>
    Records the method used to pair each Bluetooth Device. Used to direct our
    testing efforts.
  </summary>
</histogram>

<histogram name="Bluetooth.PairingResult" enum="BluetoothPairingResult">
  <owner>adlr@chromium.org</owner>
  <summary>
    Records the result of pairing each Bluetooth Device. Used to understand
    whether we are having significant problems with Bluetooth pairing and seeing
    errors more commonly than we should.
  </summary>
</histogram>

<histogram name="Bluetooth.RequestDevice.Outcome"
    enum="WebBluetoothRequestDeviceOutcome">
  <obsolete>
    Deprecated 08/2015 and replaced by Bluetooth.Web.RequestDevice.Outcome.
  </obsolete>
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the result of a navigator.bluetooth.requestDevice() call. Used to
    understand what errors developers are getting so we can target efforts
    toward the most common ones. Multiple outcomes may result for a given
    RequestDevice, such as rescan multiple times and then select a device.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.Android" enum="AndroidGATTStatusResult">
<!-- Name completed by histogram_suffixes name="AndroidGATTEvents" -->

  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>'status' values returned by Android GATT event.</summary>
</histogram>

<histogram name="Bluetooth.Web.Blacklist.ParsedNonEmptyString"
    enum="BooleanSuccess">
  <obsolete>
    Deprecated as of 11/2016, replaced by
    Bluetooth.Web.Blocklist.ParsedNonEmptyString.
  </obsolete>
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the result of BluetoothBlacklist::Add parsing a non-empty string.
    These strings will be updated dynamically by a server, and this histogram
    provides feedback that parsing is functioning correctly on clients.

    False values are BAD, a blacklist is failing to be applied correctly.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.Blocklist.ParsedNonEmptyString"
    enum="BooleanSuccess">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the result of BluetoothBlocklist::Add parsing a non-empty string.
    These strings will be updated dynamically by a server, and this histogram
    provides feedback that parsing is functioning correctly on clients.

    False values are BAD, a blocklist is failing to be applied correctly.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.Characteristic.ReadValue.Outcome"
    enum="WebBluetoothGATTOperationOutcome">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the outcome of a call to characteristic.readValue(). Used to know
    what types of errors users are seeing. The results will be used to determine
    how common these errors are and if we need to provide better error messages
    to the users.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.Characteristic.StartNotifications.Outcome"
    enum="WebBluetoothGATTOperationOutcome">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the outcome of a call to characteristic.startNofications(). Used to
    know what types of errors users are seeing. The results will be used to
    determine how common these errors are and if we need to provide better error
    messages to the users.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.Characteristic.WriteValue.Outcome"
    enum="WebBluetoothGATTOperationOutcome">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the outcome of a call to characteristic.writeValue(). Used to know
    what types of errors users are seeing. The results will be used to determine
    how common these errors are and if we need to provide better error messages
    to the users.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.ChooserInteraction" enum="BooleanInvalid">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Counts how many times users interact with a regular chooser vs. an invalid
    chooser. (A chooser is invalid when it's event handler becomes null.)
  </summary>
</histogram>

<histogram name="Bluetooth.Web.ConnectGATT.Outcome"
    enum="WebBluetoothConnectGATTOutcome">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the result of a device.gatt.connect() call. Used to understand what
    errors developers are getting so we can target efforts toward the most
    common ones.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.ConnectGATT.TimeFailed" units="ms">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records how long it takes for a connection attempt to fail. Use to let
    developers know how to better wait for and handle connection errors.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.ConnectGATT.TimeSuccess" units="ms">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records how long it takes for a device to successfully connect. Use to let
    developers know how long it should take to connect to a BLE device.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.Descriptor.ReadValue.Outcome"
    enum="WebBluetoothGATTOperationOutcome">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the outcome of a call to descriptor.readValue(). Used to know what
    types of errors users are seeing. The results will be used to determine how
    common these errors are and if we need to provide better error messages to
    the users.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.Descriptor.WriteValue.Outcome"
    enum="WebBluetoothGATTOperationOutcome">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the outcome of a call to descriptor.writeValue(). Used to know what
    types of errors users are seeing. The results will be used to determine how
    common these errors are and if we need to provide better error messages to
    the users.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.FunctionCall.Count" enum="WebBluetoothFunction">
  <obsolete>
    Deprecated as of 3/2017. Replaced by using blink IDL annotation MeasureAs
    which appear in Blink.UseCounter.Features.
  </obsolete>
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Counts the number of times each call to a WebBluetooth function is done.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.GetCharacteristic.Characteristic"
    enum="GATTCharacteristicHash">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the UUIDs used when getting a characteristic. The recorded value is
    a 31-bit hash of the UUID. Used to know what types of characteristics to
    target when building libraries that use the Web Bluetooth API.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.GetCharacteristic.Outcome"
    enum="WebBluetoothGetCharacteristicOutcome">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the outcome of a call to getCharacteristic(). Used to understand
    what errors developers are getting so we can target efforts toward the most
    common ones.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.GetCharacteristics.Characteristic"
    enum="GATTCharacteristicHash">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the UUIDs used when getting characteristics. The recorded value is a
    31-bit hash of the UUID. Used to know what types of characteristics to
    target when building libraries that use the Web Bluetooth API.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.GetCharacteristics.Outcome"
    enum="WebBluetoothGetCharacteristicOutcome">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the outcome of a call to getCharacteristics(). Used to understand
    what errors developers are getting so we can target efforts toward the most
    common ones.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.GetDescriptor.Descriptor"
    enum="GATTDescriptorHash">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the UUIDs used when getting a descriptor. The recorded value is a
    31-bit hash of the UUID. Used to know what types of descriptors to target
    when building libraries that use the Web Bluetooth API.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.GetDescriptor.Outcome"
    enum="WebBluetoothGetDescriptorOutcome">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the outcome of a call to getDescriptor(). Used to understand what
    errors developers are getting so we can target efforts toward the most
    common ones.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.GetDescriptors.Descriptor"
    enum="GATTDescriptorHash">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the UUIDs used when getting descriptors. The recorded value is a
    31-bit hash of the UUID. Used to know what types of descriptors to target
    when building libraries that use the Web Bluetooth API.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.GetDescriptors.Outcome"
    enum="WebBluetoothGetDescriptorOutcome">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the outcome of a call to getDescriptors(). Used to understand what
    errors developers are getting so we can target efforts toward the most
    common ones.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.GetPrimaryService.Outcome"
    enum="WebBluetoothGetPrimaryServiceOutcome">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the result of a GATTServer.getPrimaryService() call. Used to
    understand what errors developers are getting so we can target efforts
    toward the most common ones.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.GetPrimaryService.Services"
    enum="GATTServiceHash">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records what GATT Services are used when connected. The record value is a
    31-bit hash of the Service UUID. This will help us know if we should build
    an API for specific services rather than a general Bluetooth API.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.GetPrimaryServices.Outcome"
    enum="WebBluetoothGetPrimaryServiceOutcome">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the result of a GATTServer.getPrimaryServices() call. Used to
    understand what errors developers are getting so we can target efforts
    toward the most common ones.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.GetPrimaryServices.Services"
    enum="GATTServiceHash">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records what GATT Services are used when connected. The record value is a
    31-bit hash of the Service UUID. This will help us know if we should build
    an API for specific services rather than a general Bluetooth API.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.RequestDevice.Filters.Count" units="filters">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records how many filters are used when scanning. These results will help us
    better understand the uses of the API and make changes according to
    developers' behavior.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.RequestDevice.Filters.Services"
    enum="GATTServiceHash">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records a 31-bit hash of the GATT Service UUIDs used when scanning. This
    will help us know if we should build an API for specific services rather
    than a general Bluetooth API.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.RequestDevice.FilterSize" units="services">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records how many services are used in a filter. These results will help us
    better understand the uses of the API and make changes according to
    developers' behavior.
  </summary>
</histogram>

<histogram
    name="Bluetooth.Web.RequestDevice.NumOfDevicesInChooserWhenNotAcceptingAllDevices"
    units="devices">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <owner>juncai@chromium.org</owner>
  <summary>
    In the case of not accepting all devices, records the number of devices that
    are in the chooser when a device is paired.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.RequestDevice.OptionalServices.Count"
    units="filters">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records how many optional services are used when scanning. These results
    will help us better understand the uses of the API and make changes
    according to developers' behavior.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.RequestDevice.OptionalServices.Services"
    enum="GATTServiceHash">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records what optional services are used. The recorded value is a 31-bit hash
    of the Service UUID. These results will help us better understand the uses
    of the API and make changes according to developers' behavior.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.RequestDevice.Options.AcceptAllDevices"
    enum="Boolean">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the value of 'acceptAllDevices' in RequestDeviceOptions. These
    results will help us better understand the uses of the API and make changes
    according to developers' behavior.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.RequestDevice.Outcome"
    enum="WebBluetoothRequestDeviceOutcome">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the result of a navigator.bluetooth.requestDevice() call. Used to
    understand what errors developers are getting so we can target efforts
    toward the most common ones.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.RequestDevice.RSSISignalStrength" units="dBm">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <owner>juncai@chromium.org</owner>
  <summary>
    Raw RSSI values provided to chooser, before processing them for display in
    the Web Bluetooth chooser.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.RequestDevice.RSSISignalStrengthLevel"
    enum="WebBluetoothRSSISignalStrengthLevel">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <owner>juncai@chromium.org</owner>
  <summary>
    Displayed RSSI levels, after processing and as displayed to users in the Web
    Bluetooth chooser.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.RequestDevice.ScanningDuration" units="ms">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <owner>juncai@chromium.org</owner>
  <summary>
    Records the duration scanning for devices is run, terminated by events such
    as the chooser being closed with a selected device, cancelled, or the scan
    duration timing out.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.RequestDevice.UnionOfServices.Count"
    units="services">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records how many services are used when scanning. This results will help us
    better understand the uses of the API and make changes according to
    developers' behavior.
  </summary>
</histogram>

<histogram name="Bluetooth.Web.RequestDevice.UnionOfServices.Services"
    enum="GATTServiceHash">
  <owner>odejesush@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records what services are used from either required or optional sets. The
    recorded value is a 31-bit hash of the Service UUID. These results will help
    us better understand the uses of the API and make changes according to
    developers' behavior.
  </summary>
</histogram>

<histogram name="BlueZ.AdapterLost" units="seconds">
  <owner>mcchou@chromium.org</owner>
  <summary>
    This is specific to Chrome OS. Records a duration of a Bluetooth adapter
    being lost. This helps us better understand the Bluetooth controller drop
    issue in the field.
  </summary>
</histogram>

<histogram name="BlueZ.ChipLost" units="seconds">
  <obsolete>
    Replaced 08/2018 by BlueZ.ChipLost2 for more suspend/resume filtering even
    when the Bluetooth adapter is turned off.
  </obsolete>
  <owner>sonnysasaka@chromium.org</owner>
  <summary>
    This is specific to Chrome OS. Records a duration of a Bluetooth adapter
    being lost caused by hardware disconnection. This helps us better understand
    the Bluetooth controller drop issue in the field.
  </summary>
</histogram>

<histogram name="BlueZ.ChipLost2" units="seconds">
  <owner>sonnysasaka@chromium.org</owner>
  <summary>
    This is specific to Chrome OS. Records a duration of a Bluetooth adapter
    being lost caused by hardware disconnection. This helps us better understand
    the Bluetooth controller drop issue in the field.
  </summary>
</histogram>

<histogram name="BlueZ.NumberOfExistingAdvertisements" units="advertisements">
  <owner>mcchou@chromium.org</owner>
  <summary>
    This is specific to Chrome OS. Records the number of existing advertisements
    when registering for a new advertisement. This helps us better understand
    the common amount of advertisments used and the registration failures due to
    the limited number of advertisement slots.
  </summary>
</histogram>

<histogram name="BlueZ.ReasonOfDisconnection" enum="BlueZReasonOfDisconnection">
  <owner>mcchou@chromium.org</owner>
  <summary>
    This is specific to Chrome OS. Records the reason of Bluetooth disconnection
    between the local device and the remote Bluetooth device. This helps us
    better understand the initiator of disconnection request.
  </summary>
</histogram>

<histogram name="BlueZ.ResultOfAdvertisementRegistration"
    enum="BlueZResultOfAdvertisementRegistration">
  <owner>mcchou@chromium.org</owner>
  <summary>
    This is specific to Chrome OS. Records the outcomes of advertisement
    registration. This helps us better understand the persentage of successful
    advertisements against failures and the causes of failures.
  </summary>
</histogram>

<histogram name="BlueZ.ResultOfConnection" enum="BlueZResultOfConnection">
  <owner>mcchou@chromium.org</owner>
  <summary>
    This is specific to Chrome OS. Records the outcomes of connection requests
    to remote devices. This helps us better understand the persentage of
    successful connections against failures and the causes of failures.
  </summary>
</histogram>

<histogram name="BlueZ.ResultOfPairing" enum="BlueZResultOfPairing">
  <owner>mcchou@chromium.org</owner>
  <summary>
    This is specific to Chrome OS. Records the outcomes of pairing with remote
    devices. This helps us better understand the persentage of successful
    pairing against failures and the causes of failures.
  </summary>
</histogram>

<histogram name="BlueZ.TimeLengthOfAdvertisement" units="seconds">
  <owner>mcchou@chromium.org</owner>
  <summary>
    This is specific to Chrome OS. Records the duration when the local device is
    performing Bluetooth advertisment and discoverable as a Bluetooth Low Energy
    device by other devices. This helps us better understand the amount of
    successful advertisment sessions and the duration.
  </summary>
</histogram>

<histogram name="BlueZ.TimeLengthOfDiscoverable" units="seconds">
  <owner>mcchou@chromium.org</owner>
  <summary>
    This is specific to Chrome OS. Records the duration when the local device is
    discoverable by other devices as a Bluetooth classic device. This helps us
    better understand the amount of requests to expose the local device as a
    Bluetooth classic device and the duration.
  </summary>
</histogram>

<histogram name="BlueZ.TimeLengthOfDiscovering" units="seconds">
  <owner>mcchou@chromium.org</owner>
  <summary>
    This is specific to Chrome OS. Records the duration for the local device to
    perform device discovery. This helps us better understand the amount of
    device discovery request and the duration for users to find the target
    device.
  </summary>
</histogram>

<histogram name="BlueZ.TimeLengthOfPairing" units="seconds">
  <owner>mcchou@chromium.org</owner>
  <summary>
    This is specific to Chrome OS. Records the duration taken to finish a
    successful pairing between the local device and a remote Bluetooth device.
    This helps us better understand the latency of completing Bluetooth pairing.
  </summary>
</histogram>

<histogram name="BlueZ.TimeLengthOfSetupConnection" units="seconds">
  <owner>mcchou@chromium.org</owner>
  <summary>
    This is specific to Chrome OS. Records the duration taken to finish a
    successful connection between the local device and a remote Bluetooth
    device. This helps us better understand the latency of connecting to a
    Bluetooth device.
  </summary>
</histogram>

<histogram name="BlueZ.TypeOfDiscovery" enum="BlueZTypeOfDiscovery">
  <owner>mcchou@chromium.org</owner>
  <summary>
    This is specific to Chrome OS. Records the types of device discovery
    performed by the local device. This helps us better understand the most
    common type of device discovery performed.
  </summary>
</histogram>

<histogram name="BlueZ.TypeOfFoundDevice" enum="BlueZTypeOfFoundDevice">
  <owner>mcchou@chromium.org</owner>
  <summary>
    This is specific to Chrome OS. Records the types of discovered devices in
    terms of Bluetooth classic, Bluetooth low energy and Dual-mode supports.
    This helps us better understand the persentage of Bluetooth devices in terms
    of type.
  </summary>
</histogram>

<histogram name="BookmarkManager.CommandExecuted" enum="BookmarkManagerCommand">
  <owner>calamity@chromium.org</owner>
  <summary>
    Logs when a user action triggers a command in the bookmark manager. Commands
    can be triggered by keyboard shortcuts, menu items or other buttons in the
    UI.
  </summary>
</histogram>

<histogram name="BookmarkManager.CommandExecutedFromKeyboard"
    enum="BookmarkManagerCommand">
  <owner>calamity@chromium.org</owner>
  <summary>
    Logs when a keyboard shortcut triggers a command in the bookmark manager.
  </summary>
</histogram>

<histogram name="BookmarkManager.CommandMenuOpened"
    enum="BookmarkManagerMenuSource">
  <owner>calamity@chromium.org</owner>
  <summary>
    Logs where the menu was opened from when a user action opens the command
    menu in the bookmark manager.
  </summary>
</histogram>

<histogram name="BookmarkManager.NumDragged" units="bookmarks">
  <owner>calamity@chromium.org</owner>
  <summary>
    Logs the number of bookmarks that were dragged simultaneously by a user.
  </summary>
</histogram>

<histogram name="BookmarkManager.ResultsRenderedTime" units="ms">
  <owner>calamity@chromium.org</owner>
  <summary>
    Records the time taken to load the bookmarks Web UI and render. This is
    roughly equivalent to 'time to first meaningful paint' for the bookmark
    manager.
  </summary>
</histogram>

<histogram name="Bookmarks.BookmarksInFolder" units="bookmarks">
  <owner>calamity@chromium.org</owner>
  <summary>
    Logs the number of bookmark items inside a folder every time a folder is
    opened inside the bookmark manager.
  </summary>
</histogram>

<histogram name="Bookmarks.Count.OnProfileLoad" units="bookmarks"
    expires_after="2019-03-24">
  <owner>supertri@chromium.org</owner>
  <owner>isherman@chromium.org</owner>
  <owner>aidanday@google.com</owner>
  <summary>
    The total number of bookmarks a user has saved. Recorded when a profile is
    opened - precisely, when bookmarks are loaded into storage from disk. The
    count includes all bookmarks both in the &quot;Bookmarks Bar&quot; and also
    under &quot;Other Bookmarks&quot;.
  </summary>
</histogram>

<histogram name="Bookmarks.EntryPoint" enum="BookmarksEntryPoint">
  <owner>ianwen@chromium.org</owner>
  <summary>How users add a new bookmark.</summary>
</histogram>

<histogram name="Bookmarks.FileSize" units="KB">
  <owner>mamir@chromium.org</owner>
  <summary>
    The size of the file used to persist bookmarks. It's recorded every time the
    file is loaded in memory.
  </summary>
</histogram>

<histogram name="Bookmarks.LaunchDepth">
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Logs the depth of the bookmark in the bookmark tree hierarchy every time a
    bookmark is launched. Depth indicates how many levels below a permanent
    bookmark folder the bookmark was found in (e.g. a bookmark immediately in
    the bookmark bar has depth 1).
  </summary>
</histogram>

<histogram name="Bookmarks.LaunchLocation" enum="BookmarkLaunchLocation">
  <owner>ianwen@chromium.org</owner>
  <summary>Logs a UI location from which a bookmark is launched.</summary>
</histogram>

<histogram name="Bookmarks.OnFaviconsChangedIconURL" enum="BooleanHit">
  <owner>pkotwicz@chromium.org</owner>
  <summary>
    Logs how frequently BookmarkModel::OnFaviconsChanged() is called with a
    non-empty |icon_url| to determine whether BookmarkNodes should be cached
    based on their favicon URLs (e.g. http://www.google.com/favicon.ico) in
    addition to their page URLs (e.g. http://www.google.com). OnFaviconChanged()
    is expected to be called less than 10 times per user per day with a
    non-empty |icon_url|.
  </summary>
</histogram>

<histogram name="Bookmarks.OpenAction" enum="BookmarksOpenAction">
  <obsolete>
    Deprecated as of 1/2016.
  </obsolete>
  <owner>kkimlabs@chromium.org</owner>
  <summary>
    Logs how user is opening a bookmark on Android. For example, user can long
    press and select &quot;Open in a new tab&quot; or &quot;Open in incognito
    tab&quot;.
  </summary>
</histogram>

<histogram name="Bookmarks.OpenBookmarkType" enum="BookmarkType">
  <owner>wychen@chromium.org</owner>
  <summary>
    Logs whether the bookmark entry is a user bookmark or a partner bookmark
    when it is opened.
  </summary>
</histogram>

<histogram name="BootTime.Total" units="ms">
  <obsolete>
    Replaced 08/2016 by BootTime.Total2 with larger range and more buckets.
  </obsolete>
  <owner>bccheng@chromium.org</owner>
  <owner>semenzato@chromium.org</owner>
  <summary>Time from power on to login panel ready (Chrome OS).</summary>
</histogram>

<histogram name="BootTime.Total2" units="ms">
  <owner>bccheng@chromium.org</owner>
  <owner>semenzato@chromium.org</owner>
  <summary>Time from power on to login panel ready (Chrome OS).</summary>
</histogram>

<histogram name="BrotliFilter.CompressionPercent" units="%">
  <owner>eustas@chromium.org</owner>
  <summary>Compressed/Decompressed size ratio.</summary>
</histogram>

<histogram name="BrotliFilter.ErrorCode" enum="BrotliFilterErrorCode">
  <owner>eustas@chromium.org</owner>
  <summary>More detailed failure reason.</summary>
</histogram>

<histogram name="BrotliFilter.GzipHeaderDetected" enum="BooleanPresent">
  <owner>eustas@chromium.org</owner>
  <summary>Indicates whether the gzip-like header was detected.</summary>
</histogram>

<histogram name="BrotliFilter.Status" enum="BrotliFilterDecodingStatus">
  <owner>eustas@chromium.org</owner>
  <summary>The final state of BrotliFilter.</summary>
</histogram>

<histogram name="BrotliFilter.UsedMemoryKB" units="KiB">
  <owner>eustas@chromium.org</owner>
  <summary>Maximal amount of memory allocated by decoder.</summary>
</histogram>

<histogram name="Browser.Responsiveness.JankyIntervalsPerThirtySeconds"
    units="janks">
<!-- Name completed by histogram_suffixes name="JankyIntervalsPerThirtySeconds" -->

  <owner>erikchen@chromium.org</owner>
  <owner>tdresser@chromium.org</owner>
  <summary>
    This metric is emitted every 30 seconds [when there is user activity]. Each
    30 second duration is divided into 100ms intervals. This metric counts the
    number of these intervals that were &quot;janky&quot;. See
    https://docs.google.com/document/d/1vDSGFvJblh7yJ3U3RVB_7qZLubyfTbQdQjuN1GoUNkc/edit
    for more details.

    On desktop platforms, this metric measures native events, as well as tasks
    posted to the UI and IO threads of the browser process. On Android, this
    metric only measures tasks posted to the UI and IO threads.
  </summary>
</histogram>

<histogram base="true" name="Browser.Tabs.InputEventToSelectionTime"
    units="microseconds" expires_after="2019-08-31">
<!-- Name completed by histogram_suffixes name="TabSwitchInputLatency" -->

  <owner>ejoe@google.com</owner>
  <owner>jonross@chromium.com</owner>
  <summary>
    The time between input event timestamp for tab switch and when the
    TabStripModel begins processing the switch.
  </summary>
</histogram>

<histogram name="Browser.Tabs.SelectionToVisibilityRequestTime"
    units="microseconds">
  <owner>sadrul@chromium.org</owner>
  <owner>sky@chromium.org</owner>
  <summary>
    The time it takes for the browser to request a tab to be visible. Note that
    this only measures the time from the browser deciding to make the tab
    visible (after a click, or keyboard-shortcut to switch tabs), until the tab
    is requested to become visible. The time it takes to actually make the tab
    visible and show on screen is measured in a separate metric, in
    RWH_TabSwitchPaintDuration.
  </summary>
</histogram>

<histogram name="BrowserActions.NumTabCreatedInBackground" units="tabNum">
  <owner>peconn@chromium.org</owner>
  <summary>
    The number of tabs currently opened when users tap &quot;Open in new Chrome
    tab&quot; from Browser Actions context menu. This includes the new tab
    created from the tap.
  </summary>
</histogram>

<histogram name="BrowserActions.SelectedOption" enum="BrowserActionsMenuOption">
  <owner>peconn@chromium.org</owner>
  <summary>
    The option that the user selected from a Browser Actions context menu.
  </summary>
</histogram>

<histogram name="BrowserDialogs.ExternalProtocol.HandleState"
    enum="HandleStateType">
  <owner>dominickn@chromium.org</owner>
  <owner>meacer@chromium.org</owner>
  <summary>
    Whether or not the user checked the option in the external protocol dialog
    to remember their choice of opening or not opening the specified app.
    Recorded each time the user interacts with the External Protocol Dialog,
    when making a decision.
  </summary>
</histogram>

<histogram name="BrowserDialogs.ExternalProtocol.RememberCheckbox"
    enum="BooleanChecked">
  <obsolete>
    Deprecated 09/2017. This histogram has been replaced with
    ExternalProtocol.HandleState.
  </obsolete>
  <owner>dominickn@chromium.org</owner>
  <summary>
    Whether or not the user checked the option in the external protocol dialog
    to remember their choice of opening or not opening the specified app.
    Recorded each time the user interacts with the External Protocol Dialog
    (either accepting or cancelling/dismissing).
  </summary>
</histogram>

<histogram name="BrowserRenderProcessHost.ChildCrashes" enum="RendererType">
  <owner>wfh@chromium.org</owner>
  <summary>Count of renderer process crashes grouped by type.</summary>
</histogram>

<histogram name="BrowserRenderProcessHost.ChildKills" enum="RendererType">
  <owner>wfh@chromium.org</owner>
  <summary>Count of renderer process kills grouped by type.</summary>
</histogram>

<histogram name="BrowserRenderProcessHost.ChildKills.OOM" enum="RendererType">
  <owner>oshima@chromium.org</owner>
  <summary>
    Out of BrowserRenderProcessHost.ChildKills, numer of kills due to SIGKILL,
    which is a strong signal of out of memory on Chrome OS, grouped by renderer
    type.
  </summary>
</histogram>

<histogram name="BrowserRenderProcessHost.ChildLaunchFailureCodes"
    enum="LaunchErrorCodes">
  <owner>wfh@chromium.org</owner>
  <summary>
    The launch error codes for failed renderer process launches.
  </summary>
</histogram>

<histogram name="BrowserRenderProcessHost.ChildLaunchFailures"
    enum="RendererType">
  <owner>wfh@chromium.org</owner>
  <summary>Count of renderer process launch failures grouped by type.</summary>
</histogram>

<histogram name="BrowserRenderProcessHost.DisconnectedAlive"
    enum="RendererType">
  <owner>wfh@chromium.org</owner>
  <summary>
    Count of renderer process crashes that we miscounted because we took the
    exit code too early. Grouped by type.
  </summary>
</histogram>

<histogram name="BrowserRenderProcessHost.InvisibleMediaStreamFrameDepth"
    units="frame_depth" expires_after="M72">
  <owner>boliu@chromium.org</owner>
  <owner>alexmos@chromium.org</owner>
  <summary>
    Recorded at most once per renderer process when it first becomes invisible
    and has media stream. Record the frame depth of the process. Note this
    metric is only meaningful when some form of OOPIF is enabled; otherwise
    frame depth is always 0.
  </summary>
</histogram>

<histogram name="BrowserRenderProcessHost.KeepAliveDuration" units="ms">
  <owner>horo@chromium.org</owner>
  <summary>
    How long a render process is kept alive by additional customers such as
    shared workers and service workers.
  </summary>
</histogram>

<histogram name="BrowserRenderProcessHost.KeepAliveDuration.Fetch" units="ms">
  <owner>panicker@chromium.org</owner>
  <summary>
    How long fetch is alive which in turn keeps the render process alive.
    TODO(panicker): Remove after investigation of crbug/823482, likely in M68.
  </summary>
</histogram>

<histogram name="BrowserRenderProcessHost.KeepAliveDuration.ServiceWorker"
    units="ms">
  <owner>panicker@chromium.org</owner>
  <summary>
    How long service worker is alive which in turn keeps the render process
    alive. TODO(panicker): Remove after investigation of crbug/823482, likely in
    M68.
  </summary>
</histogram>

<histogram name="BrowserRenderProcessHost.KeepAliveDuration.SharedWorker"
    units="ms">
  <owner>panicker@chromium.org</owner>
  <summary>
    How long shared worker is alive which in turn keeps the render process
    alive. TODO(panicker): Remove after investigation of crbug/823482, likely in
    M68.
  </summary>
</histogram>

<histogram name="BrowserRenderProcessHost.KeepAliveDuration.Unload" units="ms">
  <owner>alexmos@chromium.org</owner>
  <owner>panicker@chromium.org</owner>
  <summary>
    How long the renderer process is kept alive by a subframe unload handler.
    TODO(panicker): Remove after investigation of crbug/823482.
  </summary>
</histogram>

<histogram name="BrowserRenderProcessHost.OnChannelError" enum="BooleanHit">
  <owner>wfh@chromium.org</owner>
  <summary>
    Number of times BrowserRenderProcessHost::OnChannelError was called.
  </summary>
</histogram>

<histogram name="BrowserRenderProcessHost.SpareProcessMaybeTakeAction"
    enum="SpareProcessMaybeTakeAction">
  <owner>alexmos@chromium.org</owner>
  <owner>lukasza@chromium.org</owner>
  <summary>
    Records what happens when an attempt is made to use a spare
    RenderProcessHost - logs that either the attempt succeeded or why it failed.
  </summary>
</histogram>

<histogram name="BrowserServices.ClientAppDataLoad" units="ms"
    expires_after="M78">
  <owner>peconn@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Triggered when any Android app is uninstalled or has its data cleared. This
    measures how long it takes to read data from Preferences to determine
    whether we need to act.
  </summary>
</histogram>

<histogram name="BrowserServices.ServiceTabResolveInfoQuery" units="ms"
    expires_after="M78">
  <owner>peconn@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Triggered when an Android background service attempts to create a Tab. We
    time how long the Android package manager queryIntentActivities call takes.
  </summary>
</histogram>

<histogram name="BrowserServices.TwaOpenTime" units="ms" expires_after="M78">
  <owner>peconn@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Triggered when a TrustedWebActivity is paused, recording the time since it
    had been resumed.
  </summary>
</histogram>

<histogram name="BrowserServices.VerificationResult"
    enum="BrowserServicesVerificationResult">
  <owner>peconn@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    The result of Digital Asset Link verification performed when starting a
    Trusted Web Activity.
  </summary>
</histogram>

<histogram name="BrowserSwitcher.CacheFile.MkDirSuccess" enum="BooleanSuccess">
  <owner>nicolaso@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    Records whether the &quot;AppData/Local/Google/BrowserSwitcher&quot;
    directory was successfully created. Windows only.
  </summary>
</histogram>

<histogram name="BrowserSwitcher.CacheFile.MkTempSuccess" enum="BooleanSuccess">
  <owner>nicolaso@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    Records whether a temp file in
    &quot;AppData/Local/Google/BrowserSwitcher&quot; the directory was
    successfully created. Windows only.
  </summary>
</histogram>

<histogram name="BrowserSwitcher.CacheFile.MoveSuccess" enum="BooleanSuccess">
  <owner>nicolaso@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    Records whether the temp file in
    &quot;AppData/Local/Google/BrowserSwitcher&quot; directory was successfully
    moved to its final destination (&quot;cache.dat&quot;) after writing its
    contents. Windows only.
  </summary>
</histogram>

<histogram name="BrowserSwitcher.Decision" enum="BooleanBrowserSwitch">
  <owner>nicolaso@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    On navigation and redirect, whether to switch browsers or not. Only measured
    when Legacy Browser Support is enabled via the BrowserSwitcher* policies.
    When this is true, Chrome attempts to launch an alternative browser
    (typically IE) with the navigation URL. Desktop Chrome only.
  </summary>
</histogram>

<histogram name="BrowserSwitcher.ExternalSitelistSize" units="rules">
  <owner>nicolaso@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    Number of rules that come from an external sitelist XML file. Measured when
    the sitelist is loaded during browser startup. Desktop Chrome only.
  </summary>
</histogram>

<histogram name="BrowserSwitcher.GreylistSize" units="rules">
  <owner>nicolaso@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    Number of rules in the BrowserSwitcherUrlGreylist policy. Measured when the
    policy is loaded. Desktop Chrome only.
  </summary>
</histogram>

<histogram name="BrowserSwitcher.GreylistWildcard" enum="BooleanPresent">
  <owner>nicolaso@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    Whether there is a wildcard (&quot;*&quot;) rule in the
    BrowserSwitcherUrlGreylist policy. Measured when the
    BrowserSwitcherUrlGreylist policy gets updated. Desktop Chrome only.
  </summary>
</histogram>

<histogram name="BrowserSwitcher.IeemSitelistSize" units="rules">
  <owner>nicolaso@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    Number of rules that come from Internet Explorer Enterprise Mode's sitelist.
    Measured when the sitelist is loaded during browser startup. Windows only.
  </summary>
</histogram>

<histogram name="BrowserSwitcher.LaunchSuccess" enum="BooleanSuccess">
  <owner>nicolaso@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    Records whether an attempt to launch an alternate browser failed or
    succeeded. Desktop Chrome only.
  </summary>
</histogram>

<histogram name="BrowserSwitcher.UrlListSize" units="rules">
  <owner>nicolaso@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    Number of rules in the BrowserSwitcherUrlList policy. Measured when the
    policy gets updated. Desktop Chrome only.
  </summary>
</histogram>

<histogram name="BrowserSwitcher.UrlListWildcard" enum="BooleanPresent">
  <owner>nicolaso@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    Whether there is a wildcard (&quot;*&quot;) rule in the
    BrowserSwitcherUrlList policy. Measured when the BrowserSwitcherUrlList
    policy gets updated. Desktop Chrome only.
  </summary>
</histogram>

<histogram name="BrowserWindow.Resize.Duration" units="ms">
  <owner>sadrul@chromium.org</owner>
  <owner>mustash-team@google.com</owner>
  <summary>
    Duration of an interactive resize from start to end. Measured only on
    Windows.
  </summary>
</histogram>

<histogram name="BrowserWindow.Resize.StepBoundsChange" units="pixels">
  <owner>sadrul@chromium.org</owner>
  <summary>
    Size changed between two consecutive steps during browser-window resize.
    Measured only on Windows.
  </summary>
</histogram>

<histogram name="BrowserWindow.Resize.StepCount" units="steps">
  <owner>sadrul@chromium.org</owner>
  <summary>
    Number of intermediate resize-steps taken to complete the resize from start
    to end. Measured only on Windows.
  </summary>
</histogram>

<histogram name="BrowserWindow.Resize.StepInterval" units="ms">
  <owner>sadrul@chromium.org</owner>
  <summary>
    Time-interval between two consecutive steps during browser-window resize. An
    interactive resize can have many number of small steps. This measures the
    interval between two steps. 'Duration' measures the interval between the
    first and last steps. Measured only on Windows.
  </summary>
</histogram>

<histogram name="Bubbles.Close.Accepted" enum="BubbleType">
  <owner>hcarmona@chromium.org</owner>
  <summary>An open bubble was closed because the user accepted it.</summary>
</histogram>

<histogram name="Bubbles.Close.Canceled" enum="BubbleType">
  <owner>hcarmona@chromium.org</owner>
  <summary>
    An open bubble was closed because the user didn't accept it.
  </summary>
</histogram>

<histogram name="Bubbles.Close.FocusLost" enum="BubbleType">
  <owner>hcarmona@chromium.org</owner>
  <summary>An open bubble was closed because of a focus change.</summary>
</histogram>

<histogram name="Bubbles.Close.Forced" enum="BubbleType">
  <owner>hcarmona@chromium.org</owner>
  <summary>An open bubble was forced to close.</summary>
</histogram>

<histogram name="Bubbles.Close.FrameDestroyed" enum="BubbleType">
  <owner>hcarmona@chromium.org</owner>
  <summary>An open bubble was dismissed because a frame was destroyed.</summary>
</histogram>

<histogram name="Bubbles.Close.FullscreenToggled" enum="BubbleType">
  <owner>hcarmona@chromium.org</owner>
  <summary>
    An open bubble was dismissed because fullscreen was toggled.
  </summary>
</histogram>

<histogram name="Bubbles.Close.Navigated" enum="BubbleType">
  <owner>hcarmona@chromium.org</owner>
  <summary>
    An open bubble was dismissed because the page was navigated.
  </summary>
</histogram>

<histogram name="Bubbles.Close.TabDetached" enum="BubbleType">
  <owner>hcarmona@chromium.org</owner>
  <summary>An open bubble was closed because a tab was detached.</summary>
</histogram>

<histogram name="Bubbles.Close.TabSwitched" enum="BubbleType">
  <owner>hcarmona@chromium.org</owner>
  <summary>An open bubble was closed because a tab was switched.</summary>
</histogram>

<histogram name="Bubbles.Close.UserDismissed" enum="BubbleType">
  <owner>hcarmona@chromium.org</owner>
  <summary>
    An open bubble was dismissed by the user without making a decission.
  </summary>
</histogram>

<histogram name="Bubbles.DisplayTime.All" units="ms">
  <owner>hcarmona@chromium.org</owner>
  <summary>
    Log the amount of time any bubble was visible. Only bubbles that are shown
    will have a visible time.
  </summary>
</histogram>

<histogram name="Bubbles.NeverShown" enum="BubbleType">
  <owner>hcarmona@chromium.org</owner>
  <summary>A bubble was given to the bubble manager but not shown.</summary>
</histogram>

<histogram name="CachedImageFetcher.Events" enum="CachedImageFetcherEvent"
    expires_after="2019-12-01">
  <owner>fgorski@chromium.org</owner>
  <owner>wylieb@chromium.org</owner>
  <summary>
    Events that track the lifecycle and performance of the cached_image_fetcher.
    The events reported include: success/failure conditions, various recoverable
    errors and a couple of dead-end errors.
  </summary>
</histogram>

<histogram name="CachedImageFetcher.ImageLoadFromCacheTime" units="ms"
    expires_after="2019-12-01">
  <owner>fgorski@chromium.org</owner>
  <owner>wylieb@chromium.org</owner>
  <summary>
    The time it takes for cached_image_fetcher to load an image from the cache
    in native.
  </summary>
</histogram>

<histogram name="CachedImageFetcher.ImageLoadFromCacheTimeJava" units="ms"
    expires_after="2019-12-01">
  <owner>fgorski@chromium.org</owner>
  <owner>wylieb@chromium.org</owner>
  <summary>
    The time it takes for cached_image_fetcher to load an image from the cache
    in Java.
  </summary>
</histogram>

<histogram name="CachedImageFetcher.ImageLoadFromNativeTimeJava" units="ms"
    expires_after="2019-12-01">
  <owner>fgorski@chromium.org</owner>
  <owner>wylieb@chromium.org</owner>
  <summary>
    The time it takes for cached_image_fetcher to load an image from native
    code. Only recorded on successful loads.
  </summary>
</histogram>

<histogram name="CachedImageFetcher.ImageLoadFromNetworkAfterCacheHit"
    units="ms" expires_after="2019-12-01">
  <owner>fgorski@chromium.org</owner>
  <owner>wylieb@chromium.org</owner>
  <summary>
    The time it takes for cached_image_fetcher to load an image from the network
    after a cache hit.
  </summary>
</histogram>

<histogram name="CachedImageFetcher.ImageLoadFromNetworkTime" units="ms"
    expires_after="2019-12-01">
  <owner>fgorski@chromium.org</owner>
  <owner>wylieb@chromium.org</owner>
  <summary>
    The time it takes for cached_image_fetcher to load an image from the
    network.
  </summary>
</histogram>

<histogram name="CachedImageFetcher.TimeSinceLastCacheLRUEviction" units="ms"
    expires_after="2019-12-01">
  <owner>fgorski@chromium.org</owner>
  <owner>wylieb@chromium.org</owner>
  <summary>
    The time since the last LRU eviction from the image cache. Recorded when two
    LRU evictions occur within closure proximity to one another. Will be used to
    determine if LRU eviction is happening too frequently.
  </summary>
</histogram>

<histogram name="Canvas.ContextType" enum="CanvasContextType">
  <obsolete>
    Replaced with Blink.Canvas.ContextType in 10/2018.
  </obsolete>
  <owner>junov@chromium.org</owner>
  <owner>kbr@chromium.org</owner>
  <summary>
    Records the context type names used to create canvas rendering contexts.
  </summary>
</histogram>

<histogram name="Canvas.CreateImageBitmapSource"
    enum="CanvasCreateImageBitmapSource">
  <obsolete>
    Replaced with Blink.Canvas.CreateImageBitmapSource in 10/2018.
  </obsolete>
  <owner>junov@chromium.org</owner>
  <owner>zakerinasab@chromium.org</owner>
  <summary>
    The source from which an ImageBitmap is created by a createImageBitmap call.
  </summary>
</histogram>

<histogram name="Canvas.DisplayListFallbackReason"
    enum="CanvasDisplayListFallbackReason">
  <obsolete>
    Deprecated 11/2017 with removal of Display List Canvas 2D mode.
  </obsolete>
  <owner>junov@chromium.org</owner>
  <summary>
    The reasons why a canvas initially set to display list mode had to fall back
    to direct rasterization mode.
  </summary>
</histogram>

<histogram name="Canvas.GPUAccelerated2DCanvasDisableDeferralReason"
    enum="CanvasGPUAccelerated2DCanvasDisableDeferralReason">
  <obsolete>
    Replaced with Blink.Canvas.GPUAccelerated2DCanvasDisableDeferralReason in
    10/2018.
  </obsolete>
  <owner>junov@chromium.org</owner>
  <summary>
    The reasons why a GPU accelerated canvas stopped deferring its rendering
    operations.
  </summary>
</histogram>

<histogram name="Canvas.HibernationEvents" enum="CanvasHibernationEvent">
  <obsolete>
    Replaced with Blink.Canvas.HibernationEvents in 10/2018.
  </obsolete>
  <owner>junov@chromium.org</owner>
  <summary>
    Records the occurrence of events related to 2D canvas GPU resource
    hibernation.
  </summary>
</histogram>

<histogram name="Canvas.Offscreen.CommitType" enum="OffscreenCanvasCommitType">
  <obsolete>
    Deprecated 10/2018 with Blink.OffscreenCanvas histograms
  </obsolete>
  <owner>xidachen@chromium.org</owner>
  <owner>junov@chromium.org</owner>
  <summary>
    The type of code path that OffscreenCanvas's commit API goes through.
  </summary>
</histogram>

<histogram name="Canvas.RequestedImageMimeTypes" enum="RequestedImageMimeType">
  <obsolete>
    Replaced with Blink.Canvas.RequestedImageMimeTypes in 10/2018.
  </obsolete>
  <owner>xlai@chromium.org</owner>
  <summary>
    Records the occurence of image file formats passed into toDataURL and toBlob
    functions in canvas.
  </summary>
</histogram>

<histogram name="CAPSUpdater.Step" enum="CAPSUpdaterStep">
  <obsolete>
    Deprecated 08/2016 with removal of Chrome Crash Service component.
  </obsolete>
  <owner>scottmg@chromium.org</owner>
  <summary>
    Tracks the component updater steps for the Chrome Crash Service.
  </summary>
</histogram>

<histogram name="CaptivePortal.DetectionResultSincePortal"
    enum="BooleanPresent">
  <owner>warx@chromium.org</owner>
  <summary>
    Within one minute of the default network reporting a portal network, if we
    see an offline detection result, it is likely the client got blacklisted.
    Record the boolean rate that Chrome observes offline vs non-offline
    detection results. See go/bad-portal for client blacklisting problem.
  </summary>
</histogram>

<histogram name="CaptivePortal.DetectResult" enum="CaptivePortalDetectResult">
  <owner>meacer@chromium.org</owner>
  <summary>Records the result of a captive portal probe.</summary>
</histogram>

<histogram name="CaptivePortal.Notification.Status"
    enum="CaptivePortalNotificationStatus">
  <owner>alemate@chromium.org</owner>
  <summary>
    Count of displayed and not displayed due to errors notifications about
    captive portal.
  </summary>
</histogram>

<histogram name="CaptivePortal.Notification.UserAction"
    enum="CaptivePortalNotificationUserAction">
  <owner>alemate@chromium.org</owner>
  <summary>
    Count of clicked, closed and ignored captive portal notifications.
  </summary>
</histogram>

<histogram name="CaptivePortal.OOBE.DetectionDuration" units="ms">
  <owner>alemate@chromium.org</owner>
  <summary>
    Duration of the captive portal detection process for a particular network at
    OOBE. Detection duration is recorded each time portal detection is completed
    for an active network.
  </summary>
</histogram>

<histogram name="CaptivePortal.OOBE.DetectionResult" enum="CaptivePortalStatus">
  <owner>alemate@chromium.org</owner>
  <summary>
    The result of captive portal detection attempts performed at OOBE. Detection
    result is recorded when portal detection is completed for an active network
    and when it differs from the previous result for the same network.
  </summary>
</histogram>

<histogram name="CaptivePortal.OOBE.DiscrepancyWithShill"
    enum="CaptivePortalStatus">
  <owner>alemate@chromium.org</owner>
  <summary>
    The result of captive portal detection attempts at OOBE if it diverges from
    network manager results. Detection result is recorded each time portal
    detection is completed for an active network.
  </summary>
</histogram>

<histogram name="CaptivePortal.OOBE.PortalToOnlineTransition" units="ms">
  <owner>alemate@chromium.org</owner>
  <summary>
    Number of milliseconds passed between consecutive reports for the same
    network about portal and online states.
  </summary>
</histogram>

<histogram name="CaptivePortal.RedirectTime" units="ms">
  <owner>alemate@chromium.org</owner>
  <summary>
    Number of milliseconds between start of request to gstatic.com/generate_204
    and receipt of response with redirect to captive portal login page.
  </summary>
</histogram>

<histogram name="CaptivePortal.Session.DetectionDuration" units="ms">
  <owner>alemate@chromium.org</owner>
  <summary>
    Duration of the captive portal detection process for a particular network in
    user session. Detection duration is recorded each time portal detection is
    completed for an active network.
  </summary>
</histogram>

<histogram name="CaptivePortal.Session.DetectionResult"
    enum="CaptivePortalStatus">
  <owner>alemate@chromium.org</owner>
  <summary>
    The result of captive portal detection attempts performed in user session.
    Detection result is recorded when portal detection is completed for an
    active network and when it differs from the previous result for the same
    network.
  </summary>
</histogram>

<histogram name="CaptivePortal.Session.DiscrepancyWithShill"
    enum="CaptivePortalStatus">
  <owner>alemate@chromium.org</owner>
  <summary>
    The result of captive portal detection attempts in session if it diverges
    from network manager results. Detection result is recorded each time portal
    detection is completed for an active network.
  </summary>
</histogram>

<histogram name="CaptivePortal.Session.PortalToOnlineTransition" units="ms">
  <owner>alemate@chromium.org</owner>
  <summary>
    Number of milliseconds passed between consecutive reports for the same
    network about portal and online states.
  </summary>
</histogram>

<histogram name="CaptivePortal.Session.SecureConnectionFailed"
    enum="CaptivePortalStatus">
  <owner>michaeldo@chromium.org</owner>
  <summary>
    The result of captive portal detection attempts performed in user session.
    Detection result is recorded when portal detection is completed for a failed
    secure connection.
  </summary>
</histogram>

<histogram name="CaptivePortal.Session.TimeoutDetectionResult"
    enum="CaptivePortalStatus">
  <owner>michaeldo@chromium.org</owner>
  <summary>
    The result of captive portal detection attempts performed in user session.
    Detection result is recorded when portal detection is completed for a
    request which timed out or hadn't yet replied within eight seconds.
  </summary>
</histogram>

<histogram name="Cast.Channel.Certificate" enum="CastCertificateStatus">
  <owner>ryanchung@google.com</owner>
  <summary>
    Records the result of the Cast certificate verification on the Cast sender.
  </summary>
</histogram>

<histogram name="Cast.Channel.Nonce" enum="CastNonceStatus">
  <owner>ryanchung@google.com</owner>
  <summary>
    Records whether the correct nonce challenge was in the Cast receiver's
    response.
  </summary>
</histogram>

<histogram name="Cast.Channel.Signature" enum="CastSignatureStatus">
  <owner>ryanchung@google.com</owner>
  <summary>
    Records whether the signature returned by the Cast receiver is verifiable
    with the challenge and device certificate.
  </summary>
</histogram>

<histogram name="Cast.Network.Down.Duration.In.Seconds" units="seconds">
  <owner>cast-analytics@google.com</owner>
  <summary>
    Records the time the network has been down on a Cast device. Recorded when
    network goes up.
  </summary>
</histogram>

<histogram name="Cast.Network.Up.Duration.In.Minutes" units="minutes">
  <owner>cast-analytics@google.com</owner>
  <summary>
    Records the time the network has been up on a Cast device. Recorded when
    network goes down.
  </summary>
</histogram>

<histogram name="Cast.Sender.CastButtonShown" enum="BooleanEnabled">
  <owner>mfoltz@chromium.org</owner>
  <summary>
    Records the number of times the cast button was shown to the user. The value
    will be true if the button is enabled, and false if the button is disabled.
    Note that depending on the current UX, it's possible that we hide the button
    entirely if it's disabled, so it's possible for the false values to be 0.
  </summary>
</histogram>

<histogram name="Cast.Sender.CastButtonShownInitialFullscreen"
    enum="BooleanEnabled">
  <owner>mfoltz@chromium.org</owner>
  <summary>
    Records the number of times the cast button was shown to the user when the
    video is fullscreened. The value will only be recorded on entering
    fullscreen. The value will be true if the button is enabled, and false if
    the button is disabled. Note that depending on the current UX,it's possible
    that we hide the button entirely if it's disabled, so it's possible for the
    false values to be 0.
  </summary>
</histogram>

<histogram name="Cast.Sender.CastMediaType" enum="MediaContainers">
  <owner>takumif@chromium.org</owner>
  <owner>mfoltz@chromium.org</owner>
  <owner>openscreen-team@google.com</owner>
  <summary>Records the media type of every video being cast.</summary>
</histogram>

<histogram name="Cast.Sender.CastPlayerResult" enum="CastPlayBackState">
  <owner>maybelle@chromium.org</owner>
  <owner>miguelg@chromium.org</owner>
  <summary>
    Records the result of a request to play remotely on a per player app basis
    within Chrome for Android.
  </summary>
</histogram>

<histogram name="Cast.Sender.CastPlaySuccess" enum="BooleanSuccess">
  <obsolete>
    Deprecated 04/2014, and replaced by Cast.Sender.CastPlayerResult.
  </obsolete>
  <owner>maybelle@chromium.org</owner>
  <owner>miguelg@chromium.org</owner>
  <summary>
    Records the result of a request to play remotely. The value will be true if
    the playback succeeded, and false if there was an error.
  </summary>
</histogram>

<histogram name="Cast.Sender.CastTimeRemainingPercentage" units="%">
  <owner>mfoltz@chromium.org</owner>
  <summary>
    Records the percentage of the video left at the time the remote playback is
    stopped. This will be recorded when the playback is stopped by the user, or
    when it's stopped by the cast device.
  </summary>
</histogram>

<histogram name="Cast.Sender.DeviceType" enum="RemotePlaybackDeviceType">
  <owner>tguilbert@google.com</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records the type of the remote playback device selected by the user. This
    will be recorded when the user has chosen the device from the media route
    chooser dialog.
  </summary>
</histogram>

<histogram name="Cast.Sender.FullscreenControlsActionWithMediaElement"
    enum="MediaCommand">
  <owner>tguilbert@google.com</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Record each interaction with the fullscreen remote playback controls in
    cases when the corresponding media element on the page was present.
  </summary>
</histogram>

<histogram name="Cast.Sender.FullscreenControlsActionWithoutMediaElement"
    enum="MediaCommand">
  <owner>tguilbert@google.com</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Record each interaction with the fullscreen remote playback controls in
    cases when the corresponding media element on the page was not present.
  </summary>
</histogram>

<histogram name="Cast.Sender.MediaElementPresentWhenShowFullscreenControls"
    enum="BooleanPresent">
  <owner>tguilbert@google.com</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Indicates whether the corresponding media element on the page was present
    when the fullscreen remote playback controls were shown.
  </summary>
</histogram>

<histogram name="Cast.Sender.Overlay" enum="CastOverlayEvents">
  <obsolete>
    Deprecated July 2017 in favor of Media.Controls.CTR.CastOverlayButton.
  </obsolete>
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records events and user interactions related to the Cast overlay shown on
    video elements.
  </summary>
</histogram>

<histogram name="Cast.Sender.SessionTimeWithoutMediaElementPercentage"
    units="%">
  <owner>tguilbert@google.com</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records the ratio of the time the media element was detached from the remote
    playback session to the total duration of the session (as from when the
    element has been attached till when the session stopped or disconnected), in
    percents.
  </summary>
</histogram>

<histogram name="Cast.Sender.UrlResolveResult"
    enum="RemotePlaybackUrlResolveResult">
  <owner>tguilbert@google.com</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records the result of resolving the video URL for cast, including checking
    its CORS header.
  </summary>
</histogram>

<histogram name="Cast.Sender.VideoEncodeAcceleratorInitializeSuccess"
    enum="BooleanSuccess">
  <owner>posciak@chromium.org</owner>
  <summary>
    Indicates whether initialization of a video encode accelerator for Cast
    sender was successful.
  </summary>
</histogram>

<histogram name="CastV2.Transport.Connect.Latency.Unknown" units="ms">
  <owner>cast-analytics@google.com</owner>
  <summary>
    The latency between when a Cast V2 connection is established and the first
    message is received on that connection. &quot;Unknown&quot; is the peer
    type, which is not known at this point in the CastV2 connection
    establishment. Naming conforms to the CastV2 sender-side histogram naming
    convention &quot;CastV2.[action].[name].[peer_type]&quot;.
  </summary>
</histogram>

<histogram name="CastV2.Transport.SslHandshake.Error.Unknown"
    enum="NetErrorCodes">
  <owner>cast-analytics@google.com</owner>
  <summary>
    On accepting a Cast V2 transport socket connection, if an error is
    encountered, the error code is logged here. &quot;Unknown&quot; is the peer
    type, which is not known at this point in the CastV2 connection
    establishment. &quot;SslHandshake.Error&quot; is the name of the action.
    Naming conforms to the CastV2 sender-side histogram naming convention
    &quot;CastV2.[action].[name].[peer_type]&quot;.
  </summary>
</histogram>

<histogram name="CastV2.Transport.SslHandshake.Unknown" units="ms">
  <owner>cast-analytics@google.com</owner>
  <summary>
    The time taken to do the handshake during Cast V2 transport socket creation.
    &quot;Unknown&quot; is the peer type, which is not known at this point in
    the CastV2 connection establishment. Naming conforms to the CastV2
    sender-side histogram naming convention
    &quot;CastV2.[action].[name].[peer_type]&quot;.
  </summary>
</histogram>

<histogram name="Cellular.ActivationFailure">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The count of cellular device activation failures (Chrome OS).
  </summary>
</histogram>

<histogram name="Cellular.ActivationTry">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The count of cellular device activation tries (Chrome OS).</summary>
</histogram>

<histogram name="Cellular.ConnectionFailed">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The count of cellular reconnect failures during activation (Chrome OS).
  </summary>
</histogram>

<histogram name="Cellular.ConnectionRetry">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The count of cellular device reconnect tries during activation (Chrome OS).
  </summary>
</histogram>

<histogram name="Cellular.MobileSetupFailed">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The count of successful cellular plan established (Chrome OS).
  </summary>
</histogram>

<histogram name="Cellular.MobileSetupStart">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The count of initiated cellular device setup starts (Chrome OS).
  </summary>
</histogram>

<histogram name="Cellular.MobileSetupSucceeded">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The count of failed cellular plan setup tries (Chrome OS).</summary>
</histogram>

<histogram name="Cellular.PaymentFailed">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The count of failed cellular plan purchases (Chrome OS).</summary>
</histogram>

<histogram name="Cellular.PaymentReceived">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The count of successfully completed cellular plan purchases (Chrome OS).
  </summary>
</histogram>

<histogram name="CertificateType">
  <obsolete>
    Deprecated as of 8/2013. This histogram only considered the leaf certificate
    expiry date as a proxy for whether a certificate was in-scope for the BRs,
    but did not consider the issuance date. As some CAs have issued long-lived
    certs prior to the BRs, this disproportionately reported those certs as
    being subject to the BRs, but non-compliant, when in reality they're not
    subject.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Information about the certificate algorithms and sizes in use on the web, to
    examine compliance with the CA/Browser Forum requirements and security best
    practice.
  </summary>
</histogram>

<histogram name="CertificateType2" expires_after="never">
<!-- expires-never: histograms are used to assess policy -->

<!-- https://crbug.com/732640#c5 -->

  <owner>rsleevi@chromium.org</owner>
  <summary>
    Information about the certificate algorithms and sizes in use on the web, to
    examine compliance with the CA/Browser Forum requirements and security best
    practice. This histogram considers the notBefore as the issuance date, for
    purposes of what requirements apply.
  </summary>
</histogram>

<histogram name="ChildAccountReconcilor.ForcedUserExitOnReconcileError"
    enum="BooleanHit">
  <owner>sinhak@chromium.org</owner>
  <owner>escordeiro@chromium.org</owner>
  <summary>
    Number of forced logouts for child accounts on an account reconciliation
    error. Check |ChromeOSChildAccountReconcilorDelegate|.
  </summary>
</histogram>

<histogram name="ChildProcess.BadMessgeTerminated" enum="ProcessType2">
  <owner>jam@chromium.org</owner>
  <summary>
    Count of child processes killed because they sent an IPC that couldn't be
    deserialized.
  </summary>
</histogram>

<histogram name="ChildProcess.Crashed" enum="ProcessType">
  <obsolete>
    Deprecated 3/2013. Renamed to ChildProcess.Crashed2.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Count of child process crashes grouped by process type.</summary>
</histogram>

<histogram name="ChildProcess.Crashed.UtilityProcessExitCode"
    enum="WindowsExitCode" expires_after="never">
<!-- expires-never: Critical stability metrics. go/chrome-stability-metrics -->

  <owner>wfh@chromium.org</owner>
  <summary>
    Recorded when a crash occurs in a Utility process. On crash, the exit code
    will indicate the exception code of the crash.
  </summary>
</histogram>

<histogram name="ChildProcess.Crashed.UtilityProcessHash"
    enum="UtilityProcessNameHash">
  <owner>wfh@chromium.org</owner>
  <summary>
    Count of child utility process crashes, bucketed by the hash of their
    process name. The process name is typically the service name of the mojo
    service.
  </summary>
</histogram>

<histogram name="ChildProcess.Crashed2" enum="ProcessType2">
  <owner>wfh@chromium.org</owner>
  <summary>Count of child process crashes grouped by process type.</summary>
</histogram>

<histogram name="ChildProcess.CrashedWasAlive" enum="ProcessType">
  <obsolete>
    Deprecated as of 10/2015.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Count of child process crashes that we miscounted because we took the exit
    code too early. Grouped by process type.
  </summary>
</histogram>

<histogram name="ChildProcess.Crashes" enum="ProcessType">
  <obsolete>
    Deprecated 10/2011. Renamed to ChildProcess.Crashed.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Count of child process crashes grouped by process type.</summary>
</histogram>

<histogram name="ChildProcess.CrashesWasAlive" enum="ProcessType">
  <obsolete>
    Deprecated 10/2011. Renamed to ChildProcess.CrashedWasAlive.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Count of child process crashes that we miscounted because we took the exit
    code too early. Grouped by process type.
  </summary>
</histogram>

<histogram name="ChildProcess.DefaultCase" enum="ProcessType">
  <obsolete>
    Deprecated as of 10/2015.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Count of child process crashes for which we were not able to understand the
    exit code, grouped by process type.
  </summary>
</histogram>

<histogram name="ChildProcess.Disconnected" enum="ProcessType">
  <obsolete>
    Deprecated 3/2013. Renamed to ChildProcess.Disconnected2.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Count of child process abnormal channel disconnects grouped by process type.
  </summary>
</histogram>

<histogram name="ChildProcess.Disconnected2" enum="ProcessType2">
  <owner>wfh@chromium.org</owner>
  <summary>
    Count of child process abnormal channel disconnects grouped by process type.
  </summary>
</histogram>

<histogram name="ChildProcess.DisconnectedAlive" enum="ProcessType">
  <obsolete>
    Deprecated 3/2013. Renamed to ChildProcess.DisconnectedAlive2.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Count of child process abnormal channel disconnects that are not classified
    and reported because we took the exit code too early. Grouped by process
    type.
  </summary>
</histogram>

<histogram name="ChildProcess.DisconnectedAlive2" enum="ProcessType2">
  <owner>wfh@chromium.org</owner>
  <summary>
    Count of child process abnormal channel disconnects that are not classified
    and reported because we took the exit code too early. Grouped by process
    type.
  </summary>
</histogram>

<histogram name="ChildProcess.FieldTrials.CreateFromShmemSuccess"
    enum="BooleanSuccess" expires_after="M72">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Whether creating field trials from shared memory succeeded. Recorded by each
    child process on process startup.
  </summary>
</histogram>

<histogram name="ChildProcess.FieldTrials.CreateFromSwitchSuccess"
    enum="BooleanSuccess" expires_after="M72">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Whether creating field trials from --force-fieldtrials switch succeeded.
    Recorded by each child process on process startup.
  </summary>
</histogram>

<histogram name="ChildProcess.HangRendererType" enum="RendererUnresponsiveType">
  <obsolete>
    Deprecated 3/2017.
  </obsolete>
  <owner>clamy@chromium.org</owner>
  <summary>
    What the browser was waiting for from the renderer when it was reported as
    hung.
  </summary>
</histogram>

<histogram name="ChildProcess.InvalidSandboxStateCrash.NoStartupWindow"
    enum="BooleanPresent">
  <owner>wfh@chromium.org</owner>
  <summary>
    Whether the browser command line had the switch --no-startup-window when a
    child process crashed due to invalid sandbox state. Recorded when a child
    process crashes if the exit code from the child process is
    RESULT_CODE_INVALID_SANDBOX_STATE.
  </summary>
</histogram>

<histogram name="ChildProcess.Killed" enum="ProcessType">
  <obsolete>
    Deprecated 3/2013. Renamed to ChildProcess.Killed2.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Count of child process kills grouped by process type.</summary>
</histogram>

<histogram name="ChildProcess.Killed2" enum="ProcessType2">
  <owner>wfh@chromium.org</owner>
  <summary>Count of child process kills grouped by process type.</summary>
</histogram>

<histogram name="ChildProcess.Killed2.OOM" enum="ProcessType2">
  <owner>oshima@chromium.org</owner>
  <summary>
    Out of ChildProcess.Killled, number of kills due to SIGKILL, which is a
    strong signal of out of memory on Chrome OS, grouped by process type.
  </summary>
</histogram>

<histogram name="ChildProcess.KilledByExtensionAPI">
  <owner>nasko@chromium.org</owner>
  <summary>
    Count of child processes killed by the extension API (processes.terminate).
  </summary>
</histogram>

<histogram name="ChildProcess.KilledWasAlive" enum="ProcessType">
  <obsolete>
    Deprecated as of 10/2015.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Count of child process kills that we miscounted because we took the exit
    code too early. Grouped by process type.
  </summary>
</histogram>

<histogram name="ChildProcess.Kills" enum="ProcessType">
  <obsolete>
    Deprecated 10/2011. Renamed to ChildProcess.Killed.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Count of child process kills grouped by process type.</summary>
</histogram>

<histogram name="ChildProcess.KillsWasAlive" enum="ProcessType">
  <obsolete>
    Deprecated 10/2011. Renamed to ChildProcess.KilledWasAlive.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Count of child process kills that we miscounted because we took the exit
    code too early. Grouped by process type.
  </summary>
</histogram>

<histogram name="ChildProcess.Launched.UtilityProcessHash"
    enum="UtilityProcessNameHash">
  <owner>wfh@chromium.org</owner>
  <summary>
    Count of child utility process launches, bucketed by the hash of their
    process name. The process name is typically the service name of the mojo
    service.
  </summary>
</histogram>

<histogram name="Chrome.Android.Activity.CrashCounts" enum="AndroidActivityId">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Indicates how many times each particular type of Activity was in the
    foreground when a UMA session was terminated abnormally. UMA sessions last
    as long as Chrome remains in the foreground.
  </summary>
</histogram>

<histogram name="Chrome.Android.Activity.LaunchCounts" enum="AndroidActivityId">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Indicates how many times each particular type of Activity was brought to the
    foreground when a UMA session was active (i.e. launched at some point). UMA
    sessions last as long as Chrome remains in the foreground.
  </summary>
</histogram>

<histogram name="Chrome.Browser.CrashedExecutionPhase" enum="ExecutionPhase">
  <obsolete>
    Removed 12/2019.
  </obsolete>
  <owner>manzagop@chromium.org</owner>
  <summary>
    Indicates the execution phase the browser was in when the browser crashed.
  </summary>
</histogram>

<histogram name="Chrome.Browser.ExecutionPhase" enum="ExecutionPhase">
  <obsolete>
    Deprecated as of 11/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Indicates the execution phase the browser was in when browser didn't exit
    cleanly.
  </summary>
</histogram>

<histogram name="Chrome.BrowserCrashDumpAttempts">
  <obsolete>
    Deprecated as of 04/2015.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The total number of times the browser process has attempted to generate a
    crash dump. This should be the sum of Chrome.BrowserDumpsWithCrash and
    Chrome.BrowserDumpsWithNoCrash.
  </summary>
</histogram>

<histogram name="Chrome.BrowserDumpsWithCrash">
  <obsolete>
    Deprecated as of 04/2015.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of times the browser process has attempted to generate a crash
    dump because of an actual browser crash.
  </summary>
</histogram>

<histogram name="Chrome.BrowserDumpsWithNoCrash">
  <obsolete>
    Deprecated as of 04/2015.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of times the browser process has attempted to generate a crash
    dump in a non-crashing (i.e., reporting only) context.
  </summary>
</histogram>

<histogram name="Chrome.MessageLoopProblem" enum="MessageLoopProblems">
  <owner>gab@chromium.org</owner>
  <summary>
    Track set of Windows errors inside the meessage loop/pump system, where
    system calls fail, and we try to gracefully recover. These errors should
    really never happen, so we should be sure to look closer if they do.
  </summary>
</histogram>

<histogram name="Chrome.ProcessSingleton.NotifyResult" enum="NotifyResult"
    expires_after="2018-08-30">
  <owner>gab@chromium.org</owner>
  <summary>
    The result of every rendez-vous reported once per browser process launch.
  </summary>
</histogram>

<histogram name="Chrome.ProcessSingleton.ProcessTerminateErrorCode.Windows"
    enum="WinGetLastError">
  <obsolete>
    Deprecated as of 12/2017.
  </obsolete>
  <owner>aseren@yandex-team.ru</owner>
  <owner>gab@chromium.org</owner>
  <summary>
    The error code of remote process termination on Windows in case when remote
    process hung. This histogram has been replaced by
    Chrome.ProcessSingleton.TerminateProcessErrorCode.Windows histogram.
  </summary>
</histogram>

<histogram name="Chrome.ProcessSingleton.RemoteHungProcessTerminateReason"
    enum="RemoteHungProcessTerminateReason">
  <owner>aseren@yandex-team.ru</owner>
  <owner>gab@chromium.org</owner>
  <summary>The reason of remote hang processes termination.</summary>
</histogram>

<histogram name="Chrome.ProcessSingleton.RemoteProcessInteractionResult"
    enum="RemoteProcessInteractionResult">
  <owner>aseren@yandex-team.ru</owner>
  <owner>gab@chromium.org</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">
  <owner>aseren@yandex-team.ru</owner>
  <owner>gab@chromium.org</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">
  <owner>aseren@yandex-team.ru</owner>
  <owner>gab@chromium.org</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">
  <owner>aseren@yandex-team.ru</owner>
  <owner>gab@chromium.org</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">
  <owner>aseren@yandex-team.ru</owner>
  <owner>gab@chromium.org</owner>
  <summary>
    The error code of wating for remote process termination on Windows.
  </summary>
</histogram>

<histogram name="Chrome.ProcessSingleton.TimeToCreate" units="ms"
    expires_after="2018-08-30">
  <owner>gab@chromium.org</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="2018-08-30">
  <owner>gab@chromium.org</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="2018-08-30">
  <owner>gab@chromium.org</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.SearchSelectExempt" enum="SearchEngine">
  <obsolete>
    Deprecated 8/2013. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The default search engine selected by a user not in the search engine dialog
    experiment.
  </summary>
</histogram>

<histogram name="Chrome.SearchSelectExperiment" enum="SearchEngine">
  <obsolete>
    Deprecated 8/2013. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The default search engine selected by a user in the search engine dialog
    experiment.
  </summary>
</histogram>

<histogram name="Chrome.SearchSelectExperimentSlot1" enum="SearchEngine">
  <obsolete>
    Deprecated 8/2013. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The default search engine selected by a user in slot 1 of a randomized
    search engine dialog.
  </summary>
</histogram>

<histogram name="Chrome.SearchSelectExperimentSlot2" enum="SearchEngine">
  <obsolete>
    Deprecated 8/2013. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The default search engine selected by a user in slot 2 of a randomized
    search engine dialog.
  </summary>
</histogram>

<histogram name="Chrome.SearchSelectExperimentSlot3" enum="SearchEngine">
  <obsolete>
    Deprecated 8/2013. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The default search engine selected by a user in slot 3 of a randomized
    search engine dialog.
  </summary>
</histogram>

<histogram name="Chrome.SearchSelectExperimentSlot4" enum="SearchEngine">
  <obsolete>
    Deprecated 8/2013. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The default search engine selected by a user in slot 4 of a randomized
    search engine dialog.
  </summary>
</histogram>

<histogram name="Chrome.UmaPageloadCounter" enum="BooleanHit">
  <obsolete>
    Deprecated 6/2017. No longer tracked.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Records when a page load happens, based on the same logic as the PageLoad
    user action.
  </summary>
</histogram>

<histogram name="ChromeElf.ApplyHookResult" enum="NTSTATUS">
  <owner>pmonette@chromium.org</owner>
  <summary>
    Records the NTSTATUS result that was returned when attempting to hook
    NtMapViewOfSection during chrome_elf.dll initialization. Emitted
    asynchronously shortly after startup.
  </summary>
</histogram>

<histogram name="ChromeElf.ThirdPartyStatus" enum="ThirdPartyStatus">
  <owner>pmonette@chromium.org</owner>
  <summary>
    Records the different status codes that are emitted by chrome_elf.dll while
    initializing the NtMapViewOfSection hook used to blocked third-party DLLs.
    Multiple status codes can be emitted per initialization since some of those
    status codes represent non-fatal failures. E.g. Failure to clear the
    previous failure codes. This also means that duplicates are possible. This
    is recorded shortly after Chrome launches, since chrome_elf.dll doesn't have
    access to the //base API.
  </summary>
</histogram>

<histogram name="ChromeGeneratedCustomTab.IntentToFirstCommitNavigationTime"
    units="ms">
  <obsolete>
    Deprecated 10/2016 in favor of .IntentToFirstCommitNavigationTime2.*.
  </obsolete>
  <owner>lizeb@chromium.org</owner>
  <summary>
    Time between the intent arrival in a Chrome generated custom tab and the
    first navigation commit, if the navigation is successful. Similar in
    principle to Startup.FirstCommitNavigationTime.
  </summary>
</histogram>

<histogram name="ChromeGeneratedCustomTab.IntentToFirstCommitNavigationTime2"
    units="ms">
  <obsolete>
    Deprecated 2017-08 in favor of
    ChromeGeneratedCustomTab.IntentToFirstNavigationStartTime.
  </obsolete>
  <owner>lizeb@chromium.org</owner>
  <summary>
    In &quot;Herb&quot; mode shows the time between the intent arrival in a
    Chrome generated custom tab and the first navigation start (note: not the
    navigation commit, as the name suggests). Recorded when the page has
    finished loading.
  </summary>
</histogram>

<histogram name="ChromeGeneratedCustomTab.IntentToFirstNavigationStartTime"
    units="ms">
  <owner>lizeb@chromium.org</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">
  <owner>lizeb@chromium.org</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>

<histogram name="ChromeNotifierService.Actions"
    enum="ChromeNotifierServiceActionType">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The actions to enable or disable services sending synced notifications.
    Synced Notification Sending services can be individually disabled by the
    user in the Chrome Notification center settings dialog.
  </summary>
</histogram>

<histogram name="ChromeOS.Apps.IntentPickerAction"
    enum="ArcIntentHandlerAction">
  <owner>elijahtaylor@google.com</owner>
  <owner>dominickn@chromium.org</owner>
  <owner>shihuis@google.com</owner>
  <summary>
    Records the response when the intent picker is shown to the user on Chrome
    OS to allow them to open a URL in an app.
  </summary>
</histogram>

<histogram name="ChromeOS.Apps.IntentPickerDestinationPlatform"
    enum="ArcIntentHandlerDestinationPlatform">
  <owner>elijahtaylor@google.com</owner>
  <owner>dominickn@chromium.org</owner>
  <owner>shihuis@google.com</owner>
  <summary>
    Records the app platform chosen (or Chrome if the user did not choose an
    app) when the intent picker is shown to the user on Chrome OS. The
    destination may be specified due to the user explicit selection or a
    previously stored preference.
  </summary>
</histogram>

<histogram name="ChromeOS.CWP.CollectHeap"
    enum="ChromeOSProfileCollectionStatus" expires_after="2020-02-01">
  <owner>aalexand@google.com</owner>
  <owner>gmx@chromium.org</owner>
  <summary>
    A count of successes and various failure modes related to the collection and
    processing of Chrome heap sample profiles on Chrome OS.
  </summary>
</histogram>

<histogram name="ChromeOS.CWP.CollectPerf"
    enum="ChromeOSProfileCollectionStatus">
  <owner>aalexand@google.com</owner>
  <owner>gmx@chromium.org</owner>
  <summary>
    A count of successes and various failure modes related to collecting and
    processing profile data obtained via &quot;perf events&quot; on Chrome OS.
  </summary>
</histogram>

<histogram name="ChromeOS.CWP.UploadHeap" units="reports"
    expires_after="2020-02-01">
  <owner>aalexand@google.com</owner>
  <owner>gmx@chromium.org</owner>
  <summary>
    Records the number of &quot;heap&quot; reports included in an UMA upload on
    Chrome OS.
  </summary>
</histogram>

<histogram name="ChromeOS.CWP.UploadPerf" units="reports">
  <owner>aalexand@google.com</owner>
  <owner>gmx@chromium.org</owner>
  <summary>
    Records the number of &quot;perf events&quot; reports included in an UMA
    upload on Chrome OS.
  </summary>
</histogram>

<histogram name="ChromeOS.DetachableBase.PairResult"
    enum="DetachableBasePairResult">
  <obsolete>
    Deprecated 10/2017 and replaced by Platform.DetachableBase.PairResult.
  </obsolete>
  <owner>kitching@google.com</owner>
  <summary>Result of a Chrome OS detachable base pair operation.</summary>
</histogram>

<histogram name="ChromeOS.DetachableBase.ROUpdateMetric"
    enum="DetachableBaseROUpdateResult">
  <obsolete>
    Deprecated 10/2017 and replaced by Platform.DetachableBase.ROUpdateMetric.
  </obsolete>
  <owner>kitching@google.com</owner>
  <summary>Result of a Chrome OS detachable base RO firmware update.</summary>
</histogram>

<histogram name="ChromeOS.DetachableBase.RWUpdateMetric"
    enum="DetachableBaseRWUpdateResult">
  <obsolete>
    Deprecated 10/2017 and replaced by Platform.DetachableBase.RWUpdateMetric.
  </obsolete>
  <owner>kitching@google.com</owner>
  <summary>Result of a Chrome OS detachable base RW firmware update.</summary>
</histogram>

<histogram name="ChromeOS.Display.ColorProfile" enum="ChromeOSColorProfile">
  <obsolete>
    Deprecated 8/2017.
  </obsolete>
  <owner>xiaowenx@chromium.org</owner>
  <owner>mukai@chromium.org</owner>
  <summary>
    The name of the current color calibration of the display on Chrome OS. This
    value is sent when the color calibration is changed by the user.
  </summary>
</histogram>

<histogram name="ChromeOS.GAIA.AuthenticatorContentWindowNull" enum="Boolean">
  <owner>wjmaclean@chromium.org</owner>
  <summary>
    Whether the GAIA Authenticator unexpectedly encountered a null contentWindow
    value while handling WebView's onContentLoad event. This metric is only
    enabled for AuthMode = DEFAULT, which indicates ChromeOS online login. This
    is the only mode where the issue has been observed. Other modes not captured
    here are OFFLINE (offline ChromeOS login) and DESKTOP (for online GAIA login
    on desktop Chrome).
  </summary>
</histogram>

<histogram name="ChromeOS.GAIA.WebViewFlow" enum="BooleanGAIAWebViewFlow">
  <owner>achuith@chromium.org</owner>
  <summary>
    Whether a user signed in using the new WebView-based GAIA flow. This value
    is sent after the GAIA screen has completed user authentication.
  </summary>
</histogram>

<histogram name="ChromeOS.MachineIdRegen.AgeSeconds" units="seconds">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    The number of seconds of uptime since the last time the Chrome OS machine-id
    was regenerated. This is reported every time the machine-id is regenerated
    except for the first time since reboot.
  </summary>
</histogram>

<histogram name="ChromeOS.MachineIdRegen.Reason" enum="ChromeOSMachineIdReason">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    The reason why the Chrome OS machine-id was regenerated. This is reported
    when the machine-id is re-generated.
  </summary>
</histogram>

<histogram name="ChromeOS.MemoryPressureLevel" enum="MemoryPressureLevel">
  <owner>xdai@chromium.org</owner>
  <summary>
    The memory pressure level in Chrome OS, which is recorded periodically (once
    per second). This is used to show the relative frequency of the system being
    in a critical vs relaxed memory pressure state.
  </summary>
</histogram>

<histogram name="ChromeOS.MessageCenter.ScrollActionReason"
    enum="ChromeOSMessageCenterScrollActionReason" expires_after="2018-11-30">
  <owner>yoshiki@chromium.org</owner>
  <owner>omrilio@chromium.org</owner>
  <summary>
    The cause of the scroll event by the user on the message center. Only the
    first event after the message center opens is recorded. For example, the
    user opens the message center and scrolls by mouse then by key, only the
    mouse event is recorded. If the user closes and reopens the message center
    before the second event, both events are recorded.
  </summary>
</histogram>

<histogram name="ChromeOS.PlatformVerification.Available"
    enum="BooleanAvailable">
  <owner>apronin@chromium.org</owner>
  <owner>cros-hwsec@chromium.org</owner>
  <summary>
    Whether platform verification subsystem features are available at the time a
    platform verification request is made for content protection on Chrome OS.
  </summary>
</histogram>

<histogram name="ChromeOS.PlatformVerification.ExpiryStatus"
    enum="ChromeOSPlatformVerificationExpiryStatus">
  <owner>apronin@chromium.org</owner>
  <owner>cros-hwsec@chromium.org</owner>
  <summary>
    The result of a certificate expiry check during a platform verification
    attempt for content protection on Chrome OS.
  </summary>
</histogram>

<histogram name="ChromeOS.PlatformVerification.Result"
    enum="ChromeOSPlatformVerificationResult">
  <owner>apronin@chromium.org</owner>
  <owner>cros-hwsec@chromium.org</owner>
  <summary>
    The result of a platform verification attempt for content protection on
    Chrome OS.
  </summary>
</histogram>

<histogram name="ChromeOS.SAML.APIUsed" enum="BooleanUsage">
  <owner>bartfab@chromium.org</owner>
  <summary>
    Whether a Chrome OS login via SAML used the principals API. This is recorded
    during login on Chrome OS if SAML is being used for authentication.
  </summary>
</histogram>

<histogram name="ChromeOS.SAML.Scraping.PasswordCount">
  <owner>bartfab@chromium.org</owner>
  <summary>
    The number of passwords that were scraped during a Chrome OS login via SAML.
    This is set only when the principals API is not used.
  </summary>
</histogram>

<histogram name="ChromeOS.SAML.Scraping.VerificationResult"
    enum="BooleanSuccess">
  <owner>bartfab@chromium.org</owner>
  <summary>
    Whether one of the scraped passwords was successfully verified as the user's
    password. This is set only when the principals API is not used.
  </summary>
</histogram>

<histogram name="ChromeOS.SystemTray.Interaction"
    enum="CrosSystemTrayInteraction">
  <owner>tetsui@chromium.org</owner>
  <summary>
    An enum value how system tray bubble is interacted e.g. by tap (touch
    screen), or click (mouse, trackpad, etc.) Reported every time the region
    inside system tray bubble is tapped or clicked.
  </summary>
</histogram>

<histogram name="ChromeOS.SystemTray.IsExpandedOnOpen" enum="Boolean">
  <owner>tetsui@chromium.org</owner>
  <summary>
    If the value is true, SystemTray is expanded when it's opened. Otherwise,
    it's closed when it's opened.
  </summary>
</histogram>

<histogram name="ChromeOS.SystemTray.OpenHelpPageForManaged"
    enum="CrosSystemTrayManagedType">
  <owner>yamaguchi@chromium.org</owner>
  <summary>
    Type of the support page which user opened by clicking the indicator of
    managed device type in the unified system tray bubble.
  </summary>
</histogram>

<histogram name="ChromeOS.SystemTray.TimeToClick" units="ms">
  <owner>tetsui@chromium.org</owner>
  <summary>
    The amount of time a user took from clicking on the button in status area,
    to clicking on an item in the system tray bubble.
  </summary>
</histogram>

<histogram name="ChromeOS.SystemTray.ToggleExpanded"
    enum="CrosSystemTrayToggleExpanded">
  <owner>tetsui@chromium.org</owner>
  <summary>
    An enum value how system tray bubble is expanded or collapsed. It can be
    toggled by the button and touch gesture.
  </summary>
</histogram>

<histogram name="ChromiumAndroidLinker.BrowserLoadTime" units="ms">
  <owner>rsesek@chromium.org</owner>
  <summary>
    The amount of time it took to load the native libraries in the browser
    process.
  </summary>
</histogram>

<histogram name="ChromiumAndroidLinker.BrowserStates"
    enum="ChromiumAndroidLinkerBrowserState">
  <owner>digit@chromium.org</owner>
  <owner>pasko@chromium.org</owner>
  <owner>lizeb@chromium.org</owner>
  <summary>
    Whether relro sharing was attempted for the browser process, and if
    attempted, whether it succeeded.
  </summary>
</histogram>

<histogram name="ChromiumAndroidLinker.IsLowMemoryDevice" enum="Boolean">
  <obsolete>
    Deprecated 10/2014 in Issue 419010, and replaced by
    ChromiumAndroidLinker.BrowserStates.
  </obsolete>
  <owner>simonb@chromium.org</owner>
  <summary>Is low memory device.</summary>
</histogram>

<histogram name="ChromiumAndroidLinker.LibraryLoadFromApkStatus"
    enum="LibraryLoadFromApkStatus">
  <owner>petrcermak@chromium.org</owner>
  <summary>
    Whether the device supports loading a library directly from the APK file.
    The functionality is checked and reported during every Chromium browser
    process start up.
  </summary>
</histogram>

<histogram name="ChromiumAndroidLinker.LoadedAtFixedAddressFailed"
    enum="Boolean">
  <obsolete>
    Deprecated 10/2014 in Issue 419010, and replaced by
    ChromiumAndroidLinker.RendererStates.
  </obsolete>
  <owner>simonb@chromium.org</owner>
  <summary>Load at fixed address failed.</summary>
</histogram>

<histogram name="ChromiumAndroidLinker.RelinkerFallbackCount"
    enum="BooleanIsUseRelinker">
  <owner>agrieve@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    The total number of times Chrome uses relinker fallback to extract and load
    native libraries.
  </summary>
</histogram>

<histogram name="ChromiumAndroidLinker.RendererLoadTime" units="ms">
  <owner>rsesek@chromium.org</owner>
  <summary>
    The amount of time it took to load the native libraries in the renderer
    process.
  </summary>
</histogram>

<histogram name="ChromiumAndroidLinker.RendererStates"
    enum="ChromiumAndroidLinkerRendererState">
  <owner>simonb@chromium.org</owner>
  <summary>
    Whether relro sharing was attempted for a renderer process, and if
    attempted, whether it succeeded.
  </summary>
</histogram>

<histogram name="Chromoting.Connections" enum="State"
    expires_after="2018-08-30">
  <owner>jamiewalch@chromium.org</owner>
  <summary>
    Recorded every time a Chromoting connection enters a new state.
  </summary>
</histogram>

<histogram name="Chromoting.Connections.Durations.Closed" units="minutes"
    expires_after="2018-08-30">
  <owner>jamiewalch@chromium.org</owner>
  <summary>
    The duration of sessions that were closed, normally by a user-initiated
    action.
  </summary>
</histogram>

<histogram name="Chromoting.Connections.Durations.Failed" units="minutes"
    expires_after="2018-08-30">
  <owner>jamiewalch@chromium.org</owner>
  <summary>The duration of sessions that failed to connect.</summary>
</histogram>

<histogram name="Chromoting.Connections.Times.ToAuthenticate" units="ms"
    expires_after="2018-08-30">
  <owner>jamiewalch@chromium.org</owner>
  <summary>
    The time taken to authenticate as part of a Chromoting connection request.
  </summary>
</histogram>

<histogram name="Chromoting.Connections.Times.ToConnect" units="ms"
    expires_after="2018-08-30">
  <owner>jamiewalch@chromium.org</owner>
  <summary>
    The time taken to connect to a remote-host, after a request has been
    authenticated.
  </summary>
</histogram>

<histogram name="Chromoting.Input.EventLatency" units="microseconds">
  <owner>joedow@chromium.org</owner>
  <owner>lambroslambrou@chromium.org</owner>
  <summary>
    Input event delivery latency from the browser to the plugin.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Chromoting.Video.Bandwidth" units="Bytes/second"
    expires_after="2018-08-30">
  <owner>jamiewalch@chromium.org</owner>
  <summary>
    The bandwidth of non-empty packets in Chromoting remote sessions, updated
    every time a video packet is processed and logged every 1s.
  </summary>
</histogram>

<histogram name="Chromoting.Video.CaptureLatency" units="ms"
    expires_after="2018-08-30">
  <owner>jamiewalch@chromium.org</owner>
  <summary>
    The time to capture a video frame on the host, returned as part of a video
    packet.
  </summary>
</histogram>

<histogram name="Chromoting.Video.CaptureOverhead" units="ms"
    expires_after="2018-08-30">
  <owner>jamiewalch@chromium.org</owner>
  <summary>
    Amount of time wasted on IPC and threading overhead when capturing a video
    frame.
  </summary>
</histogram>

<histogram name="Chromoting.Video.CapturePendingLatency" units="ms">
  <owner>joedow@chromium.org</owner>
  <owner>lambroslambrou@chromium.org</owner>
  <summary>
    The time from when an input event is received to when the next frame is
    captured.
  </summary>
</histogram>

<histogram name="Chromoting.Video.DecodeLatency" units="ms"
    expires_after="2018-08-30">
  <owner>jamiewalch@chromium.org</owner>
  <summary>The time to decode a video packet on the client.</summary>
</histogram>

<histogram name="Chromoting.Video.EncodeLatency" units="ms">
  <owner>joedow@chromium.org</owner>
  <owner>lambroslambrou@chromium.org</owner>
  <summary>
    The time to encode a video packet on the host, returned as part of a video
    packet.
  </summary>
</histogram>

<histogram name="Chromoting.Video.EncodePendingLatency" units="ms"
    expires_after="2018-08-30">
  <owner>jamiewalch@chromium.org</owner>
  <summary>
    Delay before a newly captured frame is passed to the encoder.
  </summary>
</histogram>

<histogram name="Chromoting.Video.FrameRate" units="fps">
  <owner>joedow@chromium.org</owner>
  <owner>lambroslambrou@chromium.org</owner>
  <summary>
    The frame-rate of non-empty packets in Chromoting remote sessions, updated
    every time a video packet is processed and logged every 1s.
  </summary>
</histogram>

<histogram name="Chromoting.Video.NetworkLatency" units="ms"
    expires_after="2018-08-30">
  <owner>jamiewalch@chromium.org</owner>
  <summary>
    Estimated network roundtrip latency calculated by subtracting total
    processing time on host and client from the total roundtrip time.
  </summary>
</histogram>

<histogram name="Chromoting.Video.PacketRate" units="packets/second"
    expires_after="2018-08-30">
  <owner>jamiewalch@chromium.org</owner>
  <summary>
    The packets/sec, including empty packets, in Chromoting remote sessions,
    updated every time a video packet is processed and logged every 1s.
  </summary>
</histogram>

<histogram name="Chromoting.Video.PaintLatency" units="ms"
    expires_after="2018-08-30">
  <owner>jamiewalch@chromium.org</owner>
  <summary>The time to paint a decoded video packet on the client.</summary>
</histogram>

<histogram name="Chromoting.Video.RoundTripLatency" units="ms"
    expires_after="2018-08-30">
  <owner>jamiewalch@chromium.org</owner>
  <summary>
    The time from an input being sent from the client to a response being
    received by the client after it is processed by the host.
  </summary>
</histogram>

<histogram name="Chromoting.Video.SendPendingLatency" units="ms"
    expires_after="2018-08-30">
  <owner>jamiewalch@chromium.org</owner>
  <summary>
    Delay before an encoded video packet is written to the send buffer.
  </summary>
</histogram>

<histogram name="clickjacking.discard_download" units="ms"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The length of time between a dangerous download appearing on the downloads
    shelf, and the &quot;Discard&quot; button being clicked.
  </summary>
</histogram>

<histogram name="clickjacking.dismiss_download" units="ms">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The length of time between a dangerous download appearing on the downloads
    shelf, and the &quot;Dismiss&quot; button being clicked. Deprecated since
    M54.
  </summary>
</histogram>

<histogram name="clickjacking.launch_url" units="ms" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The length of time between the external protocol dialog being shown and the
    &quot;Launch Application&quot; button being clicked.
  </summary>
</histogram>

<histogram name="clickjacking.open_download" units="ms"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The length of time between a download appearing on the download shelf, and
    the user opening it by clicking the item or pressing return.
  </summary>
</histogram>

<histogram name="clickjacking.report_and_discard_download" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time between &quot;Report and Discard&quot; button being shown and it being
    clicked.
  </summary>
</histogram>

<histogram name="clickjacking.save_download" units="ms">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The length of time between a dangerous download appearing on the download
    shelf, and the &quot;Keep&quot; button being clicked.
  </summary>
</histogram>

<histogram name="ClientHints.CountRulesReceived" units="count">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Count of client hints that were received by the render process. Recorded
    approximately at the time of the renderer startup.
  </summary>
</histogram>

<histogram name="ClientHints.PersistDuration" units="ms">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Duration for which the origin requested the client hints to be persisted.
    Collected on the renderer side.
  </summary>
</histogram>

<histogram name="ClientHints.UpdateEventCount" units="count">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Count of events when the client hints needs to be persisted to the disk by
    the browser.
  </summary>
</histogram>

<histogram name="ClientHints.UpdateSize" units="count">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Count of client hints that need to be persisted to the disk. Recorded by the
    renderer.
  </summary>
</histogram>

<histogram name="Clipboard.ConstructedHasher" enum="BooleanSuccess">
  <obsolete>
    Launched briefly in M-59 dev, then refactoring made obsolete.
  </obsolete>
  <owner>mpearson@chromium.org</owner>
  <summary>
    Whether Android's Clipboard.java successfully constructed a hasher to hash
    clipboard entries. Recorded on construction of the class, which happens only
    on startup.
  </summary>
</histogram>

<histogram name="Clipboard.IncognitoUseCase" enum="ClipboardAction">
  <obsolete>
    Deprecated as of 4/2013, experiment confirmed correctness of our patch.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Counts how often the user writes or reads from the clipboard and whether the
    write was from an incognito window or not.
  </summary>
</histogram>

<histogram name="Clipboard.X11StoreCopyPasteDuration" units="ms">
  <owner>pkotwicz@chromium.org</owner>
  <summary>
    The length of time that it takes to transfer ownership of Chrome's CLIPBOARD
    selection to the clipboard manager when Chrome exits.
  </summary>
</histogram>

<histogram name="CloudPrint.AuthEvent" enum="CloudPrintAuthEventType">
  <owner>avi@chromium.org</owner>
  <summary>Event counts in CloudPrintAuth.</summary>
</histogram>

<histogram name="CloudPrint.AvailablePrinters">
  <owner>avi@chromium.org</owner>
  <summary>The number of printers availible for registration.</summary>
</histogram>

<histogram name="CloudPrint.AvailablePrintersList">
  <owner>avi@chromium.org</owner>
  <summary>
    The number of printers availible for registration in Windows Service.
  </summary>
</histogram>

<histogram name="CloudPrint.CapsUpdateInterval" units="ms">
  <obsolete>
    Removed 02/2017. http://crbug.com/643570
  </obsolete>
  <owner>avi@chromium.org</owner>
  <summary>The amount of time between capabilities updates.</summary>
</histogram>

<histogram name="CloudPrint.JobHandlerEvent"
    enum="CloudPrintJobHandlerEventType">
  <owner>avi@chromium.org</owner>
  <summary>Event counts in PrinterJobHandler.</summary>
</histogram>

<histogram name="CloudPrint.JobsDonePerInterval">
  <owner>avi@chromium.org</owner>
  <summary>The number of jobs successfully completed per hour.</summary>
</histogram>

<histogram name="CloudPrint.JobsStartedPerInterval">
  <owner>avi@chromium.org</owner>
  <summary>The number of jobs started per hour.</summary>
</histogram>

<histogram name="CloudPrint.JobStatus" enum="CloudPrintJobStatusType">
  <owner>avi@chromium.org</owner>
  <summary>Then number of job completion statuses.</summary>
</histogram>

<histogram name="CloudPrint.NativeJobStatus"
    enum="CloudPrintNativeJobStatusType">
  <owner>avi@chromium.org</owner>
  <summary>Event counts in PrintSystem.</summary>
</histogram>

<histogram name="CloudPrint.PrepareTime" units="ms">
  <owner>avi@chromium.org</owner>
  <summary>The amount of time needed to prepare job for spooling.</summary>
</histogram>

<histogram name="CloudPrint.PrinterBlacklistSize">
  <owner>avi@chromium.org</owner>
  <summary>The number of printers user has blacklisted.</summary>
</histogram>

<histogram name="CloudPrint.PrinterWhitelistSize">
  <owner>avi@chromium.org</owner>
  <summary>The number of printers user has whitelisted.</summary>
</histogram>

<histogram name="CloudPrint.PrintingTime" units="ms">
  <owner>avi@chromium.org</owner>
  <summary>The amount of time needed to finish print job.</summary>
</histogram>

<histogram name="CloudPrint.ServiceEvents" enum="ServiceProcessEventType">
  <owner>avi@chromium.org</owner>
  <summary>Event counts in ServiceProcessControl.</summary>
</histogram>

<histogram name="CloudPrint.ServiceProcessSocketLength">
  <obsolete>
    Removed 12/2015. http://crbug.com/466644
  </obsolete>
  <owner>avi@chromium.org</owner>
  <summary>
    Temporarily histogram with size of IPC sockets in default location.
  </summary>
</histogram>

<histogram name="CloudPrint.ServiceUtilityCapsFailTime" units="ms">
  <obsolete>
    Removed 02/2017. http://crbug.com/643570
  </obsolete>
  <owner>avi@chromium.org</owner>
  <summary>
    The amount of time used to fail to collect printer capabilities.
  </summary>
</histogram>

<histogram name="CloudPrint.ServiceUtilityCapsTime" units="ms">
  <obsolete>
    Removed 02/2017. http://crbug.com/643570
  </obsolete>
  <owner>avi@chromium.org</owner>
  <summary>The amount of time used to collect printer capabilities.</summary>
</histogram>

<histogram name="CloudPrint.ServiceUtilityDisconnectTime" units="ms">
  <obsolete>
    Removed 02/2017. http://crbug.com/643570
  </obsolete>
  <owner>avi@chromium.org</owner>
  <summary>
    The amount of time the utility process runs before disconnect.
  </summary>
</histogram>

<histogram name="CloudPrint.ServiceUtilityMetafileFailTime" units="ms">
  <obsolete>
    Removed 02/2017. http://crbug.com/643570
  </obsolete>
  <owner>avi@chromium.org</owner>
  <summary>The amount of time used to fail to generate metafile.</summary>
</histogram>

<histogram name="CloudPrint.ServiceUtilityMetafileTime" units="ms">
  <obsolete>
    Removed 02/2017. http://crbug.com/643570
  </obsolete>
  <owner>avi@chromium.org</owner>
  <summary>The amount of time used to generate metafile.</summary>
</histogram>

<histogram name="CloudPrint.ServiceUtilityProcessHostEvent"
    enum="ServiceUtilityProcessHostEventType">
  <owner>avi@chromium.org</owner>
  <summary>Event counts in ServiceUtilityProcessHost.</summary>
</histogram>

<histogram name="CloudPrint.ServiceUtilitySemanticCapsFailTime" units="ms">
  <obsolete>
    Removed 02/2017. http://crbug.com/643570
  </obsolete>
  <owner>avi@chromium.org</owner>
  <summary>
    The amount of time used to fail to collect printer capabilities.
  </summary>
</histogram>

<histogram name="CloudPrint.ServiceUtilitySemanticCapsTime" units="ms">
  <obsolete>
    Removed 02/2017. http://crbug.com/643570
  </obsolete>
  <owner>avi@chromium.org</owner>
  <summary>The amount of time used to collect printer capabilities.</summary>
</histogram>

<histogram name="CloudPrint.SpoolingTime" units="ms">
  <owner>avi@chromium.org</owner>
  <summary>The amount of time needed to spool print job.</summary>
</histogram>

<histogram name="CloudPrint.UnregisterPrinters">
  <owner>avi@chromium.org</owner>
  <summary>The number of printers to unregister.</summary>
</histogram>

<histogram name="CloudPrint.UrlFetcherDownloadSize" units="KB">
  <owner>avi@chromium.org</owner>
  <summary>The amount of data downloaded on cloud print request.</summary>
</histogram>

<histogram name="CloudPrint.UrlFetcherRequestTime" units="ms">
  <owner>avi@chromium.org</owner>
  <summary>The amount of time needed for cloud print request.</summary>
</histogram>

<histogram name="CloudPrint.UrlFetcherRequestType"
    enum="CloudPrintUrlFetcherRequestType">
  <owner>avi@chromium.org</owner>
  <summary>Request counts to cloud print service.</summary>
</histogram>

<histogram name="CloudPrint.UrlFetcherRetries">
  <owner>avi@chromium.org</owner>
  <summary>The number of retries used to complete cloud print request.</summary>
</histogram>

<histogram name="CloudPrint.UrlFetcherUploadSize" units="KB">
  <owner>avi@chromium.org</owner>
  <summary>The amount of data uploaded with cloud print request.</summary>
</histogram>

<histogram name="CloudPrint.XmppPingTry">
  <owner>avi@chromium.org</owner>
  <summary>Number of tries before successful ping. 99 means giving up.</summary>
</histogram>

<histogram name="CloudPrint.XmppTimeout" units="ms">
  <obsolete>
    Removed 02/2017. http://crbug.com/643570
  </obsolete>
  <owner>avi@chromium.org</owner>
  <summary>Xmpp timeout option value provided by server.</summary>
</histogram>

<histogram name="ComponentUpdater.Calls" enum="ComponentUpdaterCalls">
  <owner>sorin@chromium.org</owner>
  <summary>
    The number of times the component updater called UpdateClient::Install or
    UpdateClient::Update. These correspond to the number of manual component
    update checks performed as a result of a user action, and the number of
    automated component update checks.
  </summary>
</histogram>

<histogram name="ComponentUpdater.ChromeOS.InstallResult"
    enum="CrosComponentManagerError">
  <owner>xiaochu@chromium.org</owner>
  <summary>
    Chrome OS only. Installation error code in CrosComponentManager.
  </summary>
</histogram>

<histogram name="ComponentUpdater.ChromeOS.MountTime" units="ms">
  <owner>xiaochu@chromium.org</owner>
  <summary>Chrome OS only. Time it takes to mount a component image.</summary>
</histogram>

<histogram name="ComponentUpdater.UpdateCompleteError"
    enum="UpdateClientErrors">
  <owner>sorin@chromium.org</owner>
  <summary>The result of an install or an update check.</summary>
</histogram>

<histogram name="ComponentUpdater.UpdateCompleteResult" enum="BooleanError">
  <owner>sorin@chromium.org</owner>
  <summary>The result of an install or an update check.</summary>
</histogram>

<histogram name="ComponentUpdater.UpdateCompleteTime" units="ms">
  <owner>sorin@chromium.org</owner>
  <summary>
    Time to complete an Install or an Update component update call.
  </summary>
</histogram>

<histogram name="CompositeDocToPdf.Status" enum="PdfCompositionStatus">
  <owner>weili@chromium.org</owner>
  <summary>
    Tracks the status of PDF document composition and generation conducted in
    PDF compositor service.
  </summary>
</histogram>

<histogram name="CompositePageToPdf.Status" enum="PdfCompositionStatus">
  <owner>weili@chromium.org</owner>
  <summary>
    Tracks the status of PDF page composition and generation conducted in PDF
    compositor service.
  </summary>
</histogram>

<histogram name="Compositing.Browser.CachedImagesCount" units="count">
  <owner>vmpstr@chromium.org</owner>
  <summary>
    The maximum number of images that were cached in the browser over the
    lifetime of the image decode cache. This is recorded at the image cache
    destruction. It is further split up by Software and Gpu rasterization.
  </summary>
</histogram>

<histogram name="Compositing.Browser.CompositorFrame.Quads" units="quads">
  <owner>ccameron@chromium.org</owner>
  <summary>
    The total number of quads in all render passes in a CompositorFrame. This is
    logged as the CompositorFrame is submitted to its surface.
  </summary>
</histogram>

<histogram
    name="Compositing.Browser.DisplayListRecordingSource.UpdateInvalidatedAreaPerMs"
    units="pixels/ms">
  <obsolete>
    Deprecated 05/2016. See Blink.Paint.UpdateTime as a related alternate
    metric.
  </obsolete>
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Area of invalidated content, in pixels, divided by update (i.e. record), in
    milliseconds. Recorded when display list recording source is updated (in a
    browser process).
  </summary>
</histogram>

<histogram name="Compositing.Browser.DisplayListRecordingSource.UpdateUs"
    units="microseconds">
  <obsolete>
    Deprecated 05/2016. See Blink.Paint.UpdateTime as a related alternate
    metric.
  </obsolete>
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Time spent updating (i.e. recording) a display list, in microseconds.
    Recorded when display list is updated (in a browser process).
  </summary>
</histogram>

<histogram name="Compositing.Browser.DrawResult" enum="DrawResult">
  <obsolete>
    Deprecated 10/2018. This metric didn't end up being useful.
  </obsolete>
  <owner>kylechar@chromium.org</owner>
  <summary>
    How often the layer compositor successfully submitted content to the display
    compositor, or what caused an abort. This is reported fairly late in the
    pipeline, during the final stages of submitting content.
  </summary>
</histogram>

<histogram name="Compositing.Browser.GPUMemoryForTilingsInKb" units="Kb">
  <owner>yigu@chromium.org</owner>
  <summary>
    The GPU memory allocated for tilings (in a browser process), summed over all
    picture layers. Emitted once per drawing. Nothing is recorded if there are
    no picture layers.

    Tilings are used for decomposition of the layer's entire contents at a
    picture screenspace resolution to do threaded rasterization.

    Team: animations-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Compositing.Browser.HitTestTimeToFindClosestLayer"
    units="microseconds">
  <owner>yigu@chromium.org</owner>
  <summary>
    Time spent finding the closest matching layer to a given point whenever we
    do hit testing on LayerTreeImpl (in a browser process).

    Team: animations-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Compositing.Browser.LayersUpdateTime" units="microseconds">
  <owner>animations-dev@chromium.org</owner>
  <summary>
    Time spent updating layers, in microseconds. Recorded when layers are
    updated (in a browser process).

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Compositing.Browser.LayerTreeImpl.CalculateDrawPropertiesUs"
    units="microseconds">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Time spent updating layer draw properties, in microseconds. Recorded when a
    LayerTreeImpl's draw properties are updated (in a browser process).

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Compositing.Browser.NumActiveLayers" units="layers">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    The number of layers in the active tree for each compositor frame. This is
    logged once per frame, before the frame is drawn (in a browser process).
  </summary>
</histogram>

<histogram name="Compositing.Browser.NumActivePictureLayers" units="layers">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    The number of PictureLayers in the active tree for each compositor frame.
    This is logged once per frame, before the frame is drawn (in a browser
    process).
  </summary>
</histogram>

<histogram name="Compositing.Browser.NumRenderSurfaces" units="surfaces">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    The number of render surfaces in the render surface layer list. Recorded
    each time the render surface layer list is constructed (in a browser
    process).
  </summary>
</histogram>

<histogram name="Compositing.Browser.PictureMemoryUsageKb" units="KB">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Total estimated memory used by SkPictures in the layer tree, in kilobytes.
    Recorded once per frame, before the frame is drawn (in a browser process).
  </summary>
</histogram>

<histogram name="Compositing.Browser.PicturePile.UpdateInvalidatedAreaPerMs"
    units="pixels/ms">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Area of invalidated content, in pixels, divided by update (i.e. record), in
    milliseconds. Recorded when picture pile is updated (in a browser process).
  </summary>
</histogram>

<histogram name="Compositing.Browser.PicturePile.UpdateUs" units="microseconds">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Time spent updating (i.e. recording) a picture pile, in microseconds.
    Recorded when picture pile is updated (in a browser process).

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Compositing.Browser.RasterTask.RasterPixelsPerMs"
    units="pixels/ms">
  <obsolete>
    Deprecated 11/2016. Increased the max tracking range to accomendate GPU
    raster, and will require new baskets.
  </obsolete>
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Rasterized area, in pixels, divided by rasterization time, in milliseconds,
    of a compositor rasterization task. Recorded after the task finishes (in a
    browser process).
  </summary>
</histogram>

<histogram name="Compositing.Browser.RasterTask.RasterPixelsPerMs2"
    units="pixels/ms">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Rasterized area, in pixels, divided by rasterization time, in milliseconds,
    of a compositor rasterization task. Recorded after the task finishes (in a
    browser process).
  </summary>
</histogram>

<histogram name="Compositing.Browser.RasterTask.RasterUs" units="microseconds">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Time spent completing a compositor rasterization task, in microseconds.
    Recorded after the task finishes (in a browser process).

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram
    name="Compositing.Browser.RenderPass.AppendQuadData.NumMissingTilesNoImageContent">
  <obsolete>
    Deprecated 02/2016. We'd learned as much as we could from this metric and it
    made no sense to keep it around.
  </obsolete>
  <owner>vollick@chromium.org</owner>
  <summary>
    Tracks the number of missing tiles that had some image content in the
    browser process.
  </summary>
</histogram>

<histogram
    name="Compositing.Browser.RenderPass.AppendQuadData.NumMissingTilesSomeImageContent">
  <obsolete>
    Deprecated 02/2016. We'd learned as much as we could from this metric and it
    made no sense to keep it around.
  </obsolete>
  <owner>vollick@chromium.org</owner>
  <summary>
    Tracks the number of missing tiles that did not have any image content in
    the browser process.
  </summary>
</histogram>

<histogram name="Compositing.CompositorFrameSinkSupport.SubmitResult"
    enum="CompositorFrameSinkSubmitResult">
  <owner>kylechar@chromium.org</owner>
  <summary>
    The result of submitting a CompositorFrame to a CompositorFrameSink.
    ACCEPTED means the frame was accepted by the CompositorFrameSink.
    COPY_OUTPUT_REQUESTS_NOT_ALLOWED means an unprivileged client attempted to
    readback a texture. SURFACE_INVARIANTS_VIOLATION means size or device scale
    factor changed but a new viz::LocalSurfaceId was not allocated.
  </summary>
</histogram>

<histogram name="Compositing.CopyFromSurfaceTime" units="ms"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The turn around time taken for the async readback of pixels is measured
    here.
  </summary>
</histogram>

<histogram name="Compositing.CopyFromSurfaceTimeSynchronous" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time taken for the sync readback of pixels is measured here.
  </summary>
</histogram>

<histogram name="Compositing.DirectRenderer.GL.DrawFrameUs"
    units="microseconds">
  <owner>weiliangc@chromium.org</owner>
  <summary>
    Time spent drawing of composited layers by GLRenderer, in microseconds. This
    is logged once per frame, when a frame should be drawn.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Compositing.DirectRenderer.Software.DrawFrameUs"
    units="microseconds">
  <owner>weiliangc@chromium.org</owner>
  <summary>
    Time spent drawing of composited layers by SoftwareRenderer, in
    microseconds. This is logged once per frame, when a frame should be drawn.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Compositing.Display.Draw.Occlusion.Calculation.Time"
    units="microseconds">
  <owner>yiyix@chromium.org</owner>
  <summary>
    Time spent to remove invisible quads from the quad_list in CompositorFrame.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Compositing.Display.Draw.Occlusion.Drawing.Area.Saved"
    units="px">
  <obsolete>
    Deprecated 02/2018, replaced by similar metric
    Compositing.Display.Draw.Occlusion.Drawing.Area.Saved2.
  </obsolete>
  <owner>yiyix@chromium.org</owner>
  <summary>
    It records the total drawing area skipped to show on screen as a result of
    applying draw occlusion. This is logged once per frame, when the frame is
    drawn.
  </summary>
</histogram>

<histogram name="Compositing.Display.Draw.Occlusion.Drawing.Area.Saved2"
    units="px">
  <owner>yiyix@chromium.org</owner>
  <summary>
    It records the total drawing area skipped to show on screen as a result of
    applying draw occlusion. This is logged once per frame, when the frame is
    drawn.
  </summary>
</histogram>

<histogram name="Compositing.Display.Draw.Occlusion.Percentage.Saved" units="%">
  <owner>yiyix@chromium.org</owner>
  <summary>
    It records the percentage of total area drawing skipped by draw occlusion of
    the total area of damage rects in a compositor frame. This is logged once
    per frame, when the frame is drawn.
  </summary>
</histogram>

<histogram name="Compositing.Display.Draw.Quads" units="quads">
  <owner>ccameron@chromium.org</owner>
  <summary>
    This is logged once per frame, when the frame is drawn. The total number of
    quads in all render passes in the CompositorFrame that is produced by
    surface aggregation.
  </summary>
</histogram>

<histogram name="Compositing.Display.Draw.Quads.With.Complex.Transform.Area"
    units="px">
  <obsolete>
    Deprecated 03/2018. We'd learned enough from this metric and it made no
    sense to keep it around.
  </obsolete>
  <owner>yiyix@chromium.org</owner>
  <summary>
    This is logged once per frame, when the frame is drawn. Captures area of all
    draw quads that need to go through no scale and no translation transforms.
  </summary>
</histogram>

<histogram
    name="Compositing.DisplayListRecordingSource.UpdateInvalidatedAreaPerMs"
    units="pixels/ms">
  <obsolete>
    Deprecated 09/2015, replaced by similar metrics under Compositing.Renderer
    and Compositing.Browser, depending on which process it occurs in.
  </obsolete>
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Area of invalidated content, in pixels, divided by update (i.e. record), in
    milliseconds. Recorded when display list recording source is updated.
  </summary>
</histogram>

<histogram name="Compositing.DisplayListRecordingSource.UpdateUs"
    units="microseconds">
  <obsolete>
    Deprecated 09/2015, replaced by similar metrics under Compositing.Renderer
    and Compositing.Browser, depending on which process it occurs in.
  </obsolete>
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Time spent updating (i.e. recording) a display list, in microseconds.
    Recorded when display list is updated.
  </summary>
</histogram>

<histogram name="Compositing.LayerTreeImpl.FindClosestMatchingLayerUs"
    units="microseconds">
  <obsolete>
    Deprecated 05/2017 in Issue 710306. Histogram was used temporarily for
    tracking a potential performance regression.
  </obsolete>
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Time spent finding the closest matching layer to a given point, in
    microseconds. Recorded each time we do hit testing on LayerTreeImpl.
  </summary>
</histogram>

<histogram name="Compositing.MainFrameSynchronization.Duration" units="ms">
  <owner>kylechar@chromium.org</owner>
  <summary>
    The amount of time it took for a main frame with unresolved dependencies to
    activate. Note that some activations may be triggered due to a deadline
    hitting.
  </summary>
</histogram>

<histogram name="Compositing.NumActiveLayers">
  <obsolete>
    Deprecated 04/2016, replaced by similar metrics under Compositing.Renderer
    and Compositing.Browser, depending on which process it occurs in.
  </obsolete>
  <owner>dneto@chromium.org</owner>
  <summary>
    The number of layers in the active tree for each compositor frame. This is
    logged once per frame, before the frame is drawn.
  </summary>
</histogram>

<histogram name="Compositing.PictureMemoryUsageKb" units="KB">
  <obsolete>
    Deprecated 09/2015, replaced by similar metrics under Compositing.Renderer
    and Compositing.Browser, depending on which process it occurs in.
  </obsolete>
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Total estimated memory used by SkPictures in the layer tree, in kilobytes.
    Recorded once per frame, before the frame is drawn.
  </summary>
</histogram>

<histogram name="Compositing.PicturePile.UpdateInvalidatedAreaPerMs"
    units="pixels/ms">
  <obsolete>
    Deprecated 09/2015, replaced by similar metrics under Compositing.Renderer
    and Compositing.Browser, depending on which process it occurs in.
  </obsolete>
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Area of invalidated content, in pixels, divided by update (i.e. record), in
    milliseconds. Recorded when picture pile is updated.
  </summary>
</histogram>

<histogram name="Compositing.PicturePile.UpdateUs" units="microseconds">
  <obsolete>
    Deprecated 09/2015, replaced by similar metrics under Compositing.Renderer
    and Compositing.Browser, depending on which process it occurs in.
  </obsolete>
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Time spent updating (i.e. recording) a picture pile, in microseconds.
    Recorded when picture pile is updated.
  </summary>
</histogram>

<histogram name="Compositing.RasterTask.RasterPixelsPerMs" units="pixels/ms">
  <obsolete>
    Deprecated 09/2015, replaced by similar metrics under Compositing.Renderer
    and Compositing.Browser, depending on which process it occurs in.
  </obsolete>
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Rasterized area, in pixels, divided by rasterization time, in milliseconds,
    of a compositor rasterization task. Recorded after the task finishes.
  </summary>
</histogram>

<histogram name="Compositing.RasterTask.RasterUs" units="microseconds">
  <obsolete>
    Deprecated 09/2015, replaced by similar metrics under Compositing.Renderer
    and Compositing.Browser, depending on which process it occurs in.
  </obsolete>
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Time spent completing a compositor rasterization task, in microseconds.
    Recorded after the task finishes.
  </summary>
</histogram>

<histogram name="Compositing.Renderer.CachedImagesCount" units="count">
  <owner>vmpstr@chromium.org</owner>
  <summary>
    The maximum number of images that were cached in the renderer over the
    lifetime of the image decode cache. This is recorded at the image cache
    destruction. It is further split up by Software and Gpu rasterization.
  </summary>
</histogram>

<histogram name="Compositing.Renderer.CALayerResult" enum="CALayerResult">
  <owner>ccameron@chromium.org</owner>
  <summary>
    The outcome of attempting to replace all renderer tiles with CALayers.
    Either success, or the first reason why a DrawQuad couldn't be replaced by a
    CALayer.
  </summary>
</histogram>

<histogram name="Compositing.Renderer.CheckerImagingDecision"
    enum="CheckerImagingDecision">
  <owner>khushalsagar@chromium.org</owner>
  <summary>
    The outcome for whether an image could be sucessfully deferred for
    asynchronous decode in the renderer compositor. If not, the reason for using
    a synchronous decode. An image which is decoded asynchronously will be
    checkerboarded on the rasterized tiles until the decode is finished, as
    opposed to synchronous decodes where the tile rasterization is blocked on
    the image decode completing.
  </summary>
</histogram>

<histogram name="Compositing.Renderer.CompositorFrame.Quads" units="quads">
  <owner>ccameron@chromium.org</owner>
  <summary>
    The total number of quads in all render passes in a CompositorFrame. This is
    logged as the CompositorFrame is submitted to its surface.
  </summary>
</histogram>

<histogram
    name="Compositing.Renderer.DisplayListRecordingSource.UpdateInvalidatedAreaPerMs"
    units="pixels/ms">
  <obsolete>
    Deprecated 05/2016. See Blink.Paint.UpdateTime as a related alternate
    metric.
  </obsolete>
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Area of invalidated content, in pixels, divided by update (i.e. record), in
    milliseconds. Recorded when display list recording source is updated (in a
    renderer process).
  </summary>
</histogram>

<histogram name="Compositing.Renderer.DisplayListRecordingSource.UpdateUs"
    units="microseconds">
  <obsolete>
    Deprecated 05/2016. See Blink.Paint.UpdateTime as a related alternate
    metric.
  </obsolete>
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Time spent updating (i.e. recording) a display list, in microseconds.
    Recorded when display list is updated (in a renderer process).
  </summary>
</histogram>

<histogram name="Compositing.Renderer.DrawResult" enum="DrawResult">
  <obsolete>
    Deprecated 10/2018. This metric didn't end up being useful.
  </obsolete>
  <owner>kylechar@chromium.org</owner>
  <summary>
    How often the layer compositor successfully submitted content to the display
    compositor, or what caused an abort. This is reported fairly late in the
    pipeline, during the final stages of submitting content.
  </summary>
</histogram>

<histogram name="Compositing.Renderer.GPUMemoryForTilingsInKb" units="Kb">
  <owner>yigu@chromium.org</owner>
  <summary>
    The GPU memory allocated for tilings (in a renderer process), summed over
    all picture layers. Emitted once per drawing. Nothing is recorded if there
    are no picture layers.

    Tilings are used for decomposition of the layer's entire contents at a
    picture screenspace resolution to do threaded rasterization.

    Team: animations-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Compositing.Renderer.HitTestTimeToFindClosestLayer"
    units="microseconds">
  <owner>yigu@chromium.org</owner>
  <summary>
    Time spent finding the closest matching layer to a given point whenever we
    do hit testing on LayerTreeImpl (in a renderer process).

    Team: animations-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Compositing.Renderer.LayersUpdateTime" units="microseconds">
  <owner>animations-dev@chromium.org</owner>
  <summary>
    Time spent updating layers, in microseconds. Recorded when layers are
    updated (in a renderer process).

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Compositing.Renderer.LayerTreeImpl.CalculateDrawPropertiesUs"
    units="microseconds">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Time spent updating layer draw properties, in microseconds. Recorded when a
    LayerTreeImpl's draw properties are updated (in a renderer process).

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Compositing.Renderer.NumActiveLayers" units="layers">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    The number of layers in the active tree for each compositor frame. This is
    logged once per frame, before the frame is drawn (in a renderer process).
  </summary>
</histogram>

<histogram name="Compositing.Renderer.NumActivePictureLayers" units="layers">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    The number of PictureLayers in the active tree for each compositor frame.
    This is logged once per frame, before the frame is drawn (in a renderer
    process).
  </summary>
</histogram>

<histogram name="Compositing.Renderer.NumRenderSurfaces" units="surfaces">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    The number of render surfaces in the render surface layer list. Recorded
    each time the render surface layer list is constructed (in a renderer
    process).
  </summary>
</histogram>

<histogram name="Compositing.Renderer.PictureMemoryUsageKb" units="KB">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Total estimated memory used by SkPictures in the layer tree, in kilobytes.
    Recorded once per frame, before the frame is drawn (in a renderer process).
  </summary>
</histogram>

<histogram name="Compositing.Renderer.PicturePile.UpdateInvalidatedAreaPerMs"
    units="pixels/ms">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Area of invalidated content, in pixels, divided by update (i.e. record), in
    milliseconds. Recorded when picture pile is updated (in a renderer process).
  </summary>
</histogram>

<histogram name="Compositing.Renderer.PicturePile.UpdateUs"
    units="microseconds">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Time spent updating (i.e. recording) a picture pile, in microseconds.
    Recorded when picture pile is updated (in a renderer process).

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Compositing.Renderer.RasterTask.RasterPixelsPerMs"
    units="pixels/ms">
  <obsolete>
    Deprecated 11/2016. Increased the max tracking range to accomendate GPU
    raster, and will require new baskets.
  </obsolete>
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Rasterized area, in pixels, divided by rasterization time, in milliseconds,
    of a compositor rasterization task. Recorded after the task finishes (in a
    renderer process).
  </summary>
</histogram>

<histogram name="Compositing.Renderer.RasterTask.RasterPixelsPerMs2"
    units="pixels/ms">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Rasterized area, in pixels, divided by rasterization time, in milliseconds,
    of a compositor rasterization task. Recorded after the task finishes (in a
    renderer process).
  </summary>
</histogram>

<histogram name="Compositing.Renderer.RasterTask.RasterUs" units="microseconds">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    Time spent completing a compositor rasterization task, in microseconds.
    Recorded after the task finishes (in a renderer process).

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram
    name="Compositing.Renderer.RenderPass.AppendQuadData.NumMissingTilesNoImageContent">
  <obsolete>
    Deprecated 02/2016. We'd learned as much as we could from this metric and it
    made no sense to keep it around.
  </obsolete>
  <owner>vollick@chromium.org</owner>
  <summary>
    Tracks the number of missing tiles that had some image content in the
    renderer process.
  </summary>
</histogram>

<histogram
    name="Compositing.Renderer.RenderPass.AppendQuadData.NumMissingTilesSomeImageContent">
  <obsolete>
    Deprecated 02/2016. We'd learned as much as we could from this metric and it
    made no sense to keep it around.
  </obsolete>
  <owner>vollick@chromium.org</owner>
  <summary>
    Tracks the number of missing tiles that did not have any image content in
    the renderer process.
  </summary>
</histogram>

<histogram
    name="Compositing.RenderPass.AppendQuadData.CheckerboardedNeedRasterContentArea"
    units="pixels/frame">
  <owner>weiliangc@chromium.org</owner>
  <summary>
    Checkerboarded area, in number of pixels, that has recording but does not
    have time to finish rastering yet. A sample is recorded everytime a frame is
    drawn while a scroll is in progress. Tracking bug 535732.
  </summary>
</histogram>

<histogram
    name="Compositing.RenderPass.AppendQuadData.CheckerboardedNoRecordingContentArea"
    units="pixels/frame">
  <owner>weiliangc@chromium.org</owner>
  <summary>
    Checkerboarded area, in number of pixels, that has no recording to raster
    from. A sample is recorded everytime a frame is drawn while a scroll is in
    progress. Tracking bug 535732.
  </summary>
</histogram>

<histogram name="Compositing.RenderPass.AppendQuadData.MaskLayerPercent"
    units="%" expires_after="2019-02-01">
  <obsolete>
    Deprecated as being no longer useful to track.
  </obsolete>
  <owner>enne@chromium.org</owner>
  <owner>chrishtr@chromium.org</owner>
  <summary>
    Percent of layers drawn that frame that are mask layers. A sample is
    recorded on the first draw per commit.
  </summary>
</histogram>

<histogram name="Compositing.RenderPass.AppendQuadData.NumIncompleteTiles">
  <owner>weiliangc@chromium.org</owner>
  <summary>
    Keeps track of number of incomplete tiles in a drawn compositor frame while
    scrolling. This is a rough measurement of ugliness during user interaction.
    Incomplete tiles are non ideal scaled. A sample is recorded everytime a
    frame is drawn while a scroll is in progress. Tracking bug 381695.
  </summary>
</histogram>

<histogram name="Compositing.RenderPass.AppendQuadData.NumMissingTiles">
  <owner>weiliangc@chromium.org</owner>
  <summary>
    Keeps track of number of missing tiles in a drawn compositor frame while
    scrolling. This is a rough measurement of ugliness during user interaction.
    Incomplete tiles are checkerboard or solid color. A sample is recorded
    everytime a frame is drawn while a scroll is in progress. Tracking bug
    381695.
  </summary>
</histogram>

<histogram name="Compositing.RenderPass.AppendQuadData.RCMaskArea"
    units="pixels" expires_after="2019-02-01">
  <obsolete>
    Deprecated as being no longer useful to track.
  </obsolete>
  <owner>enne@chromium.org</owner>
  <owner>chrishtr@chromium.org</owner>
  <summary>
    Total visible area of layers drawn that frame that are mask layers and also
    are simple rounded corner masks. A sample is recorded on the first draw per
    commit.
  </summary>
</histogram>

<histogram name="Compositing.RenderPass.AppendQuadData.RCMaskAreaPercent"
    units="%" expires_after="2019-02-01">
  <obsolete>
    Deprecated as being no longer useful to track.
  </obsolete>
  <owner>enne@chromium.org</owner>
  <owner>chrishtr@chromium.org</owner>
  <summary>
    Percent of visible area of layers drawn that frame that are mask layers and
    also are simple rounded corner masks. A sample is recorded on the first draw
    per commit.
  </summary>
</histogram>

<histogram name="Compositing.RenderPass.AppendQuadData.RCMaskLayerPercent"
    units="%" expires_after="2019-02-01">
  <obsolete>
    Deprecated as being no longer useful to track.
  </obsolete>
  <owner>enne@chromium.org</owner>
  <owner>chrishtr@chromium.org</owner>
  <summary>
    Percent of layers drawn that frame that are mask layers and also are simple
    rounded corner masks. A sample is recorded on the first draw per commit.
  </summary>
</histogram>

<histogram name="Compositing.SurfaceAggregator.AggregateUs"
    units="microseconds">
  <owner>weiliangc@chromium.org</owner>
  <summary>
    Time spent aggregating compositor frames from different surfaces in
    microseconds. This is logged once per frame.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram
    name="Compositing.SurfaceAggregator.LatestInFlightSurface.ManhattanDistanceToPrimary"
    units="surfaces">
  <obsolete>
    Deprecated 10/2018. This metric didn't end up being useful.
  </obsolete>
  <owner>akaba@chromium.org</owner>
  <owner>kylechar@chromium.org</owner>
  <summary>
    The distance between the latest inflight surface and the primary surface.
    This is logged for each call to HandleSurfaceQuad().
  </summary>
</histogram>

<histogram name="Compositing.SurfaceAggregator.SurfaceDrawQuad.MissingSurface"
    units="quads">
  <obsolete>
    Deprecated 07/2018 in issue 865597 in order to avoid spurious error messages
    on Viz process crash.
  </obsolete>
  <owner>kylechar@chromium.org</owner>
  <summary>
    The number of SurfaceDrawQuads where the surface doesn't exist. This is
    logged for each call to Aggregate().
  </summary>
</histogram>

<histogram name="Compositing.SurfaceAggregator.SurfaceDrawQuad.NoActiveFrame"
    units="quads">
  <obsolete>
    Deprecated 07/2018 in issue 865597 in order to avoid spurious error messages
    on Viz process crash.
  </obsolete>
  <owner>kylechar@chromium.org</owner>
  <summary>
    The number of SurfaceDrawQuads where the surface exists but doesn't have an
    active CompositorFrame. This is logged for each call to Aggregate().
  </summary>
</histogram>

<histogram
    name="Compositing.SurfaceAggregator.SurfaceDrawQuad.UsingFallbackSurface"
    units="quads">
  <obsolete>
    Deprecated 10/2018. This metric didn't end up being useful.
  </obsolete>
  <owner>kylechar@chromium.org</owner>
  <summary>
    The number of SurfaceDrawQuads where the primary SurfaceId does not have a
    corresponding active CompositorFrame and so the fallback surface is used
    instead. This is logged for each call to Aggregate().
  </summary>
</histogram>

<histogram name="Compositing.SurfaceAggregator.SurfaceDrawQuad.ValidSurface"
    units="quads">
  <obsolete>
    Deprecated 10/2018. This metric didn't end up being useful.
  </obsolete>
  <owner>kylechar@chromium.org</owner>
  <summary>
    The number of SurfaceDrawQuads where the surface exists and has an active
    CompositorFrame. This is logged for each call to Aggregate().
  </summary>
</histogram>

<histogram name="Compositing.SurfaceDependencyDeadline.DeadlineHit"
    units="Boolean">
  <obsolete>
    Deprecated as of 10/2018. This metric didn't end up being useful.
  </obsolete>
  <owner>kylechar@chromium.org</owner>
  <summary>
    Tracks whether an activation of a surface was due to due to a deadline or
    the resolution of dependencies.
  </summary>
</histogram>

<histogram name="Compositing.SurfaceDependencyDeadline.Duration" units="ms">
  <owner>kylechar@chromium.org</owner>
  <summary>
    The amount of time it took for a Surface with unresolved dependencies to
    activate. Note that some activations may be triggered due to a deadline
    hitting. That is tracked in the DeadlineHit histogram.
  </summary>
</histogram>

<histogram name="Compositing.SurfaceInvariantsViolations" units="violations">
  <obsolete>
    Deprecated as of 2018/09/10 in favor of
    Compositing.CompositorFrameSinkSupport.SubmitResult.
  </obsolete>
  <owner>kylechar@chromium.org</owner>
  <summary>
    The number of times a renderer in this browser session has violated a
    surface synchronization invariant. This manifests as a skipped frame.
    Ideally this metric should always report 0, but realistically there are
    races in the system and this tracks the frequency that we hit these races.
  </summary>
</histogram>

<histogram name="Compositing.SurfaceManager.AliveSurfaces" units="surfaces">
  <owner>akaba@chromium.org</owner>
  <owner>kylechar@chromium.org</owner>
  <summary>
    Tracks the number of alive surfaces after each garbage collection operation.
  </summary>
</histogram>

<histogram name="Compositing.SurfaceManager.NumOldTemporaryReferences">
  <obsolete>
    Deprecated 2018/01/24.
  </obsolete>
  <owner>kylechar@chromium.org</owner>
  <summary>
    The number of temporary references that have existed for at least 10 seconds
    and are most likely orphaned. This is logged every 10 seconds.
  </summary>
</histogram>

<histogram name="Compositing.SurfaceManager.RemovedTemporaryReference"
    enum="TemporaryReferenceRemovedReason">
  <owner>kylechar@chromium.org</owner>
  <summary>Tracks the reason for removing a temporary reference.</summary>
</histogram>

<histogram name="Compositing.SurfaceManager.TemporaryReferences"
    units="references">
  <owner>akaba@chromium.org</owner>
  <owner>kylechar@chromium.org</owner>
  <summary>
    Tracks the number of temporary references after each garbage collection
    operation.
  </summary>
</histogram>

<histogram name="CompositorImplAndroid.TearDownDisplayTime" units="ms"
    expires_after="2019-03-30">
  <owner>ericrk@chromium.org</owner>
  <summary>
    Tracks the amount of time it takes to synchronously tear down the display
    when the CompositorImpl becomes invisible or is destroyed. Recorded after
    display teardown completes in CompositorImpl::
    TearDownDisplayAndUnregisterRootFrameSink.
  </summary>
</histogram>

<histogram name="Conflicts.ConfirmedBadModules" units="modules"
    expires_after="2018-08-30">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The number of confirmed bad modules found during module enumeration.
  </summary>
</histogram>

<histogram name="Conflicts.EnumerateLoadedModules" units="ms"
    expires_after="2018-08-30">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The length of time it takes to enumerate the loaded modules in the browser
    process.
  </summary>
</histogram>

<histogram name="Conflicts.EnumerateShellExtensions" units="ms"
    expires_after="2018-08-30">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The length of time it takes to enumerate the shell extensions.
  </summary>
</histogram>

<histogram name="Conflicts.EnumerateWinsockModules" units="ms"
    expires_after="2018-08-30">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The length of time it takes to enumerate the Winsock LSP modules.
  </summary>
</histogram>

<histogram name="Conflicts.EnumerationInspectionTime" units="ms"
    expires_after="2018-08-30">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The cumulative length of time it takes to inspect all modules on disk,
    extracting their certificates and version information. This work is actually
    spread out over a much longer period of time so as not to impact the user.
  </summary>
</histogram>

<histogram name="Conflicts.EnumerationTotalTime" units="ms"
    expires_after="2018-08-30">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The cumulative length of time it takes to enumerate and inspect all modules.
    This work is actually spread out over a much longer period of time so as not
    to impact the user.
  </summary>
</histogram>

<histogram name="Conflicts.SuspectedBadModules" units="modules"
    expires_after="2018-08-30">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The number of suspected bad modules found during module enumeration.
  </summary>
</histogram>

<histogram name="ConnectivityDetector.FromSystem" enum="Boolean"
    expires_after="2019-03-30">
  <owner>jianli@chromium.org</owner>
  <summary>
    Whether or not the network connectivity info, i.e. validated, is provided by
    the system. We will use it if it is available from the system. Otherwise, we
    will do our own http probes to find it out. This UMA will not be recorded if
    a flag in about:flags is set to bypass this logic to always favor the check
    by http probes.
  </summary>
</histogram>

<histogram name="ConnectivityDetector.Probe.HttpResponseCode"
    enum="HttpResponseCode" expires_after="2019-03-30">
  <owner>jianli@chromium.org</owner>
  <summary>
    The HTTP response code returned from a HTTP probe for the purpose of
    checking network connectivity.
  </summary>
</histogram>

<histogram name="ConnectivityDetector.Probe.Result" enum="ProbeResult"
    expires_after="2019-03-30">
  <owner>jianli@chromium.org</owner>
  <summary>
    The result from a HTTP probe for the purpose of checking network
    connectivity.
  </summary>
</histogram>

<histogram name="ConnectivityDetector.Probe.ValidationTime" units="ms"
    expires_after="2019-03-30">
  <owner>jianli@chromium.org</owner>
  <summary>
    The total duration measuring all the HTTP probes and backoff time taken when
    the network connectivity is successfully validated.
  </summary>
</histogram>

<histogram name="ConnectivityDetector.Probe.ValidationUrl" enum="ProbeUrlType"
    expires_after="2019-03-30">
  <owner>jianli@chromium.org</owner>
  <summary>
    Records type of url, default or fallback URL, resulting in successful
    connectivity validation.
  </summary>
</histogram>

<histogram name="ConnectivityDiagnostics.ChromeOsSignalStrength" units="%">
  <owner>ebeach@google.com</owner>
  <summary>
    Connectivity Diagnostics App: WiFi signal strength recorded during
    NIC_SIGNAL_STRENGTH test.
  </summary>
  <details>
    The &quot;Strength&quot; property of a WiFi signal is a partially-reversible
    function that linearly maps the RSSI range -120dBm to -20dBm to Strength
    values from 0 to 100.
  </details>
</histogram>

<histogram name="ConnectivityDiagnostics.HTTP_LATENCY" units="ms">
  <owner>ebeach@google.com</owner>
  <summary>HTTP latency seen by the Connectivity Diagnostics.</summary>
  <details>
    HTTP latency is computed using the chrome.socket API to make an HTTP GET
    request to the /generate_204 page of three randomly generated Google
    hostnames (*-ccd-testing-v4.metric.gstatic.com). The time taken from issuing
    the HTTP request to receiving a response is clocked in JavaScript and the
    arithmetic mean of the three times is used as the HTTP latency.
  </details>
</histogram>

<histogram name="ConnectivityDiagnostics.RESOLVER_LATENCY" units="ms">
  <owner>ebeach@google.com</owner>
  <summary>Resolution latency seen by the Connectivity Diagnostics.</summary>
  <details>
    Resolver latency is computed by using the chrome.dns API to query three
    randomly generated Google hostnames (*-ccd-testing-v4.metric.gstatic.com).
    The random hostnames guarantees that there will be no caching of DNS
    hostnames. The time taken from issuing the DNS request to receiving a
    response is clocked in JavaScript and the arithmetic mean of the three times
    is used as the resolver latency.
  </details>
</histogram>

<histogram name="ConnectivityDiagnostics.TestVerdict"
    enum="ConnectivityDiagnosticsTestVerdict">
  <owner>ebeach@google.com</owner>
  <summary>
    Connectivity Diagnostics App: Outcome of the connectivity tests.
  </summary>
</histogram>

<histogram name="ConnectivityDiagnostics.TimeTaken" units="ms">
  <owner>ebeach@google.com</owner>
  <summary>
    Connectivity Diagnostics App: Amount of time taken to run each of the
    connectivity tests.
  </summary>
</histogram>

<histogram name="ContentCapture.CaptureContentDelayTime" units="ms">
  <owner>michaelbai@chromium.org</owner>
  <summary>
    The time between a change in content and when the new capture is sent to the
    browser process.
  </summary>
  <details>
    A specific content change is hard to track. This is roughly calculated as
    the interval from the first content change after a prior capturing content
    to the first content being sent after the next capture of content.
  </details>
</histogram>

<histogram name="ContentCapture.CaptureContentTime" units="microseconds">
  <owner>michaelbai@chromium.org</owner>
  <summary>The time taken to capture the on-screen content.</summary>
</histogram>

<histogram name="ContentCapture.CaptureOneContentTime" units="microseconds"
    expires_after="M75">
  <owner>michaelbai@chromium.org</owner>
  <summary>The estimated time taken to capture one on-screen content.</summary>
</histogram>

<histogram name="ContentCapture.GetBoundingBox" units="microseconds">
  <owner>michaelbai@chromium.org</owner>
  <summary>
    The time taken to get the bounding box of the batch of captured content.
  </summary>
</histogram>

<histogram name="ContentCapture.SendContentTime" units="microseconds">
  <owner>michaelbai@chromium.org</owner>
  <summary>
    The time taken to send the content to the browser process in batch.
  </summary>
</histogram>

<histogram name="ContentCapture.SentContentCount" units="count">
  <owner>michaelbai@chromium.org</owner>
  <summary>The total number of content captures sent for a document.</summary>
</histogram>

<histogram name="ContentSettings.DefaultAutoplaySetting" enum="ContentSetting">
  <owner>mlamouri@chromium.org</owner>
  <summary>The default autoplay setting at profile open.</summary>
</histogram>

<histogram name="ContentSettings.DefaultCookiesSetting" enum="ContentSetting">
  <owner>toyoshim@chromium.org</owner>
  <summary>The default cookies setting at profile open.</summary>
</histogram>

<histogram name="ContentSettings.DefaultHandlersSetting" enum="ContentSetting">
  <obsolete>
    Deprecated 07/2014 since it is not referenced anywhere in the code.
  </obsolete>
  <owner>toyoshim@chromium.org</owner>
  <summary>The default handler setting at profile open.</summary>
</histogram>

<histogram name="ContentSettings.DefaultImagesSetting" enum="ContentSetting">
  <owner>toyoshim@chromium.org</owner>
  <summary>The default image setting at profile open.</summary>
</histogram>

<histogram name="ContentSettings.DefaultJavaScriptSetting"
    enum="ContentSetting">
  <owner>toyoshim@chromium.org</owner>
  <summary>The default JavaScript setting at profile open.</summary>
</histogram>

<histogram name="ContentSettings.DefaultKeygenSetting" enum="ContentSetting">
  <obsolete>
    Support for keygen was removed.
  </obsolete>
  <owner>svaldez@chromium.org</owner>
  <summary>
    The default setting for using key generation in forms at profile open.
  </summary>
</histogram>

<histogram name="ContentSettings.DefaultLocationSetting" enum="ContentSetting">
  <owner>toyoshim@chromium.org</owner>
  <summary>The default location setting at profile open.</summary>
</histogram>

<histogram name="ContentSettings.DefaultMediaStreamCameraSetting"
    enum="ContentSetting">
  <owner>msramek@chromium.org</owner>
  <summary>The default camera setting at profile open.</summary>
</histogram>

<histogram name="ContentSettings.DefaultMediaStreamMicSetting"
    enum="ContentSetting">
  <owner>msramek@chromium.org</owner>
  <summary>The default microphone setting at profile open.</summary>
</histogram>

<histogram name="ContentSettings.DefaultMediaStreamSetting"
    enum="ContentSetting">
  <obsolete>
    This setting was deprecated in r322364 and replaced with separate settings
    for camera and microphone. See
    ContentSettings.DefaultMediaStreamCameraSetting and
    ContentSettings.DefaultMediaStreamMicSetting.
  </obsolete>
  <owner>toyoshim@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <summary>The default MediaStream setting at profile open.</summary>
</histogram>

<histogram name="ContentSettings.DefaultMIDISysExSetting" enum="ContentSetting">
  <owner>toyoshim@chromium.org</owner>
  <summary>
    The default MIDI permission setting on sysex (system exclusive) messages at
    profile open.
  </summary>
</histogram>

<histogram name="ContentSettings.DefaultMouseCursorSetting"
    enum="ContentSetting">
  <owner>toyoshim@chromium.org</owner>
  <summary>The default mouse cursor setting at profile open.</summary>
</histogram>

<histogram name="ContentSettings.DefaultNotificationsSetting"
    enum="ContentSetting">
  <owner>toyoshim@chromium.org</owner>
  <summary>The default notification setting at profile open.</summary>
</histogram>

<histogram name="ContentSettings.DefaultPluginsSetting" enum="ContentSetting">
  <owner>toyoshim@chromium.org</owner>
  <summary>The default plugins setting at profile open.</summary>
</histogram>

<histogram name="ContentSettings.DefaultPopupsSetting" enum="ContentSetting">
  <owner>toyoshim@chromium.org</owner>
  <summary>The default popups setting at profile open.</summary>
</histogram>

<histogram name="ContentSettings.DefaultPushMessagingSetting"
    enum="ContentSetting">
  <owner>miguelg@chromium.org</owner>
  <summary>
    The default permission setting for push messages at profile open.
  </summary>
</histogram>

<histogram name="ContentSettings.DefaultSoundSetting" enum="ContentSetting">
  <owner>mlamouri@chromium.org</owner>
  <owner>steimel@chromium.org</owner>
  <summary>The default sound setting at profile open.</summary>
</histogram>

<histogram name="ContentSettings.DefaultSubresourceFilterSetting"
    enum="ContentSetting">
  <owner>csharrison@chromium.org</owner>
  <summary>The default subresource filter setting at profile open</summary>
</histogram>

<histogram name="ContentSettings.DefaultUsbGuardSetting" enum="ContentSetting">
  <owner>reillyg@chromium.org</owner>
  <summary>The default permission setting for WebUSB at profile open.</summary>
</histogram>

<histogram name="ContentSettings.DefaultWebBluetoothGuardSetting"
    enum="ContentSetting">
  <owner>jyasskin@chromium.org</owner>
  <summary>
    The default permission setting for Web Bluetooth at profile open.
  </summary>
</histogram>

<histogram name="ContentSettings.EphemeralFlashPermission"
    enum="ContentSettings.EphemeralFlashPermission" expires_after="M87">
  <owner>engedy@chromium.org</owner>
  <summary>
    Records the number of times Flash permission is granted for a host.
  </summary>
</histogram>

<histogram name="ContentSettings.Exceptions">
  <owner>lshang@chromium.org</owner>
  <summary>
    The number of user defined content setting exceptions at browser start.
    Suffixed with the name of content setting types.
  </summary>
</histogram>

<histogram name="ContentSettings.ExceptionScheme" enum="ContentSettingScheme">
  <owner>lshang@chromium.org</owner>
  <summary>
    Records the schemes of content setting exceptions at browser start. Each
    exception provides one sample.
  </summary>
</histogram>

<histogram name="ContentSettings.ExceptionSchemeFile.HasPath"
    enum="BooleanHasPath">
  <owner>alexmos@chromium.org</owner>
  <summary>
    Records how often a content settings exception for the file: scheme has a
    non-empty path. Recorded once per exception at browser start.
  </summary>
</histogram>

<histogram name="ContentSettings.ExceptionSchemeFile.Type.WithoutPath"
    enum="ContentType">
  <owner>alexmos@chromium.org</owner>
  <summary>
    Count of how often a specific content type has a content settings exception
    defined for a file: scheme with no path (i.e., wildcard path). Recorded once
    per exception at browser start.

    Note: The values of this metric collected for Chrome 49 (early 2016) are
    innacurate and should not be trusted. crbug.com/589255.
  </summary>
</histogram>

<histogram name="ContentSettings.ExceptionSchemeFile.Type.WithPath"
    enum="ContentType">
  <owner>alexmos@chromium.org</owner>
  <summary>
    Count of how often a specific content type has a content settings exception
    defined for a file: scheme with a valid, non-empty path. Recorded once per
    exception at browser start.

    Note: The values of this metric collected for Chrome 49 (early 2016) are
    innacurate and should not be trusted. crbug.com/589255.
  </summary>
</histogram>

<histogram name="ContentSettings.ExtensionEmbeddedSettingSet"
    enum="ContentType">
  <owner>raymes@chromium.org</owner>
  <summary>
    Count of how often a specific content setting is set for an embedded URL by
    an extension. Only counts settings when the secondary pattern is different
    to the primary pattern. Exactly one of this or
    ContentSettings.ExtensionNonEmbeddedSettingSet will be emitted per call to
    contentSettings.set(), if the arguments to the call are valid.
  </summary>
</histogram>

<histogram name="ContentSettings.ExtensionNonEmbeddedSettingSet"
    enum="ContentType">
  <owner>raymes@chromium.org</owner>
  <summary>
    Count of how often a specific content setting is set when only a single
    pattern is specified. Exactly one of this or
    ContentSettings.ExtensionEmbeddedSettingSet will be emitted per call to
    contentSettings.set(), if the arguments to the call are valid.
  </summary>
</histogram>

<histogram name="ContentSettings.ImagePressed" enum="ContentSettingImageType">
  <owner>calamity@chromium.org</owner>
  <summary>
    Counts which content setting buttons are pressed by the user.
  </summary>
</histogram>

<histogram name="ContentSettings.LastSettingParsed" enum="LastSettingParsed">
  <obsolete>
    Deprecated 2015-10-05 in Issue 433475. Histogram was used temorarily for
    diagnosing crash causes.
  </obsolete>
  <owner>scheib@chromium.org</owner>
  <summary>
    Numer of results of parsing WebsiteSettingsHandler::last_setting_ success or
    failure in WebsiteSettingsHandler methods.
  </summary>
</histogram>

<histogram name="ContentSettings.MixedScript"
    enum="ContentSettingMixedScriptAction">
  <owner>estark@chromium.org</owner>
  <summary>
    Tracks whether the mixed content shield was shown, and how the user
    interacted with it.
  </summary>
</histogram>

<histogram name="ContentSettings.NumberOfAllowCookiesExceptions">
  <obsolete>
    Deprecated Oct 2018 in favor of ContentSettings.Exceptions.cookies.Allow
  </obsolete>
  <owner>battre@chromium.org</owner>
  <summary>
    The number of user defined cookies setting exceptions for allowing cookies
    at browser start.
  </summary>
</histogram>

<histogram name="ContentSettings.NumberOfBlockCookiesExceptions">
  <obsolete>
    Deprecated Oct 2018 in favor of ContentSettings.Exceptions.cookies.Block
  </obsolete>
  <owner>battre@chromium.org</owner>
  <summary>
    The number of user defined cookies setting exceptions for blocking cookies
    at browser start.
  </summary>
</histogram>

<histogram name="ContentSettings.NumberOfExceptions">
  <owner>battre@chromium.org</owner>
  <summary>
    The number of user defined hostname patterns for content settings at browser
    start.
  </summary>
</histogram>

<histogram name="ContentSettings.NumberOfSessionOnlyCookiesExceptions">
  <obsolete>
    Deprecated Oct 2018 in favor of
    ContentSettings.Exceptions.cookies.SessionOnly
  </obsolete>
  <owner>battre@chromium.org</owner>
  <summary>
    The number of user defined cookies setting exceptions for 'clearing cookies
    on browser exit' at browser start.
  </summary>
</histogram>

<histogram name="ContentSettings.PermissionActions" enum="PermissionAction">
  <obsolete>
    Removed 11/2015 in favor of Permissions.Action.*
  </obsolete>
  <owner>miguelg@chromium.org</owner>
  <summary>
    Tracks whether a permission was granted, rejected, etc. The suffix of the
    histogram indicates which particular permission.
  </summary>
</histogram>

<histogram name="ContentSettings.PermissionActionsInsecureOrigin"
    enum="PermissionAction">
  <obsolete>
    Removed 11/2015 in favor of Permissions.Action.InsecureOrigin.*
  </obsolete>
  <owner>miguelg@chromium.org</owner>
  <summary>
    Tracks whether a permission was granted, rejected, etc on an insecure
    origin. The suffix of the histogram indicates which particular permission.
  </summary>
</histogram>

<histogram name="ContentSettings.PermissionActionsSecureOrigin"
    enum="PermissionAction">
  <obsolete>
    Removed 11/2015 in favor of Permissions.Action.SecureOrigin.*
  </obsolete>
  <owner>miguelg@chromium.org</owner>
  <summary>
    Tracks whether a permission was granted, rejected, etc on a secure origin.
    The suffix of the histogram indicates which particular permission.
  </summary>
</histogram>

<histogram name="ContentSettings.PermissionRequested" enum="PermissionType">
  <owner>dominickn@chromium.org</owner>
  <owner>engedy@chromium.org</owner>
  <owner>hkamila@chromium.org</owner>
  <summary>
    Number of times a given permission was requested by a website and the user
    has the permission set to prompt (i.e. not blocked or allowed).

    Note this is probably not the metric you want - it does not correspond to
    the total number of times websites request a permission. Also, because
    specific permissions have code that can automatically block or grant
    permissions based on things like incognito, installed extensions etc., this
    does also not correspond to the number of times users are prompted to allow
    permissions.

    For a better metric to track how often users are prompted, either use
    ContentSettings.PermissionsActions*, or Permissions.Prompt.*.

    See https://crbug.com/638076 for more details.
  </summary>
</histogram>

<histogram name="ContentSettings.PermissionRequested_InsecureOrigin"
    enum="PermissionType">
  <owner>dominickn@chromium.org</owner>
  <owner>engedy@chromium.org</owner>
  <owner>hkamila@chromium.org</owner>
  <summary>
    Number of times a given permission was requested by an insecure origin and
    the user has the permission set to prompt (i.e. not blocked or allowed).

    Note this is probably not the metric you want - it does not correspond to
    the total number of times websites request a permission. Also, because
    specific permissions have code that can automatically block or grant
    permissions based on things like incognito, installed extensions etc., this
    does also not correspond to the number of times users are prompted to allow
    permissions.

    For a better metric to track how often users are prompted, use
    ContentSettings.PermissionsActions*.

    See https://crbug.com/638076 for more details.
  </summary>
</histogram>

<histogram name="ContentSettings.PermissionRequested_SecureOrigin"
    enum="PermissionType">
  <owner>dominickn@chromium.org</owner>
  <owner>engedy@chromium.org</owner>
  <owner>hkamila@chromium.org</owner>
  <summary>
    Number of times a given permission was requested by a secure origin and the
    user has the permission set to prompt (i.e. not blocked or allowed).

    Note this is probably not the metric you want - it does not correspond to
    the total number of times websites request a permission. Also, because
    specific permissions have code that can automatically block or grant
    permissions based on things like incognito, installed extensions etc., this
    does also not correspond to the number of times users are prompted to allow
    permissions.

    For a better metric to track how often users are prompted, use
    ContentSettings.PermissionsActions*.

    See https://crbug.com/638076 for more details.
  </summary>
</histogram>

<histogram name="ContentSettings.Plugins" enum="ContentSettingPluginsAction">
  <owner>tommycli@chromium.org</owner>
  <summary>
    Tracks whether the plugin content blocked puzzle piece was shown in the
    Omnibox, and how the user interacted with it.
  </summary>
</histogram>

<histogram name="ContentSettings.Popups" enum="ContentSettingPopupAction">
  <owner>charleszhao@chromium.org</owner>
  <summary>
    Tracks whether the popup content blocked puzzle piece was shown in the
    Omnibox, and how the user interacted with it.
  </summary>
</histogram>

<histogram name="ContentSettings.Popups.BlockerActions"
    enum="PopupBlockerAction">
  <owner>csharrison@chromium.org</owner>
  <summary>
    Counts of various events related to the popup blocker. Including blocked
    popups and overridden (clicked through) popups. This is similar to the
    ContentSettings.Popups but is at the per-popup layer rather than at the UI
    layer.
  </summary>
</histogram>

<histogram name="ContentSettings.Popups.ClickThroughPosition"
    enum="ListItemPosition">
  <owner>csharrison@chromium.org</owner>
  <summary>
    The blocked popup list contains a list of links that Chrome has blocked via
    the popup blocker. If a user clicks on the link, the popup is opened. This
    metric records the position of the popup in the list that a user clicks
    through. Currently it should only be recorded on desktop platforms, because
    the mobile UI for popup blocking does not currently allow for specific
    exceptions.
  </summary>
</histogram>

<histogram name="ContentSettings.Popups.EngagementTime" units="ms">
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the total duration a popup WebContents is visible / foregrounded,
    until it is closed.
  </summary>
</histogram>

<histogram name="ContentSettings.Popups.EngagementTime.GestureClose" units="ms">
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the total duration a popup WebContents is visible / foregrounded,
    until it is closed via some user gesture (like Ctrl-W).
  </summary>
</histogram>

<histogram name="ContentSettings.Popups.FirstDocumentEngagementTime" units="ms">
  <obsolete>
    Deprecated in favor of ContentSettings.Popups.FirstDocumentEngagementTime2.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the total duration a popup WebContents is visible / foregrounded
    for the duration of its first document load. This time is measured from the
    first navigation commit to the time either the WebContents is destroyed or
    when a new navigation commits.
  </summary>
</histogram>

<histogram name="ContentSettings.Popups.FirstDocumentEngagementTime2"
    units="ms">
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the total duration a popup WebContents is visible / foregrounded
    for the duration of its first document load. This time is measured from the
    first navigation commit to the time either the WebContents is destroyed or
    when a new navigation commits.
  </summary>
</histogram>

<histogram name="ContentSettings.Popups.StrongBlocker.NumBlocked"
    units="popups">
  <owner>csharrison@chromium.org</owner>
  <summary>
    The total number of popups blocked by the strong blocker for a given page
    load. Logged when the page is navigated away from, or the tab is closed.
    Only logged for pages which are triggered for strong popup blocking, aka
    abusive experience enforcement.
  </summary>
</histogram>

<histogram name="ContentSettings.Popups.StrongBlockerActions"
    enum="StrongPopupBlockerAction">
  <owner>csharrison@chromium.org</owner>
  <summary>
    Counts of various events related to the strong popup blocker (aka abusive
    experience enforcement), that is triggered via safe browsing.
  </summary>
</histogram>

<histogram name="ContentSettings.Popups.StrongBlockerActivationPosition"
    enum="SafeBrowsingActivationPosition">
  <owner>csharrison@chromium.org</owner>
  <owner>ericrobinson@chromium.org</owner>
  <summary>
    For pages that trigger Safe Browsing triggered popup blocker (in warn or
    enforce modes), records the position in the redirect chain for the page the
    activation was triggered by. If SubresourceFilterConsiderRedirects is
    disabled, then always returns &quot;Only navigation&quot;.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.AppLifecycle.Events"
    enum="AppLifecycleEvent" expires_after="2019-10-01">
  <owner>pnoland@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>
    Android: count of app lifecycle events reported to the Feed library.
    Recorded as these events occur; e.g. when Chrome is foregrounded,
    backgrounded, or the user clears cached browsing data.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.AppLifecycle.NumRowsForDeletion"
    units="count" expires_after="2019-10-01">
  <owner>skym@chromium.org</owner>
  <owner>pnoland@chromium.org</owner>
  <summary>
    Android: number of rows present in a history deletion that's causing all
    current suggestions to be deleted. Each row should correspond to a url that
    is beign removed from history. Is not emitted when entire history is being
    cleared.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.AppLifecycleEvents"
    enum="AppLifecycleEvent" expires_after="2019-10-01">
  <obsolete>
    Deprecated in favor of ContentSuggestions.Feed.AppLifecycle.Events.
  </obsolete>
  <owner>pnoland@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>
    Android: count of app lifecycle events reported to the Feed library.
    Recorded as these events occur; e.g. when Chrome is foregrounded,
    backgrounded, or the user clears cached browsing data.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.CommitMutationCount"
    units="operations" expires_after="2019-10-01">
  <owner>gangwu@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>
    Tracks the number of operations in a Feed mutation when database receive the
    commit request.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.Count" units="entries"
    expires_after="2019-10-01">
  <owner>gangwu@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>
    Tracks the number of entries for the Feed storage after database perform get
    all keys request.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.DisplayStatusOnOpen"
    enum="ContentSuggestionsDisplayStatus" expires_after="2019-12-01">
  <owner>gangwu@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>
    Android: The display status of the content suggestions when users open NTPs.
    Whether content suggestions are disabled by policy (e.g. enterprise or
    supervised users), enabled but collapsed, or enabled and expanded when a new
    NTP is created.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.FetchPendingSpinner.Shown"
    enum="FeedSpinnerType" expires_after="2020-03-01">
  <owner>gangwu@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>
    Android: The type of spinner when the content suggestion shows the loading
    spinner. This is tracked based on if the spinner is shown, not how long it
    is visible.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.FetchPendingSpinner.VisibleDuration"
    units="ms" expires_after="2020-03-01">
  <owner>gangwu@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>
    Android: How long the content suggestion loading spinner is shown when a
    loading spinner finishes showing. This is tracked based on when the spinner
    is enabled in the UI, not how long it is actually visible on screen.
  </summary>
</histogram>

<histogram
    name="ContentSuggestions.Feed.FetchPendingSpinner.VisibleDurationWithoutCompleting"
    units="ms" expires_after="2020-03-01">
  <owner>gangwu@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>
    Android: How long the content suggestion loading spinner is shown when a
    spinner is destroyed without completing. This is tracked based on when the
    spinner is enabled in the UI, not how long it is actually visible on screen.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.Image.FetchResult"
    enum="FeedImageFetchResult">
  <obsolete>
    Deprecated in favor of CachedImageFetcher.Events.
  </obsolete>
  <owner>wylieb@chromium.org</owner>
  <summary>
    Android: Represents success/failure of Feed image loading. Recorded upon
    each individual image retrieved from the feed_image_cache.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.Image.LoadFromCacheTime" units="ms">
  <obsolete>
    Deprecated in favor of CachedImageFetcher.Events.
  </obsolete>
  <owner>wylieb@chromium.org</owner>
  <summary>
    Android: The time it takes for Feed to load an image from the cache.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.Image.LoadFromNetworkTime" units="ms">
  <obsolete>
    Deprecated in favor of CachedImageFetcher.Events.
  </obsolete>
  <owner>wylieb@chromium.org</owner>
  <summary>
    Android: The time it takes for Feed to load an image from the network.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.InitialSuccess" enum="BooleanSuccess"
    expires_after="2019-10-01">
  <owner>gangwu@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>
    Tracks the Feed storage success rate during initial storage.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.InterestHeader.NotInterestedInSource"
    units="index" expires_after="2020-02-01">
  <owner>gangwu@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>
    The position of an interest header on the NTP that the user has indicated
    they aren't interested in the story's source.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.InterestHeader.NotInterestedInTopic"
    units="index" expires_after="2020-02-01">
  <owner>gangwu@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>
    The position of an interest header on the NTP that the user has indicated
    they aren't interested in the story's topic.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.InternalError"
    units="FeedInternalError" expires_after="2020-02-22">
  <owner>skym@chromium.org</owner>
  <owner>gangwu@chromium.org</owner>
  <summary>The Feed library encountered an error at any time.</summary>
</histogram>

<histogram name="ContentSuggestions.Feed.LoadKeysSuccess" enum="BooleanSuccess"
    expires_after="2019-10-01">
  <owner>gangwu@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>Tracks the Feed storage success rate during load keys.</summary>
</histogram>

<histogram name="ContentSuggestions.Feed.LoadKeysTime" units="ms"
    expires_after="2019-10-01">
  <owner>gangwu@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>
    The time it takes for the Feed to load all keys from the storage.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.LoadSuccess" enum="BooleanSuccess"
    expires_after="2019-10-01">
  <owner>gangwu@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>Tracks the Feed storage success rate during load entries.</summary>
</histogram>

<histogram name="ContentSuggestions.Feed.LoadTime" units="ms"
    expires_after="2019-10-01">
  <owner>gangwu@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>
    The time it takes for the Feed to load entries from the storage.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.Network.Duration" units="ms"
    expires_after="2019-10-01">
  <owner>fgorski@chromium.org</owner>
  <owner>skym@chromium.org</owner>
  <summary>
    The amount of time fetching articles takes, regardless of success. This
    includes the time it takes to get an auth token for signed in users.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.Network.RequestSizeKB.Compressed"
    units="KB" expires_after="2019-10-01">
  <owner>pnoland@chromium.org</owner>
  <summary>
    Android: the size in kb of gzip-compressed requests sent by the Feed's
    networking host. Recorded when a request is sent.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.Network.RequestStatusCode"
    enum="CombinedHttpResponseAndNetErrorCode" expires_after="2019-10-01">
  <owner>pnoland@chromium.org</owner>
  <summary>
    Android: The integer status code of network requests made by the feed
    library's networking host. This code includes both protocol(1xx-5xx) and
    non-protocol(-xxx) errors. Recorded when a request completes.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.Network.ResponseSizeKB" units="KB"
    expires_after="2019-10-01">
  <owner>pnoland@chromium.org</owner>
  <summary>
    Android: the uncompressed size in KB of responses received by the Feed's
    networking host. Recorded when a successful response is received.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.Network.TokenDuration" units="ms"
    expires_after="2020-03-01">
  <owner>skym@chromium.org</owner>
  <owner>pnoland@chromium.org</owner>
  <summary>
    The amount of time it takes to get an access token for signed in users.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.Network.TokenFetchStatus"
    enum="GoogleServiceAuthError" expires_after="2019-10-01">
  <owner>pnoland@chromium.org</owner>
  <summary>
    Android: failure reason when attempting to fetch an OAuth token for the
    feed. Recorded when a token fetch completes.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.NetworkRequestStatusCode"
    enum="CombinedHttpResponseAndNetErrorCode">
  <obsolete>
    Deprecated in favor of ContentSuggestions.Feed.Network.RequestStatusCode.
  </obsolete>
  <owner>pnoland@chromium.org</owner>
  <summary>
    Android: The integer status code of network requests made by the feed
    library's networking host. This code includes both protocol(1xx-5xx) and
    non-protocol(-xxx) errors. Recorded when a request completes.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.Offline.GetStatusCount" units="count"
    expires_after="2019-10-01">
  <owner>skym@chromium.org</owner>
  <summary>
    The number of urls that have offline status requested per call.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.Offline.GetStatusDuration" units="ms"
    expires_after="2019-10-01">
  <owner>skym@chromium.org</owner>
  <summary>
    The number of milliseconds to round trip offline status for a set of URLs
    from Offline Pages component.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.OperationCommitSuccess"
    enum="BooleanSuccess" expires_after="2019-10-01">
  <owner>gangwu@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>
    Tracks the Feed storage success rate during commit operations.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.OperationCommitTime" units="ms"
    expires_after="2019-10-01">
  <owner>gangwu@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>
    The time it takes for the Feed to commit operations from the storage.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.PagePopulatingTime" units="ms"
    expires_after="2019-12-01">
  <owner>gangwu@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>
    The number of milliseconds it takes for Feed content to be visible in the
    UI. If content is not immediately available, this is conceptually the amount
    of time a loading spinner is shown to the user.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.Piet.FrameRenderingErrorCode"
    enum="PietErrorCode" expires_after="2020-02-01">
  <owner>gangwu@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>
    Android: The integer error code when Piet wants to report events that
    occurred during Frame rendering.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.RequestSizeKB.Compressed" units="KB">
  <obsolete>
    Deprecated in favor of
    ContentSuggestions.Feed.Network.RequestSizeKB.Compressed.
  </obsolete>
  <owner>pnoland@chromium.org</owner>
  <summary>
    Android: the size in kb of gzip-compressed requests sent by the Feed's
    networking host. Recorded when a request is sent.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.ResponseSizeKB" units="KB">
  <obsolete>
    Deprecated in favor of ContentSuggestions.Feed.Network.ResponseSizeKB.
  </obsolete>
  <owner>pnoland@chromium.org</owner>
  <summary>
    Android: the uncompressed size in KB of responses received by the Feed's
    networking host. Recorded when a successful response is received.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.Scheduler.ContentAgeDifference"
    units="ms" expires_after="2020-2-26">
  <owner>skym@chromium.org</owner>
  <owner>gangwu@chromium.org</owner>
  <summary>
    Difference in age of content between feed and host. Recorded when the Feed
    asks the scheduler how to behave when a NTP is opened.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.Scheduler.HasContent"
    enum="FeedHostMismatch" expires_after="2020-2-20">
  <owner>skym@chromium.org</owner>
  <owner>gangwu@chromium.org</owner>
  <summary>
    The match status between Feed and the host when the scheduler's
    ShouldSessionRequestData method is called. This occurs whenever the NTP is
    opened, and tries to track if the Feed and host state agrees or disagrees.
    If the device already has content, new requests are not necessarily required
    for a reasonable user experience.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.Scheduler.OutstandingRequest"
    enum="FeedHostMismatch" expires_after="2020-2-20">
  <owner>skym@chromium.org</owner>
  <owner>gangwu@chromium.org</owner>
  <summary>
    The match status between Feed and the host when the scheduler's
    ShouldSessionRequestData method is called. This occurs whenever the NTP is
    opened, and tries to track if the Feed and host state agrees or disagrees.
    The type of request that could be outstanding is to fetch new or more news
    articles, and when requests are outstanding new requests should not be
    started.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.Scheduler.RefreshTrigger"
    enum="RefreshTrigger" expires_after="2019-10-01">
  <owner>skym@chromium.org</owner>
  <summary>
    The scheduler watches for various triggers, which cause it to decide if a
    refresh is currently warranted or not. This histogram is emitted when a
    trigger causes a refresh.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.Scheduler.RequestBehavior"
    enum="RequestBehavior" expires_after="2019-10-01">
  <owner>skym@chromium.org</owner>
  <summary>
    When NTP is opened, the scheduler host tells the Feed library how to act, if
    the existing content should be shown, immediately or with timeout, and if a
    refresh request should be started.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.Scheduler.ShouldRefreshResult"
    enum="FeedSchedulerRefreshStatus" expires_after="2020-02-01">
  <owner>gangwu@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>
    When the Feed scheduler receives a refresh request, the scheduler will
    decide to refresh or not depending on the scheduler status. Recorded when
    the Feed scheduler receives the request.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.Scheduler.TimeSinceLastFetchOnClear"
    units="ms" expires_after="2019-10-01">
  <owner>skym@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>
    When the previous last fetch attempt time is cleared, log the time since the
    last fetch attempt. This typically occurs when suggestions are cleared. A
    client that has never made a successful fetch (at least since it was last
    cleared) will report the time since epoch.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.ServerRequest.Reason"
    enum="FeedRequestReason" expires_after="2020-02-25">
  <owner>skym@chromium.org</owner>
  <owner>gangwu@chromium.org</owner>
  <summary>
    The reason for a server request from the Feed's prespective, when the
    request is started.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.TokenCompleted.ContentCount"
    units="count" expires_after="2020-02-25">
  <owner>skym@chromium.org</owner>
  <owner>gangwu@chromium.org</owner>
  <summary>
    How many top level features were in the continuation response, typically
    clusters. Recorded when the fetch completes successfully.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.TokenCompleted.TokenCount"
    units="count" expires_after="2020-02-25">
  <owner>skym@chromium.org</owner>
  <owner>gangwu@chromium.org</owner>
  <summary>
    How many tokens were in the continuation response, typically ways to fetch
    more articles. Recorded when the fetch completes successfully.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.TokenFailedToCompleted" units="count"
    expires_after="2020-02-25">
  <owner>skym@chromium.org</owner>
  <owner>gangwu@chromium.org</owner>
  <summary>
    When a token fails to complete, how many failures this token has seen.
    Record when the fetch fails.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.TokenFetchStatus"
    enum="GoogleServiceAuthError">
  <obsolete>
    Deprecated in favor of ContentSuggestions.Feed.Network.TokenFetchStatus.
  </obsolete>
  <owner>pnoland@chromium.org</owner>
  <summary>
    Android: failure reason when attempting to fetch an OAuth token for the
    feed. Recorded when an artcile fetch completes.
  </summary>
</histogram>

<histogram
    name="ContentSuggestions.Feed.ZeroStateRefreshCompleted.ContentCount"
    units="count" expires_after="2020-02-25">
  <owner>skym@chromium.org</owner>
  <owner>gangwu@chromium.org</owner>
  <summary>
    How many top level features were in an initial article fetch, typically
    clusters. Recorded when an article fetch completes and were previously in
    zero state.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.ZeroStateRefreshCompleted.TokenCount"
    units="count" expires_after="2020-02-25">
  <owner>skym@chromium.org</owner>
  <owner>gangwu@chromium.org</owner>
  <summary>
    How many tokens were in an initial article fetch, typically ways to fetch
    more articles. Recorded when an article fetch completes and were previously
    in zero state.
  </summary>
</histogram>

<histogram name="ContentSuggestions.Feed.ZeroStateShown.Reason"
    enum="FeedZeroStateShowReason" expires_after="2020-02-25">
  <owner>skym@chromium.org</owner>
  <owner>gangwu@chromium.org</owner>
  <summary>The reason the zero state (no articles) is shown to a user.</summary>
</histogram>

<histogram name="ContentSuggestions.FetchPendingPlaceholder.VisibleDuration"
    units="ms">
  <obsolete>
    Deprecated in favor of
    ContentSuggestions.FetchPendingSpinner.VisibleDuration.
  </obsolete>
  <owner>dgn@chromium.org</owner>
  <owner>ntp-dev+metrics@chromium.org</owner>
  <summary>
    Android: How long the content suggestion placeholder is shown. This is
    tracked based on when the placeholder is enabled in the UI, not how long it
    is actually visible on screen. Depending on the screen size, the used value
    could be bigger.
  </summary>
</histogram>

<histogram name="ContentSuggestions.FetchPendingSpinner.VisibleDuration"
    units="ms">
  <obsolete>
    Deprecated in favor of
    ContentSuggestions.Feed.FetchPendingSpinner.VisibleDuration.
  </obsolete>
  <owner>dgn@chromium.org</owner>
  <owner>ntp-dev+metrics@chromium.org</owner>
  <summary>
    Android: How long the content suggestion loading spinner is shown. This is
    tracked based on when the spinner is enabled in the UI, not how long it is
    actually visible on screen. Depending on the screen size, the used value
    could be bigger.
  </summary>
</histogram>

<histogram name="ContextMenu.CancelSystemTouches" enum="BooleanHit">
  <owner>michaeldo@chromium.org</owner>
  <summary>
    Logs true when the system touches are cancelled in order to show the Context
    Menu instead of performing a default system action. Only logged on iOS.
  </summary>
</histogram>

<histogram name="ContextMenu.DelayedElementDetails"
    enum="ContextMenuDelayedElementDetails">
  <owner>michaeldo@chromium.org</owner>
  <summary>
    Logged when DOM element details are not yet available when the user
    completes a long press. Also logs if the context menu was shown once the
    element details became available or if the display was cancelled. This
    ensures that all context menu gestures are eventually processed. Only logged
    on iOS.
  </summary>
</histogram>

<histogram name="ContextMenu.DOMElementFetchDuration" units="ms">
  <owner>michaeldo@chromium.org</owner>
  <summary>
    How long it takes to fetch the details of the DOM element the user is
    selecting for the context menu. On iOS, JavaScript must be run in order to
    get the details of the DOM element. If the element is not inside the main
    frame, latency could be added due to the communication between frames. Only
    logged on iOS.
  </summary>
</histogram>

<histogram name="ContextMenu.DOMElementFrame" enum="ContextMenuDOMElementFrame">
  <owner>michaeldo@chromium.org</owner>
  <summary>
    Logged when the Context Menu will be displayed. Also logs if the element for
    the last touch was found in the main frame or a iframe. Only logged on iOS.
  </summary>
</histogram>

<histogram name="ContextMenu.iOS.CopyImage" enum="ContextMenuIOSCopyImage"
    expires_after="2019-12-11">
  <owner>mrsuyi@chromium.org</owner>
  <summary>
    Logged when the copying image from context menu is invoked and relevant
    events happen during the copying image procedure.
  </summary>
</histogram>

<histogram name="ContextMenu.iOS.GetImageDataByJsResult"
    enum="ContextMenuIOSGetImageDataByJsResult" expires_after="2019-12-11">
  <owner>mrsuyi@chromium.org</owner>
  <summary>
    Result of getting image data by JavaScript for CopyImage, SaveImage and
    SearchByImage from iOS context menu. Recorded when the JavaScript returns,
    or fails for timeout.
  </summary>
</histogram>

<histogram name="ContextMenu.SaveLinkType" enum="ContextMenuSaveLinkType">
  <owner>qinmin@chromium.org</owner>
  <summary>
    Type of the url when user saves the content through the save link context
    menu.
  </summary>
</histogram>

<histogram name="ContextMenu.SelectedOption" enum="ContextMenuOption">
  <owner>lzbylut@google.com</owner>
  <summary>The option that the user selected from a context menu.</summary>
</histogram>

<histogram name="ContextMenu.Shown" enum="BooleanPresent">
  <owner>mpearson@chromium.org</owner>
  <summary>
    Recorded when a context menu is shown, sliced by whether a web contents was
    present. (It generally should be; indeed, this code path should not be
    followed when it is absent. For instance, invoking a context menu from the
    new tab page or from the sad tab page will not cause an emission to this
    histogram.) Note that this refers to link context menus, not the
    cut-copy-paste context menus that can appear during long presses on text on
    a web page or long presses in the omnibox. The value of this histogram for
    &quot;present&quot; could be usefully compared with the total count of
    ContextMenu.SelectedOption to determine the clickthrough rate for context
    menus.
  </summary>
</histogram>

<histogram name="ContextMenu.UnexpectedFindElementResultHandlerMessage"
    enum="BooleanHit">
  <owner>michaeldo@chromium.org</owner>
  <summary>
    Logged when an unexpected FindElementResultHandler message was received by
    the application. An unexpected message may be sent by a malicious frame.
    Only logged on iOS.
  </summary>
</histogram>

<histogram name="ContextMenu.ViewsTextServices.Emoji" enum="Boolean"
    expires_after="2019-06-01">
  <owner>shend@chromium.org</owner>
  <summary>
    Number of times the emoji item in the views text services context menu is
    used.
  </summary>
</histogram>

<histogram name="ContextMenu.WaitingForElementDetails" enum="BooleanHit">
  <owner>michaeldo@chromium.org</owner>
  <summary>
    Logs true when the context menu gesture recognizer fully recognizes a long
    press, but is still waiting on the DOM element details before the context
    menu can be shown. Only logged on iOS.
  </summary>
</histogram>

<histogram name="ContextualSuggestions.EnabledState" enum="BooleanEnabled">
  <owner>huayinz@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Android: Whether contextual suggestions are enabled. Recorded when the
    enabled state changes. Note that this may be recorded multiple times per
    session.
  </summary>
</histogram>

<histogram name="ContextualSuggestions.Events"
    enum="ContextualSuggestions.Event">
  <owner>donnd@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Records each event handled by the Contextual Suggestions backend. Recorded
    when the event is sent to the backend, typically when a UI or network action
    is registered. Implemented for Android.
  </summary>
</histogram>

<histogram name="ContextualSuggestions.FetchErrorCode" enum="NetErrorCodes">
  <owner>pnoland@chromium.org</owner>
  <summary>
    Android: The net::Error status code of contextual suggestion fetches.
    Recorded when a fetch completes.
  </summary>
</histogram>

<histogram name="ContextualSuggestions.FetchLatencyMilliseconds" units="ms">
  <owner>pnoland@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>
    Android: the amount of time taken elapsed between a contextual suggestion
    fetch starting and ending. Recorded when a fetch is completed.
  </summary>
</histogram>

<histogram name="ContextualSuggestions.FetchRequestProtoSizeKB" units="KB">
  <owner>pnoland@chromium.org</owner>
  <summary>
    Android: The size of the serialized and base64-encoded proto sent to the
    server when fetching contextual suggestions. Recorded when a fetch is
    initiated.
  </summary>
</histogram>

<histogram name="ContextualSuggestions.FetchResponseCode"
    enum="HttpResponseCode">
  <owner>pnoland@chromium.org</owner>
  <summary>
    Android: The http status code of contextual suggestion fetches. Recorded
    when a fetch completes.
  </summary>
</histogram>

<histogram name="ContextualSuggestions.FetchResponseNetworkBytes" units="bytes">
  <owner>pnoland@chromium.org</owner>
  <summary>
    Android: The number of bytes in the response received when a contextual
    suggestions fetch completes. Recorded when the response is received.
  </summary>
</histogram>

<histogram name="ContextualSuggestions.FetchResponseSizeKB" units="KB">
  <obsolete>
    Removed 2018-06-01 in favor of a histogram that measures bytes received over
    the network directly instead of the uncompressed KB.
  </obsolete>
  <owner>pnoland@chromium.org</owner>
  <summary>
    Android: The size of the response body received when a contextual
    suggestions fetch completes. Recorded when the response is received.
  </summary>
</histogram>

<histogram name="ContextualSuggestions.PageViewClickLength"
    enum="ContextualSuggestions.ClickDuration">
  <owner>fgorski@chromium.org</owner>
  <owner>wylieb@chromium.org</owner>
  <summary>
    Android: The length of a visit on a page. Reported for HTTP and HTTPS pages
    provided there was something visible printed to the screen. Selecting a tab
    or loading a new URL in current tab starts timing a visit. Switching to a
    different tab, closing the tab or loading a new URL finishes timing and
    reports the time if the page did a visually non-empty paint or finished
    loading. Bucketed by short/medium/long.
  </summary>
</histogram>

<histogram name="ContextualSuggestions.PageViewTime" units="ms">
  <owner>fgorski@chromium.org</owner>
  <owner>wylieb@chromium.org</owner>
  <summary>
    Android: The length of a visit on a page. Reported for HTTP and HTTPS pages
    provided there was something visible printed to the screen. Selecting a tab
    or loading a new URL in current tab starts timing a visit. Switching to a
    different tab, closing the tab or loading a new URL finishes timing and
    reports the time if the page did a visually non-empty paint or finished
    loading.
  </summary>
</histogram>

<histogram name="ContextualSuggestions.Preference.State" enum="BooleanEnabled">
  <owner>huayinz@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Android: Whether the user preference for contextual suggestions is enabled.
    Recorded on cold start and when the user has changed the preference state.
    Note that this may be recorded multiple times per session.
  </summary>
</histogram>

<histogram name="ContextualSuggestions.ResultsReturnedInOverviewMode"
    enum="BooleanEnabled" expires_after="2019-01-30">
  <obsolete>
    Deprecated 01/2019, no longer needed
  </obsolete>
  <owner>twellington@chromium.org</owner>
  <owner>huayinz@chromium.org</owner>
  <summary>
    Android: Whether the contextual suggestions results are returned to the
    UI-layer while the user is in overview mode.
  </summary>
</histogram>

<histogram name="ContextualSuggestions.SuggestionClickPosition.Cluster"
    units="index" expires_after="2019-05-30">
  <owner>twellington@chromium.org</owner>
  <owner>huayinz@chromium.org</owner>
  <summary>
    Android: The position of the clicked contextual suggestion card within its
    cluster.
  </summary>
</histogram>

<histogram name="ContextualSuggestions.SuggestionClickPosition.Global"
    units="index" expires_after="2019-05-30">
  <owner>twellington@chromium.org</owner>
  <owner>huayinz@chromium.org</owner>
  <summary>
    Android: The position of the clicked contextual suggestion card within the
    entire list of suggestions.
  </summary>
</histogram>

<histogram base="true" name="Cookie.AgeFor" units="days">
  <owner>mkwst@chromium.org</owner>
  <owner>tnagel@chromium.org</owner>
  <summary>
    Records the age (in days) of the oldest cookie delivered along with a
    request. Recorded when setting the `Cookie` header for a given request.
  </summary>
</histogram>

<histogram base="true" name="Cookie.AllAgesFor" units="days">
  <owner>mkwst@chromium.org</owner>
  <owner>tnagel@chromium.org</owner>
  <summary>
    Records the age (in days) of all cookies delivered along with a request.
    Recorded when setting the `Cookie` header for a given request.
  </summary>
</histogram>

<histogram name="Cookie.BackingStoreUpdateResults" enum="BackingStoreResults">
  <owner>morlovich@chromium.org</owner>
  <summary>
    Whether or not updates to the backing store succeeded or failed, recorded
    every update.
  </summary>
</histogram>

<histogram name="Cookie.BetweenAccessIntervalMinutes" units="minutes">
  <obsolete>
    Deprecated 2015-08-17 as part of cookie histogram cleanup
    (https://crbug.com/521135).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Intervals between access time updates for each cookie.</summary>
</histogram>

<histogram name="Cookie.CommitProblem" enum="CookieCommitProblem">
  <owner>morlovich@chromium.org</owner>
  <summary>
    Recorded when a problem occurs trying to commit changes to the cookie store
    back to disk, in the SQLite store.
  </summary>
</histogram>

<histogram name="Cookie.CookieDeleteEquivalent" enum="CookieDeleteEquivalent">
  <owner>mkwst@chromium.org</owner>
  <summary>
    Record when at attempt is made to delete an equivalent cookie on a set
    cookie operation and when such a cookie is found and deleted. Also measure
    when strict secure cookie rules affect this outcome and prevent a cookie
    from being deleted.
  </summary>
</histogram>

<histogram name="Cookie.CookieLineCookieValueValidity" enum="BooleanValid">
  <obsolete>
    Removed 2017-07-14 as it demonstrated that making cookie parsing rules
    stricter was not feasible. See https://crbug.com/638117.
  </obsolete>
  <owner>ricea@chromium.org</owner>
  <summary>
    Indicates whether a cookie initialised from a Set-Cookie header value was
    valid or not. This is only logged after cookies containing control
    characters have already been rejected, so &quot;Invalid&quot; here means
    that the cookie contains quotes, commas, backslashes or top-bit-set
    characters.
  </summary>
</histogram>

<histogram name="Cookie.CookiePrefix" enum="CookiePrefix">
  <owner>estark@chromium.org</owner>
  <summary>
    Number of times a cookie was set with a name prefixed by
    &quot;__Secure-&quot; or &quot;__Host-&quot; (prefixes reserved by
    https://tools.ietf.org/html/draft-west-cookie-prefixes).
  </summary>
</histogram>

<histogram name="Cookie.CookiePrefixBlocked" enum="CookiePrefix">
  <owner>estark@chromium.org</owner>
  <summary>
    Number of times a cookie was set with a name prefixed by
    &quot;__Secure-&quot; or &quot;__Host-&quot; that violate cookie prefix
    rules. That is, a __Secure- cookie must be set over a secure connection with
    the Secure attribute, and a __Host- cookie must be set over a secure
    connection, with the Secure attribute, with no Domain attribute, and with a
    Path attribute of &quot;/&quot;. (As defined in
    https://tools.ietf.org/html/draft-west-cookie-prefixes.)
  </summary>
</histogram>

<histogram name="Cookie.CookieSourceScheme" enum="CookieSourceScheme">
  <owner>estark@chromium.org</owner>
  <summary>
    For each cookie added to the store, record whether its source URL has a
    cryptographic scheme, broken down by Secure and not Secure.
  </summary>
</histogram>

<histogram name="Cookie.CorruptMetaTable">
  <owner>tnagel@chromium.org</owner>
  <summary>
    Records the detection of a corrupted meta table. See http://crbug.com/111376
    .
  </summary>
</histogram>

<histogram name="Cookie.CorruptMetaTableRecoveryFailed">
  <owner>morlovich@chromium.org</owner>
  <summary>
    Records a failure to recover a corrupted meta table. See
    http://crbug.com/111376 .
  </summary>
</histogram>

<histogram name="Cookie.Count">
  <owner>battre@chromium.org</owner>
  <summary>
    Number of cookies in the store (recorded every 10 minutes of active browsing
    time)
  </summary>
</histogram>

<histogram name="Cookie.DBSizeInKB" units="KB">
  <owner>dmikurube@chromium.org</owner>
  <summary>
    The size, on disk, of the cookie database as it is being loaded.
  </summary>
</histogram>

<histogram name="Cookie.DeletionCause" enum="CookieDeletionCause">
  <owner>nharper@chromium.org</owner>
  <summary>
    For each cookie removed from the store, the reason it was removed.
  </summary>
</histogram>

<histogram name="Cookie.DomainCount">
  <obsolete>
    Deprecated 2015-08-17 as part of cookie histogram cleanup
    (https://crbug.com/521135).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    For each domain, number of cookies in that domain (recorded every 10 minutes
    of active browsing time).
  </summary>
</histogram>

<histogram name="Cookie.DomainPerEtldp1Count">
  <obsolete>
    Deprecated 2015-08-17 as part of cookie histogram cleanup
    (https://crbug.com/521135).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    For every top level domain, number of subdomains in that top level domain
    (recorded every 10 minutes of active browsing time).
  </summary>
</histogram>

<histogram name="Cookie.Etldp1Count">
  <obsolete>
    Deprecated 2015-08-17 as part of cookie histogram cleanup
    (https://crbug.com/521135).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    For every top level domain, number of cookies in that domain (recorded every
    10 minutes of active browsing time).
  </summary>
</histogram>

<histogram name="Cookie.EvictedLastAccessMinutes" units="minutes">
  <owner>nharper@chromium.org</owner>
  <summary>
    For each evicted (not expired) cookie, the amount of time since it was last
    used
  </summary>
</histogram>

<histogram name="Cookie.ExpirationDurationMinutes" units="minutes">
  <owner>battre@chromium.org</owner>
  <summary>Number of minutes until cookie expires when set.</summary>
</histogram>

<histogram name="Cookie.GetCookieListCompletionTime" units="ms">
  <obsolete>
    Deprecated Feb 2019 as further data collection is no longer necessary.
  </obsolete>
  <owner>rockot@google.com</owner>
  <summary>
    The length of time between when the network stack receives a request for a
    cookie list and when it actually responds to the request or abandons it (for
    e.g. a closed renderer).
  </summary>
</histogram>

<histogram name="Cookie.HeaderLength" units="bytes">
  <owner>mkwst@chromium.org</owner>
  <summary>
    The size of each outgoing request's 'Cookie' header field's value, in bytes.
  </summary>
</histogram>

<histogram name="Cookie.KillDatabaseResult" enum="BooleanSuccess"
    expires_after="2018-08-30">
  <owner>morlovich@chromium.org</owner>
  <summary>
    Whether killing the database because it was corrupted beyond repair
    succeeded.
  </summary>
</histogram>

<histogram name="Cookie.LoadProblem" enum="CookieLoadProblem">
  <owner>morlovich@chromium.org</owner>
  <summary>
    Recorded when a problem is recorded when loading the persistent cookie
    store.
  </summary>
</histogram>

<histogram name="Cookie.NetworkSecurity" enum="CookieNetworkSecurity">
  <owner>tnagel@chromium.org</owner>
  <summary>
    Degree of protection against cookie theft. Recorded for each cookie when
    setting the `Cookie` header for a request.
  </summary>
</histogram>

<histogram name="Cookie.NumberOfLoadedCookies">
  <owner>morlovich@chromium.org</owner>
  <summary>
    This histogram records the total number of cookies loaded from disk,
    including any cookies that are discarded during loading (for whatever
    reason).
  </summary>
</histogram>

<histogram name="Cookie.ParsedCookieStatus" enum="ParsedCookieStatus">
  <obsolete>
    Deprecated as of 9/2013. Experiment to measure control characters in cookies
    is finished.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    When parsing a cookie, indicates if control characters were present in any
    of the cookie values and if any of the cookie values were invalid.
    Specifically, checks that all of the parsed values are valid according to
    the valid token definition in Section 2.2 of RFC2616 which specifies a token
    must have no separators (i.e. no characters from the following string,
    ignoring the starting and ending single quote: '()&lt;&gt;@,;:\&quot;/[]?={}
    \t') and no control characters.
  </summary>
</histogram>

<histogram name="Cookie.PriorityBlockingTime" units="ms">
  <owner>pwnall@chromium.org</owner>
  <summary>
    This histogram records the total duration of time during which at least one
    web request was blocked waiting for the cookie store to load. If no requests
    were affected, the value is 0. If two requests are simultaneously blocked
    for 1 second, the value is 1 second. If two requests are consecutively
    blocked for 1 second each, the value is two seconds.
  </summary>
</histogram>

<histogram name="Cookie.PriorityLoadCount">
  <owner>pwnall@chromium.org</owner>
  <summary>
    The number of distinct Effective Top-Level Domains Plus One (ETLD+1, i.e.,
    google.com, bbc.co.uk) for which a priority cookie load occurred.
  </summary>
</histogram>

<histogram name="Cookie.ReinstatedCookies" units="seconds">
  <obsolete>
    Deprecated as of 8/2015.
  </obsolete>
  <owner>huangs@chromium.org</owner>
  <summary>
    The duration in seconds between a cookie getting evicted (due to the number
    of cookies exceeding a domain limit), and subsequently reinstated.
  </summary>
</histogram>

<histogram name="Cookie.SetAttributePairCharsValidity" enum="BooleanValid">
  <obsolete>
    Deprecated as of 9/2013. Experiment to measure control characters in cookies
    is finished.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Indicates whether a cookie attribute pair was set with both a valid key and
    a valid attribute value or not. For the key, this implies that it was a
    valid token as defined in Section 2.2 of RFC2616 which specifies a token
    must have no separators (i.e. no characters from the following string,
    ignoring the starting and ending single quote: '()&lt;&gt;@,;:\&quot;/[]?={}
    \t') and no control characters. For the value, this implies that it
    contained no control characters and no semicolon.
  </summary>
</histogram>

<histogram name="Cookie.SetNameValidity" enum="BooleanValid">
  <obsolete>
    Deprecated as of 9/2013. Experiment to measure control characters in cookies
    is finished.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Indicates whether a cookie name was set with a valid token. A valid token is
    defined in Section 2.2 of RFC2616 which specifies a token must have no
    separators (i.e. no characters from the following string, ignoring the
    starting and ending single quote: '()&lt;&gt;@,;:\&quot;/[]?={} \t') and no
    control characters.
  </summary>
</histogram>

<histogram name="Cookie.SetValueCookieValueValidity" enum="BooleanValid">
  <obsolete>
    Deprecated as of 9/2013. Experiment to measure control characters in cookies
    is finished.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Indicates whether a cookie value was valid or invalid when there was an
    attempt to set it, where a valid value is defined in RFC 6265 as ASCII
    characters excluding controls, whitspace, comma, semicolon, and backslash.
  </summary>
</histogram>

<histogram name="Cookie.Shutdown.NumberOfCookiesDeleted">
  <obsolete>
    Deprecated as of 9/2015. The associated experiment was flawed.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    The number of session cookies deleted on shutdown. This metric is emitted
    even if no cookies are deleted.
  </summary>
</histogram>

<histogram name="Cookie.Shutdown.TimeSpentDeletingCookies" units="ms">
  <obsolete>
    Deprecated as of 9/2015. The associated experiment was flawed.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    The amount of time required to delete session cookies on shutdown. This
    metric is emitted even if no cookies are deleted.
  </summary>
</histogram>

<histogram name="Cookie.Startup.NumberOfCookiesDeleted">
  <owner>erikchen@chromium.org</owner>
  <summary>
    The number of session cookies deleted on startup. This metric is emitted
    even if no cookies are deleted. This metric is not emitted if session
    cookies are restored, rather than deleted on startup.
  </summary>
</histogram>

<histogram name="Cookie.Startup.TimeSpentDeletingCookies" units="ms">
  <owner>erikchen@chromium.org</owner>
  <summary>
    The amount of time required to delete session cookies on startup. This
    metric is emitted even if no cookies are deleted. This metric is not emitted
    if session cookies are restored, rather than deleted on startup.
  </summary>
</histogram>

<histogram name="Cookie.TimeBlockedOnLoad" units="ms">
  <owner>nharper@chromium.org</owner>
  <summary>
    The amount of time (ms) between the cookie store load starting and
    completing.
  </summary>
</histogram>

<histogram name="Cookie.TimeDatabaseMigrationToV10" units="ms">
  <owner>pwnall@chromium.org</owner>
  <summary>
    The amount of time (ms) to migrate a v9 cookie database to v10.
  </summary>
</histogram>

<histogram name="Cookie.TimeDatabaseMigrationToV5" units="ms">
  <obsolete>
    Deprecated as of 04/2015. The migration has finished for most users.
  </obsolete>
  <summary>The amount of time (ms) to migrate a v4 database to v5.</summary>
</histogram>

<histogram name="Cookie.TimeDatabaseMigrationToV6" units="ms">
  <obsolete>
    Deprecated as of 04/2015. The migration has finished for most users.
  </obsolete>
  <summary>The amount of time (ms) to migrate a v5 database to v6.</summary>
</histogram>

<histogram name="Cookie.TimeDatabaseMigrationToV7" units="ms">
  <obsolete>
    Deprecated as of 04/2015. The migration has finished for most users.
  </obsolete>
  <summary>The amount of time (ms) to migrate a v6 database to v7.</summary>
</histogram>

<histogram name="Cookie.TimeDatabaseMigrationToV8" units="ms">
  <obsolete>
    Deprecated as of 04/2015. The migration has finished for most users.
  </obsolete>
  <summary>The amount of time (ms) to migrate a v7 database to v8.</summary>
</histogram>

<histogram name="Cookie.TimeDatabaseMigrationToV9" units="ms"
    expires_after="2018-08-30">
  <owner>erikchen@chromium.org</owner>
  <summary>The amount of time (ms) to migrate a v8 database to v9.</summary>
</histogram>

<histogram name="Cookie.TimeGet" units="ms">
  <obsolete>
    Deprecated as of 11/2014.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The amount of time (ms) to get cookies for each URL request.
  </summary>
</histogram>

<histogram name="Cookie.TimeInitializeDB" units="ms">
  <owner>nyquist@chromium.org</owner>
  <summary>The amount of time (ms) to initialize the cookies database.</summary>
</histogram>

<histogram name="Cookie.TimeInitializeDomainMap" units="ms">
  <owner>nyquist@chromium.org</owner>
  <summary>
    The amount of time (ms) to read and parse the domain map from the cookies
    database.
  </summary>
</histogram>

<histogram name="Cookie.TimeKeyLoadDBQueueWait" units="ms">
  <owner>pwnall@chromium.org</owner>
  <summary>
    This histogram records the wall-clock delay between a priority load task
    being posted to the DB-thread and its execution.
  </summary>
</histogram>

<histogram name="Cookie.TimeKeyLoadTotalWait" units="ms">
  <owner>erikchen@chromium.org</owner>
  <summary>
    This histogram records the the total amount of time spent fetching the
    cookies associated with an eTLD+1 from disk, including time spent waiting in
    task queues.
  </summary>
</histogram>

<histogram name="Cookie.TimeLoad" units="ms">
  <owner>pwnall@chromium.org</owner>
  <summary>
    This histogram records the sum of the durations of all initial tasks loading
    cookies from the database.
  </summary>
</histogram>

<histogram name="Cookie.TimeLoadDBQueueWait" units="ms"
    expires_after="2018-08-30">
  <owner>erikchen@chromium.org</owner>
  <summary>
    This histogram records the wall-clock delay between the Load task being
    posted to the DB-thread and its execution.
  </summary>
</histogram>

<histogram name="Cookie.TimeLoadDomains" units="ms">
  <owner>nyquist@chromium.org</owner>
  <summary>
    The amount of time (ms) to read the domain map from the cookies database.
  </summary>
</histogram>

<histogram name="Cookie.TimeParseDomains" units="ms">
  <owner>nyquist@chromium.org</owner>
  <summary>
    The amount of time (ms) to parse the domains already loaded from the cookies
    database and put them in the domain map.
  </summary>
</histogram>

<histogram name="Cookie.Type" enum="CookieType">
  <owner>mkwst@chromium.org</owner>
  <summary>For each cookie added to the store, record it's type(s).</summary>
</histogram>

<histogram name="CopylessPaste.CacheHit" enum="CopylessCacheHit">
  <owner>wychen@chromium.org</owner>
  <summary>
    The cache hit status of metadata extraction for AppIndexing.
  </summary>
</histogram>

<histogram name="CopylessPaste.ExtractionFailedUs" units="microseconds">
  <owner>wychen@chromium.org</owner>
  <summary>
    The time spent on scanning the document in the main frame to extract the
    metadata. The metadata would be used to feed Icing for CopylessPaste feature
    on Android. This only counts pages with failed or empty JSON extraction.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="CopylessPaste.ExtractionStatus" enum="ExtractionStatus">
  <owner>wychen@chromium.org</owner>
  <summary>The error status of metadata extraction for AppIndexing.</summary>
</histogram>

<histogram name="CopylessPaste.ExtractionUs" units="microseconds">
  <owner>wychen@chromium.org</owner>
  <summary>
    The time spent on scanning the document in the main frame to extract the
    metadata. The metadata would be used to feed Icing for CopylessPaste feature
    on Android. This only counts pages with successful JSON extraction.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Cras.HighestInputHardwareLevel" units="frames">
  <owner>yuhsuan@chromium.org</owner>
  <summary>
    The highest hardware level of input device in CRAS(Chrome OS audio server).
    The hardware level is the remaining frames in the device. For input device,
    it can show the latency between capturing and actual reading.
  </summary>
</histogram>

<histogram name="Cras.HighestOutputHardwareLevel" units="frames">
  <owner>yuhsuan@chromium.org</owner>
  <summary>
    The highest hardware level of output device in CRAS(Chrome OS audio server).
    The hardware level is the remaining frames in the device. For output device,
    it can show the latency between writing and actual playout.
  </summary>
</histogram>

<histogram name="Cras.MissedCallbackFirstTimeInput" units="seconds"
    expires_after="2020-01-17">
  <owner>yuhsuan@chromium.org</owner>
  <summary>
    The first time missed callbacks happened on input streams in CRAS (Chrome OS
    audio server). In normal situation, audio thread should follow the callback
    schedule to send frames to clients. However, sometimes it may miss schedule
    because of some reasons. When the first time that audio thread misses
    callback schedule, record how many seconds have passed since stream started
    running.
  </summary>
</histogram>

<histogram name="Cras.MissedCallbackFirstTimeOutput" units="seconds"
    expires_after="2020-01-17">
  <owner>yuhsuan@chromium.org</owner>
  <summary>
    The first time missed callbacks happened on output streams in CRAS (Chrome
    OS audio server). In normal situation, audio thread should follow the
    callback schedule to fetch frames from clients. However, sometimes it may
    miss schedule because of some reasons. When the first time that audio thread
    misses callback schedule, record how many seconds have passed since stream
    started running.
  </summary>
</histogram>

<histogram name="Cras.MissedCallbackFrequencyInput" units="count"
    expires_after="2020-01-17">
  <owner>yuhsuan@chromium.org</owner>
  <summary>
    The number of missed callbacks of input streams in a day. It is calculated
    by number of the missed callbacks / runtime of the stream. This value is
    recorded when the stream is removed.
  </summary>
</histogram>

<histogram name="Cras.MissedCallbackFrequencyOutput" units="count"
    expires_after="2020-01-17">
  <owner>yuhsuan@chromium.org</owner>
  <summary>
    The number of missed callbacks of output streams in a day. It is calculated
    by number of the missed callbacks / runtime of the stream. This value is
    recorded when the stream is removed.
  </summary>
</histogram>

<histogram name="Cras.StreamCallbackThreshold" units="frames">
  <owner>yuhsuan@chromium.org</owner>
  <summary>
    The callback threshold of stream in CRAS(Chrome OS audio server). It is the
    number of frames when to request more from the client. This value is
    recorded when the stream is created.
  </summary>
</histogram>

<histogram name="Cras.StreamFlags" units="value">
  <owner>yuhsuan@chromium.org</owner>
  <summary>
    The flags of stream in CRAS(Chrome OS audio server). It is the special
    handling for stream. This value is recorded when the stream is created.
  </summary>
</histogram>

<histogram name="Cras.StreamSamplingFormat" enum="AlsaSampleFormatType">
  <owner>yuhsuan@chromium.org</owner>
  <summary>
    The sampling format of stream in CRAS(Chrome OS audio server). This value is
    recorded when the stream is created.
  </summary>
</histogram>

<histogram name="Cras.StreamSamplingRate" units="bps">
  <owner>yuhsuan@chromium.org</owner>
  <summary>
    The sampling rate of stream in CRAS(Chrome OS audio server). This value is
    recorded when the stream is created.
  </summary>
</histogram>

<histogram name="Cras.StreamTimeoutMilliSeconds" units="ms">
  <owner>hychao@chromium.org</owner>
  <summary>
    The longest additional time CRAS(Chrome OS audio server) ever waits for a
    stream exceeding the timeout threshold. This value is recorded per stream
    when it gets removed and used to investigate the audio glitch/skip problem
    on Chrome OS.
  </summary>
</histogram>

<histogram name="Cras.UnderrunsPerDevice" units="count">
  <owner>yuhsuan@chromium.org</owner>
  <summary>
    The number of underruns happened on one audio device. Underrun here means
    there are no samples in device buffer while device is playing. It is
    recorded when device is closed by CRAS(Chrome OS audio server).
  </summary>
</histogram>

<histogram name="CrashExitCodes.Extension" enum="CrashExitCodes">
  <owner>wfh@chromium.org</owner>
  <summary>
    The exit codes for crashed extension processes. Note: Due to
    https://crbug.com/805754, the enum labels are off by 1 for M56 and earlier.

    See also Stability.CrashedProcessAge.Extension that is usually logged at the
    same time.
  </summary>
</histogram>

<histogram name="CrashExitCodes.Renderer" enum="CrashExitCodes">
  <owner>wfh@chromium.org</owner>
  <summary>
    The exit codes for crashed renderer processes. Note: Due to
    https://crbug.com/805754, the enum labels are off by 1 for M56 and earlier.

    See also Stability.CrashedProcessAge.Renderer that is usually logged at the
    same time.
  </summary>
</histogram>

<histogram name="Crashpad.CrashReportPending" enum="CrashpadReportPending">
  <owner>crashpad-dev@chromium.org</owner>
  <summary>
    The reason that a crash report entered the upload pending state.
  </summary>
</histogram>

<histogram name="Crashpad.CrashReportSize" units="bytes">
  <owner>crashpad-dev@chromium.org</owner>
  <summary>The size of a crash report minidump on disk when captured.</summary>
</histogram>

<histogram name="Crashpad.CrashUpload.AttemptSuccessful"
    enum="CrashpadUploadAttemptStatus">
  <owner>crashpad-dev@chromium.org</owner>
  <summary>Logs whether a crash uploaded succeeded or failed.</summary>
</histogram>

<histogram name="Crashpad.CrashUpload.Skipped"
    enum="CrashpadUploadSkippedReason">
  <owner>crashpad-dev@chromium.org</owner>
  <summary>The reason that a crash report upload was skipped.</summary>
</histogram>

<histogram name="Crashpad.ExceptionCaptureResult"
    enum="CrashpadExceptionCaptureResult">
  <owner>crashpad-dev@chromium.org</owner>
  <summary>The outcome of execution of the Crashpad exception handler.</summary>
</histogram>

<histogram name="Crashpad.ExceptionCode.Mac" enum="CrashpadMacExceptionCodes">
  <owner>crashpad-dev@chromium.org</owner>
  <summary>The exception code encountered in a crash on Mac OS X.</summary>
</histogram>

<histogram name="Crashpad.ExceptionCode.Win" enum="CrashpadWinExceptionCodes">
  <owner>crashpad-dev@chromium.org</owner>
  <summary>The exception code encountered in a crash on Windows.</summary>
</histogram>

<histogram name="Crashpad.ExceptionEncountered"
    enum="CrashpadExceptionProcessingState">
  <owner>crashpad-dev@chromium.org</owner>
  <summary>
    A count of the number of exceptions handled by Crashpad with two buckets for
    starting and finishing.
  </summary>
</histogram>

<histogram name="Crashpad.HandlerCrash.ExceptionCode.Mac"
    enum="CrashpadMacExceptionCodes">
  <owner>crashpad-dev@chromium.org</owner>
  <summary>
    The exception code encountered for a crash of the crash handler process on
    Mac OS X.
  </summary>
</histogram>

<histogram name="Crashpad.HandlerCrash.ExceptionCode.Win"
    enum="CrashpadWinExceptionCodes">
  <owner>crashpad-dev@chromium.org</owner>
  <summary>
    The exception code encountered for a crash of the crash handler process on
    Windows.
  </summary>
</histogram>

<histogram name="Crashpad.HandlerLifetimeMilestone"
    enum="CrashpadLifetimeMilestone">
  <owner>crashpad-dev@chromium.org</owner>
  <summary>Handler start/crash/exit events.</summary>
</histogram>

<histogram name="CrashReport.BreakpadCrashDumpOutcome" enum="DumpOutcome">
  <obsolete>
    Deprecated as of 04/2016 as CrashPad does not implement this.
  </obsolete>
  <owner>siggi@chromium.org</owner>
  <summary>
    Reports the result of an attempt to report a crash dump via Breakpad.
    Success indicates only that the out-of-process crash reporter succesfully
    generated a dump. The success or failure of the eventual upload is not
    measured. This stability metric is logged from the first Chrome launch
    post-dump.
  </summary>
</histogram>

<histogram name="CrashReport.BreakpadDumpWithoutCrashOutcome"
    enum="DumpOutcome">
  <obsolete>
    Deprecated as of 04/2016 as CrashPad does not implement this.
  </obsolete>
  <owner>siggi@chromium.org</owner>
  <summary>
    Reports the result of an attempt to report a dump via Breakpad without
    crashing. Success indicates only that the out-of-process crash reporter
    succesfully generated a dump. The success or failure of the eventual upload
    is not measured. This stability metric is logged from the first Chrome
    launch post-dump.
  </summary>
</histogram>

<histogram name="CrashReport.CrashBackgroundUploadDelay" units="ms">
  <obsolete>
    Deprecated as of 03/2018 when Chrome for iOS stopped uploading crash dumps
    in the background.
  </obsolete>
  <owner>olivierrobin@chromium.org</owner>
  <owner>pkl@chromium.org</owner>
  <summary>
    Time delta between when the crash took place and when the crash was uploaded
    by the app as a background task. Only logged on iOS.
  </summary>
</histogram>

<histogram name="CrashReport.PendingReportsOnBackgroundWakeUp">
  <obsolete>
    Deprecated as of 03/2018 when Chrome for iOS stopped uploading crash dumps
    in the background.
  </obsolete>
  <owner>olivierrobin@chromium.org</owner>
  <owner>pkl@chromium.org</owner>
  <summary>
    The number of crash reports present when the app wakes up as a background
    task to upload crash reports. Only logged on iOS.
  </summary>
</histogram>

<histogram name="CrashReport.PermanentUploadFailure" enum="BooleanHit">
  <obsolete>
    Deprecated 01/2017 in Issue 680162 with the removal of Kasko.
  </obsolete>
  <owner>siggi@chromium.org</owner>
  <summary>
    Counts crash reports that the Kasko crash reporter fails to upload and hands
    off to Chrome. Kasko stores the failed reports in a location specified by
    Chrome. Chrome records this metric when it detects new minidump files in
    that location. Currently the reports are discarded, but they could
    eventually be uploaded via the Chrome network stack.
  </summary>
</histogram>

<histogram name="Cros.ClickOnShelf" enum="CrosShelfClickTarget">
  <obsolete>
    Deprecated as of 12/2013. Default pinned apps trial is finished.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Chrome OS shelf clicks.</summary>
</histogram>

<histogram name="CrosDisks.ArchiveType" enum="CrosDisksArchiveType">
  <owner>benchan@chromium.org</owner>
  <summary>
    The type of archive file that Chrome OS cros-disks daemon is requested to
    mount.
  </summary>
</histogram>

<histogram name="CrosDisks.DeviceMediaType" enum="CrosDisksDeviceMediaType">
  <owner>benchan@chromium.org</owner>
  <summary>
    The media type of removable device that Chrome OS cros-disks daemon is
    requested to mount.
  </summary>
</histogram>

<histogram name="CrosDisks.FilesystemType" enum="CrosDisksFilesystemType">
  <owner>benchan@chromium.org</owner>
  <summary>
    The type of file system that Chrome OS cros-disks daemon is requested to
    mount.
  </summary>
</histogram>

<histogram name="CrosDisksClient.MountCompletedError"
    enum="CrosDisksClientMountError">
  <owner>amistry@chromium.org</owner>
  <summary>
    The error code of disk mount signals received from the Chrome OS cros-disks
    daemon.
  </summary>
</histogram>

<histogram name="CrosDisksClient.MountErrorMountType"
    enum="CrosDisksMountTypeError">
  <owner>amistry@chromium.org</owner>
  <summary>
    The {mount type}x{mount error code} received from the Chrome OS cros-disks
    daemon.
  </summary>
</histogram>

<histogram name="CrosDisksClient.MountTime" units="ms">
  <owner>amistry@chromium.org</owner>
  <summary>
    Time taken by the Chrome OS cros-disks daemon to perform a Mount operation.
  </summary>
</histogram>

<histogram name="CrosDisksClient.UnmountError" enum="CrosDisksClientMountError">
  <owner>amistry@chromium.org</owner>
  <summary>
    The error code of disk unmount operations returned from the Chrome OS
    cros-disks daemon.
  </summary>
</histogram>

<histogram name="CrosDisksClient.UnmountTime" units="ms">
  <owner>amistry@chromium.org</owner>
  <summary>
    Time taken by the Chrome OS cros-disks daemon to perform an Unmount
    operation.
  </summary>
</histogram>

<histogram name="CrosFirstRun.DialogShown">
  <owner>alemate@chromium.org</owner>
  <summary>
    Records the number of times when first-run dialog was shown.
  </summary>
</histogram>

<histogram name="CrosFirstRun.FurthestStep">
  <owner>alemate@chromium.org</owner>
  <summary>
    Index of furthest step that was reached during tutorial. Since order of
    steps could change eventially and new steps could apear we use index here
    instead of step name.
  </summary>
</histogram>

<histogram name="CrosFirstRun.TimeSpent" units="ms">
  <owner>alemate@chromium.org</owner>
  <summary>The total time that user spent on first-run tutorial.</summary>
</histogram>

<histogram name="CrosFirstRun.TimeSpentOnStep" units="ms">
  <owner>alemate@chromium.org</owner>
  <summary>The time that user spent on some step of tutorial.</summary>
</histogram>

<histogram name="CrosFirstRun.TutorialCompletion"
    enum="CrosFirstRunTutorialCompletionType">
  <owner>alemate@chromium.org</owner>
  <summary>Tracks the way how user left tutorial.</summary>
</histogram>

<histogram name="CrosFirstRun.TutorialLaunched">
  <owner>alemate@chromium.org</owner>
  <summary>
    Records the number of times when first-run tutorial has been launched.
  </summary>
</histogram>

<histogram name="Crostini.AppLaunch" enum="CrostiniAppLaunchAppType">
  <owner>benwells@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    Recorded each time a Crostini app is launched, recording whether the app is
    the built in terminal, a registered app, or an unknown app.
  </summary>
</histogram>

<histogram name="Crostini.AppsInstalledAtLogin" units="apps">
  <owner>jopra@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    Records the number of Crostini apps that surface in the launcher at login
    time (not including the Terminal). This only logs if Crostini is enabled for
    the current user.
  </summary>
</histogram>

<histogram name="Crostini.Backup" enum="CrostiniExportContainerResult"
    expires_after="2020-01-01">
  <owner>joelhockey@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>Result of crostini backup.</summary>
</histogram>

<histogram name="Crostini.BackupTimeFailed" units="ms"
    expires_after="2020-01-01">
  <owner>joelhockey@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>Time taken for failed backup.</summary>
</histogram>

<histogram name="Crostini.BackupTimeSuccess" units="ms"
    expires_after="2020-01-01">
  <owner>joelhockey@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>Time taken for successful backup.</summary>
</histogram>

<histogram name="Crostini.Crosvm.CpuPercentage" units="%"
    expires_after="2019-08-30">
  <owner>tbuckley@chromium.org</owner>
  <owner>timzheng@chromium.org</owner>
  <summary>
    The percentage of the system CPU that crosvm processes used during the
    10-minute measuring period. This is recorded once every 10 minutes when
    crosvm is running.
  </summary>
</histogram>

<histogram name="Crostini.Crosvm.Processes.Count" units="processes"
    expires_after="2019-08-30">
  <owner>tbuckley@chromium.org</owner>
  <owner>timzheng@chromium.org</owner>
  <summary>
    The number of crosvm processes that are running at the end of the 10-minute
    interval. This is recorded once every 10 minutes when crosvm is running.
  </summary>
</histogram>

<histogram name="Crostini.Crosvm.RssPercentage" units="%"
    expires_after="2019-08-30">
  <owner>tbuckley@chromium.org</owner>
  <owner>timzheng@chromium.org</owner>
  <summary>
    The percentage of the system memory that crosvm processes used at the end of
    the 10-minute measuring period. This is recorded once every 10 minutes when
    crosvm is running.
  </summary>
</histogram>

<histogram name="Crostini.DiskImageSize" units="GiB" expires_after="2019-11-20">
  <owner>sidereal@google.com</owner>
  <owner>nverne@chromium.org</owner>
  <summary>
    The maximum space allowed for a VM disk image, as set at install time. This
    is recorded each time a disk image is successfully created.
  </summary>
</histogram>

<histogram name="Crostini.Restore" enum="CrostiniImportContainerResult"
    expires_after="2020-01-01">
  <owner>joelhockey@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>Result of crostini restore.</summary>
</histogram>

<histogram name="Crostini.RestoreTimeFailed" units="ms"
    expires_after="2020-01-01">
  <owner>joelhockey@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>Time taken for failed restore.</summary>
</histogram>

<histogram name="Crostini.RestoreTimeSuccess" units="ms"
    expires_after="2020-01-01">
  <owner>joelhockey@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>Time taken for successful restore.</summary>
</histogram>

<histogram name="Crostini.SetupResult" enum="CrostiniSetupResult">
  <owner>benwells@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    Recorded each time the user completes the Crostini setup UI, recording the
    result of the setup.
  </summary>
</histogram>

<histogram name="Crostini.SetupSource" enum="CrostiniUISurface">
  <owner>benwells@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    Recorded each time the user initiates the Crostini setup UI, recording the
    UI surface that invoked the setup.
  </summary>
</histogram>

<histogram name="Crostini.TimeFromDeviceSetupToInstall" units="ms">
  <owner>benwells@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    The time from a user setting up their device, to the user enabling Crostini.
  </summary>
</histogram>

<histogram name="Crostini.UninstallResult" enum="CrostiniUninstallResult">
  <owner>benwells@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    Recorded each time the user completes the Crostini uninstall UI, recording
    the result of the uninstall.
  </summary>
</histogram>

<histogram name="Crostini.UninstallSource" enum="CrostiniUISurface">
  <owner>benwells@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    Recorded each time the user initiates the Crostini uninstall UI, recording
    the UI surface that initiated the uninstall.
  </summary>
</histogram>

<histogram name="Crostini.UpgradeSource" enum="CrostiniUISurface">
  <owner>benwells@chromium.org</owner>
  <owner>nverne@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    Recorded each time the user sees the Crostini upgrade UI, recording the UI
    surface that initiated the upgrade.
  </summary>
</histogram>

<histogram name="CrosUsb.NotificationClosed" enum="CrosUsbNotificationClosed"
    expires_after="2019-07-01">
  <owner>benwells@chromium.org</owner>
  <owner>nverne@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    Records the reason why the &quot;Cros USB device detected&quot; notification
    was dismissed. Recorded on notificiation close, after usb attached.
  </summary>
</histogram>

<histogram name="CryptAuth.ClientAppMetadataInstanceIdTokenFetch.Result"
    enum="InstanceIDResult" expires_after="2019-11-01">
  <owner>jlklein@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>
    Indicates the result of fetching an InstanceId token during the construction
    of a ClientAppMetadata proto messages.
  </summary>
</histogram>

<histogram name="CryptAuth.DeviceSync.Result" enum="BooleanSuccess">
  <owner>hansberry@chromium.org</owner>
  <summary>Indicates success of performing a DeviceSync.</summary>
</histogram>

<histogram name="CryptAuth.DeviceSyncSoftwareFeaturesResult"
    enum="BooleanSuccess">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Indicates that there was no issue retrieving supported and enabled software
    features, or that there were enabled features which were not in the
    supported feature set. See the histogram
    &quot;CryptAuth.DeviceSyncSoftwareFeaturesResult.Failures&quot; for a
    breakdown of failures by feature type.
  </summary>
</histogram>

<histogram name="CryptAuth.DeviceSyncSoftwareFeaturesResult.Failures"
    enum="CryptAuthSoftwareFeature">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Breaks down by feature type
    &quot;CryptAuth.DeviceSyncSoftwareFeaturesResult&quot;'s count of enabled
    features which were not in the supported feature set.
  </summary>
</histogram>

<histogram name="CryptAuth.Enrollment.Result" enum="BooleanSuccess">
  <owner>jhawkins@chromium.org</owner>
  <summary>
    The top-level result of the CryptAuth device enrollment process.
  </summary>
</histogram>

<histogram name="Cryptohome.AsyncDBusRequest" units="ms"
    expires_after="2020-01-01">
  <owner>menghuan@chromium.org</owner>
  <summary>
    Records the total running time of every async dbus calls of Cryptohome at
    server side.
  </summary>
</histogram>

<histogram name="Cryptohome.ChecksumStatus" enum="CryptohomeChecksumStatus">
  <owner>apronin@chromium.org</owner>
  <owner>cros-hwsec@chromium.org</owner>
  <summary>
    Checksum status of critical persistent data used by Cryptohome. This status
    is recorded every time the cryptohomed daemon reads a file.
  </summary>
</histogram>

<histogram name="Cryptohome.DeletedUserProfiles" units="profiles">
  <owner>loyso@chromium.org</owner>
  <summary>
    In low disk space scenarios, Cryptohome erases whole user profiles. This is
    a number of user profiles deleted during cleanup. Only reported when
    non-zero.
  </summary>
</histogram>

<histogram name="Cryptohome.DeprecatedApiCalled"
    enum="CryptohomeDeprecatedApiCalled" expires_after="M80">
  <owner>apronin@chromium.org</owner>
  <owner>louiscollard@chromium.org</owner>
  <owner>zuan@chromium.org</owner>
  <summary>
    Records when a deprecated API function in cryptohome is called, so we know
    which exposed DBus API can be removed without side effect.
  </summary>
</histogram>

<histogram name="Cryptohome.DircryptoMigrationEndStatus"
    enum="DircryptoMigrationEndStatus">
  <owner>dspaid@chromium.org</owner>
  <summary>
    The status of the user home directory migration from ecryptfs to
    ext4-crypto. This is logged once at the end of each migration.
  </summary>
</histogram>

<histogram name="Cryptohome.DircryptoMigrationFailedErrorCode"
    enum="PlatformFileError">
  <owner>kinaba@chromium.org</owner>
  <summary>
    The error code of file operation by which the user home directory migration
    from ecryptfs to ext4-crypto has failed. This is logged once the migration
    encounters a file I/O error.
  </summary>
</histogram>

<histogram name="Cryptohome.DircryptoMigrationFailedOperationType"
    enum="DircryptoMigrationFailedOperationType">
  <owner>kinaba@chromium.org</owner>
  <summary>
    The type of file operation at which the user home directory migration from
    ecryptfs to ext4-crypto has failed. This is logged once the migration
    encounters a file I/O error.
  </summary>
</histogram>

<histogram name="Cryptohome.DircryptoMigrationFailedPathType"
    enum="DircryptoMigrationFailedPathType">
  <owner>kinaba@chromium.org</owner>
  <summary>
    The category of the path where the user home directory migration from
    ecryptfs to ext4-crypto has failed. This is logged once the migration
    encounters a file I/O error.
  </summary>
</histogram>

<histogram name="Cryptohome.DircryptoMigrationInitialFreeSpaceInMb" units="MB">
  <owner>dspaid@chromium.org</owner>
  <summary>
    The total amount of free disk space on the system when the user started the
    migration from ecryptfs to ext4-crypto. This is only logged when the user
    encounters an insufficient space error.
  </summary>
</histogram>

<histogram name="Cryptohome.DircryptoMigrationNoSpaceFailureFreeSpaceInMb"
    units="MB">
  <owner>dspaid@chromium.org</owner>
  <summary>
    The total amount of free disk space on the system when the user received an
    insufficient space error during the migration from ecryptfs to ext4-crypto.
    This is only logged when the user encounters an insufficient space error.
  </summary>
</histogram>

<histogram name="Cryptohome.DircryptoMigrationNoSpaceXattrSizeInBytes"
    units="bytes">
  <owner>dspaid@chromium.org</owner>
  <summary>
    The total number of bytes of xattr data that we are trying to store on a
    file when we receive an insufficient space error. This includes both xattr
    data already present on the file as well as the new xattr we are trying to
    set. This is only logged during ecryptfs to ext4-crypto migration if we
    receive an insufficient space error when setting a new extended attribute.
  </summary>
</histogram>

<histogram name="Cryptohome.DircryptoMigrationStartStatus"
    enum="DircryptoMigrationStartStatus">
  <owner>dspaid@chromium.org</owner>
  <summary>
    The status of the user home directory migration from ecryptfs to
    ext4-crypto. This is logged once at the start of each migration.
  </summary>
</histogram>

<histogram name="Cryptohome.DircryptoMigrationTotalByteCountInMb" units="MB">
  <owner>hashimoto@chromium.org</owner>
  <summary>
    The total byte count (MB) of the data in a user's home directory which is
    being migrated from ecryptfs to ext4-crypto. This is logged once when a new
    migration starts.
  </summary>
</histogram>

<histogram name="Cryptohome.DircryptoMigrationTotalFileCount">
  <owner>hashimoto@chromium.org</owner>
  <summary>
    The total file count in a user's home directory which is being migrated from
    ecryptfs to ext4-crypto. This is logged once when a new migration starts.
  </summary>
</histogram>

<histogram name="Cryptohome.DircryptoMinimalMigrationEndStatus"
    enum="DircryptoMigrationEndStatus">
  <owner>dspaid@chromium.org</owner>
  <owner>pmarko@chromium.org</owner>
  <summary>
    The status of the user home directory minimal migration from ecryptfs to
    ext4-crypto. This is logged once at the end of each minimal migration.
  </summary>
</histogram>

<histogram name="Cryptohome.DircryptoMinimalMigrationStartStatus"
    enum="DircryptoMigrationStartStatus">
  <owner>dspaid@chromium.org</owner>
  <owner>pmarko@chromium.org</owner>
  <summary>
    The status of the user home directory minimal migration from ecryptfs to
    ext4-crypto. This is logged once at the start of each minimal migration.
  </summary>
</histogram>

<histogram name="Cryptohome.DiskCleanupProgress"
    enum="CryptohomeDiskCleanupProgress">
  <owner>loyso@chromium.org</owner>
  <summary>
    In low disk space scenarios, Cryptohome erases caches while target amount of
    free disk space is not reached. It starts from low priority categories. This
    histogram reports which topmost priority was reached to fulfill a cleanup
    request.
  </summary>
</histogram>

<histogram name="Cryptohome.Errors" enum="CryptohomeError">
  <owner>apronin@chromium.org</owner>
  <owner>cros-hwsec@chromium.org</owner>
  <summary>Cryptohome errors.</summary>
</histogram>

<histogram name="Cryptohome.FreedGCacheDiskSpaceInMb" units="MB">
  <obsolete>
    Deprecated 05/2018 in favor of Cryptohome.GCache.FreedDiskSpaceInMb. Reports
    zero in 99% of hits.
  </obsolete>
  <owner>oka@chromium.org</owner>
  <summary>
    The amount of drive cache (MB) which was evicted by cryptohome due to
    shortage of remaining disk space.
  </summary>
</histogram>

<histogram name="Cryptohome.FreeDiskSpaceTotalTime" units="ms">
  <owner>loyso@chromium.org</owner>
  <summary>
    In low disk space scenarios, Cryptohome performs a lot of disk space
    operations to erase data. This is a number of milliseconds taken to perform
    a cleanup. Reported only if longer than 5 ms.
  </summary>
</histogram>

<histogram name="Cryptohome.GCache.FreedDiskSpaceInMb" units="MB">
  <owner>loyso@chromium.org</owner>
  <summary>
    This is an amount of Google Drive cache (MB) which was evicted by cryptohome
    due to shortage of remaining disk space. Reported only if something was
    deleted (greater than zero).
  </summary>
</histogram>

<histogram name="Cryptohome.HomedirEncryptionType" enum="HomedirEncryptionType">
  <owner>dspaid@chromium.org</owner>
  <summary>
    The encryption type used for a user's cryptohome directory. This is logged
    each time the cryptohome is mounted.
  </summary>
</histogram>

<histogram base="true" name="Cryptohome.LECredential"
    enum="CryptohomeLECredError" expires_after="2019-04-23">
<!-- Name completed by histogram_suffixes name="LECredentialOps" -->

  <owner>pmalani@chromium.org</owner>
  <owner>apronin@chromium.org</owner>
  <owner>mnissler@chromium.org</owner>
  <owner>allenwebb@chromium.org</owner>
  <summary>
    Events related to Low Entropy (LE) credential management. These are logged
    every time an operation involving a LE credential is performed.
  </summary>
</histogram>

<histogram name="Cryptohome.MigrationToGaiaId"
    enum="CryptohomeMigrationToGaiaId">
  <owner>alemate@chromium.org</owner>
  <summary>
    This is the status of cryptohome migration to GaiaId. Every time user logs
    in current migration status is recorded.
  </summary>
</histogram>

<histogram name="Cryptohome.MigrationUI.ConsumedBatteryPercent" units="%">
  <owner>fukino@chromium.org</owner>
  <summary>
    The amount of consumed battery level during cryptohome encryption migration.
    This is logged when the battery level decreases during migration, and the
    data is used to check if the minimum battery level required to start
    migration is appropriate.
  </summary>
</histogram>

<histogram name="Cryptohome.MigrationUI.FirstScreen"
    enum="MigrationUIFirstScreen">
  <owner>fukino@chromium.org</owner>
  <summary>
    The first screen in the encryption migration UI, which is shown when a user
    attempts to log in to the system and old encryption (eCryptfs) is detected.
  </summary>
</histogram>

<histogram name="Cryptohome.MigrationUI.MigrationResult"
    enum="MigrationUIMigrationResult">
  <owner>fukino@chromium.org</owner>
  <summary>
    The result of encryption migration from eCryptfs to Ext4 dircrypto. The
    recorded result is what the migration UI in Chrome side is notified from
    cryptohomed.
  </summary>
</histogram>

<histogram name="Cryptohome.MigrationUI.RemoveCryptohomeResult"
    enum="MigrationUIRemoveCryptohomeResult">
  <owner>fukino@chromium.org</owner>
  <summary>
    The result of the removal of user's cryptohome. When the migration UI is
    notified that the migration failed, the UI tries to remove the user's
    cryptohome to make sure that the user can create clean crytohome directory
    in the next sign-in.
  </summary>
</histogram>

<histogram name="Cryptohome.MigrationUI.UserChoice"
    enum="MigrationUIUserChoice">
  <owner>fukino@chromium.org</owner>
  <summary>
    User's choice when the system is ready to migrate encryption. The user can
    start migration or skip it. It is used to know how many users have skipped
    migration.
  </summary>
</histogram>

<histogram name="Cryptohome.MigrationUI.VisibleScreen" enum="MigrationUIScreen">
  <owner>fukino@chromium.org</owner>
  <summary>
    How many times each screen in migration UI is shown to the user. A screen is
    recorded as a visible screen when the screen is kept displayed at least for
    a second.
  </summary>
</histogram>

<histogram name="Cryptohome.TimeToCompleteDircryptoMigration" units="ms">
  <owner>dspaid@chromium.org</owner>
  <summary>
    The amount of time (ms) for the user's home directory to be migrated from
    ecryptfs to ext4-crypto. If the migration is interrupted and subsequently
    resumed (such as due to power loss) then no value is recorded for either
    attempt.
  </summary>
</histogram>

<histogram name="Cryptohome.TimeToCompleteDircryptoMinimalMigration" units="ms">
  <owner>dspaid@chromium.org</owner>
  <summary>
    The amount of time (ms) for the user's home directory to be migrated from
    ecryptfs to ext4-crypto if the minimal migration method was used. If the
    minimal migration is interrupted and subsequently resumed (such as due to
    power loss) then no value is recorded for either attempt.
  </summary>
</histogram>

<histogram name="Cryptohome.TimeToInitPkcs11" units="ms">
  <owner>apronin@chromium.org</owner>
  <owner>cros-hwsec@chromium.org</owner>
  <summary>
    The amount of time (ms) for Chrome OS cryptohome daemon to initialize the
    PKCS#11. Initializations under 1 second represent checks on a previously
    initialized PKCS#11, and should be discarded for analysis.
  </summary>
</histogram>

<histogram name="Cryptohome.TimeToMountAsync" units="ms">
  <owner>apronin@chromium.org</owner>
  <owner>cros-hwsec@chromium.org</owner>
  <summary>
    The amount of time (ms) for Chrome OS cryptohome to mount the encrypted home
    directory asynchronously.
  </summary>
</histogram>

<histogram name="Cryptohome.TimeToMountGuestAsync" units="ms">
  <owner>apronin@chromium.org</owner>
  <owner>cros-hwsec@chromium.org</owner>
  <summary>
    The amount of time (ms) for Chrome OS cryptohome to mount the encrypted
    guest home directory asynchronously.
  </summary>
</histogram>

<histogram name="Cryptohome.TimeToMountGuestSync" units="ms">
  <owner>apronin@chromium.org</owner>
  <owner>cros-hwsec@chromium.org</owner>
  <summary>
    The amount of time (ms) for Chrome OS cryptohome to mount the encrypted
    guest home directory synchronously.
  </summary>
</histogram>

<histogram name="Cryptohome.TimeToMountSync" units="ms">
  <owner>apronin@chromium.org</owner>
  <owner>cros-hwsec@chromium.org</owner>
  <summary>
    The amount of time (ms) for Chrome OS cryptohome to mount the encrypted home
    directory synchronously.
  </summary>
</histogram>

<histogram name="Cryptohome.TimeToTakeTpmOwnership" units="ms">
  <owner>apronin@chromium.org</owner>
  <owner>cros-hwsec@chromium.org</owner>
  <summary>
    The amount of time (ms) for Chrome OS cryptohome daemon to take ownership of
    the TPM.
  </summary>
</histogram>

<histogram name="Cryptohome.TpmResults" enum="CryptohomeTpmResults">
  <owner>afakhry@chromium.org</owner>
  <summary>
    The errors resulting from interacting with the Trusted Platform Module (TPM)
    device.
  </summary>
</histogram>

<histogram name="CryptohomeClient" units="ms" expires_after="2020-01-01">
  <owner>menghuan@chromium.org</owner>
  <summary>
    Records the time duration of every dbus outgoing calls issued from the
    client of Crypthome in Chrome side.
  </summary>
</histogram>

<histogram base="true" name="CustomTab.SessionDuration" units="ms">
  <owner>ranj@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="CustomTabOpenSource" -->

  <summary>
    Records the time duration in CustomTab Activity from onStart/onResume to
    onStop/onPause, if that activity is opened by Webapp/WebApk/Trusted Web
    Activity.
  </summary>
</histogram>

<histogram name="CustomTabs.ClientAppId" enum="ClientAppId">
  <owner>yusufo@chromium.org</owner>
  <summary>
    Android: AppId declared by the launching application in EXTRA_APPLICATION_ID
    in a custom tab. This histogram is used as a means to count the total
    instances of custom tabs created meanwhile binning them across launching
    apps that have identified themselves.
  </summary>
</histogram>

<histogram name="CustomTabs.ConnectionStatusOnReturn.GSA"
    enum="CustomTabsConnection">
  <owner>nyquist@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    Android: Recorded whenever user closes the custom tab by hitting the close
    button or back to return to the caller app. Keeps track of the connection
    status and whether the app was using a KeepAlive connection. Recorded only
    for AGSA.
  </summary>
</histogram>

<histogram name="CustomTabs.ConnectionStatusOnReturn.NonGSA"
    enum="CustomTabsConnection">
  <owner>nyquist@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    Android: Recorded whenever user closes the custom tab by hitting the close
    button or back to return to the caller app. Keeps track of the connection
    status and whether the app was using a KeepAlive connection. Recorded for
    all apps other than AGSA.
  </summary>
</histogram>

<histogram base="true" name="CustomTabs.DetachedResourceRequest.Duration"
    units="ms">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Time between the start of a detached resource request and its completion
    (failure or success). Android only.
  </summary>
</histogram>

<histogram name="CustomTabs.DetachedResourceRequest.FinalStatus"
    enum="NetErrorCodes">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Reports the final status of the detached request, including success.
    Recorded once per detached resource request. Android only.
  </summary>
</histogram>

<histogram base="true" name="CustomTabs.DetachedResourceRequest.RedirectsCount"
    units="redirects">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Number of redirects followed by a detached resource request until success or
    failure. Android only.
  </summary>
</histogram>

<histogram name="CustomTabs.DynamicModule.CreateActivityDelegateTime"
    units="ms">
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>
    Time to create an activity delegate for a custom tabs dynamic module.
    Android only.
  </summary>
</histogram>

<histogram name="CustomTabs.DynamicModule.CreatePackageContextTime" units="ms">
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>
    Time to create the package context for a custom tabs dynamic module. Android
    only.
  </summary>
</histogram>

<histogram name="CustomTabs.DynamicModule.DestructionReason"
    enum="CustomTabsDynamicModuleDestructionReason" expires_after="2019-07-01">
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>
    Possible reasons for destroying a custom tabs dynamic module. Android only.
  </summary>
</histogram>

<histogram name="CustomTabs.DynamicModule.EntryPointInitTime" units="ms"
    expires_after="2019-04-22">
  <owner>amalova@chromium.org</owner>
  <summary>
    Time to initialize the entry point class for a custom tabs dynamic module.
    Android only.
  </summary>
</histogram>

<histogram name="CustomTabs.DynamicModule.EntryPointLoadClassTime" units="ms">
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>
    Time to load the entry point class for a custom tabs dynamic module. Android
    only.
  </summary>
</histogram>

<histogram name="CustomTabs.DynamicModule.EntryPointNewInstanceTime" units="ms">
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>
    Time to instantiate the entry point class for a custom tabs dynamic module.
    Android only.
  </summary>
</histogram>

<histogram name="CustomTabs.DynamicModule.LoadResult"
    enum="CustomTabsDynamicModuleLoadResult">
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>
    Possible results when loading a custom tabs dynamic module. Android only.
  </summary>
</histogram>

<histogram name="CustomTabs.DynamicModule.ProportionalSet.OnModuleLoad"
    units="KB" expires_after="2019-05-10">
  <owner>msalama@google.com</owner>
  <owner>lizeb@chromium.org</owner>
  <summary>
    The proportional set size (PSS) of code pages occupied by a custom tabs
    dynamic module. Recorded when a module is loaded. Android only.
  </summary>
</histogram>

<histogram name="CustomTabs.DynamicModule.ResidentSet.OnModuleLoad" units="KB"
    expires_after="2019-05-10">
  <owner>msalama@google.com</owner>
  <owner>lizeb@chromium.org</owner>
  <summary>
    The resident set size (PSS) of code pages occupied by a custom tabs dynamic
    module. Recorded when a module is loaded. Android only.
  </summary>
</histogram>

<histogram name="CustomTabs.IntentToFirstCommitNavigationTime" units="ms">
  <obsolete>
    Deprecated 10/2016 in favor of .IntentToFirstCommitNavigationTime2.*.
  </obsolete>
  <owner>lizeb@chromium.org</owner>
  <summary>
    Time between the intent arrival in Chrome and the first navigation commit,
    if the navigation is successful. Similar in principle to
    Startup.FirstCommitNavigationTime.
  </summary>
</histogram>

<histogram name="CustomTabs.IntentToFirstCommitNavigationTime2" units="ms">
  <obsolete>
    Deprecated 2017-08 in favor of CustomTabs.IntentToFirstNavigationStartTime.
  </obsolete>
  <owner>lizeb@chromium.org</owner>
  <summary>
    Time between the intent arrival to a Custom Tab and the navigation start
    (note: not the navigation commit, as the name suggests). Recorded when the
    page has finished loading. Non-&quot;Herb&quot; mode.
  </summary>
</histogram>

<histogram name="CustomTabs.IntentToFirstCommitNavigationTime3" units="ms">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Time between the intent arrival to a Custom Tab and the first navigation
    commit. Recorded for every custom tabs intent when the page has finished
    loading.
  </summary>
</histogram>

<histogram name="CustomTabs.IntentToFirstNavigationStartTime" units="ms">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Time between the intent arrival to a Custom Tab and the navigation start.
    Recorded when the page has finished loading. Non-&quot;Herb&quot; mode.
  </summary>
</histogram>

<histogram name="CustomTabs.IntentToPageLoadedTime" units="ms">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Time between the intent arrival in Chrome and the first &quot;page
    loaded&quot; event, if the navigation is successful. Non-&quot;Herb&quot;
    mode.
  </summary>
</histogram>

<histogram name="CustomTabs.MayLaunchUrlType" enum="MayLaunchUrlType">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Android only. Which flavors of mayLaunchUrl() were used before a tab launch.
    Can be low and/or high confidence. Recorded at the same time as
    CustomTabs.WarmupStateOnLaunch for the buckets &quot;Session, No Warmup,
    Warmup called from another UID&quot;, &quot;Session, No Warmup&quot; and
    &quot;Session, Warmup&quot;.
  </summary>
</histogram>

<histogram name="CustomTabs.NonDefaultSessionPrerenderMatched"
    enum="BooleanMatched">
  <obsolete>
    Deprecated 4/2018 when prerender was removed from Custom Tabs.
  </obsolete>
  <owner>lizeb@chromium.org</owner>
  <summary>
    Android: When there is a prerender for a session with non-default
    parameters, whether the prerender was matched when navigating.
  </summary>
</histogram>

<histogram name="CustomTabs.ParallelRequestStatusOnStart"
    enum="CustomTabsParallelRequestStatusOnStart">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Recorded only on Android. Whether a parallel request was requested by the
    calling application, and if so its initial status. Recorded once per handled
    intent, when the request is initiated.
  </summary>
</histogram>

<histogram name="CustomTabs.PredictionStatus" enum="PredictionStatus">
  <owner>lizeb@chromium.org</owner>
  <summary>
    For Custom Tabs, records whether mayLaunchUrl() has been called, and if so,
    whether the call was later matched by a URL launch.
  </summary>
</histogram>

<histogram name="CustomTabs.PredictionToLaunch" units="ms">
  <owner>lizeb@chromium.org</owner>
  <summary>
    When a URL prediction succeeds, time in ms between the prediction and the
    actual launch.
  </summary>
</histogram>

<histogram name="CustomTabs.PrerenderSessionUsesDefaultParameters"
    enum="BooleanDefault">
  <obsolete>
    Deprecated 4/2018 when prerender was removed from Custom Tabs.
  </obsolete>
  <owner>lizeb@chromium.org</owner>
  <summary>
    Android: When prerendering a URL for Custom Tabs, whether the client session
    uses the default parameters.
  </summary>
</histogram>

<histogram base="true" name="CustomTabs.ResourcePrefetch.Duration" units="ms"
    expires_after="M73">
  <owner>alexilin@chromium.org</owner>
  <summary>
    Time between the start of a detached resource request for resource prefetch
    and its completion (failure or success). Android only.
  </summary>
</histogram>

<histogram name="CustomTabs.ResourcePrefetch.FinalStatus" enum="NetErrorCodes"
    expires_after="M73">
  <owner>alexilin@chromium.org</owner>
  <summary>
    Reports the final status of the detached request for resource prefetch,
    including success. Recorded once per resource prefetch request. Android
    only.
  </summary>
</histogram>

<histogram name="CustomTabs.SpareWebContents.Status"
    enum="SpareWebContentsStatus">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Android: When a spare WebContents is created from Custom Tabs, record
    creation, and whether it was used, killed or destroyed. Creation is recorded
    to get the &quot;abandoned&quot; case, that is when Chrome is killed before
    the renderer.
  </summary>
</histogram>

<histogram name="CustomTabs.SpareWebContents.TimeBeforeDeath" units="ms">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Android: When a spare WebContents is created from Custom Tabs, record how
    long is took before the render process was killed.
  </summary>
</histogram>

<histogram name="CustomTabs.SpeculationStatusOnStart"
    enum="CustomTabsSpeculationStatusOnStart">
  <owner>mattcary@chromium.org</owner>
  <summary>
    Recorded only for Android. How a speculation was started or why it was
    disallowed. This is recorded when a speculation of any kind is requested,
    with either a &quot;Speculation allowed&quot; value, or a reason why it was
    not allowed. If the speculation is allowed and is attempted to be started,
    the status on start will be counted in addition: one of
    &quot;Prefetch&quot;, &quot;Prerender&quot;, &quot;Background Tab&quot; or
    &quot;Prerender not started&quot;. The last case is when a prerender is
    abandoned during start.
  </summary>
</histogram>

<histogram name="CustomTabs.SpeculationStatusOnSwap"
    enum="CustomTabsSpeculationStatusOnSwap">
  <owner>mattcary@chromium.org</owner>
  <summary>
    Recorded only for Android. Recorded when a speculation is requesting to swap
    into a visible tab.
  </summary>
</histogram>

<histogram name="CustomTabs.Visible" enum="VisibleTab">
  <owner>yusufo@chromium.org</owner>
  <summary>
    Recorded only for Android. Records on every metrics upload whether the
    currently visible tab is a custom tab. The custom tab is launched by a
    client app with customized UI. Some metrics like page load time will behave
    differently for these tabs since it will be possible to warm up the browser
    process and prepare resources for specific urls ahead of time via a service
    connection. This histogram can be used to cluster these metric differently.
  </summary>
</histogram>

<histogram name="CustomTabs.WarmupStateOnLaunch" enum="WarmupStateOnLaunch">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Recorded only on Android. Reports whether warmup() has been called when a
    Custom Tabs Intent is received from an application, and if so, whether the
    call could be matched with a session.
  </summary>
</histogram>

<histogram name="CustomTabs.WebContentsStateOnLaunch" enum="WebContentsState">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Android: When a CustomTabActivity creates its Tab, whether we use a
    prerendered WebContents, a spare renderer or create a new WebContents.
  </summary>
</histogram>

<histogram name="DataReductionProxy.AutoLoFiAccuracy"
    enum="DataReductionProxyAutoLoFiAccuracy">
  <obsolete>
    Replaced by DataReductionProxy.LoFi.Accuracy.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Counts the accuracy of estimated network quality when using Lo-Fi. Counters
    are incremented when a main frame URL request is handled by Data Reduction
    Proxy and session was in Auto Lo-Fi enabled field trial.
  </summary>
</histogram>

<histogram name="DataReductionProxy.AutoLoFiRequestHeaderState"
    enum="DataReductionProxyAutoLoFiRequestHeaderState">
  <obsolete>
    Deprecated as of 8/2017, per server-directed preview decision.
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Counts the changes in the state of Lo-Fi request header (q=low) being added
    to the Chrome proxy request header. Counters are incremented when a main
    frame URL request is handled by Data Reduction Proxy and session was in Auto
    Lo-Fi enabled field trial.
  </summary>
</histogram>

<histogram name="DataReductionProxy.BlockTypeFallback"
    enum="DataReductionProxyBypassType">
  <owner>bengr@chromium.org</owner>
  <owner>marq@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Counts various events that trigger Chrome to block the fallback
    configuration of the data reduction proxy.
  </summary>
</histogram>

<histogram name="DataReductionProxy.BlockTypePrimary"
    enum="DataReductionProxyBypassType">
  <owner>bengr@chromium.org</owner>
  <owner>marq@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Counts various events that trigger Chrome to block the primary configuration
    of the data reduction proxy.
  </summary>
</histogram>

<histogram name="DataReductionProxy.BypassedBytes" units="bytes">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Counts the response bytes that did not go through the data reduction proxy
    as the result of a bypass event.
  </summary>
</histogram>

<histogram name="DataReductionProxy.BypassedBytes.NotBypassed" units="bytes">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Counts the response bytes that went through the data reduction proxy and
    were not bypassed.
  </summary>
</histogram>

<histogram name="DataReductionProxy.BypassInfoFallback"
    enum="DataReductionProxyBypassEventType_Deprecated">
  <obsolete>
    Deprecated as of 6/2014, replaced by DataReductionProxy.BypassTypeFallback.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>marq@chromium.org</owner>
  <summary>
    Counts various events that trigger Chrome to bypass the fallback
    configuration of the data reduction proxy.
  </summary>
</histogram>

<histogram name="DataReductionProxy.BypassInfoPrimary"
    enum="DataReductionProxyBypassEventType_Deprecated">
  <obsolete>
    Deprecated as of 6/2014, replaced by DataReductionProxy.BypassTypePrimary.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>marq@chromium.org</owner>
  <summary>
    Counts various events that trigger Chrome to bypass the primary
    configuration of the data reduction proxy.
  </summary>
</histogram>

<histogram name="DataReductionProxy.BypassOnNetworkErrorFallback"
    enum="NetErrorCodes">
  <owner>bengr@chromium.org</owner>
  <summary>
    Positive net error code that caused the fallback data reduction proxy to be
    bypassed and put on the proxy retry list. Called after a failure to connect
    or resolve a host name.
  </summary>
</histogram>

<histogram name="DataReductionProxy.BypassOnNetworkErrorPrimary"
    enum="NetErrorCodes">
  <owner>bengr@chromium.org</owner>
  <summary>
    Positive net error code that caused the primary data reduction proxy to be
    bypassed and put on the proxy retry list. Called after a failure to connect
    or resolve a host name.
  </summary>
</histogram>

<histogram name="DataReductionProxy.BypassTypeFallback"
    enum="DataReductionProxyBypassType">
  <owner>bengr@chromium.org</owner>
  <owner>marq@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Counts various events that trigger Chrome to bypass the fallback
    configuration of the data reduction proxy.
  </summary>
</histogram>

<histogram name="DataReductionProxy.BypassTypePrimary"
    enum="DataReductionProxyBypassType">
  <owner>bengr@chromium.org</owner>
  <owner>marq@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Counts various events that trigger Chrome to bypass the primary
    configuration of the data reduction proxy.
  </summary>
</histogram>

<histogram name="DataReductionProxy.CaptivePortalDetected.Platform"
    enum="BooleanPresent">
  <obsolete>
    Deprecated 2018/04.
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records if the platform detected that a captive portal is present on the
    current network. Recorded at the time of Chrome startup and on IP change
    event. Recorded only for users that have data saver enabled.
  </summary>
</histogram>

<histogram name="DataReductionProxy.ConfigFetchLostBytesCL">
  <obsolete>
    Removed in Feb. 2016
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <summary>
    Size of the response body. This is the actual number of bytes received,
    which usually agrees with but is not necessarily the same as the size
    specified by the Content-Length header. Only recorded if the request is sent
    while a simulated Data Reduction Proxy configuration fetch is taking place.
  </summary>
</histogram>

<histogram name="DataReductionProxy.ConfigFetchLostBytesDiff">
  <obsolete>
    Removed in Feb. 2016
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <summary>
    The difference between the size specified in the X-Original-Content-Length
    header and the size of the response body. Only recorded if the request is
    sent while a simulated Data Reduction Proxy configuration fetch is taking
    place. Only positive values are logged, so if X-Original-Content-Length is
    not specified or if it equals or exceeds the content length, it is not
    logged.
  </summary>
</histogram>

<histogram name="DataReductionProxy.ConfigFetchLostBytesOCL">
  <obsolete>
    Removed in Feb. 2016
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <summary>
    Size specified in the X-Original-Content-Length header. If this header is
    not present in the response, the size of the response body is used. Only
    recorded if the request is sent while a simulated Data Reduction Proxy
    configuration fetch is taking place.
  </summary>
</histogram>

<histogram name="DataReductionProxy.ConfigService.AuthExpired"
    enum="BooleanExpired">
  <owner>bengr@chromium.org</owner>
  <summary>
    Total number of authentication required responses received from the Data
    Reduction Proxy.

    An &quot;Unexpired&quot; value is recorded every time a new client config is
    fetched and parsed successfully. An &quot;Expired&quot; value is recorded
    every time Chrome receives an authentication failure from the data saver
    proxy.
  </summary>
</histogram>

<histogram name="DataReductionProxy.ConfigService.AuthExpiredSessionKey"
    enum="DataReductionProxyConfigServiceAuthExpiredSessionKey">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    On receiving an authentication failure from the data reduction proxy,
    records whether the session key used in the request matches the current
    session key.

    Recorded every time Chrome receives an authentication failure from the data
    saver proxy.
  </summary>
</histogram>

<histogram name="DataReductionProxy.ConfigService.AuthFailure.LatencyPenalty"
    units="ms">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Time from when the request starts to the time when the auth failure is
    received from the data saver proxy.

    Recorded every time an auth failure is received from the data saver proxy.
  </summary>
</histogram>

<histogram name="DataReductionProxy.ConfigService.ConnectionSetupTime"
    units="ms" expires_after="2019-12-31">
  <owner>robertogden@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The time delta between connectStart and connectEnd of the client config
    request. This is recorded only on successful requests when connectStart and
    connectEnd were non-null.
  </summary>
</histogram>

<histogram
    name="DataReductionProxy.ConfigService.FetchFailedAttemptsBeforeSuccess">
  <owner>bengr@chromium.org</owner>
  <summary>
    The number of failed attempts when retrieving the configuration from the
    Data Reduction Proxy API before a successful attempt took place.

    Recorded every time a new client config is fetched and parsed successfully.
    If the device has a valid connection type but no Internet connectivity, this
    count will keep increasing.
  </summary>
</histogram>

<histogram name="DataReductionProxy.ConfigService.FetchLatency" units="ms">
  <owner>bengr@chromium.org</owner>
  <summary>
    Time from when the Data Reduction Proxy configuration request starts until
    it completes.

    Recorded every time a new client config is fetched and parsed successfully.
  </summary>
</histogram>

<histogram name="DataReductionProxy.ConfigService.FetchResponseCode"
    enum="HttpResponseCode">
  <owner>bengr@chromium.org</owner>
  <summary>
    Count per HttpResponseCode when attempting to retrieve the Data Reduction
    Proxy configuration from the Data Reduction Proxy API.
  </summary>
</histogram>

<histogram name="DataReductionProxy.ConfigService.HttpRequestRTT" units="ms"
    expires_after="2019-12-31">
  <owner>robertogden@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The time delta between requestStart and requestEnd of the client config
    request. This is recorded only on successful requests.
  </summary>
</histogram>

<histogram name="DataReductionProxy.ConfigService.HTTPRequests"
    enum="DataReductionProxyConfigServiceHTTPRequests">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Upper bound on the count of HTTP requests that did or did not go through the
    data saver proxy.

    An HTTP request may not go through data saver proxy if the config was
    unavailable, due to local bypass rules, or due to server side bypasses. If
    data saver is turned on, this metric is recorded every time proxy is
    resolved for an HTTP request.
  </summary>
</histogram>

<histogram name="DataReductionProxy.ConfigService.MainFrames"
    enum="DataReductionProxyConfigServiceMainFrames">
  <owner>bengr@chromium.org</owner>
  <owner>robertogden@chromium.org</owner>
  <summary>
    Upper bound on the count of main frame requests that did or did not go
    through the data saver proxy.

    A main frame request may not go through data saver proxy if the config was
    unavailable, due to local bypass rules, or due to server side bypasses. If
    data saver is turned on, this metric is recorded every time proxy is
    resolved for an HTTP request.
  </summary>
</histogram>

<histogram name="DataReductionProxy.ConfigService.PersistedConfigIsExpired"
    enum="BooleanExpired">
  <obsolete>
    Deprecated 2018/04.
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records whether the persisted client config for data saver proxies read from
    the disk at the time of Chrome startup was expired or not. Recorded once at
    the time of Chrome startup.
  </summary>
</histogram>

<histogram name="DataReductionProxy.ConfigService.SentVariationHeaders"
    enum="BooleanSent">
  <obsolete>
    Removed in October 2018
  </obsolete>
  <owner>robertogden@chromium.org</owner>
  <summary>
    Records whether the client config client sent variation headers in the
    config request.
  </summary>
</histogram>

<histogram name="DataReductionProxy.DaysSinceEnabled" units="days">
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the number of days since data reduction proxy was last enabled by
    the user. Recorded only if the data reduction proxy was last enabled since
    this metric was added to Chromium (M-56). Recorded at Chrome startup if data
    reduction proxy is already enabled, and when the user enables the data
    reduction proxy.
  </summary>
</histogram>

<histogram
    name="DataReductionProxy.DaysSinceSavingsCleared.NegativeSystemClock"
    units="days">
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the number of days since the data reduction savings were cleared
    because the system clock moved back by more than 1 day. Recorded at Chrome
    startup if data reduction proxy is enabled, and if the data reduction proxy
    savings were cleared in some previous Chrome session.
  </summary>
</histogram>

<histogram name="DataReductionProxy.DeleteBrowsingHistory.NumBuckets">
  <owner>robertogden@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    When the data savings are cleared because the user deletes their browsing
    history, record how many buckets were deleted. See also
    DataReductionProxy.SavingsCleared.Reason/User action - cleared browsing
    history.
  </summary>
</histogram>

<histogram name="DataReductionProxy.EnabledState"
    enum="DataReductionProxyEnabledState">
  <owner>bengr@chromium.org</owner>
  <owner>rajendrant@chromium.org</owner>
  <summary>
    Samples of user interactions with the Data Saver settings menu across all
    platforms (android, IOS, desktop extension). Data is collected whenever user
    toggles the ON/OFF switch in the settings menu for reducing data usage.

    For desktop, Off-to-On/On-to-Off histogram count will increment when the
    data saver extension is installed/uninstalled respectively as well.
  </summary>
</histogram>

<histogram name="DataReductionProxy.HeaderTamperDetectionHTTP">
  <obsolete>
    Removed in June 2017
  </obsolete>
  <owner>xingx@chromium.org</owner>
  <owner>bolian@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    For each carrier, the total number of HTTP responses that have been checked
    for tampering. This assumes the data reduction proxy injected fingerprints
    have not been tampered with. Only the data reduction proxy responses with
    200 OK response code are checked.
  </summary>
</histogram>

<histogram name="DataReductionProxy.HeaderTamperDetectionHTTPS">
  <obsolete>
    Removed in June 2017
  </obsolete>
  <owner>xingx@chromium.org</owner>
  <owner>bolian@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    For each carrier, the total number of HTTPS responses that have been checked
    for tampering. This assumes the data reduction proxy injected fingerprints
    have not been tampered with. Only the data reduction proxy responses with
    200 OK response code are checked.
  </summary>
</histogram>

<histogram name="DataReductionProxy.HeaderTamperDetectionPassHTTP">
  <obsolete>
    Removed in June 2017
  </obsolete>
  <owner>xingx@chromium.org</owner>
  <owner>bolian@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    For each carrier, the total number of HTTP responses that passed the tamper
    detection. This assumes the data reduction proxy injected fingerprints have
    not been tampered with. Only the data reduction proxy responses with 200 OK
    response code are checked.
  </summary>
</histogram>

<histogram name="DataReductionProxy.HeaderTamperDetectionPassHTTPS">
  <obsolete>
    Removed in June 2017
  </obsolete>
  <owner>xingx@chromium.org</owner>
  <owner>bolian@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    For each carrier, the total number of HTTPs responses that passed the tamper
    detection. This assumes the data reduction proxy injected fingerprints have
    not been tampered with. Only the data reduction proxy responses with 200 OK
    response code are checked.
  </summary>
</histogram>

<histogram name="DataReductionProxy.HeaderTamperedHTTP">
  <obsolete>
    Removed in June 2017
  </obsolete>
  <owner>xingx@chromium.org</owner>
  <owner>bolian@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The total number of HTTP responses that some part (specified by suffix name)
    have been tampered with. This assumes the data reduction proxy injected
    fingerprints have not been tampered with. Only the data reduction proxy
    responses with 200 OK response code are checked.
  </summary>
</histogram>

<histogram name="DataReductionProxy.HeaderTamperedHTTPS">
  <obsolete>
    Removed in June 2017
  </obsolete>
  <owner>xingx@chromium.org</owner>
  <owner>bolian@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The total number of HTTPS responses that some part (specified by suffix
    name) have been tampered with. This assumes the data reduction proxy
    injected fingerprints have not been tampered with. Only the data reduction
    proxy responses with 200 OK response code are checked.
  </summary>
</histogram>

<histogram name="DataReductionProxy.HistoricalDataUsageLoadTime" units="ms">
  <owner>kundaji@chromium.org</owner>
  <summary>
    Time taken to load historical data usage from Level DB into memory. This UMA
    is reported each time the method to load historical data usage is called,
    which happens when user views data usage history.
  </summary>
</histogram>

<histogram name="DataReductionProxy.InvalidResponseHeadersReceived.NetError"
    enum="NetErrorCodes">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Net error codes observed when invalid response headers were received from
    data reduction proxy.
  </summary>
</histogram>

<histogram name="DataReductionProxy.LastWeekAggregateKB.Services"
    enum="DataUseServicesHash">
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the aggregate data use of services for the last week. Different
    conditions are added as suffixes to this histogram. Recorded when Chrome is
    started, so this does not include the current session. The aggregation
    happens when requests complete. The current week calculation is based on
    week starting from the Epoch day(Thursday, January 1, 1970), and every 7
    days is treated as a week.
  </summary>
</histogram>

<histogram
    name="DataReductionProxy.LastWeekAggregateKB.UserTraffic.Downstream.ContentType"
    enum="DataUseContentType">
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the aggregate data use for the last week. This is the downstream
    data use of all user-initiated traffic. Recorded when Chrome is started, so
    this does not include the current session. The aggregation happens when
    requests complete. The current week calculation is based on week starting
    from the Epoch day(Thursday, January 1, 1970), and every 7 days is treated
    as a week.
  </summary>
</histogram>

<histogram name="DataReductionProxy.LevelDBOpenStatus"
    enum="DataReductionProxyStoreStatus">
  <owner>kundaji@chromium.org</owner>
  <summary>Status of calling Open() on Data Reduction Proxy LevelDB.</summary>
</histogram>

<histogram name="DataReductionProxy.LevelDBSize" units="KB">
  <owner>kundaji@chromium.org</owner>
  <summary>Size of Data Reduction Proxy LevelDB measured at startup.</summary>
</histogram>

<histogram name="DataReductionProxy.LoFi.Accuracy"
    enum="DataReductionProxyAutoLoFiAccuracy">
  <obsolete>
    Deprecated as of 8/2017, per server-directed preview decision.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Records the accuracy of estimated network quality when using Lo-Fi. Network
    quality predicted at the time of navigation start is compared with the
    network quality observed during the specified time interval following the
    start of the navigation. This metric is recorded only when the session is in
    Lo-Fi enabled field trial.
  </summary>
</histogram>

<histogram name="DataReductionProxy.LoFi.ImplicitOptOutAction"
    enum="DataReductionProxyLoFiImplicitOptOutAction">
  <obsolete>
    Obsolete as of October 2017.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>megjablon@chromium.org</owner>
  <summary>
    Counts of Lo-Fi implicit opt out actions. If the user chooses to &quot;Load
    image&quot; for k pages in a session, LoFi is disabled for the remainder of
    that session. If Lo-Fi is disabled for j consecutive sessions, Lo-Fi is
    disabled for that user until the next implicit opt out epoch, which may be
    in a later session, or never. k and j default to 3 and are assigned via the
    DataReductionProxyLoFi field trial.
  </summary>
</histogram>

<histogram name="DataReductionProxy.LoFi.SessionState"
    enum="DataReductionProxyLoFiSessionState">
  <obsolete>
    Deprecated as of October 2017 per transition to blacklist.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>megjablon@chromium.org</owner>
  <summary>
    Tracks Lo-Fi usage at the granularity of browser sessions. Counts for each
    session if Lo-Fi was used or not. In the case where Lo-Fi was not used,
    records if it was because the network quality was always good or because the
    user had implicitly opted out. The session where a user permanently opts out
    is counted in the Lo-Fi used bucket.
  </summary>
</histogram>

<histogram name="DataReductionProxy.LoFi.TransformationType"
    enum="DataReductionProxyLoFiTransformationType">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Counts of pageloads that received or requested, but did not receive, various
    Lo-Fi lite page transformations. Recorded when a lite page is requested or
    received through Data compression proxy.
  </summary>
</histogram>

<histogram name="DataReductionProxy.LoFi.UIAction"
    enum="DataReductionProxyLoFiUIAction">
  <obsolete>
    Deprecated as of 9/2016, replaced by Previews.ContextMenuAction.LoFi.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>megjablon@chromium.org</owner>
  <summary>
    User interactions with the Lo-Fi snackbar and context menu option. These
    include:

    Displays and clicks on the &quot;Load images&quot; snackbar. Displays and
    clicks on the &quot;Load image&quot; and &quot;Load images&quot;context menu
    options. Count of pages where the user has clicked &quot;Load image&quot; at
    least once.
  </summary>
</histogram>

<histogram name="DataReductionProxy.MissingViaHeader.Bytes" units="bytes">
  <obsolete>
    Removed 2018/04.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>sclittle@chromium.org</owner>
  <summary>
    Counts the response bytes of responses that Chrome expected to come through
    a data reduction proxy and have the data reduction proxy via header, but
    where the data reduction proxy via header was missing. Note that this does
    not include responses that were bypassed.
  </summary>
</histogram>

<histogram name="DataReductionProxy.MissingViaHeader.ResponseCode">
  <owner>bengr@chromium.org</owner>
  <owner>sclittle@chromium.org</owner>
  <summary>
    Counts the different HTTP response codes of responses that Chrome expected
    to come through a data reduction proxy and have the data reduction proxy via
    header, but where the data reduction proxy via header was missing.
  </summary>
</histogram>

<histogram name="DataReductionProxy.NetworkChangeEvents"
    enum="DataReductionProxyNetworkChangeEvent">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Counts the number of times various events occur when the data reduction
    proxy is enabled and the IP address of the client changes.
  </summary>
</histogram>

<histogram name="DataReductionProxy.NetworkProperties.CacheHit"
    units="BooleanCacheHit">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Records if the network properties of a network were found in the cache or
    not. Recorded every time there is a change in the connection type.
  </summary>
</histogram>

<histogram name="DataReductionProxy.Pingback.Attempted" enum="BooleanAttempted">
  <owner>ryansturm@chromium.org</owner>
  <summary>
    Counts the number of times that pageload metrics were queued to be attempted
    or not queued based on the reporting fraction. Recorded once per pageload.
  </summary>
</histogram>

<histogram name="DataReductionProxy.Pingback.CrashAction"
    enum="DataReductionProxyPingbackCrashAction">
  <owner>ryansturm@chromium.org</owner>
  <summary>
    Counts various actions related to crash detection in the pingback client.
    This is recorded only when a renderer crash occurs on a Data Reduction Proxy
    page load.
  </summary>
</histogram>

<histogram name="DataReductionProxy.Pingback.Succeeded" enum="BooleanSuccess">
  <owner>ryansturm@chromium.org</owner>
  <summary>
    Counts the number of times that a batched pingback request succeeded or
    failed at being sent to the server. Recorded everytime a pingback request is
    attempted.
  </summary>
</histogram>

<histogram name="DataReductionProxy.ProbeURL"
    enum="DataReductionProxyProbeURLFetchResult">
  <owner>bengr@chromium.org</owner>
  <owner>marq@chromium.org</owner>
  <summary>
    Counts various outcomes of requesting the data reduction proxy's probe URL.
  </summary>
</histogram>

<histogram name="DataReductionProxy.ProbeURLNetError" enum="NetErrorCodes">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Reports the type of network error when the data reduction proxy probe fails
    due to a network error.
  </summary>
</histogram>

<histogram name="DataReductionProxy.PromoAction"
    enum="DataReductionProxyPromoAction">
  <obsolete>
    Deprecated as of 3/2015, replaced by DataReductionProxy.UIAction.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>marq@chromium.org</owner>
  <summary>
    Samples which method was used by the user to dismiss the proxy promo. This
    is sampled when the promo leaves view, with the sampled value depending on
    which of four possible controls the user used.
  </summary>
</histogram>

<histogram name="DataReductionProxy.Protocol.AcceptTransform"
    enum="DataReductionProxyProtocolAcceptTransformEvent">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Records the sending of accepted transform headers to the data reduction
    proxy and also receiving transforms and policies from the data reduction
    proxy. Recorded on a per page request basis and also on a per image resource
    request basis for empty-image transforms. Headers for both types of requests
    (pages and resources) are recorded here for convenience in viewing in a
    single histogram. In general, the separate groups of request/receive buckets
    for either page or resource types can be compared.
  </summary>
</histogram>

<histogram name="DataReductionProxy.Protocol.NotAcceptingTransform"
    enum="DataReductionProxyProtocolNotAcceptingTransformReason">
  <obsolete>
    Obsolete as of 10/2018.
  </obsolete>
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Records the reason that a page request is not accepting proxy server
    transforms. Recorded on a per page request basis.
  </summary>
</histogram>

<histogram name="DataReductionProxy.ProxyPrefMigrationResult"
    enum="DataReductionProxyProxyPrefMigrationResult">
  <owner>sclittle@chromium.org</owner>
  <summary>
    Records the result of migrating the Data Reduction Proxy away from being
    configured via a proxy preference, including cases when no migration action
    was taken.
  </summary>
</histogram>

<histogram name="DataReductionProxy.ProxySchemeUsed"
    enum="DataReductionProxyProxySchemeUsed">
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the scheme of the data reduction proxy server. Recorded for every
    request that is fetched successfully through a data reduction proxy server.
  </summary>
</histogram>

<histogram name="DataReductionProxy.Quic.DefaultAlternativeProxy"
    enum="DataReductionProxyQuicDefaultAlternativeProxy">
  <obsolete>
    Deprecated in 5/2017, since the experiment to use default QUIC alternative
    proxy was deprecated.
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Status of the availability of valid alternative data reduction proxy
    servers. This metric is recorded only when data reduction proxy delegate is
    queried for the value of the supported alternative proxy server.
  </summary>
</histogram>

<histogram name="DataReductionProxy.Quic.OnAlternativeProxyBroken"
    units="count">
  <obsolete>
    As of M66 this has been superceded by Net.AlternativeProxyFailed.
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Number of times an alternative QUIC proxy was marked as broken.
  </summary>
</histogram>

<histogram name="DataReductionProxy.Quic.ProxyStatus"
    enum="DataReductionProxyQuicProxyStatus">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Records the result of the attempt to use a data reduction proxy that
    supports QUIC. The metric is logged for every request for which the resolved
    proxy is a data reduction HTTPS proxy.
  </summary>
</histogram>

<histogram name="DataReductionProxy.RequestCompletionErrorCodes"
    enum="NetErrorCodes">
  <obsolete>
    Deprecated in 2/2016, since it didn't get recorded for many kinds of error
    codes when it should have been recorded, and
    Net.HttpRequestCompletionErrorCodes is a good enough replacement when
    filtering for clients with the Data Reduction Proxy enabled.
  </obsolete>
  <owner>sclittle@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Reports the different network errors that requests that try to use the data
    reduction proxy are completing with, including OK and ABORTED.
  </summary>
</histogram>

<histogram name="DataReductionProxy.RequestCompletionErrorCodes.MainFrame"
    enum="NetErrorCodes">
  <obsolete>
    Deprecated in 2/2016, since it didn't get recorded for many kinds of error
    codes when it should have been recorded, and
    Net.HttpRequestCompletionErrorCodes is a good enough replacement when
    filtering for clients with the Data Reduction Proxy enabled.
  </obsolete>
  <owner>sclittle@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Reports the different network errors that main frame resource requests that
    try to use the data reduction proxy are completing with, including OK and
    ABORTED.
  </summary>
</histogram>

<histogram name="DataReductionProxy.ResourceContentType"
    enum="DataReductionProxyResourceContentType">
  <obsolete>
    Deprecated 2018/04.
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Content type of the resource determined by data reduction proxy. Used for
    determining the data reduction proxy that should be used for fetching the
    resource. Logged once per resource for only the resources that are eligible
    for fetching by data reduction proxies.
  </summary>
</histogram>

<histogram name="DataReductionProxy.ResponseProxyServerStatus"
    enum="DataReductionProxyResponseProxyServerStatus">
  <owner>sclittle@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Reports the state of the proxy server field in the response seen by the Data
    Reduction Proxy bypass logic.
  </summary>
</histogram>

<histogram name="DataReductionProxy.SavingsCleared.NegativeSystemClock"
    enum="BooleanCleared">
  <obsolete>
    Replaced by DataReductionProxy.SavingsCleared.Reason in M68.
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records if the data reduction savings were cleared because the system clock
    moved back by more than 1 day. Recorded at Chrome startup if the data
    reduction proxy is enabled.
  </summary>
</histogram>

<histogram name="DataReductionProxy.SavingsCleared.Reason"
    enum="DataReductionProxySavingsClearedReason">
  <owner>robertogden@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records why the data reduction savings were cleared. See also
    DataReductionProxy.DeleteBrowsingHistory.NumBuckets.
  </summary>
</histogram>

<histogram name="DataReductionProxy.SecureProxyCheck.Latency" units="ms">
  <owner>bengr@chromium.org</owner>
  <summary>
    Time from when the Data Reduction Proxy secure proxy check starts until it
    completes.
  </summary>
</histogram>

<histogram name="DataReductionProxy.SettingsConversion"
    enum="DataReductionProxySettingsConversion">
  <obsolete>
    Deprecated as of 3/2015, replaced by DataReductionProxy.UIAction.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>marq@chromium.org</owner>
  <summary>
    Samples of user interactions with the ON/OFF switch in the settings menu for
    reducing data usage. Only the setting changes between entering the reducing
    data usage setting menu and leaving the menu will be sampled. So if a user
    enters the menu with OFF and leaves it with OFF, it is counted as one OFF to
    OFF conversion regardless of how many times they toggle the ON/OFF switch.
  </summary>
</histogram>

<histogram name="DataReductionProxy.SnackbarPromo.DataSavings" units="MB">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Logs the data savings in MB of the data reduction proxy snackbar promo that
    was shown. The snackbar promo shows the user the amount of data Chrome has
    saved them using Data Saver.
  </summary>
</histogram>

<histogram name="DataReductionProxy.StartupNegativeSavingsPercent" units="%">
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the negative data savings percentage at Chrome startup for data
    saver enabled users who have browsed a reasonable amount (at least 10MB
    since data saver was enabled).
  </summary>
</histogram>

<histogram name="DataReductionProxy.StartupSavingsPercent" units="%">
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the data savings percentage at Chrome startup for data saver enabled
    users who have browsed a reasonable amount (at least 10MB since data saver
    was enabled). Negative savings are not recorded.
  </summary>
</histogram>

<histogram name="DataReductionProxy.StartupState"
    enum="DataReductionProxyStartupState">
  <owner>bengr@chromium.org</owner>
  <owner>marq@chromium.org</owner>
  <summary>
    Samples of the state of the data reduction proxy on Chrome startup. The
    proxy will either be unavailable (the feature hasn't been rolled out to this
    user yet), not enabled (the feature is available but the user doesn't have
    it turned on), or enabled (the feature is enabled and turned on).
  </summary>
</histogram>

<histogram name="DataReductionProxy.SuccessfulRequestCompletionCounts"
    units="count">
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Count of the number of requests that were successfully fetched via data
    reduction proxy. The bucket represents the index of the data reduction proxy
    in the data reduction proxy list.
  </summary>
</histogram>

<histogram
    name="DataReductionProxy.SuccessfulRequestCompletionCounts.MainFrame"
    units="count">
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Count of the number of main frame requests that were successfully fetched
    via data reduction proxy. The bucket represents the index of the data
    reduction proxy in the data reduction proxy list.
  </summary>
</histogram>

<histogram name="DataReductionProxy.ThisWeekAggregateKB.Services"
    enum="DataUseServicesHash">
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the aggregate data use of services for the current week. Different
    conditions are added as suffixes to this histogram. Recorded when Chrome is
    started, so this does not include the current session. The aggregation
    happens when requests complete. The current week calculation is based on
    week starting from the Epoch day(Thursday, January 1, 1970), and every 7
    days is treated as a week.
  </summary>
</histogram>

<histogram
    name="DataReductionProxy.ThisWeekAggregateKB.UserTraffic.Downstream.ContentType"
    enum="DataUseContentType">
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the aggregate data use for the current week. This is the downstream
    data use of all user-initiated traffic. Recorded when Chrome is started, so
    this does not include the current session. The aggregation happens when
    requests complete. The current week calculation is based on week starting
    from the Epoch day(Thursday, January 1, 1970), and every 7 days is treated
    as a week.
  </summary>
</histogram>

<histogram name="DataReductionProxy.TimeToFirstDataSaverRequest" units="ms">
  <obsolete>
    Deprecated 2018/04.
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the time duration between the data saver initialization and the
    first HTTP request that is resolved through the data saver proxy. On IP
    address changes, time duration between the IP address change event and the
    next subsequent HTTP request that resolves through the data saver proxy is
    recorded.
  </summary>
</histogram>

<histogram name="DataReductionProxy.UIAction" enum="DataReductionProxyUIAction">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Samples of user interactions with the Data Reduction Proxy promos, First Run
    Experience, main menu footer, and settings menu. All samples are mutually
    exclusive. These samples include:

    The user interactions with the First Run Experience. On Android when the
    user sees the FRE card, the Data Reduction Proxy defaults to ON. The user
    can disable the proxy via a switch on the card. The state of the proxy is
    sampled when the First Run Experience is completed and only reported if the
    Data Reduction Proxy card was shown.

    The user interactions with the second run promo. On Android, there are two
    actions that dismiss this promo (enable or dismiss). This is sampled when
    the promo leaves view.

    The user interactions with the Infobar promo. On Android, there are two
    actions that dismiss the promo (enable, dismiss). This is sampled when the
    promo leaves view.

    The user interactions with the Snackbar promo. The user can either ignore
    the promo or click the action to the settings menu. From the settings menu,
    the user may enable or disable the proxy.

    The user interactions with the main menu footer. The user can click the
    footer to enter the settings menu. From the settings menu, the user may
    enable or disable the proxy.

    Any other user interaction with the ON/OFF switch in the settings menu for
    reducing data usage. Only the setting changes between entering the reducing
    data usage setting menu and leaving the menu will be sampled regardless of
    how many times they toggle the ON/OFF switch. Other samples that report
    ON/OFF settings menu changes are not also reported here.

    The views of and user interactions with the site breakdown in the settings
    menu. The site breakdown can be sorted by data saved descending or data used
    descending, and expanded to view more sites. The Data Reduction statistics
    can also be reset.
  </summary>
</histogram>

<histogram name="DataReductionProxy.UserViewedOriginalSize" units="KB">
  <owner>tbansal@chromium.org</owner>
  <summary>
    The total original content size displayed to the user. Computed over the
    last 30 days. Recorded when the user views the data savings in the UI.
  </summary>
</histogram>

<histogram name="DataReductionProxy.UserViewedSavingsDifferenceWithBreakdown"
    units="%">
  <owner>robertogden@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The difference between the total data savings as displayed to the user and
    the sum of the data savings for all hosts in the data use breakdown.
    Calculated as a percentage of `abs(summedSavingsTotal -
    displayedSavingsTotal) / (summedSavingsTotal + displayedSavingsTotal)`.
    Recorded when the user views the data savings in the UI.
  </summary>
</histogram>

<histogram name="DataReductionProxy.UserViewedSavingsPercent" units="%">
  <obsolete>
    Deprecated March 2018. Percent no longer displayed.
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The percentage of data savings displayed to users. Computed over the last 30
    days. Recorded when the user views the data savings in the UI.
  </summary>
</histogram>

<histogram name="DataReductionProxy.UserViewedSavingsSize" units="KB">
  <owner>tbansal@chromium.org</owner>
  <summary>
    The total data saved displayed to the user. Computed over the last 30 days.
    Recorded when the user views the data savings in the UI.
  </summary>
</histogram>

<histogram name="DataReductionProxy.UserViewedUsageDifferenceWithBreakdown"
    units="%">
  <owner>robertogden@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The difference between the total data usage as displayed to the user and the
    sum of the data usage for all hosts in the data use breakdown. Calculated as
    a percentage of `abs(summedUsageTotal - displayedUsageTotal) /
    (summedUsageTotal + displayedUsageTotal)`. Recorded when the user views the
    data savings in the UI.
  </summary>
</histogram>

<histogram name="DataReductionProxy.WarmupURL.FetchAttemptEvent"
    enum="DataReductionProxyWarmupURLFetchAttemptEvent">
  <owner>tbansal@chromium.org</owner>
  <summary>Records the result of an attempt to fetch the warmup URL.</summary>
</histogram>

<histogram name="DataReductionProxy.WarmupURL.FetchAttemptsBeforeSuccess"
    units="count">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Records the total number of warmup URL (i.e., the probe URL) fetch attempts
    that were made before the warmup URL was successfully fetched.
  </summary>
</histogram>

<histogram name="DataReductionProxy.WarmupURL.FetchInitiated" units="count">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Number of times the data reduction proxy warm up URL was fetched.
  </summary>
</histogram>

<histogram name="DataReductionProxy.WarmupURL.FetchSuccessful"
    enum="BooleanSuccess">
  <owner>tbansal@chromium.org</owner>
  <summary>Whether the warm up URL was fetched succesfully.</summary>
</histogram>

<histogram name="DataReductionProxy.WarmupURL.HasViaHeader" enum="Boolean">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Whether the response headers of the warm up URL had Chrome Proxy via header.
    Recorded only when non-null response headers were available when the fetch
    of warm up URL concludes.
  </summary>
</histogram>

<histogram name="DataReductionProxy.WarmupURL.HttpResponseCode"
    enum="HttpResponseCode">
  <owner>tbansal@chromium.org</owner>
  <summary>
    HTTP response code of the warm up URL. Set to 1 when HTTP response headers
    were unavailable.
  </summary>
</histogram>

<histogram name="DataReductionProxy.WarmupURL.NetError" enum="NetErrorCodes">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Net error codes observed when the fetch of the warm up URL concludes.
  </summary>
</histogram>

<histogram name="DataReductionProxy.WarmupURL.ProxySchemeUsed"
    enum="DataReductionProxyProxySchemeUsed">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Proxy scheme of the proxy server via which the warm up URL was fetched.
    Recorded only when non-null response headers were available when the fetch
    of warm up URL concludes.
  </summary>
</histogram>

<histogram name="DataReductionProxy.WarmupURLFetcherCallback.SuccessfulFetch"
    enum="BooleanSuccess">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Whether the warmup (or probe) URL was successfully fetched over a data saver
    proxy.
  </summary>
</histogram>

<histogram name="DataUsage.MatchingRulesCount.Invalid" units="count">
  <obsolete>
    Deprecated 2018/07.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>rajendrant@chromium.org</owner>
  <summary>
    The number of invalid matching rules fetched from the platform external data
    use observer. A sample is recorded everytime fetch done callback is called.
  </summary>
</histogram>

<histogram name="DataUsage.MatchingRulesCount.Valid" units="count">
  <obsolete>
    Deprecated 2018/07.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>rajendrant@chromium.org</owner>
  <summary>
    The number of valid matching rules fetched from the platform external data
    use observer. A sample is recorded everytime fetch done callback is called.
  </summary>
</histogram>

<histogram name="DataUsage.PageLoadSequence" units="Count">
  <obsolete>
    Deprecated 2018/07.
  </obsolete>
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the sequence number of the page load within a data usage tracking
    session. Logged for each navigation in the tracking session.
  </summary>
</histogram>

<histogram name="DataUsage.Perf.MatchingRuleFirstFetchDuration" units="ms">
  <obsolete>
    Deprecated 2018/07.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>rajendrant@chromium.org</owner>
  <summary>
    The time taken in milliseconds to fetch the matching rules for the first
    time from the platform external data use observer. This measures the
    duration from the start time of Chromium to the time the rules are returned
    asynchronously. A sample is recorded when the first fetch done callback is
    called.
  </summary>
</histogram>

<histogram name="DataUsage.Perf.ReportSubmissionDuration" units="ms">
  <obsolete>
    Deprecated 2018/07.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>rajendrant@chromium.org</owner>
  <summary>
    The time taken in milliseconds to submit the data use reports to the
    platform external data use observer. This measures the duration from the
    time of report submission to the time report submission done asynchronous
    callback is received. A sample is recorded everytime report submission done
    callback is received.
  </summary>
</histogram>

<histogram name="DataUsage.Perf.URLRegexMatchDuration" units="ms">
  <obsolete>
    Deprecated 2018/07.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>rajendrant@chromium.org</owner>
  <summary>
    The time taken in milliseconds for a regular expression to parse an URL. A
    sample is recorded evertime regular expression parsing is done for an URL.
  </summary>
</histogram>

<histogram name="DataUsage.ReportSubmission.Bytes" units="bytes">
  <obsolete>
    Deprecated 2018/07.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Count of bytes in the data use reports that were intended to be submitted to
    the platform external data use observer.
  </summary>
</histogram>

<histogram name="DataUsage.ReportSubmissionResult"
    enum="DataUsageReportSubmissionResult">
  <obsolete>
    Deprecated 2018/07.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>Result of data usage report submission.</summary>
</histogram>

<histogram name="DataUsage.TabModel.ExpiredActiveTabEntryRemovalDuration"
    units="ms">
  <obsolete>
    Deprecated 2018/07.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>rajendrant@chromium.org</owner>
  <summary>
    The duration from the start time of a tab entry's latest data usage tracking
    session, till when the entry is expired and removed from the tab model. This
    is for tab entries that are still actively tracking data usage for a
    Chromium tab.

    Tab model maintains the tab entries, each pertaining to tracking sessions of
    a single Chromium tab. These entries are considered expired after some
    duration and can be removed from the tab model after that. The sample is
    taken when an expired tab entry still tracking data usage is removed from
    the tab model.
  </summary>
</histogram>

<histogram name="DataUsage.TabModel.ExpiredInactiveTabEntryRemovalDuration"
    units="ms">
  <obsolete>
    Deprecated 2018/07.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>rajendrant@chromium.org</owner>
  <summary>
    The duration from the end time of a tab entry's latest data usage tracking
    session, till when the entry is expired and removed from the tab model. This
    is for tab entries that are not actively tracking data usage for a Chromium
    tab.

    Tab model maintains the tab entries, each pertaining to tracking sessions of
    a single Chromium tab. These entries are considered expired after some
    duration and can be removed from the tab model after that. The sample is
    taken when an expired inactive tab entry is removed from the tab model.
  </summary>
</histogram>

<histogram name="DataUsage.TabModel.OldInactiveSessionRemovalDuration"
    units="ms">
  <obsolete>
    Deprecated 2018/07.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>rajendrant@chromium.org</owner>
  <summary>
    The duration from the end time of a data usage tracking session, till when
    the tracking session is removed from the tab model. This is for old tracking
    sessions that are not actively tracking data usage.

    Tab model maintains a limited number of tracking sessions per Chromium tab.
    When this limit is reached oldest inactive tracking sessions are removed.
    The sample is taken when an old inactive tracking session of a tab is
    removed from the tab model.
  </summary>
</histogram>

<histogram name="DataUsage.TabModel.TrackingSessionLifetime" units="ms">
  <obsolete>
    Deprecated 2018/07.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>rajendrant@chromium.org</owner>
  <summary>
    The lifetime of a data usage tracking session of a Chromium tab, maintained
    by the tab model. This is the duration between the time tracking started due
    to an entry event and ended with an exit event. The sample is taken when the
    data usage tracking session ends.
  </summary>
</histogram>

<histogram name="DataUsage.TabModel.UnexpiredTabEntryRemovalDuration"
    units="ms">
  <obsolete>
    Deprecated 2018/07.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>rajendrant@chromium.org</owner>
  <summary>
    The duration from the end time (start time, if still active) of a tab
    entry's latest data usage tracking session, till when the entry is removed
    from the tab model. This is for tab entries that are not expired yet, and
    removed from the tab model.

    Tab model maintains a limited number of entries, each pertaining to tracking
    sessions of a single Chromium tab. When this limit is reached even after
    removing expired tab entries, then oldest unexpired tab entries are removed.
    The sample is taken when an unexpired tab entry is removed from the tab
    model.
  </summary>
</histogram>

<histogram name="DataUsage.TrackingSessionEndReason"
    enum="DataUsageTrackingSessionEndReason">
  <obsolete>
    Deprecated 2018/07.
  </obsolete>
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The reason for ending the data usage tracking session. Logged when the
    tracking session ends.
  </summary>
</histogram>

<histogram name="DataUsage.TrackingSessionStartReason"
    enum="DataUsageTrackingSessionStartReason">
  <obsolete>
    Deprecated 2018/07.
  </obsolete>
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The reason for starting the data usage tracking session. Logged when the
    tracking session was started.
  </summary>
</histogram>

<histogram name="DataUsage.UIAction" enum="DataUsageUIAction">
  <obsolete>
    Deprecated 2018/07.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>megjablon@chromium.org</owner>
  <summary>
    Samples of user interactions with the Data Use snackbar and dialog. These
    samples include:

    Displays of the snackbar that indicates the start of data use tracking and
    clicks on its &quot;More&quot; button. Displays of snackbar that indicates
    the end of data use tracking and clicks on its &quot;More&quot; button.
    Displays of the dialog that indicates the end of data use tracking and the
    user interactions with it, which include: clicking &quot;Continue&quot;,
    clicking &quot;Cancel&quot;, clicking &quot;Learn more&quot;, and opting out
    of seeing the dialog. If the user opts out of seeing the dialog, they will
    see the snackbar that indicates the end of data use tracking from then on.
  </summary>
</histogram>

<histogram name="DataUse.AllServices.Background" enum="DataUseServices">
  <obsolete>
    Replaced by KB version in October, 2017.
  </obsolete>
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The total background data use of Chrome's services broken down by service
    name. It is logged only in Android when the URLRequest of a service
    completes.
  </summary>
</histogram>

<histogram name="DataUse.AllServices.BackgroundKB" enum="DataUseServices">
  <obsolete>
    Replaced by DataUse.AllServicesKB.* version in June, 2018.
  </obsolete>
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The total background data use of Chrome's services broken down by service
    name. It is logged only in Android when the URLRequest of a service
    completes.
  </summary>
</histogram>

<histogram name="DataUse.AllServicesKB" enum="DataUseServicesHash">
  <owner>bengr@chromium.org</owner>
  <owner>rajendrant@chromium.org</owner>
  <summary>
    The request and response size of the messages exchanged by all the services.
    Whenever a URLRequest of a service is completed, the number of exchanged
    bytes is logged in this histogram. The buckets in this histogram are
    services recorded by the corresponding network traffic annotation tag
    hashes, so it makes it possible to compare the use of different services in
    different conditions. Different conditions are added as suffixes to this
    histogram. If the OS is not Android all the requests are considered
    foreground.
  </summary>
</histogram>

<histogram name="DataUse.AppTabState" units="bytes">
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the data use of Chrome user traffic by the foregound vs. background
    state of the app and tab.
  </summary>
</histogram>

<histogram name="DataUse.BackgroundToDataRecievedPerByte" units="ms">
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The time since Chrome is in background when background data use happens.
    Recorded for each byte of background data use. The source of traffic whether
    from user browsing or chrome services is added as suffix to this histogram.
  </summary>
</histogram>

<histogram name="DataUse.BackgroundToFirstDownstream" units="ms">
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The time since Chrome is in background when first background data use
    happens. Recorded when first background downstream data use after Chrome is
    in background. The source of traffic whether from user browsing or chrome
    services is added as suffix to this histogram.
  </summary>
</histogram>

<histogram name="DataUse.BytesReceived" units="bytes">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Count of total bytes received by the Chrome on the network. With network
    servicification this is recorded when requests complete.
  </summary>
</histogram>

<histogram name="DataUse.BytesSent" units="bytes">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Count of total bytes sent by the Chrome on the network. With network
    servicification this is recorded when requests complete.
  </summary>
</histogram>

<histogram name="DataUse.ContentType.Services" enum="DataUseContentType">
  <obsolete>
    Deprecated 2018/05. Bytes are logged to DataUse.ContentType.ServicesKB.
  </obsolete>
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Data use of Chrome services traffic by different content types. Recorded
    when network bytes are received by Chrome.
  </summary>
</histogram>

<histogram name="DataUse.ContentType.ServicesKB" enum="DataUseContentType">
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Data use of Chrome services traffic by different content types. Recorded in
    KB when network bytes are received by Chrome.
  </summary>
</histogram>

<histogram name="DataUse.ContentType.UserTraffic" enum="DataUseContentType">
  <obsolete>
    Deprecated 2017/04. Bytes are logged to DataUse.ContentType.UserTrafficKB.
  </obsolete>
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Data use of user traffic by different content types. Recorded when network
    bytes are received by Chrome.
  </summary>
</histogram>

<histogram name="DataUse.ContentType.UserTrafficKB" enum="DataUseContentType">
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Data use of user traffic by different content types. Recorded in KB when
    network bytes are received by Chrome.
  </summary>
</histogram>

<histogram name="DataUse.FavIcon.Downstream" units="bytes">
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the downstream network data use of favicon requests. Logged when the
    request is completed or redirected. Zero bytes are recorded when the request
    is served from cache.
  </summary>
</histogram>

<histogram name="DataUse.FavIcon.Downstream.Non200Response" units="bytes">
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the downstream network data use of favicon requests with non 200
    response code. Logged when the request is completed or redirected.
  </summary>
</histogram>

<histogram name="DataUse.MessageSize" units="bytes">
  <obsolete>
    Deprecated 10/2017.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <summary>
    The request and response size of the messages exchanged by a service. It is
    logged when the URLRequest of a service is completed. The service name is
    added as a suffix to this histogram name.
  </summary>
</histogram>

<histogram name="DataUse.MessageSize.AllServices" enum="DataUseServices">
  <obsolete>
    Replaced by DataUse.AllServicesKB.* version in June, 2018.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <summary>
    The request and response size of the messages exchanged by all the services.
    Whenever a URLRequest of a service is completed, the number of exchanged
    bytes is logged in this histogram. The buckets in this histogram are
    services, so it makes it possible to compare the use of different services
    in different conditions. Different conditions are added as suffixes to this
    histogram. If the OS is not Android all the requests are considered
    foreground.
  </summary>
</histogram>

<histogram name="DataUse.PageTransition.UserTraffic"
    enum="DataUsePageTransition">
  <obsolete>
    Deprecated 2018/05. Bytes are logged to
    DataUse.PageTransition.UserTrafficKB.
  </obsolete>
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Data use of user traffic by different core page transition types. Recorded
    when the URL request finishes.
  </summary>
</histogram>

<histogram name="DataUse.PageTransition.UserTrafficKB"
    enum="DataUsePageTransition">
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Data use of user traffic by different core page transition types. Recorded
    in KB when the URL request finishes.
  </summary>
</histogram>

<histogram name="DataUse.Sync.Download.Bytes" enum="SyncModelTypes">
  <obsolete>
    Deprecated 10/2017.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <summary>
    Number of downloaded bytes of different data types in Sync service for
    received updates. It is updated when an update message is received from sync
    server.
  </summary>
</histogram>

<histogram name="DataUse.Sync.Download.Count" enum="SyncModelTypes">
  <obsolete>
    Deprecated 10/2017.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <summary>
    Number of downloaded entities of different data types in Sync service for
    received updates. It is updated when an update message is received from sync
    server.
  </summary>
</histogram>

<histogram name="DataUse.Sync.ProgressMarker.Bytes" enum="SyncModelTypes">
  <obsolete>
    Deprecated 10/2017.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <summary>
    Number of downloaded bytes of ProgressMarker of different data types in Sync
    service for received updates. It is updated when an update message is
    received from sync server.
  </summary>
</histogram>

<histogram name="DataUse.Sync.Upload.Bytes" enum="SyncModelTypes">
  <obsolete>
    Deprecated 10/2017.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <summary>
    Number of uploaded bytes of different data types in Sync service for sent
    commits. Updated when a commit message is sent to sync server.
  </summary>
</histogram>

<histogram name="DataUse.Sync.Upload.Count" enum="SyncModelTypes">
  <obsolete>
    Deprecated 10/2017.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <summary>
    Number of uploaded entities of different data types in Sync service for sent
    commits. Updated when a commit message is sent to sync server.
  </summary>
</histogram>

<histogram name="DataUse.TrafficSize.System" units="bytes">
  <owner>bengr@chromium.org</owner>
  <summary>
    The total data use of Chrome's services. There is no ResourceRequestInfo
    attached to these requests. If the OS is not Android all the requests are
    considered foreground.
  </summary>
</histogram>

<histogram name="DataUse.TrafficSize.User" units="bytes">
  <owner>bengr@chromium.org</owner>
  <summary>
    The total amount of data use of Chrome for user traffic. This traffic has
    content::ResourceRequestInfo attached to its request. If the OS is not
    Android all the requests are considered foreground.
  </summary>
</histogram>

<histogram name="DBus.AsyncMethodCallSuccess" enum="BooleanSuccess">
  <owner>satorux@chromium.org</owner>
  <summary>Whether an asynchronous D-Bus method call is successful.</summary>
</histogram>

<histogram name="DBus.AsyncMethodCallTime" units="microseconds">
  <owner>satorux@chromium.org</owner>
  <summary>The time spent for an asynchronous D-Bus method call.</summary>
</histogram>

<histogram name="DBus.ExportedMethodHandleSuccess" enum="BooleanSuccess">
  <owner>satorux@chromium.org</owner>
  <summary>
    Whether a call to a D-Bus exported method is handled successfully.
  </summary>
</histogram>

<histogram name="DBus.ExportedMethodHandleTime" units="microseconds">
  <owner>satorux@chromium.org</owner>
  <summary>
    The time spent for handling a call to a D-Bus exported method.
  </summary>
</histogram>

<histogram name="DBus.SignalHandleTime" units="microseconds">
  <owner>satorux@chromium.org</owner>
  <summary>The time spent for handling a D-Bus signal.</summary>
</histogram>

<histogram name="DBus.SignalSendTime" units="microseconds">
  <owner>satorux@chromium.org</owner>
  <summary>The time spent for sending a D-Bus signal.</summary>
</histogram>

<histogram name="DBus.SyncMethodCallSuccess" enum="BooleanSuccess">
  <owner>satorux@chromium.org</owner>
  <summary>Whether a synchronous D-Bus method call is successful.</summary>
</histogram>

<histogram name="DBus.SyncMethodCallTime" units="microseconds">
  <owner>satorux@chromium.org</owner>
  <summary>The time spent for a synchronous D-Bus method call.</summary>
</histogram>

<histogram name="DefaultBrowser.ActivateSettings.ErrorHresult" enum="Hresult">
  <owner>pmonette@chromium.org</owner>
  <owner>grt@chromium.org</owner>
  <summary>
    The HRESULT from ActivateApplication when opening the Win10+ settings page
    fails.
  </summary>
</histogram>

<histogram name="DefaultBrowser.AsyncSetAsDefault.Duration" units="ms">
  <obsolete>
    Deprecated 2015/11. Renamed to DefaultBrowser.SetDefaultAsyncDuration.
  </obsolete>
  <owner>pmonette@chromium.org</owner>
  <summary>
    How long it took to set Chrome as the default browser asynchronously in
    Windows 10+. The duration is recorded only on Success, Failure, Abandoned
    and Retry result codes.
  </summary>
</histogram>

<histogram name="DefaultBrowser.AsyncSetAsDefault.Result"
    enum="DefaultBrowserAsyncAttemptResult">
  <obsolete>
    Deprecated 2015/11. Renamed to DefaultBrowser.SetDefaultResult.
  </obsolete>
  <owner>pmonette@chromium.org</owner>
  <summary>
    The count of how many times users were successfully able to set Chrome as
    the default browser asynchronously in Windows 10+.
  </summary>
</histogram>

<histogram name="DefaultBrowser.InfoBar.UserInteraction"
    enum="DefaultBrowserInfoBarUserInteraction">
  <owner>pmonette@chromium.org</owner>
  <summary>
    Possible user interactions with the default browser info bar.
  </summary>
</histogram>

<histogram name="DefaultBrowser.InteractionResult"
    enum="MakeChromeDefaultResult">
  <owner>gab@chromium.org</owner>
  <summary>
    Results of interaction with set-as-default dialog in Win8+ first run flow.
  </summary>
</histogram>

<histogram name="DefaultBrowser.SetDefaultAsyncDuration" units="ms">
  <obsolete>
    Deprecated 2016/03. The async set-as-default experiments are finished.
  </obsolete>
  <owner>pmonette@chromium.org</owner>
  <summary>
    How long it took to set Chrome as the default browser asynchronously in
    Windows 10+. The duration is recorded only on Success, Failure, Abandoned,
    Retry and NoErrorsNotDefault result codes.
  </summary>
</histogram>

<histogram name="DefaultBrowser.SetDefaultResult"
    enum="SetDefaultAttemptResult">
  <obsolete>
    Deprecated 2016/03.
  </obsolete>
  <owner>pmonette@chromium.org</owner>
  <summary>
    The outcome of an attempt to set Chrome as the user's default browser.
  </summary>
</histogram>

<histogram name="DefaultBrowser.SetDefaultResult2" enum="DefaultWebClientState">
  <owner>pmonette@chromium.org</owner>
  <summary>
    The outcome of an attempt to set Chrome as the user's default browser.
  </summary>
</histogram>

<histogram name="DefaultBrowser.SettingsInteraction.ConcludeReason"
    enum="SettingsInteractionConcludeReason">
  <owner>pmonette@chromium.org</owner>
  <summary>
    The reason why the default browser settings interaction concluded on Windows
    10.
  </summary>
</histogram>

<histogram name="DefaultBrowser.SettingsInteraction.RegistryWatcherDuration"
    units="ms">
  <owner>pmonette@chromium.org</owner>
  <summary>
    The registry keys for the default browser protocols (http/https) are
    monitored to know when the user finished interacting with the system
    settings. This is how long it took for the last registry watcher to get
    signaled.
  </summary>
</histogram>

<histogram name="DefaultBrowser.State" enum="DefaultBrowserState">
  <owner>gab@chromium.org</owner>
  <summary>Whether Chrome was the default browser when it started up.</summary>
</histogram>

<histogram name="DefaultBrowser.Win10ChooserInvoked" enum="BooleanSuccess">
  <owner>pmonette@chromium.org</owner>
  <summary>
    When changing the default browser on Windows 10, records whether the browser
    chooser is successfully invoked when opening the settings page. This
    histogram is only recorded when the Win10AcceleratedDefaultBrowserFlow
    experiment is enabled.
  </summary>
</histogram>

<histogram name="DefaultBrowserWarning.DontSetAsDefault" enum="BooleanHit">
  <obsolete>
    Deprecated 2015/11. The same information is available as the value Failure
    in DefaultBrowser.SetDefaultResult.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    In the make-default infobar, the user explicitly declined to set Chrome as
    default. Or, on OSes requiring the SetAsDefaultUI, the user explicitly chose
    another browser as default from the interactive UI. TODO(gab): Split the
    interactive signal into a separate histogram.
  </summary>
</histogram>

<histogram name="DefaultBrowserWarning.Ignored" enum="BooleanHit">
  <obsolete>
    Deprecated 2015/11. Renamed to DefaultBrowser.InfoBar.UserInteraction.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    The user ignored the make-default infobar (it was eventually dismissed along
    with its associated web content without the user interacting with it).
  </summary>
</histogram>

<histogram name="DefaultBrowserWarning.SetAsDefault" enum="BooleanHit">
  <obsolete>
    Deprecated 2015/11. Renamed to DefaultBrowser.Infobar.UserInteraction. There
    is no longer a distinction between interactive or not.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    In the make-default infobar, the user clicked a button making Chrome the
    default.
  </summary>
</histogram>

<histogram name="DefaultBrowserWarning.SetAsDefaultUI" enum="BooleanHit">
  <obsolete>
    Deprecated 2015/11. Renamed to DefaultBrowser.Infobar.UserInteraction. There
    is no longer a distinction between interactive or not.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Same as SetAsDefault, but in Win8+ (resulting in interactive UI instead of
    automatic takeover). Successes == these reports minus reports for
    DefaultBrowserWarning.SetAsDefaultUIFailed and some
    DefaultBrowserWarning.DontSetAsDefault. TODO(gab): Improve reporting here.
  </summary>
</histogram>

<histogram name="DefaultBrowserWarning.SetAsDefaultUIFailed" enum="BooleanHit">
  <obsolete>
    Deprecated 2015/11. The same information is available as the value Failure
    in DefaultBrowser.SetDefaultResult.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    The user dismissed the interactive SetAsDefaultUI without making an explicit
    choice (or the UI failed to come up for another reason).
  </summary>
</histogram>

<histogram name="DefaultProtocolClient.SetDefaultResult"
    enum="SetDefaultAttemptResult">
  <obsolete>
    Deprecated 2016/03.
  </obsolete>
  <owner>pmonette@chromium.org</owner>
  <summary>
    The outcome of an attempt to set Chrome as the user's default client for a
    protocol.
  </summary>
</histogram>

<histogram name="DefaultProtocolClient.SetDefaultResult2"
    enum="DefaultWebClientState">
  <owner>pmonette@chromium.org</owner>
  <summary>
    The outcome of an attempt to set Chrome as the user's default client for a
    protocol.
  </summary>
</histogram>

<histogram name="DelayNavigationThrottle.Delay.Actual" units="ms">
  <obsolete>
    Deprecated March 2018
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    The actual delay added to main frame navigations by DelayNavigationThrottle.
  </summary>
</histogram>

<histogram name="DelayNavigationThrottle.Delay.Delta" units="ms">
  <obsolete>
    Deprecated March 2018
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    The absolute delta between the specified and actual delays added to main
    frame navigations by DelayNavigationThrottle.
  </summary>
</histogram>

<histogram name="DelayNavigationThrottle.Delay.Specified" units="ms">
  <obsolete>
    Deprecated March 2018
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    The specified delay added to main frame navigations by
    DelayNavigationThrottle.
  </summary>
</histogram>

<histogram name="DemoMode.ActiveApp" enum="DemoModeApp" expires_after="M76">
  <owner>michaelpg@chromium.org</owner>
  <owner>ovanieva@chromium.org</owner>
  <owner>tbarzic@chromium.org</owner>
  <summary>
    The currently active app or window. Sampled during demo sessions and
    reported while the user remains active.
  </summary>
</histogram>

<histogram name="DemoMode.AppLaunched" enum="DemoModeApp" expires_after="M76">
  <owner>danan@chromium.org</owner>
  <owner>michaelpg@chromium.org</owner>
  <summary>
    Records apps that have been launched by a user using the device during Demo
    mode. The sample is recorded when each app is launched. For any given app
    id, the metric is recorded only once per Demo Session.
  </summary>
</histogram>

<histogram name="DemoMode.AppLaunchSource" enum="DemoModeAppLaunchSource"
    expires_after="M76">
  <owner>danan@chromium.org</owner>
  <owner>michaelpg@chromium.org</owner>
  <summary>
    The source of app launches in demo mode, either the shelf, the app list, or
    the highlights app.
  </summary>
</histogram>

<histogram name="DemoMode.IdleLogoutWarningEvent"
    enum="DemoModeIdleLogoutWarningEvent" expires_after="M76">
  <owner>michaelpg@chromium.org</owner>
  <owner>ovanieva@chromium.org</owner>
  <owner>wzang@chromium.org</owner>
  <summary>
    Tracks whether the idle logout warning was canceled or proceeded to logout.
    Note: the count of &quot;shown&quot; includes both cases, so the count of
    &quot;shown and proceeded&quot; is equal to &quot;shown&quot; minus
    &quot;canceled&quot;.
  </summary>
</histogram>

<histogram name="DemoMode.ResourcesRemoval.Reason"
    enum="DemoModeResourcesRemovalReason" expires_after="M76">
  <owner>michaelpg@chromium.org</owner>
  <owner>ovanieva@chromium.org</owner>
  <owner>tbarzic@chromium.org</owner>
  <summary>
    Tracks the reason for removal of pre-install demo resources. To support
    offline demo mode, factory Chrome OS devices will have a set of offline
    enabled demo mode apps pre-installed. These resources are removed once they
    are not needed anymore.
  </summary>
</histogram>

<histogram name="DemoMode.ResourcesRemoval.Result"
    enum="DemoModeResourcesRemovalResult" expires_after="M76">
  <owner>michaelpg@chromium.org</owner>
  <owner>ovanieva@chromium.org</owner>
  <owner>tbarzic@chromium.org</owner>
  <summary>
    Tracks the result of requests to remove pre-installed demo resources. To
    support offline demo mode, factory Chrome OS devices will have a set of
    offline enabled demo mode apps pre-installed. These resources are removed
    once they are not needed anymore. This will record only requests that
    attempted deleting pre-installed resources from disk. Requests that fail
    early will be ignored. For example, a request will fail early if the device
    is in demo mode, or the resources have already been removed.
  </summary>
</histogram>

<histogram name="DemoMode.SessionLength" units="minutes" expires_after="M76">
  <owner>michaelpg@chromium.org</owner>
  <owner>ovanieva@chromium.org</owner>
  <owner>tbarzic@chromium.org</owner>
  <summary>
    A demo session starts when a user signs in using the policy-configured
    public account. It stops when the user signs out, either manually or after
    an idle timeout. Session length is the duration between the start and stop
    events. It is recorded during signing out and reported on the next chrome
    run. This metric tracks the recorded session length rounded down to the
    nearest minute and is capped at 2 hours.
  </summary>
</histogram>

<histogram name="DemoMode.UniqueAppsLaunched" expires_after="2019-11-13">
  <owner>danan@chromium.org</owner>
  <owner>michaelpg@chromium.org</owner>
  <summary>
    Records how many unique apps have been launched by a user using the device
    during Demo mode. The sample is recorded when the DemoMode session closes.
  </summary>
</histogram>

<histogram name="DeprecatedInvalidatorRegistrar.CrashStatus"
    enum="HandlerOwnerType" expires_after="M75">
  <owner>melandory@chromium.org</owner>
  <summary>
    DeprecatedInvlalidatorRegistrar is crashing on the browser shut down. The
    reason for the crash is that not all invalidation handlers de-registister
    themselves. Histogram records the type of the handler which hasn't
    unregistered itself. Analyzing the histogram will allow us to understand,
    which handlers are causing the crash.
  </summary>
</histogram>

<histogram name="DesktopIOSPromotion.DismissalReason"
    enum="DesktopIOSPromotionDismissalReason">
  <obsolete>
    Deprecated 11/2018 in issue 894963.
  </obsolete>
  <owner>mrefaat@chromium.org</owner>
  <summary>
    The dimissal reason of the desktop to iOS promotion entry point.
    DismissalReason will be prefixed by the entry point promotion name that the
    user interacted with.
  </summary>
</histogram>

<histogram name="DesktopIOSPromotion.ImpressionFromEntryPoint"
    enum="DesktopIOSPromotionEntryPoint">
  <obsolete>
    Deprecated 11/2018 in issue 894963.
  </obsolete>
  <owner>mrefaat@chromium.org</owner>
  <summary>
    The type of the desktop to iOS promotion that was shown to the user. This
    will be logged every time the user sees the desktop to iOS promotion.
  </summary>
</histogram>

<histogram name="DesktopIOSPromotion.IOSSigninReason"
    enum="DesktopIOSPromotionEntryPoint">
  <obsolete>
    Deprecated 11/2018 in issue 894963.
  </obsolete>
  <owner>mrefaat@chromium.org</owner>
  <summary>
    [IOS] For users who sign-in on Chrome for iOS, log the type of the desktop
    iOS promotions that was shown to the user. Only recorded if the user has
    seen at least one desktop iOS promotion in the last 7 days and is signing
    into chrome on iOS. The last promotion entry point that sent an SMS (if any)
    is logged as DesktopIOSPromotion.SMSSent.IOSSigninReason; all other
    promotions that the user has seen are logged as
    DesktopIOSPromotion.NoSMS.IOSSigninReason.
  </summary>
</histogram>

<histogram name="DesktopIOSPromotion.OAuthTokenCompletion"
    enum="BooleanSuccess">
  <obsolete>
    Deprecated 11/2018 in issue 894963.
  </obsolete>
  <owner>justincohen@chromium.org</owner>
  <summary>
    Whether getting the OAuth token was successful for a desktop to iOS
    promotion query.
  </summary>
</histogram>

<histogram name="DesktopIOSPromotion.OAuthTokenResponseCode"
    enum="CombinedHttpResponseAndNetErrorCode">
  <obsolete>
    Deprecated 11/2018 in issue 894963.
  </obsolete>
  <owner>justincohen@chromium.org</owner>
  <summary>
    HTTP Response code returned by the server when trying to fetch the OAuth
    token for a desktop ios promotion query.
  </summary>
</histogram>

<histogram name="DesktopIOSPromotion.QueryPhoneNumberSucceeded"
    enum="BooleanSuccess">
  <obsolete>
    Deprecated 11/2018 in issue 894963.
  </obsolete>
  <owner>mrefaat@chromium.org</owner>
  <summary>
    Whether the SMS service api called from the desktop to iOS promotion
    returned a phone number or failed. This phone number is presented to the
    user so they know that Chrome will send the SMS to this number.
  </summary>
</histogram>

<histogram name="DesktopIOSPromotion.SendSMSSucceeded" enum="BooleanSuccess">
  <obsolete>
    Deprecated 11/2018 in issue 894963.
  </obsolete>
  <owner>mrefaat@chromium.org</owner>
  <summary>
    Whether the SMS service api initiated SMS sending successfully from the
    desktop to iOS promotion.
  </summary>
</histogram>

<histogram name="DesktopIOSPromotion.SMSToSigninTime" units="hours">
  <obsolete>
    Deprecated 11/2018 in issue 894963.
  </obsolete>
  <owner>mrefaat@chromium.org</owner>
  <summary>
    [IOS] The difference between the client time of triggering the SMS action on
    a specific entry point promotion on desktop and client time of signing in
    Chrome iOS app. This will only be logged if at least one promotion was shown
    to the user on the last 7 days and if at least one SMS was sent. If multiple
    SMSs were sent (at any time), it uses the time from the most recently sent
    one. If the is negative due to bad clock on one of the clients it will be
    logged as 0. SMSToSigninTime will be prefixed by the entry point promotion
    name that was responsible for the SMS sending.
  </summary>
</histogram>

<histogram base="true" name="DesktopIOSPromotion.VariationSigninReason">
  <obsolete>
    Deprecated 11/2018 in issue 894963.
  </obsolete>
  <owner>mrefaat@chromium.org</owner>
  <summary>
    [IOS] For users who sign-in on Chrome for iOS, log which variation of the
    desktop iOS promotions was shown to the user. The variation number is a
    unique identifier that is set for each group on the DesktopIOSPromotion
    study, and will be only recorded if the user has seen at least one desktop
    iOS promotion in the last 7 days and is signing into Chrome on iOS. The last
    variation that sent an SMS (if any) is logged as
    DesktopIOSPromotion.SMSSent.VariationSigninReason. If no SMS was sent, then
    the last variation the user has seen is logged as
    DesktopIOSPromotion.NoSMS.VariationSigninReason.
  </summary>
</histogram>

<histogram name="DevTools.ActionTaken" enum="DevToolsAction">
  <owner>alph@chromium.org</owner>
  <owner>pfeldman@chromium.org</owner>
  <summary>Specified DevTools action has been taken.</summary>
</histogram>

<histogram name="DevTools.InspectElement" units="ms">
  <owner>alph@chromium.org</owner>
  <owner>pfeldman@chromium.org</owner>
  <summary>
    Time to load Developer Tools when user clicks Inspect Element in the context
    menu.
  </summary>
</histogram>

<histogram name="DevTools.PanelShown" enum="DevToolsPanel">
  <owner>alph@chromium.org</owner>
  <owner>pfeldman@chromium.org</owner>
  <summary>Specified DevTools panel was shown.</summary>
</histogram>

<histogram name="DevTools.SettingChanged" enum="DevToolsSetting">
  <owner>alph@chromium.org</owner>
  <owner>pfeldman@chromium.org</owner>
  <summary>Specified DevTools setting was changed.</summary>
</histogram>

<histogram name="Diagnostics.Recovery.ConflictingDlls" enum="DiagnosticsResult">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    TBD - Not run automatically yet, so this is just a placeholder for future
    metrics collection. Any samples collected here represent users running
    diagnostics manually.
  </summary>
</histogram>

<histogram name="Diagnostics.Recovery.DiskSpace" enum="DiagnosticsResult"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of the DiskSpace recovery step that runs
    on recovery startups. The recovery step attempts to guarantee the DiskSpace
    test, which checks that the disk space in the volume where the user data
    directory normally lives is not dangerously low, would pass on the next
    startup.
  </summary>
</histogram>

<histogram name="Diagnostics.Recovery.InstallType" enum="DiagnosticsResult"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    TBD - Not run automatically yet, so this is just a placeholder for future
    metrics collection. Any samples collected here represent users running
    diagnostics manually.
  </summary>
</histogram>

<histogram name="Diagnostics.Recovery.JSONBookmarks" enum="DiagnosticsResult"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of the JSONBookmarks recovery step that
    runs on recovery startups. The recovery step attempts to guarantee the
    JSONBookmarks test, which makes sure that the JSON-encoded Bookmarks file is
    properly formed, would pass on the next startup.
  </summary>
</histogram>

<histogram name="Diagnostics.Recovery.JSONLocalState" enum="DiagnosticsResult"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of the JSONLocalState recovery step that
    runs on recovery startups. The recovery step attempts to guarantee the
    JSONLocalState test, which makes sure that the JSON-encoded Local State file
    is properly formed, would pass on the next startup.
  </summary>
</histogram>

<histogram name="Diagnostics.Recovery.JSONPreferences" enum="DiagnosticsResult"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of the JSONPreferences recovery step
    that runs on recovery startups. The recovery step attempts to guarantee the
    JSONPreferences test, which makes sure that the JSON-encoded Preferences
    file is properly formed, would pass on the next startup.
  </summary>
</histogram>

<histogram name="Diagnostics.Recovery.OperatingSystem" enum="DiagnosticsResult">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    TBD - Not run automatically yet, so this is just a placeholder for future
    metrics collection. Any samples collected here represent users running
    diagnostics manually.
  </summary>
</histogram>

<histogram name="Diagnostics.Recovery.PathDictionaries"
    enum="DiagnosticsResult" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of the PathDictionaries recovery step
    that runs on recovery startups. The recovery step attempts to guarantee the
    PathDictionaries test, which makes sure that the path to the Dictionaries
    directory exists and has the right permissions, would pass on the next
    startup.
  </summary>
</histogram>

<histogram name="Diagnostics.Recovery.PathLocalState" enum="DiagnosticsResult"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of the PathLocalState recovery step that
    runs on recovery startups. The recovery step attempts to guarantee the
    PathLocalState test, which makes sure that the path to the Local State file
    exists and has the right permissions, would pass on the next startup.
  </summary>
</histogram>

<histogram name="Diagnostics.Recovery.PathResources" enum="DiagnosticsResult"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of the PathResources recovery step that
    runs on recovery startups. The recovery step attempts to guarantee the
    PathResources test, which makes sure that the path to the Resources
    directory exists and has the right permissions, would pass on the next
    startup.
  </summary>
</histogram>

<histogram name="Diagnostics.Recovery.PathUserData" enum="DiagnosticsResult"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of the PathUserData recovery step that
    runs on recovery startups. The recovery step attempts to guarantee the
    PathUserData test, which makes sure that the path to the User Data directory
    exists and has the right permissions, would pass on the next startup.
  </summary>
</histogram>

<histogram name="Diagnostics.Recovery.SQLiteIntegrityAppCache"
    enum="DiagnosticsResult">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of the SQLiteIntegrityAppCache recovery
    step that runs on recovery startups. The recovery step attempts to guarantee
    the SQLiteIntegrityAppCache test, which checks the integrity of the App
    Cache database, would pass on the next startup.
  </summary>
</histogram>

<histogram name="Diagnostics.Recovery.SQLiteIntegrityArchivedHistory"
    enum="DiagnosticsResult">
  <obsolete>
    Removed as of Jun 2014: we no longer have an archived database.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of the SQLiteIntegrityArchivedHistory
    recovery step that runs on recovery startups. The recovery step attempts to
    guarantee the SQLiteIntegrityArchivedHistory test, which checks the
    integrity of the Archived History database, would pass on the next startup.
  </summary>
</histogram>

<histogram name="Diagnostics.Recovery.SQLiteIntegrityCookie"
    enum="DiagnosticsResult">
  <owner>shess@chromium.org</owner>
  <summary>
    Shows the success and failure rates of the SQLiteIntegrityCookie recovery
    step that runs on recovery startups. The recovery step attempts to guarantee
    the SQLiteIntegrityCookie test, which checks the integrity of the Cookie
    database, would pass on the next startup.
  </summary>
</histogram>

<histogram name="Diagnostics.Recovery.SQLiteIntegrityDatabaseTracker"
    enum="DiagnosticsResult">
  <owner>shess@chromium.org</owner>
  <summary>
    Shows the success and failure rates of the SQLiteIntegrityDatabaseTracker
    recovery step that runs on recovery startups. The recovery step attempts to
    guarantee the SQLiteIntegrityDatabaseTracker test, which checks the
    integrity of the Database Tracker database, would pass on the next startup.
  </summary>
</histogram>

<histogram name="Diagnostics.Recovery.SQLiteIntegrityFavicons"
    enum="DiagnosticsResult">
  <owner>shess@chromium.org</owner>
  <summary>
    Shows the success and failure rates of the SQLiteIntegrityFavicons recovery
    step that runs on recovery startups. The recovery step attempts to guarantee
    the SQLiteIntegrityFavicons test, which checks the integrity of the Favicons
    database, would pass on the next startup.
  </summary>
</histogram>

<histogram name="Diagnostics.Recovery.SQLiteIntegrityHistory"
    enum="DiagnosticsResult">
  <owner>shess@chromium.org</owner>
  <summary>
    Shows the success and failure rates of the SQLiteIntegrityHistory recovery
    step that runs on recovery startups. The recovery step attempts to guarantee
    the SQLiteIntegrityHistory test, which checks the integrity of the History
    database, would pass on the next startup.
  </summary>
</histogram>

<histogram name="Diagnostics.Recovery.SQLiteIntegrityNSSCert"
    enum="DiagnosticsResult" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of the SQLiteIntegrityNSSCert recovery
    step that runs on recovery startups. The recovery step attempts to guarantee
    the SQLiteIntegrityNSSCert test, which checks the integrity of the NSS
    Certificate database, would pass on the next startup.
  </summary>
</histogram>

<histogram name="Diagnostics.Recovery.SQLiteIntegrityNSSKey"
    enum="DiagnosticsResult" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of the SQLiteIntegrityNSSKey recovery
    step that runs on recovery startups. The recovery step attempts to guarantee
    the SQLiteIntegrityNSSKey test, which checks the integrity of the NSS Key
    database, would pass on the next startup.
  </summary>
</histogram>

<histogram name="Diagnostics.Recovery.SQLiteIntegrityThumbnails"
    enum="DiagnosticsResult">
  <obsolete>
    Deprecated 05/2016 in Issue 617226; has not been valid for many years.
  </obsolete>
  <owner>shess@chromium.org</owner>
  <summary>
    Shows the success and failure rates of the SQLiteIntegrityThumbnails
    recovery step that runs on recovery startups. The recovery step attempts to
    guarantee the SQLiteIntegrityThumbnails test, which checks the integrity of
    the Thumbnails database, would pass on the next startup.
  </summary>
</histogram>

<histogram name="Diagnostics.Recovery.SQLiteIntegrityTopSites"
    enum="DiagnosticsResult">
  <owner>shess@chromium.org</owner>
  <summary>
    Shows the success and failure rates of the SQLiteIntegrityTopSites recovery
    step that runs on recovery startups. The recovery step attempts to guarantee
    the SQLiteIntegrityTopSites test, which checks the integrity of the TopSites
    database, would pass on the next startup.
  </summary>
</histogram>

<histogram name="Diagnostics.Recovery.SQLiteIntegrityWebData"
    enum="DiagnosticsResult">
  <owner>shess@chromium.org</owner>
  <summary>
    Shows the success and failure rates of the SQLiteIntegrityWebData recovery
    step that runs on recovery startups. The recovery step attempts to guarantee
    the SQLiteIntegrityWebData test, which checks the integrity of the Web Data
    database, would pass on the next startup.
  </summary>
</histogram>

<histogram name="Diagnostics.Recovery.Version" enum="DiagnosticsResult"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    TBD - Not run automatically yet, so this is just a placeholder for future
    metrics collection. Any samples collected here represent users running
    diagnostics manually.
  </summary>
</histogram>

<histogram name="Diagnostics.RecoveryRun" enum="DiagnosticsRecoveryRun">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Count of the number of times diagnostics recovery is invoked or not, and how
    it was invoked. A sample is added to this histogram once for each startup of
    Chrome.
  </summary>
</histogram>

<histogram name="Diagnostics.Test.ConflictingDlls" enum="DiagnosticsResult">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    TBD - Not run automatically yet, so this is just a placeholder for future
    metrics collection. Any samples collected here represent users running
    diagnostics manually.
  </summary>
</histogram>

<histogram name="Diagnostics.Test.DiskSpace" enum="DiagnosticsResult"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of diagnostics for the DiskSpace test
    that runs on recovery startups. The DiskSpace test checks that the disk
    space in the volume where the user data directory normally lives is not
    dangerously low.
  </summary>
</histogram>

<histogram name="Diagnostics.Test.InstallType" enum="DiagnosticsResult"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    TBD - Not run automatically yet, so this is just a placeholder for future
    metrics collection. Any samples collected here represent users running
    diagnostics manually.
  </summary>
</histogram>

<histogram name="Diagnostics.Test.JSONBookmarks" enum="DiagnosticsResult"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of diagnostics for the JSONBookmarks
    test that runs on recovery startups. The JSONBookmarks test checks to make
    sure that the JSON encoded bookmarks file is properly formed.
  </summary>
</histogram>

<histogram name="Diagnostics.Test.JSONLocalState" enum="DiagnosticsResult"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of diagnostics for the JSONLocalState
    test that runs on recovery startups. The JSONLocalState test checks to make
    sure that the JSON encoded Local State file is properly formed.
  </summary>
</histogram>

<histogram name="Diagnostics.Test.JSONPreferences" enum="DiagnosticsResult"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of diagnostics for the JSONPreferences
    test that runs on recovery startups. The JSONPreferences test checks to make
    sure that the Preferences file is properly formed.
  </summary>
</histogram>

<histogram name="Diagnostics.Test.OperatingSystem" enum="DiagnosticsResult">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    TBD - Not run automatically yet, so this is just a placeholder for future
    metrics collection. Any samples collected here represent users running
    diagnostics manually.
  </summary>
</histogram>

<histogram name="Diagnostics.Test.PathDictionaries" enum="DiagnosticsResult"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of diagnostics for the PathDictionaries
    test that runs on recovery startups. The PathDictionaries test checks makes
    sure that the path to the Dictionaries folder exists and has the right
    permissions.
  </summary>
</histogram>

<histogram name="Diagnostics.Test.PathLocalState" enum="DiagnosticsResult"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of diagnostics for the PathLocalState
    test that runs on recovery startups. The PathLocalState test checks makes
    sure that the path to the Local State folder exists and has the right
    permissions.
  </summary>
</histogram>

<histogram name="Diagnostics.Test.PathResources" enum="DiagnosticsResult"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of diagnostics for the PathResources
    test that runs on recovery startups. The PathResources test checks makes
    sure that the path to the Resources folder exists and has the right
    permissions.
  </summary>
</histogram>

<histogram name="Diagnostics.Test.PathUserData" enum="DiagnosticsResult"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of diagnostics for the PathUserData test
    that runs on recovery startups. The PathUserData test checks makes sure that
    the path to the User Data folder exists and has the right permissions.
  </summary>
</histogram>

<histogram name="Diagnostics.Test.SQLiteIntegrityAppCache"
    enum="DiagnosticsResult">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of the SQLiteIntegrityAppCache test that
    runs on recovery startups. The test checks the integrity of the App Cache
    database.
  </summary>
</histogram>

<histogram name="Diagnostics.Test.SQLiteIntegrityArchivedHistory"
    enum="DiagnosticsResult">
  <obsolete>
    Removed as of Jun 2014: we no longer have an archived database.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of the SQLiteIntegrityArchivedHistory
    test that runs on recovery startups. The test checks the integrity of the
    Archived History database.
  </summary>
</histogram>

<histogram name="Diagnostics.Test.SQLiteIntegrityCookie"
    enum="DiagnosticsResult">
  <owner>shess@chromium.org</owner>
  <summary>
    Shows the success and failure rates of the SQLiteIntegrityCookie test that
    runs on recovery startups. The test checks the integrity of the Cookie
    database.
  </summary>
</histogram>

<histogram name="Diagnostics.Test.SQLiteIntegrityDatabaseTracker"
    enum="DiagnosticsResult">
  <owner>shess@chromium.org</owner>
  <summary>
    Shows the success and failure rates of the SQLiteIntegrityDatabaseTracker
    test that runs on recovery startups. The test checks the integrity of the
    Database Tracker database.
  </summary>
</histogram>

<histogram name="Diagnostics.Test.SQLiteIntegrityFavicons"
    enum="DiagnosticsResult">
  <owner>shess@chromium.org</owner>
  <summary>
    Shows the success and failure rates of the SQLiteIntegrityFavicons test that
    runs on recovery startups. The test checks the integrity of the Favicons
    database.
  </summary>
</histogram>

<histogram name="Diagnostics.Test.SQLiteIntegrityHistory"
    enum="DiagnosticsResult">
  <owner>shess@chromium.org</owner>
  <summary>
    Shows the success and failure rates of the SQLiteIntegrityHistory test that
    runs on recovery startups. The test checks the integrity of the History
    database.
  </summary>
</histogram>

<histogram name="Diagnostics.Test.SQLiteIntegrityNSSCert"
    enum="DiagnosticsResult" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of the SQLiteIntegrityNSSCert test that
    runs on recovery startups. The test checks the integrity of the NSS
    Certificate database.
  </summary>
</histogram>

<histogram name="Diagnostics.Test.SQLiteIntegrityNSSKey"
    enum="DiagnosticsResult" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Shows the success and failure rates of the SQLiteIntegrityNSSKey test that
    runs on recovery startups. The test checks the integrity of the NSS Key
    database.
  </summary>
</histogram>

<histogram name="Diagnostics.Test.SQLiteIntegrityThumbnails"
    enum="DiagnosticsResult">
  <obsolete>
    Deprecated 05/2016 in Issue 617226; has not been valid for many years.
  </obsolete>
  <owner>shess@chromium.org</owner>
  <summary>
    Shows the success and failure rates of the SQLiteIntegrityThumbnails test
    that runs on recovery startups. The test checks the integrity of the
    Thumbnails database.
  </summary>
</histogram>

<histogram name="Diagnostics.Test.SQLiteIntegrityTopSites"
    enum="DiagnosticsResult">
  <owner>shess@chromium.org</owner>
  <summary>
    Shows the success and failure rates of the SQLiteIntegrityTopSites test that
    runs on recovery startups. The test checks the integrity of the TopSites
    database.
  </summary>
</histogram>

<histogram name="Diagnostics.Test.SQLiteIntegrityWebData"
    enum="DiagnosticsResult">
  <owner>shess@chromium.org</owner>
  <summary>
    Shows the success and failure rates of the SQLiteIntegrityWebData test that
    runs on recovery startups. The test checks the integrity of the Web Data
    database.
  </summary>
</histogram>

<histogram name="Diagnostics.Test.Version" enum="DiagnosticsResult"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    TBD - Not run automatically yet, so this is just a placeholder for future
    metrics collection. Any samples collected here represent users running
    diagnostics manually.
  </summary>
</histogram>

<histogram name="Diagnostics.TestFailures" enum="DiagnosticsTestName">
  <owner>shess@chromium.org</owner>
  <summary>
    Histogram comparing the various types of diagnostic test failures when
    diagnostic tests are run. Note that some types of test failures cause the
    rest of the tests to be skipped.
  </summary>
</histogram>

<histogram name="Dialog.Create" enum="BooleanCreated">
  <owner>pdyson@chromium.org</owner>
  <summary>
    Counts the number times dialog boxes are created using a particular parent
    class.
  </summary>
</histogram>

<histogram name="Dialog.Creation" enum="DialogName">
  <owner>pdyson@chromium.org</owner>
  <summary>
    Counts the number times various types of dialog boxes are created.
  </summary>
</histogram>

<histogram name="Dialog.Delegate.Creation" enum="BooleanCreated">
  <obsolete>
    Deprecated, use Dialog.DialogDelegate.Create.
  </obsolete>
  <owner>pdyson@chromium.org</owner>
  <summary>
    Counts the number times dialog boxes are created using DialogDelegate.
  </summary>
</histogram>

<histogram name="Dialog.DialogDelegate.Duration" units="ms">
  <owner>pdyson@chromium.org</owner>
  <summary>
    How long dialog boxes are open, for dialog boxes created using the parent
    class DialogDelegate. This will include bubbles that use
    BubbleDialogDelegateView as a parent class, and dialogs that use
    DialogDelegateView as a parent class. This is logged on delegate
    destruction.
  </summary>
</histogram>

<histogram name="DirectWrite.Fonts.BuildCache.File.Size" units="KB">
  <owner>drott@chromium.org</owner>
  <summary>
    Reports size of font cache file. This is reported every time we rebuild font
    cache.
  </summary>
</histogram>

<histogram name="DirectWrite.Fonts.BuildCache.Ignored">
  <owner>drott@chromium.org</owner>
  <summary>
    Reports the total number of fonts that will be ignored while building static
    font cache due to size limitation. During cache building phase if our logic
    suggests that we need to put more than 70% of font file contents into cache
    file then we don't cache that particular font file. These ignored font files
    are directly picked up from system fonts folder during Direct Write cache
    building process. Our end goal is to minimize costly open and close
    operations on font files in system folder.
  </summary>
</histogram>

<histogram name="DirectWrite.Fonts.Ignored">
  <owner>drott@chromium.org</owner>
  <summary>
    Reports the total number of fonts that will be ignored while loading a
    custom font collection. With current criteria fonts that are not in
    system-font location will be ignored.
  </summary>
</histogram>

<histogram name="DirectWrite.Fonts.Loaded">
  <owner>drott@chromium.org</owner>
  <summary>
    Reports the total number of fonts to be loaded through a custom font
    collection. This actually reports total font entries from registry excluding
    font entries that point to non-system location.
  </summary>
</histogram>

<histogram name="DirectWrite.Fonts.LoadTime" units="ms">
  <owner>drott@chromium.org</owner>
  <summary>
    Measures the total time spent in loading a custom font collection in
    non-cache-file mode. We load system fonts as a custom font collection to
    avoid any interaction with windows font cache service from sandboxed
    renderer process. Please note that windows font cache services is different
    from our cache file approach (later referred here as cache-file mode).
  </summary>
</histogram>

<histogram name="DirectWrite.Fonts.LoadTime.Cached" units="ms">
  <owner>drott@chromium.org</owner>
  <summary>
    Measures the total time spent in loading a custom font collection in
    cache-file mode. We load system fonts as a custom font collection to avoid
    any interaction with windows font cache service from sandboxed renderer
    process. Please note that windows font cache services is different from our
    cache file approach (later referred here as cache-file mode)
  </summary>
</histogram>

<histogram name="DirectWrite.Fonts.Proxy.CreateFontFaceResult" enum="Hresult">
  <owner>drott@chromium.org</owner>
  <summary>Records the error returned from CreateFontFace.</summary>
</histogram>

<histogram name="DirectWrite.Fonts.Proxy.Fallback.CacheSize" units="Count">
  <owner>drott@chromium.org</owner>
  <summary>Records how many font families are in the fallback cache.</summary>
</histogram>

<histogram name="DirectWrite.Fonts.Proxy.FallbackResult"
    enum="DirectWriteFontFallbackResult">
  <owner>drott@chromium.org</owner>
  <summary>
    Measures the effectiveness of the font fallback proxy. This tracks if we
    were able to find a suitable font to render the character, and whether an
    IPC was necessary.
  </summary>
</histogram>

<histogram name="DirectWrite.Fonts.Proxy.FamilyCount" units="families">
  <owner>drott@chromium.org</owner>
  <summary>
    The number of font families as seen by the font proxy in the renderer.
  </summary>
</histogram>

<histogram name="DirectWrite.Fonts.Proxy.FontProxyError"
    enum="DirectWriteFontProxyError">
  <owner>drott@chromium.org</owner>
  <summary>
    The errors encountered by the DirectWrite font proxy while loading fonts.
  </summary>
</histogram>

<histogram name="DirectWrite.Fonts.Proxy.GetSystemFontCollectionResult"
    enum="Hresult">
  <owner>drott@chromium.org</owner>
  <summary>Records the error returned from GetSystemFontCollection.</summary>
</histogram>

<histogram name="DirectWrite.Fonts.Proxy.IndexingSpeed"
    units="font files per second" expires_after="M75">
  <owner>drott@chromium.org</owner>
  <summary>
    Indexing speed in font files per second while building the local font unique
    name lookup table. Recorded after building the lookup table in
    DWriteFontLookupTableBuilder.
  </summary>
</histogram>

<histogram name="DirectWrite.Fonts.Proxy.LastResortFontCount" units="fonts">
  <owner>drott@chromium.org</owner>
  <summary>
    The number of last resort fallback fonts found on the system as seen by the
    browser.
  </summary>
</histogram>

<histogram name="DirectWrite.Fonts.Proxy.LastResortFontFileCount" units="files">
  <owner>drott@chromium.org</owner>
  <summary>
    The number of font files found for a last resort fallback font.
  </summary>
</histogram>

<histogram name="DirectWrite.Fonts.Proxy.LoaderType"
    enum="DirectWriteFontLoaderType">
  <owner>drott@chromium.org</owner>
  <summary>
    The codepath that was used to load a font family. This is logged in the
    browser every time a renderer attempts to load a font family, once per font
    file.
  </summary>
</histogram>

<histogram name="DirectWrite.Fonts.Proxy.LoadFamilyResult"
    enum="DirectWriteLoadFamilyResult">
  <owner>drott@chromium.org</owner>
  <summary>
    The outcome of attempting to load a font family in the renderer (success vs
    failure and number of families). This is logged in the renderer once per
    family that is loaded.
  </summary>
</histogram>

<histogram name="DirectWrite.Fonts.Proxy.LoadFamilyTime" units="ms">
  <owner>drott@chromium.org</owner>
  <summary>
    The time taken to load a font family, excluding glyph data. This is logged
    in the renderer once per family that is loaded.
  </summary>
</histogram>

<histogram name="DirectWrite.Fonts.Proxy.LookupTableBuildTime" units="ms"
    expires_after="M75">
  <owner>drott@chromium.org</owner>
  <summary>
    Time it takes to build the font unique name lookup table. Recorded at the
    initial build of this table, after which it is kept for the lifetime of the
    browser process.
  </summary>
</histogram>

<histogram name="DirectWrite.Fonts.Proxy.LookupTableSize" units="KB"
    expires_after="M75">
  <owner>drott@chromium.org</owner>
  <summary>
    Size of the font unique name lookup table in kilobytes. Recorded at the
    initial build of this table, after which it is kept for the lifetime of the
    browser process.
  </summary>
</histogram>

<histogram name="DirectWrite.Fonts.Proxy.MessageFilterError"
    enum="DirectWriteMessageFilterError">
  <owner>drott@chromium.org</owner>
  <summary>
    Errors, if any, encountered by the DirectWrite font proxy message filter.
  </summary>
</histogram>

<histogram name="DirectWrite.Fonts.Proxy.NumFontFiles" units="font files"
    expires_after="M75">
  <owner>drott@chromium.org</owner>
  <summary>
    Number of font files which were encountered during scanning for locally
    installed font and building the unique font name lookup table. Recorded in
    DWriteFontTableBuilder while after the building the lookup table. Kept for
    the lifetime of the browser process after that.
  </summary>
</histogram>

<histogram name="DisabledExtension.ExtensionWipedStatus" enum="BooleanWiped">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Whether an extension has been wiped out.</summary>
</histogram>

<histogram name="DisabledExtension.SideloadWipeoutCount">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    How many external extensions get wiped out as a result of the Sideload
    Wipeout one-time initiative.
  </summary>
</histogram>

<histogram name="DisabledExtension.SideloadWipeoutNeeded" enum="BooleanSuccess">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Whether any extension got wiped out as a result of the Sideload Wipeout
    one-time initiative.
  </summary>
</histogram>

<histogram name="DisabledExtension.UserSelection" enum="SideloadWipeoutBubble">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The user selection in the Sideload Wipeout bubble, grouped by the
    UmaWipeoutHistogramOptions enum.
  </summary>
</histogram>

<histogram name="Discarding.DiscardsPer10Minutes" units="tabs">
<!-- Name completed by histogram_suffixes name="DiscardReason" -->

  <owner>fdoray@chromium.org</owner>
  <summary>
    Number of tabs discarded in each interval of 10 minutes, per discard reason.
  </summary>
</histogram>

<histogram name="Discarding.OnlineOnReload" enum="Boolean">
<!-- Name completed by histogram_suffixes name="DiscardReason" -->

  <owner>fdoray@chromium.org</owner>
  <summary>
    Whether the machine was online when a discarded tab was reloaded.
  </summary>
</histogram>

<histogram name="Discarding.ReloadsPer10Minutes" units="tabs">
<!-- Name completed by histogram_suffixes name="DiscardReason" -->

  <owner>fdoray@chromium.org</owner>
  <summary>
    Number of discarded tabs reloaded in each interval of 10 minutes, grouped by
    their discard reason.
  </summary>
</histogram>

<histogram name="Discarding.Urgent.NumAliveTabs" units="tabs">
  <owner>fdoray@chromium.org</owner>
  <summary>
    Number of tabs that are not pending load or discarded when an urgent discard
    request is received.
  </summary>
</histogram>

<histogram name="Discarding.Urgent.TimeSinceLastUrgent" units="ms">
  <owner>fdoray@chromium.org</owner>
  <summary>
    Time between two consecutive urgent discard requests. Urgent discards are
    undesirable; it is better to reduce memory usage before the system is in a
    bad state.
  </summary>
</histogram>

<histogram name="Discarding.Urgent.TimeSinceStartup" units="ms">
  <owner>fdoray@chromium.org</owner>
  <summary>
    Time between Chrome startup and the first urgent discard request. Urgent
    discards are undesirable; it is better to reduce memory usage before the
    system is in a bad state.
  </summary>
</histogram>

<histogram name="DiskBasedCertCache.CertIo" enum="CertificateChainPosition">
  <obsolete>
    Deprecated as of 01/2016. CertCacheTrial has been removed.
    https://crbug.com/522312
  </obsolete>
  <owner>brandonsalmon@chromium.org</owner>
  <summary>
    Records information about DiskBasedCertCache operations with respect to
    certificate chain positions. Zero indicates that a certificate is root, one
    indicates that it is the first intermediate certificate, etc.
  </summary>
</histogram>

<histogram name="DiskBasedCertCache.CertIoCacheResult" enum="CacheResult">
  <obsolete>
    Deprecated as of 01/2016. CertCacheTrial has been removed.
    https://crbug.com/522312
  </obsolete>
  <owner>brandonsalmon@chromium.org</owner>
  <summary>
    Records the outcome of requests to retrieve certificates from the disk
    cache.
  </summary>
</histogram>

<histogram name="DiskBasedCertCache.CertIoReadSuccessLeaf"
    enum="BooleanSuccess">
  <obsolete>
    Deprecated as of 01/2016. CertCacheTrial has been removed.
    https://crbug.com/522312
  </obsolete>
  <owner>brandonsalmon@chromium.org</owner>
  <summary>
    Whether or not the leaf certificate of a certificate chain was successfuly
    read from the disk cache.
  </summary>
</histogram>

<histogram name="DiskBasedCertCache.CertIoWriteSuccessLeaf"
    enum="BooleanSuccess">
  <obsolete>
    Deprecated as of 01/2016. CertCacheTrial has been removed.
    https://crbug.com/522312
  </obsolete>
  <owner>brandonsalmon@chromium.org</owner>
  <summary>
    Whether or not the leaf certificate of a certificate chain was successfully
    written to the disk cache.
  </summary>
</histogram>

<histogram name="DiskBasedCertCache.ChainReadTime" units="ms">
  <obsolete>
    Deprecated as of 01/2016. CertCacheTrial has been removed.
    https://crbug.com/522312
  </obsolete>
  <owner>brandonsalmon@chromium.org</owner>
  <summary>
    Measures the wall clock time spent reading a certificate chain. The starting
    time is when the read command is issued, and the ending time is when all of
    the certificates in the chain have been read into memory.
  </summary>
</histogram>

<histogram name="DiskBasedCertCache.ChainWriteTime" units="ms">
  <obsolete>
    Deprecated as of 01/2016. CertCacheTrial has been removed.
    https://crbug.com/522312
  </obsolete>
  <owner>brandonsalmon@chromium.org</owner>
  <summary>
    Measures the wall clock time spent writing a certificate chain to disk. The
    starting time is when the write command is issued, and the ending time is
    when all the certificates in the chain have been written to disk.
  </summary>
</histogram>

<histogram name="DiskCache.0.FilesAge" units="hours">
  <owner>morlovich@chromium.org</owner>
  <summary>The age of the cache's files (wall time).</summary>
</histogram>

<histogram name="DiskCache.2.FilesAge" units="hours">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The age of the cache's files (wall time). Media-specific cache.
  </summary>
</histogram>

<histogram name="DiskCache.3.FilesAge" units="hours" expires_after="2018-08-30">
  <owner>morlovich@chromium.org</owner>
  <summary>The age of the cache's files (wall time). AppCache.</summary>
</histogram>

<histogram name="DiskCache.4.FilesAge" units="hours" expires_after="2018-08-30">
  <owner>morlovich@chromium.org</owner>
  <summary>The age of the cache's files (wall time). ShaderCache.</summary>
</histogram>

<histogram name="DiskCache.SizeStats2" units="KB">
  <owner>morlovich@chromium.org</owner>
  <summary>The size distribution of data stored in the HTTP cache.</summary>
</histogram>

<histogram name="DiskCache.TotalIOTime" units="ms">
  <obsolete>
    Deprecated.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The total time it takes to perform a payload IO operation, for the regular
    disk cache.
  </summary>
</histogram>

<histogram name="DisplayManager.InternalDisplayZoomPercentage" units="%">
  <owner>malaykeshav@chromium.org</owner>
  <summary>
    The zoom percentage that the user has set on the internal display and is
    actively using. This is emitted when the zoom factor has been updated in
    display manager and has not been changed for a while.
  </summary>
</histogram>

<histogram name="DisplayManager.MirroringDisplayCountRanges"
    enum="MultiDisplayModeDisplayCountRanges">
  <owner>weidongg@chromium.org</owner>
  <summary>
    The number of displays connected to the device that are in software or
    hardware mirror mode. This is emitted once when the normal or mixed mirror
    mode is enabled through API call, or the display configuration changes (e.g.
    adding or removing a display) when mirror mode is on.
  </summary>
</histogram>

<histogram name="DisplayManager.MirrorModeTypes" enum="DisplayMirrorModeTypes">
  <owner>weidongg@chromium.org</owner>
  <summary>
    The types of mirror mode in which the displays connected to the device are
    in. This is emitted once when the normal or mixed mirror mode is enabled
    through API call, or the display configuration changes ( e.g. adding or
    removing a display) when mirror mode is on.
  </summary>
</histogram>

<histogram name="DisplayManager.MultiDisplayMode" enum="MultiDisplayModes">
  <owner>afakhry@chromium.org</owner>
  <summary>
    The mode in which the connected displays to the device are in. This is
    emitted once when displays are added or removed, or when the user changes
    the mode by e.g. enabling mirror or unified modes.
  </summary>
</histogram>

<histogram name="DisplayManager.UnifiedDesktopDisplayCountRange"
    enum="MultiDisplayModeDisplayCountRanges">
  <owner>afakhry@chromium.org</owner>
  <summary>
    The number of displays connected to the device when Unified Desktop mode is
    on. This is emitted when Unified Desktop mode is turned on, or the displays
    are added or removed while in Unified Mode.
  </summary>
</histogram>

<histogram base="true" name="DisplayScheduler.ShouldNotDraw" enum="Boolean">
  <obsolete>
    Deprecated after M72 since no longer needed.
  </obsolete>
<!-- Name completed by histogram_suffixes
     name="DisplaySchedulerNotDrawReason" -->

  <owner>sadrul@chromium.org</owner>
  <owner>sunnyps@chromium.org</owner>
  <summary>
    The reason for the DisplayScheduler to abort a draw operation.
  </summary>
</histogram>

<histogram name="DNS.AttemptCancelled">
  <obsolete>
    Deprecated as of 6/2018.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    The attempt which completed after the job was already cancelled.
  </summary>
</histogram>

<histogram name="DNS.AttemptDiscarded">
  <obsolete>
    Deprecated 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    The attempt which completed after the job was already cancelled OR the
    attempt that has finished after host resolution was already completed by an
    earlier attempt.
  </summary>
</histogram>

<histogram name="DNS.AttemptFailDuration" units="ms">
  <obsolete>
    Deprecated 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time taken in OS resolutions for actual navigations. These
    attempts which completed after the job was already canceled OR after the job
    was already completed by an earlier attempt. Note that cached resolutions
    may provide low (0ms?) resolution times.
  </summary>
</histogram>

<histogram name="DNS.AttemptFailure">
  <obsolete>
    Deprecated 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>The attempt that has not resolved the host successfully.</summary>
</histogram>

<histogram name="DNS.AttemptFirstFailure">
  <obsolete>
    Deprecated 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    The attempt that resolved the host first and the resolution was not
    successful.
  </summary>
</histogram>

<histogram name="DNS.AttemptFirstSuccess">
  <obsolete>
    Deprecated 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    The attempt that resolved the host first and the resolution was successful.
  </summary>
</histogram>

<histogram name="DNS.AttemptSuccess">
  <obsolete>
    Deprecated 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>The attempt that has resolved the host successfully.</summary>
</histogram>

<histogram name="DNS.AttemptSuccessDuration" units="ms">
  <obsolete>
    Deprecated 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time taken in OS resolutions that succeeded and were requested
    for actual navigations. These attempts which completed after the job was
    already canceled OR after the job was already completed by an earlier
    attempt. Note that cached resolutions may provide low (0ms?) resolution
    times.
  </summary>
</histogram>

<histogram name="DNS.AttemptTimeSavedByRetry" units="ms">
  <obsolete>
    Deprecated as of 6/2018.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    This histogram shows the time saved by having spawned an extra attempt, when
    the first attempt didn't finish before retry attempt.
  </summary>
</histogram>

<histogram name="DNS.CacheEvicted" units="ms">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    The time left to expiration of an entry when it is removed while compacting
    the HostCache.
  </summary>
</histogram>

<histogram name="DNS.CacheExpired" units="ms">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    The time since expiration of an entry when it is removed while compacting
    the HostCache.
  </summary>
</histogram>

<histogram name="DNS.CacheExpiredOnGet" units="ms">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    The time since expiration of an entry when it is removed on lookup.
  </summary>
</histogram>

<histogram name="DNS.EmptyAddressListAndNoError"
    enum="DNSEmptyAddressListAndNoError">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Error status when an empty address list was found in OnLookupComplete().
  </summary>
</histogram>

<histogram name="DNS.HostCache.Erase" enum="DNS.HostCache.EraseReason">
  <obsolete>
    Deprecated as of 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>The reason for erasing a DNS entry from the host cache.</summary>
</histogram>

<histogram name="DNS.HostCache.EraseStale.ExpiredBy" units="ms">
  <obsolete>
    Deprecated as of 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    When erasing a stale (expired or old-network) DNS entry from the host cache,
    how long past the expiration time it is.
  </summary>
</histogram>

<histogram name="DNS.HostCache.EraseStale.NetworkChanges" units="changes">
  <obsolete>
    Deprecated as of 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    When erasing a stale (expired or old-network) DNS entry from the host cache
    how many network changes happened between setting and erasing it.
  </summary>
</histogram>

<histogram name="DNS.HostCache.EraseStale.StaleHits" units="hits">
  <obsolete>
    Deprecated as of 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    When erasing a stale (expired or old-network) DNS entry from the host cache
    how many hits it received while stale.
  </summary>
</histogram>

<histogram name="DNS.HostCache.EraseValid.ValidFor" units="ms">
  <obsolete>
    Deprecated as of 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    When erasing a valid DNS entry from the host cache, for how much longer it
    would have remained valid.
  </summary>
</histogram>

<histogram name="DNS.HostCache.Lookup" enum="DNS.HostCache.LookupOutcome">
  <obsolete>
    Deprecated as of 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>The outcome of looking up a DNS entry in the host cache.</summary>
</histogram>

<histogram name="DNS.HostCache.LookupStale.ExpiredBy" units="ms">
  <obsolete>
    Deprecated as of 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    When looking up a stale DNS entry in the host cache, how long past the
    expiration time it is.
  </summary>
</histogram>

<histogram name="DNS.HostCache.LookupStale.NetworkChanges" units="changes">
  <obsolete>
    Deprecated as of 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    When looking up a stale DNS entry in the host cache, how many network
    changes happened between setting it and looking it up.
  </summary>
</histogram>

<histogram name="DNS.HostCache.RestoreSize" units="entries">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Number of HostCache entries persisted to disk, measured at restore time.
  </summary>
</histogram>

<histogram name="DNS.HostCache.RestoreSuccess" enum="BooleanSuccess">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Whether the persisted HostCache entries were restored successfully.
  </summary>
</histogram>

<histogram name="DNS.HostCache.Set" enum="DNS.HostCache.SetOutcome">
  <obsolete>
    Deprecated as of 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>The outcome of setting a DNS entry in the host cache.</summary>
</histogram>

<histogram name="DNS.HostCache.UpdateStale.AddressListDelta"
    enum="DNS.AddressListDeltaType">
  <obsolete>
    Deprecated as of 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    When updating a stale (expired or old-network) DNS entry in the host cache,
    and both results are successful, how the address list differs between the
    old and new entries.
  </summary>
</histogram>

<histogram name="DNS.HostCache.UpdateStale.ExpiredBy" units="ms">
  <obsolete>
    Deprecated as of 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    When updating a stale (expired or old-network) DNS entry in the host cache,
    how long past the expiration time the old entry was.
  </summary>
</histogram>

<histogram name="DNS.HostCache.UpdateStale.NetworkChanges" units="changes">
  <obsolete>
    Deprecated as of 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    When updating a stale (expired or old-nework) DNS entry in the host cache,
    how many network changes happened between setting the old entry and setting
    the new entry.
  </summary>
</histogram>

<histogram name="DNS.HostCache.UpdateStale.StaleHits" units="hits">
  <obsolete>
    Deprecated as of 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    The number of hits received to an updated stale DNS entry in the host cache
    while it was stale.
  </summary>
</histogram>

<histogram name="DNS.IndependentFailedNavigation" units="ms">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    When either a pre-resolution was not done recently enough to provide
    benefit, or the corresponding pre-resolution is still pending, this
    histogram shows the duration of time used to resolve a hostname as not
    existing during a failed attempt to navigate to (GET) a URL. In newer
    versions, if the hostname has never been found as a link during a page scan,
    and it has a referring URL, then it is added to referrer list data structure
    (hoping we'll do better next time).
  </summary>
</histogram>

<histogram name="DNS.IndependentNavigation" units="ms">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    When either a pre-resolution was not done recently enough to provide
    benefit, or the corresponding pre-resolution is still pending, this
    histogram shows the duration of the duration of time used to resolve a
    hostname to navigate to (GET) a URL. In newer versions, if the hostname has
    never been found as a link during a page scan, and it has a referring URL,
    then it is added to referrer list data structure (hoping we'll do better
    next time).
  </summary>
</histogram>

<histogram name="DNS.JobQueueTime" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTime.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the time the HostResolverImpl::Job was created and the
    time the Job was started (a getaddrinfo call was dispatched to the thread
    pool).
  </summary>
</histogram>

<histogram name="DNS.JobQueueTime_HIGHEST" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTime.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the time the HostResolverImpl::Job was created and the
    time the Job was started (a getaddrinfo call was dispatched to the thread
    pool). Includes only Jobs which had priority HIGHEST when started.
  </summary>
</histogram>

<histogram name="DNS.JobQueueTime_IDLE" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTime.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the time the HostResolverImpl::Job was created and the
    time the Job was started (a getaddrinfo call was dispatched to the thread
    pool). Includes only Jobs which had priority IDLE when started.
  </summary>
</histogram>

<histogram name="DNS.JobQueueTime_LOW" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTime.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the time the HostResolverImpl::Job was created and the
    time the Job was started (a getaddrinfo call was dispatched to the thread
    pool). Includes only Jobs which had priority LOW when started.
  </summary>
</histogram>

<histogram name="DNS.JobQueueTime_LOWEST" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTime.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the time the HostResolverImpl::Job was created and the
    time the Job was started (a getaddrinfo call was dispatched to the thread
    pool). Includes only Jobs which had priority LOWEST when started.
  </summary>
</histogram>

<histogram name="DNS.JobQueueTime_MEDIUM" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTime.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the time the HostResolverImpl::Job was created and the
    time the Job was started (a getaddrinfo call was dispatched to the thread
    pool). Includes only Jobs which had priority MEDIUM when started.
  </summary>
</histogram>

<histogram name="DNS.JobQueueTimeAfterChange" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTimeAfterChange.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the last time the priority of a HostResolverImpl::Job
    changed (when a Request was attached or detached) and the time the Job was
    started (a getaddrinfo call was dispatched to the thread pool).
  </summary>
</histogram>

<histogram name="DNS.JobQueueTimeAfterChange_HIGHEST" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTimeAfterChange.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the last time the priority of a HostResolverImpl::Job
    changed (when a Request was attached or detached) and the time the Job was
    started (a getaddrinfo call was dispatched to the thread pool). Includes
    only Jobs which had priority HIGHEST when started.
  </summary>
</histogram>

<histogram name="DNS.JobQueueTimeAfterChange_IDLE" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTimeAfterChange.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the last time the priority of a HostResolverImpl::Job
    changed (when a Request was attached or detached) and the time the Job was
    started (a getaddrinfo call was dispatched to the thread pool). Includes
    only Jobs which had priority IDLE when started.
  </summary>
</histogram>

<histogram name="DNS.JobQueueTimeAfterChange_LOW" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTimeAfterChange.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the last time the priority of a HostResolverImpl::Job
    changed (when a Request was attached or detached) and the time the Job was
    started (a getaddrinfo call was dispatched to the thread pool). Includes
    only Jobs which had priority LOW when started.
  </summary>
</histogram>

<histogram name="DNS.JobQueueTimeAfterChange_LOWEST" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTimeAfterChange.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the last time the priority of a HostResolverImpl::Job
    changed (when a Request was attached or detached) and the time the Job was
    started (a getaddrinfo call was dispatched to the thread pool). Includes
    only Jobs which had priority LOWEST when started.
  </summary>
</histogram>

<histogram name="DNS.JobQueueTimeAfterChange_MEDIUM" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.JobQueueTimeAfterChange.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time elapsed between the last time the priority of a HostResolverImpl::Job
    changed (when a Request was attached or detached) and the time the Job was
    started (a getaddrinfo call was dispatched to the thread pool). Includes
    only Jobs which had priority MEDIUM when started.
  </summary>
</histogram>

<histogram name="DNS.PrefetchCacheEviction" units="ms">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    The duration of time used (most recently) to pre-resolve a hostname, when
    the prefetched resolution was apparently evicted from the cache. The
    included samples only list pre-resolution times when the later
    navigations/fetches took in excess of 15ms.
  </summary>
</histogram>

<histogram name="DNS.PrefetchCacheEvictionL" units="ms">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    The duration of time used (most recently) to pre-resolve a hostname, when
    the prefetched resolution was apparently evicted from the cache. The
    included samples only list pre-resolution times when the later
    navigations/fetches took in excess of 15ms.
  </summary>
</histogram>

<histogram name="DNS.PrefetchFoundName">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>Replaced by DNS.PrefetchFoundNameL.</summary>
</histogram>

<histogram name="DNS.PrefetchFoundNameL" units="ms">
  <obsolete>
    Deprecated 2/2010, and replaced by DNS.PrefetchResolution
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    The duration of time used by the DNS pre-resolving threads to resolve a host
    name via the network. Any resolutions that are faster than 15ms are
    considered to be local cache hits, not requiring network access, and are not
    included in this histogram. This histogram is most useful for estimating the
    typical cost of a name resolution, but it also estimates the total number of
    network-based resolutions induced by this feature. Not all these resolutions
    prove helpful (i.e., the user does not always actually visit the resolved
    hostnames).
  </summary>
</histogram>

<histogram name="DNS.PrefetchNegativeHit">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>Replaced by DNS.PrefetchNegativeHitL.</summary>
</histogram>

<histogram name="DNS.PrefetchNegativeHitL" units="ms">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    The duration of time saved due to DNS pre-resolving in the &quot;name not
    found&quot; case. Time &quot;savings&quot; shown in the histogram are
    defined to be the difference between the DNS pre-resolution duration, and
    the DNS resolution duration seen during a navigation. These cache hits only
    list events where the DNS pre-resolve duration for a host was in excess of
    15ms (i.e., the network was consulted), and the actual DNS resolution (when
    a user attempted to navigate to a link with the same host name) took less
    than 15ms (i.e., the network was not consulted), which means the gain was a
    result of a &quot;cache hit&quot; in the OS cache. For some users with LANs,
    all negative results (even when the DNS cache might otherwise help) take
    about 2.5 seconds (due to timeouts for netbios broadcasts), and hence no
    savings are possible (or shown) for such users in this category.
  </summary>
</histogram>

<histogram name="DNS.PrefetchPositiveHit">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>Replaced by DNS.PrefetchPositiveHitL.</summary>
</histogram>

<histogram name="DNS.PrefetchPositiveHitL" units="ms">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    The duration of time saved due to DNS pre-resolving in the &quot;name was
    found&quot; case, and induced by either a page scan for a link or an omnibox
    entry by the user. Time &quot;savings&quot; shown in the histogram are
    defined to be the difference between the DNS pre-resolution duration, and
    the DNS resolution duration seen during a navigation. These cache hits only
    list events where the DNS pre-resolve duration for a host was in excess of
    15ms (i.e., the network was consulted), and the actual DNS resolution (when
    a user attempted to navigate to a link with the same host name) took less
    than 15ms (i.e., the network was not consulted), which means the gain was a
    result of a &quot;cache hit&quot; in the OS cache.
  </summary>
</histogram>

<histogram name="DNS.PrefetchQueue" units="ms">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    The duration of time spent by a proposed resolution waiting in the queue to
    be resolved. This number is in addition to any DNS resolution time that may
    come later.
  </summary>
</histogram>

<histogram name="DNS.PrefetchReferredPositiveHit" units="ms">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    The duration of time saved due to DNS pre-resolving in the &quot;name was
    found&quot; case, and induced by predicting (using referrer lists) that a
    resolution was needed. Time &quot;savings&quot; shown in the histogram are
    defined to be the difference between the DNS pre-resolution duration, and
    the DNS resolution duration seen during a navigation. These cache hits only
    list events where the DNS pre-resolve duration for a host was in excess of
    15ms (i.e., the network was consulted), and the actual DNS resolution (when
    a user attempted to navigate to a link with the same host name) took less
    than 15ms (i.e., the network was not consulted), which means the gain was a
    result of a &quot;cache hit&quot; in the OS cache.
  </summary>
</histogram>

<histogram name="DNS.PrefetchResolution" units="ms">
  <owner>mgersh@chromium.org</owner>
  <summary>
    The duration of time used by the DNS pre-resolving threads to resolve a host
    name via the network. Any resolutions that are faster than 15ms are
    considered to be local cache hits, not requiring network access, and are not
    included in this histogram. This histogram is most useful for estimating the
    typical cost of a name resolution, but it also estimates the total number of
    network-based resolutions induced by this feature. Not all these resolutions
    prove helpful (i.e., the user does not always actually visit the resolved
    hostnames).
  </summary>
</histogram>

<histogram name="DNS.QueueRecycledDeltaOver2">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    When, due to congestion avoidance, a queued pre-resolution is abandoned
    (recycled) without actually being resolved, this histograms records the age
    in the queue of that entry. Only times over 2 seconds are recorded in this
    histogram.
  </summary>
</histogram>

<histogram name="DNS.QueueRecycledUnder2">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    When, due to congestion avoidance, a queued pre-resolution is abandoned
    (recycled) without actually being resolved, this histograms records the age
    in the queue of that entry. Only times less than or equal to 2 seconds are
    recorded in this histogram.
  </summary>
</histogram>

<histogram name="DNS.ResolveCategory" enum="ResolutionCategory">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.ResolveCategory.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Counts of successes and failures of OS resolutions in various categories.
  </summary>
</histogram>

<histogram name="DNS.ResolveFail" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.ProcTaskFail.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Duration of time taken in OS resolutions for actual navigations. Note that
    cached OS resolutions may provide low (0ms?) resolution times.
  </summary>
</histogram>

<histogram name="DNS.ResolveFail_FAMILY_IPV4" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.ProcTaskFail.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>Same as DNS.ResolveFail, but limited to pure IPv4 lookups.</summary>
</histogram>

<histogram name="DNS.ResolveFail_FAMILY_IPV6" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.ProcTaskFail.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>Same as DNS.ResolveFail, but limited to pure IPv6 lookups.</summary>
</histogram>

<histogram name="DNS.ResolveFail_FAMILY_UNSPEC" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.ProcTaskFail.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>Same as DNS.ResolveFail, but limited to IPv4/IPv6 lookups.</summary>
</histogram>

<histogram name="DNS.ResolveSpeculativeFail" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.ProcTaskFail.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Duration of time taken in speculative OS resolutions. Note that cached OS
    resolutions may provide low (0ms?) resolution times.
  </summary>
</histogram>

<histogram name="DNS.ResolveSpeculativeSuccess" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.ProcTaskSuccess.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Duration of time taken in speculative OS resolution that succeeded. Note
    that cached resolutions may provide low (0ms?) resolution times.
  </summary>
</histogram>

<histogram name="DNS.ResolveSuccess" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.ProcTaskSuccess.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Duration of time taken in OS resolutions that succeeded and were requested
    for actual navigations. Note that cached resolutions may provide low (0ms?)
    resolution times.
  </summary>
</histogram>

<histogram name="DNS.ResolveSuccess_FAMILY_IPV4" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.ProcTaskSuccess.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Same as DNS.ResolveSuccess, but limited to pure IPv4 lookups.
  </summary>
</histogram>

<histogram name="DNS.ResolveSuccess_FAMILY_IPV6" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.ProcTaskSuccess.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Same as DNS.ResolveSuccess, but limited to pure IPv6 lookups.
  </summary>
</histogram>

<histogram name="DNS.ResolveSuccess_FAMILY_UNSPEC" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.ProcTaskSuccess.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Same as DNS.ResolveSuccess, but limited to IPv4/IPv6 lookups.
  </summary>
</histogram>

<histogram name="DNS.ResolveUnspecWaste" enum="ResolutionUnspecWasteCategory">
  <obsolete>
    Deprecated as of 5/2013.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Counts of hits and misses in the DNS cache and DNS jobs pool of wasted
    HostResolverImpl::Jobs that could be avoided by always resolving using
    AF_UNSPEC.
  </summary>
</histogram>

<histogram name="DNS.StaleHostResolver.NetworkEarly" units="ms">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    When a DNS request made through StaleHostResolver returns, a stale cached
    result was available, and the network responded before or exactly at the
    stale delay, how much earlier it responded.
  </summary>
</histogram>

<histogram name="DNS.StaleHostResolver.NetworkLate" units="ms">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    When a DNS request made through StaleHostResolver returns, a stale cached
    result was available, and the network responded after the stale delay, how
    much later it responded.
  </summary>
</histogram>

<histogram name="DNS.StaleHostResolver.RequestOutcome"
    enum="DNS.StaleHostResolverRequestOutcome">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    When a DNS request made through StaleHostResolver returns or is canceled,
    the outcome of the request.
  </summary>
</histogram>

<histogram name="DNS.StaleHostResolver.RestoreSizeOnCacheMiss">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    When a DNS request made through StaleHostResolver has no stale cached result
    available, the number of host cache entries that were restored from prefs.
  </summary>
</histogram>

<histogram name="DNS.StaleHostResolver.SizeOnCacheMiss">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    When a DNS request made through StaleHostResolver has no stale cached result
    available, the number of entries in the host cache.
  </summary>
</histogram>

<histogram name="DNS.StaleHostResolver.StaleAddressListDelta"
    enum="DNS.AddressListDeltaType">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    When a DNS request made through StaleHostResolver had a stale cached result
    and both the stale and network results were successful, the difference
    between the old and new address lists.
  </summary>
</histogram>

<histogram name="DNS.TotalTime" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.TotalTime.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Duration of time since a HostResolverImpl::Resolve request to the time a
    result is posted. Excludes canceled, evicted, and aborted requests. Includes
    cache hits (recorded as 0). Excludes speculative requests.
  </summary>
</histogram>

<histogram name="DNS.TotalTime_speculative" units="ms">
  <obsolete>
    Deprecated as of 9/2017. Replaced by Net.DNS.TotalTime_speculative.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Duration of time since a HostResolverImpl::Resolve request to the time a
    result is posted. Excludes canceled, evicted, and aborted requests. Includes
    cache hits (recorded as 0). Speculative requests only.
  </summary>
</histogram>

<histogram name="DNS.UnexpectedResolution">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    In some cases, such as when content arrives with embedded references to
    other servers, the prefetch system can't (or doesn't) attempt to pre-resolve
    the hostnames. As an example, a visit to www.cnn.com will fetch content with
    references to about 12 additional hostnames, none of which are currently
    anticipated. Such resolutions are termed &quot;Unexpected Resolutions,&quot;
    and the durations associated with those DNS resolutions are shown below.
    Future features may attempt to learn (from prior experience locally, or from
    server provided hints), what secondary hostname resolutions should be done
    when a primary resolution (or navigation) takes place. This histogram shows
    what the potential savings are that &quot;remain on the table&quot; until we
    employ some of these more advanced features.
  </summary>
</histogram>

<histogram name="DNS.UnexpectedResolutionL">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    In some cases, such as when content arrives with embedded references to
    other servers, or when a page (such as one in SSL) preclude scanning and
    prefetching, the prefetch system can't (or doesn't) attempt to pre-resolve
    the hostnames. As an example, a visit to www.cnn.com will fetch content with
    references to about 12 additional hostnames, none of which might be
    anticipated. Similarly, clicking on a link in an SSL page won't be
    anticipated (since scanning in not allowed by default). Such resolutions are
    termed &quot;Unexpected Resolutions,&quot; and the durations associated with
    those navigation induced DNS resolutions are shown below. If a referring URL
    is available for the navigation, the relationship to the referring URL was
    recorded, and future navigations to the referring hostname would have
    induced a pre-resolution of hostname that caused an entry below. Such any
    entry may facilitate future listing in the ReferredPositiveHit histogram.
  </summary>
</histogram>

<histogram name="DnsProbe.ErrorPageUpdateStatus" enum="DnsProbe.ProbeStatus">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>Status of DNS probe updates sent to a DNS error page.</summary>
</histogram>

<histogram name="DnsProbe.Probe.Elapsed" units="ms">
  <obsolete>
    Renamed 7/2013 to DnsProbe.ProbeDuration.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>Time between starting and finishing DNS probe.</summary>
</histogram>

<histogram name="DnsProbe.Probe.NcnOffline.Elapsed" units="ms">
  <obsolete>
    Removed 7/2013.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time between starting and finishing DNS probe when NCN says we're offline.
  </summary>
</histogram>

<histogram name="DnsProbe.Probe.NcnOffline.Result"
    enum="DnsProbe.ObsoleteProbeResult">
  <obsolete>
    Removed 7/2013.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Result of DNS probes sent by the probe service when NCN says we're offline.
  </summary>
</histogram>

<histogram name="DnsProbe.Probe.NcnOnline.Elapsed" units="ms">
  <obsolete>
    Removed 7/2013.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time between starting and finishing DNS probe when NCN says we're online.
  </summary>
</histogram>

<histogram name="DnsProbe.Probe.NcnOnline.Result"
    enum="DnsProbe.ObsoleteProbeResult">
  <obsolete>
    Removed 7/2013.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Result of DNS probes sent by the probe service when NCN says we're online.
  </summary>
</histogram>

<histogram name="DnsProbe.Probe.Result" enum="DnsProbe.ObsoleteProbeResult">
  <obsolete>
    Renamed 7/2013 to DnsProbe.ProbeResult. (Also switched to the full
    DnsProbe.ProbeStatus enum.)
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>Result of DNS probes sent by the probe service.</summary>
</histogram>

<histogram name="DnsProbe.Probe.ResultBadConfig.Elapsed" units="ms">
  <obsolete>
    Removed 7/2013.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>Elapsed time of DNS probes that return PROBE_BAD_CONFIG.</summary>
</histogram>

<histogram name="DnsProbe.Probe.ResultBadConfig.SystemIsLocalhost"
    enum="DnsProbe.SystemIsLocalhost">
  <obsolete>
    Removed 7/2013.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Whether the only nameserver in the system DNS config was 127.0.0.1 when the
    probe result was BAD_CONFIG.
  </summary>
</histogram>

<histogram name="DnsProbe.Probe.ResultBadConfig.SystemJobResult"
    enum="DnsProbe.JobResult">
  <obsolete>
    Removed 7/2013.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    The result of the system probe job when the overall probe result was
    BAD_CONFIG.
  </summary>
</histogram>

<histogram name="DnsProbe.Probe.ResultBadConfig.SystemNameserverCount">
  <obsolete>
    Removed 7/2013.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    The number of nameservers in the system DNS config when the probe result was
    BAD_CONFIG.
  </summary>
</histogram>

<histogram name="DnsProbe.Probe.ResultNoInternet.Elapsed" units="ms">
  <obsolete>
    Removed 7/2013.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>Elapsed time of DNS probes that return PROBE_NO_INTERNET.</summary>
</histogram>

<histogram name="DnsProbe.Probe.ResultNxdomain.Elapsed" units="ms">
  <obsolete>
    Removed 7/2013.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>Elapsed time of DNS probes that return PROBE_NXDOMAIN.</summary>
</histogram>

<histogram name="DnsProbe.Probe.ResultUnknown.Elapsed" units="ms">
  <obsolete>
    Removed 7/2013.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>Elapsed time of DNS probes that return PROBE_UNKNOWN.</summary>
</histogram>

<histogram name="DnsProbe.ProbeDuration" units="ms">
  <obsolete>
    Replaced 2/2019 with DnsProbe.ProbeDuration2, which uses TimeTicks instead
    of Time.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>Wall time between starting and finishing DNS probe.</summary>
</histogram>

<histogram name="DnsProbe.ProbeDuration2" units="ms">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>Time ticks between starting and finishing DNS probe.</summary>
</histogram>

<histogram name="DnsProbe.ProbeResult" enum="DnsProbe.ProbeStatus">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>Result of DNS probes sent by the probe service.</summary>
</histogram>

<histogram name="Document.BeforeUnloadDialog" enum="BeforeUnloadDialogResult">
  <owner>panicker@chromium.org</owner>
  <summary>
    Records result of invoking beforeunload handler, that determines whether to
    show the dialog.
  </summary>
</histogram>

<histogram name="Document.OutliveTimeAfterShutdown.DestroyedBeforeProcessDies">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>keishi@chromium.org</owner>
  <summary>
    Records the GC count between the time when the document is shut down and and
    the time when the document is actually destroyed. This only counts documents
    that are destroyed before the process dies.
  </summary>
</histogram>

<histogram name="Document.OutliveTimeAfterShutdown.GCCount" enum="GCCount">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>keishi@chromium.org</owner>
  <summary>
    Records documents that survives some GCs after the document is shut down.
  </summary>
</histogram>

<histogram name="DocumentActivity.Enabled" enum="RunningMode">
  <obsolete>
    Removed 9/2016.
  </obsolete>
  <owner>mariakhomenko@chromium.org</owner>
  <summary>
    Recorded only for Android. Records on every metrics upload whether document
    mode is enabled.
  </summary>
</histogram>

<histogram name="DocumentEventTiming.BeforeUnloadDialogDuration.ByNavigation"
    units="ms" expires_after="2019-08-09">
  <owner>sullivan@chromium.org</owner>
  <summary>
    Milliseconds spent in beforeunload dialog. Does not include time to process
    beforeunload event in JavaScript (see
    DocumentEventTiming.BeforeUnloadDuration). Recorded immediately after
    closing dialog, upon user confirmation to navigate away from the page.
  </summary>
</histogram>

<histogram name="DocumentEventTiming.BeforeUnloadDuration" units="microseconds">
  <owner>panicker@chromium.org</owner>
  <summary>
    Microseconds spent in beforeunload.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="DocumentEventTiming.FreezeDuration" units="microseconds">
  <owner>panicker@chromium.org</owner>
  <summary>
    Microseconds spent in onfreeze.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="DocumentEventTiming.PageHideDuration" units="microseconds">
  <owner>panicker@chromium.org</owner>
  <summary>
    Microseconds spent in pagehide.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="DocumentEventTiming.PageVibilityHiddenDuration"
    units="microseconds">
  <owner>panicker@chromium.org</owner>
  <summary>
    Microseconds spent in vibilitychange (hidden).

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="DocumentEventTiming.ResumeDuration" units="microseconds">
  <owner>panicker@chromium.org</owner>
  <summary>
    Microseconds spent in onresume.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="DocumentEventTiming.UnloadDuration" units="microseconds">
  <owner>panicker@chromium.org</owner>
  <summary>
    Microseconds spent in unload.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="DocumentScan.ConverterResult" enum="BooleanSuccess">
  <owner>pstew@chromium.org</owner>
  <summary>
    Chrome OS document scan metric that tracks whether a document scan call to
    the image conversion process suceeded.
  </summary>
</histogram>

<histogram name="DocumentScan.ScanResult" enum="BooleanSuccess">
  <owner>pstew@chromium.org</owner>
  <summary>
    Chrome OS document scan metric that tracks whether a document scan call to
    the sane backend process suceeded.
  </summary>
</histogram>

<histogram name="DomainBoundCerts.DBExists" enum="BooleanExists"
    expires_after="M77">
  <owner>nharper@chromium.org</owner>
  <summary>
    Tracks whether the &quot;Origin Bound Certs&quot; file exists in a profile.
    Logged each time the network context params are created for a profile, which
    should happen approximately once per session for a profile.
  </summary>
</histogram>

<histogram name="DomainBoundCerts.DBLoadedCount">
  <obsolete>
    Removed January 2018.
  </obsolete>
  <owner>mattm@chromium.org</owner>
  <summary>Number of certs loaded from domain bound cert database.</summary>
</histogram>

<histogram name="DomainBoundCerts.DBLoadStatus"
    enum="DomainBoundCerts.DBLoadStatus">
  <owner>nharper@chromium.org</owner>
  <summary>
    The status of loading the Channel ID database from disk. This histogram
    records why the database failed to load, or that it loaded successfully.
  </summary>
</histogram>

<histogram name="DomainBoundCerts.DBLoadTime" units="ms">
  <obsolete>
    Removed January 2018.
  </obsolete>
  <owner>mattm@chromium.org</owner>
  <summary>Time spent loading domain bound cert database.</summary>
</histogram>

<histogram name="DomainBoundCerts.DBSizeInKB" units="KB">
  <obsolete>
    Removed 4/2017.
  </obsolete>
  <owner>mattm@chromium.org</owner>
  <summary>
    The size, on disk, of the domain bound cert database as it is being loaded.
  </summary>
</histogram>

<histogram name="DomainBoundCerts.DBVersion">
  <owner>nharper@chromium.org</owner>
  <summary>
    The version number of the Channel ID database (before any migrations are
    run).
  </summary>
</histogram>

<histogram name="DomainBoundCerts.GenerateCertTime" units="ms">
  <obsolete>
    Removed 4/2017.
  </obsolete>
  <owner>mattm@chromium.org</owner>
  <summary>Time spent generating a domain bound cert.</summary>
</histogram>

<histogram name="DomainBoundCerts.GetCertTime" units="ms">
  <obsolete>
    Removed 4/2017.
  </obsolete>
  <owner>mattm@chromium.org</owner>
  <summary>
    Combined time for GetDomainBoundCert retrieval (both synchronous and
    asynchronous).
  </summary>
</histogram>

<histogram name="DomainBoundCerts.GetCertTimeAsync" units="ms">
  <obsolete>
    Removed 4/2017.
  </obsolete>
  <owner>mattm@chromium.org</owner>
  <summary>
    Time for asynchronous retrieval (from the GetDomainBoundCert call until
    completion callback is called).
  </summary>
</histogram>

<histogram name="DomainBoundCerts.GetCertTimeSync" units="ms">
  <obsolete>
    Removed 4/2017.
  </obsolete>
  <owner>mattm@chromium.org</owner>
  <summary>Time for synchronous GetDomainBoundCert cert retrieval.</summary>
</histogram>

<histogram name="DomainBoundCerts.GetDomainBoundCertResult"
    enum="DomainBoundCerts.GetCertResult">
  <obsolete>
    Removed January 2018.
  </obsolete>
  <owner>mattm@chromium.org</owner>
  <summary>Result of GetDomainBoundCert function.</summary>
</histogram>

<histogram name="DomainBoundCerts.KillDatabaseResult" enum="BooleanSuccess">
  <owner>mattm@chromium.org</owner>
  <summary>
    Whether the domain-bound certs sqlite database was killed succesfully when
    an unrecoverable error was detected.
  </summary>
</histogram>

<histogram name="DomainBoundCerts.Support" enum="DomainBoundCerts.Support">
  <obsolete>
    Removed January 2018.
  </obsolete>
  <owner>mattm@chromium.org</owner>
  <summary>
    Counts of SSL client sockets broken down by support for Domain Bound
    Certificates TLS extension. Counts only connections with full handshakes,
    resumed sessions are not counted.
  </summary>
</histogram>

<histogram name="DomainBoundCerts.TaskMaxWaitTime" units="ms">
  <obsolete>
    Removed 4/2017.
  </obsolete>
  <owner>mattm@chromium.org</owner>
  <summary>
    Longest time spent by requests waiting for load of domain bound cert
    database.
  </summary>
</histogram>

<histogram name="DomainBoundCerts.TaskWaitCount">
  <obsolete>
    Removed 4/2017.
  </obsolete>
  <owner>mattm@chromium.org</owner>
  <summary>
    Number of requests that waited for load of domain bound cert database.
  </summary>
</histogram>

<histogram name="DomainMixing.OneDay">
  <owner>qfiard@google.com</owner>
  <summary>
    The distribution over daily active users of Google Search of the ratio of
    Google searches in the past day that were issued by the user on a Google
    domain that is not the primary one used by the user over the same time
    period.
  </summary>
</histogram>

<histogram name="DomainMixing.OneMonth">
  <owner>qfiard@google.com</owner>
  <summary>
    The distribution over daily active users of Google Search of the ratio of
    Google searches in the past 30 days that were issued by the user on a Google
    domain that is not the primary one used by the user over the same time
    period.
  </summary>
</histogram>

<histogram name="DomainMixing.OneWeek">
  <owner>qfiard@google.com</owner>
  <summary>
    The distribution over daily active users of Google Search of the ratio of
    Google searches in the past week that were issued by the user on a Google
    domain that is not the primary one used by the user over the same time
    period.
  </summary>
</histogram>

<histogram name="DomainMixing.TwoWeeks">
  <owner>qfiard@google.com</owner>
  <summary>
    The distribution over daily active users of Google Search of the ratio of
    Google searches in the past two weeks that were issued by the user on a
    Google domain that is not the primary one used by the user over the same
    time period.
  </summary>
</histogram>

<histogram name="DomainReliability.BeaconInterval" units="ms">
  <obsolete>
    Removed November 2017.
  </obsolete>
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The time between successive Domain Reliability beacons being queued in the
    same context. (Can be arbitrarily long if no beacons are queued in a while.)
  </summary>
</histogram>

<histogram name="DomainReliability.BeaconIntervalGlobal" units="ms">
  <obsolete>
    Removed November 2017.
  </obsolete>
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The time between successive Domain Reliability beacons being queued across
    all contexts. (Can be arbitrarily long if no beacons are queued in a while.)
  </summary>
</histogram>

<histogram name="DomainReliability.BeaconReported" enum="BooleanReported">
  <obsolete>
    Removed November 2017.
  </obsolete>
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    Whether a beacon added to a Domain Reliability context was saved to be
    uploaded to the collector.
  </summary>
</histogram>

<histogram name="DomainReliability.OnBeaconDidEvict" enum="BooleanDidEvict">
  <obsolete>
    Removed November 2017.
  </obsolete>
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    Whether adding a beacon to a Domain Reliability context caused it to evict
    an older beacon to stay within memory limits.
  </summary>
</histogram>

<histogram name="DomainReliability.ReportedBeaconError" enum="NetErrorCodes">
  <obsolete>
    Removed November 2017.
  </obsolete>
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The Chrome error code included in a beacon saved to be uploaded to the
    collector.
  </summary>
</histogram>

<histogram name="DomainReliability.ReportedBeaconError_HasServerIP"
    enum="NetErrorCodes">
  <obsolete>
    Removed November 2017.
  </obsolete>
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The Chrome error code included in a beacon with a non-empty server_ip field
    saved to be uploaded to the collector.
  </summary>
</histogram>

<histogram name="DomainReliability.ReportedBeaconUploadDepth" units="levels">
  <obsolete>
    Removed November 2017.
  </obsolete>
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The upload depth included in a beacon saved to be uploaded to the collector.
    (Zero means the beacon was not about a report upload; n+1 means the beacon
    was about a report with upload depth n.)
  </summary>
</histogram>

<histogram name="DomainReliability.SetConfigRecreatedContext"
    enum="BooleanCreated">
  <obsolete>
    Removed November 2017.
  </obsolete>
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    When Domain Reliability receives a valid NEL configuration header for an
    origin with Domain Reliability active, whether or not it needed to recreate
    the origin's context to apply a changed config.
  </summary>
</histogram>

<histogram name="DomainReliability.UploadCollectorIndex">
  <obsolete>
    Removed November 2017.
  </obsolete>
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The index of the collector that a Domain Reliability upload was sent to.
    (Later collectors are only used when earlier collectors have failed.)
  </summary>
</histogram>

<histogram name="DomainReliability.UploadCollectorRetryDelay" units="ms">
  <obsolete>
    Removed November 2017.
  </obsolete>
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    After an upload to a collector finishes (successfully or not), the delay
    before the scheduler can send another upload to that collector. (If recent
    uploads were successful, this will be 0; if not, it will be based on the
    BackoffEntry and any Retry-After header received.)
  </summary>
</histogram>

<histogram name="DomainReliability.UploadDuration" units="ms">
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The elapsed time between starting and finishing a Domain Reliability upload.
  </summary>
</histogram>

<histogram name="DomainReliability.UploadFailover"
    enum="DomainReliability.BooleanFailover">
  <obsolete>
    Deprecated 11/2014; see UploadCollectorIndex
  </obsolete>
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    Whether a Domain Reliability upload was sent to a collector other than the
    first one listed in the config. (This only happens when an upload to the
    first collector fails.)
  </summary>
</histogram>

<histogram name="DomainReliability.UploadInterval" units="ms">
  <obsolete>
    Removed November 2017.
  </obsolete>
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The time between successive Domain Reliability uploads being started in the
    same context. (Can be arbitrarily long if no beacons are reported in a
    while.)
  </summary>
</histogram>

<histogram name="DomainReliability.UploadIntervalGlobal" units="ms">
  <obsolete>
    Removed November 2017.
  </obsolete>
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The time between successive Domain Reliability uploads being started across
    all contexts. (Can be arbitrarily long if no beacons are reported in a
    while.)
  </summary>
</histogram>

<histogram name="DomainReliability.UploadLatency" units="ms">
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The time from the first beacon in a Domain Reliability upload being recorded
    and that upload completing successfully. (Note that if some beacons are
    never uploaded successfully, they will not feature in this histogram at
    all.)
  </summary>
</histogram>

<histogram name="DomainReliability.UploadNetError" enum="NetErrorCodes">
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The network error code (or OK if none) returned by the URLFetcher when a
    Domain Reliability report is uploaded.
  </summary>
</histogram>

<histogram name="DomainReliability.UploadResponseCode" enum="HttpResponseCode">
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The HTTP response code returned by the Domain Reliability collector when a
    report is uploaded.
  </summary>
</histogram>

<histogram name="DomainReliability.UploadSuccess" enum="BooleanSuccess">
  <owner>juliatuttle@chromium.org</owner>
  <summary>Whether a Domain Reliability upload succeeded.</summary>
</histogram>

<histogram name="DomDistiller.BarCloseButtonUsage" enum="BooleanPanelWasOpen">
  <obsolete>
    UI rewrite to be an InfoBar makes this metric irrelevant as of 05/2017.
  </obsolete>
  <owner>mdjones@chromium.org</owner>
  <summary>
    Records if the close button was used before or after opening and viewing
    Reader Mode content.
  </summary>
</histogram>

<histogram name="DomDistiller.DistillabilityRejection" enum="DistillRejection">
  <owner>wychen@chromium.org</owner>
  <summary>
    The reason to reject distillability at PageDistillableAfterParsing time.
  </summary>
</histogram>

<histogram name="DomDistiller.DistillabilityScoreNMF.Negative" units="score">
  <owner>wychen@chromium.org</owner>
  <summary>
    Score of distillability from AdaBoost model, non-mobile-friendly only. The
    score shown here is multiplied by 100.
  </summary>
</histogram>

<histogram name="DomDistiller.DistillabilityScoreNMF.Positive" units="score">
  <owner>wychen@chromium.org</owner>
  <summary>
    Score of distillability from AdaBoost model, non-mobile-friendly only. The
    score shown here is multiplied by 100.
  </summary>
</histogram>

<histogram name="DomDistiller.DistillationQuality" enum="BooleanSuccess">
  <owner>nyquist@chromium.org</owner>
  <summary>
    Whether the perceived quality of the distillation of a web page was good.
  </summary>
</histogram>

<histogram name="DomDistiller.InfoBarUsage" enum="BooleanUsage">
  <owner>mdjones@chromium.org</owner>
  <summary>
    &quot;Used&quot; is recorded when the user clicks the infobar to enter
    Reader Mode. &quot;Not Used&quot; is recorded when the user clicks the close
    button. If there's no user action, nothing is recorded.
  </summary>
</histogram>

<histogram name="DomDistiller.LongArticleScoreNMF.Negative" units="score">
  <owner>wychen@chromium.org</owner>
  <summary>
    Score of long article from AdaBoost model, distillable and
    non-mobile-friendly only. The score shown here is multiplied by 100.
  </summary>
</histogram>

<histogram name="DomDistiller.LongArticleScoreNMF.Positive" units="score">
  <owner>wychen@chromium.org</owner>
  <summary>
    Score of long article from AdaBoost model, distillable and
    non-mobile-friendly only. The score shown here is multiplied by 100.
  </summary>
</histogram>

<histogram name="DomDistiller.PageDistillable" enum="DistillableType">
  <obsolete>
    PageDistillableAfterLoading and PageDistillableAfterParsing provide more
    details since 02/2016.
  </obsolete>
  <owner>cjhopman@chromium.org</owner>
  <summary>
    Records the &quot;Distillable Type&quot; (not distillable, mobile-friendly
    distillable, non-mobile-friendly distillable, etc) for each analyzed page.
  </summary>
</histogram>

<histogram name="DomDistiller.PageDistillableAfterLoading"
    enum="DistillableType2">
  <owner>wychen@chromium.org</owner>
  <summary>
    Records the &quot;Distillable Type&quot; (mobile-friendly not distillable,
    mobile-friendly distillable, non-mobile-friendly not distillable,
    non-mobile-friendly distillable) for each analyzed page after loading.
  </summary>
</histogram>

<histogram name="DomDistiller.PageDistillableAfterParsing"
    enum="DistillableType2">
  <owner>wychen@chromium.org</owner>
  <summary>
    Records the &quot;Distillable Type&quot; (mobile-friendly not distillable,
    mobile-friendly distillable, non-mobile-friendly not distillable,
    non-mobile-friendly distillable) for each analyzed page after parsing.
  </summary>
</histogram>

<histogram name="DomDistiller.PageDistilledType" enum="DistillableType">
  <obsolete>
    Not collected anymore.
  </obsolete>
  <owner>cjhopman@chromium.org</owner>
  <summary>
    Records the &quot;Distillable Type&quot; (not distillable, mobile-friendly
    distillable, non-mobile-friendly distillable, etc) for each distilled page.
  </summary>
</histogram>

<histogram name="DomDistiller.PageHasDistilledData"
    enum="BooleanHasDistilledData">
  <owner>kuan@chromium.org</owner>
  <summary>Records whether a page has distilled data.</summary>
</histogram>

<histogram name="DomDistiller.ReaderShownForPageLoad" enum="Boolean">
  <owner>mdjones@chromium.org</owner>
  <summary>
    Records if the panel became visible at any point after a page was navigated.
  </summary>
</histogram>

<histogram name="DomDistiller.Statistics.FirstPageWordCount" units="words">
  <owner>mdjones@chromium.org</owner>
  <summary>
    Records the number of words in a distilled page. This only records the first
    page of a multi-page article.
  </summary>
</histogram>

<histogram name="DomDistiller.Statistics.WordCount" units="words">
  <owner>nyquist@chromium.org</owner>
  <summary>
    Records the number of words in a distilled page. For articles with multiple
    pages, each page is counted separately.
  </summary>
</histogram>

<histogram name="DomDistiller.Time.ArticleProcessing" units="ms">
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Time spent in DomDistiller's identification of text content.
  </summary>
</histogram>

<histogram name="DomDistiller.Time.DistillationTotal" units="ms">
  <owner>yfriedman@chromium.org</owner>
  <summary>Complete time spent in DomDistiller's processing of a page.</summary>
</histogram>

<histogram name="DomDistiller.Time.DistillPage" units="ms">
  <owner>wychen@chromium.org</owner>
  <summary>
    Time spent in DistillPageImpl(), mostly ExecuteJavaScript(), including
    compilation and execution.
  </summary>
</histogram>

<histogram name="DomDistiller.Time.DocumentConstruction" units="ms">
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Time spent in creating DomDistiller's internal representation of the HTML
    document.
  </summary>
</histogram>

<histogram name="DomDistiller.Time.Formatting" units="ms">
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Time spent in DomDistiller's final processing of article content/formatting.
  </summary>
</histogram>

<histogram name="DomDistiller.Time.MarkupParsing" units="ms">
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Time spent in DomDistiller's processing of article metadata.
  </summary>
</histogram>

<histogram name="DomDistiller.Time.RunJavaScript" units="ms">
  <owner>wychen@chromium.org</owner>
  <summary>
    Time spent in ExecuteJavaScript() in DomDistiller. It includes JavaScript
    code transmission through IPC, parsing, compilation, execution, and
    returning the JSON back through IPC.
  </summary>
</histogram>

<histogram name="DomDistiller.Time.SwipeToPaint" units="ms">
  <obsolete>
    UI rewrite to be an InfoBar makes this metric irrelevant as of 05/2017.
  </obsolete>
  <owner>wychen@chromium.org</owner>
  <summary>
    Records the time from a swipe-up gesture on ReaderModePanel to the first
    paint of the empty template.
  </summary>
</histogram>

<histogram name="DomDistiller.Time.ViewerLoading" units="ms">
  <owner>wychen@chromium.org</owner>
  <summary>
    Records the time from the Reader Mode panel opening to the viewer loaded.
  </summary>
</histogram>

<histogram name="DomDistiller.Time.ViewingReaderModePage" units="ms">
  <owner>mdjones@chromium.org</owner>
  <summary>
    Records the amount of time a user spent on a Reader Mode Page.
  </summary>
</histogram>

<histogram name="DomDistiller.Time.ViewingReaderModePanel" units="ms">
  <obsolete>
    UI rewrite to be an InfoBar makes this metric irrelevant as of 05/2017.
  </obsolete>
  <owner>mdjones@chromium.org</owner>
  <summary>
    Records the amount of time between the Reader Mode panel opening and it
    closing or returning to the peeking state.
  </summary>
</histogram>

<histogram name="DOMStorage.clear" units="ms">
  <obsolete>
    Deprecated 2012.
  </obsolete>
  <owner>michaeln@chromium.org</owner>
  <summary>
    Duration to execute localStorage.clear() or sessionStorage.clear().
  </summary>
</histogram>

<histogram name="DOMStorage.getItem" units="ms">
  <obsolete>
    Deprecated 2012.
  </obsolete>
  <owner>michaeln@chromium.org</owner>
  <summary>
    Duration to execute localStorage.getItem() or sessionStorage.getItem().
  </summary>
</histogram>

<histogram name="DOMStorage.key" units="ms">
  <obsolete>
    Deprecated 2012.
  </obsolete>
  <owner>michaeln@chromium.org</owner>
  <summary>
    Duration to execute localStorage.key() or sessionStorage.key().
  </summary>
</histogram>

<histogram name="DOMStorage.length" units="ms">
  <obsolete>
    Deprecated 2012.
  </obsolete>
  <owner>michaeln@chromium.org</owner>
  <summary>
    Duration to execute localStorage.length() or sessionStorage.length().
  </summary>
</histogram>

<histogram name="DOMStorage.removeItem" units="ms">
  <obsolete>
    Deprecated 2012.
  </obsolete>
  <owner>michaeln@chromium.org</owner>
  <summary>
    Duration to execute localStorage.removeItem() or
    sessionStorage.removeItem().
  </summary>
</histogram>

<histogram name="DOMStorage.setItem" units="ms">
  <obsolete>
    Deprecated 2012.
  </obsolete>
  <owner>michaeln@chromium.org</owner>
  <summary>
    Duration to execute localStorage.setItem() or sessionStorage.setItem().
  </summary>
</histogram>

<histogram name="Doodle.ConfigDownloadOutcome"
    enum="DoodleConfigDownloadOutcome">
  <obsolete>
    Removed from code 2017-08.
  </obsolete>
  <owner>treib@chromium.org</owner>
  <summary>Outcome of downloading the Doodle config.</summary>
</histogram>

<histogram name="Doodle.ConfigDownloadTime" units="ms">
  <obsolete>
    Removed from code 2017-08.
  </obsolete>
  <owner>treib@chromium.org</owner>
  <summary>
    The time it took to download the Doodle config. Recorded only if the
    download succeeded and the received data was parsed without errors.
  </summary>
</histogram>

<histogram name="Download.AcceptRangesBytes.KBytes" units="KB">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>dtrainor@chromium.org</owner>
  <summary>The length of downloads for serves that accept byte ranges.</summary>
</histogram>

<histogram name="Download.AcceptRangesMissingOrInvalid.KBytes" units="KB">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>dtrainor@chromium.org</owner>
  <summary>
    The length of downloads for serves that do not specify whether the accept
    ranges, or have invalid ranges specified.
  </summary>
</histogram>

<histogram name="Download.AcceptRangesNone.KBytes" units="KB">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>dtrainor@chromium.org</owner>
  <summary>
    The length of downloads for serves that do not accept ranges.
  </summary>
</histogram>

<histogram name="Download.ActualBandwidth" units="Bytes/second">
  <obsolete>
    Deprecated January 2017.
  </obsolete>
  <owner>dtrainor@chromium.org</owner>
  <summary>The actual bandwidth (per read) of a download.</summary>
</histogram>

<histogram name="Download.ApiFunctions" enum="DownloadFunctions">
  <owner>dtrainor@chromium.org</owner>
  <summary>Downloads extension API function calls.</summary>
</histogram>

<histogram name="Download.AttachmentServices.Duration" units="ms">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Time taken to invoke IAttachmentExecute::Save() excluding the time taken to
    instantiate CLSID_AttachmentServices.
  </summary>
</histogram>

<histogram name="Download.AttachmentServices.Result"
    enum="AttachmentServicesResult">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Result of invoking (or attempting to invoke) Windows Attachment Services API
    via IAttachmentExecute::Save().
  </summary>
</histogram>

<histogram name="Download.BandwidthDiskBytesPerSecond">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>
    Disk bandwidth (defined as total bytes divided by the amount of time blocked
    on write or close on the file descriptor) seen for a single download.
  </summary>
</histogram>

<histogram name="Download.BandwidthOverallBytesPerSecond">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Overall bandwidth seen for the download. Note that this is measured at the
    point at which the file is written, and so will not take into account the
    time costs of activities that occur after file write is completed (e.g. safe
    browsing scanning).
  </summary>
</histogram>

<histogram name="Download.BandwidthUsed" units="%">
  <obsolete>
    Deprecated January 2017.
  </obsolete>
  <owner>dtrainor@chromium.org</owner>
  <summary>
    The percentage of the potential bandwidth actually used (per read) of a
    download. An entry of 100% implies that Chrome was the limiting factor in
    download speed.
  </summary>
</histogram>

<histogram name="Download.BandwidthWithoutParallelStreamsBytesPerSecond"
    units="bytes/second">
  <obsolete>
    Deprecated April 2017.
  </obsolete>
  <owner>qinmin@chromium.org</owner>
  <summary>
    For parallel downloading, average disk bandwidth seen when only 1 stream is
    actively downloading the content. Other streams may have already finished,
    or have not been created yet. If a download was ever paused, this is not
    recorded.
  </summary>
</histogram>

<histogram name="Download.BandwidthWithParallelStreamsBytesPerSecond"
    units="bytes/second">
  <obsolete>
    Deprecated April 2017.
  </obsolete>
  <owner>qinmin@chromium.org</owner>
  <summary>
    For parallel downloading, average disk bandwidth seen when parallel streams
    are downloading the content. If a download was ever paused, this is not
    recorded.
  </summary>
</histogram>

<histogram name="Download.ClearAllSize">
  <obsolete>
    Deprecated 1/2017.
  </obsolete>
  <owner>dtrainor@chromium.org</owner>
  <summary>
    The number of downloads in history at the time it is cleared.
  </summary>
</histogram>

<histogram name="Download.ContentDisposition" enum="DownloadContentDisposition">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Content-Disposition header features. The presence of a Content-Disposition
    header, use of 'filename' and 'filename*' parameters, and string encoding
    schemes are counted for each unthrottled download. The total number
    downloads is Download.Counts[5] (Initiated and Unthrottled).
  </summary>
</histogram>

<histogram name="Download.ContentLength.Parallelizable" units="KB">
  <owner>qinmin@chromium.org</owner>
  <summary>
    File size calculated from the content-length header of successfully
    completed Parallelizable downloads.
  </summary>
</histogram>

<histogram name="Download.ContentType" enum="DownloadContentType">
  <obsolete>
    Deprecated 03/2017, and replaced by Download.Start.ContentType.
  </obsolete>
  <owner>dtrainor@chromium.org</owner>
  <summary>Content types that are downloaded.</summary>
</histogram>

<histogram name="Download.ContentType.Audio" enum="DownloadAudioType">
  <owner>xingliu@chromium.org</owner>
  <summary>Types of audio files that are downloaded.</summary>
</histogram>

<histogram name="Download.ContentType.Image" enum="DownloadImageType">
  <owner>dtrainor@chromium.org</owner>
  <summary>Types of images that are downloaded.</summary>
</histogram>

<histogram name="Download.ContentType.Text" enum="DownloadTextType">
  <owner>xingliu@chromium.org</owner>
  <summary>Types of text files that are downloaded.</summary>
</histogram>

<histogram name="Download.ContentType.Video" enum="DownloadVideoType">
  <owner>xingliu@chromium.org</owner>
  <summary>Types of video files that are downloaded.</summary>
</histogram>

<histogram base="true" name="Download.Counts" enum="DownloadCountType">
<!-- Name completed by histogram_suffixes name="DownloadSource" -->

  <owner>xingliu@chromium.org</owner>
  <summary>
    Various individual counts in the download system; see DownloadCountType for
    details.
  </summary>
</histogram>

<histogram name="Download.CountsChrome" enum="ChromeDownloadCountType">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Various individual counts in the download system, for example the number of
    downloads blocked by throttling from the DownloadRequestLimiter.
  </summary>
</histogram>

<histogram name="Download.DangerousDownloadValidated"
    enum="DownloadItem.DangerType">
  <owner>dtrainor@chromium.org</owner>
  <owner>felt@chromium.org</owner>
  <summary>
    User chose to save a download which was marked dangerous. Grouped by the
    type of danger.
  </summary>
</histogram>

<histogram name="Download.DangerousFile.DangerousDownloadValidated"
    enum="DownloadItem.DangerousFileType">
  <owner>dtrainor@chromium.org</owner>
  <owner>felt@chromium.org</owner>
  <summary>
    User chose to save a download which was marked DANGEROUS_FILE. Grouped by
    the type of file.
  </summary>
</histogram>

<histogram name="Download.DangerousFile.Discard"
    enum="DownloadItem.DangerousFileType">
  <owner>dtrainor@chromium.org</owner>
  <owner>felt@chromium.org</owner>
  <summary>
    A download which was marked DANGEROUS_FILE was discarded without the user
    directly choosing, because the browser was closed. Grouped by the file
    extension.
  </summary>
</histogram>

<histogram name="Download.DangerousFile.Reason" enum="DangerousFile.Reason">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Indicates why a download is marked as DANGEROUS_FILE. Grouped by reason,
    such as Safe Browsing (SB) service is not available, and SB returns UNKOWN
    or SAFE verdict. The sum of all reasons should roughly equal to the
    DANGEROUS_FILE bucket count in Download.DownloadWarningShown.
  </summary>
</histogram>

<histogram name="Download.DangerousFile.UserDiscard"
    enum="DownloadItem.DangerousFileType">
  <owner>dtrainor@chromium.org</owner>
  <owner>felt@chromium.org</owner>
  <summary>
    User chose to discard a download which was marked DANGEROUS_FILE. Grouped by
    the file extension.
  </summary>
</histogram>

<histogram name="Download.Database.CreateDownloadDuration" units="ms">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>Time taken to create a single download in the history DB.</summary>
</histogram>

<histogram name="Download.Database.IsAvailable" enum="BooleanAvailable">
  <owner>xingliu@chromium.org</owner>
  <summary>
    Records whether the download database is available when database startup
    completes, before starting any pending downloads. If the database is
    available, it will provide the next download id. Or no download history will
    be persisted.
  </summary>
</histogram>

<histogram name="Download.Database.QueryDownloadDuration" units="ms">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>Time taken to query all downloads from history DB.</summary>
</histogram>

<histogram name="Download.Database.UpdateDownloadDuration" units="ms">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>Time taken to update a single download in the history DB.</summary>
</histogram>

<histogram name="Download.DatabaseDownloadExistsForDownloadSlice"
    units="Boolean">
  <owner>qinmin@chromium.org</owner>
  <summary>
    Whether a download can be found for a download slice in the DB. This
    histogram is recorded for each download slice row every time the database is
    loaded.
  </summary>
</histogram>

<histogram name="Download.DatabaseRecordDropped"
    enum="DownloadDatabaseRecordDroppedType">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>Reason for dropping a record read in from the DB.</summary>
</histogram>

<histogram name="Download.DatabaseRemoveDownloadsCount">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>Number of downloads removed from the history at once.</summary>
</histogram>

<histogram name="Download.DatabaseRemoveDownloadsTime" units="microseconds">
  <obsolete>
    Deprecated 2/2017
  </obsolete>
  <owner>dtrainor@chromium.org</owner>
  <summary>
    How long it took to delete a batch of downloads from history.
  </summary>
</histogram>

<histogram name="Download.DatabaseRemoveDownloadsTimePerRecord"
    units="nanoseconds/record">
  <obsolete>
    Deprecated 2/2017
  </obsolete>
  <owner>dtrainor@chromium.org</owner>
  <summary>
    How long it took to delete some downloads from history, per download.
  </summary>
</histogram>

<histogram name="Download.DeleteRetentionTime.Audio" units="hours"
    expires_after="2020-01-30">
  <owner>xingliu@chromium.org</owner>
  <summary>
    How long users keep downloaded audio files on disk. Recorded when the
    downloaded file is deleted.
  </summary>
</histogram>

<histogram name="Download.DeleteRetentionTime.Video" units="hours"
    expires_after="2020-01-30">
  <owner>xingliu@chromium.org</owner>
  <summary>
    How long users keep downloaded video files on disk. Recorded when the
    downloaded file is deleted.
  </summary>
</histogram>

<histogram name="Download.Discard" enum="DownloadItem.DangerType">
  <owner>dtrainor@chromium.org</owner>
  <owner>felt@chromium.org</owner>
  <summary>
    A download which was marked dangerous was discarded without the user
    directly choosing, because the browser was closed. Grouped by the type of
    danger.
  </summary>
</histogram>

<histogram name="Download.DiskBandwidthUsedPercentage" units="%">
  <obsolete>
    Deprecated 1/2017.
  </obsolete>
  <owner>dtrainor@chromium.org</owner>
  <summary>
    The percentage of the available disk bandwidth that was used by the
    download. 100% indicates that the disk bandwidth was the limiting factor for
    the download.
  </summary>
</histogram>

<histogram name="Download.DOMEvent" enum="DownloadDOMEvent">
  <owner>dtrainor@chromium.org</owner>
  <summary>User actions in chrome://downloads</summary>
</histogram>

<histogram name="Download.DownloadDangerPrompt"
    enum="SBClientDownloadExtensions">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records when user is shown the download danger prompt while attempting to
    recover a blocked download from chrome://downloads, grouped by the type of
    file.
  </summary>
</histogram>

<histogram base="true" name="Download.DownloadSize" units="KB">
<!-- Name completed by histogram_suffixes name="Download.Parallelizable" -->

  <owner>dtrainor@chromium.org</owner>
  <summary>The size of successfully completed downloads.</summary>
</histogram>

<histogram name="Download.DownloadWarningShown" enum="DownloadItem.DangerType">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    A download warning was shown in the shelf. Note that some downloads may not
    be shown on the shelf, e.g., if chrome://downloads is already open when the
    download completes, or if an extension is using the downloads API. Grouped
    by the type of danger.
  </summary>
</histogram>

<histogram name="Download.DuplicateInProgressDownloadIdCount"
    units="duplicates" expires_after="2019-07-30">
  <owner>qinmin@chromium.org</owner>
  <owner>dtrainor@chromium.org</owner>
  <summary>
    The total number of download IDs that are duplicate in the in-progress
    downloads DB, capped at 10.
  </summary>
</histogram>

<histogram name="Download.EstimatedTimeSavedWithParallelDownload" units="ms">
  <owner>qinmin@chromium.org</owner>
  <summary>
    Estimated time saved on a download when parallel downloading is enabled. To
    estimate this, the time spent on a download is classified into two
    categories. The fist category has only one stream active, while other
    streams are either finished, not started, or failed. And the second category
    has multiple streams active. By calculating the average bandwidth during the
    first category, a rough estimation on the time it will save is obtained by
    assuming all the bytes downloaded during the second category are downloaded
    by only one stream. If a download is ever paused, this is not recorded.
  </summary>
</histogram>

<histogram name="Download.EstimatedTimeWastedWithParallelDownload" units="ms">
  <owner>qinmin@chromium.org</owner>
  <summary>
    Similar to Download.EstimatedTimeSavedWithParallelDownload, but this
    estimates the time wasted on a download when parallel downloading is
    enabled.
  </summary>
</histogram>

<histogram name="Download.FeedbackDialogEnabled" enum="BooleanEnabled">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Whether the user enables dangerous download feedback reporting after viewing
    the opt-in dialog.
  </summary>
</histogram>

<histogram name="Download.FilePickerResult" enum="DownloadFilePickerResult">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>
    How the user interacts with the file chooser when doing a &quot;Save
    As&quot; for non-full-page saves.
  </summary>
</histogram>

<histogram name="Download.FileThreadBlockedTime">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>
    The amount of time in milliseconds the file thread blocks for each set of
    buffers drained from the incoming pipe (ms).
  </summary>
</histogram>

<histogram name="Download.FileThreadReceiveBuffers">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>
    The number of buffers in a call to DownloadManager::UpdateDownload.
  </summary>
</histogram>

<histogram name="Download.FirstOpenTime" units="ms">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>
    The time between a download completing and the file being opened for the
    first time.
  </summary>
</histogram>

<histogram name="Download.FrameGesture" enum="DownloadFrameGesture">
  <obsolete>
    Deprecated 11/2018.
  </obsolete>
  <owner>yaoxia@chromium.org</owner>
  <summary>
    The type of frame in which a download occurs and whether the download
    involves a transient user gesture. It is only recorded for downloads
    originated from navigations or from HTML anchor download attributes.
  </summary>
</histogram>

<histogram name="Download.HistorySize">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    The number of items in the History database, at the time a new download is
    recorded.
  </summary>
</histogram>

<histogram name="Download.HistorySize2">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    The number of items in the History database, at the time a new download is
    recorded. Higher maximum, more buckets than Download.HistorySize.
  </summary>
</histogram>

<histogram name="Download.HttpResponseCode" enum="HttpResponseCode">
  <owner>xingliu@chromium.org</owner>
  <summary>The count of HTTP Response codes for download requests.</summary>
</histogram>

<histogram name="Download.InProgressDB.Counts"
    enum="DownloadInProgressDBCountType">
  <owner>qinmin@chromium.org</owner>
  <summary>
    Various individual counts related to in-progress download DB.
  </summary>
</histogram>

<histogram name="Download.InterruptedAtEndError" enum="NetErrorCodes">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Positive net error code that caused a download to be interrupted at the
    *end* of a download (when the number of bytes is known). This is only
    triggered when the total content size is known before any bytes are
    transferred, such as when a Content-Length header is supplied.
  </summary>
</histogram>

<histogram name="Download.InterruptedAtEndReason" enum="InterruptReason">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    The reason that a download was interrupted at the *end* of a download (when
    the number of bytes is known). This is only triggered when the total content
    size is known before any bytes are transferred, such as when a
    Content-Length header is supplied.
  </summary>
</histogram>

<histogram name="Download.InterruptedError" enum="NetErrorCodes">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Positive net error code that caused a download to be interrupted.
  </summary>
</histogram>

<histogram name="Download.InterruptedOverrunBytes">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    The total number of bytes minus the received number of bytes at the time
    that a download is interrupted. This is only triggered when the total
    content size is known before any bytes are transferred, such as when a
    Content-Length header is supplied.
  </summary>
</histogram>

<histogram base="true" name="Download.InterruptedReason" enum="InterruptReason">
<!-- Name completed by histogram_suffixes name="DownloadSource" -->

  <owner>xingliu@chromium.org</owner>
  <summary>The reason that a download was interrupted.</summary>
</histogram>

<histogram name="Download.InterruptedReceivedSizeK" units="KB">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    The number of kilobytes received for a download at the time it is
    interrupted.
  </summary>
</histogram>

<histogram name="Download.InterruptedTotalSizeK" units="KB">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    The reported total size in kilobytes for a download at the time it is
    interrupted. This is essentially the size reported by the Content-Length
    header. If no size is specified up-front, it is not recorded in the
    histogram. For example, a download transferred with chunked encoding will
    not be recorded.
  </summary>
</histogram>

<histogram name="Download.InterruptedUnderrunBytes">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    The excessive number of bytes which have been received at the time that a
    download is interrupted. This is only triggered when the total content size
    is known before any bytes are transferred, such as when a Content-Length
    header is supplied.
  </summary>
</histogram>

<histogram name="Download.InterruptedUnknownSize"
    enum="DownloadInterruptedUnknownSizeType">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>
    True if the size of an interrupted download is unknown, false if it is
    known.
  </summary>
</histogram>

<histogram name="Download.IOSDownloadARModelState.USDZ"
    enum="DownloadARModelState">
  <owner>mahmadi@chromium.org</owner>
  <summary>
    Logged at different stages of downloading a USDZ MIME type AR model on iOS.
  </summary>
</histogram>

<histogram name="Download.IOSDownloadedFileAction" enum="DownloadedFileAction"
    expires_after="2020-01-15">
  <owner>eugenebut@chromium.org</owner>
  <summary>
    The action that a user takes on a file after it has been successfully
    downloaded on iOS.
  </summary>
</histogram>

<histogram name="Download.IOSDownloadedFileNetError" enum="NetErrorCodes"
    expires_after="2020-01-15">
  <owner>eugenebut@chromium.org</owner>
  <owner>mrefaat@chromium.org</owner>
  <summary>
    Positive net error codes that happens in the case of download content fetch
    failure.
  </summary>
</histogram>

<histogram name="Download.IOSDownloadedFileStatusCode"
    expires_after="2020-01-15">
  <owner>eugenebut@chromium.org</owner>
  <owner>stkhapugin@chromium.org</owner>
  <summary>
    HTTP status code returned when file download completes on iOS.
  </summary>
</histogram>

<histogram name="Download.IOSDownloadFileInBackground"
    enum="DownloadFileInBackground" expires_after="2020-01-15">
  <owner>eugenebut@chromium.org</owner>
  <summary>
    Logged when the download is completed (successfully or not) or in-progress
    download was cancelled because of the app termination. This histogram
    includes information whether the download was successful and whether or not
    the download task was running while the app was active.
  </summary>
</histogram>

<histogram name="Download.IOSDownloadFileResult" enum="DownloadFileResult"
    expires_after="2020-01-15">
  <owner>eugenebut@chromium.org</owner>
  <summary>Result when a user attempts to download a file on iOS.</summary>
</histogram>

<histogram name="Download.IOSDownloadInstallDrivePromoShown" enum="Boolean"
    expires_after="2020-01-15">
  <owner>eugenebut@chromium.org</owner>
  <owner>pkl@chromium.org</owner>
  <summary>
    Logged when the download was successfully completed. Bool value indicates
    whether or not Install Google Drive promo was shown to the user.
  </summary>
</histogram>

<histogram name="Download.IOSDownloadMimeType" enum="DownloadMimeTypeResult">
  <owner>eugenebut@chromium.org</owner>
  <summary>
    MIME type of a download response. Logged when the download UI was offered by
    the browser to the user.
  </summary>
</histogram>

<histogram name="Download.IOSDownloadPassKitResult"
    enum="DownloadPassKitResult" expires_after="2020-01-15">
  <owner>eugenebut@chromium.org</owner>
  <summary>
    Result when a user attempts to download a PassKit file on iOS.
  </summary>
</histogram>

<histogram name="Download.IOSDownloadReplaced" enum="BooleanReplaced">
  <owner>eugenebut@chromium.org</owner>
  <summary>
    The user discarded in-progress download and replaced with the new one. Only
    recorded after the user interacts with a dialog offering the choice between
    replacing an in-progress download versus downloading separately to a new
    filename.
  </summary>
</histogram>

<histogram name="Download.IOSPresentAddPassesDialogResult"
    enum="PresentAddPassesDialogResult">
  <owner>eugenebut@chromium.org</owner>
  <summary>Result of an attempt to present Add Passes dialog on iOS.</summary>
</histogram>

<histogram name="Download.IOSPresentQLPreviewControllerResult"
    enum="PresentQLPreviewController">
  <owner>mahmadi@chromium.org</owner>
  <summary>
    Result of an attempt to present a USDZ MIME type AR model on iOS.
  </summary>
</histogram>

<histogram name="Download.MainFrame.HasGesture" enum="Boolean">
  <obsolete>
    Deprecated as of 01/2019.
  </obsolete>
  <owner>yaoxia@chromium.org</owner>
  <summary>
    Whether the main frame download involves a transient user gesture. It is
    only recorded for downloads originated from navigations or from HTML anchor
    download attributes.
  </summary>
</histogram>

<histogram name="Download.MainFrame.SandboxGesture"
    enum="MainFrameDownloadSandboxGesture">
  <owner>yaoxia@chromium.org</owner>
  <summary>
    For a download that occurs in top frame, record whether the frame is
    sandboxed and whether the download involves a transient user gesture. It is
    only recorded for downloads originated from navigations or from HTML anchor
    download attributes.
  </summary>
</histogram>

<histogram name="Download.MaliciousDownloadClassified"
    enum="DownloadItem.DangerType">
  <owner>dtrainor@chromium.org</owner>
  <owner>felt@chromium.org</owner>
  <summary>
    A download has been marked as malicious. Grouped by the type of danger. Each
    download can only be recorded once; it will be labeled with the first type
    of danger spotted.
  </summary>
</histogram>

<histogram name="Download.MapErrorNetworkFailed" enum="NetErrorCodes">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Network error that produced a DOWNLOAD_INTERRUPT_REASON_NETWORK_FAILED
    result in DownloadResourceHandler::OnResponseCompleted().
  </summary>
</histogram>

<histogram name="Download.MapWinShErrorAccessDenied"
    enum="SpecialShFileOperationCodes">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>
    Windows error that produced a DOWNLOAD_INTERRUPT_REASON_ACCESS_DENIED result
    in MapShFileOperationCodes().
  </summary>
</histogram>

<histogram name="Download.MapWinShErrorFileFailed"
    enum="SpecialShFileOperationCodes">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>
    Windows error that produced a DOWNLOAD_INTERRUPT_REASON_FILE_FAILED result
    in MapShFileOperationCodes().
  </summary>
</histogram>

<histogram name="Download.MapWinShErrorTransientError"
    enum="SpecialShFileOperationCodes">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>
    Windows error that produced a DOWNLOAD_INTERRUPT_REASON_FILE_TRANSIENT_ERROR
    result in MapShFileOperationCodes().
  </summary>
</histogram>

<histogram name="Download.MediaMetadata.Event" enum="MediaMetadataEvent"
    expires_after="2019-07-30">
  <owner>dtrainor@chromium.org</owner>
  <owner>qinmin@chromium.org</owner>
  <owner>xingliu@chromium.org</owner>
  <summary>Records events for local media metadata parsing.</summary>
</histogram>

<histogram name="Download.MediaParser.CompletionTime" units="ms"
    expires_after="2019-07-30">
  <owner>xingliu@chromium.org</owner>
  <summary>
    Records the duration to successfully complete the media file parsing.
  </summary>
</histogram>

<histogram name="Download.MediaParser.Event" enum="MediaParserEvent"
    expires_after="2019-07-30">
  <owner>dtrainor@chromium.org</owner>
  <owner>qinmin@chromium.org</owner>
  <owner>xingliu@chromium.org</owner>
  <summary>
    Records events when using media parser to analyze local media files.
  </summary>
</histogram>

<histogram name="Download.OnChanged">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>
    Percentage of DownloadItem::Observer::OnDownloadUpdated events that
    signified a change in the extension API representation of the download.
  </summary>
</histogram>

<histogram name="Download.OpenMethod" enum="DownloadOpenMethod">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Invocation count for methods of opening a download. For some file types,
    Chrome defaults to opening the file in the browser instead of invoking the
    system handler. The user has the option of overriding this behavior.
  </summary>
</histogram>

<histogram name="Download.OpensOutstanding">
  <owner>dtrainor@chromium.org</owner>
  <summary>The number of unopened downloads, when one is opened.</summary>
</histogram>

<histogram name="Download.OpenTime" units="ms">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    The time between a download completing and the file being opened.
  </summary>
</histogram>

<histogram name="Download.OriginStateOnFullResumption"
    enum="DownloadOriginStateOnResumption">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>
    Changes observed when a response is received for a full download resumption
    request.
  </summary>
</histogram>

<histogram name="Download.OriginStateOnPartialResumption"
    enum="DownloadOriginStateOnResumption">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>
    Changes observed when a response is received for a partial (byte-range)
    download resumption request.
  </summary>
</histogram>

<histogram name="Download.PageTransition" enum="CorePageTransition">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    The core page transition type for navigation initiated downloads. Not
    recorded for programmatic downloads. This metric is recorded when the
    response headers were received and processed for a download. The number of
    samples here should correspond to Download.Counts[8] (Started) -
    (programmatic downloads that don't have a page transition type).
  </summary>
</histogram>

<histogram name="Download.ParallelDownload.BandwidthRatioPercentage" units="%">
  <obsolete>
    Deprecated August 2018.
  </obsolete>
  <owner>xingliu@chromium.org</owner>
  <summary>
    Records the ratio of parallel streams bandwidth to single stream bandwidth
    in parallel download.
  </summary>
</histogram>

<histogram name="Download.ParallelDownload.CreationEvent"
    enum="ParallelDownloadCreationEvent">
  <owner>xingliu@chromium.org</owner>
  <summary>
    When parallel downloading feature is enabled, a download may be created as
    parallel download or fall back to normal download based on various factors.
    Records the total number of parallel and non-parallel downloads created when
    parallel downloading feature is enabled. Also records the reason why a
    parallel download falls back to normal download. The reasons are not
    mutually exclusive.
  </summary>
</histogram>

<histogram name="Download.ParallelDownload.RemainingTimeWhenBuildingRequests"
    units="seconds">
  <owner>qinmin@chromium.org</owner>
  <summary>
    Records the remaining download time when building parallel requests.
  </summary>
</histogram>

<histogram name="Download.ParallelDownload.TotalTimeRatioPercentage" units="%">
  <obsolete>
    Deprecated August 2018.
  </obsolete>
  <owner>xingliu@chromium.org</owner>
  <summary>
    Records the ratio of the actual total time of the download to the total time
    without parallel streams. The total time without parallel streams is
    calculated as the size of the file divided by the single stream bandwidth.
  </summary>
</histogram>

<histogram name="Download.ParallelDownloadAddStreamSuccess"
    enum="BooleanSuccess" expires_after="2020-01-30">
  <owner>xingliu@chromium.org</owner>
  <summary>
    Records if the byte stream reader of a subsequent request is successfully
    added to the download sink.
  </summary>
</histogram>

<histogram name="Download.ParallelDownloadRequestCount" units="requests"
    expires_after="2020-01-30">
  <owner>xingliu@chromium.org</owner>
  <summary>
    The total number of requests sent for a parallel download, including the
    initial request.
  </summary>
</histogram>

<histogram name="Download.Parallelizable.DownloadTime" units="ms">
  <owner>xingliu@chromium.org</owner>
  <summary>The download time for a parallelizable download.</summary>
</histogram>

<histogram name="Download.Parallelizable.FileSize" units="KB">
  <owner>xingliu@chromium.org</owner>
  <summary>The download size of a parallelizable download.</summary>
</histogram>

<histogram base="true" name="Download.ParallelizableDownloadBandwidth"
    units="bytes/second">
  <owner>qinmin@chromium.org</owner>
  <summary>
    For parallelizable download, average disk bandwidth seen for different
    settings. If a download was ever paused, this is not recorded.
  </summary>
</histogram>

<histogram base="true" name="Download.PathGenerationEvent"
    enum="DownloadPathGenerationEvent">
<!-- Name completed by histogram_suffixes name="DownloadType" -->

  <owner>xingliu@chromium.org</owner>
  <summary>
    The download path generation behavior which happens before download path
    validation in download target determination process.
  </summary>
</histogram>

<histogram base="true" name="Download.PathValidationResult"
    enum="DownloadPathValidationResult">
<!-- Name completed by histogram_suffixes name="DownloadType" -->

  <owner>xingliu@chromium.org</owner>
  <summary>
    The download path validation result before the final download target is
    determined.
  </summary>
</histogram>

<histogram name="Download.PotentialBandwidth" units="Bytes/second">
  <obsolete>
    Deprecated January 2017.
  </obsolete>
  <owner>dtrainor@chromium.org</owner>
  <summary>
    The maximum bandwidth (per read) that Chrome could have provided for the
    download. If the actual bandwidth equals the potential bandwidth, that means
    that Chrome was the limiting factor for download bandwidth.
  </summary>
</histogram>

<histogram name="Download.ResourceHandlerBlockedPercentage" units="%">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>
    The percentage of the lifetime of the DownloadResourceHandler for which it
    was blocked by downstream flow control. 0% indicates that the network
    bandwidth was the limiting factor for the download.
  </summary>
</histogram>

<histogram name="Download.ResultsRenderedTime" units="ms">
  <owner>dbeam@chromium.org</owner>
  <summary>
    Records the time taken to load the downloads Web UI and render (at least) a
    screen full of items. This is roughly equivalent to 'time to first
    meaningful paint' for the downloads page.
  </summary>
</histogram>

<histogram name="Download.SavePackage" enum="DownloadSavePackageEvent">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Events (e.g. Started, Cancelled, Finished, Write to Completed file, Write to
    Failed file) occuring within the state machine of a SavePackage operation.
  </summary>
</histogram>

<histogram name="Download.Service.Db.Operation.Failure"
    enum="Download.Service.ModelAction">
  <owner>xingliu@chromium.org</owner>
  <summary>Records a failed database operation.</summary>
</histogram>

<histogram name="Download.Service.Db.Operation.Success"
    enum="Download.Service.ModelAction">
  <owner>xingliu@chromium.org</owner>
  <summary>Records a successful database operation.</summary>
</histogram>

<histogram base="true" name="Download.Service.Db.Records" units="records">
<!-- Name completed by histogram_suffixes
     name="Download.Service.EntryState" -->

  <owner>xingliu@chromium.org</owner>
  <summary>
    The total number of database records used by download service, and the
    number of records in each entry state.
  </summary>
</histogram>

<histogram name="Download.Service.Driver.InterruptReason"
    enum="InterruptReason">
  <owner>xingliu@chromium.org</owner>
  <summary>
    The interrupt reason for failed downloads in download service.
  </summary>
</histogram>

<histogram name="Download.Service.Entry.Event"
    enum="Download.Service.EntryEvent">
  <owner>dtrainor@chromium.org</owner>
  <summary>An action the download service took on an active download.</summary>
</histogram>

<histogram name="Download.Service.Entry.ResumptionCount" units="attempts">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Records how many resumptions have taken place at the time of resumption for
    a download in the Download Service. This differs from
    Download.Service.Entry.RetryCount, which records restarts.
  </summary>
</histogram>

<histogram name="Download.Service.Entry.RetryCount" units="attempts">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Records how many attempts have taken place at the time of a retry for a
    download in the Download Service. This differs from
    Download.Service.Entry.ResumptionCount, which records resumptions not
    complete restarts.
  </summary>
</histogram>

<histogram name="Download.Service.Files.Cleanup.Attempts" units="attempts">
  <owner>shaktisahu@chromium.org</owner>
  <summary>
    The number of times download service tried to delete the download file
    before successfully deleting it.
  </summary>
</histogram>

<histogram base="true" name="Download.Service.Files.CleanUp.External"
    units="files">
<!-- Name completed by histogram_suffixes
     name="Download.Service.CleanupReason" -->

  <owner>xingliu@chromium.org</owner>
  <summary>
    The number of files that have been deleted by external application or the
    user, when performing clean up tasks in download service.
  </summary>
</histogram>

<histogram base="true" name="Download.Service.Files.CleanUp.Failure"
    units="attempts">
<!-- Name completed by histogram_suffixes
     name="Download.Service.CleanupReason" -->

  <owner>xingliu@chromium.org</owner>
  <summary>
    The number of failed file deletion attempts, when performing clean up tasks
    in download service.
  </summary>
</histogram>

<histogram base="true" name="Download.Service.Files.CleanUp.Success"
    units="files">
<!-- Name completed by histogram_suffixes
     name="Download.Service.CleanupReason" -->

  <owner>xingliu@chromium.org</owner>
  <summary>
    The number of files successfully deleted, when performing clean up tasks in
    download service.
  </summary>
</histogram>

<histogram name="Download.Service.Files.DirCreationError"
    enum="PlatformFileError">
  <owner>xingliu@chromium.org</owner>
  <summary>
    The error code when failed to create the download directory.
  </summary>
</histogram>

<histogram name="Download.Service.Files.DiskUsed" units="%">
  <owner>xingliu@chromium.org</owner>
  <summary>
    The percentage of disk space used by download service files. Recorded during
    initialization of the file monitor.
  </summary>
</histogram>

<histogram name="Download.Service.Files.FreeDiskSpace" units="%">
  <owner>xingliu@chromium.org</owner>
  <summary>
    The percentage of free disk space to total disk space. Recorded during
    initialization of the file monitor.
  </summary>
</histogram>

<histogram name="Download.Service.Files.LifeTime" units="ms">
  <owner>xingliu@chromium.org</owner>
  <summary>
    The lifestime of a download file, which begins from the download completion
    to the file being deleted by the clean up task.
  </summary>
</histogram>

<histogram name="Download.Service.Files.PathRenamed" enum="BooleanRenamed">
  <owner>xingliu@chromium.org</owner>
  <summary>
    Records if the final file path has been renamed by low level download
    library after the download is successfully completed.
  </summary>
</histogram>

<histogram base="true" name="Download.Service.Finish.FileSize" units="KB">
<!-- Name completed by histogram_suffixes
     name="Download.Service.CompletionType" -->

  <owner>xingliu@chromium.org</owner>
  <summary>
    The file size of completed download, including failed downloads.
  </summary>
</histogram>

<histogram name="Download.Service.Finish.ReportedHash"
    enum="BooleanIncludesHash" expires_after="2019-10-01">
  <owner>dtrainor@chromium.org</owner>
  <owner>xingliu@chromium.org</owner>
  <summary>
    Records if a completed download service entry was sent to a client with a
    hash or not.
  </summary>
</histogram>

<histogram base="true" name="Download.Service.Finish.Time" units="ms">
<!-- Name completed by histogram_suffixes
     name="Download.Service.CompletionType" -->

  <owner>xingliu@chromium.org</owner>
  <summary>The time to complete the download in download service.</summary>
</histogram>

<histogram name="Download.Service.Finish.Type"
    enum="Download.Service.CompletionType">
  <owner>xingliu@chromium.org</owner>
  <summary>The completion type for downloads in download service.</summary>
</histogram>

<histogram name="Download.Service.OnUploadDataReceived.PauseReason"
    enum="Download.Service.PauseReason">
  <owner>shaktisahu@chromium.org</owner>
  <summary>
    The reason for suspending a download right after the upload data is received
    from the client. Every pause will result in two entries in the histogram:
    ANY and a more specific reason.
  </summary>
</histogram>

<histogram name="Download.Service.PauseReason"
    enum="Download.Service.PauseReason">
  <owner>shaktisahu@chromium.org</owner>
  <summary>
    The reason for pausing an in-progress download. Every pause will result in
    two entries in the histogram: ANY and a more specific reason.
  </summary>
</histogram>

<histogram name="Download.Service.Recovery" enum="Download.Service.EntryStates">
  <owner>xingliu@chromium.org</owner>
  <summary>
    The state that the entry transitions to when recovery operation happens.
  </summary>
</histogram>

<histogram name="Download.Service.Request.BatteryRequirement"
    enum="Download.Service.BatteryRequirements">
  <owner>xingliu@chromium.org</owner>
  <summary>The battery requirement of the download request.</summary>
</histogram>

<histogram base="true" name="Download.Service.Request.ClientAction"
    enum="Download.Service.ServiceApiAction">
<!-- Name completed by histogram_suffixes
     name="Download.Service.Client" -->

  <owner>xingliu@chromium.org</owner>
  <summary>Records the API calls on download service.</summary>
</histogram>

<histogram name="Download.Service.Request.NetworkRequirement"
    enum="Download.Service.NetworkRequirements">
  <owner>xingliu@chromium.org</owner>
  <summary>The network requirement of the download request.</summary>
</histogram>

<histogram name="Download.Service.Request.Priority"
    enum="Download.Service.Priority">
  <owner>xingliu@chromium.org</owner>
  <summary>The priority of the download request.</summary>
</histogram>

<histogram base="true" name="Download.Service.Request.StartResponse"
    enum="Download.Service.ShouldDownload">
<!-- Name completed by histogram_suffixes
     name="Download.Service.Client" -->

  <owner>xingliu@chromium.org</owner>
  <summary>The start response of download attempts.</summary>
</histogram>

<histogram base="true" name="Download.Service.Request.StartResult"
    enum="Download.Service.StartResult">
<!-- Name completed by histogram_suffixes
     name="Download.Service.Client" -->

  <owner>xingliu@chromium.org</owner>
  <summary>The start result of download attempts.</summary>
</histogram>

<histogram base="true" name="Download.Service.StartUpStatus"
    enum="Download.Service.StartUpResult">
<!-- Name completed by histogram_suffixes
     name="Download.Service.StartUpStep" -->

  <owner>xingliu@chromium.org</owner>
  <summary>The start up result of the download service.</summary>
</histogram>

<histogram base="true" name="Download.Service.TaskScheduler.Status"
    enum="Download.Service.ScheduledTaskStatus">
<!-- Name completed by histogram_suffixes
     name="Download.Service.TaskType" -->

  <owner>xingliu@chromium.org</owner>
  <summary>
    The platform background tasks used by download service will invoke native
    functions after being scheduled. The tasks may be aborted or canceled. This
    metric records the status of background tasks when native functions are
    invoked.
  </summary>
</histogram>

<histogram name="Download.Service.Upload.EntryNotFound" enum="BooleanHit">
  <owner>shaktisahu@chromium.org</owner>
  <summary>
    Records if the entry has been deleted for some reason while we are waiting
    for the client to respond with the upload data.
  </summary>
</histogram>

<histogram base="true" name="Download.Service.Upload.HasUploadData"
    enum="BooleanUpload">
<!-- Name completed by histogram_suffixes
     name="Download.Service.Client" -->

  <owner>shaktisahu@chromium.org</owner>
  <summary>
    The download service uses a single code path for both downloading and
    uploading data. This metric records whether a given request includes upload
    data. It is recorded upon starting a download or upload, immediately after
    the client indicates whether the request includes upload data.
  </summary>
</histogram>

<histogram name="Download.Shelf.DragEvent" enum="Download.Shelf.DragEvent">
  <owner>sdy@chromium.org</owner>
  <summary>
    Events related to dragging a completed download from the shelf, which
    represents dragging a reference to the downloaded file.
  </summary>
</histogram>

<histogram name="Download.ShelfInProgressSizeOnAutoClose">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>
    The number of download items in progress on the shelf when it closes
    automatically.
  </summary>
</histogram>

<histogram name="Download.ShelfInProgressSizeOnUserClose">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>
    The number of download items in progress on the shelf when the user closes
    it.
  </summary>
</histogram>

<histogram name="Download.ShelfSizeOnAutoClose">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>
    The number of download items on the shelf when it closes automatically.
  </summary>
</histogram>

<histogram name="Download.ShelfSizeOnUserClose">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>
    The number of download items on the shelf when the user closes it.
  </summary>
</histogram>

<histogram name="Download.ShowDangerousDownloadConfirmationPrompt"
    enum="DownloadItem.DangerType">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    User saw the confirm prompt to save a download which was marked dangerous.
    Grouped by the type of danger.
  </summary>
</histogram>

<histogram name="Download.Sources" enum="DownloadSource">
  <obsolete>
    Deprecated 1/2018, integrated into Download.Counts.DOWNLOAD_TRIGGERED_COUNT
  </obsolete>
  <owner>xingliu@chromium.org</owner>
  <summary>
    The initiation source (if initiated within the content layer of chrome) for
    a download.
  </summary>
</histogram>

<histogram name="Download.SourcesChrome" enum="ChromeDownloadSource">
  <owner>xingliu@chromium.org</owner>
  <summary>
    The initiation source (if initiated within the above-content layer of
    chrome) for a download.
  </summary>
</histogram>

<histogram name="Download.Start.ContentType" enum="DownloadContentType">
  <owner>shaktisahu@chromium.org</owner>
  <summary>Content types of the downloads.</summary>
</histogram>

<histogram name="Download.Start.ContentType.InsecureChain"
    enum="DownloadContentType">
  <owner>cthomp@chromium.org</owner>
  <owner>estark@chromium.org</owner>
  <summary>
    The content type of a download, for downloads where the final resolved URL
    or any redirect before the final URL are insecure. To normalize these
    numbers, divide the counts by the counts of Download.Start.ContentType (to
    measure the proportion for each content type downloaded insecurely) or by
    the sum of Download.Start.ContentType (to measure the proportion of a
    particular insecure download content type over all downloads).
  </summary>
</histogram>

<histogram name="Download.Start.ContentType.NormalProfile"
    enum="DownloadContentType">
  <owner>shaktisahu@chromium.org</owner>
  <summary>
    Content types of the downloads that are started in non-incognito profile.
  </summary>
</histogram>

<histogram name="Download.Start.ContentType.SecureChain"
    enum="DownloadContentType">
  <owner>cthomp@chromium.org</owner>
  <owner>estark@chromium.org</owner>
  <summary>
    The content type of a download, for downloads where the final resolved URL
    and all redirects before the final URL are secure. To normalize these
    numbers, divide the counts by the counts of Download.Start.ContentType (to
    measure the proportion for each content type downloaded securely) or by the
    sum of Download.Start.ContentType (to measure the proportion of a particular
    secure download content type over all downloads).
  </summary>
</histogram>

<histogram name="Download.Subframe.SandboxOriginAdGesture"
    enum="SubframeDownloadSandboxOriginAdGesture">
  <owner>yaoxia@chromium.org</owner>
  <summary>
    For a download that occurs in subframe, record whether the frame is
    sandboxed, whether the origin is same to the top frame, whether it's an ad
    subframe, and whether the download involves a transient user gesture. It is
    only recorded for downloads originated from navigations or from HTML anchor
    download attributes.
  </summary>
</histogram>

<histogram name="Download.TargetConnectionSecurity"
    enum="DownloadConnectionSecurity">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The connection security state of a download, indicating whether its final
    resolved url and the redirects before final url are secure.
  </summary>
</histogram>

<histogram name="Download.Time" units="ms">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>Time between the start of a download and its completion.</summary>
</histogram>

<histogram name="Download.TimeToRenameFailureAfterInitialFailure" units="ms">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>
    Time elapsed until a retried download file rename operation failed for the
    last time after the initial rename failed.
  </summary>
</histogram>

<histogram name="Download.TimeToRenameSuccessAfterInitialFailure" units="ms">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>
    Time elapsed until a retried download file rename operation succeeded after
    the initial rename failed.
  </summary>
</histogram>

<histogram name="Download.UserDiscard" enum="DownloadItem.DangerType">
  <owner>dtrainor@chromium.org</owner>
  <owner>felt@chromium.org</owner>
  <summary>
    User chose to discard a download which was marked dangerous. Grouped by the
    type of danger.
  </summary>
</histogram>

<histogram name="Download.VideoThumbnail.Event" enum="VideoThumbnailEvent"
    expires_after="2019-07-30">
  <owner>dtrainor@chromium.org</owner>
  <owner>qinmin@chromium.org</owner>
  <owner>xingliu@chromium.org</owner>
  <summary>Records events for local video thumbnail retrieval.</summary>
</histogram>

<histogram name="Download.WriteLoopCount">
  <obsolete>
    Deprecated 1/2017
  </obsolete>
  <owner>dtrainor@chromium.org</owner>
  <summary>
    The number of iterations for the write loop in BaseFile::AppendDataTofile().
  </summary>
</histogram>

<histogram name="Download.WriteSize" units="Bytes">
  <obsolete>
    Deprecated 1/2017
  </obsolete>
  <owner>dtrainor@chromium.org</owner>
  <summary>The write size for calls to BaseFile::AppendDataTofile().</summary>
</histogram>

<histogram name="DownloadableStrings.InstallTime" units="ms">
  <obsolete>
    Deprecated 2/2018
  </obsolete>
  <owner>digit@chromium.org</owner>
  <summary>
    The time to succesfully download and install the DownloadableStrings
    component on Android.
  </summary>
</histogram>

<histogram name="DownloadableStrings.SimCountryCode"
    enum="DownloadableStrings.MobileCountryCode">
  <obsolete>
    Deprecated 2/2018
  </obsolete>
  <owner>digit@chromium.org</owner>
  <summary>
    The mobile country code (MCC) of the device's SIM card, if available (in the
    [200..999] range), or 0 for &quot;undetermined&quot;. This is collected on
    Chrome startup. For devices with several SIM cards, this only reports the
    code of the SIM card in use during startup.
  </summary>
</histogram>

<histogram name="DownloadableStrings.Status"
    enum="DownloadableStrings.InstallStatus">
  <obsolete>
    Deprecated 2/2018
  </obsolete>
  <owner>digit@chromium.org</owner>
  <summary>
    The status code returned after trying to install and update the
    DownloadableStrings component.
  </summary>
</histogram>

<histogram name="DownloadableStrings.Timeout" units="ms">
  <obsolete>
    Deprecated 2/2018
  </obsolete>
  <owner>digit@chromium.org</owner>
  <summary>
    The timeout reported by the component updater when trying to install the
    DownloadableStrings component fails with a specific error.
  </summary>
</histogram>

<histogram name="Drive.BatchUploadResponseCode" enum="HttpResponseCode">
  <owner>hirono@chromium.org</owner>
  <summary>Respose code of batch upload request.</summary>
</histogram>

<histogram name="Drive.CacheDBOpenStatus" enum="DriveCacheDBOpenStatus">
  <obsolete>
    Deprecated 8/2013.
  </obsolete>
  <owner>joshwoodward@google.com</owner>
  <summary>Status of drive cache metadata database open.</summary>
</histogram>

<histogram name="Drive.DeltaFeedLoadTime" units="ms" expires_after="M75">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Time spent to load the delta change list information from the server.
  </summary>
</histogram>

<histogram name="Drive.DirectoryFeedLoadTime" units="ms" expires_after="M75">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Time spent to load the list of files in a single directory from Google Drive
    server.
  </summary>
</histogram>

<histogram name="Drive.DownloadFromDriveFileSize" units="KB">
  <obsolete>
    This was a temporary histogram for bug http://crbug.com/229650 that has been
    closed.
  </obsolete>
  <owner>mtomasz@chromium.org</owner>
  <summary>
    Sizes of files being downloaded from Drive. Temporary histogram for
    gathering data for http://crbug.com/229650.
  </summary>
</histogram>

<histogram name="Drive.EntireFeedLoadTime" units="microseconds">
  <obsolete>
    Deprecated 12/2013 due to the UMA stat bucket layout change. We'll use
    Drive.FullFeedLoadTime instead.
  </obsolete>
  <owner>joshwoodward@google.com</owner>
  <summary>
    Time spent to load the entire file system information from the server
  </summary>
</histogram>

<histogram name="Drive.EntryKind" enum="DriveEntryKind">
  <obsolete>
    Deprecated 10/2012.
  </obsolete>
  <owner>joshwoodward@google.com</owner>
  <summary>
    Provides breakdown of specific formats for hosted documents. Recorded when
    feed is loaded from the server.
  </summary>
</histogram>

<histogram name="Drive.FileFormat" enum="DriveFileFormat">
  <obsolete>
    Deprecated 10/2012.
  </obsolete>
  <owner>joshwoodward@google.com</owner>
  <summary>
    Provides breakdown of specific file formats for regular files. Recorded when
    feed is loaded from the server.
  </summary>
</histogram>

<histogram name="Drive.FilesListRequestRunner.ApiErrorCode"
    enum="DriveApiErrorCode">
  <obsolete>
    Obsolete 02/2019 as DriveFS implementation obsoletes this metric.
  </obsolete>
  <owner>mtomasz@chromium.org</owner>
  <summary>
    Error codes returned by the Drive API for files list requests executed via
    the FilesListRequestRunner class.
  </summary>
</histogram>

<histogram name="Drive.FilesListRequestRunner.MaxResults">
  <obsolete>
    Obsolete 02/2019 as DriveFS implementation obsoletes this metric.
  </obsolete>
  <owner>mtomasz@chromium.org</owner>
  <summary>
    Maximum number of results for each files list request using the Drive API.
  </summary>
</histogram>

<histogram name="Drive.FullFeedLoadTime" units="ms" expires_after="M75">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Time spent to load the entire file system information from the server
  </summary>
</histogram>

<histogram name="Drive.InitialFeedLoadTime" units="microseconds">
  <obsolete>
    Deperecated 12/2013 since it did not record meaningful information.
    Drive.DirectoryFeedLoadTime should be checked for measuring the time until
    the user sees the first response of file lists.
  </obsolete>
  <owner>joshwoodward@google.com</owner>
  <summary>
    Time spent to load the initial part of the file system information from the
    server
  </summary>
</histogram>

<histogram name="Drive.MetadataDBInitResult" enum="DriveMetadataDBInitStatus"
    expires_after="M75">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>Result of drive resource metadata database initialization.</summary>
</histogram>

<histogram name="Drive.MetadataDBOpenExistingResult"
    enum="DriveMetadataDBInitStatus" expires_after="M75">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Result of attempt to open existing drive resource metadata database.
  </summary>
</histogram>

<histogram name="Drive.MetadataDBValidityCheckFailureReason"
    enum="DriveMetadataDBValidityCheckFailureReason" expires_after="M75">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Reason of drive resource metadata database validity check failure. Recorded
    when the validity check fails during Drive metadata initialization triggered
    by profile initialization.
  </summary>
</histogram>

<histogram name="Drive.MetadataDBVersionBeforeUpgradeCheck" expires_after="M75">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Version number of drive resource metadata DB found on the disk before
    checking whether it should be upgraded. Recorded during Drive metadata
    initialization triggered by profile initialization.
  </summary>
</histogram>

<histogram name="Drive.MigrateDirtyFilesCount" expires_after="2019-10-01">
  <owner>dats@chromium.org</owner>
  <owner>sammc@chromium.org</owner>
  <summary>
    Records the number of dirty (unsynced) files migrated from legacy Drive to
    DriveFs.
  </summary>
</histogram>

<histogram name="Drive.NumberOfCacheFilesRecoveredAfterDBCorruption"
    expires_after="M75">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Number of files recovered from Drive cache directory. Recorded when file
    recovery takes place after metadata DB corruption is found during metadata
    DB initialization.
  </summary>
</histogram>

<histogram name="Drive.NumberOfHostedDocuments" expires_after="M75">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Number of hosted documents (spreadsheets etc.) on Drive. Logged when Drive
    is first accessed.
  </summary>
</histogram>

<histogram name="Drive.NumberOfRegularFiles" expires_after="M75">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Number of regualr files on Drive. Logged when Drive is first accessed.
  </summary>
</histogram>

<histogram name="Drive.NumberOfTotalFiles" expires_after="M75">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Number of total files (regualr files + hosted documents) on Drive. Logged
    when Drive is first accessed.
  </summary>
</histogram>

<histogram name="Drive.PushNotificationInitiallyEnabled" enum="BooleanEnabled"
    expires_after="M75">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Tracks whether the push notification is initially enabled for Drive.
    Recorded when the first notification is processed. Notification is emulated
    by polling if the push notication is disabled.
  </summary>
</histogram>

<histogram name="Drive.PushNotificationRegistered" enum="BooleanRegistered"
    expires_after="M75">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Tracks whether the push notification request is registered correctly for
    Drive. Recorded when the push notification manager is initialized.
  </summary>
</histogram>

<histogram name="Drive.SearchMetadataTime" units="microseconds"
    expires_after="M75">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Time spent to perform an incremental search for auto completion of files on
    Drive. This time is collected for every partial query the user types for
    auto completion. For instance, if the user types &quot;faq&quot;,
    incremental searches are performed for &quot;f&quot;, &quot;fa&quot;, and
    &quot;faq&quot; respectively.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Drive.TotalFileCountInBatchUpload" expires_after="M75">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>Total file count contained in a drive batch upload request.</summary>
</histogram>

<histogram name="Drive.TotalFileSizeInBatchUpload" units="KB"
    expires_after="M75">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>Total file size contained in a drive batch upload request.</summary>
</histogram>

<histogram name="Drive.TransferBlockedOnJobs" units="jobs">
  <obsolete>
    This was a temporary histogram for bug http://crbug.com/229650 that has been
    closed.
  </obsolete>
  <owner>mtomasz@chromium.org</owner>
  <summary>
    Number of jobs which have to be completed before a newly added download or
    download from or to Drive is requested. Temporary histogram for gathering
    data for http://crbug.com/229650.
  </summary>
</histogram>

<histogram name="Drive.UploadProtocol" enum="DriveUploadProtocol"
    expires_after="M75">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Upload protocol for each file. e.g. Batch upload including 5 files triggers
    the metric 5 times.
  </summary>
</histogram>

<histogram name="Drive.UploadToDriveFileSize" units="KB">
  <obsolete>
    This was a temporary histogram for bug http://crbug.com/229650 that has been
    closed.
  </obsolete>
  <owner>mtomasz@chromium.org</owner>
  <summary>
    Sizes of files being uploaded to Drive. Temporary histogram for gathering
    data for http://crbug.com/229650.
  </summary>
</histogram>

<histogram name="DriveCommon.Lifecycle.FirstLaunchTime" units="ms">
  <owner>dats@chromium.org</owner>
  <owner>sammc@chromium.org</owner>
  <summary>
    How long did it take to launch Google Drive for the first time.
  </summary>
</histogram>

<histogram name="DriveCommon.Lifecycle.Mount" enum="DriveMountStatus">
  <owner>dats@chromium.org</owner>
  <owner>sammc@chromium.org</owner>
  <summary>Records outcomes of attempts to mount Google Drive.</summary>
</histogram>

<histogram name="DriveCommon.Lifecycle.MountTime" units="ms">
  <owner>dats@chromium.org</owner>
  <owner>sammc@chromium.org</owner>
  <summary>How long did it take to mount Google Drive.</summary>
</histogram>

<histogram name="DriveCommon.Lifecycle.Unmount" enum="DriveMountStatus">
  <owner>dats@chromium.org</owner>
  <owner>sammc@chromium.org</owner>
  <summary>Records outcomes of attempts to unmount Google Drive.</summary>
</histogram>

<histogram name="DriveCommon.LocalSearch.OfflineSearchTime" units="ms">
  <owner>dats@chromium.org</owner>
  <owner>sammc@chromium.org</owner>
  <summary>
    How long did it take to perform a lookup of pinned files in local Google
    Drive cache.
  </summary>
</histogram>

<histogram name="DriveCommon.LocalSearch.SharedSearchTime" units="ms">
  <owner>dats@chromium.org</owner>
  <owner>sammc@chromium.org</owner>
  <summary>
    How long did it take to perform a search of shared files in local Google
    Drive cache.
  </summary>
</histogram>

<histogram name="DriveCommon.LocalSearch.TextSearchTime" units="ms">
  <owner>dats@chromium.org</owner>
  <owner>sammc@chromium.org</owner>
  <summary>
    How long did it take to search a title in local Google Drive cache.
  </summary>
</histogram>

<histogram name="DriveCommon.RemoteSearch.SharedSearchTime" units="ms">
  <owner>dats@chromium.org</owner>
  <owner>sammc@chromium.org</owner>
  <summary>
    How long did it take to perform a search of shared files in online Google
    Drive.
  </summary>
</histogram>

<histogram name="DriveCommon.RemoteSearch.TextSearchTime" units="ms">
  <owner>dats@chromium.org</owner>
  <owner>sammc@chromium.org</owner>
  <summary>
    How long did it take to perform a search in online Google Drive.
  </summary>
</histogram>

<histogram name="DriveOffline.CrosAutoEnableOutcome"
    enum="CrosEnableDriveOfflineOutcome" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Outcome of enabling Google Drive offline mode automatically when a user
    first logs into a Chrome OS device. This process involves opening a hidden
    web page in the context of the Google Drive hosted app to perform the
    initialization of offline mode.
  </summary>
</histogram>

<histogram name="DrmUtil.CreateDisplaySnapshot.HasEdidBlob" enum="Boolean">
  <owner>andrescj@chromium.org</owner>
  <owner>mcasas@chromium.org</owner>
  <summary>
    Whether an EDID blob was detected. This UMA is recorded whenever we attempt
    to parse the EDID from a display.
  </summary>
</histogram>

<histogram name="DrmUtil.GetColorSpaceFromEdid.ChecksOutcome"
    enum="EdidColorSpaceChecksOutcome">
  <owner>andrescj@chromium.org</owner>
  <owner>mcasas@chromium.org</owner>
  <summary>
    When attempting to get the color space from an EDID blob, whether the sanity
    checks passed (and if not, which check failed). This UMA is recorded
    whenever the color space is extracted from an EDID blob.
  </summary>
</histogram>

<histogram name="EasyUnlock.AuthenticationSuccess" enum="BooleanSuccess">
  <obsolete>
    Deprecated as of 03/2018.
  </obsolete>
  <owner>joshwoodward@google.com</owner>
  <owner>isherman@chromium.org</owner>
  <summary>
    When Easy Unlock attempts to authenticate the secure connection between a
    Chromebook (or other Chrome device) and an Android phone, whether the
    authentication succeeded.
  </summary>
</histogram>

<histogram name="EasyUnlock.AuthEvent.DidUserManuallyUnlockPhone"
    enum="EasyUnlockDidUserManuallyUnlockPhone">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Upon a successful Smart Lock unlock or signin, records whether the user's
    phone was locked during any point while the lock screen was up. This can be
    used to get a sense for whether users are using Smart Lock for Chromebook
    without something like Smart Lock for Android to keep their phones unlocked.
  </summary>
</histogram>

<histogram name="EasyUnlock.AuthEvent.SignIn" enum="EasyUnlockAuthEvent">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Measures the use of Smart Lock on the sign-in screen: records whether a
    Smart Lock login succeeded or failed; or if a password fallback was used,
    the reason why. Recorded upon a login attempt for users who have the Smart
    Lock feature enabled.
  </summary>
</histogram>

<histogram name="EasyUnlock.AuthEvent.SignIn.Duration" units="ms">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Measures the time elapsed between the user focusing their user pod and
    signing in using Smart Lock.
  </summary>
</histogram>

<histogram name="EasyUnlock.AuthEvent.Unlock" enum="EasyUnlockAuthEvent">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Measures the use of Smart Lock on the lock screen: records whether a Smart
    Lock unlock attempt succeeded or failed; or if a password fallback was used,
    the reason why. Recorded upon an unlock attempt for users who have the Smart
    Lock feature enabled.
  </summary>
</histogram>

<histogram name="EasyUnlock.AuthEvent.Unlock.Duration" units="ms">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Measures the time elapsed between the lock screen being shown and the user
    unlocking the device using Smart Lock. The lock screen is typically shown
    when the user opens their Chromebook's lid (or otherwise wakes the
    computer), but can also be shown when the user manually locks the device.
  </summary>
</histogram>

<histogram name="EasyUnlock.AuthProximity.RemoteDeviceModelHash"
    enum="EasyUnlockDeviceModelHash">
  <owner>hansberry@chromium.org</owner>
  <summary>
    The hash of the phone model used to successfully sign in or unlock using
    Smart Lock.
  </summary>
  <details>
    This hash is calculated by taking the first 4 bytes of the MD5 hash of the
    device model.
  </details>
</histogram>

<histogram name="EasyUnlock.AuthProximity.RollingRssi" units="dBm">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Measures the exponentially weighted rolling average of the received signal
    strength indicator (RSSI) of the phone when the user successfully unlocks or
    signs in using Smart Lock.
  </summary>
  <details>
    The exponentially weighted averaging formula is:

    rollingRssi = (1 - weight) * rollingRssi + weight * currentRssi;

    RSSI readings are inherently noisy, so this averaging gives a smoothed RSSI
    value to work with as a heuristic for proximity.

    If no RSSI was read, then a sentinel value of 127 will be recorded.
  </details>
</histogram>

<histogram name="EasyUnlock.AuthProximity.TimeSinceLastZeroRssi" units="ms">
  <obsolete>
    Deprecated as of 11/2018.
  </obsolete>
  <owner>tengs@chromium.org</owner>
  <owner>hansberry@chromium.org</owner>
  <summary>
    Measures the time delta in milliseconds since the last zero RSSI value was
    read to when the user successfully unlocks or signs in using Smart Lock.
  </summary>
  <details>
    A zero RSSI value is special because both Bluetooth devices in a connection
    attempt to maintain by adjusting their transmit power levels. This time
    delta can be used as a possible heuristic to determine that the phone is
    close to the local device.

    If no RSSI was read, then an overflow value will be recorded.
  </details>
</histogram>

<histogram name="EasyUnlock.AuthProximity.TransmitPowerDelta" units="dBm">
  <obsolete>
    Deprecated as of 11/2018.
  </obsolete>
  <owner>tengs@chromium.org</owner>
  <owner>hansberry@chromium.org</owner>
  <summary>
    Measures the difference between the current transmit power and the maximum
    transmit power of the local device when the user successfully unlocks or
    signs in using Smart Lock.
  </summary>
  <details>
    Devices connected using classic Bluetooth adjust their transmit power
    dynamically to optimize power and signal strength. The difference between
    the current transmit power and maximum transmit power can be used as a
    heurstic to determine if the phone is close to the local device.

    According to the Bluetooth specs, there are three classes of devices, with a
    maximum transmit power of 20, 4, and 0 dBm respectively.

    If no transmit power was read, then a sentinel value of 127 will be
    recorded.
  </details>
</histogram>

<histogram name="EasyUnlock.BluetoothAvailability"
    enum="EasyUnlockBluetoothType">
  <obsolete>
    Deprecated as of 02/2017.
  </obsolete>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    Reports the type of Bluetooth adapter present in the device.
  </summary>
  <details>
    Statistics about what Bluetooth capabilities are available will determine
    how the EasyUnlock feature gets developed and deployed across platforms.

    This value is logged only once during the lifetime of the Chrome process,
    shortly after it starts up. If a Bluetooth USB adapter is inserted after
    that point, the change will not be registered until Chrome restarts.
  </details>
</histogram>

<histogram name="EasyUnlock.ClickedButton" enum="EasyUnlockButton">
  <owner>hansberry@chromium.org</owner>
  <summary>Button clicked in EasyUnlock app during setup process.</summary>
</histogram>

<histogram name="EasyUnlock.NotificationEvent"
    enum="EasyUnlockNotificationEvent">
  <obsolete>
    Deprecated 02/2015. Replaced by EasyUnlock.Setup.PromoNotificationEvent.
  </obsolete>
  <owner>joshwoodward@google.com</owner>
  <owner>tbarzic@chromium.org</owner>
  <summary>
    Tracks events related to notifications used by EasyUnlock feature. For
    example a specific EasyUnlock notification being shown or clicked.
  </summary>
</histogram>

<histogram name="EasyUnlock.RemoteLockScreenState"
    enum="EasyUnlockRemoteLockScreenState">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Whether a lock screen and a trust agent are enabled on the remote device
    (Android phone) for Easy Unlock. Recorded once per status update message
    from the remote device. A status update message is expected to be sent once
    when the secure channel between the local and the remote device is
    established, and also each time the user-presence status changes on the
    remote side.
  </summary>
</histogram>

<histogram name="EasyUnlock.Setup.Devices.Count.Eligible">
  <owner>hansberry@chromium.org</owner>
  <summary>
    The number of eligible devices that the CryptAuth server returns during the
    Smart Lock setup flow.
  </summary>
  <details>
    Note that a single user might report multiple values, for example if they
    try to complete the setup flow with a device in airplane mode, and then try
    again taking the device out of airplane mode.
  </details>
</histogram>

<histogram name="EasyUnlock.Setup.Devices.Count.Ineligible">
  <owner>hansberry@chromium.org</owner>
  <summary>
    The number of ineligible devices that the CryptAuth server returns during
    the Smart Lock setup flow.
  </summary>
  <details>
    Note that a single user might report multiple values, for example if they
    try to complete the setup flow with a device in airplane mode, and then try
    again taking the device out of airplane mode.
  </details>
</histogram>

<histogram name="EasyUnlock.Setup.Devices.HasSecureScreenLock"
    enum="EasyUnlockHasSecureScreenLock">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Whether the user's phone has a secure screen lock installed. Recorded during
    Smart Lock setup, when the user's phone first connects to the Chromebook.
  </summary>
</histogram>

<histogram name="EasyUnlock.Setup.Devices.HasTrustAgentEnabled"
    enum="EasyUnlockHasTrustAgentEnabled">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Whether the user's phone has a trust agent -- e.g. Smart Lock for Android --
    enabled. Recorded during Smart Lock (for Chrome) setup, when the user's
    phone first connects to the Chromebook.
  </summary>
  <details>
    Note that this histogram tracks whether the setting under Settings ~&gt;
    Security ~&gt; Trust agents ~&gt; Smart Lock (Google) (or any other trust
    agent) is enabled. The Smart Lock trust agent is enabled by default for
    users who have ascure lock screen. This metric does _not_ measure whether
    users have any Smart Lock trustlets enabled.
  </details>
</histogram>

<histogram name="EasyUnlock.Setup.Devices.IneligibilityReason"
    enum="EasyUnlockDeviceIneligibilityReason">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Records the most actionable reason why none of a user's devices were
    eligible as unlock keys for Smart Lock. This is recorded during the Smart
    Lock setup flow, only if the CryptAuth server returns no eligible devices
    for the user.
  </summary>
  <details>
    To be precise, this metric tracks the _least_ actionable _reason_ why the
    _most_ actionable _device_ is not eligible as an unlock key. For example,
    suppose that the user has 10 ineligible devices returned. This metric tries
    to identify the most likely candidate device for use as a Smart Lock key,
    and then records the most confounding reason why that device is still not
    eligible to be used as an unlock key.
  </details>
</histogram>

<histogram name="EasyUnlock.Setup.Progress.SansPromo"
    enum="EasyUnlockSetupProgress">
  <owner>hansberry@chromium.org</owner>
  <owner>jhawkins@chromium.org</owner>
  <summary>
    Records events at each step of the Setup process, when the Setup flow is
    initiated without the promotion notification.
  </summary>
</histogram>

<histogram name="EasyUnlock.Setup.Progress.ViaPromo"
    enum="EasyUnlockSetupProgress">
  <owner>hansberry@chromium.org</owner>
  <owner>jhawkins@chromium.org</owner>
  <summary>
    Records events at each step of the Setup process, when the Setup flow is
    initiated via the promotion notification.
  </summary>
</histogram>

<histogram name="EasyUnlock.Setup.PromoNotificationEvent"
    enum="EasyUnlockPromoNotificationEvent">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Measures user interactions with the Smart Lock promo notification.
  </summary>
  <details>
    Due to technical limitations of the implementation, it is hard to track
    precisely which users opened the setup app as a result of interacting with
    the promo notification. This metric measures setup app interactions from all
    users who click on the promo notification, and subsequently launch the setup
    app.
  </details>
</histogram>

<histogram name="EasyUnlock.SetupStateOnClose" enum="EasyUnlockSetupState">
  <obsolete>
    Deprecated as of 03/2018.
  </obsolete>
  <owner>joshwoodward@google.com</owner>
  <owner>tbarzic@chromium.org</owner>
  <summary>
    The state of EasyUnlock setup when the app window was closed by user.
  </summary>
</histogram>

<histogram name="EasyUnlock.SignIn.LoginEvent" enum="EasyUnlockAuthEvent">
  <obsolete>
    Deprecated 02/2015; replaced by EasyUnlock.AuthEvent.SignIn.
  </obsolete>
  <owner>hansberry@chromium.org</owner>
  <summary>
    Measures the use of Easy sign-in: records whether an Easy sign-in login
    succeeded or failed; or if a password fallback was used, the reason why.
    Recorded upon a login attempt for users who have the Easy sign-in feature
    enabled.
  </summary>
</histogram>

<histogram name="EasyUnlock.StartupTimeFromSuspend" units="ms">
  <owner>hansberry@chromium.com</owner>
  <summary>
    The time it takes after resuming from a suspended state (ie. opening the
    Chromebook lid) to when a remote device is connected and a request is made.
    Note that it is possible for the remote device not to be present when
    resuming from suspend, and the device may be connected at a later time.
    Therefore, large values for this metric may not be too meaningful due to
    meddling users.
  </summary>
</histogram>

<histogram name="EasyUnlock.TrialRun.Events" enum="EasyUnlockTrialRunEvents">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Records when the Easy Unlock trial run is launched, and when the user
    attempts to click on the lock icon during the trial run.
  </summary>
  <details>
    If a user clicks on the lock icon more than once, then the &quot;clicked
    lock icon&quot; event counter will be incremented more than once as well.
    Hence, the &quot;user count&quot; data shows how many users ever clicked on
    the lock icon during the trial run. From the raw (non-&quot;user
    count&quot;) data, we can also see whether users click on the icon multiple
    times.
  </details>
</histogram>

<histogram name="EasyUnlock.UnlockEvent" enum="EasyUnlockUnlockEvent">
  <obsolete>
    Deprecated 02/2015; replaced by EasyUnlock.AuthEvent.Unlock.
  </obsolete>
  <owner>joshwoodward@google.com</owner>
  <owner>tbarzic@chromium.org</owner>
  <summary>Screen unlock events detected while EasyUnlock was enabled.</summary>
</histogram>

<histogram name="EmbeddedWorkerInstance.ExistingProcessAllocation" units="ms">
  <obsolete>
    Deprecated 03/2016; replaced by
    EmbeddedWorkerInstance.Start.SendStartWorker_ExistingProcess and
    EmbeddedWorkerInstance.Start.TimeToURLJob_ExistingProcess.
  </obsolete>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The time taken to allocate a process to start the EmbeddedWorkerInstance.
    Recorded when an existing process was used.
  </summary>
</histogram>

<histogram name="EmbeddedWorkerInstance.NewProcessAllocation" units="ms">
  <obsolete>
    Deprecated 03/2016; replaced by
    EmbeddedWorkerInstance.Start.SendStartWorker_NewProcess and
    EmbeddedWorkerInstance.Start.TimeToURLJob_NewProcess.
  </obsolete>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The time taken to allocate a process to start the EmbeddedWorkerInstance.
    Recorded when a new process was created.
  </summary>
</histogram>

<histogram name="EmbeddedWorkerInstance.ProcessAllocation" units="ms">
  <obsolete>
    Deprecated as of 05/2015. Replaced by
    EmbeddedWorkerInstance.NewProcessAllocation and
    EmbeddedWorkerInstance.ExistingProcessAllocation.
  </obsolete>
  <owner>horo@chromium.org</owner>
  <summary>
    The time taken to allocate a process to start the EmbeddedWorkerInstance.
  </summary>
</histogram>

<histogram name="EmbeddedWorkerInstance.ProcessCreated" enum="BooleanCreated">
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Whether a new renderer process was created for the EmbeddedWorkerInstance or
    existing one was used. Only recorded for installed workers.
  </summary>
</histogram>

<histogram name="EmbeddedWorkerInstance.ScriptEvaluate" units="ms">
  <obsolete>
    Deprecated as of 03/2016. Replaced by
    EmbeddedWorkerInstance.Start.TimeToEvaluateScript.
  </obsolete>
  <owner>horo@chromium.org</owner>
  <summary>
    The time taken to evaluate the script to start the EmbeddedWorkerInstance.
  </summary>
</histogram>

<histogram name="EmbeddedWorkerInstance.ScriptLoadWithNetworkAccess" units="ms">
  <obsolete>
    Deprecated as of 03/2016. Replaced by
    EmbeddedWorkerInstance.Start.TimeToLoad_Network.
  </obsolete>
  <owner>horo@chromium.org</owner>
  <summary>
    The time taken to load the script file for the EmbeddedWorkerInstance with
    network access.
  </summary>
</histogram>

<histogram name="EmbeddedWorkerInstance.ScriptLoadWithoutNetworkAccess"
    units="ms">
  <obsolete>
    Deprecated as of 03/2016. Replaced by
    EmbeddedWorkerInstance.Start.TimeToLoad_HttpCache and
    EmbeddedWorkerInstance.Start.TimeToLoad_InstalledScript.
  </obsolete>
  <owner>horo@chromium.org</owner>
  <summary>
    The time taken to load the script file for the EmbeddedWorkerInstance
    without network access.
  </summary>
</histogram>

<histogram name="EmbeddedWorkerInstance.Start.StartMessageLatency" units="ms">
  <obsolete>
    Removed June 2018 (M69). Replaced with
    ServiceWorker.StartTiming.SentStartWorkerToReceivedStartWorker.
  </obsolete>
  <owner>falken@chromium.org</owner>
  <summary>
    The time between the browser sending a &quot;start a service worker&quot;
    message to the renderer, and the renderer receiving it. This may include
    renderer startup time. Only recorded if the high-resolution system clock was
    used and deemed consistent across proceses, and the time was non-negative
    (see EmbeddedWorkerInstance.Start.StartMessageLatency.Type). Only recorded
    for installed workers. Recorded upon successful startup.
  </summary>
</histogram>

<histogram name="EmbeddedWorkerInstance.Start.StartMessageLatency.Type"
    enum="CrossProcessTimeDelta">
  <obsolete>
    Removed June 2018 (M69). Replaced with
    ServiceWorker.StartTiming.ClockConsistency.
  </obsolete>
  <owner>falken@chromium.org</owner>
  <summary>
    See EmbeddedWorkerInstance.Start.StartMessageLatency. Describes the outcome
    of taking the measurement and whether StartMessageLatency was recorded.
  </summary>
</histogram>

<histogram name="EmbeddedWorkerInstance.Start.TimeToEvaluateScript" units="ms">
  <obsolete>
    Removed July 2018 (M69). Replaced with
    ServiceWorker.StartTiming.ScriptEvaluationStartToScriptEvaluationEnd.
  </obsolete>
  <owner>falken@chromium.org</owner>
  <summary>
    The time taken for initial evaluation of the service worker script.
    Specifically, the time between ACK from the renderer that the thread started
    and ACK that the script evaluation finished. Only recorded for installed
    workers.
  </summary>
</histogram>

<histogram name="EmbeddedWorkerInstance.Start.TimeToLoad.HttpCache" units="ms">
  <obsolete>
    Removed June 2018 (M69). This depended on the URLRequestJob code path, which
    won't be taken with S13nServiceWorker/NetworkService. If we want this again,
    it can be logged from ServiceWorkerScriptLoader or in Blink directly using
    Resource Timing.
  </obsolete>
  <owner>falken@chromium.org</owner>
  <summary>
    The time taken to load a new (not installed) service worker, when it came
    from the HTTP cache.
  </summary>
</histogram>

<histogram name="EmbeddedWorkerInstance.Start.TimeToLoad.InstalledScript"
    units="ms">
  <obsolete>
    Removed June 2018 (M69). This path is no longer taken since service worker
    installed script manager is used for installed scripts.
  </obsolete>
  <owner>falken@chromium.org</owner>
  <summary>The time taken to load an installed service worker.</summary>
</histogram>

<histogram name="EmbeddedWorkerInstance.Start.TimeToLoad.Network" units="ms">
  <obsolete>
    Removed June 2018 (M69), see note in
    EmbeddedWorkerInstance.Start.TimeToLoad.HttpCache.
  </obsolete>
  <owner>falken@chromium.org</owner>
  <summary>
    The time taken to load a new (not installed) service worker, when it came
    from the network.
  </summary>
</histogram>

<histogram name="EmbeddedWorkerInstance.Start.TimeToSendStartWorker" units="ms">
  <obsolete>
    Removed July 2018 (M69). Replaced with
    ServiceWorker.StartTiming.StartToSentStartWorker.
  </obsolete>
  <owner>falken@chromium.org</owner>
  <summary>
    The time taken between deciding to start a worker and sending the start
    worker IPC. Only recorded for installed workers.
  </summary>
</histogram>

<histogram name="EmbeddedWorkerInstance.Start.TimeToStartThread" units="ms">
  <obsolete>
    Removed July 2018 (M69). Replaced with
    ServiceWorker.StartTiming.ReceivedStartWorkerToScriptEvaluationStart.
  </obsolete>
  <owner>falken@chromium.org</owner>
  <summary>
    The time taken to start the service worker thread. Specifically, the time
    between ACK from the renderer that load finished and ACK that the thread
    started. Does not include script evaluation time. Only recorded for
    installed workers.
  </summary>
</histogram>

<histogram name="EmbeddedWorkerInstance.Start.TimeToURLJob" units="ms">
  <obsolete>
    Removed June 2018 (M69). This path is no longer taken since service worker
    installed script manager is used for installed scripts.
  </obsolete>
  <owner>falken@chromium.org</owner>
  <summary>
    The round-trip time between asking the renderer process to start a worker
    and receiving the corresponding resource request. Only recorded for
    installed workers.
  </summary>
</histogram>

<histogram name="EmbeddedWorkerInstance.Start.WaitedForRendererSetup"
    enum="BooleanWaited">
  <obsolete>
    Removed June 2018 (M69).
  </obsolete>
  <owner>falken@chromium.org</owner>
  <summary>
    Indicates if Blink was not initialized by the time the browser sent a
    &quot;start a service worker&quot; message to the renderer. If this is true,
    receiving the message had to wait until after Blink initialization finished.
    Blink initialization is considered the time RenderThreadImpl::Init sets up
    the Mojo interface for receiving the &quot;start a service worker&quot;
    message. Only recorded for installed workers. Recorded upon successful
    startup.
  </summary>
</histogram>

<histogram name="EmbeddedWorkerInstance.Start.WaitedForRendererSetup.Time"
    units="ms">
  <obsolete>
    Removed June 2018 (M69).
  </obsolete>
  <owner>falken@chromium.org</owner>
  <summary>
    Recorded when EmbeddedWorkerInstance.Start.WaitedForRendererSetup is true.
    The time between when the &quot;start a service worker&quot; was sent by the
    browser, and Blink initialization finishing. The start time is recorded by
    the browser process, and the end time by the renderer process, so process
    clock skew could possibly affect the result.
  </summary>
</histogram>

<histogram name="EnhancedBookmarks.AllBookmarksCount">
  <obsolete>
    Removed 4/2016 after we no longer show &quot;all bookamrks&quot; in bookmark
    manager.
  </obsolete>
  <owner>ianwen@chromium.org</owner>
  <summary>Number of bookmarks the user has. Android only.</summary>
</histogram>

<histogram name="EnhancedBookmarks.SyncExperimentState"
    enum="BookmarksExperimentState">
  <obsolete>
    Removed 3/2015 along with the enhanced bookmarks sync experiment.
  </obsolete>
  <owner>noyau@chromium.org</owner>
  <owner>yefim@chromium.org</owner>
  <summary>
    Captures the state the enhanced bookmark experiment is in. Recorded on
    startup. To be removed once the enhanced bookmark experiment is finished.
    see crbug/323423.
  </summary>
</histogram>

<histogram name="EnhancedBookmarks.ViewMode" enum="EnhancedBookmarkViewMode">
  <obsolete>
    Removed 9/2015 after list view became the only view mode.
  </obsolete>
  <owner>ianwen@chromium.org</owner>
  <summary>
    Record which Enhanced Bookmark UI mode users are in. This will be recorded
    everytime the user opens the bookmark manager UI.
  </summary>
</histogram>

<histogram name="Enterprise.ActiveDirectoryJoin"
    enum="ActiveDirectoryDomainJoinType">
  <owner>rsorokin@chromium.org</owner>
  <summary>
    The way device is joined to the Active Directory domain. This will be
    recorded during successful enterprise enrollment and domain join.
  </summary>
</histogram>

<histogram name="Enterprise.AppRestrictionLoadTime" units="ms">
  <owner>aberent@chromium.org</owner>
  <summary>
    Android Only - Time to load the App Restrictions from the O.S..
  </summary>
</histogram>

<histogram name="Enterprise.AppRestrictionsCacheLoad" enum="BooleanSuccess">
  <owner>aberent@chromium.org</owner>
  <summary>
    Android Only - Whether Chrome was able to read and decode the
    AppRestrictions policy cache on startup.
  </summary>
</histogram>

<histogram name="Enterprise.AttributesTPMConsistency"
    enum="EnterpriseAttributesTPMConsistencyType">
  <owner>tnagel@chromium.org</owner>
  <summary>
    Consistency between TPM lock state and absence/presence of install
    attributes at boot.
  </summary>
</histogram>

<histogram base="true" name="Enterprise.AutoEnrollmentBucketDownloadTime"
    units="ms">
<!-- Name completed by histogram_suffixes name="EnterpriseAutoEnrollmentType". -->

  <owner>pmarko@chromium.org</owner>
  <owner>igorcov@chromium.org</owner>
  <summary>
    Duration of the bucket download part of the auto-enrollment protocol.
  </summary>
</histogram>

<histogram base="true" name="Enterprise.AutoEnrollmentExtraTime" units="ms">
<!-- Name completed by histogram_suffixes name="EnterpriseAutoEnrollmentType". -->

  <owner>pmarko@chromium.org</owner>
  <owner>igorcov@chromium.org</owner>
  <summary>
    Time since the user logged in until the auto-enrollment protocol completed.
    0 is sampled when the protocol is done by the time the user logs in.
  </summary>
</histogram>

<histogram base="true" name="Enterprise.AutoEnrollmentProtocolTime" units="ms">
<!-- Name completed by histogram_suffixes name="EnterpriseAutoEnrollmentType". -->

  <owner>pmarko@chromium.org</owner>
  <owner>igorcov@chromium.org</owner>
  <summary>Total duration time of the auto-enrollment protocol.</summary>
</histogram>

<histogram base="true" name="Enterprise.AutoEnrollmentRequestNetworkErrorCode"
    enum="NetErrorCodes">
<!-- Name completed by histogram_suffixes name="EnterpriseAutoEnrollmentType". -->

  <owner>pmarko@chromium.org</owner>
  <owner>igorcov@chromium.org</owner>
  <summary>
    Network error code (if applicable) for auto-enrollment requests.
  </summary>
</histogram>

<histogram base="true" name="Enterprise.AutoEnrollmentRequestStatus"
    enum="EnterpriseDeviceManagementStatus">
<!-- Name completed by histogram_suffixes name="EnterpriseAutoEnrollmentType". -->

  <owner>pmarko@chromium.org</owner>
  <owner>igorcov@chromium.org</owner>
  <summary>URL fetcher status for auto-enrollment requests.</summary>
</histogram>

<histogram name="Enterprise.DevicePolicyInvalidations"
    enum="EnterprisePolicyInvalidations">
  <owner>bartfab@chromium.org</owner>
  <summary>
    Events for counting device policy invalidations received with and without
    payloads. Invalidations indicate that a policy has been updated and should
    be refreshed. Payloads provide context about the policy update, but may be
    absent if dropped by the invalidation service.
  </summary>
</histogram>

<histogram name="Enterprise.DevicePolicyRefresh" enum="EnterprisePolicyRefresh">
  <owner>bartfab@chromium.org</owner>
  <summary>
    Events measuring effectiveness of refreshing device policy when
    invalidations are received from a service. For each refresh, indicates
    whether the policy changed, and whether the policy was invalidated at the
    time of the refresh.
  </summary>
</histogram>

<histogram name="Enterprise.DMServerRequestSuccess"
    enum="EnterpriseDMServerRequestSuccess">
  <owner>poromov@chromium.org</owner>
  <summary>
    Number of retries the client did to execute a DeviceManagementServer
    request. It's recorded after the request has been completed, either
    successfully after 0 or more retries, with a failure (too many retries or
    non-retriable error) or with a server error.
  </summary>
</histogram>

<histogram name="Enterprise.DMToken" enum="EnterpriseDMTokenType">
  <owner>mnissler@chromium.org</owner>
  <summary>
    Events related to fetching, saving and loading DM server tokens. These are
    used to retrieve cloud policies.
  </summary>
</histogram>

<histogram name="Enterprise.DomainWhitelistRegexFailure"
    enum="EnterpriseDomainRegex">
  <owner>atwilson@chromium.org</owner>
  <summary>
    Temporary metric tracking which regex caused an icu::RegexMatcher
    initialization failure, to help figure out the cause of
    http://crbug.com/365351 which we can't repro locally.
  </summary>
</histogram>

<histogram name="Enterprise.DomainWhitelistRegexFailureStatus"
    units="icu error">
  <owner>atwilson@chromium.org</owner>
  <summary>
    Temporary metric tracking the type of an icu::RegexMatcher initialization
    failure, to help figure out the cause of http://crbug.com/365351 which we
    can't repro locally.
  </summary>
</histogram>

<histogram name="Enterprise.DomainWhitelistRegexSuccess" enum="BooleanSuccess">
  <owner>atwilson@chromium.org</owner>
  <summary>
    Temporary metric tracking the success of icu::RegexMatcher IcuMatcher
    initialization, to help figure out the cause of http://crbug.com/365351.
  </summary>
</histogram>

<histogram name="Enterprise.EnrolledPolicyHasDMToken" enum="Boolean">
  <owner>tnagel@chromium.org</owner>
  <summary>
    Whether loading of device policy from file on an enterprise-enrolled
    (checked against install_attributes.pb) Chrome OS device yields an
    enterprise policy with a DM token. Filled once during session startup, after
    first successful device policy read.
  </summary>
</histogram>

<histogram name="Enterprise.Enrollment" enum="EnterpriseEnrollmentType">
  <owner>mnissler@chromium.org</owner>
  <summary>
    Events related to device enrollment on new installs of Chrome OS devices.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentAttestationBased"
    enum="EnterpriseEnrollmentType">
  <owner>drcrash@chromium.org</owner>
  <summary>
    Events related to attestation-based enrollment (Zero-Touch) of Chrome OS
    devices.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentConfiguration"
    enum="EnterpriseEnrollmentType">
  <owner>antrim@chromium.org</owner>
  <summary>
    Events related to Chrome OS enterprise enrollment automated by OOBE
    configuration.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentForced" enum="EnterpriseEnrollmentType">
  <owner>tnagel@chromium.org</owner>
  <summary>
    Events related to forced re-enrollment (FRE) of Chrome OS devices.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentForcedAttestationBased"
    enum="EnterpriseEnrollmentType">
  <owner>drcrash@chromium.org</owner>
  <summary>
    Events related to attestation-based re-enrollment (Auto RE) of Chrome OS
    devices.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentForcedInitial"
    enum="EnterpriseEnrollmentType" expires_after="2020-05-02">
  <owner>drcrash@chromium.org</owner>
  <owner>pmarko@chromium.org</owner>
  <summary>
    Events related to forced initial enrollment of Chrome OS devices during the
    first startup of a device.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentForcedInitialAttestationBased"
    enum="EnterpriseEnrollmentType" expires_after="2020-05-02">
  <owner>drcrash@chromium.org</owner>
  <owner>pmarko@chromium.org</owner>
  <summary>
    Events related to attestation-based initial enrollment (Zero-Touch) of
    Chrome OS devices during the first startup of a device.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentForcedInitialManualFallback"
    enum="EnterpriseEnrollmentType" expires_after="2020-05-02">
  <owner>drcrash@chromium.org</owner>
  <owner>pmarko@chromium.org</owner>
  <summary>
    Events related to manual fallback from attestation-based initial enrollment
    (Zero-Touch) of Chrome OS devices during the first startup of a device.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentForcedManualFallback"
    enum="EnterpriseEnrollmentType">
  <owner>drcrash@chromium.org</owner>
  <summary>
    Events related to manual fallback from attestation-based re-enrollment (Auto
    RE) of Chrome OS devices.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentRecovery" enum="EnterpriseEnrollmentType">
  <owner>tnagel@chromium.org</owner>
  <summary>
    Events related to Chrome OS enterprise enrollment recovery. Note that this
    only covers cases in which prior to recovery, the &quot;private owner&quot;
    of the device had UMA stats enabled.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentTime.Cancel" units="ms">
  <owner>tnagel@chromium.org</owner>
  <summary>
    Elapsed time from *after* GAIA login until enrollment was cancelled.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentTime.Failure" units="ms">
  <owner>tnagel@chromium.org</owner>
  <summary>
    Elapsed time from *after* GAIA login until enrollment failed.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentTime.Success" units="ms">
  <owner>tnagel@chromium.org</owner>
  <summary>
    Elapsed time from *after* GAIA login until enrollment succeeded.
  </summary>
</histogram>

<histogram name="Enterprise.ExistingInstallAttributesLock"
    enum="EnterpriseExistingInstallAttributesLockType" expires_after="M70">
  <owner>emaxx@chromium.org</owner>
  <owner>poromov@chromium.org</owner>
  <summary>
    Chrome OS only. Whether the successful locking of install attributes reused
    the previously existing locked attributes, or a fresh lock has being held.
  </summary>
</histogram>

<histogram name="Enterprise.InitialEnrollmentRequirement"
    enum="EnterpriseInitialEnrollmentRequirement">
  <owner>pmarko@chromium.org</owner>
  <owner>igorcov@chromium.org</owner>
  <summary>
    Chrome OS only. Encodes if initial enrollment should be done, and if not,
    why. This histogram is recorded when the Auto Enrollment Check screen is
    reached in the Chrome OS Out Of The Box Experience (OOBE) sequence and the
    device has not been enrolled or in consumer mode before, i.e. when the
    'check_enrollment' and 'ActivateDate' VPD keys are not present.
  </summary>
</histogram>

<histogram name="Enterprise.InvalidDevicePolicyFiles" units="files">
  <owner>igorcov@chromium.org</owner>
  <summary>
    Chrome OS only. Number of policy files that turned out to be invalid when
    reading the device policy data. In success scenario the latest policy file
    read is successful and has valid data submitting zero for this statistic.
  </summary>
</histogram>

<histogram name="Enterprise.IOSPolicies">
  <owner>mnissler@chromium.org</owner>
  <summary>
    Number of policies loaded at startup on iOS, and when a change is detected
    at runtime.
  </summary>
</histogram>

<histogram
    name="Enterprise.MachineLevelUserCloudPolicyEnrollment.InstallLevel_Win"
    enum="BooleanIsSystemLevelInstall">
  <owner>zmin@chromium.org</owner>
  <summary>
    Records whether the Chrome install is system level or user level when trying
    to enroll into the machine level user cloud policy on Windows. This is
    intended to count the number of enrollments for each install type.
  </summary>
</histogram>

<histogram
    name="Enterprise.MachineLevelUserCloudPolicyEnrollment.RequestFailureTime"
    units="ms">
  <owner>rogerta@chromium.org</owner>
  <summary>
    Time since the enrollment request was made until an error is returned from
    the server.
  </summary>
</histogram>

<histogram
    name="Enterprise.MachineLevelUserCloudPolicyEnrollment.RequestSuccessTime"
    units="ms">
  <owner>rogerta@chromium.org</owner>
  <summary>
    Time since the enrollment request was made until a successful enrollment
    response is returned from the server.
  </summary>
</histogram>

<histogram name="Enterprise.MachineLevelUserCloudPolicyEnrollment.Result"
    enum="MachineLevelUserCloudPolicyEnrollmentResult">
  <owner>zmin@chromium.org</owner>
  <summary>The result of machine level user cloud policy enrollment.</summary>
</histogram>

<histogram
    name="Enterprise.MachineLevelUserCloudPolicyEnrollment.StartupDialog"
    enum="MachineLevelUserCloudPolicyEnrollmentStartupDialog">
  <owner>rogerta@chromium.org</owner>
  <summary>
    Records whether the machine level user cloud policy enrollment dialog is
    shown to the user and the action they took.
  </summary>
</histogram>

<histogram
    name="Enterprise.MachineLevelUserCloudPolicyEnrollment.StartupDialogTime"
    units="ms">
  <owner>rogerta@chromium.org</owner>
  <summary>
    The length of time the machine level user cloud policy enrollment dialog was
    visible to the user.
  </summary>
</histogram>

<histogram name="Enterprise.ONC.PolicyValidation" enum="BooleanSuccess">
  <owner>mnissler@chromium.org</owner>
  <summary>Result of the OpenNetworkConfiguration policy validation.</summary>
</histogram>

<histogram name="Enterprise.Policies" enum="EnterprisePolicies">
  <owner>mnissler@chromium.org</owner>
  <summary>
    A set of enterprise policy rules that are in use. This is recorded every 24
    hours and at startup, if the last recording was earlier than a day before.
  </summary>
</histogram>

<histogram name="Enterprise.Policy" enum="EnterprisePolicyType">
  <owner>mnissler@chromium.org</owner>
  <summary>
    Events related to fetching, saving and loading user policies, and also
    device policies on Chrome OS.
  </summary>
</histogram>

<histogram name="Enterprise.PolicyHasVerifiedCachedKey"
    enum="BooleanValidKeyExists">
  <owner>atwilson@chromium.org</owner>
  <summary>
    Boolean tracking whether there is a valid policy signing key on disk.
  </summary>
</histogram>

<histogram name="Enterprise.PolicyInvalidations"
    enum="EnterprisePolicyInvalidations">
  <owner>mnissler@chromium.org</owner>
  <summary>
    Events for counting user policy invalidations received with and without
    payloads. Invalidations indicate that a policy has been updated and should
    be refreshed. Payloads provide context about the policy update, but may be
    absent if dropped by the invalidation service.
  </summary>
</histogram>

<histogram name="Enterprise.PolicyInvalidationsRegistrationResult"
    enum="BooleanSuccess" expires_after="2020-02-14">
  <owner>poromov@chromium.org</owner>
  <summary>
    Tracks the result of registration for policy invalidations. It will fail
    when duplicate invalidation names are used for different policies due to
    http://b/119860379.
  </summary>
</histogram>

<histogram name="Enterprise.PolicyInvalidationsStartupTime" units="ms">
  <owner>mnissler@chromium.org</owner>
  <summary>
    Time since startup of the cloud policy code until the policy invalidation
    service first reported its online status.
  </summary>
</histogram>

<histogram name="Enterprise.PolicyKeyVerification"
    enum="EnterprisePolicyKeyVerification">
  <owner>atwilson@chromium.org</owner>
  <summary>Tracking the results of policy key verification.</summary>
</histogram>

<histogram name="Enterprise.PolicyLoadStatus" enum="EnterprisePolicyLoadStatus">
  <owner>mnissler@chromium.org</owner>
  <summary>
    Load status from the policy loaders which pull policy settings from the
    underlying platform, such as Windows Group Policy.
  </summary>
</histogram>

<histogram name="Enterprise.PolicyRefresh" enum="EnterprisePolicyRefresh">
  <owner>mnissler@chromium.org</owner>
  <summary>
    Events measuring effectiveness of refreshing user policy when invalidations
    are received from a service. For each refresh, indicates whether the policy
    changed, and whether the policy was invalidated at the time of the refresh.
  </summary>
</histogram>

<histogram name="Enterprise.PolicyUpdatePeriod.Device" units="days">
  <owner>antrim@chromium.org</owner>
  <summary>Time since last device policy fetch.</summary>
</histogram>

<histogram name="Enterprise.PolicyUpdatePeriod.MachineLevelUser" units="days">
  <owner>zmin@chromium.org</owner>
  <summary>Time since last machine level user policy fetch.</summary>
</histogram>

<histogram name="Enterprise.PolicyUpdatePeriod.User" units="days">
  <owner>antrim@chromium.org</owner>
  <summary>Time since last user policy fetch.</summary>
</histogram>

<histogram name="Enterprise.PolicyUserVerification"
    enum="EnterprisePolicyUserVerification">
  <owner>poromov@chromium.org</owner>
  <summary>Tracking the results of policy user verification.</summary>
</histogram>

<histogram name="Enterprise.PublicSession.ExtensionPermissions"
    enum="ExtensionPermission3">
  <owner>isandrk@chromium.org</owner>
  <owner>sduraisamy@chromium.org</owner>
  <summary>
    Extensions (and apps) are quite restricted in public sessions for security
    and privacy concerns - some permissions are blocked which means the
    extension itself is blocked (prevented from loading). This histogram counts
    requested permissions on extension installation in public sessions (both
    installed and blocked extensions).
  </summary>
</histogram>

<histogram name="Enterprise.PublicSession.SessionLength" units="minutes">
  <owner>xiyuan@chromium.org</owner>
  <owner>sduraisamy@chromium.org</owner>
  <summary>
    A public session starts when a user signs in using the policy configured
    public account. It stops when the user signs out. Session length is the
    duration between the start and stop events. It is recorded during signing
    out and reported on the next chrome run. This metric tracks the recorded
    session length rounded down to the nearest 10-minute bucket and capped at 24
    hours.
  </summary>
</histogram>

<histogram name="Enterprise.RegularUserSession.SessionLength" units="minutes">
  <owner>xiyuan@chromium.org</owner>
  <owner>sduraisamy@chromium.org</owner>
  <summary>
    A regular user session starts when a user signs in using his/her user
    account. It stops when the user signs out. Session length is the duration
    between the start and stop events. It is recorded during signing out and
    reported on the next chrome run. This metric tracks the recorded session
    length on an enrolled device rouned down to the nearest 10-minute bucket and
    capped at 24 hours.
  </summary>
</histogram>

<histogram name="Enterprise.RemoteCommand.RemoteSession.DeviceIsIdle"
    enum="Boolean" expires_after="2019-09-01">
  <owner>antrim@chromium.org</owner>
  <summary>
    When an enterprise admin attempts to establish a remote session to a device
    running in kiosk mode, the command will fail if device is not considered
    idle. This histogram is emitted when that happens.
  </summary>
</histogram>

<histogram name="Enterprise.RemoteCommand.RemoteSession.IdlenessOverride"
    enum="Boolean" expires_after="2019-09-01">
  <owner>antrim@chromium.org</owner>
  <summary>
    When an enterprise admin attempts to establish a remote session to a device
    running in kiosk mode, it is possible to override usual idleness check and
    connect anyway.
  </summary>
</histogram>

<histogram name="Enterprise.ResourceCacheTiming" units="ms">
  <owner>nikitapodguzov@chromium.org</owner>
  <summary>The time to perform operations on the ResourceCache object.</summary>
</histogram>

<histogram base="true" name="Enterprise.RetrievePolicyResponse"
    enum="EnterpriseRetrievePolicyResponseType">
<!-- Name completed by histogram_suffixes name="EnterpriseRetrievePolicyResponse" -->

  <owner>emaxx@chromium.org</owner>
  <owner>igorcov@chromium.org</owner>
  <summary>
    On Chrome OS, the response obtained to retrieve policy request.
  </summary>
</histogram>

<histogram name="Enterprise.SystemLogPIILeak" enum="SystemLogPIIType">
  <obsolete>
    Deprecated and removed from code as of 01/2016.
  </obsolete>
  <owner>pbond@chromium.org</owner>
  <summary>
    Events for counting sensitive data occurrences in system logs to upload.
    (Email addresses, IP addresses, SSIDs, URLs). The lines with this data will
    be removed before upload.
  </summary>
</histogram>

<histogram name="Enterprise.UploadJobSuccess" enum="EnterpriseUploadJobSuccess">
  <owner>poromov@chromium.org</owner>
  <summary>
    Number of retries the client did to execute an UploadJob. It's recorded
    after the request has been completed, either successfully after 0 or more
    retries, with a failure because of too many retries or if the UploadJob is
    interrupted (destroyed before it could succeed or fail).
  </summary>
</histogram>

<histogram name="Enterprise.UserCloudPolicyStore.LoadStatus"
    enum="PolicyLoadStatus">
  <owner>atwilson@chromium.org</owner>
  <summary>
    Result of the attempted policy load during profile initialization.
  </summary>
</histogram>

<histogram name="Enterprise.UserCloudPolicyStore.LoadValidationStatus"
    enum="PolicyValidationStatus">
  <owner>atwilson@chromium.org</owner>
  <summary>
    Result of validating the policy that has just been loaded from disk.
  </summary>
</histogram>

<histogram name="Enterprise.UserCloudPolicyStore.StoreValidationStatus"
    enum="PolicyValidationStatus">
  <owner>atwilson@chromium.org</owner>
  <summary>
    Result of validating the policy sent down from the server, before writing to
    disk.
  </summary>
</histogram>

<histogram name="Enterprise.UserPolicyChromeOS.ChildUser.OAuthTokenError"
    enum="GoogleServiceAuthError" expires_after="2019-12-31">
  <owner>agawronska@chromium.org</owner>
  <owner>michaelpg@chromium.org</owner>
  <summary>Failure reason for OAuth token fetch for child user.</summary>
</histogram>

<histogram name="Enterprise.UserPolicyChromeOS.DelayInitialization" units="ms">
  <owner>mnissler@chromium.org</owner>
  <summary>Initialization delay due to loading the user policy cache.</summary>
</histogram>

<histogram name="Enterprise.UserPolicyChromeOS.InitialFetch.ClientError"
    enum="EnterpriseDeviceManagementStatus">
  <owner>mnissler@chromium.org</owner>
  <summary>Policy client error during initial policy fetch.</summary>
</histogram>

<histogram
    name="Enterprise.UserPolicyChromeOS.InitialFetch.DelayClientRegister"
    units="ms">
  <owner>mnissler@chromium.org</owner>
  <summary>Delay for registering the client with the policy server.</summary>
</histogram>

<histogram name="Enterprise.UserPolicyChromeOS.InitialFetch.DelayOAuth2Token"
    units="ms">
  <owner>mnissler@chromium.org</owner>
  <summary>Delay for minting an OAuth2 acccess token.</summary>
</histogram>

<histogram name="Enterprise.UserPolicyChromeOS.InitialFetch.DelayPolicyFetch"
    units="ms">
  <owner>mnissler@chromium.org</owner>
  <summary>Delay for fetching policy from the policy server.</summary>
</histogram>

<histogram name="Enterprise.UserPolicyChromeOS.InitialFetch.DelayTotal"
    units="ms">
  <owner>mnissler@chromium.org</owner>
  <summary>Total delay for the initial policy fetch.</summary>
</histogram>

<histogram name="Enterprise.UserPolicyChromeOS.InitialFetch.OAuth2Error"
    enum="GoogleServiceAuthError">
  <owner>mnissler@chromium.org</owner>
  <summary>Service error during OAuth2 access token fetch.</summary>
</histogram>

<histogram name="Enterprise.UserPolicyChromeOS.InitialFetch.OAuth2NetworkError"
    enum="NetErrorCodes">
  <owner>mnissler@chromium.org</owner>
  <summary>Network error during OAuth2 access token fetch.</summary>
</histogram>

<histogram name="Enterprise.UserPolicyChromeOS.ReregistrationResult"
    enum="EnterpriseUserPolicyChromeOSReregistrationResult">
  <owner>hendrich@chromium.org</owner>
  <summary>Re-registration results after failed policy fetch.</summary>
</histogram>

<histogram name="Enterprise.UserPolicyChromeOS.SessionAbort"
    enum="EnterpriseUserPolicyChromeOSSessionAbortType">
  <owner>emaxx@chromium.org</owner>
  <summary>
    Session abort due to a fatal error of Chrome OS user policy initialization.
  </summary>
</histogram>

<histogram name="Enterprise.UserPolicyValidationFailure"
    enum="ValidationFailures">
  <owner>mnissler@chromium.org</owner>
  <summary>Source of policy validation errors on Chrome OS.</summary>
</histogram>

<histogram name="Enterprise.UserPolicyValidationLoadStatus"
    enum="PolicyValidationStatus">
  <owner>mnissler@chromium.org</owner>
  <summary>
    Validation result when loading user policy from the policy store.
  </summary>
</histogram>

<histogram name="Enterprise.UserPolicyValidationStoreStatus"
    enum="PolicyValidationStatus">
  <owner>mnissler@chromium.org</owner>
  <summary>
    Validation result when writing user policy to the policy store.
  </summary>
</histogram>

<histogram name="Enterprise.UserSession.Logins"
    enum="EnterpriseUserSessionLogins">
  <owner>xiyuan@chromium.org</owner>
  <owner>sduraisamy@chromium.org</owner>
  <summary>Tracks the sign-in events on an enrolled device.</summary>
</histogram>

<histogram name="Enterprise.UserSigninChoice" enum="SigninChoice">
  <owner>atwilson@chromium.org</owner>
  <summary>
    Choice the user made when presented with enterprise signin dialog.
  </summary>
</histogram>

<histogram name="Enterprise.VpdCheck">
  <owner>igorcov@chromium.org</owner>
  <owner>tnagel@chromium.org</owner>
  <summary>
    The status code (exit code or signal) from sanity check of RW_VPD read and
    matching the contents with data from dump_vpd_log (Chrome OS).
  </summary>
</histogram>

<histogram name="Enterprise.VpdUpdateStatus">
  <owner>igorcov@chromium.org</owner>
  <owner>tnagel@chromium.org</owner>
  <summary>
    The status code (exit code or signal) from VPD update operation (Chrome OS).
  </summary>
</histogram>

<histogram name="Enterprise.WildcardLoginCheck.DelayPolicyTokenFetch"
    units="ms">
  <owner>mnissler@chromium.org</owner>
  <summary>
    Delay incurred by the token fetching step of the wildcard login check.
  </summary>
</histogram>

<histogram name="Enterprise.WildcardLoginCheck.DelayTotal" units="ms">
  <owner>mnissler@chromium.org</owner>
  <summary>Total delay incurred by the wildcard login check.</summary>
</histogram>

<histogram name="Enterprise.WildcardLoginCheck.DelayUserInfoFetch" units="ms">
  <owner>mnissler@chromium.org</owner>
  <summary>
    Delay incurred by the user info fetching step of the wildcard login check.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.DeprecatedDomainBindSucceeded"
    enum="BooleanSuccess">
  <obsolete>
    Deprecated 07/2016 in Issue 621270.
  </obsolete>
  <owner>mnissler@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    Whether we were able to contact the AD Domain Controller. This check is
    performed once at start-up on Windows.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.DeprecatedDomainCheckFailed"
    enum="EnterpriseCheckError">
  <obsolete>
    Deprecated 07/2016 in Issue 621270.
  </obsolete>
  <owner>mnissler@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    Enum of possible things that can fail while checking for enterprise env.
    This check is performed once at start-up on Windows.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.InDomain" enum="BooleanEnabled">
  <owner>mnissler@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    Whether the machine is part of an AD domain. This check is performed once at
    start-up on Windows.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.InvalidJsonPolicies" enum="EnterprisePolicies">
  <owner>olsen@chromium.org</owner>
  <summary>
    A set of policy rules that failed validation due to unparsable JSON, or JSON
    that did not match the schema. This validation happens on start-up and when
    the policy has changed.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.InvalidPolicies" enum="EnterprisePolicies">
  <owner>mnissler@chromium.org</owner>
  <summary>
    A set of policy rules that were ignored due to integrity violations while
    parsing the policy data which happens on start-up and when the policy has
    changed.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.InvalidPoliciesDetected"
    units="disabled policies">
  <owner>mnissler@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    The number of disabled policy entries on Windows due to integrity violations
    while parsing the policy data which happens on start-up and when the policy
    has changed.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.IsDomainJoined" enum="BooleanEnabled">
  <owner>mad@chromium.org</owner>
  <summary>
    Whether the machine is joined to an AD domain. This check is performed once
    at start-up on Windows.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.IsEnterpriseUser" enum="BooleanEnabled">
  <owner>rogerta@chromium.org</owner>
  <summary>
    Whether the machine is considered an enterprise user. An enterprise user is
    either in a domain or is managed via MDM. This check is performed once at
    start-up on Windows.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.IsLocalMachine" enum="Boolean">
  <owner>mad@chromium.org</owner>
  <summary>
    Whether the full machine name is the same as the short one, identifying a
    local machine. This check is performed once at start-up on Windows.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.IsLocalUser" enum="Boolean">
  <owner>mad@chromium.org</owner>
  <summary>
    Whether the currently logged in user is a local user or not, based on its
    SAM compatible user name and machine name. This check is performed once at
    start-up on Windows.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.IsManaged" enum="BooleanEnabled">
  <owner>rogerta@chromium.org</owner>
  <summary>
    Whether the machine is managed via MDM. This check is performed once at
    start-up on Windows.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.NetGetJoinInformationAddress"
    enum="BooleanEnabled">
  <owner>rogerta@chromium.org</owner>
  <summary>
    Whether we could obtain the address of the NetGetJoinInformation function.
    This check is performed once at start-up on Windows.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.OSType" enum="OsSuite">
  <owner>mnissler@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    The rough Windows suite we are running on. This check is performed once at
    start-up on Windows.
  </summary>
</histogram>

<histogram name="EphemeralTab.CloseReason"
    enum="OverlayPanel.StateChangeReason" expires_after="M76">
  <owner>donnd@chromium.org</owner>
  <owner>jinsukkim@chromium.org</owner>
  <summary>
    Records the reason that the Ephemeral Tab panel was closed. Recorded when
    the UX is hidden. Implemented for Android.
  </summary>
</histogram>

<histogram name="EphemeralTab.Ctr" enum="BooleanOpened" expires_after="M76">
  <owner>donnd@chromium.org</owner>
  <owner>jinsukkim@chromium.org</owner>
  <summary>
    Records whether the user opened the Ephemeral Tab panel when it was shown.
    Recorded when the UX is hidden. Implemented for Android.
  </summary>
</histogram>

<histogram name="Event.ActionAfterDoubleTapNoDelay" enum="ActionAfterDoubleTap">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    On non-mobile sites, gesture taps are delayed to prevent double taps from
    sending a click event. This stat tracks the user's first action within 5
    seconds after a double tap gesture when the gesture tap delay is disabled.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.ActionAfterDoubleTapWithDelay"
    enum="ActionAfterDoubleTap">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    On non-mobile sites, gesture taps are delayed to prevent double taps from
    sending a click event. This stat tracks the user's first action within 5
    seconds after a double tap gesture when gesture tap events are delayed.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.AggregatedLatency.Renderer2" units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of any input event and the renderer receiving and
    starting to process it.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.AndroidActionDown.ToolType" enum="MotionEventToolType">
  <owner>mustaq@chromium.org</owner>
  <summary>
    Tracks the number of Android MotionEvents with ACTION_DOWN or
    ACTION_POINTER_DOWN or ACTION_BUTTON_PRESS for each ToolType (unknown,
    finger, mouse or stylus).

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.AsyncTargeting.AsyncClientDepth" units="clients">
  <owner>riajiang@chromium.org</owner>
  <owner>event-targeting@chromium.org</owner>
  <summary>
    Tracks how many clients were queried (asynchronously) to determine the
    target for an input event.
  </summary>
</histogram>

<histogram name="Event.AsyncTargeting.ResponseTime" units="ms">
  <owner>riajiang@chromium.org</owner>
  <summary>
    Tracks how long it takes for a client to respond to an asynchronous request
    to find a target for an input event.

    Team: event-targeting@chromium.org.
  </summary>
</histogram>

<histogram name="Event.AsyncTargeting.TimeInQueue" units="ms">
  <owner>riajiang@chromium.org</owner>
  <summary>
    Tracks how long an event has to wait in the queue while a previous event is
    being targeted asynchronously.

    Team: event-targeting@chromium.org.
  </summary>
</histogram>

<histogram name="Event.ClickNotFiredDueToDomManipulation" enum="BooleanHit">
  <owner>nzolghadr@chromium.org</owner>
  <summary>
    Whether click target was affected by DOM manipulation or not.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.CoalescedCount.Mouse">
  <owner>tdresser@chromium.org</owner>
  Team: input-dev@chromium.org.
  <summary>Number of Mouse events coalesced.</summary>
</histogram>

<histogram name="Event.CoalescedCount.Touch">
  <owner>tdresser@chromium.org</owner>
  Team: input-dev@chromium.org.
  <summary>Number of Touch events coalesced.</summary>
</histogram>

<histogram name="Event.CoalescedLatency.Mouse" units="ms">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between the first and last events in a coalesced mouse events group.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.CoalescedLatency.Touch" units="ms">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between the first and last events in a coalesced touch events group.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.CompositorThreadEventQueue.CoalescedCount"
    units="events">
  <obsolete>
    Deprecated 01/2019 due to lack of usage.
  </obsolete>
  <owner>eirage@chromium.org</owner>
  <summary>
    Number of continuous gesture events (GestureScrollUpdate,
    GesturePinchUpdate) coalesced inside the compositor thread event queue per
    event. This field is recorded just before the event is processed on the
    compositor thread.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.CompositorThreadEventQueue.Continuous.HeadQueueingTime"
    units="microseconds">
  <obsolete>
    Deprecated 01/2019 due to lack of usage.
  </obsolete>
  <owner>eirage@chromium.org</owner>
  <summary>
    Time between the first event in a coalesced continuous gesture events group
    (GestureScrollUpdate, GesturePinchUpdate) and when it was processed on the
    compositor thread.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.CompositorThreadEventQueue.Continuous.TailQueueingTime"
    units="microseconds">
  <obsolete>
    Deprecated 01/2019 due to lack of usage.
  </obsolete>
  <owner>eirage@chromium.org</owner>
  <summary>
    Time between the last event in a coalesced continuous gesture events group
    (GestureScrollUpdate, GesturePinchUpdate) and when it was processed on the
    compositor thread.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.CompositorThreadEventQueue.NonContinuous.QueueingTime"
    units="microseconds">
  <obsolete>
    Deprecated 01/2019 due to lack of usage.
  </obsolete>
  <owner>eirage@chromium.org</owner>
  <summary>
    Time between when a non-continuous gesture event (GestureScrollStart/End,
    GesturePinchStart/End) was placed into the queue and when it was processed
    on the compositor thread.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.DownEventCount.PerDestination"
    enum="DownEventDestination">
  <obsolete>
    Deprecated 01/2018 in favor of
    Event.DownEventCount.PerInputFormFactorDestinationCombination.
  </obsolete>
  <owner>xiaoyinh@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    The number of down events received per destination. Every down event that is
    targeted to each destination will be counted, including those that don't
    have an effect. For example: Tapping on a disabled button inside the browser
    frame will be treated as down events on browser window.
  </summary>
</histogram>

<histogram name="Event.DownEventCount.PerFormFactor" enum="DownEventFormFactor">
  <obsolete>
    Deprecated 01/2018 in favor of
    Event.DownEventCount.PerInputFormFactorDestinationCombination.
  </obsolete>
  <owner>xiaoyinh@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    Counts the number of down events generated by clamshell/touchview.
  </summary>
</histogram>

<histogram name="Event.DownEventCount.PerInput" enum="DownEventSource">
  <obsolete>
    Deprecated 01/2018 in favor of
    Event.DownEventCount.PerInputFormFactorDestinationCombination.
  </obsolete>
  <owner>xiaoyinh@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    Counts the number of down events generated by Mouse/Touch/Stylus.
  </summary>
</histogram>

<histogram name="Event.DownEventCount.PerInputFormFactorDestinationCombination"
    enum="DownEventInputFormFactorDestinationCombination" expires_after="M76">
  <owner>tbuckley@chromium.org</owner>
  <summary>
    Deprecated 02/2019 in favor of
    Event.DownEventCount.PerInputFormFactorDestinationCombination2.

    The number of down events received per input, form factor, and destination
    combination.

    Input is down events generated by mouse/touch/stylus. Form factor is down
    events generated by clamshell/touchviewLandscape/touchviewPortrait.
    Destination: Every down event that is targeted to each destination will be
    counted including those that don't have an effect. For example: Tapping on a
    disabled button inside the browser frame will be treated as down events on
    browser window.
  </summary>
</histogram>

<histogram
    name="Event.DownEventCount.PerInputFormFactorDestinationCombination2"
    enum="DownEventInputFormFactorDestinationCombination2" expires_after="M76">
  <owner>tbuckley@chromium.org</owner>
  <summary>
    The number of down events received per destination, input and form factor
    combination.

    Input is down events generated by mouse/touch/stylus. Form factor is down
    events generated by clamshell/touchviewLandscape/touchviewPortrait.
    Destination: Every down event that is targeted to each destination will be
    counted including those that don't have an effect. For example: Tapping on a
    disabled button inside the browser frame will be treated as down events on
    browser window.
  </summary>
</histogram>

<histogram name="Event.DragDrop.AcceptDragUpdate" enum="Boolean">
  <owner>dcheng@chromium.org</owner>
  <owner>sadrul@chromium.org</owner>
  <summary>
    Reports whether chrome accepts or rejects a drag and drop operation.

    During a drag and drop operation, there are many 'drag update' events that
    happen for each mouse-move event. For each such drag-update event, chrome
    reports whether it is able to accept the drop event or not.
  </summary>
</histogram>

<histogram name="Event.DragDrop.Cancel" enum="DragDropEventSource">
  <owner>nzolghadr@chromium.org</owner>
  <summary>
    Counts the number of times the user cancelled a drag and drop operation.
  </summary>
</histogram>

<histogram name="Event.DragDrop.Drop" enum="DragDropEventSource">
  <owner>nzolghadr@chromium.org</owner>
  <summary>
    Counts the number of times the user completed a drag and drop operation.
  </summary>
</histogram>

<histogram name="Event.DragDrop.ExternalOriginDrop">
  <owner>nzolghadr@chromium.org</owner>
  <summary>
    Counts the number of times a drag and drop operation originating outside of
    a Chrome window successfuly drops.
  </summary>
</histogram>

<histogram name="Event.DragDrop.Start" enum="DragDropEventSource">
  <owner>nzolghadr@chromium.org</owner>
  <summary>
    Counts the number of times the user started a drag and drop operation.
  </summary>
</histogram>

<histogram name="Event.FractionOfTimeWithoutUserInput" units="%">
  <owner>tdresser@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    For each 10 second window, reports the fraction of the time there was no
    user input. We consider there to be no user input if we haven't received any
    events for &gt; 50ms.
  </summary>
</histogram>

<histogram name="Event.FrameEventRouting.NoGestureTarget">
  <owner>wjmaclean@chromium.org</owner>
  <summary>
    Record whether we unexpectedly encounter an empty gesture queue while
    routing gesture events to frames' renderers: true =&gt; empty queue, false
    =&gt; non-empty queue.
  </summary>
</histogram>

<histogram name="Event.FrameEventRouting.TouchEventAckQueueSize"
    expires_after="2019-12-31">
  <owner>wjmaclean@chromium.org</owner>
  <owner>kenrb@chromium.org</owner>
  <summary>
    The size of the TouchEventAckQueue, recorded each time we process an event
    ack (the queue usually, but not always, decreases in size during ack
    processing). Ideally this queue will operate at length close to zero,
    depending on how long it takes for events to travel to a renderer and be
    processed and an ack sent back. As the size increases it indicates decreased
    responsiveness of renderers with respect to touch events. One purpose of
    this metric is to develop a sense of normal queue sizes for different
    platforms. Initially we expect queue length to be less than 20 most of the
    time, but this is a guess.
  </summary>
</histogram>

<histogram name="Event.Frequency.Renderer.FlingAnimate" units="hertz">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Emitted after a renderer process main-thread fling curve animation
    terminates, for any reason, reporting the average animation frequency
    (animations/second) of the fling instance over its lifetime. This is
    computed as the number of fling animation ticks divided by the fling
    animation duration.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Frequency.RendererImpl.FlingAnimate" units="hertz">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Emitted after a renderer process impl-thread fling curve animation
    terminates, for any reason, reporting the average animation frequency
    (animations/second) of the fling instance over its lifetime. This is
    computed as the number of fling animation ticks divided by the fling
    animation duration.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.GestureCreated" enum="UIEventType">
  <owner>kuscher@google.com</owner>
  <summary>
    The gesture-events recognized and dispatched by the browser gesture
    recognizer. This replaces Ash.GestureCreated, which did not record events on
    Android and Windows.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.HitTest" enum="EventHitTest">
  <owner>dtapuska@chromium.org</owner>
  <summary>
    For each hit test, records whether it was a hit or miss, and why.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.HitTestValidity" enum="EventHitTestValidity">
  <owner>dtapuska@chromium.org</owner>
  <summary>
    For hit tests that are validated, records whether it was correct or not, and
    why.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.HitTestValidityScore" enum="EventHitTestValidityScore">
  <owner>dtapuska@chromium.org</owner>
  <summary>
    For hit tests that are invalid, records the score (a series of bits
    indicating what was matched and what wasn't).

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.InputEventPrediction.Accuracy.Mouse" units="pixels">
<!-- Name completed by histogram_suffixes
            name="InputEventPredictionAccuracy" -->

  <owner>eirage@chromium.org</owner>
  <summary>
    Records the euclidean distance from a mouse event's position to the
    predicted position at the event time when prediction is available.
    Prediction is available after the predictor selected by feature flag gets a
    few continuous mouse events.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.InputEventPrediction.Accuracy.Scroll" units="pixels">
<!-- Name completed by histogram_suffixes
            name="InputEventPredictionAccuracy" -->

  <owner>eirage@chromium.org</owner>
  <summary>
    Records the euclidean distance from a ScrollUpdate event's absolute scroll
    position (count by accumulated delta) to the predicted scrolling position at
    the event time when prediction is available. Prediction is available after
    the predictor selected by feature flag gets a few continuous
    GestureScrollUpdate events.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.InputEventPrediction.Accuracy.Scroll.OverPredict"
    units="pixels" expires_after="M80">
<!-- Name completed by histogram_suffixes
            name="InputEventPredictionAccuracy" -->

  <owner>eirage@chromium.org</owner>
  <summary>
    Records y direction distance from a ScrollUpdate event's absolute scroll
    position (count by accumulated delta) to the predicted scrolling position at
    the event time when prediction is available and also the predicted result is
    'OverPredict'. Over predict means the absolute value of predicted scroll
    delta is larger than the real delta in the same time period.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.InputEventPrediction.Accuracy.Scroll.UnderPredict"
    units="pixels" expires_after="M80">
<!-- Name completed by histogram_suffixes
            name="InputEventPredictionAccuracy" -->

  <owner>eirage@chromium.org</owner>
  <summary>
    Records y direction distance from a ScrollUpdate event's absolute scroll
    position (count by accumulated delta) to the predicted scrolling position at
    the event time when prediction is available and also the predicted result is
    'UnderPredict'. Under predict means the absolute value of predicted scroll
    delta is smaller than the real delta in the same time period.
    GestureScrollUpdate events.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.InputEventPrediction.Accuracy.Touch" units="pixels">
<!-- Name completed by histogram_suffixes
            name="InputEventPredictionAccuracy" -->

  <owner>eirage@chromium.org</owner>
  <summary>
    Records the euclidean distance from a touch event's position to the
    predicted position at the event time when prediction is available.
    Prediction is available after the predictor selected by feature flag gets a
    few continuous touches with same ids.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.BlockingTime.KeyPressDefaultAllowed" units="ms">
  <owner>tdresser@chromium.org</owner>
  <owner>input-dev@chromium.org</owner>
  <summary>
    Time between the renderer main thread receiving a keyboard event and acking
    it, for events which were not preventDefaulted. Only recorded for key
    presses.
  </summary>
</histogram>

<histogram name="Event.Latency.BlockingTime.KeyPressDefaultPrevented"
    units="ms">
  <owner>tdresser@chromium.org</owner>
  <owner>input-dev@chromium.org</owner>
  <summary>
    Time between the renderer main thread receiving a keyboard event and acking
    it, for events which were preventDefaulted. Only recorded for key presses.
  </summary>
</histogram>

<histogram name="Event.Latency.BlockingTime.TouchEndDefaultAllowed" units="ms">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between the renderer main thread receiving a touchend event and acking
    it, for events which were not preventDefaulted.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.BlockingTime.TouchEndDefaultPrevented"
    units="ms">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between the renderer main thread receiving a touchend event and acking
    it, for events which were preventDefaulted.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.BlockingTime.TouchMoveDefaultAllowed" units="ms">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between the renderer main thread receiving a touchmove event and acking
    it, for events which were not preventDefaulted.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.BlockingTime.TouchMoveDefaultPrevented"
    units="ms">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between the renderer main thread receiving a touchmove event and acking
    it, for events which were preventDefaulted.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.BlockingTime.TouchStartDefaultAllowed"
    units="ms">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between the renderer main thread receiving a touchstart event and
    acking it, for events which were not preventDefaulted.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.BlockingTime.TouchStartDefaultPrevented"
    units="ms">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between the renderer main thread receiving a touchstart event and
    acking it, for events which were preventDefaulted.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of all input events and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_DROP_TARGET_EVENT"
    units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_GESTURE_BEGIN" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_GESTURE_DOUBLE_TAP"
    units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_GESTURE_END" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_GESTURE_LONG_PRESS"
    units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_GESTURE_LONG_TAP"
    units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_GESTURE_MULTIFINGER_SWIPE"
    units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_GESTURE_PINCH_BEGIN"
    units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_GESTURE_PINCH_END"
    units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_GESTURE_PINCH_UPDATE"
    units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_GESTURE_SCROLL_BEGIN"
    units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_GESTURE_SCROLL_END"
    units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_GESTURE_SCROLL_UPDATE"
    units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_GESTURE_TAP" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_GESTURE_TAP_CANCEL"
    units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_GESTURE_TAP_DOWN"
    units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_GESTURE_TWO_FINGER_TAP"
    units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_KEY_PRESSED" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_KEY_RELEASED" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_MOUSE_CAPTURE_CHANGED"
    units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_MOUSE_DRAGGED" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_MOUSE_ENTERED" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_MOUSE_EXITED" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_MOUSE_MOVED" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_MOUSE_RELEASED" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_MOUSEWHEEL" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_SCROLL" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_SCROLL_FLING_CANCEL"
    units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_SCROLL_FLING_START"
    units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_TOUCH_CANCELLED" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_TOUCH_MOVED" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_TOUCH_PRESSED" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_TOUCH_RELEASED" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_TOUCH_STATIONARY"
    units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_TRANSLATED_KEY_PRESS"
    units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_TRANSLATED_KEY_RELEASE"
    units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.ET_UNKNOWN" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of input event and browser processing.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.KeyPressAcked" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between key events sent from RWH to renderer and acked by renderer.
    Only monitors key presses.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.KeyPressUI" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between key events received by Chrome and sent from RWH to renderer.
    Only monitors key presses.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.TouchAcked" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between touch events sent from RWH to renderer and acked by renderer.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.TouchUI" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between touch events received by Chrome and sent from RWH to renderer.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.WheelAcked" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>ccameron@chromium.org</owner>
  <summary>
    Time between wheel events sent from RWH to renderer and acked by renderer.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Browser.WheelUI" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>ccameron@chromium.org</owner>
  <summary>
    Time between wheel events received by Chrome and sent from RWH to renderer.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.EndToEnd.KeyPress" units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <owner>input-dev@chromium.org</owner>
  <summary>
    Time between the OS receiving a keyboard event and the resulting GPU frame
    swap. If no swap was induced by the event, no recording is made. Only
    recorded for key presses.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.EndToEnd.Mouse" units="microseconds">
  <owner>input-dev@chromium.org</owner>
  <summary>
    Time between the OS receiving a mouse event and the resulting GPU frame
    swap. If no swap was induced by the event, no recording is made.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.EndToEnd.TouchpadPinch" units="microseconds">
  <owner>input-dev@chromium.org</owner>
  <summary>
    Time between the OS receiving a touchpad pinch event and the resulting GPU
    frame swap. If no swap was induced by the event, no recording is made.
  </summary>
</histogram>

<histogram name="Event.Latency.EventToRender.TouchpadPinch"
    units="microseconds">
  <owner>input-dev@chromium.org</owner>
  <summary>
    Time between the OS receiving a touchpad pinch event and RenderWidgetHost
    sending event to render.
  </summary>
</histogram>

<histogram name="Event.Latency.HitTest" units="microseconds">
  <owner>paint-dev@chromium.org</owner>
  <owner>schenney@chromium.org</owner>
  <summary>
    Duration of a non-resurive hitTest operation. The hit test is non-recursive
    when the AllowChildFrameContent flag is clear. See also
    Event.Latency.HitTestRecusrive.

    Team: paint-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.HitTestRecursive" units="microseconds">
  <owner>paint-dev@chromium.org</owner>
  <owner>schenney@chromium.org</owner>
  <summary>
    Duration of a recursive hitTest operation. The hit test is recursive when
    the AllowChildFrameContent flag is set. See also Event.Latency.HitTest.

    Team: paint-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.OS" units="microseconds">
  <owner>tdresser@chromium.org</owner>
  Team: input-dev@chromium.org.
  <summary>
    Time between input event received by OS and sent to Chrome.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.QueueingTime.KeyPressDefaultAllowed" units="ms">
  <owner>tdresser@chromium.org</owner>
  <owner>input-dev@chromium.org</owner>
  <summary>
    Time between sending a keyboard event to the renderer main thread and when
    the renderer begins to process that event, for events which were not
    preventDefaulted. Only recorded for key presses.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.QueueingTime.KeyPressDefaultPrevented"
    units="ms">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between sending a keyboard event to the renderer main thread and when
    the renderer begins to process that event, for events which were
    preventDefaulted. Only recorded for key presses.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.QueueingTime.TouchEndDefaultAllowed" units="ms">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between sending a touchend event to the renderer main thread and when
    the renderer begins to process that event, for events which were not
    preventDefaulted.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.QueueingTime.TouchEndDefaultPrevented"
    units="ms">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between sending a touchend event to the renderer main thread and when
    the renderer begins to process that event, for events which were
    preventDefaulted.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.QueueingTime.TouchMoveDefaultAllowed" units="ms">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between sending a touchmove event to the renderer main thread and when
    the renderer begins to process that event, for events which were not
    preventDefaulted.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.QueueingTime.TouchMoveDefaultPrevented"
    units="ms">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between sending a touchmove event to the renderer main thread and when
    the renderer begins to process that event, for events which were
    preventDefaulted.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.QueueingTime.TouchStartDefaultAllowed"
    units="ms">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between sending a touchstart event to the renderer main thread and when
    the renderer begins to process that event, for events which were not
    preventDefaulted.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.QueueingTime.TouchStartDefaultPrevented"
    units="ms">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between sending a touchstart event to the renderer main thread and when
    the renderer begins to process that event, for events which were
    preventDefaulted.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Renderer" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initiation of all input events and renderer processing. This is
    soon to be replaced by Event.Latency.Renderer2.*

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Renderer2" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between input event creation and the renderer receiving and starting to
    process the event. For touch events on Windows, we measure from when the
    event reaches Chrome, whereas on other platforms we use the timestamp from
    the kernel. On Windows, this metric is only reported when |IsHighResolution|
    is true, which will introduce some sampling bias.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.RendererImpl" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between input event creation and the renderer impl thread receiving and
    starting to process the event. For touch events on Windows, we measure from
    when the event reaches Chrome, whereas on other platforms we use the
    timestamp from the kernel. On Windows, this metric is only reported when
    |IsHighResolution| is true, which will introduce some sampling bias.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.RendererImpl.GestureScroll" units="microseconds">
  <obsolete>
    Deprecated 12/2013 and replaced by Event.Latency.RendererImpl.GestureScroll2
  </obsolete>
  <owner>rbyers@chromium.org</owner>
  <summary>
    Time between initial creation of touch event and when the resulting
    ScrollGesture reaches Impl thread. Maximum is 200ms.
  </summary>
</histogram>

<histogram name="Event.Latency.RendererImpl.GestureScroll2"
    units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between touch event creation and when the resulting GestureScroll
    reaches the Impl thread. Maximum is 1000ms. On Windows, we measure from when
    the touch event reaches Chrome, whereas on other platforms we use the
    timestamp from the kernel. On Windows, this metric is only reported when
    |IsHighResolution| is true, which will introduce some sampling bias. This
    supersedes the Event.Latency.RendererImpl.GestureScroll metric.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Scroll.Wheel.TimeToHandled2"
    units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a wheel event and the generated
    ScrollUpdate gesture event is handled on main/impl thread (specified by
    suffix). If no swap was induced by the ScrollUpdate gesture event, no
    recording is made. Unlike Event.Latency.ScrollUpdate.Wheel.TimeToHandled2
    this metric includes the first GSU of every scrolling sequence as well.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.Scroll.Wheel.TimeToScrollUpdateSwapBegin2"
    units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a wheel event and start of the frame swap
    on the GPU service caused by the generated ScrollUpdate gesture event. If no
    swap was induced by the event, no recording is made. Unlike
    Event.Latency.ScrollUpdate.Wheel.TimeToScrollUpdateSwapBegin2 this metric
    includes the first GSU of every scrolling sequence as well.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollBegin.TimeToScrollUpdateSwapBegin"
    units="microseconds">
  <obsolete>
    Replaced by *.TimeToScrollUpdateSwapBegin2 https://crbug.com/849735 in M68.
  </obsolete>
  <owner>nzolghadr@chromium.org</owner>
  <summary>
    Time between initial creation of a wheel/touch event and start of the frame
    swap on the GPU service caused by the generated ScrollUpdate gesture event
    if that ScrollUpdate is the first such event in a given scroll gesture event
    sequence. If no swap was induced by the event, no recording is made. If no
    swap was induced by the event, no recording is made.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollBegin.TimeToScrollUpdateSwapBegin2"
    units="microseconds">
  <owner>nzolghadr@chromium.org</owner>
  <summary>
    Time between initial creation of a wheel/touch event and start of the frame
    swap on the GPU service caused by the generated ScrollUpdate gesture event
    if that ScrollUpdate is the first such event in a given scroll gesture event
    sequence. If no swap was induced by the event, no recording is made. If no
    swap was induced by the event, no recording is made.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollBegin.Touch.AverageLag" units="pixels"
    expires_after="M79">
  <owner>eirage@chromium.org</owner>
  <owner>nzolghadr@chromium.org</owner>
  <summary>
    Measures an average distance that represents how the page sticks to the
    finger when user scrolls. Only reports touch scrolling. See
    https://docs.google.com/document/d/154jddNiKtxELBvrjLz9v6A7sA1J3iwQQzySHgtY12Oo/

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram
    name="Event.Latency.ScrollBegin.Touch.BrowserNotifiedToBeforeGpuSwap2"
    units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between the browser receives the notification of the first ScrollUpdate
    gesture event in a given scroll gesture event sequence with touch source
    induced renderer swap and GPU starts to swap.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollBegin.Touch.GpuSwap2" units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between gpu starts to swap the first ScrollUpdate gesture event in a
    given scroll gesture event sequence with touch source induced frame and the
    swap finishes.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollBegin.Touch.HandledToRendererSwap2"
    units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between the first ScrollUpdate gesture event in a given scroll gesture
    event sequence with touch source, is handled on main/impl thread (specified
    by suffix) and before renderer starts to swap.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram
    name="Event.Latency.ScrollBegin.Touch.RendererSwapToBrowserNotified2"
    units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between the renderer starts to swap a frame induced by the first
    ScrollUpdate gesture event in a given scroll gesture event sequence with
    touch source, and browser receives the swap notification.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollBegin.Touch.TimeToHandled2"
    units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a touch event and the first generated
    ScrollUpdate gesture event in a given scroll gesture event sequence is
    handled on main/impl thread (specified by suffix). If no swap was induced by
    the ScrollUpdate gesture event, no recording is made.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollBegin.Touch.TimeToScrollUpdateSwapBegin2"
    units="microseconds">
  <obsolete>
    Replaced by *.TimeToScrollUpdateSwapBegin4 https://crbug.com/849735 in M68.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a touch event and the start of the frame
    swap on the GPU service caused by the generated ScrollUpdate gesture event
    if that ScrollUpdate is the first such event in a given scroll gesture event
    sequence. If no swap was induced by the event, no recording is made. This is
    going to be replaced by *.TimeToScrollUpdateSwapBegin3 version since a
    rebucketing change made this metric lose its usefulness in Chirp
    infrastructure.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollBegin.Touch.TimeToScrollUpdateSwapBegin3"
    units="microseconds">
  <obsolete>
    Replaced by *.TimeToScrollUpdateSwapBegin4 https://crbug.com/849735 in M68.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a touch event and the start of the frame
    swap on the GPU service caused by the generated ScrollUpdate gesture event
    if that ScrollUpdate is the first such event in a given scroll gesture event
    sequence. If no swap was induced by the event, no recording is made.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollBegin.Touch.TimeToScrollUpdateSwapBegin4"
    units="microseconds" expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->

  <owner>tdresser@chromium.org</owner>
  <owner>input-dev@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    Time between initial creation of a touch event and the start of the frame
    swap on the GPU service caused by the generated ScrollUpdate gesture event
    if that ScrollUpdate is the first such event in a given scroll gesture event
    sequence. If no swap was induced by the event, no recording is made.

    Do not modify this metric in any way without contacting
    speed-metrics-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram
    name="Event.Latency.ScrollBegin.Wheel.BrowserNotifiedToBeforeGpuSwap2"
    units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between the browser receives the notification of the first ScrollUpdate
    gesture event in a given scroll gesture event sequence with wheel source
    induced renderer swap and GPU starts to swap.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollBegin.Wheel.GpuSwap2" units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between gpu starts to swap the first ScrollUpdate gesture event in a
    given scroll gesture event sequence with wheel source induced frame and the
    swap finishes.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollBegin.Wheel.HandledToRendererSwap2"
    units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between the first ScrollUpdate gesture event in a given scroll gesture
    event sequence with wheel source, is handled on main/impl thread (specified
    by suffix) and before renderer starts to swap.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram
    name="Event.Latency.ScrollBegin.Wheel.RendererSwapToBrowserNotified2"
    units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between the renderer starts to swap a frame induced by the first
    ScrollUpdate gesture event in a given scroll gesture event sequence with
    wheel source, and browser receives the swap notification.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollBegin.Wheel.TimeToHandled2"
    units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a wheel event and the first generated
    ScrollUpdate gesture event in a given scroll gesture event sequence is
    handled on main/impl thread (specified by suffix). If no swap was induced by
    the ScrollBegin gesture event, no recording is made.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollBegin.Wheel.TimeToScrollUpdateSwapBegin2"
    units="microseconds">
  <obsolete>
    Replaced by *.TimeToScrollUpdateSwapBegin4 https://crbug.com/849735 in M68.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a wheel event and the start of the frame
    swap on the GPU service caused by the generated ScrollUpdate gesture event
    if that ScrollUpdate is the first such event in a given scroll gesture event
    sequence. If no swap was induced by the event, no recording is made. This is
    going to be replaced by *.TimeToScrollUpdateSwapBegin3 version since a
    rebucketing change made this metric lose its usefulness in Chirp
    infrastructure.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollBegin.Wheel.TimeToScrollUpdateSwapBegin3"
    units="microseconds">
  <obsolete>
    Replaced by *.TimeToScrollUpdateSwapBegin4 https://crbug.com/849735 in M68.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a wheel event and the start of the frame
    swap on the GPU service caused by the generated ScrollUpdate gesture event
    if that ScrollUpdate is the first such event in a given scroll gesture event
    sequence. If no swap was induced by the event, no recording is made.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollBegin.Wheel.TimeToScrollUpdateSwapBegin4"
    units="microseconds" expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->

  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a wheel event and the start of the frame
    swap on the GPU service caused by the generated ScrollUpdate gesture event
    if that ScrollUpdate is the first such event in a given scroll gesture event
    sequence. If no swap was induced by the event, no recording is made.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram
    name="Event.Latency.ScrollInertial.Touch.BrowserNotifiedToBeforeGpuSwap2"
    units="microseconds">
  <owner>sahel@chromium.org</owner>
  <summary>
    Time between the browser receives the notification of a ScrollUpdate gesture
    generated from a touchscreen fling induced renderer swap and GPU starts to
    swap.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollInertial.Touch.GpuSwap2"
    units="microseconds">
  <owner>sahel@chromium.org</owner>
  <summary>
    Time between gpu starts to swap a ScrollUpdate gesture event generated from
    a touchscreen fling induced frame and the swap finishes.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollInertial.Touch.HandledToRendererSwap2"
    units="microseconds">
  <owner>sahel@chromium.org</owner>
  <summary>
    Time between a ScrollUpdate gesture event generated from a touchscreen
    fling, is handled on main/impl thread (specified by suffix) and before
    renderer starts to swap.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram
    name="Event.Latency.ScrollInertial.Touch.RendererSwapToBrowserNotified2"
    units="microseconds">
  <owner>sahel@chromium.org</owner>
  <summary>
    Time between the renderer starts to swap a frame induced by a ScrollUpdate
    gesture event generated from a touchscreen fling, and browser receives the
    swap notification.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollInertial.Touch.TimeToHandled2"
    units="microseconds">
  <owner>sahel@chromium.org</owner>
  <summary>
    Time between initial creation of a ScrollUpdate gesture event generated from
    a touchscreen fling is handled on main/impl thread (specified by suffix). If
    no swap was induced by the ScrollUpdate gesture event, no recording is made.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram
    name="Event.Latency.ScrollInertial.Touch.TimeToScrollUpdateSwapBegin2"
    units="microseconds">
  <obsolete>
    Replaced by *.TimeToScrollUpdateSwapBegin4 https://crbug.com/849735 in M68.
  </obsolete>
  <owner>sahel@chromium.org</owner>
  <summary>
    Time between initial creation of a ScrollUpdate gesture event generated from
    a touchscreen fling and the start of the frame swap on the GPU service
    caused by the generated ScrollUpdate gesture event. If no swap was induced
    by the event, no recording is made. This is going to be replaced by
    *.TimeToScrollUpdateSwapBegin3 version since a rebucketing change made this
    metric lose its usefulness in Chirp infrastructure.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram
    name="Event.Latency.ScrollInertial.Touch.TimeToScrollUpdateSwapBegin3"
    units="microseconds">
  <obsolete>
    Replaced by *.TimeToScrollUpdateSwapBegin4 https://crbug.com/849735 in M68.
  </obsolete>
  <owner>sahel@chromium.org</owner>
  <summary>
    Time between initial creation of a ScrollUpdate gesture event generated from
    a touchscreen fling and the start of the frame swap on the GPU service
    caused by the generated ScrollUpdate gesture event. If no swap was induced
    by the event, no recording is made.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram
    name="Event.Latency.ScrollInertial.Touch.TimeToScrollUpdateSwapBegin4"
    units="microseconds" expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->

  <owner>sahel@chromium.org</owner>
  <summary>
    Time between initial creation of a ScrollUpdate gesture event generated from
    a touchscreen fling and the start of the frame swap on the GPU service
    caused by the generated ScrollUpdate gesture event. If no swap was induced
    by the event, no recording is made.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollUpdate.BrowserNotifiedToBeforeGpuSwap"
    units="microseconds">
  <obsolete>
    To be replaced by
    Event.Latency.ScrollUpdate.Touch.BrowserNotifiedToBeforeGpuSwap2,
    Event.Latency.ScrollUpdate.Wheel.BrowserNotifiedToBeforeGpuSwap2 in M56.
    https://crbug.com/649754
  </obsolete>
  <owner>rbyers@chromium.org</owner>
  <summary>
    Time between the browser receives the notification of a ScrollUpdate gesture
    event induced renderer swap and GPU starts to swap.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollUpdate.GpuSwap" units="microseconds">
  <obsolete>
    To be replaced by Event.Latency.ScrollUpdate.Touch.GpuSwap2,
    Event.Latency.ScrollUpdate.wheel.GpuSwap2 in M56. https://crbug.com/649754
  </obsolete>
  <owner>rbyers@chromium.org</owner>
  <summary>
    Time between gpu starts to swap a ScrollUpdate gesture event induced frame
    and the swap finishes.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollUpdate.HandledToRendererSwap"
    units="microseconds">
  <obsolete>
    To be replaced by Event.Latency.ScrollUpdate.Touch.HandledToRendererSwap2,
    Event.Latency.ScrollUpdate.Wheel.HandledToRendererSwap2 in M56.
    https://crbug.com/649754
  </obsolete>
  <owner>rbyers@chromium.org</owner>
  <summary>
    Time between the ScrollUpdate gesture event is handled on main/impl thread
    (specified by suffix) and before renderer starts to swap.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollUpdate.RendererSwapToBrowserNotified"
    units="microseconds">
  <obsolete>
    To be replaced by
    Event.Latency.ScrollUpdate.Touch.RendererSwapToBrowserNotified2,
    Event.Latency.ScrollUpdate.Wheel.RendererSwapToBrowserNotified2 in M56.
    https://crbug.com/649754
  </obsolete>
  <owner>rbyers@chromium.org</owner>
  <summary>
    Time between the renderer starts to swap a frame induced by ScrollUpdate
    gesture event and browser receives the swap notification.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollUpdate.TimeToScrollUpdateSwapBegin"
    units="microseconds">
  <obsolete>
    Replaced by *.TimeToScrollUpdateSwapBegin2 https://crbug.com/849735 in M68.
  </obsolete>
  <owner>nzolghadr@chromium.org</owner>
  <summary>
    Time between initial creation of a wheel/touch event and start of the frame
    swap on the GPU service caused by the generated ScrollUpdate gesture event.
    If no swap was induced by the event, no recording is made. The first GSU of
    every scrolling sequence is excluded from this metric.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollUpdate.TimeToScrollUpdateSwapBegin2"
    units="microseconds">
  <owner>nzolghadr@chromium.org</owner>
  <summary>
    Time between initial creation of a wheel/touch event and start of the frame
    swap on the GPU service caused by the generated ScrollUpdate gesture event.
    If no swap was induced by the event, no recording is made. The first GSU of
    every scrolling sequence is excluded from this metric.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollUpdate.Touch.AverageLag" units="pixels"
    expires_after="M79">
  <owner>eirage@chromium.org</owner>
  <owner>nzolghadr@chromium.org</owner>
  <summary>
    Measures an average distance that represents how the page sticks to the
    finger when user scrolls. Only reports touch scrolling. See
    https://docs.google.com/document/d/154jddNiKtxELBvrjLz9v6A7sA1J3iwQQzySHgtY12Oo/

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram
    name="Event.Latency.ScrollUpdate.Touch.BrowserNotifiedToBeforeGpuSwap2"
    units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between the browser receives the notification of a ScrollUpdate gesture
    event with touch source induced renderer swap and GPU starts to swap.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollUpdate.Touch.GpuSwap2"
    units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between gpu starts to swap a ScrollUpdate gesture event with touch
    source induced frame and the swap finishes.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollUpdate.Touch.HandledToRendererSwap2"
    units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between the ScrollUpdate gesture event with touch source, is handled on
    main/impl thread (specified by suffix) and before renderer starts to swap.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram
    name="Event.Latency.ScrollUpdate.Touch.RendererSwapToBrowserNotified2"
    units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between the renderer starts to swap a frame induced by ScrollUpdate
    gesture event with touch source, and browser receives the swap notification.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram
    name="Event.Latency.ScrollUpdate.Touch.TimeToFirstScrollUpdateSwapBegin2"
    units="microseconds">
  <obsolete>
    Replaced by Event.Latency.ScrollBegin.Touch.TimeToScrollUpdateSwapBegin2.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a touch event and the start of the frame
    swap on the GPU service caused by the generated ScrollUpdate gesture event
    if that ScrollUpdate is the first such event in a given scroll gesture event
    sequence. If no swap was induced by the event, no recording is made.

    To be replaced by
    Event.Latency.ScrollBegin.Touch.TimeToScrollUpdateSwapBegin2 in M57.
    https://crbug.com/669618

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollUpdate.Touch.TimeToHandled2"
    units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a touch event and the generated
    ScrollUpdate gesture event is handled on main/impl thread (specified by
    suffix). If no swap was induced by the ScrollUpdate gesture event, no
    recording is made.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollUpdate.Touch.TimeToScrollUpdateSwapBegin2"
    units="microseconds">
  <obsolete>
    Replaced by *.TimeToScrollUpdateSwapBegin4 https://crbug.com/849735 in M68.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a touch event and start of the frame swap
    on the GPU service caused by the generated ScrollUpdate gesture event. If no
    swap was induced by the event, no recording is made. The first GSU of every
    scrolling sequence is excluded from this metric. This is going to be
    replaced by *.TimeToScrollUpdateSwapBegin3 version since a rebucketing
    change made this metric lose its usefulness in Chirp infrastructure.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollUpdate.Touch.TimeToScrollUpdateSwapBegin3"
    units="microseconds">
  <obsolete>
    Replaced by *.TimeToScrollUpdateSwapBegin4 https://crbug.com/849735 in M68.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a touch event and start of the frame swap
    on the GPU service caused by the generated ScrollUpdate gesture event. If no
    swap was induced by the event, no recording is made. The first GSU of every
    scrolling sequence is excluded from this metric.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollUpdate.Touch.TimeToScrollUpdateSwapBegin4"
    units="microseconds" expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->

  <owner>tdresser@chromium.org</owner>
  <owner>input-dev@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    Time between initial creation of a touch event and start of the frame swap
    on the GPU service caused by the generated ScrollUpdate gesture event. If no
    swap was induced by the event, no recording is made. The first GSU of every
    scrolling sequence is excluded from this metric.

    Do not modify this metric in any way without contacting
    speed-metrics-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollUpdate.TouchToHandled"
    units="microseconds">
  <obsolete>
    To be replaced by Event.Latency.ScrollUpdate.Touch.TimeToHandled2 in M56.
    https://crbug.com/649754
  </obsolete>
  <owner>rbyers@chromium.org</owner>
  <summary>
    Time between initial creation of a touch event and the generated
    ScrollUpdate gesture event is handled on main/impl thread (specified by
    suffix). If no swap was induced by the ScrollUpdate gesture event, no
    recording is made.
  </summary>
</histogram>

<histogram
    name="Event.Latency.ScrollUpdate.Wheel.BrowserNotifiedToBeforeGpuSwap2"
    units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between the browser receives the notification of a ScrollUpdate gesture
    event with wheel source induced renderer swap and GPU starts to swap.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollUpdate.Wheel.GpuSwap2"
    units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between gpu starts to swap a ScrollUpdate gesture event with wheel
    source induced frame and the swap finishes.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollUpdate.Wheel.HandledToRendererSwap2"
    units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between the ScrollUpdate gesture event with wheel source, is handled on
    main/impl thread (specified by suffix) and before renderer starts to swap.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram
    name="Event.Latency.ScrollUpdate.Wheel.RendererSwapToBrowserNotified2"
    units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between the renderer starts to swap a frame induced by ScrollUpdate
    gesture event with wheel source, and browser receives the swap notification.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram
    name="Event.Latency.ScrollUpdate.Wheel.TimeToFirstScrollUpdateSwapBegin2"
    units="microseconds">
  <obsolete>
    Replaced by Event.Latency.ScrollBegin.Wheel.TimeToScrollUpdateSwapBegin2.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a wheel event and the start of the frame
    swap on the GPU service caused by the generated ScrollUpdate gesture event
    if that ScrollUpdate is the first such event in a given scroll gesture event
    sequence. If no swap was induced by the event, no recording is made.

    To be replaced by
    Event.Latency.ScrollBegin.Wheel.TimeToScrollUpdateSwapBegin2 in M57.
    https://crbug.com/669618

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollUpdate.Wheel.TimeToHandled2"
    units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a wheel event and the generated
    ScrollUpdate gesture event is handled on main/impl thread (specified by
    suffix). If no swap was induced by the ScrollUpdate gesture event, no
    recording is made. The first GSU of every scrolling sequence is excluded
    from this metric.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollUpdate.Wheel.TimeToScrollUpdateSwapBegin2"
    units="microseconds">
  <obsolete>
    Replaced by *.TimeToScrollUpdateSwapBegin4 https://crbug.com/849735 in M68.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a wheel event and start of the frame swap
    on the GPU service caused by the generated ScrollUpdate gesture event. If no
    swap was induced by the event, no recording is made. The first GSU of every
    scrolling sequence is excluded from this metric. This is going to be
    replaced by *.TimeToScrollUpdateSwapBegin3 version since a rebucketing
    change made this metric lose its usefulness in Chirp infrastructure.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollUpdate.Wheel.TimeToScrollUpdateSwapBegin3"
    units="microseconds">
  <obsolete>
    Replaced by *.TimeToScrollUpdateSwapBegin4 https://crbug.com/849735 in M68.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a wheel event and start of the frame swap
    on the GPU service caused by the generated ScrollUpdate gesture event. If no
    swap was induced by the event, no recording is made. The first GSU of every
    scrolling sequence is excluded from this metric.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.ScrollUpdate.Wheel.TimeToScrollUpdateSwapBegin4"
    units="microseconds" expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->

  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a wheel event and start of the frame swap
    on the GPU service caused by the generated ScrollUpdate gesture event. If no
    swap was induced by the event, no recording is made. The first GSU of every
    scrolling sequence is excluded from this metric.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.Latency.Touch.TimeToFirstScrollUpdateSwapBegin2"
    units="microseconds">
  <obsolete>
    Replaced by
    Event.Latency.ScrollUpdate.Touch.TimeToFirstScrollUpdateSwapBegin2.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a touch event and the start of the frame
    swap on the GPU service caused by the generated ScrollUpdate gesture event
    if that ScrollUpdate is the first such event in a given scroll gesture event
    sequence. If no swap was induced by the event, no recording is made.
  </summary>
</histogram>

<histogram name="Event.Latency.Touch.TimeToScrollUpdateSwapBegin2"
    units="microseconds">
  <obsolete>
    Replaced by Event.Latency.ScrollUpdate.Touch.TimeToScrollUpdateSwapBegin2.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a touch event and start of the frame swap
    on the GPU service caused by the generated ScrollUpdate gesture event. If no
    swap was induced by the event, no recording is made.
  </summary>
</histogram>

<histogram name="Event.Latency.TouchToFirstScrollUpdateSwap"
    units="microseconds">
  <obsolete>
    Replaced by Event.Latency.TouchToFirstScrollUpdateSwapBegin.
    crbug.com/478845
  </obsolete>
  <owner>rbyers@chromium.org</owner>
  <summary>
    Time between initial creation of a touch event and the frame swap caused by
    by the generated ScrollUpdate gesture event if that ScrollUpdate is the
    first such in a given scroll gesture event sequence. If no swap was induced
    by the event, no recording is made.
  </summary>
</histogram>

<histogram name="Event.Latency.TouchToFirstScrollUpdateSwapBegin"
    units="microseconds">
  <obsolete>
    Replaced by Event.Latency.ScrollBegin.Touch.TimeToScrollUpdateSwapBegin2.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a touch event and the start of the frame
    swap on the GPU service caused by the generated ScrollUpdate gesture event
    if that ScrollUpdate is the first such event in a given scroll gesture event
    sequence. If no swap was induced by the event, no recording is made.

    To be replaced by
    Event.Latency.ScrollUpdate.Touch.TimeToFirstScrollUpdateSwapBegin2 in M56.
    https://crbug.com/649754

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.TouchToScrollUpdateSwap" units="microseconds">
  <obsolete>
    Replaced by Event.Latency.TouchToScrollUpdateSwapBegin. crbug.com/478845
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a touch event and the frame swap caused by
    by the generated ScrollUpdate gesture event. If no swap was induced by the
    event, no recording is made.
  </summary>
</histogram>

<histogram name="Event.Latency.TouchToScrollUpdateSwapBegin"
    units="microseconds">
  <obsolete>
    Replaced by Event.Latency.ScrollUpdate.Touch.TimeToScrollUpdateSwapBegin2.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a touch event and start of the frame swap
    on the GPU service caused by the generated ScrollUpdate gesture event. If no
    swap was induced by the event, no recording is made.

    To be replaced by
    Event.Latency.ScrollUpdate.Touch.TimeToScrollUpdateSwapBegin2 in M56.
    https://crbug.com/649754

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Latency.Wheel.TimeToFirstScrollUpdateSwapBegin2"
    units="microseconds">
  <obsolete>
    Replaced by
    Event.Latency.ScrollUpdate.Wheel.TimeToFirstScrollUpdateSwapBegin2.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between initial creation of a wheel event and the start of the frame
    swap on the GPU service caused by the generated ScrollUpdate gesture event
    if that ScrollUpdate is the first such event in a given scroll gesture event
    sequence. If no swap was induced by the event, no recording is made.
  </summary>
</histogram>

<histogram name="Event.Latency.X11EventSource.UpdateServerTime"
    units="microseconds">
  <obsolete>
    Deprecated 08/2016, and replaced by Linux.X11.ServerRTT.
  </obsolete>
  <owner>thomasanderson@chromium.org</owner>
  <summary>Time to request a timestamp from the X server.</summary>
</histogram>

<histogram name="Event.MainThreadEventQueue.CoalescedCount" units="events">
  <obsolete>
    Deprecated 03/2018 due to lack of usage.
  </obsolete>
  <owner>dtapuska@chromium.org</owner>
  <summary>
    Number of continuous events (touchmove, mousemove, mousewheel) coalesced
    inside the main thread event queue per event. This field is recorded just
    before the event is processed on the main thread.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.MainThreadEventQueue.Continuous.FreshnessTime"
    units="microseconds">
  <obsolete>
    Deprecated 01/2018 due to lack of usage.
  </obsolete>
  <owner>dtapuska@chromium.org</owner>
  <summary>
    Time between when a continuous event (touchmove, mousemove, mousewheel) was
    placed into the queue (or coalesced with another event) and when it was
    processed on the main thread.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.MainThreadEventQueue.Continuous.QueueingTime"
    units="microseconds">
  <obsolete>
    Deprecated 01/2018 due to lack of usage.
  </obsolete>
  <owner>dtapuska@chromium.org</owner>
  <summary>
    Time between when a continuous event (touchmove, mousemove, mousewheel) was
    placed into the queue and when it was processed on the main thread.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.MainThreadEventQueue.FlushQueueNoBeginMainFrame"
    enum="BooleanHit">
  <owner>dtapuska@chromium.org</owner>
  <summary>
    Whether the Begin Main Frame was not received and the queue generated a
    flush queue after a given timeout.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.MainThreadEventQueue.NonContinuous.QueueingTime"
    units="microseconds">
  <obsolete>
    Deprecated 01/2018 due to lack of usage.
  </obsolete>
  <owner>dtapuska@chromium.org</owner>
  <summary>
    Time between when a non-continuous event (not touchmove, mousemove,
    mousewheel) was placed into the queue and when it was processed on the main
    thread.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.PassiveForcedEventDispatchCancelled"
    enum="PassiveForcedListenerResultType">
  <owner>dtapuska@chromium.org</owner>
  <summary>
    Counts the number of event listener invocations that were forced to be
    passive due to interventions and whether the invocation of the listener
    called prevent default or not.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.PassiveListeners" enum="EventResultType">
  <owner>dtapuska@chromium.org</owner>
  <summary>
    The result of handling of MouseWheel, TouchStart, TouchMove, TouchEnd events
    in the renderer.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.PassiveListeners.ForcedNonBlockingLatency"
    units="microseconds">
  <obsolete>
    Deprecated 08/2016 in Issue 595327, and replaced by
    Event.PassiveListeners.ForcedNonBlockingLatencyDueToFling.
  </obsolete>
  <owner>dtapuska@chromium.org</owner>
  <summary>
    Time between when a forced non-blocking event was generated and the event
    processed. This histogram tracks the benefit of forcing non-blocking events
    listeners.
  </summary>
</histogram>

<histogram name="Event.PassiveListeners.ForcedNonBlockingLatencyDueToFling"
    units="microseconds">
  <owner>dtapuska@chromium.org</owner>
  <summary>
    Time between when a touchstart or first touchmove event per scroll was
    generated and the event processed, for events which were forced non-blocking
    since they occurred during fling. This histogram tracks the benefit of
    forcing events non-blocking during fling.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram
    name="Event.PassiveListeners.ForcedNonBlockingLatencyDueToUnresponsiveMainThread"
    units="microseconds">
  <obsolete>
    Deprecated 04/2018 due to cancellation of experiment.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between when a touchstart or first touchmove event per scroll was
    generated and the event processed, for events which were forced non-blocking
    since they occurred while the main thread was unresponsive. This histogram
    tracks the benefit of forcing events non-blocking when the main thread is
    unresponsive.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.PassiveListeners.Latency" units="microseconds">
  <owner>dtapuska@chromium.org</owner>
  <summary>
    Time between when a cancelable event was generated and the event processed
    yet no action was executed for the event. This histogram tracks the
    potential benefit of using passive events listeners.

    Team: input-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Event.RenderView.DiscardInput" enum="BooleanHit">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>dtapuska@chromium.org</owner>
  <summary>
    Whether the input IPC messages were discarded before being fully processed
    in RenderView's IPC message handler.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Scroll.ScrollerSize.OnLoad" units="pixels">
  <obsolete>
    Deprecated 10/2017 due to the completion of the experiment.
  </obsolete>
  <owner>yigu@chromium.org</owner>
  <summary>
    Record the area of a scroller upon page load. This is intended to help us
    measure the distribution of scrollers with different sizes. Combined with
    the other two metrics which measure the size of scrollers on scroll, we may
    have a better idea of not compositing small scrollers.

    Team: input-dev@chromium.org, animations-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Scroll.ScrollerSize.OnScroll" units="pixels">
  <obsolete>
    Deprecated 10/2017 due to the completion of the experiment.
  </obsolete>
  <owner>yigu@chromium.org</owner>
  <summary>
    Record the area of a scroller upon ScrollBegin. This is intended to help us
    measure the frequencies of different sizes of scrollers getting scrolled.
    For those small scrollers that users may rarely scroll, there is no need to
    composite them even if we are able to do so.

    Team: input-dev@chromium.org, animations-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.SingleTapType" enum="TapDelayType">
  <owner>tdresser@chromium.org</owner>
  <summary>
    On non-mobile sites, gesture taps are delayed to prevent double taps from
    sending a click event. This stat counts the number of taps that are delayed
    by the double-tap delay versus those that are sent immediately on mobile
    sites.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.TimestampHasValidTimebase" enum="EventTimestampValidity">
  <obsolete>
    Deprecated as of 1/2018 in issue 650338 (http://crbug.com/650338). Using a
    DCHECK instead.
  </obsolete>
  <owner>majidvp@chromium.org</owner>
  <owner>caseq@chromium.org</owner>
  <summary>
    Whether the timestamps on input events produced by the windowing system
    appear to be sharing the same time base as TimeTicks, modulo possible
    roll-over.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Touch.FilteredAtPassthroughQueue"
    enum="EventPreFilterResult" expires_after="2020-01-01">
  <owner>charliea@chromium.org</owner>
  <owner>nzolghadr@chromium.org</owner>
  <summary>
    Whether a given touch event is filtered by the passthrough touch event queue
    or not. If the event was filtered, a reason is given. Potential reasons for
    filtering include the page not having any registered touch handlers and the
    renderer process not responding to previous touch events.

    Team: input-dev@chromium.org
  </summary>
</histogram>

<histogram name="Event.Touch.GestureTarget" enum="BrowserGestureActionType">
  <owner>kuscher@google.com</owner>
  <owner>rbyers@chromium.org</owner>
  <summary>
    The gesture-events recognized and dispatched for UI components owned by the
    browser. This histogram was created as part of separating gesture events
    between the browser and Ash (crbug.com/826476). The enums are extracted from
    Ash.GestureTarget.
  </summary>
</histogram>

<histogram name="Event.Touch.TargetAndDispatchResult"
    enum="TouchTargetAndDispatchResultType">
  <obsolete>
    Deprecated 05/2016, and replaced by Event.Touch.TargetAndDispatchResult2.
  </obsolete>
  <owner>dtapuska@chromium.org</owner>
  <summary>
    An enumeration identifying 3 properties: 1) a classification of the event
    target whether it is a root scroll listener (window, document, body) or not;
    2) the result of the dispatch; 3) whether the document was scrollable or
    not.
  </summary>
</histogram>

<histogram name="Event.Touch.TargetAndDispatchResult2"
    enum="TouchTargetAndDispatchResultType2">
  <owner>dtapuska@chromium.org</owner>
  <summary>
    An enumeration identifying 4 properties: 1) a classification of the current
    target whether it is a root scroll listener (window, document, body) or not;
    2) the result of the dispatch or whether it was previously canceled 3)
    whether the document was scrollable or not 4) what phase the listener was
    encountered at. This metric is logged during the dispatch of the touch
    events. It will only be reported for main frame events that block scrolling,
    have only one touch point and current targets that fired an event listener
    at that phase.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Touch.TimedOutOnDesktopSite" enum="BooleanTimedOut">
  <owner>tdresser@chromium.org</owner>
  <summary>
    On non-mobile-optimized (desktop) sites, whether the ack response from the
    renderer for any event in a contiguous touch sequence exceeds the
    desktop-specific timeout threshold.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Touch.TimedOutOnMobileSite" enum="BooleanTimedOut">
  <owner>tdresser@chromium.org</owner>
  <summary>
    On mobile-optimized sites, whether the ack response from the renderer for
    any event in a contiguous touch sequence exceeds the mobile-specific timeout
    threshold.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Touch.TouchAdjustment.AdjustDistance" units="pixels">
  <owner>eirage@chromium.org</owner>
  <summary>
    Records the euclidean distance in dips from a gesture event's original tap
    center to its adjusted touch point. 0 if not adjusted. This only records
    GestureTap events and GestureLongPress events.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Touch.TouchAdjustment.AdjustedNode"
    enum="TouchAdjustmentNodeRelation">
  <obsolete>
    Deprecated 03/2018 due to no longer needed.
  </obsolete>
  <owner>eirage@chromium.org</owner>
  <summary>
    Records if doing touch adjustment on touchstart have same hit test node as
    doing touch adjustment on GestureTap. If not, record if one is descendant of
    the other. Others means neither of the nodes are descendant of the other.
    This only records GestureTap events.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Touch.TouchAdjustment.AdjustToSameNode" enum="Boolean">
  <obsolete>
    Deprecated 02/2018 and replaced by Event.Touch.TouchAdjustment.AdjustedNode.
  </obsolete>
  <owner>eirage@chromium.org</owner>
  <summary>
    Records if doing touch adjustment on touchstart have same hit test node as
    doing touch adjustment on GestureTap. True for same node, false for
    different node. This only records GestureTap events.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Touch.TouchDispositionsAfterPageLoad"
    enum="TouchEventDispatchResultType">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Records the disposition (handled or not handled) of touchstart events and
    the first touchmove events per scroll. Only recorded after the page is fully
    loaded.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Touch.TouchDispositionsBeforePageLoad"
    enum="TouchEventDispatchResultType">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Records the disposition (handled or not handled) of touchstart events and
    the first touchmove events per scroll. Only recorded before the page is
    fully loaded.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Touch.TouchDispositionsDuringFling"
    enum="TouchEventDispatchResultType">
  <obsolete>
    Deprecated 08/2016 in Issue 595327, and replaced by
    Event.Touch.TouchDispositionsDuringFling2.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Records the disposition (handled or not handled) of touchstart events. Only
    recorded while there is an active fling animation.
  </summary>
</histogram>

<histogram name="Event.Touch.TouchDispositionsDuringFling2"
    enum="TouchEventDispatchResultType">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Records the disposition (handled or not handled) of touchstart and first
    touchmove events per scroll. Only recorded while there is an active fling
    animation.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Touch.TouchDispositionsOutsideFling"
    enum="TouchEventDispatchResultType">
  <obsolete>
    Deprecated 08/2016 in Issue 595327, and replaced by
    Event.Touch.TouchDispositionsOutsideFling2.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Records the disposition (handled or not handled) of touchstart events. Only
    recorded while there is no active fling animation.
  </summary>
</histogram>

<histogram name="Event.Touch.TouchDispositionsOutsideFling2"
    enum="TouchEventDispatchResultType">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Records the disposition (handled or not handled) of touchstart and first
    touchmove events per scroll events. Only recorded while there is no active
    fling animation.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Touch.TouchLatencyAfterPageLoad" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between when a touch event was generated and the event was processed.
    Recorded only for touchstart events and the first touchmove events per
    scroll that occur after the page is fully loaded.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Touch.TouchLatencyBeforePageLoad" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between when a touch event was generated and the event was processed.
    Recorded only for touchstart events and the first touchmove events per
    scroll that occur before the page is fully loaded. This histogram tracks the
    benefit of forcing passive event listeners before the page is fully loaded.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Touch.TouchLatencyOutsideFling" units="microseconds">
  <obsolete>
    Deprecated 06/2017 due to lack of usage.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between when a touch event was generated and the event was processed.
    Recorded only for touchstart events and the first touchmove events per
    scroll when there was no active fling animation.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.Touch.TouchStartLatencyDuringFling" units="microseconds">
  <obsolete>
    Deprecated 08/2016 in Issue 595327, and replaced by
    Event.PassiveListeners.ForcedNonBlockingLatencyDueToFling.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between when a touchstart event was generated and the event was
    processed. Recorded only when there was an active fling animation. This
    histogram tracks the benefit of forcing passive event listeners during
    fling.
  </summary>
</histogram>

<histogram name="Event.Touch.TouchStartLatencyOutsideFling"
    units="microseconds">
  <obsolete>
    Deprecated 08/2016 in Issue 595327, and replaced by
    Event.Touch.TouchLatencyOutsideFling.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between when a touchstart event was generated and the event was
    processed. Recorded only when there was no active fling animation.
  </summary>
</histogram>

<histogram name="Event.TouchDuration" units="ms">
  <owner>kuscher@google.com</owner>
  <owner>tdresser@chromium.org</owner>
  <summary>
    The duration of a touch-sequence. Only measured for single finger gestures.
    This replaces Ash.TouchDuration2, which did not record events on Android and
    Windows.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.TouchMaxDistance" units="pixels">
  <owner>kuscher@google.com</owner>
  <owner>tdresser@chromium.org</owner>
  <summary>
    The maximum euclidean distance in dips (device independent pixel) which a
    touch point has travelled away from its starting point. Only measured for
    single finger gestures. This replaces Ash.TouchMaxDistance, which did not
    record events on Android and Windows.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Event.TouchSelection.Duration" units="ms">
  <owner>nzolghadr@chromium.org</owner>
  <summary>
    Duration of touch selection sequence which finished with the user selecting
    one of the text manipulation actions, such as copy, cut, or paste. The
    duration is measured from the moment the text selection handles are shown,
    and until the action is executed.
  </summary>
</histogram>

<histogram name="Event.TouchSelection.EndedWithAction" enum="BooleanSuccess">
  <owner>nzolghadr@chromium.org</owner>
  <summary>
    Whether the touch selection sequence ended with the user selecting one of
    the text manipulation actions, such as copy, cut, or paste. after startup).
    Sequences ending with such action are considered successful.
  </summary>
</histogram>

<histogram name="Event.TouchSelection.WasDraggedDuration" units="ms">
  <owner>nzolghadr@chromium.org</owner>
  <summary>
    Duration of touch selection sequence which involved dragging a text
    selection handle. The duration is measured from the moment the text
    selection handles are shown, and until they are dismissed.
  </summary>
</histogram>

<histogram name="Event.TouchSelectionHandle.BestVerticalClippingPercentage"
    units="%">
  <owner>amaralp@chromium.org</owner>
  <summary>
    Percentage of touch handle height that would be clipped by the viewport in
    the best case of flipping or not flipping.
  </summary>
</histogram>

<histogram name="Event.TouchSelectionHandle.BottomHandleClippingPercentage"
    units="%">
  <owner>amaralp@chromium.org</owner>
  <summary>
    Percentage of touch handle height that would be clipped by the viewport if
    the handle was not vertically flipped.
  </summary>
</histogram>

<histogram name="Event.TouchSelectionHandle.FlippingImprovementPercentage"
    units="%">
  <owner>amaralp@chromium.org</owner>
  <summary>
    The difference between the metrics |BottomHandleClippingPercentage| and
    |BestVerticalClippingPercentage|. Measures how useful vertical flipping is.
  </summary>
</histogram>

<histogram name="Event.TouchSelectionHandle.LeftHandleClippingPercentage"
    units="%">
  <owner>amaralp@chromium.org</owner>
  <summary>
    Percentage of left touch handle width that would be clipped by the viewport
    without flipping.
  </summary>
</histogram>

<histogram name="Event.TouchSelectionHandle.RightHandleClippingPercentage"
    units="%">
  <owner>amaralp@chromium.org</owner>
  <summary>
    Percentage of right touch handle width that would be clipped by the viewport
    without flipping.
  </summary>
</histogram>

<histogram name="Event.TouchSelectionHandle.ShouldFlipHandleVertically"
    enum="TouchHandleVerticallyFlipped">
  <owner>amaralp@chromium.org</owner>
  <summary>
    Whether flipping the handle vertically would result in less clipping.
  </summary>
</histogram>

<histogram name="Event.VizHitTest.AggregateTime" units="ms">
  <obsolete>
    Deprecated as of 07/2018. Replaced with Event.VizHitTest.AggregateTimeUs.
  </obsolete>
  <owner>riajiang@chromium.org</owner>
  <owner>event-targeting@chromium.org</owner>
  <summary>
    Tracks how long it takes for HitTestAggregator to aggregate hit-test data
    received from all clients.
  </summary>
</histogram>

<histogram name="Event.VizHitTest.AggregateTimeUs" units="microseconds">
  <owner>riajiang@chromium.org</owner>
  <owner>event-targeting@chromium.org</owner>
  <summary>
    Tracks how long it takes for HitTestAggregator to aggregate hit-test data
    received from all clients, in microseconds.
  </summary>
</histogram>

<histogram name="Event.VizHitTest.AsyncHitTestReasons"
    enum="AsyncHitTestReasons">
  <owner>sunxd@chromium.org</owner>
  <owner>event-targeting@chromium.org</owner>
  <summary>
    Tracks the reasons why sychronous hit testing could not be done for each hit
    test requests processd by HitTestQuery.
  </summary>
</histogram>

<histogram name="Event.VizHitTest.HitTestDataIsEqualAccuracy"
    enum="BooleanAccuracy">
  <owner>zandershah@google.com</owner>
  <owner>event-targeting@chromium.org</owner>
  <summary>
    Tracks the result of AsyncLayerTreeFrameSink calls to
    HitTestRegionList::IsEqual.
  </summary>
</histogram>

<histogram name="Event.VizHitTest.HitTestRegions" units="regions">
  <owner>riajiang@chromium.org</owner>
  <owner>event-targeting@chromium.org</owner>
  <summary>
    Total number of hit-test regions Viz received from all clients.
  </summary>
</histogram>

<histogram name="Event.VizHitTest.TargetTime" units="ms">
  <obsolete>
    Deprecated as of 07/2018. Replaced with Event.VizHitTest.TargetTimeUs.
  </obsolete>
  <owner>riajiang@chromium.org</owner>
  <owner>event-targeting@chromium.org</owner>
  <summary>
    Tracks how long it takes for HitTestQuery to find a target on a given
    location.
  </summary>
</histogram>

<histogram name="Event.VizHitTest.TargetTimeUs" units="microseconds">
  <owner>riajiang@chromium.org</owner>
  <owner>event-targeting@chromium.org</owner>
  <summary>
    Tracks how long it takes for HitTestQuery to find a target on a given
    location, in microseconds.
  </summary>
</histogram>

<histogram name="Event.VizHitTest.TransformTime" units="ms">
  <obsolete>
    Deprecated as of 07/2018. Replaced with Event.VizHitTest.TransformTimeUs.
  </obsolete>
  <owner>riajiang@chromium.org</owner>
  <owner>event-targeting@chromium.org</owner>
  <summary>
    Tracks how long it takes for HitTestQuery to transform a location to a given
    target's coordinate space.
  </summary>
</histogram>

<histogram name="Event.VizHitTest.TransformTimeUs" units="microseconds">
  <owner>riajiang@chromium.org</owner>
  <owner>event-targeting@chromium.org</owner>
  <summary>
    Tracks how long it takes for HitTestQuery to transform a location to a given
    target's coordinate space, in microseconds.
  </summary>
</histogram>

<histogram name="Event.VizHitTestSurfaceLayer.ResultsMatch"
    enum="VizHitTestResultsMatchEnums">
  <owner>sunxd@chromium.org</owner>
  <owner>event-targeting@chromium.org</owner>
  <summary>
    This tracks how often the cc layer based hit testing fast path result
    matches or doesn't match the asynchronous blink hit test result.
  </summary>
</histogram>

<histogram name="ExclusiveAccess.BubbleReshowsPerSession.Fullscreen"
    units="reshows">
  <owner>mgiuca@chromium.org</owner>
  <summary>
    The number of times the fullscreen bubble was re-shown due to inactivity
    during a session of fullscreen mode (not including mouse or keyboard lock).
    If the mouse or keyboard is also locked while a re-show occurs, both this
    and BubbleReshowsPerSession.MouseLock and/or
    BubbleReshowsPerSession.KeyboardLock are incremented. Includes all types of
    fullscreen (user-triggered, extension-triggered and page-triggered).
    Recorded at the end of the session if the simplified-fullscreen-ui flag is
    enabled.
  </summary>
</histogram>

<histogram name="ExclusiveAccess.BubbleReshowsPerSession.KeyboardLock"
    units="reshows">
  <owner>joedow@chromium.org</owner>
  <summary>
    The number of times the keyboard lock exit bubble was re-shown during a
    session of keyboard lock mode. This occurs when the ExclusiveAccessMode
    inactivity timer fires (roughly every 15 minutes). If also in fullscreen
    while a re-show occurs both this and BubbleReshowsPerSession.Fullscreen are
    incremented in that scenario. Recorded at the end of the session if the
    simplified-fullscreen-ui flag is enabled.
  </summary>
</histogram>

<histogram name="ExclusiveAccess.BubbleReshowsPerSession.KeyboardLockForced"
    units="reshows">
  <owner>joedow@chromium.org</owner>
  <summary>
    The number of times the keyboard lock exit bubble was re-shown during a
    session of keyboard lock mode due to the user pressing the escape key
    repeatedly. This metric does not count reshows due to inactivity. Recorded
    at the end of the session if the simplified-fullscreen-ui flag is enabled.
  </summary>
</histogram>

<histogram name="ExclusiveAccess.BubbleReshowsPerSession.MouseLock"
    units="reshows">
  <owner>mgiuca@chromium.org</owner>
  <summary>
    The number of times the mouse lock bubble was re-shown due to inactivity
    during a session of mouse lock mode. If also in fullscreen while a re-show
    occurs, both this and BubbleReshowsPerSession.Fullscreen are incremented.
    Recorded at the end of the session if the simplified-fullscreen-ui flag is
    enabled.
  </summary>
</histogram>

<histogram name="ExploreSites.CatalogError" enum="ExploreSitesCatalogError">
  <owner>dewittj@chromium.org</owner>
  <owner>petewil@chromium.org</owner>
  <summary>
    If we find a bad catalog from the network, report which problems it had.
  </summary>
</histogram>

<histogram name="ExploreSites.CatalogRequestResult"
    enum="ExploreSitesCatalogUpdateRequestResult" expires_after="2019-12-15">
  <owner>dewittj@chromium.org</owner>
  <owner>petewil@chromium.org</owner>
  <summary>Results of the Explore Sites network request for a catalog.</summary>
</histogram>

<histogram name="ExploreSites.CatalogUpdateRequestSource"
    enum="ExploreSitesCatalogUpdateRequestSource" expires_after="2019-12-15">
  <owner>dewittj@chromium.org</owner>
  <owner>petewil@chromium.org</owner>
  <summary>
    The Explore Sites catalog can be requested in several code paths. This
    identifies which code path was used for the request.
  </summary>
</histogram>

<histogram name="ExploreSites.CategoryClick" enum="ExploreSitesCategories">
  <owner>dewittj@chromium.org</owner>
  <owner>petewil@chromium.org</owner>
  <summary>
    The number of times the user clicked on a site in a category with the
    selected type on the Explore Sites page.
  </summary>
</histogram>

<histogram name="ExploreSites.ClickedNTPCategoryIndex">
  <owner>dimich@chromium.org</owner>
  <summary>
    0-based index of a category tile on NTP which was clicked by the user.
    Indices are assigned by counting category tiles left-to-right, top-to-bottom
    as they appear on NTP. Recorded on click.
  </summary>
</histogram>

<histogram name="ExploreSites.ExploreSitesStore.StoreEvent"
    enum="ExploreSitesStoreEvent">
  <owner>dewittj@chromium.org</owner>
  <summary>Counts when the explore sites store is opened or closed.</summary>
</histogram>

<histogram name="ExploreSites.FetcherHttpResponseCode" enum="HttpResponseCode">
  <owner>dimich@chromium.org</owner>
  <summary>
    Http response code from ExploreSitesFetcher. Recorded every time the fetcher
    is finishing without network error and actually has HTTP response code. 2XX
    codes also included.
  </summary>
</histogram>

<histogram name="ExploreSites.FetcherNetErrorCode" enum="NetErrorCodes">
  <owner>dimich@chromium.org</owner>
  <summary>
    Net error results from ExploreSitesFetcher. Recorded every time the fetcher
    is finishing. OK and ABORTED are included.
  </summary>
</histogram>

<histogram name="ExploreSites.ImageDecoded" units="Boolean">
  <owner>freedjm@chromium.org</owner>
  <summary>Tracks the result of image decoding for the favicons.</summary>
</histogram>

<histogram name="ExploreSites.MonthlyHostCount" units="hosts">
  <owner>dimich@chromium.org</owner>
  <summary>
    Number of unique hosts visited by the user during the last 30 days. Reported
    at most once a week for all users on Android only, with a 5 second delay
    after startup. This is different from History.MonthlyHostCount which is
    reported for a percentage of startups, to avoid bias toward more active
    users.
  </summary>
</histogram>

<histogram name="ExploreSites.NTPLoadingCatalogFromNetwork" units="Boolean">
  <owner>dimich@chromium.org</owner>
  <summary>
    Recorded every time NTP is opened while ExploreSites feature is enabled.
    Indicates whether or not the local cached version of ExploreSites catalog
    was available or a network request was initiated to load one.
  </summary>
</histogram>

<histogram name="ExploreSites.RequestStatus" enum="ExploreSitesRequestStatus">
  <owner>dimich@chromium.org</owner>
  <summary>
    Reported each time from the result callback of the ExploreSitesFetcher.
    Values include Success and several failure codes.
  </summary>
</histogram>

<histogram name="ExploreSites.SiteTilesClickIndex">
  <owner>dewittj@chromium.org</owner>
  <owner>petewil@chromium.org</owner>
  <summary>
    The total index of the selected tile on the ExploreSites page. This measures
    how far down from the top it is, counting all the other tiles in cards above
    it. This assumes 8 tiles per category, and might skip some valid indices if
    fewer tiles are displayed in a category.
  </summary>
</histogram>

<histogram name="ExtensionActivity.AdInjected" units="Extension Count">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    For each pageload, the number of extensions that inject at least one new ad.
  </summary>
</histogram>

<histogram name="ExtensionActivity.AdLikelyInjected" units="Extension Count">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    For each pageload, the number of extensions that performed an action that
    heuristically looks like injecting an ad, but could not be confirmed.
  </summary>
</histogram>

<histogram name="ExtensionActivity.AdLikelyReplaced" units="Extension Count">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    For each pageload, the number of extensions that performed an action that
    heuristically looks like replacing an ad, but could not be confirmed.
  </summary>
</histogram>

<histogram name="ExtensionActivity.AdRemoved" units="Extension Count">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    For each pageload, the number of extensions that remove at least one ad.
  </summary>
</histogram>

<histogram name="ExtensionActivity.AdReplaced" units="Extension Count">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    For each pageload, the number of extensions that replace at least one ad.
  </summary>
</histogram>

<histogram name="ExtensionActivity.ContentScript">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each pageload, the number of extensions that inject a content script.
  </summary>
</histogram>

<histogram name="ExtensionActivity.CreatedDiv">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each pageload, the number of extensions that create divs to add to the
    page.
  </summary>
</histogram>

<histogram name="ExtensionActivity.CreatedEmbed">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each pageload, the number of extensions that create 'embed' elements to
    add to the page.
  </summary>
</histogram>

<histogram name="ExtensionActivity.CreatedIframe">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each pageload, the number of extensions that create iframes to add to
    the page.
  </summary>
</histogram>

<histogram name="ExtensionActivity.CreatedInput">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each pageload, the number of extensions that create inputs to add to the
    page.
  </summary>
</histogram>

<histogram name="ExtensionActivity.CreatedLink">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each pageload, the number of extensions that create links to add to the
    page.
  </summary>
</histogram>

<histogram name="ExtensionActivity.CreatedObject">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each pageload, the number of extensions that create 'object' elements to
    add to the page.
  </summary>
</histogram>

<histogram name="ExtensionActivity.CreatedScript">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each pageload, the number of extensions that create script tags to add
    to the page.
  </summary>
</histogram>

<histogram name="ExtensionActivity.DocumentWrite">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each pageload, the number of extensions that use document.write.
  </summary>
</histogram>

<histogram name="ExtensionActivity.Google.ContentScript">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each www.google.com pageload, the number of extensions that inject a
    content script.
  </summary>
</histogram>

<histogram name="ExtensionActivity.Google.CreatedDiv">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each www.google.com pageload, the number of extensions that create divs
    to add to the page.
  </summary>
</histogram>

<histogram name="ExtensionActivity.Google.CreatedEmbed">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each www.google.com pageload, the number of extensions that create
    'embed' elements to add to the page.
  </summary>
</histogram>

<histogram name="ExtensionActivity.Google.CreatedIframe">
  <owner>felt@chromium.org</owner>
  <summary>
    For each www.google.com pageload, the number of extensions that create
    iframes to add to the page.
  </summary>
</histogram>

<histogram name="ExtensionActivity.Google.CreatedInput">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each www.google.com pageload, the number of extensions that create
    inputs to add to the page.
  </summary>
</histogram>

<histogram name="ExtensionActivity.Google.CreatedLink">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each www.google.com pageload, the number of extensions that create links
    to add to the page.
  </summary>
</histogram>

<histogram name="ExtensionActivity.Google.CreatedObject">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each www.google.com pageload, the number of extensions that create
    'object' elements to add to the page.
  </summary>
</histogram>

<histogram name="ExtensionActivity.Google.CreatedScript">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each www.google.com pageload, the number of extensions that create
    script tags to add to the page.
  </summary>
</histogram>

<histogram name="ExtensionActivity.Google.DocumentWrite">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each www.google.com pageload, the number of extensions that use
    document.write.
  </summary>
</histogram>

<histogram name="ExtensionActivity.Google.InnerHtml">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each www.google.com pageload, the number of extensions that set
    innerHTML.
  </summary>
</histogram>

<histogram name="ExtensionActivity.Google.InvokedDomMethod">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each www.google.com pageload, the number of extensions that invoke DOM
    methods.
  </summary>
</histogram>

<histogram name="ExtensionActivity.Google.ModifiedDom">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each www.google.com pageload, the number of extensions that set the
    value of DOM properties via assignments.
  </summary>
</histogram>

<histogram name="ExtensionActivity.Google.ReadDom">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each www.google.com pageload, the number of extensions that read from
    the DOM.
  </summary>
</histogram>

<histogram name="ExtensionActivity.InnerHtml">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each pageload, the number of extensions that set innerHTML.
  </summary>
</histogram>

<histogram name="ExtensionActivity.InvokedDomMethod">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each pageload, the number of extensions that invoke DOM methods.
  </summary>
</histogram>

<histogram name="ExtensionActivity.ModifiedDom">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each pageload, the number of extensions that set the value of DOM
    properties via assignments.
  </summary>
</histogram>

<histogram name="ExtensionActivity.ReadDom">
  <obsolete>
    Deprecated with M46.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    For each pageload, the number of extensions that read from the DOM.
  </summary>
</histogram>

<histogram name="ExtensionBlacklist.BlacklistInstalled"
    enum="ExtensionLocation">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The number of extensions that were blacklisted when already installed,
    grouped by Extension::Location. Logged when ExtensionService blackists and
    unloads an installed extension.
  </summary>
</histogram>

<histogram name="ExtensionBlacklist.BlockCRX" enum="ExtensionLocation">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The number of extensions that have been blocked from installing grouped by
    Extension::Location. Logged when ExtensionService refuses to install a
    blacklisted extension.
  </summary>
</histogram>

<histogram name="ExtensionBlacklist.SilentInstall" enum="ExtensionLocation">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The number of extensions that have been silently installed in a blacklisted
    state, grouped by Extension::Location. Logged when ExtensionService installs
    a blacklisted extension without blocking it (ExtensionBlacklist.BlockCRX
    would be logged otherwise). Typically this will be when a user has a
    blacklisted extension synced.
  </summary>
</histogram>

<histogram name="ExtensionBlacklist.UnblacklistInstalled"
    enum="ExtensionLocation">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The number of extensions that were unblacklisted when installed, grouped by
    Extension::Location. Logged when ExtensionService unblacklists and loads a
    blacklisted extension.
  </summary>
</histogram>

<histogram name="ExtensionBubble.DevModeUserSelection"
    enum="ExtensionBubbleAction">
  <owner>finnur@chromium.org</owner>
  <summary>
    The action taken by the user when seeing the bubble, logged right after the
    action is taken.
  </summary>
</histogram>

<histogram name="ExtensionBubble.ExtensionsInDevModeCount"
    units="Developer Mode Extensions">
  <owner>finnur@chromium.org</owner>
  <summary>
    The total number of extensions found to be loaded under Developer Mode,
    logged when the devmode bubble is shown (once per startup per profile, if
    any devmode extension is found).
  </summary>
</histogram>

<histogram name="ExtensionBubble.ExtensionWipeoutCount" units="Extensions">
  <owner>finnur@chromium.org</owner>
  <summary>
    The total number of extensions found to be wiped by SideloadWipeout, logged
    when the wipeout bubble is shown, which is once per startup per profile (as
    long as wiped extensions were found). Not logged if no extensions of that
    nature were found.
  </summary>
</histogram>

<histogram name="ExtensionBubble.WipeoutUserSelection"
    enum="ExtensionBubbleAction">
  <owner>finnur@chromium.org</owner>
  <summary>
    The action taken by the user when seeing the bubble, logged right after the
    action is taken.
  </summary>
</histogram>

<histogram name="ExtensionContentHashFetcher.CreateHashesTime" units="ms">
  <owner>lazyboy@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The time taken to create the computed_hashes.json file for an extension.
    This happens once for each extension after we get signed values of the
    expected root node of a tree hashes for each file from the webstore; we then
    compute the individual block level hashes of the actual files and cache them
    in computed_hashes.json (assuming we don't detect any mismatches).
  </summary>
</histogram>

<histogram name="ExtensionContentHashReader.InitLatency" units="ms">
  <owner>lazyboy@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The time taken to initialize the ContentHashReader for an extension resource
    load. (The work done is to read in the verified contents and computed hashes
    data, and compare them to make sure they agree.)
  </summary>
</histogram>

<histogram name="ExtensionContentVerifyJob.TimeSpentUS" units="microseconds"
    expires_after="2019-11-30">
  <owner>lazyboy@chromium.org</owner>
  <summary>
    The time taken in computation (hashing actual bytes read and comparing
    against expected computed hashes values) during an extension resource load.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="ExtensionInstalledLoader.ForceDisabled"
    enum="BooleanForceDisabled">
  <obsolete>
    Replaced with ExtensionInstalledLoader.ForceDisabled2.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Counts whether we force-disabled an installed extension at startup because a
    policy provider indicated it must remain disabled.
  </summary>
</histogram>

<histogram name="ExtensionInstalledLoader.ForceDisabled2"
    enum="BooleanForceDisabled">
  <obsolete>
    Expired 2018-08-30
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Counts whether we force-disabled an installed extension at startup because
    it failed ManagementPolicy::MustRemainDisabled check. This checks both
    UserMayLoad and MustRemainDisabled methods on a policy provider.
  </summary>
</histogram>

<histogram name="ExtensionInstallSigner.InvalidCount"
    expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    This is a count of the number of ids that we asked to be signed which the
    server response indicated were not in the webstore.
  </summary>
</histogram>

<histogram name="ExtensionInstallSigner.RequestCount"
    expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    A count of the number of server requests since Chrome started running,
    recorded each time we do a request. NOTE: when interpreting these values,
    keep in mind that a user who did 5 server requests during one run of Chrome
    will log this histogram 5 times with values 1, 2, 3, 4, and 5.
  </summary>
</histogram>

<histogram name="ExtensionInstallSigner.ResultWasValid"
    expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Whether the server result received by the extensions install signer was
    valid or invalid.
  </summary>
</histogram>

<histogram name="ExtensionInstallSigner.SecondsSinceLastRequest"
    units="seconds" expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    This records the number of seconds since the last time we've done a request
    to the server (only during this run of the browser).
  </summary>
</histogram>

<histogram name="ExtensionInstallSigner.UptimeAtTimeOfRequest" units="seconds"
    expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Records how many seconds the browser has been running at the time a request
    to the server is made to get a new install signature.
  </summary>
</histogram>

<histogram name="ExtensionInstallVerifier.ActualStatus"
    enum="ExtensionInstallVerifierStatus" expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Logged during InstallVerifier::Init, to indicate the actual enforcement
    status used (usually determined by the ExtensionInstallVerifier field trial
    experiment, but possibly modified by command line flags).
  </summary>
</histogram>

<histogram name="ExtensionInstallVerifier.ExperimentStatus"
    enum="ExtensionInstallVerifierStatus" expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Logged during InstallVerifier::Init to indicate the enforcement status as
    determined by the ExtensionInstallVerifier field trial experiment.
  </summary>
</histogram>

<histogram name="ExtensionInstallVerifier.GetSignatureResult"
    enum="ExtensionInstallVerifierGetSignatureResult"
    expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>The result of the verifier trying to get a new signature.</summary>
</histogram>

<histogram name="ExtensionInstallVerifier.InitResult"
    enum="ExtensionInstallVerifierInitResult" expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The result of initialization for the extension install verifier.
  </summary>
</histogram>

<histogram name="ExtensionInstallVerifier.MustRemainDisabled"
    enum="ExtensionInstallVerifierMustRemainDisabled"
    expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The outcome for each call to InstallVerifier::MustRemainDisabled.
  </summary>
</histogram>

<histogram name="ExtensionOverrideBubble.NtpOverriddenUserSelection"
    enum="ExtensionBubbleAction">
  <owner>finnur@chromium.org</owner>
  <summary>
    The action taken by the user when seeing the bubble, notifing them of an
    extension overriding their new tab page. Logged right after the action is
    taken.
  </summary>
</histogram>

<histogram name="ExtensionOverrideBubble.SettingsApiUserSelectionHomePage"
    enum="ExtensionBubbleAction">
  <owner>finnur@chromium.org</owner>
  <summary>
    The action taken by the user when seeing the bubble, notifing them of an
    extension overriding their homepage. Logged right after the action is taken.
  </summary>
</histogram>

<histogram name="ExtensionOverrideBubble.SettingsApiUserSelectionSearchEngine"
    enum="ExtensionBubbleAction">
  <owner>finnur@chromium.org</owner>
  <summary>
    The action taken by the user when seeing the bubble, notifing them of an
    extension overriding their search engine. Logged right after the action is
    taken.
  </summary>
</histogram>

<histogram name="ExtensionOverrideBubble.SettingsApiUserSelectionStartupPage"
    enum="ExtensionBubbleAction">
  <owner>finnur@chromium.org</owner>
  <summary>
    The action taken by the user when seeing the bubble, notifing them of an
    extension overriding their startup page. Logged right after the action is
    taken.
  </summary>
</histogram>

<histogram name="Extensions.ActiveScriptController.DeniedExtensions"
    units="Extension Count">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of extensions on a page that wanted to execute a script, required
    explicit user consent, and were denied permission.
  </summary>
</histogram>

<histogram name="Extensions.ActiveScriptController.PermittedExtensions"
    units="Extension Count">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of extensions on a page that wanted to execute a script, required
    explicit user consent, and were granted permission.
  </summary>
</histogram>

<histogram name="Extensions.ActiveScriptController.PreventableAdInjectors"
    units="Extension Count">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of extensions per page that injected an ad and could have been
    stopped if the user had declined script injection. This is related to the
    ActivityLog metrics, ExtensionActivity.Ad*. Recorded upon page close or
    navigation. Only recorded if there was at least one ad injection detected.
  </summary>
</histogram>

<histogram name="Extensions.ActiveScriptController.ShownActiveScriptsOnPage"
    units="Number of Actions">
  <obsolete>
    Deprecated 2/2014.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of extensions which would display an Active Script Running
    indiciation to the user. Recorded at page close.
  </summary>
</histogram>

<histogram name="Extensions.ActiveScriptController.UnpreventableAdInjectors"
    units="Extension Count">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of extensions per page that injected an ad and that could not
    have been stopped through script injection permission. This is related to
    the ActivityLog metrics, ExtensionActivity.Ad*. Recorded upon page close or
    navigation. Only recorded if there was at least one ad injection detected.
  </summary>
</histogram>

<histogram name="Extensions.AdInjection.AdType" enum="InjectedAdType">
  <owner>felt@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>The type of ad that was injected.</summary>
</histogram>

<histogram name="Extensions.AdInjection.InstallLocation"
    enum="ExtensionLocation">
  <owner>felt@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The install location of an ad-injecting extension. Recorded upon page close
    for any extension that injected ads on that page.
  </summary>
</histogram>

<histogram name="Extensions.ApiBindingGenerationTime" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The amount of time it takes to generate the JavaScript API bindings for a
    particular extension API. This includes the time from when a JavaScript
    context tries to access the API, triggering the lazy initializion, to the
    time when the API object is returned. This is only recorded if the binding
    is successfully generated. See also Extensions.DidCreateScriptContext_*.
  </summary>
</histogram>

<histogram name="Extensions.ApiBindingObjectGenerationTime"
    units="microseconds">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The amount of time it takes to create the JavaScript binding object using
    the binding.js module. This is a strict subset of
    Extensions.ApiBindingGenerationTime, which includes this work and more.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Extensions.ApiTabUpdateJavascript" enum="Boolean">
  <owner>dbertoni@chromium.org</owner>
  <summary>
    Reports whether a tab was updated to a javascript:-scheme URL from the
    extensions tabs.update API. Reported once per call to tabs.update().
  </summary>
</histogram>

<histogram name="Extensions.APIUse_RelativeURL" enum="UrlResolutionResult">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Captures the results of URL resolution when relative urls are used in the
    tabs/windows api.
  </summary>
</histogram>

<histogram name="Extensions.AppLaunch" enum="AppLaunch">
  <owner>benwells@chromium.org</owner>
  <owner>tapted@chromium.org</owner>
  <summary>
    The number of times v1 apps are launched grouped by
    extension_misc::AppLaunchBuckets. See also Apps.AppLaunch for v2 apps.
  </summary>
</histogram>

<histogram name="Extensions.AppLaunchContainer" enum="AppLaunchContainer">
  <obsolete>
    Deprecated as of 12/2014, replaced by Apps.HostedAppLaunchContainer.
  </obsolete>
  <owner>benwells@chromium.org</owner>
  <owner>tapted@chromium.org</owner>
  <summary>
    The number of times apps are launched grouped by
    extensions::LaunchContainer.
  </summary>
</histogram>

<histogram name="Extensions.AppLaunchSource" enum="AppLaunchSource">
  <owner>benwells@chromium.org</owner>
  <owner>cylee@chromium.org</owner>
  <summary>
    The number of times apps are launched grouped by
    extensions::AppLaunchSource.
  </summary>
</histogram>

<histogram name="Extensions.AppLoadedInTab" enum="AppLoadedInTabSource">
  <owner>lazyboy@chromium.org</owner>
  <summary>
    A platform app ended up in a regular tab either by the app page or its
    background page. Note that this happens unexpectedly right now and we wish
    to track its usage before removing the supporting code.
  </summary>
</histogram>

<histogram name="Extensions.AppLocation" enum="ExtensionLocation">
  <owner>benwells@chromium.org</owner>
  <owner>tapted@chromium.org</owner>
  <summary>
    The number of apps loaded at startup time grouped by Extension::Location.
  </summary>
</histogram>

<histogram name="Extensions.AppsPromo" enum="AppPromoAction">
  <owner>benwells@chromium.org</owner>
  <owner>tapted@chromium.org</owner>
  <summary>
    The actions taken in the NTP apps promo grouped by
    extension_misc::AppsPromoBuckets.
  </summary>
</histogram>

<histogram name="Extensions.AppTabLaunchType" enum="ExtensionLaunchType">
  <owner>benwells@chromium.org</owner>
  <owner>tapted@chromium.org</owner>
  <summary>
    The number of apps launched grouped by extensions::LaunchType.
  </summary>
</histogram>

<histogram name="Extensions.AttemptedToDowngradeVersionLocation"
    enum="ExtensionLocation">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The extension install location of an extension that Chrome attempted to add,
    but failed because it would downgrade the version. Tracking for
    https://crbug.com/810799.
  </summary>
</histogram>

<histogram name="Extensions.AttemptedToDowngradeVersionType"
    enum="ExtensionType">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The extension item type of an extension that Chrome attempted to add, but
    failed because it would downgrade the version. Tracking for
    https://crbug.com/810799.
  </summary>
</histogram>

<histogram name="Extensions.BackgroundContentsServiceStartupTime" units="ms"
    expires_after="2018-08-30">
  <obsolete>
    Expired
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Time taken to load BackgroundContents for apps at startup when the extension
    system notifies that it is ready.
  </summary>
</histogram>

<histogram name="Extensions.BackgroundPageLoadTime" units="ms">
  <obsolete>
    Replaced by Extensions.BackgroundPageLoadTime2.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>The time for an extension's background page to load.</summary>
</histogram>

<histogram name="Extensions.BackgroundPageLoadTime2" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The time taken for an extension's persistent background page to load its
    initial URL.
  </summary>
</histogram>

<histogram name="Extensions.BackgroundPageType"
    units="ExtensionBackgroundPageType">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The type (if any) of background page the extension has. Recorded for
    installed extensions on startup.
  </summary>
</histogram>

<histogram name="Extensions.BadMessageFunctionName" enum="ExtensionFunctions">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of times each Extension function call sends a bad message,
    killing the renderer. This may indicate a bug in that API's implementation
    on the renderer. Note a similar, aggregate metric is BadMessageTerminate_EFD
    which counts the number of bad messages that are sent overall.
  </summary>
</histogram>

<histogram name="Extensions.BadSyncDataReason" enum="BadSyncDataReason">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The reason a valid ExtensionSyncData could not be parsed from a SyncData
    received from sync.
  </summary>
</histogram>

<histogram name="Extensions.Bindings.NativeBindingCreationTime"
    units="microseconds">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The elapsed time to create a new full instance of an extension API's
    bindings using native bindings.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Extensions.Bindings.UpdateBindingsForContextTime"
    units="microseconds">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The elapsed time to update the bindings for a new or existing v8::Context.
    The suffix indicates which type of context the bindings are for.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Extensions.BluetoothSocket.Connect.Service"
    enum="BluetoothSocketServiceHash" expires_after="M72">
  <obsolete>
    Removed in M73 after collecting the data necessary.
  </obsolete>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the UUID of the service to which a Chrome App opens a socket
    connection. The recorded value is a 31-bit hash of the UUID. These results
    will help us better understand the uses of the API and make changes
    according to developers' behavior.
  </summary>
</histogram>

<histogram name="Extensions.BluetoothSocket.ListenL2CAP.Service"
    enum="BluetoothSocketServiceHash" expires_after="M72">
  <obsolete>
    Removed in M73 after collecting the data necessary.
  </obsolete>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the UUID of a service created by a Chrome App listening for L2CAP
    connections. The recorded value is a 31-bit hash of the UUID. These results
    will help us better understand the uses of the API and make changes
    according to developers' behavior.
  </summary>
</histogram>

<histogram name="Extensions.BluetoothSocket.ListenRFCOMM.Service"
    enum="BluetoothSocketServiceHash" expires_after="M72">
  <obsolete>
    Removed in M73 after collecting the data necessary.
  </obsolete>
  <owner>ortuno@chromium.org</owner>
  <owner>reillyg@chromium.org</owner>
  <summary>
    Records the UUID of a service created by a Chrome App listening for RFCOMM
    connections. The recorded value is a 31-bit hash of the UUID. These results
    will help us better understand the uses of the API and make changes
    according to developers' behavior.
  </summary>
</histogram>

<histogram name="Extensions.BookmarkApp.GetAppForCurrentURLDuration" units="ms">
  <owner>mgiuca@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <summary>
    Time it takes to retrieve the app for the current URL during a navigation.
  </summary>
</histogram>

<histogram name="Extensions.BookmarkApp.GetAppForWindowDuration" units="ms">
  <owner>mgiuca@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <summary>
    Time it takes to retrieve the app associated with the window during a
    navigation.
  </summary>
</histogram>

<histogram name="Extensions.BookmarkApp.GetTargetAppDuration" units="ms">
  <owner>mgiuca@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <summary>
    Time it takes to retrieve the app for the target url during a navigation.
  </summary>
</histogram>

<histogram name="Extensions.BookmarkApp.Icon.HttpStatusCodeClassOnCreate"
    enum="HttpStatusCodeClass" expires_after="2020-01-01">
  <obsolete>
    Deprecated 11/2018 in favor of WebApp.Icon.HttpStatusCodeClassOnCreate.
  </obsolete>
  <owner>alancutter@chromium.org</owner>
  <owner>mgiuca@chromium.org</owner>
  <summary>
    The HTTP status code class returned for each icon loaded during a
    BookmarkApp's creation.
  </summary>
</histogram>

<histogram name="Extensions.BookmarkApp.Icon.HttpStatusCodeClassOnSync"
    enum="HttpStatusCodeClass">
  <owner>alancutter@chromium.org</owner>
  <owner>mgiuca@chromium.org</owner>
  <summary>
    The HTTP status code class returned for each icon loaded when syncing a
    BookmarkApp.
  </summary>
</histogram>

<histogram name="Extensions.BookmarkApp.NavigationResult"
    enum="BookmarkAppNavigationResult">
  <owner>mgiuca@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <summary>
    Number of times navigations into and out of Bookmark Apps are processed,
    grouped by their result.
  </summary>
</histogram>

<histogram name="Extensions.BookmarkApp.TimeBetweenOpenAppAndLastNavigation"
    units="ms">
  <owner>mgiuca@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <summary>
    The time between the last navigation in the context and us opening a new app
    window in response to a new navigation. If it is very small, the context
    probably redirected immediately, which is a bad user experience.
  </summary>
</histogram>

<histogram name="Extensions.BookmarkAppLaunchContainer"
    enum="AppLaunchContainer">
  <owner>benwells@chromium.org</owner>
  <summary>Records the container used for a bookmark app launch.</summary>
</histogram>

<histogram name="Extensions.BookmarkAppLaunchSource" enum="AppLaunchSource">
  <owner>benwells@chromium.org</owner>
  <owner>mgiuca@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <summary>
    The number of times Bookmark Apps are launched, grouped by
    extensions::AppLaunchSource. The equivalent histogram on Android is called
    Launch.HomeScreenSource.
  </summary>
</histogram>

<histogram name="Extensions.BrowsingInstanceViolation.ExtensionType"
    enum="ExtensionType">
  <owner>lukasza@chromium.org</owner>
  <summary>
    When an extension violates browsing instance boundaries, this metric records
    the extension type.

    This is a temporary metric - probably okay to remove it in M66, after we've
    gathered sufficient UMA data in M65. See also http://crbug.com/718489.
  </summary>
</histogram>

<histogram
    name="Extensions.BrowsingInstanceViolation.IsBackgroundSourceOrTarget"
    enum="ExtensionViewTypeIsBackground">
  <owner>lukasza@chromium.org</owner>
  <summary>
    When an extension violates browsing instance boundaries, this metric records
    whether either the source or the target frame was of the extension view type
    of VIEW_TYPE_BACKGROUND_CONTENTS.

    This is a temporary metric - probably okay to remove it in M66, after we've
    gathered sufficient UMA data in M65. See also http://crbug.com/718489.
  </summary>
</histogram>

<histogram name="Extensions.BrowsingInstanceViolation.SourceExtensionViewType"
    enum="ExtensionViewType">
  <owner>lukasza@chromium.org</owner>
  <summary>
    When an extension violates browsing instance boundaries, this metric records
    the extension view type of the source frame.

    This is a temporary metric - probably okay to remove it in M66, after we've
    gathered sufficient UMA data in M65. See also http://crbug.com/718489.
  </summary>
</histogram>

<histogram name="Extensions.BrowsingInstanceViolation.TargetExtensionViewType"
    enum="ExtensionViewType">
  <owner>lukasza@chromium.org</owner>
  <summary>
    When an extension violates browsing instance boundaries, this metric records
    the extension view type of the found frame.

    This metric should help confirm or deny the theory that violating browsing
    instance boundaries is only needed for looking up background contents /
    pages (of VIEW_TYPE_BACKGROUND_CONTENTS type).

    This is a temporary metric - probably okay to remove it in M66, after we've
    gathered sufficient UMA data in M65. See also http://crbug.com/718489.
  </summary>
</histogram>

<histogram name="Extensions.CheckForExternalUpdatesTime" units="ms">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during
    ExtensionService::CheckForExternalUpdates.
  </summary>
</histogram>

<histogram name="Extensions.ChromeExtensionsClientInitTime" units="ms"
    expires_after="2019-12-01">
  <obsolete>
    Replaced by Extensions.ChromeExtensionsClientInitTime2.
  </obsolete>
  <owner>dbertoni@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The amount of elapsed time taken to initialize the ChromeExtensionsClient.
    Recorded once per client initialization, which happens once per instance of
    Chrome.
  </summary>
</histogram>

<histogram name="Extensions.ChromeExtensionsClientInitTime2"
    units="microseconds" expires_after="2019-12-01">
  <owner>dbertoni@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The amount of elapsed time taken to initialize the ChromeExtensionsClient.
    Recorded once per client initialization, which happens once per instance of
    Chrome. This is a new stat that has microsecond resolution.
  </summary>
</histogram>

<histogram name="Extensions.ContentVerification.ComputedHashesInitTime"
    units="ms" expires_after="2019-11-30">
  <owner>lazyboy@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    How long a successful initialization of computed_hashes.json file takes.
    Recorded when content verification needs to retrieve block hashes.
  </summary>
</histogram>

<histogram name="Extensions.ContentVerification.ComputedHashesReadResult"
    enum="BooleanSuccess" expires_after="2019-11-30">
  <owner>lazyboy@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Whether or not computed_hashes.json file read and parse succeeded. Recorded
    when content verification needs to retrieve block hashes.
  </summary>
</histogram>

<histogram name="Extensions.ContentVerification.FetchResult"
    enum="BooleanSuccess" expires_after="2019-11-30">
  <owner>lazyboy@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Whether or not fetching verified_contents.json succeeded. Recorded when the
    file wasn't available locally and we needed to fetch it from network.
  </summary>
</histogram>

<histogram name="Extensions.ContentVerification.ReadContentHashTime" units="ms"
    expires_after="2019-11-30">
  <owner>lazyboy@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Time spent by ContentVerifier for a request to create a ContentHash
    instance. Recorded during an extension load completion or during an on
    demand content verification that was triggered by ContentVerifyJob.
  </summary>
</histogram>

<histogram name="Extensions.ContentVerification.VerifiedContentsInitResult"
    enum="BooleanSuccess" expires_after="2019-11-30">
  <owner>lazyboy@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Whether or not initializing verified_contents.json succeeded. Recorded
    during an extension load completion or during an on demand content
    verification that was triggered by ContentVerifyJob.
  </summary>
</histogram>

<histogram name="Extensions.ContentVerification.VerifiedContentsInitTime"
    units="ms" expires_after="2019-11-30">
  <owner>lazyboy@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    How long a successful initialization of verified_contents.json file takes.
    Recorded if Extensions.ContentVerification.VerifiedContentsInitResult = true
    was recorded.
  </summary>
</histogram>

<histogram name="Extensions.ContextMenuAction"
    enum="ExtensionContextMenuAction" expires_after="2019-12-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>karandeepb@chromium.org</owner>
  <summary>
    Records the action taken by the user from the extension icon context menu.
  </summary>
</histogram>

<histogram name="Extensions.CorruptExtensionBecameDisabled">
  <owner>lazyboy@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Fired each time an extension was detected to be corrupted (contents not
    matching an expected content hash from the webstore) and was disabled.
  </summary>
</histogram>

<histogram name="Extensions.CorruptExtensionDisabledReason"
    enum="CorruptExtensionDisabledReason">
  <owner>lazyboy@chromium.org</owner>
  <owner>rockot@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The reason why an extension was detected to be corrupted. Recorded each time
    an extension is disabled due to corruption detection.
  </summary>
</histogram>

<histogram name="Extensions.CorruptExtensionTotalDisables">
  <owner>lazyboy@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Logged once at startup, this is the value of a counter that is incremented
    anytime we disable a corrupted extension because its content didn't match an
    expected content hash.
  </summary>
</histogram>

<histogram name="Extensions.CorruptExtensionWouldBeDisabled">
  <owner>lazyboy@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Simiar to Extensions.CorruptExtensionBecameDisabled, but fires when we're in
    a bootstrapping mode and would have disabled an extension.
  </summary>
</histogram>

<histogram name="Extensions.CorruptPolicyExtensionDetected" enum="BooleanHit"
    expires_after="2019-05-31">
  <obsolete>
    Deprecated 11/2018. Renamed to Extensions.CorruptPolicyExtensionDetected2.
  </obsolete>
  <owner>asargent@chromium.org</owner>
  <summary>
    Fires when we detect corruption in an enterprise policy forced install
    extension and begin the process of reinstalling it. Compare to
    CorruptPolicyExtensionResolved to judge success rate.
  </summary>
</histogram>

<histogram name="Extensions.CorruptPolicyExtensionDetected2" enum="BooleanHit"
    expires_after="2019-05-31">
  <owner>lazyboy@chromium.org</owner>
  <owner>poromov@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Fires when we detect corruption in an enterprise policy forced install
    extension and begin the process of reinstalling it. Compare to
    CorruptPolicyExtensionResolved to judge success rate.
  </summary>
</histogram>

<histogram name="Extensions.CorruptPolicyExtensionResolved" units="ms"
    expires_after="2019-05-31">
  <owner>lazyboy@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Fires when we've successfully resinstalled a corrupt enterprise policy
    force-installed extension, with a value indicating how long it took
    end-to-end to complete the reinstall (including download time).
  </summary>
</histogram>

<histogram name="Extensions.CorruptPolicyExtensionWouldBeDisabled"
    enum="BooleanHit">
  <obsolete>
    Deprecated 9/2016 by fix for Issue 447040.
  </obsolete>
  <owner>asargent@chromium.org</owner>
  <summary>
    Fires when we detect corruption in an enterprise policy forced install
    extension. See http://crbug.com/447040 for more background on why we don't
    yet disable these. A useful comparison can be made between this value and
    the number of policy forced extensions loaded at startup, which is logged in
    the EXTERNAL_POLICY_DOWNLOAD bucket of the Extensions.ExtensionLocation
    histogram.
  </summary>
</histogram>

<histogram name="Extensions.CrxFetchError" enum="NetErrorCodes">
  <owner>waffles@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>Net error results from URLFetcher.</summary>
</histogram>

<histogram name="Extensions.CrxFetchFailureRetryCountGoogleUrl">
  <owner>waffles@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Number of times chrome retried to download an extension with a url on a
    google.com domain, before eventually giving up.
  </summary>
</histogram>

<histogram name="Extensions.CrxFetchFailureRetryCountOtherUrl"
    expires_after="2018-08-30">
  <owner>waffles@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Number of times chrome retried to download an extension with a url on a non
    google.com domain, before eventually giving up.
  </summary>
</histogram>

<histogram name="Extensions.CrxFetchSuccessRetryCountGoogleUrl">
  <owner>waffles@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Number of times chrome retried to download an extension with a url on a
    google.com domain, before eventually succeeding.
  </summary>
</histogram>

<histogram name="Extensions.CrxFetchSuccessRetryCountOtherUrl"
    expires_after="2018-08-30">
  <owner>waffles@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Number of times chrome retried to download an extension with a url on a non
    google.com domain, before eventually succeeding.
  </summary>
</histogram>

<histogram name="Extensions.CrxInstallDirPathLength" expires_after="2018-08-30">
  <owner>waffles@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Length of the path to the directory under which an extension is installed.
    This directory is in the user's profile.
  </summary>
</histogram>

<histogram name="Extensions.Database.Database.Restore"
    enum="LevelDBDatabaseCorruptionRestoreValue">
  <owner>cmumford@chromium.org</owner>
  <summary>
    The result of an attempt to recover from an attempt to open a database that
    failed as a result of corruption.
  </summary>
</histogram>

<histogram name="Extensions.Database.Open" enum="LevelDBStatus">
  <owner>cmumford@chromium.org</owner>
  <summary>The result of an open attempt to an Extensions database.</summary>
</histogram>

<histogram name="Extensions.Database.Restore"
    enum="LevelDBDatabaseCorruptionRestoreValue">
  <obsolete>
    Shipped only in M48. Superceded by Extensions.Database.Database.Restore and
    Extensions.Database.Value.Restore.
  </obsolete>
  <owner>cmumford@chromium.org</owner>
  <summary>
    The result of an attempt to recover from an attempt to open a database that
    failed as a result of corruption.
  </summary>
</histogram>

<histogram name="Extensions.Database.Value.Restore"
    enum="LevelDBValueCorruptionDeleteValue">
  <owner>cmumford@chromium.org</owner>
  <summary>
    The result of an attempt to delete a corrupted value from a database.
  </summary>
</histogram>

<histogram name="Extensions.DeclarativeAPIFunctionCalls"
    enum="DeclarativeAPIFunctionType">
  <owner>karandeepb@chromium.org</owner>
  <summary>
    Number of calls to the declarative API extension functions. This includes
    the declarativeContent and declarativeWebRequest APIs. Emitted when the
    extension function is called.
  </summary>
</histogram>

<histogram name="Extensions.DeclarativeNetRequest.CreateVerifiedMatcherTime"
    units="ms">
  <owner>karandeepb@chromium.org</owner>
  <summary>
    Measures the time taken to load the indexed ruleset in the browser process
    for an extension. This includes memory mapping the ruleset file and
    verifying it. Emitted when an extension using the Declarative Net Request
    API is loaded.
  </summary>
</histogram>

<histogram
    name="Extensions.DeclarativeNetRequest.EvaluateRequestTime.AllExtensions"
    units="ms">
  <obsolete>
    Deprecated Dec 2018. Replaced with
    Extensions.DeclarativeNetRequest.EvaluateRequestTime.AllExtensions2.
  </obsolete>
  <owner>karandeepb@chromium.org</owner>
  <summary>
    Time taken to evaluate whether a network request should be blocked or
    redirected as per the Declarative Net Request API. This includes the time
    taken to evaluate all the extension rulesets. Emitted for non-sensitive
    network requests seen by the Extension System.
  </summary>
</histogram>

<histogram
    name="Extensions.DeclarativeNetRequest.EvaluateRequestTime.AllExtensions2"
    units="ms">
  <owner>karandeepb@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Time taken to evaluate whether a network request should be blocked or
    redirected as per the Declarative Net Request API. This includes the time
    taken to evaluate all the extension rulesets. Emitted for non-sensitive
    network requests seen by the Extension System when there is at least one
    active extension ruleset.
  </summary>
</histogram>

<histogram name="Extensions.DeclarativeNetRequest.IndexAndPersistRulesTime"
    units="ms">
  <owner>karandeepb@chromium.org</owner>
  <summary>
    Time taken to index and persist to disk, the deserialized json rules
    provided by an extension manifest for the Declarative Net Request API. This
    includes the time recorded in
    Extensions.DeclarativeNetRequest.IndexRulesTime together with the time taken
    to persist the ruleset to disk. This is emitted whenever an extension's json
    ruleset is successfully indexed and persisted. This may happen when a packed
    extension is installed, an unpacked extension is loaded, an extension's
    ruleset is re-indexed due to corruption, etc.
  </summary>
</histogram>

<histogram name="Extensions.DeclarativeNetRequest.IndexRulesTime" units="ms">
  <owner>karandeepb@chromium.org</owner>
  <summary>
    Time taken to index the deserialized json rules provided by an extension
    manifest for the Declarative Net Request API. This is emitted whenever an
    extension's json ruleset is successfully indexed. This may happen when a
    packed extension is installed, an unpacked extension is loaded, an
    extension's ruleset is re-indexed due to corruption, etc.
  </summary>
</histogram>

<histogram name="Extensions.DeclarativeNetRequest.LoadRulesetResult"
    enum="LoadRulesetResult">
  <owner>karandeepb@chromium.org</owner>
  <summary>
    Records the result of loading an extension ruleset for the Declarative Net
    Request API. Emitted whenever an extension with a ruleset is loaded.
  </summary>
</histogram>

<histogram name="Extensions.DeclarativeNetRequest.ManifestRulesCount"
    units="rules">
  <owner>karandeepb@chromium.org</owner>
  <summary>
    The number of indexed declarative rules provided by an extension manifest
    for the Declarative Net Request API. This is emitted whenever an extension's
    json ruleset is indexed. This may happen when a packed extension is
    installed, an unpacked extension is loaded, an extension's ruleset is re-
    indexed, due to corruption, etc.
  </summary>
</histogram>

<histogram
    name="Extensions.DeclarativeNetRequest.PageWhitelistingInitiatorCheck"
    enum="PageWhitelistingInitiatorCheck" expires_after="2019-06-30">
  <owner>karandeepb@chromium.org</owner>
  <owner>lazyboy@chromium.org</owner>
  <summary>
    Describes the different cases pertaining to initiator checks used by the
    Declarative Net Request Page Whitelisting API. Emitted whenever an extension
    ruleset is evaluated for a main frame sub-resource request.
  </summary>
</histogram>

<histogram name="Extensions.DeclarativeNetRequest.RulesetReindexSuccessful"
    enum="BooleanSuccess" expires_after="2019-06-30">
  <owner>karandeepb@chromium.org</owner>
  <owner>lazyboy@chromium.org</owner>
  <summary>
    Indicates whether reindexing of the Declarative Net Request ruleset was
    successful. Called whenever the JSON ruleset for an extension is reindexed,
    e.g. on ruleset corruption.
  </summary>
</histogram>

<histogram
    name="Extensions.DeclarativeNetRequest.ShouldBlockRequestTime.AllExtensions"
    units="ms">
  <obsolete>
    Deprecated May 2018. Replaced with
    Extensions.DeclarativeNetRequest.EvaluateRequestTime.AllExtensions
  </obsolete>
  <owner>karandeepb@chromium.org</owner>
  <summary>
    Time taken to evaluate whether a network request should be blocked as per
    the Declarative Net Request API. This includes the time taken to evaluate
    all the extension rulesets. Emitted whenever a non-sensitive network request
    is seen by the Extension System.
  </summary>
</histogram>

<histogram
    name="Extensions.DeclarativeNetRequest.ShouldBlockRequestTime.SingleExtension"
    units="ms">
  <owner>karandeepb@chromium.org</owner>
  <summary>
    Time taken to evaluate whether a network request should be blocked for a
    single extension ruleset. Emitted for each network request that is visible
    to the extension.
  </summary>
</histogram>

<histogram
    name="Extensions.DeclarativeNetRequest.ShouldRedirecRequestTime.SingleExtension"
    units="ms">
  <owner>karandeepb@chromium.org</owner>
  <summary>
    Time taken to evaluate whether a network request should be redirected for a
    single extension ruleset. Emitted for network requests visible to the
    extension.
  </summary>
</histogram>

<histogram
    name="Extensions.DeclarativeNetRequest.ShouldRedirectRequestTime.AllExtensions"
    units="ms">
  <obsolete>
    Deprecated May 2018. Replaced with
    Extensions.DeclarativeNetRequest.EvaluateRequestTime.AllExtensions
  </obsolete>
  <owner>karandeepb@chromium.org</owner>
  <summary>
    Time taken to evaluate whether a network request should be redirected as per
    the Declarative Net Request API. This includes the time taken to evaluate
    all the extension rulesets. Emitted for non-sensitive network requests seen
    by the Extension System.
  </summary>
</histogram>

<histogram name="Extensions.DeclarativeRulesStorageInitialization" units="ms">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Time spent until rules storage delegate gets ready.</summary>
</histogram>

<histogram name="Extensions.DeclarativeSetIconWasVisible" enum="BooleanVisible"
    expires_after="2019-09-07">
  <owner>dbertoni@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Reports whether an icon specified in the declarativeContent.SetIcon API is
    considered visible by our icon analysis code. This stat is emitted when we
    create the underlying object that sets the icon when the declarative rule is
    applied.
  </summary>
</histogram>

<histogram name="Extensions.DeclarativeSetIconWasVisibleRendered"
    enum="BooleanVisible" expires_after="2019-09-07">
  <owner>dbertoni@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Reports whether an icon specified in the declarativeContent.SetIcon API is
    considered visible by our icon analysis code. This stat is emitted when we
    create the underlying object that sets the icon when the declarative rule is
    applied.

    This replaces the previous stat, DeclarativeSetIconWasVisibleRendered, due
    to a change to our analysis algorithm. The new algorithm renders the icon
    against the toolbar background color and determines how visible the
    resulting pixels are.
  </summary>
</histogram>

<histogram
    name="Extensions.DeclarativeWebRequest.WebViewRequestDeclarativeRules"
    enum="BooleanDeclarativeRules">
  <owner>karandeepb@chromium.org</owner>
  <summary>
    Whether a network request from a guest webview has any declarative web
    request rules that need to be evaluated. Emitted whenever a network request
    from a guest webview is received at the network layer.
  </summary>
</histogram>

<histogram name="Extensions.DepricatedExternalJsonCount">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Number of extensions referenced in the depricated external extensions source
    at path chrome::DIR_DEPRICATED_EXTERNAL_EXTENSIONS.
  </summary>
</histogram>

<histogram name="Extensions.DialogLoadTime" units="ms">
  <obsolete>
    There is no such thing as an extension dialog.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The time for a dialog-hosted extension to load.</summary>
</histogram>

<histogram name="Extensions.DidCreateScriptContext_Blessed" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Part of the suite of Extensions.DidCreateScriptContext_* metrics. Records
    the time taken to install Extension JavaScript bindings per blessed
    extension context (chrome-extension://... origins within Extension
    processes, like background pages, options pages, popups).
  </summary>
</histogram>

<histogram name="Extensions.DidCreateScriptContext_BlessedWebPage" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Part of the suite of Extensions.DidCreateScriptContext_* metrics. Records
    the time taken to install Extension JavaScript bindings per blessed web page
    context (hosted apps).
  </summary>
</histogram>

<histogram name="Extensions.DidCreateScriptContext_ContentScript" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Part of the suite of Extensions.DidCreateScriptContext_* metrics. Records
    the time taken to install Extension JavaScript bindings per content script
    context.
  </summary>
</histogram>

<histogram name="Extensions.DidCreateScriptContext_LockScreenExtension"
    units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Part of the suite of Extensions.DidCreateScriptContext_* metrics. Records
    the time taken to install Extension JavaScript bindings per content script
    context. This histogram measures the time to install Extension Javascript
    bindings in a context for a platform app enabled on the Chrome OS lock
    screen.
  </summary>
</histogram>

<histogram name="Extensions.DidCreateScriptContext_Unblessed" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Part of the suite of Extensions.DidCreateScriptContext_* metrics. Records
    the time taken to install Extension JavaScript bindings per unblessed
    extension context (chrome-extension://... origins hosted in iframes).
  </summary>
</histogram>

<histogram name="Extensions.DidCreateScriptContext_Unspecified" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Part of the suite of Extensions.DidCreateScriptContext_* metrics. Records
    the time taken to install Extension JavaScript bindings in an unknown type
    of context (this should never happen other than in bizarre circumstances).
  </summary>
</histogram>

<histogram name="Extensions.DidCreateScriptContext_WebPage" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Part of the suite of Extensions.DidCreateScriptContext_* metrics. Records
    the time taken to install Extension JavaScript bindings per web page context
    (just the chrome.app, chrome.webstore, and possibly chrome.runtime APIs).
  </summary>
</histogram>

<histogram name="Extensions.DidCreateScriptContext_WebUI" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Part of the suite of Extensions.DidCreateScriptContext_* metrics. Records
    the time taken to install Extension JavaScript bindings per WebUI context
    (chrome://extensions and so forth).
  </summary>
</histogram>

<histogram name="Extensions.DidInitializeServiceWorkerContextOnWorkerThread"
    units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Records the time taken to install Extension JavaScript bindings per service
    worker context.
  </summary>
</histogram>

<histogram name="Extensions.DidSuppressJavaScriptException"
    enum="ChromeChannelForHistogram" expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Records the Chrome channel when JavaScript exceptions are not gracefully
    dealt with, and suppressed by C++ instead. These are exceptions generated
    (or simply not caught and gracefully recovered) in our own internal
    JavaScript, not from JavaScript code written by developers (that which is
    typically hosted in CRX files). This should be 0 for unstable channels like
    canary and dev, because we try *not* to suppress errors and instead kill the
    renderer and generate a crash report. However, at times we need to suppress
    even those. Note that this histogram is intended to be tracked over time,
    per channel, to observe crash rates. Comparisons between
    stable/beta/dev/canary are unlikely to be meaningful.
  </summary>
</histogram>

<histogram name="Extensions.Disabled">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of extensions that are disabled at browser startup.
  </summary>
</histogram>

<histogram name="Extensions.DisabledForPermissions">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of extensions that are disabled at browser startup due to
    permissions increases.
  </summary>
</histogram>

<histogram name="Extensions.DisabledUIUserResponse"
    enum="ExtensionDisabledUIUserResponse">
  <obsolete>
    Deprecated 03/2017 because miscounting IGNORE histogram entry. This error is
    fixed with DisabledUIUserResponse2.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    User response to the dialog shown when an extension is disabled due to an
    update requiring more permissions.
  </summary>
</histogram>

<histogram name="Extensions.DisabledUIUserResponse2"
    enum="ExtensionDisabledUIUserResponse">
  <owner>catmullings@chromium.org</owner>
  <summary>
    User response to the dialog shown when an extension is disabled due to an
    update requiring more permissions. A count is recorded when the user takes
    an action on the dialog (re-enable or remove the extension) or ignores the
    dialog.
  </summary>
</histogram>

<histogram name="Extensions.DisabledUIUserResponseRemoteInstall"
    enum="ExtensionDisabledUIUserResponse">
  <obsolete>
    Deprecated 03/2017 because miscounting IGNORE histogram entry. This error is
    fixed with DisabledUIUserResponseRemoteInstall2.
  </obsolete>
  <owner>mek@chromium.org</owner>
  <summary>
    User response to the dialog shown when an extension is disabled due to it
    having been installed remotely.
  </summary>
</histogram>

<histogram name="Extensions.DisabledUIUserResponseRemoteInstall2"
    enum="ExtensionDisabledUIUserResponse">
  <owner>catmullings@chromium.org</owner>
  <summary>
    User response to the dialog shown when an extension is disabled due to it
    having been installed remotely. A count is recorded when the user takes an
    action on the dialog (re-enable or remove the extension) or ignores the
    dialog.
  </summary>
</histogram>

<histogram name="Extensions.DisableReason" enum="ExtensionDisableReason">
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The count of disabled extensions at startup grouped by disble reason from
    disable_reason::DisableReason. When an extension is disabled, it can be for
    one or more reasons (although typically just one), so the sum of these may
    be greater than 'Extensions.Disabled' which is a count of the number of
    unique extensions that are disabled.
  </summary>
</histogram>

<histogram name="Extensions.DocsOfflineIconState" enum="ExtensionIconState">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The state of the toolbar icon for the docs offline extension (visible in the
    toolbar, overflowed in the menu, or the extension is disabled). Recorded
    once per startup per (non-incognito) profile.
  </summary>
</histogram>

<histogram name="Extensions.DynamicExtensionActionIconWasVisible"
    enum="BooleanVisible" expires_after="2019-09-07">
  <owner>dbertoni@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Reports whether a call to set a dynamic icon in the toolbar passed an icon
    considered visible by our icon analysis code.
  </summary>
</histogram>

<histogram name="Extensions.DynamicExtensionActionIconWasVisibleRendered"
    enum="BooleanVisible" expires_after="2019-09-07">
  <owner>dbertoni@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Reports whether a call to set a dynamic icon in the toolbar passed an icon
    considered visible by our icon analysis code.

    This replaces the previous stat, DynamicExtensionActionIconWasVisible, due
    to a change to our analysis algorithm. The new algorithm renders the icon
    against the toolbar background color and determines how visible the
    resulting pixels are.
  </summary>
</histogram>

<histogram name="Extensions.EnhancedBookmarksManagerNumEventListeners">
  <obsolete>
    Obsolete since the enhanced bookmarks manager is no longer using an event
    page.
  </obsolete>
  <owner>wittman@chromium.org</owner>
  <summary>
    The number of event listeners the Enhanced Bookmarks Manager has, measured
    at profile startup. A value of 0 implies that Chrome has a general bug with
    event page management, since the bookmarks manager should always have at
    least one event listener - but a bug with event page management that affects
    the bookmarks manager is particularly dire.
  </summary>
</histogram>

<histogram name="Extensions.ErrorCodeFromCrxOpen">
  <owner>extensions-core@chromium.org</owner>
  <summary>
    If opening the CRX file for unpacking fails, this integer is the error code
    given by the OS.
  </summary>
</histogram>

<histogram name="Extensions.EventlessEventPages">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of extensions with event pages that have no registered event
    listeners at profile startup. (This may indicate something has gone wrong;
    such event pages will never get started.)
  </summary>
</histogram>

<histogram name="Extensions.EventPageActiveTime" units="ms">
  <obsolete>
    Replaced by Extensions.EventPageActiveTime2.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>The time an extension's event page has spent loaded.</summary>
</histogram>

<histogram name="Extensions.EventPageActiveTime2" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The time between an extension's event page loading its first URL and the
    event page later shutting down.
  </summary>
</histogram>

<histogram name="Extensions.EventPageIdleTime" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>The time an extension's event page has spent unloaded.</summary>
</histogram>

<histogram name="Extensions.EventPageLoadTime" units="ms">
  <obsolete>
    Replaced by Extensions.EventPageLoadTime2.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>The time for an extension's event page to load.</summary>
</histogram>

<histogram name="Extensions.EventPageLoadTime2" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The time taken for an extension's event page to load its initial URL.
  </summary>
</histogram>

<histogram name="Extensions.Events.Dispatch" enum="ExtensionEvents">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>Recorded every time an event is dispatched to an extension.</summary>
</histogram>

<histogram name="Extensions.Events.DispatchToComponent" enum="ExtensionEvents">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Recorded every time an event is dispatched to a *component* extension.
    Otherwise identical to Extensions.Events.Dispatched.
  </summary>
</histogram>

<histogram name="Extensions.Events.DispatchToComponentWithSuspendedEventPage"
    enum="ExtensionEvents">
  <owner>mfoltz@chromium.org</owner>
  <summary>
    Recorded every time an event is dispatched to a *component* extension with a
    suspended event page. Otherwise identical to
    Extensions.Events.DispatchWithSuspendedEventPage.
  </summary>
</histogram>

<histogram name="Extensions.Events.DispatchWithPersistentBackgroundPage"
    enum="ExtensionEvents">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Recorded every time an event is dispatched to an extension with a persistent
    background page. The event may or may not have been dispatched to the
    background page itself, for example it may have been dispatched to its
    popup. When this metric is recorded, Extensions.Events.Dispatch will also be
    recorded.
  </summary>
</histogram>

<histogram name="Extensions.Events.DispatchWithRunningEventPage"
    enum="ExtensionEvents">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Recorded every time an event is dispatched to an extension with an event
    page that was already running (i.e. at some point had been woken from its
    suspended state, see Extensions.Events.DispatchWithSuspendedEventPage). The
    event may or may not have been dispatched to the event page itself, for
    example it may have been dispatched to its popup. When this metric is
    recorded, Extensions.Events.Dispatch will also be recorded.
  </summary>
</histogram>

<histogram name="Extensions.Events.DispatchWithSuspendedEventPage"
    enum="ExtensionEvents">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Recorded every time an event is dispatched to an extension with an event
    page that was suspended. This implies that firing this event woke up the
    event page. The event may or may not have been dispatched to the event page
    itself, for example it may have been dispatched to its popup, but regardless
    it will wake the event page. When this metric is recorded,
    Extensions.Events.Dispatch will also be recorded.
  </summary>
</histogram>

<histogram name="Extensions.ExtensionCacheCount">
  <owner>achuith@chromium.org</owner>
  <summary>
    Number of cached extensions on disk. Reported on Chrome OS during user
    session start.
  </summary>
</histogram>

<histogram name="Extensions.ExtensionCacheSize" units="MB">
  <owner>achuith@chromium.org</owner>
  <summary>
    Total size of .crx files in cache on disk. Reported on Chrome OS during user
    session start.
  </summary>
</histogram>

<histogram name="Extensions.ExtensionCreationTime" units="microseconds">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The amount of time taken to create a single extension object. This includes
    parsing all the different extension manifest keys and initializating the
    associated manifest data.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Extensions.ExtensionFrameMapCacheHit" units="Boolean">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    True if the cache of the extension frame map was hit during access on the IO
    thread.
  </summary>
</histogram>

<histogram name="Extensions.ExtensionFrameMapLookupSuccessful" units="Boolean">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    True if the lookup for a frame in the extension frame map succeeded after a
    cache miss.
  </summary>
</histogram>

<histogram name="Extensions.ExtensionHostMonitoring.MaxActiveLoading"
    expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The maximum number of ExtensionHosts (primarily background/event pages) that
    were actively loading at any one time, within the first minute of Chrome
    startup. Emitted exactly one minute after startup.
  </summary>
</histogram>

<histogram name="Extensions.ExtensionHostMonitoring.MaxInQueue"
    expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The maximum number of ExtensionHosts (primarily background/event pages) in
    the queue awaiting being loaded (via an ExtensionHostQueue), within the
    first minute of Chrome startup. Emitted exactly one minute after startup.
  </summary>
</histogram>

<histogram name="Extensions.ExtensionHostMonitoring.NumLoaded"
    expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The total number of ExtensionHosts that completed loading in the first
    minute of Chrome startup. Emitted exactly one minute after startup.
  </summary>
</histogram>

<histogram name="Extensions.ExtensionHostMonitoring.NumQueued"
    expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The total number of ExtensionHosts (primarily background/event pages) that
    were added to a queue to start loading, within the first minute of Chrome
    startup. These may or may not end up starting, let alone finishing,
    depending on the queue behavior. Emitted exactly one minute after startup.
  </summary>
</histogram>

<histogram name="Extensions.ExtensionInstalled">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>An extension has been installed.</summary>
</histogram>

<histogram name="Extensions.ExtensionLocation" enum="ExtensionLocation">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of extensions loaded at startup time grouped by
    Extension::Location.
  </summary>
</histogram>

<histogram name="Extensions.ExtensionManagement_RefreshTime" units="ms">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during ExtensionManagement::Refresh.
  </summary>
</histogram>

<histogram name="Extensions.ExtensionRendererStateCacheHit" units="Boolean">
  <obsolete>
    Deprecated 4/2016. ExtensionRendererState was replaced with
    ExtensionFrameMap.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    True if the cache for the ExtensionRendererState was hit during a lookup.
  </summary>
</histogram>

<histogram name="Extensions.ExtensionRootPathLength">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Length of the Extensions dir path inside the profile directory.
  </summary>
</histogram>

<histogram name="Extensions.ExtensionServiceInitTime">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Time taken for the ExtensionService to initialize, including the time it
    takes to load the extensions for the service's profile and parse their
    manifests. This happens during startup and also any time a new profile is
    loaded.
  </summary>
</histogram>

<histogram name="Extensions.ExtensionServiceNotifyReadyListenersTime"
    expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Time taken for the ExtensionService to notify all ready listeners that the
    extension system is now ready. This happens as part of the total
    initialization time of ExtensionService, measured in
    Extensions.ExtensionServiceInitTime.
  </summary>
</histogram>

<histogram name="Extensions.ExtensionUninstalled">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>An extension has been uninstalled.</summary>
</histogram>

<histogram name="Extensions.ExtensionUpdaterFirstUpdateCheckErrorsGoogleUrl"
    enum="CombinedHttpResponseAndNetErrorCode" expires_after="M75">
  <owner>waffles@chromium.org</owner>
  <summary>
    Records the error codes of the extension updater update check errors. These
    events are triggered only when the extension updater gets an error for the
    first time (before any retry) in the update check phase for a google.com
    domain.
  </summary>
</histogram>

<histogram name="Extensions.ExtensionUpdaterFirstUpdateCheckErrorsNonGoogleUrl"
    enum="CombinedHttpResponseAndNetErrorCode" expires_after="M75">
  <owner>waffles@chromium.org</owner>
  <summary>
    Records the error codes of the extension updater update check errors. These
    events are triggered only when the extension updater gets an error for the
    first time (before any retry) in the update check phase for a non google.com
    domain.
  </summary>
</histogram>

<histogram name="Extensions.ExtensionUpdaterRawUpdateCalls" units="extensions">
  <owner>waffles@chromium.org</owner>
  <summary>
    The number of extensions that are checked for update. This number is emitted
    right before the extensions are split between the current extension updater
    and the unified extension updater (if used).
  </summary>
</histogram>

<histogram name="Extensions.ExtensionUpdaterUpdateCalls" units="extensions">
  <owner>waffles@chromium.org</owner>
  <summary>
    The number of extensions that are passed over to the extension updater for
    update check. Triggered when the extension updater starts doing update
    check.
  </summary>
</histogram>

<histogram name="Extensions.ExtensionUpdaterUpdateFoundCount"
    units="extensions">
  <owner>waffles@chromium.org</owner>
  <summary>
    The number of extensions that have updates in an update check session.
    Triggered when the extension updater found an update for an extension.
  </summary>
</histogram>

<histogram name="Extensions.ExtensionUpdaterUpdateResults"
    enum="ExtensionUpdaterUpdateResult">
  <owner>waffles@chromium.org</owner>
  <summary>
    Records the update results of extensions in an extension updater session,
    grouped by ExtensionUpdaterUpdateResult.
  </summary>
</histogram>

<histogram name="Extensions.ExternalExtensionEvent" enum="SideloadUIEvents">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Records what happens to extensions that are sideloaded, grouped by the
    ExternalExtensionEvent enum.
  </summary>
</histogram>

<histogram name="Extensions.ExternalItemState" enum="ExternalItemState"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of sideloaded apps/extensions loaded on startup grouped by
    enabled/disabled state.
  </summary>
</histogram>

<histogram name="Extensions.ExternalJsonCount">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Number of extensions referenced in the external extensions source at path
    chrome::DIR_EXTERNAL_EXTENSIONS.
  </summary>
</histogram>

<histogram name="Extensions.ExternalWarningUninstallationResult" enum="Boolean">
  <obsolete>
    Expired 2018-08.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Whether or not the uninstallation of an external extension succeeded.
    Triggered when the external install warning is shown to the user and the
    user selects to remove the extension.
  </summary>
</histogram>

<histogram name="Extensions.FeatureProviderStaticInitTime" units="ms">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during extensions::FeatureProvider::Static.
    Only measured while in the browser process.
  </summary>
</histogram>

<histogram name="Extensions.FileAccessAllowed" expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of extensions (and friends) that could have been given access to
    the file:// scheme, and were, for users that have at least one extension
    that could have been given access. This excludes anything that doesn't show
    up in chrome://extensions (platform apps, hosted apps, component
    extensions), policy-installed extensions, and unpacked extensions. See also
    Extensions.FileAccessNotAllowed.
  </summary>
</histogram>

<histogram name="Extensions.FileAccessNotAllowed" expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of extensions (and friends) that could have been given access to
    the file:// scheme, but weren't, for users that have at least one extension
    that could have been given access. This excludes anything that doesn't show
    up in chrome://extensions (platform apps, hosted apps, component
    extensions), policy-installed extensions, and unpacked extensions. See also
    Extensions.FileAccessAllowed.
  </summary>
</histogram>

<histogram name="Extensions.FileInstallation" units="ms">
  <owner>xiaohuic@chromium.org</owner>
  <summary>
    Record the time taken to physically move the extention files from temporary
    location to the final installation directory. It includes the time to flush
    the file system if ExtensionUseSafeInstallation field trial is enabled. This
    is recorded once per extension install/update.
  </summary>
</histogram>

<histogram name="Extensions.FontSettingsEventRouterCtorTime" units="ms">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during the FontSettingsEventRouter
    construction.
  </summary>
</histogram>

<histogram name="Extensions.ForceInstalledFailureCrxInstallError"
    enum="ExtensionInstallationCrxInstallError" expires_after="2019-07-01">
  <owner>poromov@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Detailed reason why CRX installation failed for enterprise policy forced
    extensions. Recorded for each forced extension that failed to install after
    5 minutes with Extensions.ForceInstalledFailureReason equal to
    CRX_INSTALL_ERROR_*.
  </summary>
</histogram>

<histogram name="Extensions.ForceInstalledFailureReason"
    enum="ExtensionInstallationFailureReason" expires_after="2019-07-01">
  <owner>poromov@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The reason why enterprise policy forced extensions were not installed.
    Recorded for each forced extension that failed to install after 5 minutes.
    Recorded together with &quot;Extensions.ForceInstalledTimedOutCount&quot;
    histogram.
  </summary>
</histogram>

<histogram name="Extensions.ForceInstalledLoadTime" units="ms"
    expires_after="2019-07-01">
  <owner>poromov@chromium.org</owner>
  <summary>
    The amount of time elapsed during installation of enterprise policy forced
    extensions.
  </summary>
</histogram>

<histogram name="Extensions.ForceInstalledTimedOutAndNotInstalledCount"
    expires_after="2019-07-01">
  <owner>poromov@chromium.org</owner>
  <summary>
    Number of enterprise policy forced extensions that are not installed after 5
    minutes if at least one of policy forced extensions is not yet enabled.
  </summary>
</histogram>

<histogram name="Extensions.ForceInstalledTimedOutCount"
    expires_after="2019-07-01">
  <owner>poromov@chromium.org</owner>
  <summary>
    Number of enterprise policy forced extensions that are not enabled after 5
    minutes timeout, while might be already installed.
  </summary>
</histogram>

<histogram name="Extensions.FromWebstoreInconsistency"
    enum="ExtensionFromWebstoreInconcistencyEnum" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Number of apps/extensions loaded on startup with an inconsistent &quot;from
    webstore&quot; state. This means an item that is flagged as from_webstore,
    but with either a non-webstore update_url or an external install location.
  </summary>
</histogram>

<histogram name="Extensions.FunctionCalls" enum="ExtensionFunctions">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>Number of calls to extension functions.</summary>
</histogram>

<histogram name="Extensions.Functions.FailedTime" enum="ExtensionFunctions">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Recorded when an extension function call fails and finishes execution. The
    suffix indicates the exact bucket the function is in. See also
    Extensions.Functions.FailedTotalExecutionTime.
  </summary>
</histogram>

<histogram name="Extensions.Functions.FailedTotalExecutionTime" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The total amount of time it took to execute an extension function that
    failed from the time the extension function is called to the time the
    function responds. Note that since some extension functions are inherently
    slow (anything that requires user interaction, for instance), this is not a
    definitive source for function performance.
  </summary>
</histogram>

<histogram name="Extensions.Functions.HandleResponseElapsedTime" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The amount of time it takes to handle a response for an extension API
    request. Recorded on the renderer side once we receive the response IPC from
    the browser and have deserialized the arguments and passed them to the JS
    context. Only recorded if the response is successfully handled.
  </summary>
</histogram>

<histogram name="Extensions.Functions.StartRequestElapsedTime" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The amount of time it takes to start an extension API request. Recorded on
    the renderer side after we perform JS pre-processing, but includes all
    serialization and dispatching. Only recorded if the request is successfully
    dispatched.
  </summary>
</histogram>

<histogram name="Extensions.Functions.SucceededTime" enum="ExtensionFunctions">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Recorded when an extension function call succeeds and finishes execution.
    The suffix indicates the exact bucket the function is in. See also
    Extensions.Functions.SucceededTotalExecutionTime.
  </summary>
</histogram>

<histogram name="Extensions.Functions.SucceededTotalExecutionTime" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The total amount of time it took to execute an extension function that
    succeeded from the time the extension function is called to the time the
    function responds. Note that since some extension functions are inherently
    slow (anything that requires user interaction, for instance), this is not a
    definitive source for function performance.
  </summary>
</histogram>

<histogram name="Extensions.Functions.SynchronousExecutionTime" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The synchronous amount of time an extension function takes. Note that many
    extension functions run asynchronously; see also
    Extensions.Functions.[Succeeded|Failed]TotalExecutionTime.
  </summary>
</histogram>

<histogram name="Extensions.GetUserDataTempDir" enum="GetUserDataTempDirResult">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    What happens when the extensions system tries to get a temp dir to unpack
    in?
  </summary>
</histogram>

<histogram name="Extensions.HasPermissions_AutoDisable3" enum="Boolean"
    expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Whether there were any permissions present in an extension when it is
    automatically disabled due to a permission increase (e.g., after an
    extension upgrade). To find places where this histogram may be emitted, look
    for calls to ExtensionService::RecordPermissionMessagesHistogram with the
    argument AutoDisable. For Sync users, this may be reported for each device,
    depending on whether the Sync update or the extension auto-update happen
    first.
  </summary>
</histogram>

<histogram name="Extensions.HasPermissions_Install3" enum="Boolean">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Whether there were any permissions present in an extension when it was
    installed. To find places where this histogram may be emitted, look for
    calls to ExtensionService::RecordPermissionMessagesHistogram with the
    argument Install. For Sync users, this is reported for each device.
  </summary>
</histogram>

<histogram name="Extensions.HasPermissions_InstallAbort3" enum="Boolean">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Whether there were any permissions present in an extension when installation
    was aborted (e.g. because the parent window of the confirmation dialog went
    away), not including installation errors and user cancels. To find places
    where this histogram may be emitted, look for calls to
    ExtensionService::RecordPermissionMessagesHistogram with the argument
    InstallAbort.
  </summary>
</histogram>

<histogram name="Extensions.HasPermissions_InstallCancel3" enum="Boolean"
    expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Whether there were any permissions present in an extension when installation
    was canceled. To find places where this histogram may be emitted, look for
    calls to ExtensionService::RecordPermissionMessagesHistogram with the
    argument InstallCancel.
  </summary>
</histogram>

<histogram name="Extensions.HasPermissions_Load3" enum="Boolean">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Whether there were any permissions present in an extension when it was
    loaded (which happens at profile open or extension install). To find places
    where this histogram may be emitted, look for calls to
    ExtensionService::RecordPermissionMessagesHistogram with the argument Load.
  </summary>
</histogram>

<histogram name="Extensions.HasPermissions_ReEnable3" enum="Boolean"
    expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Whether there were any permissions present in an extension when it was
    re-enabled from a confirmation prompt. To find places where this histogram
    may be emitted, look for calls to
    ExtensionService::RecordPermissionMessagesHistogram with the argument
    ReEnable.
  </summary>
</histogram>

<histogram name="Extensions.HasPermissions_ReEnableAbort3" enum="Boolean"
    expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Whether there were any permissions present in an extension when the
    re-enable prompt was aborted (e.g. because the parent window of the
    confirmation dialog went away), not including installation errors and manual
    user cancels. To find places where this histogram may be emitted, look for
    calls to ExtensionService::RecordPermissionMessagesHistogram with the
    argument ReEnableAbort.
  </summary>
</histogram>

<histogram name="Extensions.HasPermissions_ReEnableCancel3" enum="Boolean"
    expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Whether there were any permissions present in an extension when the
    re-enable was canceled from the confirmation prompt. To find places where
    this histogram may be emitted, look for calls to
    ExtensionService::RecordPermissionMessagesHistogram with the argument
    ReEnableCancel.
  </summary>
</histogram>

<histogram name="Extensions.HasPermissions_Uninstall3" enum="Boolean"
    expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Whether there were any permissions present in an extension when it was
    uninstalled. To find places where this histogram may be emitted, look for
    calls to ExtensionService::RecordPermissionMessagesHistogram with the
    argument Uninstall. For Sync users, this is reported for each device.
  </summary>
</histogram>

<histogram name="Extensions.HasPermissions_WebStoreInstall3" enum="Boolean">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Whether there were any permissions present in an extension when it was
    installed through the web store. To find places where this histogram may be
    emitted, look for calls to
    ExtensionService::RecordPermissionMessagesHistogram with the argument
    WebStoreInstall. Contrary to the more-general HasPermissions_Install3
    histogram, this one is NOT reported for each device.
  </summary>
</histogram>

<histogram name="Extensions.HasPermissions_WebStoreInstallAbort3"
    enum="Boolean">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Whether there were any permissions present in an extension when installation
    from the web store was aborted (e.g. because the parent window of the
    confirmation dialog went away), not including installation errors and user
    cancels. To find places where this histogram may be emitted, look for calls
    to ExtensionService::RecordPermissionMessagesHistogram with the argument
    WebStoreInstallAbort.
  </summary>
</histogram>

<histogram name="Extensions.HasPermissions_WebStoreInstallCancel3"
    enum="Boolean">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Whether there were any permissions present in an extension when installation
    from the web store was canceled. To find places where this histogram may be
    emitted, look for calls to
    ExtensionService::RecordPermissionMessagesHistogram with the argument
    WebStoreInstallCancel.
  </summary>
</histogram>

<histogram name="Extensions.HostedAppLaunchContainer" enum="AppLaunchContainer">
  <owner>benwells@chromium.org</owner>
  <summary>
    Records the container used for a hosted app launch. The definition of
    'launch' for the purposes of this histogram is different to that used for
    the launch type histograms. This definition is less inclusive, for example
    it does not include navigations to the hosted app due to normal browsing,
    which the other definition does include. This definition could be thought of
    more as explicit launches via a launch surface such as the app launcher,
    chrome://apps, or a shortcut.
  </summary>
</histogram>

<histogram name="Extensions.HostedAppUnlimitedStoragePersistentStorageUsage"
    units="KB" expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The usage (in kilobytes) of persistent storage in a hosted app with the
    unlimitedStorage permission. This is logged each time the storage is used*,
    so this also serves as a cap of the number of calls that would fail if the
    app did not have the unlimited storage permission. *Capped at once per 30
    seconds so as to not impact performance.
  </summary>
</histogram>

<histogram name="Extensions.HostedAppUnlimitedStorageTemporaryStorageUsage"
    units="%" expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The percentage of &quot;normal&quot; (that is, not unlimited) quota that a
    hosted app with unlimited storage is currently using. This is logged each
    time the storage is used*, so the number of times the app would use greater
    than 100% of the default storage can serve as a cap for the number of calls
    that would fail if the app did not have the unlimitedStorage permission.
    *Capped at once per 30 seconds so as to not impact performance.
  </summary>
</histogram>

<histogram name="Extensions.HostedAppUnlimitedStorageUsage" units="KB"
    expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The usage (in kilobytes) of a hosted app with the unlimitedStorage api
    permission, recorded once per run per app the first time we load storage for
    the hosted app. This is separate from the other metrics on hosted app
    unlimited storage usage because it is logged once per extension per run.
  </summary>
</histogram>

<histogram name="Extensions.IncognitoAllowed">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of extensions (and friends) that could have been allowed in
    incognito, and were, for users that have at least one extension that could
    have been allowed. This excludes anything that doesn't show up in
    chrome://extensions (platform apps, hosted apps, component extensions),
    policy-installed extensions, and unpacked extensions. See also
    Extensions.IncognitoNotAllowed.
  </summary>
</histogram>

<histogram name="Extensions.IncognitoNotAllowed" expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of extensions (and friends) that could have been allowed in
    incognito, but weren't, for users that have at least one extension that
    could have been allowed. This excludes anything that doesn't show up in
    chrome://extensions (platform apps, hosted apps, component extensions),
    policy-installed extensions, and unpacked extensions. See also
    Extensions.IncognitoAllowed.
  </summary>
</histogram>

<histogram name="Extensions.InitExtensionControlledPrefsTime" units="ms">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during
    ExtensionPrefs::InitExtensionControlledPrefs.
  </summary>
</histogram>

<histogram name="Extensions.InitPrefGetExtensionsTime" units="ms">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during the GetExtensions call within
    ExtensionPrefs::InitPrefStore.
  </summary>
</histogram>

<histogram name="Extensions.InitPrefStoreTime" units="ms">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during ExtensionPrefs::InitPrefStore.
  </summary>
</histogram>

<histogram name="Extensions.InjectCssTime" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The amount of time for a CSS file to be injected into a page.
  </summary>
</histogram>

<histogram name="Extensions.InjectedScriptExecutionTime" units="ms">
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Time taken to execute all scripts for one location within an extension.
    Recorded every time content scripts injected by extensions are executed.
    Unlike Extensions.InjectScriptTime, this includes execution time of
    asynchronously injected scripts.
  </summary>
</histogram>

<histogram name="Extensions.InjectEnd_BlockingScriptCount"
    expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Number of blocking scripts injected at document end by extensions.
  </summary>
</histogram>

<histogram name="Extensions.InjectEnd_ScriptCount" expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>Number of scripts injected at document end by extensions.</summary>
</histogram>

<histogram name="Extensions.InjectEnd_Time" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Time taken to inject all scripts at document end by extensions. Not reported
    if scripts are executed asynchronously.
  </summary>
</histogram>

<histogram name="Extensions.InjectIdle_BlockingScriptCount"
    expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Number of blocking scripts injected at document idle by extensions.
  </summary>
</histogram>

<histogram name="Extensions.InjectIdle_ScriptCount" expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>Number of scripts injected at document idle by extensions.</summary>
</histogram>

<histogram name="Extensions.InjectIdle_Time" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Time taken to inject all scripts at document idle by extensions. Not
    reported if scripts are executed asynchronously.
  </summary>
</histogram>

<histogram name="Extensions.InjectScriptTime" units="ms">
  <obsolete>
    Deprecated 03/2017 in favor of Extensions.InjectedScriptExecutionTime.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>Time taken to inject all scripts by extensions.</summary>
</histogram>

<histogram name="Extensions.InjectStart_BlockingScriptCount">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Number of blocking scripts injected at document start by extensions.
  </summary>
</histogram>

<histogram name="Extensions.InjectStart_CssCount" expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>Number of css files injected by extensions.</summary>
</histogram>

<histogram name="Extensions.InjectStart_ScriptCount">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>Number of scripts injected at document start by extensions.</summary>
</histogram>

<histogram name="Extensions.InjectStart_Time" units="ms"
    expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Time taken to inject css/scripts at document start by extensions. Not
    reported if scripts are executed asynchronously.
  </summary>
</histogram>

<histogram name="Extensions.InstallPrompt.Accepted" enum="BooleanAccepted">
  <owner>meacer@chromium.org</owner>
  <summary>
    Whether the user accepted or aborted an extension installation.
  </summary>
</histogram>

<histogram name="Extensions.InstallPrompt.Type"
    enum="ExtensionInstallPromptType">
  <owner>meacer@chromium.org</owner>
  <summary>
    Type of the extension install prompt displayed when an extension
    installation is triggered.
  </summary>
</histogram>

<histogram name="Extensions.InstallPromptExperiment.ShowDetails"
    enum="ExtensionInstallPromptExperimentLinkAction">
  <owner>meacer@chromium.org</owner>
  <summary>
    Actions on the show details link grouped by action type when the install
    prompt trial is running.
  </summary>
</histogram>

<histogram name="Extensions.InstallPromptExperiment.ShowPermissions"
    enum="ExtensionInstallPromptExperimentLinkAction">
  <owner>meacer@chromium.org</owner>
  <summary>
    Actions on the show permissions link grouped by action type when the install
    prompt trial is running.
  </summary>
</histogram>

<histogram name="Extensions.InstallSource" enum="ExtensionLocation">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>Installs grouped by the location property in prefs.</summary>
</histogram>

<histogram name="Extensions.InstallType" enum="ExtensionType">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>Installs grouped by Extension::HistogramType.</summary>
</histogram>

<histogram name="Extensions.InstanceID.GetToken.OptionsCount" units="options"
    expires_after="2019-01-30">
  <owner>peter@chromium.org</owner>
  <summary>
    The number of options provided to the GetToken request. Recorded when the
    extension has made a call to chrome.instanceID.getToken().
  </summary>
</histogram>

<histogram name="Extensions.IsRenderedIconSufficientlyVisibleTime"
    units="microseconds" expires_after="2019-12-01">
  <owner>dbertoni@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The amount of elapsed time taken to render an icon against a specified
    background color and determine whether it would be visible to the user.
    Recorded every time the analysis code is called.
  </summary>
</histogram>

<histogram name="Extensions.LoadAll">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>The number of extensions and themes loaded at profile open.</summary>
</histogram>

<histogram name="Extensions.LoadAllComponentTime" units="ms"
    expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Time taken to load all component extensions at profile open. This happens as
    part of the total initialization time of ExtensionService, measured in
    Extensions.ExtensionServiceInitTime.
  </summary>
</histogram>

<histogram name="Extensions.LoadAllTime" units="ms" expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Time taken to load all non-component extensions at profile open. This
    happens as part of the total initialization time of ExtensionService,
    measured in Extensions.ExtensionServiceInitTime.
  </summary>
</histogram>

<histogram name="Extensions.LoadAllTime2" units="ms" expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Time taken to load all non-component extensions at profile open and record
    metrics. This happens as part of the total initialization time of
    ExtensionService, measured in Extensions.ExtensionServiceInitTime.
  </summary>
</histogram>

<histogram name="Extensions.LoadApp">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>The number of apps loaded by each user at profile open.</summary>
</histogram>

<histogram name="Extensions.LoadAppExternal">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of externally managed apps loaded by each user at profile open.
  </summary>
</histogram>

<histogram name="Extensions.LoadAppUser" expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of user-installed apps loaded by each user at profile open.
  </summary>
</histogram>

<histogram name="Extensions.LoadBrowserAction" expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of browser action extensions loaded at profile open.
  </summary>
</histogram>

<histogram name="Extensions.LoadContentPack">
  <obsolete>
    Deprecated as of 4/2015. Replaced by ManagedUsers.Whitelist.Count.
  </obsolete>
  <owner>asargent@chromium.org</owner>
  <summary>
    The number of content-pack extensions loaded at profile open.
  </summary>
</histogram>

<histogram name="Extensions.LoadCreationFlags" enum="ExtensionCreationFlags">
  <owner>calamity@chromium.org</owner>
  <summary>
    The creation flags of all extensions loaded at profile open grouped by
    Extension::InitFromValueFlags.
  </summary>
</histogram>

<histogram name="Extensions.LoadExtension">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>The number of extensions loaded at profile open.</summary>
</histogram>

<histogram name="Extensions.LoadExtensionExternal">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of externally managed extensions loaded at profile open.
  </summary>
</histogram>

<histogram name="Extensions.LoadExtensionUser">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of user-installed extensions loaded at profile open.
  </summary>
</histogram>

<histogram name="Extensions.LoadExternal">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of externally managed extensions and apps loaded at profile open.
  </summary>
</histogram>

<histogram name="Extensions.LoadHostedApp">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of hosted apps loaded by each user at profile open.
  </summary>
</histogram>

<histogram name="Extensions.LoadNoExtensionAction" expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of extensions that had neither a page nor browser action
    specified in their manifest. Recorded at profile open.
  </summary>
</histogram>

<histogram name="Extensions.LoadOffStoreItems" units="Number of items">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of enabled extensions or apps the user has installed that do not
    update from the Chrome Web Store. Recorded during profile initialization.
  </summary>
</histogram>

<histogram name="Extensions.LoadPackagedApp">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of legacy packaged apps loaded by each user at profile open.
  </summary>
</histogram>

<histogram name="Extensions.LoadPlatformApp">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>The number of platform apps loaded at profile open.</summary>
</histogram>

<histogram name="Extensions.LoadTheme">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>The number of themes loaded at profile open.</summary>
</histogram>

<histogram name="Extensions.LoadType" enum="ExtensionType">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of extensions loaded at profile open grouped by
    Extension::HistogramType.
  </summary>
</histogram>

<histogram name="Extensions.LoadUserScript">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of converted user scripts loaded at profile open.
  </summary>
</histogram>

<histogram name="Extensions.LockedFullscreenStateRequest"
    enum="LockedFullscreenState" expires_after="2019-07-01">
  <owner>isandrk@chromium.org</owner>
  <owner>jhastings@chromium.org</owner>
  <summary>
    Records requests to enter or exit locked fullscreen mode through extension
    APIs. Used only on Chrome OS.
  </summary>
</histogram>

<histogram base="true" name="Extensions.LongInjectionTaskTime" units="ms">
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The amount of time taken to inject content scripts. If multiple scripts are
    injected within a single task, this records the time taken to execute all
    the scripts.

    This metric only logs tasks longer than 50 milliseconds. This threshold
    aligns with the definition of &quot;long task&quot; in Long Tasks API
    (https://w3c.github.io/longtasks/).

    Note that this histogram itself doesn't tell you what percentage of content
    scripts are greater than 50 ms. See Extensions.Inject{Start,End,Idle}_Time
    and Extensions.InjectedScriptExecutionTime.* for the overall distribution.
  </summary>
</histogram>

<histogram name="Extensions.ManifestFetchFailureRetryCountGoogleUrl">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Number of times chrome retried to download an extension update manifest with
    a url on a google.com domain, before eventually giving up.
  </summary>
</histogram>

<histogram name="Extensions.ManifestFetchFailureRetryCountOtherUrl"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Number of times chrome retried to download an extension update manifest with
    a url on a non google.com domain, before eventually giving up.
  </summary>
</histogram>

<histogram name="Extensions.ManifestFetchSuccessRetryCountGoogleUrl">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Number of times chrome retried to download an extension update manifest with
    a url on a google.com domain, before eventually succeeding.
  </summary>
</histogram>

<histogram name="Extensions.ManifestFetchSuccessRetryCountOtherUrl">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Number of times chrome retried to download an extension update manifest with
    a url on a non google.com domain, before eventually succeeding.
  </summary>
</histogram>

<histogram name="Extensions.ManifestIconSetIconWasVisibleForPacked"
    enum="BooleanVisible" expires_after="2019-09-07">
  <owner>dbertoni@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Reports whether an icon that's specified in the manifest is considered
    visible by our icon analysis code. This stat is only for packed extensions,
    which we check dynamically when the icon is requested. The stat is emitted
    the first time the default icon is requested, since we cache the icon that's
    selected.
  </summary>
</histogram>

<histogram name="Extensions.ManifestIconSetIconWasVisibleForPackedRendered"
    enum="BooleanVisible" expires_after="2019-09-07">
  <owner>dbertoni@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Reports whether an icon that's specified in the manifest is considered
    visible by our icon analysis code. This stat is only for packed extensions,
    which we check dynamically when the icon is requested. The stat is emitted
    the first time the default icon is requested, since we cache the icon that's
    selected.

    This replaces the previous stat, ManifestIconSetIconWasVisibleForPacked, due
    to a change to our analysis algorithm. The new algorithm renders the icon
    against the toolbar background color and determines how visible the
    resulting pixels are.
  </summary>
</histogram>

<histogram name="Extensions.ManifestIconSetIconWasVisibleForUnpacked"
    enum="BooleanVisible" expires_after="2019-09-07">
  <owner>dbertoni@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Reports whether loading an icon declarated in the extension's manifest icon
    set is considered visible by our icon analysis code. This stat is only for
    unpacked extensions, which we check at load time.
  </summary>
</histogram>

<histogram name="Extensions.ManifestIconSetIconWasVisibleForUnpackedRendered"
    enum="BooleanVisible" expires_after="2019-09-07">
  <owner>dbertoni@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Reports whether loading an icon declarated in the extension's manifest icon
    set is considered visible by our icon analysis code. This stat is only for
    unpacked extensions, which we check at load time.

    This replaces the previous stat, ManifestIconSetIconWasVisibleForUnpacked,
    due to a change to our analysis algorithm. The new algorithm renders the
    icon against the toolbar background color and determines how visible the
    resulting pixels are.
  </summary>
</histogram>

<histogram name="Extensions.ManifestReloadNeedsRelocalization"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Number of extension loads on startup where it is necessary to reload the
    mainfest because the locale has changed.
  </summary>
</histogram>

<histogram name="Extensions.ManifestReloadNotNeeded" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Number of extension loads on startup where it is not necessary to reload the
    extension's manifest.
  </summary>
</histogram>

<histogram name="Extensions.ManifestReloadUnpackedDir"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Number of extension loads on startup where it is necessary to reload the
    manifest because the extension is unpacked.
  </summary>
</histogram>

<histogram name="Extensions.ManifestVersion">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>The manifest version of each loaded extension.</summary>
</histogram>

<histogram name="Extensions.Messaging.ExtensionPortsCreated"
    units="number of ports">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of ports created in a given script context at a specific time.
    Recorded once at the destruction of the script context (when no more ports
    could be created) if and only if at least one port was created in the
    context. Only includes ports to extension contexts (i.e., not ports created
    to tabs or native apps).
  </summary>
</histogram>

<histogram name="Extensions.Messaging.GetPortIdAsyncTime" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The total amount of time between when an extension opens a new channel and
    when it receives the global port id from the browser and can begin sending
    messages.
  </summary>
</histogram>

<histogram name="Extensions.Messaging.GetPortIdSyncTime" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The amount of synchronous time taken for the renderer to request an
    extension message port id from the browser when a new channel is first
    opened by an extension.
  </summary>
</histogram>

<histogram name="Extensions.Messaging.IncludeChannelIdBehavior"
    enum="ExtensionMessagingIncludeChannelIdBehavior"
    expires_after="2018-12-01">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>nharper@chromium.org</owner>
  <summary>
    The behavior for including the TLS channel ID in the information sent with
    extension messaging. Recorded once per opened channel.
  </summary>
</histogram>

<histogram name="Extensions.Messaging.MessageSize" units="bytes">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The size, in bytes, of a message sent from an extension using one of the
    messaging APIs (e.g. chrome.runtime.sendMessage). All message sizes are
    logged, but messages over 64 MB in size aren't sent.
  </summary>
</histogram>

<histogram name="Extensions.Messaging.SetPortIdTime" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The amount of time for the renderer to inform the browser process of a new
    port being created with a certain id. This replaces the flow for
    Extensions.Messaging.GetPortId[A]SyncTime.
  </summary>
</histogram>

<histogram name="Extensions.NetworkDelay" units="ms">
  <owner>battre@chromium.org</owner>
  <summary>Time that network requests were blocked due to extensions.</summary>
</histogram>

<histogram name="Extensions.NetworkDelayPercentage" units="%">
  <owner>battre@chromium.org</owner>
  <summary>
    Percentage of total lifetime a network request was blocked due to an
    extension.
  </summary>
</histogram>

<histogram name="Extensions.NetworkDelayRegistryLoad" units="ms">
  <owner>battre@chromium.org</owner>
  <summary>
    Time that network requests were blocked due to relevant rule registries
    loading.
  </summary>
</histogram>

<histogram name="Extensions.NetworkDelayStartup" units="ms">
  <obsolete>
    Never used. Added to source 06/2012. Removed from source and added here
    09/2016.
  </obsolete>
  <summary>
    Delay of network requests due to waiting for extension declarativeWebRequest
    rules to be loaded from disk at startup.
  </summary>
</histogram>

<histogram name="Extensions.NonWebstoreLocation" enum="ExtensionLocation">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of apps/extensions with a non-webstore update_url loaded at
    startup time grouped by Extension::Location.
  </summary>
</histogram>

<histogram name="Extensions.NonWebStoreNewTabPageOverrides">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Number of non-WebStore extensions on startup that override the new tab page.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_AutoDisable" enum="ExtensionPermission">
  <obsolete>
    Deprecated as of 5/2014, replaced by Extensions.Permissions_AutoDisable2.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>rpaquay@chromium.org</owner>
  <summary>
    The permissions present in an extension when it is automatically disabled
    due to a permission increase (e.g., after an extension upgrade).
  </summary>
</histogram>

<histogram name="Extensions.Permissions_AutoDisable2"
    enum="ExtensionPermission2">
  <obsolete>
    Deprecated as of 6/2015, replaced by Extensions.Permissions_AutoDisable3.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>rpaquay@chromium.org</owner>
  <summary>
    The permissions present in an extension when it is automatically disabled
    due to a permission increase (e.g., after an extension upgrade).
  </summary>
</histogram>

<histogram name="Extensions.Permissions_AutoDisable3"
    enum="ExtensionPermission3">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The permissions present in an extension when it is automatically disabled
    due to a permission increase (e.g., after an extension upgrade). To find
    places where this histogram may be emitted, look for calls to
    ExtensionService::RecordPermissionMessagesHistogram with the argument
    AutoDisable. For Sync users, this may be reported for each device, depending
    on whether the Sync update or the extension auto-update happen first.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_Install" enum="ExtensionPermission">
  <obsolete>
    Deprecated as of 5/2014, replaced by Extensions.Permissions_Install2.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>rpaquay@chromium.org</owner>
  <summary>
    The permissions present in an extension when it was installed.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_Install2" enum="ExtensionPermission2">
  <obsolete>
    Deprecated as of 6/2015, replaced by Extensions.Permissions_Install3.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>rpaquay@chromium.org</owner>
  <summary>
    The permissions present in an extension when it was installed.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_Install3" enum="ExtensionPermission3">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The permissions present in an extension when it was installed. To find
    places where this histogram may be emitted, look for calls to
    ExtensionService::RecordPermissionMessagesHistogram with the argument
    Install. For Sync users, this is reported for each device.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_InstallAbort"
    enum="ExtensionPermission">
  <obsolete>
    Deprecated as of 5/2014, replaced by Extensions.Permissions_InstallAbort2.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>rpaquay@chromium.org</owner>
  <summary>
    The permissions present in an extension when installation was aborted, not
    including installation errors and user cancels.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_InstallAbort2"
    enum="ExtensionPermission2">
  <obsolete>
    Deprecated as of 6/2015, replaced by Extensions.Permissions_InstallAbort3.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>rpaquay@chromium.org</owner>
  <summary>
    The permissions present in an extension when installation was aborted, not
    including installation errors and user cancels.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_InstallAbort3"
    enum="ExtensionPermission3">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The permissions present in an extension when installation was aborted (e.g.
    because the parent window of the confirmation dialog went away), not
    including installation errors and user cancels. To find places where this
    histogram may be emitted, look for calls to
    ExtensionService::RecordPermissionMessagesHistogram with the argument
    InstallAbort.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_InstallCancel"
    enum="ExtensionPermission">
  <obsolete>
    Deprecated as of 5/2014, replaced by Extensions.Permissions_InstallCancel2.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>rpaquay@chromium.org</owner>
  <summary>
    The permissions present in an extension when installation was canceled.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_InstallCancel2"
    enum="ExtensionPermission2">
  <obsolete>
    Deprecated as of 6/2015, replaced by Extensions.Permissions_InstallCancel3.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>rpaquay@chromium.org</owner>
  <summary>
    The permissions present in an extension when installation was canceled.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_InstallCancel3"
    enum="ExtensionPermission3">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The permissions present in an extension when installation was canceled. To
    find places where this histogram may be emitted, look for calls to
    ExtensionService::RecordPermissionMessagesHistogram with the argument
    InstallCancel.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_Load" enum="ExtensionPermission">
  <obsolete>
    Deprecated as of 5/2014, replaced by Extensions.Permissions_Load2.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>rpaquay@chromium.org</owner>
  <summary>The permissions present in an extension when it was loaded.</summary>
</histogram>

<histogram name="Extensions.Permissions_Load2" enum="ExtensionPermission2">
  <obsolete>
    Deprecated as of 6/2015, replaced by Extensions.Permissions_Load3.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>rpaquay@chromium.org</owner>
  <summary>The permissions present in an extension when it was loaded.</summary>
</histogram>

<histogram name="Extensions.Permissions_Load3" enum="ExtensionPermission3">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The permissions present in an extension when it was loaded (which happens at
    profile open or extension install). To find places where this histogram may
    be emitted, look for calls to
    ExtensionService::RecordPermissionMessagesHistogram with the argument Load.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_ReEnable" enum="ExtensionPermission">
  <obsolete>
    Deprecated as of 5/2014, replaced by Extensions.Permissions_ReEnable2.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>rpaquay@chromium.org</owner>
  <summary>
    The permissions present in an extension when it was re-enabled from a
    confirmation prompt.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_ReEnable2" enum="ExtensionPermission2">
  <obsolete>
    Deprecated as of 6/2015, replaced by Extensions.Permissions_ReEnable3.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>rpaquay@chromium.org</owner>
  <summary>
    The permissions present in an extension when it was re-enabled from a
    confirmation prompt.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_ReEnable3" enum="ExtensionPermission3"
    expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The permissions present in an extension when it was re-enabled from a
    confirmation prompt. To find places where this histogram may be emitted,
    look for calls to ExtensionService::RecordPermissionMessagesHistogram with
    the argument ReEnable.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_ReEnableAbort"
    enum="ExtensionPermission">
  <obsolete>
    Deprecated as of 5/2014, replaced by Extensions.Permissions_ReEnableAbort2.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The permissions present in an extension when the re-enable prompt was
    aborted, not including installation errors and manual user cancels.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_ReEnableAbort2"
    enum="ExtensionPermission2">
  <obsolete>
    Deprecated as of 6/2015, replaced by Extensions.Permissions_ReEnableAbort3.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The permissions present in an extension when the re-enable prompt was
    aborted, not including installation errors and manual user cancels.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_ReEnableAbort3"
    enum="ExtensionPermission3" expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The permissions present in an extension when the re-enable prompt was
    aborted (e.g. because the parent window of the confirmation dialog went
    away), not including installation errors and manual user cancels. To find
    places where this histogram may be emitted, look for calls to
    ExtensionService::RecordPermissionMessagesHistogram with the argument
    ReEnableAbort.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_ReEnableCancel"
    enum="ExtensionPermission">
  <obsolete>
    Deprecated as of 5/2014, replaced by Extensions.Permissions_ReEnableCancel2.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>rpaquay@chromium.org</owner>
  <summary>
    The permissions present in an extension when the re-enable was canceled from
    the confirmation prompt.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_ReEnableCancel2"
    enum="ExtensionPermission2">
  <obsolete>
    Deprecated as of 6/2015, replaced by Extensions.Permissions_ReEnableCancel3.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>rpaquay@chromium.org</owner>
  <summary>
    The permissions present in an extension when the re-enable was canceled from
    the confirmation prompt.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_ReEnableCancel3"
    enum="ExtensionPermission3" expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The permissions present in an extension when the re-enable was canceled from
    the confirmation prompt. To find places where this histogram may be emitted,
    look for calls to ExtensionService::RecordPermissionMessagesHistogram with
    the argument ReEnableCancel.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_Uninstall" enum="ExtensionPermission">
  <obsolete>
    Deprecated as of 5/2014, replaced by Extensions.Permissions_Uninstall2.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>rpaquay@chromium.org</owner>
  <summary>
    The permissions present in an extension when it was uninstalled.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_Uninstall2" enum="ExtensionPermission2">
  <obsolete>
    Deprecated as of 6/2015, replaced by Extensions.Permissions_Uninstall3.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>rpaquay@chromium.org</owner>
  <summary>
    The permissions present in an extension when it was uninstalled.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_Uninstall3" enum="ExtensionPermission3">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The permissions present in an extension when it was uninstalled. To find
    places where this histogram may be emitted, look for calls to
    ExtensionService::RecordPermissionMessagesHistogram with the argument
    Uninstall. For Sync users, this is reported for each device.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_WebStoreInstall"
    enum="ExtensionPermission">
  <obsolete>
    Deprecated as of 5/2014, replaced by
    Extensions.Permissions_WebStoreInstall2.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>rpaquay@chromium.org</owner>
  <summary>
    The permissions present in an extension when it was installed through the
    web store.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_WebStoreInstall2"
    enum="ExtensionPermission2">
  <obsolete>
    Deprecated as of 6/2015, replaced by
    Extensions.Permissions_WebStoreInstall3.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>rpaquay@chromium.org</owner>
  <summary>
    The permissions present in an extension when it was installed through the
    web store.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_WebStoreInstall3"
    enum="ExtensionPermission3">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The permissions present in an extension when it was installed through the
    web store. To find places where this histogram may be emitted, look for
    calls to ExtensionService::RecordPermissionMessagesHistogram with the
    argument WebStoreInstall. Contrary to the more-general Permissions_Install3
    histogram, this one is NOT reported for each device.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_WebStoreInstallAbort"
    enum="ExtensionPermission">
  <obsolete>
    Deprecated as of 5/2014, replaced by
    Extensions.Permissions_WebStoreInstallAbort2.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>rpaquay@chromium.org</owner>
  <summary>
    The permissions present in an extension when installation from the web store
    was aborted, not including installation errors and user cancels.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_WebStoreInstallAbort2"
    enum="ExtensionPermission2">
  <obsolete>
    Deprecated as of 6/2015, replaced by
    Extensions.Permissions_WebStoreInstallAbort3.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>rpaquay@chromium.org</owner>
  <summary>
    The permissions present in an extension when installation from the web store
    was aborted, not including installation errors and user cancels.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_WebStoreInstallAbort3"
    enum="ExtensionPermission3">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The permissions present in an extension when installation from the web store
    was aborted (e.g. because the parent window of the confirmation dialog went
    away), not including installation errors and user cancels. To find places
    where this histogram may be emitted, look for calls to
    ExtensionService::RecordPermissionMessagesHistogram with the argument
    WebStoreInstallAbort.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_WebStoreInstallCancel"
    enum="ExtensionPermission">
  <obsolete>
    Deprecated as of 5/2014, replaced by
    Extensions.Permissions_WebStoreInstallCancel2.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>rpaquay@chromium.org</owner>
  <summary>
    The permissions present in an extension when installation from the web store
    was canceled.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_WebStoreInstallCancel2"
    enum="ExtensionPermission2">
  <obsolete>
    Deprecated as of 6/2015, replaced by
    Extensions.Permissions_WebStoreInstallCancel3.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>rpaquay@chromium.org</owner>
  <summary>
    The permissions present in an extension when installation from the web store
    was canceled.
  </summary>
</histogram>

<histogram name="Extensions.Permissions_WebStoreInstallCancel3"
    enum="ExtensionPermission3">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The permissions present in an extension when installation from the web store
    was canceled. To find places where this histogram may be emitted, look for
    calls to ExtensionService::RecordPermissionMessagesHistogram with the
    argument WebStoreInstallCancel.
  </summary>
</histogram>

<histogram name="Extensions.PopupCreateTime" units="ms"
    expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The time taken between a user clicking on a button to open a popup, and the
    popup finishing loading its initial URL. This is a good way to measure the
    UI responsiveness of extension popups. It will be strictly larger than
    Extensions.PopupLoadTime2, which only measures the time it takes to load -
    there may be a delay between clicking and starting to load, for example, if
    the popup's host got caught in a queue.
  </summary>
</histogram>

<histogram name="Extensions.PopupLoadTime" units="ms">
  <obsolete>
    Replaced by Extensions.PopupLoadTime2.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>The time for an Extension's popup to load.</summary>
</histogram>

<histogram name="Extensions.PopupLoadTime2" units="ms"
    expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The time taken for an extension popup to load its initial URL. This may not
    include the time taken for an extension process to start, if the extension
    already has a background page running. It does not necessarily correlate
    with the amount of time since the popup was *clicked* either, since there
    may be a delay between the user clicking and the loading started.
    Extensions.PopupCreateTime measures this instead.
  </summary>
</histogram>

<histogram name="Extensions.ProcessManagerStartupHostsTime" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The time taken to start up persistent background pages for extensions in
    ExtensionProcessManager when the extension system notifies that it is ready.
  </summary>
</histogram>

<histogram name="Extensions.ResetPermissionsIncrease" enum="Boolean">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>treib@chromium.org</owner>
  <summary>
    Whether the DISABLE_PERMISSIONS_INCREASE disable reason was removed from an
    extension while checking for a permissions increase. Recorded during startup
    and on reload and update, for each extension that has the
    DISABLE_PERMISSIONS_INCREASE reason.
  </summary>
</histogram>

<histogram name="Extensions.ResourceDirectoryTimestampQueryLatency" units="ms">
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The initialization latency (in milliseconds) introduced to each extension
    resource request by querying the directory timestamp.
  </summary>
</histogram>

<histogram name="Extensions.ResourceLastModifiedDelta" units="seconds"
    expires_after="2019-11-30">
  <owner>lazyboy@chromium.org</owner>
  <summary>
    The difference in seconds between an extension resource's last modification
    time and its extension base directory's creation time. Recorded on each
    extension resource request if the difference is non-negative (i.e., the
    resource's last modification time is more recent than the directory's
    creation time.) For cases where the directory creation date is more recent,
    see Extensions.ResourceLastModifiedNegativeDelta instead.
  </summary>
</histogram>

<histogram name="Extensions.ResourceLastModifiedNegativeDelta" units="seconds"
    expires_after="2019-11-30">
  <owner>lazyboy@chromium.org</owner>
  <summary>
    The absolute difference in seconds between an extension resource's last
    modification time and extension base directory's creation time. Recorded on
    each extension resource request if the difference is negative (i.e., the
    directory's creation time is more recent than the resource's last
    modification time.) For cases where the resource modification time is more
    recent, see Extensions.ResourceLastModifiedDelta instead.
  </summary>
</histogram>

<histogram name="Extensions.RuntimeHostPermissions.ExtensionHasWithheldHosts"
    enum="BooleanHasWithheldHosts" expires_after="2019-11-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>karandeepb@chromium.org</owner>
  <summary>
    Whether an extension had host permissions withheld as a result of the
    RuntimeHostPermissions feature. Recorded once per extension at profile
    initialization if and only if the RuntimeHostPermissions feature is enabled
    and the extension requests any host permissions (i.e., could be affected by
    the feature).
  </summary>
</histogram>

<histogram name="Extensions.RuntimeHostPermissions.GrantedHostCount"
    units="Granted hosts" expires_after="2019-11-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>karandeepb@chromium.org</owner>
  <summary>
    The number of hosts an extension has been granted explicit access to that it
    also requested (note that if the user granted unrequested hosts, those will
    not be included in this count). Recorded once per extension at profile
    initialization if and only if the RuntimeHostPermissions feature is enabled
    and the extension has had host permissions withheld. See also
    Extensions.RuntimeHostPermissions.ExtensionHasWithheldHosts.
  </summary>
</histogram>

<histogram name="Extensions.SandboxUnpackFailure">
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Count the number of times a sandboxed extension unpack fails.
  </summary>
</histogram>

<histogram name="Extensions.SandboxUnpackFailureReason"
    enum="ExtensionUnpackFailureReason">
  <owner>extensions-core@chromium.org</owner>
  <summary>What caused a sandboxed extension unpack to fail?</summary>
</histogram>

<histogram name="Extensions.SandboxUnpackFailureTime"
    expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>Time taken to unpack an extension, when the unpack fails.</summary>
</histogram>

<histogram name="Extensions.SandboxUnpackHashCheck" enum="BooleanValidHashSum">
  <owner>achuith@chromium.org</owner>
  <summary>
    Whether a CRX file hash sum was the same as in an updater manifest.
  </summary>
</histogram>

<histogram name="Extensions.SandboxUnpackInitialCrxPathLength"
    expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>Length of the initial path to the CRX to be unpacked.</summary>
</histogram>

<histogram name="Extensions.SandboxUnpackLinkFreeCrxPathLength"
    expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Length of the normalized (link/junction free) path to the temporary copy of
    a CRX made during unpacking.
  </summary>
</histogram>

<histogram name="Extensions.SandboxUnpackRate">
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Rate at which a CRX file is unpacked in Kilobytes per second.
  </summary>
</histogram>

<histogram name="Extensions.SandboxUnpackRate1To2mB">
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Rate at which CRX files 1MB to 2MB are unpacked in Kilobytes per second.
  </summary>
</histogram>

<histogram name="Extensions.SandboxUnpackRate2To5mB">
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Rate at which CRX files 2MB to 5MB are unpacked in Kilobytes per second.
  </summary>
</histogram>

<histogram name="Extensions.SandboxUnpackRate50kBTo1mB">
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Rate at which CRX files 50kB to 1MB are unpacked in Kilobytes per second.
  </summary>
</histogram>

<histogram name="Extensions.SandboxUnpackRate5To10mB">
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Rate at which CRX files 5MB to 10 MB are unpacked in Kilobytes per second.
  </summary>
</histogram>

<histogram name="Extensions.SandboxUnpackRateOver10mB">
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Rate at which CRX files larger than 10MB are unpacked in Kilobytes per
    second.
  </summary>
</histogram>

<histogram name="Extensions.SandboxUnpackRateUnder50kB">
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Rate at which CRX files under 50 KB are unpacked in Kilobytes per second.
  </summary>
</histogram>

<histogram name="Extensions.SandboxUnpackSuccess" expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>Count the number of times a sandboxed CRX unpack succeeds.</summary>
</histogram>

<histogram name="Extensions.SandboxUnpackSuccessCantGetCrxSize"
    expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Count the number of times a sandboxed CRX unpack succeeds, but we can't get
    the file size.
  </summary>
</histogram>

<histogram name="Extensions.SandboxUnpackSuccessCrxSize">
  <owner>extensions-core@chromium.org</owner>
  <summary>Size of the .crx file, in KB, when the unpack succeeds.</summary>
</histogram>

<histogram name="Extensions.SandboxUnpackSuccessTime"
    expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Time taken to unpack an extension, when the unpack succeeds.
  </summary>
</histogram>

<histogram name="Extensions.SandboxUnpackTempCrxPathLength"
    expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Length of the path of the temporary copy of a CRX made during unpacking.
  </summary>
</histogram>

<histogram name="Extensions.SandboxUnpackUnpackedCrxPathLength"
    expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <owner>extensions-core@chromium.org</owner>
  <summary>Length of the path under which a CRX is unpacked.</summary>
</histogram>

<histogram name="Extensions.SettingsQuotaExceeded.BytesPerSetting">
  <obsolete>
    Removed in September, 2016
  </obsolete>
  <summary>
    Emitted when QuotaExceededError was called due to an extension using too
    many bytes for a given setting. The number has no natural numerator
    (normalizing factor) and thus is not particularly useful.
  </summary>
</histogram>

<histogram name="Extensions.SettingsQuotaExceeded.KeyCount">
  <obsolete>
    Removed in September, 2016
  </obsolete>
  <summary>
    Emitted when QuotaExceededError was called due to an extension using too
    many keys. The number has no natural numerator (normalizing factor) and thus
    is not particularly useful.
  </summary>
</histogram>

<histogram name="Extensions.SettingsQuotaExceeded.TotalBytes">
  <obsolete>
    Removed in September, 2016
  </obsolete>
  <summary>
    Emitted when QuotaExceededError was called due to an extension using too
    many bytes. The number has no natural numerator (normalizing factor) and
    thus is not particularly useful.
  </summary>
</histogram>

<histogram name="Extensions.ShouldAllowOpenURL.Failure"
    enum="ShouldAllowOpenURLFailureReason">
  <owner>alexmos@chromium.org</owner>
  <summary>
    When the web-accessible resource check in
    ChromeContentBrowserClientExtensionsPart::ShouldAllowOpenURL fails, this
    records the reason for the failure. This check is performed on navigations
    that utilize the OpenURL path as well as on transfers.
  </summary>
</histogram>

<histogram name="Extensions.ShouldAllowOpenURL.Failure.Scheme"
    enum="ShouldAllowOpenURLFailureScheme">
  <owner>alexmos@chromium.org</owner>
  <summary>
    When the web-accessible resource check in
    ChromeContentBrowserClientExtensionsPart::ShouldAllowOpenURL fails, this
    records the scheme of the SiteInstance that initiated the blocked load. This
    check is performed on navigations that utilize the OpenURL path as well as
    on transfers.
  </summary>
</histogram>

<histogram name="Extensions.StartupDelay" units="ms">
  <obsolete>
    This has not been recorded since at least mid-2013.
  </obsolete>
  <owner>asargent@chromium.org</owner>
  <summary>The time one extension delays network requests at startup.</summary>
</histogram>

<histogram name="Extensions.StartupDelay_Total" units="ms">
  <obsolete>
    This has not been recorded since at least mid-2013.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The total time extensions delay network requests at startup.
  </summary>
</histogram>

<histogram name="Extensions.StorageFrontendInitTime" units="ms">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during StorageFrontend::Init.
  </summary>
</histogram>

<histogram name="Extensions.SyncGetMessageBundle" units="ms"
    expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The amount of synchronous time spent retrieving an extension's message
    bundle (the collection of its i18n resources) from the browser.
  </summary>
</histogram>

<histogram name="Extensions.ThrottledNetworkRequestDelay" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The duration by which a network request was delayed while waiting for
    extension user script load. Recorded once per request that is delayed, at
    the time the resource resumes loading.
  </summary>
</histogram>

<histogram name="Extensions.ThrottledNetworkRequests" units="requests"
    expires_after="2018-08-30">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The total number of network requests that were delayed by extension user
    script load. Recorded once each time network requests may have been delayed
    by user script load (i.e., once at the end of each batch of script loads).
  </summary>
</histogram>

<histogram base="true" name="Extensions.TimeYieldedBetweenContentScriptRuns"
    units="ms">
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Time elapsed between two asynchronously-injected content script runs.
  </summary>
</histogram>

<histogram name="Extensions.ToolstripLoadTime" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Time taken to load a toolstrip.</summary>
</histogram>

<histogram name="Extensions.UnifiedExtensionUpdaterDownloadErrors"
    enum="CombinedHttpResponseAndNetErrorCode">
  <owner>waffles@chromium.org</owner>
  <summary>
    Records the error codes of the unified extension updater download errors.
    These events are triggered when the extension updater fails to download the
    extension update package of an extension, which can happen only after the
    updater has successfuly determined that there is an update for the
    extension.
  </summary>
</histogram>

<histogram name="Extensions.UnifiedExtensionUpdaterUpdateCalls"
    units="extensions">
  <owner>waffles@chromium.org</owner>
  <summary>
    The number of extensions that are passed over to the unified extension
    updater for update check. Triggered when the new extension updater starts
    doing update check.
  </summary>
</histogram>

<histogram name="Extensions.UnifiedExtensionUpdaterUpdateCheckErrors"
    enum="CombinedHttpResponseAndNetErrorCode">
  <owner>waffles@chromium.org</owner>
  <summary>
    Records the error codes of the unified extension updater update check
    errors. These events are triggered only when the new extension updater gets
    an error in the update check phase.
  </summary>
</histogram>

<histogram name="Extensions.UnifiedExtensionUpdaterUpdateResults"
    enum="ExtensionUpdaterUpdateResult">
  <owner>waffles@chromium.org</owner>
  <summary>
    Records the update results of extensions in an unified extension updater
    session, grouped by ExtensionUpdaterUpdateResult.
  </summary>
</histogram>

<histogram name="Extensions.UnifiedExtensionUpdaterUpdateServiceErrors"
    enum="UpdateClientErrors">
  <owner>waffles@chromium.org</owner>
  <summary>
    The update service errors that the update service encouters during an update
    check session using update client.
  </summary>
</histogram>

<histogram name="Extensions.UninstallDialogAction"
    enum="ExtensionUninstallDialogAction">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The action that was taken from an extension uninstall dialog. Recorded once
    per dialog shown. Only recorded if all possible actions (including report
    abuse) were available on the dialog.
  </summary>
</histogram>

<histogram name="Extensions.UninstallSource" enum="ExtensionUninstallSource">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The source for the extension uninstall. This is only recorded if an
    uninstall dialog is shown to the user (i.e., it is not recorded for internal
    &quot;cleanups&quot;).
  </summary>
</histogram>

<histogram name="Extensions.UninstallType" enum="ExtensionType">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>Uninstalls grouped by Extension::HistogramType.</summary>
</histogram>

<histogram name="Extensions.UnpackFailureInstallCause"
    enum="ExtensionInstallCause">
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Count failing CRX installs, grouped by the way an extension can be
    installed.
  </summary>
</histogram>

<histogram name="Extensions.UnpackFailureInstallSource"
    enum="ExtensionLocation">
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Count successful CRX installs, grouped by the location property in prefs.
    installed.
  </summary>
</histogram>

<histogram name="Extensions.UnpackSuccessInstallCause"
    enum="ExtensionInstallCause">
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Count successful CRX installs, grouped by the cause of the install.
  </summary>
</histogram>

<histogram name="Extensions.UnpackSuccessInstallSource"
    enum="ExtensionLocation">
  <owner>extensions-core@chromium.org</owner>
  <summary>
    Count successful CRX installs, grouped by the location property in prefs.
  </summary>
</histogram>

<histogram name="Extensions.UpdateCheckApp" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of legacy packaged apps and hosted apps that were checked during
    an update check.
  </summary>
</histogram>

<histogram name="Extensions.UpdateCheckExtension">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of extensions that were checked during an update check.
  </summary>
</histogram>

<histogram name="Extensions.UpdateCheckGap" units="minutes">
  <obsolete>
    Removed 2019-01.
  </obsolete>
  <owner>waffles@chromium.org</owner>
  <summary>Time in minutes between update checks.</summary>
</histogram>

<histogram name="Extensions.UpdateCheckGoogleUrl">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of crx's with a Google-hosted update URL that were checked during
    an update check.
  </summary>
</histogram>

<histogram name="Extensions.UpdateCheckNoUrl">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of crx's with no update URL checked during an update check.
  </summary>
</histogram>

<histogram name="Extensions.UpdateCheckOtherUrl">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of crx's with a non-Google update URL that were checked during an
    update check.
  </summary>
</histogram>

<histogram name="Extensions.UpdateCheckPackagedApp" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of packaged apps that were checked during an update check.
  </summary>
</histogram>

<histogram name="Extensions.UpdateCheckTheme" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of themes that were checked during an update check.
  </summary>
</histogram>

<histogram name="Extensions.UpdateFrequencyCommandLineFlagIsUsed"
    enum="BooleanPresent">
  <obsolete>
    Deprecated 3/2018 in https://crbug.com/357781 with the removal of the
    extensions-update-frequency command line flag.
  </obsolete>
  <owner>catmullings@chromium.org</owner>
  <summary>
    Logs whether or not the extensions-update-frequency command line flag is
    used. Recorded at profile creation if extensions autoupdate is enabled.
  </summary>
</histogram>

<histogram name="Extensions.UpdateManifestDuplicateEntryCount" units="entries">
  <owner>waffles@chromium.org</owner>
  <summary>
    Counts the number of entries with the same extension ID found in the update
    manifest of an update check request. When the update manifest does not
    contain any update entry for an extension ID in the update check request,
    the count will be 0.
  </summary>
</histogram>

<histogram name="Extensions.UpdateManifestHasProdVersionMinCounts"
    units="extensions">
  <owner>waffles@chromium.org</owner>
  <summary>
    The number of prodversionmin attributes appearing in an update manifest of
    an update check request.
  </summary>
</histogram>

<histogram name="Extensions.UpdateOnLoad">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of extensions that were updated at browser startup.
  </summary>
</histogram>

<histogram name="Extensions.UpdaterWriteCrx" enum="ExtensionFileWriteResult">
  <obsolete>
    Deprecated 10/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    What happened when the extension updater tried to write a file?
  </summary>
</histogram>

<histogram name="Extensions.UpdateSource" enum="ExtensionLocation">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Updates grouped by the location property in prefs.</summary>
</histogram>

<histogram name="Extensions.UpdateType" enum="ExtensionType">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Updates grouped by Extension::HistogramType.</summary>
</histogram>

<histogram name="Extensions.WebRequest.EventListenerFlag"
    enum="WebRequestEventListenerFlag" expires_after="2019-05-28">
  <owner>karandeepb@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Records any flags that were registered in the extraInfoSpec of a webRequest
    listener, as well as the total number of listeners registered. Recorded each
    time a new listener is registered.
  </summary>
</histogram>

<histogram name="Extensions.WebRequest.InitiatorAccess" enum="InitiatorAccess"
    expires_after="2018-12-31">
  <obsolete>
    Deprecated November 2018. Replaced with
    Extensions.WebRequest.InitiatorAccess2.
  </obsolete>
  <owner>karandeepb@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Describes the different cases pertaining to host permissions check for the
    initiator URL of a network request. This is emitted whenever an extension is
    found to have access to a request url, when checked by the WebRequest API.
  </summary>
</histogram>

<histogram name="Extensions.WebRequest.InitiatorAccess2"
    enum="InitiatorAccess2" expires_after="2019-04-30">
  <owner>karandeepb@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Describes the different cases pertaining to host permissions check for the
    initiator URL of a network request. This is emitted whenever an extension is
    found to have access to a request url for the WebRequest or Declarative Net
    Request API.
  </summary>
</histogram>

<histogram name="Extensions.WebRequest.ModifiedResponseHeaders"
    enum="WebRequestResponseHeaderType">
  <obsolete>
    Removed 11/2018 as this is no longer needed.
  </obsolete>
  <owner>rockot@chromium.org</owner>
  <summary>
    Tracks whether any interesting response header modifications were made for
    each request seen by the Web Request API. Logged for every network request
    as long as one or more enabled extensions is using a declarative or blocking
    filter to process onHeadersReceived events.

    This histogram is temporary, for investigating https://crbug.com/827582. It
    can probably be removed by M69.
  </summary>
</histogram>

<histogram name="Extensions.WebRequest.OnBeforeSendHeadersEventResponse"
    enum="WebRequestEventResponse">
  <owner>rockot@chromium.org</owner>
  <summary>
    For every network request visible to the Web Request API, this indicates
    whether any registered declarative rules or event listeners observed the
    onBeforeSendHeaders event.

    This histogram is temporary, for investigating https://crbug.com/827582. It
    can probably be removed by M69.
  </summary>
</histogram>

<histogram name="Extensions.WebRequest.OnHeadersReceivedEventResponse"
    enum="WebRequestEventResponse">
  <owner>rockot@chromium.org</owner>
  <summary>
    For every network request visible to the Web Request API, this indicates
    whether any registered declarative rules or event listeners observed the
    onHeadersReceived event.

    This histogram is temporary, for investigating https://crbug.com/827582. It
    can probably be removed by M69.
  </summary>
</histogram>

<histogram name="Extensions.WebRequest.SetCookieResponseHeaderChanged"
    enum="BooleanChanged" expires_after="M73">
  <owner>cduvall@chromium.org</owner>
  <owner>karandeepb@chromium.org</owner>
  <summary>
    Whether the set-cookie response header was changed by an extension using the
    Web Request API. Logged for every network request as long as one or more
    enabled extensions is using a declarative or blocking filter to process
    onHeadersReceived events.

    This histogram is temporary, for investigating https://crbug.com/827582. It
    can probably be removed by M73.
  </summary>
</histogram>

<histogram name="Extensions.WebRequest.SetCookieResponseHeaderRemoved"
    enum="BooleanRemoved" expires_after="M73">
  <owner>cduvall@chromium.org</owner>
  <owner>karandeepb@chromium.org</owner>
  <summary>
    Whether the set-cookie response header was removed by an extension using the
    Web Request API. Logged for every network request as long as one or more
    enabled extensions is using a declarative or blocking filter to process
    onHeadersReceived events.

    This histogram is temporary, for investigating https://crbug.com/827582. It
    can probably be removed by M73.
  </summary>
</histogram>

<histogram name="Extensions.WebRequest.SpecialHeadersRemoved"
    enum="WebRequestSpecialHeaderRemoval">
  <obsolete>
    Removed 11/2018 as this is no longer needed.
  </obsolete>
  <owner>rockot@chromium.org</owner>
  <summary>
    Whether either or both of the special Accept-Language or User-Agent request
    headers were removed by an extension using the Web Request API. Logged for
    every network request as long as one or more enabled extensions is using a
    declarative or blocking filter to process onBeforeSendHeaders events.

    This histogram is temporary, for investigating https://crbug.com/827582. It
    can probably be removed by M69.
  </summary>
</histogram>

<histogram name="Extensions.WebRequest.SpecialRequestHeadersChanged"
    enum="WebRequestSpecialRequestHeaderModification" expires_after="M73">
  <owner>cduvall@chromium.org</owner>
  <owner>karandeepb@chromium.org</owner>
  <summary>
    Whether Accept-Language, Accept-Encoding, User-Agent, Cookie, Referer, or
    mulitple of these request headers were changed by an extension using the Web
    Request API. Logged for every network request as long as one or more enabled
    extensions is using a declarative or blocking filter to process
    onBeforeSendHeaders events.

    This histogram is temporary, for investigating https://crbug.com/827582. It
    can probably be removed by M73.
  </summary>
</histogram>

<histogram name="Extensions.WebRequest.SpecialRequestHeadersRemoved"
    enum="WebRequestSpecialRequestHeaderModification" expires_after="M73">
  <owner>cduvall@chromium.org</owner>
  <owner>karandeepb@chromium.org</owner>
  <summary>
    Whether Accept-Language, Accept-Encoding, User-Agent, Cookie, Referer, or
    mulitple of these request headers were removed by an extension using the Web
    Request API. Logged for every network request as long as one or more enabled
    extensions is using a declarative or blocking filter to process
    onBeforeSendHeaders events.

    This histogram is temporary, for investigating https://crbug.com/827582. It
    can probably be removed by M73.
  </summary>
</histogram>

<histogram name="Extensions.WebRequest.TotalBlockingRequestTime" units="ms"
    expires_after="2019-05-13">
  <owner>karandeepb@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The total time a network request took when at least one Web Request listener
    was registered at the start of the request, and a listener was blocked on
    the request. Measures from onBeforeRequest to onCompleted/onErrorOccurred,
    and does not include canceled or redirected requests.
  </summary>
</histogram>

<histogram name="Extensions.WebRequest.TotalExtraHeadersRequestTime" units="ms"
    expires_after="2019-05-27">
  <owner>karandeepb@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The total time a network request took when at least one Web Request listener
    with 'extraHeaders' in the extraInfoSpec was registered at the start of the
    request. Measures from onBeforeRequest to onCompleted/onErrorOccurred, and
    does not include canceled or redirected requests.
  </summary>
</histogram>

<histogram name="Extensions.WebRequest.TotalRequestTime" units="ms"
    expires_after="2019-05-13">
  <owner>karandeepb@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The total time a network request took when at least one Web Request listener
    was registered at the start of the request. Measures from onBeforeRequest to
    onCompleted/onErrorOccurred, and does not include canceled or redirected
    requests.
  </summary>
</histogram>

<histogram
    name="Extensions.WebRequest.WS_CookiesAreModifiedOnBeforeSendHeaders"
    units="boolean">
  <obsolete>
    Removed as of Jan 2019.
  </obsolete>
  <owner>yhirano@chromium.org</owner>
  <summary>
    Whether cookies on a websocket connection are modified in
    OnBeforeSendHeaders.

    This histogram is temporary, for investigating https://crbug.com/827582.
  </summary>
</histogram>

<histogram name="Extensions.WebRequest.WS_CookiesAreModifiedOnHeadersReceived"
    units="boolean">
  <obsolete>
    Removed as of Jan 2019.
  </obsolete>
  <owner>yhirano@chromium.org</owner>
  <summary>
    Whether cookies on a websocket connection are modified in OnHeadersReceived.

    This histogram is temporary, for investigating https://crbug.com/827582.
  </summary>
</histogram>

<histogram base="true" name="Extensions.WebRequest.WS_RequestHeaders">
  <obsolete>
    Removed as of Jan 2019.
  </obsolete>
  <owner>yhirano@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    Whether certain headers are modified in OnBeforeSendHeaders.
  </summary>
</histogram>

<histogram name="Extensions.WebRequest.WS_RequestHeadersModification"
    enum="WebRequestWSRequestHeadersModification">
  <obsolete>
    Removed as of Jan 2019.
  </obsolete>
  <owner>yhirano@chromium.org</owner>
  <summary>
    Tracks request headers modifications on a websocket connection in
    OnBeforeSendHeaders.

    This histogram is temporary, for investigating https://crbug.com/827582.
  </summary>
</histogram>

<histogram name="Extensions.WebRequest.WS_ResponseHeadersAreModified"
    units="boolean">
  <obsolete>
    Removed as of Jan 2019.
  </obsolete>
  <owner>yhirano@chromium.org</owner>
  <summary>
    Whether response headers on a websocket connection are modified in
    OnHeadersReceived.

    This histogram is temporary, for investigating https://crbug.com/827582.
  </summary>
</histogram>

<histogram name="Extensions.WebRequestAction" enum="RequestAction">
  <owner>karandeepb@chromium.org</owner>
  <summary>
    Counts the number of times an action is requested by extensions as part of
    the Web Request API. For a given web request stage, multiple actions may be
    logged.
  </summary>
</histogram>

<histogram name="Extensions.WebRequestBlockingCount" units="extensions">
  <owner>karandeepb@chromium.org</owner>
  <summary>
    Number of enabled extensions which have requested the
    &quot;webRequestBlocking&quot; permission. Includes all kinds of extensions,
    including component and unpacked extensions. Recorded during profile
    initialization.
  </summary>
</histogram>

<histogram name="Extensions.WebRequestCount" units="extensions">
  <owner>karandeepb@chromium.org</owner>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Number of enabled extensions which have requested the &quot;webRequest&quot;
    permission. Includes all kinds of extensions, including component and
    unpacked extensions. Recorded during profile initialization.
  </summary>
</histogram>

<histogram name="Extensions.WebRequestEventFoundFrame" units="boolean">
  <obsolete>
    Deprecated as of 11/2017. No longer relevant after refactoring.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Whether or not the render frame lookup for a given webRequest event
    succeeded.
  </summary>
</histogram>

<histogram name="Extensions.WebstoreDownload.FileDownload" units="ms">
  <owner>xiaohuic@chromium.org</owner>
  <summary>
    The time spent to download the crx file from the webstore to local disk.
    This is recorded once per successful download.
  </summary>
</histogram>

<histogram name="Extensions.WebstoreDownload.InterruptReason"
    enum="InterruptReason" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The reason a webstore download was interrupted.</summary>
</histogram>

<histogram name="Extensions.WebstoreDownload.InterruptReceivedKBytes"
    units="KB" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of KBytes received for a webstore download before it was
    interrupted.
  </summary>
</histogram>

<histogram name="Extensions.WebstoreDownload.InterruptTotalKBytes" units="KB"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The total expected size in KBytes of an interrupted webstore download.
  </summary>
</histogram>

<histogram name="Extensions.WebstoreDownload.InterruptTotalSizeUnknown"
    enum="Boolean" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Tracks whether the total size of an interrupted webstore download was known.
  </summary>
</histogram>

<histogram name="Extensions.WebUi.DocumentLoadedInMainFrameTime" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The amount of time between starting the provisional load and fully loading
    the document in the main frame of the chrome://extensions page. This
    corresponds to the WebContentsObserver::DocumentLoadedInFrame method.
  </summary>
</histogram>

<histogram name="Extensions.WebUi.LoadCompletedInMainFrame" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The amount of time between starting the provisional load and having
    completed the onload handler in the main frame of the chrome://extensions
    page. This corresponds to the
    WebContentsObserver::DocumentOnLoadCompletedInMainFrame method.
  </summary>
</histogram>

<histogram name="ExtensionService.AddVerified" enum="BooleanSuccess"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Records whether adding a new/updated extension to the install verifier
    succeeded.
  </summary>
</histogram>

<histogram name="ExtensionService.VerifyAllSuccess"
    enum="ExtensionServiceVerifyAllSuccess" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The outcome of a call to ExtensionService::VerifyAllExtensions, whether it
    was called for bootstrapping or another reason (extension
    installed/uninstalled, etc.).
  </summary>
</histogram>

<histogram name="ExtensionService.ZipUnpackerDisabledReason"
    enum="ExtensionDisableReason">
  <obsolete>
    Deprecated as of 09/2018, with the removal of the &quot;Zip Unpacker&quot;
    component extension.
  </obsolete>
  <owner>yamaguchi@google.com</owner>
  <summary>
    Records the reason why the ZIP unpacker extension was disabled when the
    service attempted to re-enable the extension upon startup. Each entry
    indicates that the extension was disabled unintentionally and a fix was
    attempted.
  </summary>
</histogram>

<histogram name="ExtensionSettings.ShouldDoVerificationCheck" enum="Boolean"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    When loading the chrome://extensions page, this records whether we decided
    to do a verification check against the server (because the user had one or
    more extensions disabled due to verification failure).
  </summary>
</histogram>

<histogram name="ExtensionToolbarModel.BrowserActionsCount">
  <owner>finnur@chromium.org</owner>
  <summary>
    The number of icons the Browser Actions Container knows about (visible or in
    the overflow bucket). Does not count icons that have been permanently hidden
    by the user. Measured once per startup per (non-incognito) profile.
  </summary>
</histogram>

<histogram name="ExtensionToolbarModel.BrowserActionsPermanentlyHidden">
  <owner>finnur@chromium.org</owner>
  <summary>
    The number of Browser Action icons the user has elected to permanently hide
    (as opposed to putting them in the overflow bucket). Measured once per
    startup per (non-incognito) profile.
  </summary>
</histogram>

<histogram name="ExtensionToolbarModel.BrowserActionsVisible">
  <owner>finnur@chromium.org</owner>
  <summary>
    The number of visible icons in the Browser Actions Container (visible as in
    number of icons not in the overflow bucket). 0 means all icons are in the
    overflow bucket. MAX_INT means the toolbar is always showing all icons.
    Measured once per startup per (non-incognito) profile but only for those
    profiles that have one or more browser actions showing in the toolbar.
  </summary>
</histogram>

<histogram name="ExtensionUrlRequest.Latency" units="ms"
    expires_after="2019-11-30">
  <owner>lazyboy@chromium.org</owner>
  <summary>The time taken to complete an extension url request.</summary>
</histogram>

<histogram name="ExtensionUrlRequest.OnReadCompleteError" enum="NetErrorCodes">
  <owner>extensions-core@chromium.org</owner>
  <summary>
    The error code for failures of incremental reads of a file stream for a
    chrome-extension:// URL. (See also ExtensionUrlRequest.OnReadCompleteResult
    for the success case).
  </summary>
</histogram>

<histogram name="ExtensionUrlRequest.OnReadCompleteResult"
    expires_after="2019-11-30">
  <owner>lazyboy@chromium.org</owner>
  <summary>
    The result of an incremental read of a file stream for a chrome-extension://
    URL, representing a byte count. Logged in success cases (see also
    ExtensionUrlRequest.OnReadCompleteError).
  </summary>
</histogram>

<histogram name="ExtensionUrlRequest.SeekPosition" expires_after="2019-11-30">
  <owner>lazyboy@chromium.org</owner>
  <summary>
    When fetching a chrome-extension:// URL, this indicates the first byte
    position we read from. This will be greater than 0 in cases such as XHR's
    with a Range header, but will normally be 0 in the typical case of reading
    the entire file. This helps identify how frequently partial file reads are
    taking place.
  </summary>
</histogram>

<histogram name="ExtensionUrlRequest.TotalKbRead" units="KB"
    expires_after="2019-11-30">
  <owner>lazyboy@chromium.org</owner>
  <summary>
    The total number of bytes read for a chrome-extension:// URL, logged when
    the job is finished (either successfully or not).
  </summary>
</histogram>

<histogram name="FactoryPingEmbargo.EndDateValidity"
    enum="FactoryPingEmbargoEndDateValidity">
  <owner>pmarko@chromium.org</owner>
  <owner>rogerta@chromium.org</owner>
  <summary>
    Record the validity of |rlz_embargo_end_date| in RW_VPD. This is recorded
    when the VPD value is accessed, which may be multiple times in the same
    chrome invocation. This is not recorded when the VPD value is missing.
  </summary>
</histogram>

<histogram name="FaultTolerantHeap" enum="FaultTolerantHeap">
  <owner>brucedawson@chromium.org</owner>
  <summary>
    Records several bits of information about whether the Windows
    FaultTolerantHeap might be enabled. This is logged (from a delayed task)
    when the browser process starts up.
  </summary>
</histogram>

<histogram name="Favicons.CandidatesCount">
  <obsolete>
    Deprecated as of 12/2017.
  </obsolete>
  <owner>fhorschig@chromium.org</owner>
  <summary>
    Records the number of favicon link tags on a page once the page has finished
    loading. The count includes the automatically added favicon.ico entry.
  </summary>
</histogram>

<histogram name="Favicons.CandidatesWithDefinedSizesCount">
  <obsolete>
    Deprecated as of 12/2017.
  </obsolete>
  <owner>fhorschig@chromium.org</owner>
  <summary>
    Records the number of favicon link tags with a non empty sizes attribute
    once the page has finished loading.
  </summary>
</histogram>

<histogram name="Favicons.CandidatesWithTouchIconsCount">
  <obsolete>
    Deprecated as of 12/2017.
  </obsolete>
  <owner>fhorschig@chromium.org</owner>
  <summary>
    Records the number of apple-touch-icon and apple-touch-icon-precomposed link
    tags once the page has finished loading.
  </summary>
</histogram>

<histogram base="true" name="Favicons.DownloadAttempts" units="attempts">
  <obsolete>
    Deprecated as of 12/2017.
  </obsolete>
  <owner>fhorschig@chromium.org</owner>
  <summary>
    Records the number of icons requested until the best-fitting candidate was
    found or there were no candidates left to check. More than 15 attempts are
    unlikely and will be stored in overflow bucket 16. Less than 1 attempt means
    an error happened; these cases are in bucket 0.
  </summary>
</histogram>

<histogram name="Favicons.DownloadOutcome" enum="FaviconDownloadStatus">
  <obsolete>
    Deprecated as of 12/2017.
  </obsolete>
  <owner>fhorschig@chromium.org</owner>
  <summary>
    Records whether a download succeeded, failed or was skipped because it has
    failed previously.
  </summary>
</histogram>

<histogram name="Favicons.LargeIconService.BlacklistedURLMismatch"
    units="BooleanError">
  <owner>mastiz@chromium.org</owner>
  <summary>
    Records the number of large icons that were fetched from the local cache
    (e.g. during NTP impression), where the URL (of the page or the icon)
    matches a hardcoded blacklist. Suspicious mismatches are reported as errors.
  </summary>
</histogram>

<histogram name="Favicons.LargeIconService.DownloadedSize" units="pixels">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Records the size (concretely the width) in pixel of the favicon downloaded
    from Google favicon server (size 0 denotes that download has failed).
  </summary>
</histogram>

<histogram name="Favicons.LargeIconService.FallbackSize" units="pixels">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Records the size (concretely the width) in pixel of the favicon that is used
    to generate a fallback style in the case when large enough favicon is not
    available (size 0 denotes that no favicon is available at all).
  </summary>
</histogram>

<histogram name="FCMInvalidations.FailedSubscriptionsErrorCode"
    enum="NetErrorCodes">
  <owner>melandory@chromium.org</owner>
  <summary>Net error codes for failed subscription requests.</summary>
</histogram>

<histogram name="FCMInvalidations.FCMMessageStatus"
    enum="FCMInvalidationMessageStatus" expires_after="M75">
  <owner>melandory@chromium.org</owner>
  <summary>
    Status of the message from the FCM channel. Recorded upon receiving response
    from the FCM channel.
  </summary>
</histogram>

<histogram name="FCMInvalidations.InitialTokenRetrievalStatus"
    enum="InstanceIDResult" expires_after="M75">
  <owner>melandory@chromium.org</owner>
  <summary>
    Status of the initial attempt to retrieve the instance id token.
  </summary>
</histogram>

<histogram name="FCMInvalidations.SubscriptionRequestStatus"
    enum="FCMInvalidationSubscriptionStatus" expires_after="M75">
  <owner>melandory@chromium.org</owner>
  <summary>
    Status of subscription request to the Per User Topic server. Recorded upon
    receiving response from server.
  </summary>
</histogram>

<histogram name="FCMInvalidations.SubscriptionResponseCode"
    enum="HttpResponseCode">
  <owner>melandory@chromium.org</owner>
  <summary>
    For each subcription request to the FCM Per-User-Topic server, log the
    response received from the server.
  </summary>
</histogram>

<histogram name="FCMInvalidations.SubscriptionResponseCodeForTopic"
    enum="HttpResponseCode">
  <owner>melandory@chromium.org</owner>
  <summary>
    For each subcription request to the FCM Per-User-Topic server, log the
    response received from the server per topic. Note: This is only recorded
    with a data type suffix. The base version is never recorded.
  </summary>
</histogram>

<histogram name="FCMInvalidations.UnsubscriptionRequestStatus"
    enum="FCMInvalidationSubscriptionStatus" expires_after="M75">
  <owner>melandory@chromium.org</owner>
  <summary>
    Status of unsubscription request to the Per User Topic server. Recorded upon
    receiving response from server.
  </summary>
</histogram>

<histogram name="Feed.Offline.GetStatusCount" units="count"
    expires_after="2019-08-30">
  <obsolete>
    Deprecated in favor of ContentSuggestions.Feed.Offline.GetStatusCount.
  </obsolete>
  <owner>skym@chromium.org</owner>
  <summary>
    The number of urls that have offline status requested per call.
  </summary>
</histogram>

<histogram name="Feed.Offline.GetStatusDuration" units="ms"
    expires_after="2019-08-30">
  <obsolete>
    Deprecated in favor of ContentSuggestions.Feed.Offline.GetStatusDuration.
  </obsolete>
  <owner>skym@chromium.org</owner>
  <summary>
    The number of milliseconds to round trip offline status for a set of URLs
    from Offline Pages component.
  </summary>
</histogram>

<histogram name="Feed.Scheduler.RefreshTrigger" enum="RefreshTrigger"
    expires_after="2019-07-11">
  <obsolete>
    Deprecated in favor of ContentSuggestions.Feed.Scheduler.RefreshTrigger.
  </obsolete>
  <owner>skym@chromium.org</owner>
  <summary>
    The scheduler watches for various triggers, which cause it to decide if a
    refresh is currently warranted or not. This histogram is emitted when a
    trigger causes a refresh.
  </summary>
</histogram>

<histogram name="Feed.Scheduler.RequestBehavior" enum="RequestBehavior"
    expires_after="2019-07-11">
  <obsolete>
    Deprecated in favor of ContentSuggestions.Feed.Scheduler.RequestBehavior.
  </obsolete>
  <owner>skym@chromium.org</owner>
  <summary>
    When NTP is opened, the scheduler host tells the Feed library how to act, if
    the existing content should be shown, immediately or with timeout, and if a
    refresh request should be started.
  </summary>
</histogram>

<histogram name="Feedback.HappinessTrackingSurvey.DesktopResponse"
    enum="HappinessTrackingSurveyDesktopResponse" expires_after="M80">
  <owner>jeffreycohen@chromium.org</owner>
  <owner>cyflee@chromium.org</owner>
  <summary>
    Reports on the responses to showing Happiness Tracking Surveys (HaTS) to a
    subset of users. Records each time HaTS is shown.
  </summary>
</histogram>

<histogram name="Feedback.RequestSource" enum="FeedbackSource">
  <owner>afakhry@chromium.org</owner>
  <summary>Records the source that requested showing the feedback app.</summary>
</histogram>

<histogram name="FileBrowser.ChangeDirectory.RootType"
    enum="FileManagerRootType" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: Counts the number of directory-changed events,
    bucketed by the RootType of the directory newly displayed.
  </summary>
</histogram>

<histogram name="FileBrowser.CloudImport.UserAction"
    enum="CloudImportUserAction">
  <obsolete>
    Was removed from the code at an unknown time.
  </obsolete>
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser - Specific actions taken by user such initiating
    cloud import, canceling import, selecting a directory, or opting-in to
    Drive&gt;Photos sync.
  </summary>
</histogram>

<histogram name="FileBrowser.ComputersCount" units="Computers"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: number of Computers a user has available in the
    Files app. Computed every time the File Browser is opened (including file
    picker dialogs). NOTE: This data is biased towards users that use the Files
    App more often.
  </summary>
</histogram>

<histogram name="FileBrowser.Create" enum="FileDialogType" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>Chrome OS File Browser opening mode.</summary>
</histogram>

<histogram name="FileBrowser.CrostiniShareDialog"
    enum="FileManagerCrostiniShareDialogType" expires_after="2019-10-01">
  <owner>joelhockey@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>Dialog shown when using crostini app to open a file.</summary>
</histogram>

<histogram base="true" name="FileBrowser.CrostiniSharedPaths.Depth"
    units="depth" expires_after="2019-10-01">
  <owner>joelhockey@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    The depth from volume root of the path being shared. This is equivalent to
    how many '/' are in the path. E.g. 'Downloads' or 'My Drive' has depth 0.
    'Downloads/foo/bar' has depth 2.
  </summary>
</histogram>

<histogram name="FileBrowser.DirectoryScan" units="ms" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: time to scan a directory. Measured on every File
    Browser directory change.
  </summary>
</histogram>

<histogram name="FileBrowser.DownloadDestination.IsGoogleDrive.Changed"
    enum="BooleanEnabled" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Tracks whether download destination is set to a Google Drive folder when the
    download destination is changed by the user in the settings page.
  </summary>
</histogram>

<histogram name="FileBrowser.DownloadDestination.IsGoogleDrive.Started"
    enum="BooleanEnabled" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Tracks whether download destination is set to a Google Drive folder on
    startup.
  </summary>
</histogram>

<histogram name="FileBrowser.Downloads.DirectoryPercentageOfDiskUsage"
    units="%" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    The size of the space consumed by a users files in &quot;My Files&quot;
    folder and it's children, calculated as a percentage of the total disk
    space. Caluclated on user login.
  </summary>
</histogram>

<histogram name="FileBrowser.Downloads.DirectorySizeMiB" units="MiB"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    The total size of all of the users files stored in the &quot;My Files&quot;
    folder and it's children. Caluclated on user login.
  </summary>
</histogram>

<histogram name="FileBrowser.DownloadsCount" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: number of files and directories in the Downloads
    directory (not including the contents of nested directories). Computed every
    time the File Browser current directory changes to Downloads.
  </summary>
</histogram>

<histogram name="FileBrowser.DriveDuplicateFinder.LongComputeHash" units="ms"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    The time taken to calculate the hash of a file, only recorded if the time
    exceeds a local threshold that is currenty 5 seconds.
  </summary>
</histogram>

<histogram name="FileBrowser.DriveDuplicateFinder.LongSearchByHash" units="ms"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    The time taken to search for a file using it's hash value, only recorded if
    the time exceeds a local threshold that is currently 1 second.
  </summary>
</histogram>

<histogram name="FileBrowser.FolderShortcut.Add" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: this is recorded when the user adds a folder
    shortcut.
  </summary>
</histogram>

<histogram name="FileBrowser.FolderShortcut.Count" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: number of saved folder shorcuts. This is recorded
    when the Files app is launched.
  </summary>
</histogram>

<histogram name="FileBrowser.FolderShortcut.Navigate" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: this is recorded when the user clicks or selects a
    folder shortcut and is navigated to the target folder.
  </summary>
</histogram>

<histogram name="FileBrowser.FolderShortcut.Remove" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: this is recorded when the user removes a folder
    shortcut.
  </summary>
</histogram>

<histogram name="FileBrowser.HardUnpluggedAroundSuspend.TimeSinceResume"
    units="ms" expires_after="M79">
  <obsolete>
    The bug which the UMA was investigating got fixed.
  </obsolete>
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: time from the SuspendDone event to the DiskRemoved
    event. The UMA is added temporarily for crbug.com/433734.
  </summary>
</histogram>

<histogram name="FileBrowser.HardUnpluggedAroundSuspend.TimeUntilSuspend"
    units="ms" expires_after="M79">
  <obsolete>
    The bug which the UMA was investigating got fixed.
  </obsolete>
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: time from the DiskRemoved event to the Suspend
    event. The UMA is added temporarily for crbug.com/433734.
  </summary>
</histogram>

<histogram name="FileBrowser.ImportController.DeviceYanked" enum="Boolean"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <summary>
    Chrome OS Files App: Whether an external media device was removed during the
    upload process.
  </summary>
</histogram>

<histogram name="FileBrowser.ImportController.ImportCancelled"
    enum="BooleanCanceled" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <summary>
    Chrome OS Files App: Whether the media import process was cancelled.
  </summary>
</histogram>

<histogram name="FileBrowser.Load" units="ms" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser is an built-in extension without a background page.
    Its main.html file is loaded every time the user opens a File Browser tab or
    a file chooser dialog. The file is fairly large and the initialization is
    pretty expensive.
  </summary>
</histogram>

<histogram name="FileBrowser.Location.OnEntryExpandedOrCollapsed.NonTopLevel"
    enum="FileManagerRootType" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS Files App: The locations (root types) of non-top-level entries
    when they are expanded or collapsed (expand icon clicked) in the directory
    tree.
  </summary>
</histogram>

<histogram name="FileBrowser.Location.OnEntryExpandedOrCollapsed.TopLevel"
    enum="FileManagerRootType" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS Files App: The locations (root types) of top-level entries (root
    entries) when they are expanded or collapsed (expand icon clicked) in the
    directory tree.
  </summary>
</histogram>

<histogram name="FileBrowser.Location.OnEntrySelected.NonTopLevel"
    enum="FileManagerRootType" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS Files App: The locations (root types) of non-top-level entries
    when they are clicked in the directory tree.
  </summary>
</histogram>

<histogram name="FileBrowser.Location.OnEntrySelected.TopLevel"
    enum="FileManagerRootType" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS Files App: The locations (root types) of top-level entries (root
    entries) when they are clicked in the directory tree.
  </summary>
</histogram>

<histogram name="FileBrowser.MediaImport.Cancelled" enum="BooleanCanceled"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <summary>
    Chrome OS Files App: Whether the media import (Photos/Video) from external
    media was cancelled.
  </summary>
</histogram>

<histogram name="FileBrowser.MediaImport.Duplicates" units="count"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <summary>
    Chrome OS Files App: Count of duplicate media (Photos/Videos) files that
    were skipped during a single upload session.
  </summary>
</histogram>

<histogram name="FileBrowser.MediaImport.ErrorCount" units="count"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <summary>
    Chrome OS Files App: Number of errors that occured during an upload session.
  </summary>
</histogram>

<histogram name="FileBrowser.MediaImport.ImportCount" units="count"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <summary>
    Chrome OS Files App: Count of individual media (Photos/Videos) uploaded from
    a single upload session.
  </summary>
</histogram>

<histogram name="FileBrowser.MediaImport.ImportMB" units="MBytes"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <summary>
    Chrome OS Files App: Size of the media (Photos/Videos) uploaded from a
    single upload session.
  </summary>
</histogram>

<histogram name="FileBrowser.MediaImport.Started" enum="BooleanAttempted"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <summary>
    Chrome OS Files App: Whether the media import (Photos/Video) from external
    media was started.
  </summary>
</histogram>

<histogram name="FileBrowser.MenuItemSelected" enum="FileManagerMenuCommands"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS Files App: The commands selected in the menu by the files app.
  </summary>
</histogram>

<histogram name="FileBrowser.MountCrostiniContainer" units="ms"
    expires_after="2019-05-30">
  <owner>joelhockey@google.com</owner>
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: time to start and mount the crostini container in
    order to show Linux Files.
  </summary>
</histogram>

<histogram name="FileBrowser.OpenFiles.RootType" enum="FileManagerRootType"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: The locations (root types) of files which are opened
    by the file picker.
  </summary>
</histogram>

<histogram name="FileBrowser.OpeningFileType" enum="FileType">
  <obsolete>
    Deprecated 4/2013, and replaced by FileBrowser.ViewingFileType.
  </obsolete>
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>File types that were tried to be opened through browser.</summary>
</histogram>

<histogram name="FileBrowser.PhotoEditor.DisplayTime" units="ms"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS Photo Editor: time to display an image. Measured from the moment
    the user selected the image till the moment it is displayed (not counting
    the low resolution preview).
  </summary>
</histogram>

<histogram name="FileBrowser.PhotoEditor.FileType" enum="PhotoEditorFileType"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>Chrome OS Photo Editor: the type of the file opened.</summary>
</histogram>

<histogram name="FileBrowser.PhotoEditor.LoadMode" enum="PhotoEditorLoadMode"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>Chrome OS Photo Editor: the way the image has been loaded.</summary>
</histogram>

<histogram name="FileBrowser.PhotoEditor.LoadTime" units="ms"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>Chrome OS Photo Editor: time to load an image from a file.</summary>
</histogram>

<histogram name="FileBrowser.PhotoEditor.SaveResult"
    enum="PhotoEditorSaveResult" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS Photo Editor: the result of a file save operation.
  </summary>
</histogram>

<histogram name="FileBrowser.PhotoEditor.SaveTime" units="ms"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>Chrome OS Photo Editor: time to save an image to a file.</summary>
</histogram>

<histogram name="FileBrowser.PhotoEditor.Size.MB" units="MBytes"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS Photo Editor: size of an image file in megabytes. Measured on
    every image load.
  </summary>
</histogram>

<histogram name="FileBrowser.PhotoEditor.Size.MPix" units="MPixels"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS Photo Editor: size of an image in megapixels. Measured on every
    image load.
  </summary>
</histogram>

<histogram name="FileBrowser.PhotoEditor.Tool" enum="PhotoEditorToolType"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>Chrome OS Photo Editor: the button which the user clicked.</summary>
</histogram>

<histogram name="FileBrowser.PhotoImport.Action" enum="ExternalDeviceAction">
  <obsolete>
    Code seems to have been removed at an unknown time.
  </obsolete>
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS Photo Import flow: action chosen in the Action Choice dialog for
    the external device.
  </summary>
</histogram>

<histogram name="FileBrowser.PhotoImport.ImportCount">
  <obsolete>
    Code seems to have been removed at an unknown time.
  </obsolete>
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS Photo Import flow: the number of photos imported. Measured on
    every successfull import operation.
  </summary>
</histogram>

<histogram name="FileBrowser.PhotoImport.ImportPercentage" units="%">
  <obsolete>
    Code seems to have been removed at an unknown time.
  </obsolete>
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS Photo Import flow: the percent of photos imported among all the
    photos on the device. Measured on every successfull import operation.
  </summary>
</histogram>

<histogram name="FileBrowser.PhotoImport.Load" units="ms">
  <obsolete>
    Code seems to have been removed at an unknown time.
  </obsolete>
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS Photo Import flow: time to load the action dialog. Measured
    between the moment window appears and the moment user see all available
    actions for the device.
  </summary>
</histogram>

<histogram name="FileBrowser.PhotoImport.Scan" units="ms">
  <obsolete>
    Code seems to have been removed at an unknown time.
  </obsolete>
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS Photo Import flow: time to scan the external device.
  </summary>
</histogram>

<histogram name="FileBrowser.QuickView.DialogType" enum="FileDialogType">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    File dialog type (e.g. Full page, Save as file) when quick view is launched.
  </summary>
</histogram>

<histogram name="FileBrowser.QuickView.FileType" enum="ViewFileType"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>File types that were tried to be opened with quick view.</summary>
</histogram>

<histogram name="FileBrowser.QuickView.FileTypeOnLaunch" enum="ViewFileType"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>File types that were selected when quick view is launched.</summary>
</histogram>

<histogram name="FileBrowser.QuickView.VolumeType" enum="FileManagerVolumeType"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>The volume type where quick view is opened.</summary>
</histogram>

<histogram name="FileBrowser.QuickView.WayToOpen"
    enum="FileManagerQuickViewWayToOpen" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>How quick view was opened.</summary>
</histogram>

<histogram name="FileBrowser.Recent.LoadArcMedia" units="ms"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Time to load a recently modified file list from Media Views. It is triggered
    when the user opens or reloads Recent view in the Files app.
  </summary>
</histogram>

<histogram name="FileBrowser.Recent.LoadCrostini" units="ms"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Time to load a recently modified file list from Crostini. It is triggered
    when the user opens or reloads Recent view in the Files app.
  </summary>
</histogram>

<histogram name="FileBrowser.Recent.LoadDownloads" units="ms"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Time to load a recently modified file list from Downloads. It is triggered
    when the user opens or reloads Recent view in the Files app.
  </summary>
</histogram>

<histogram name="FileBrowser.Recent.LoadDrive" units="ms" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Time to load a recently modified file list from Drive. It is triggered when
    the user opens or reloads Recent view in the Files app.
  </summary>
</histogram>

<histogram name="FileBrowser.Recent.LoadTotal" units="ms" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Time to load a recently modified file list from all sources. It is triggered
    when the user opens or reloads Recent view in the Files app.
  </summary>
</histogram>

<histogram name="FileBrowser.SuggestApps.CloseDialog"
    enum="SuggestAppsDialogCloseReason" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: the reason why the suggest apps dialog was closed.
  </summary>
</histogram>

<histogram name="FileBrowser.SuggestApps.Install"
    enum="SuggestAppsDialogInstall" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: whether the Webstore item user selected was
    successfully installed or not.
  </summary>
</histogram>

<histogram name="FileBrowser.SuggestApps.Load" enum="SuggestAppsDialogLoad"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: whether the initialization of the dialog succeeded
    or not.
  </summary>
</histogram>

<histogram name="FileBrowser.SuggestApps.LoadTime" units="ms"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: time to load the suggest apps dialog. Measured
    between the moment window appears and the moment all the contents in the
    dialog including the Chrome Webstore widget are ready.
  </summary>
</histogram>

<histogram name="FileBrowser.TeamDrivesCount" units="Team Drives"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: number of Team Drives a user has available in the
    Files app. Computed every time the File Browser is opened (including file
    picker dialogs). NOTE: This data is biased towards users that use the Files
    App more often.
  </summary>
</histogram>

<histogram name="FileBrowser.ToggleFileListType" enum="FileManagerListType"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS Files App: Recorded when the Grid View/List View toggle menu icon
    is selected.
  </summary>
</histogram>

<histogram name="FileBrowser.ViewingFileType" enum="ViewFileType"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    File types that were tried to be viewed through browser. This is recorded
    when the user tries to view a file from the Files app.
  </summary>
</histogram>

<histogram name="FileBrowser.ViewingFileType.Offline" enum="ViewFileType"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    File types that were tried to be viewed through browser while the user is
    offline. This is recorded when the user tries to view a file from the Files
    app.
  </summary>
</histogram>

<histogram name="FileBrowser.ViewingFileType.Online" enum="ViewFileType"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    File types that were tried to be viewed through browser while the user is
    online. This is recorded when the user tries to view a file from the Files
    app.
  </summary>
</histogram>

<histogram name="FileBrowser.ViewingRootType" enum="FileManagerRootType"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: The locations (root types) of files which are opened
    in stand-alone mode. This does not include files opened in file picker mode.
  </summary>
</histogram>

<histogram name="FileBrowser.ViewingRootType.Offline"
    enum="FileManagerRootType" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: The locations (root types) of files which are opened
    in stand-alone mode while the user is offline. This does not include files
    opened in file picker mode.
  </summary>
</histogram>

<histogram name="FileBrowser.ViewingRootType.Online" enum="FileManagerRootType"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: The locations (root types) of files which are opened
    in stand-alone mode while the user is online. This does not include files
    opened in file picker mode.
  </summary>
</histogram>

<histogram name="FileBrowser.ViewingTaskType" enum="FileManagerTaskType"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: The type of the handler to be used to open files.
    This is recorded when the user tries to view a file from the Files app.
  </summary>
</histogram>

<histogram name="FileBrowser.ViewingTaskType.Offline"
    enum="FileManagerTaskType" expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: The type of the handler to be used to open files
    when the user is offline. This is recorded when the user tries to view a
    file from the Files app.
  </summary>
</histogram>

<histogram name="FileBrowser.ViewingTaskType.Online" enum="FileManagerTaskType"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: The type of the handler to be used to open files
    when the user is online. This is recorded when the user tries to view a file
    from the Files app.
  </summary>
</histogram>

<histogram name="FileBrowser.VolumeType" enum="FileManagerVolumeType"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: counts the number of times volumes are mounted for
    each volume type.
  </summary>
</histogram>

<histogram name="FileBrowser.ZipFileTask" enum="FileManagerZipHandlerType"
    expires_after="M79">
  <owner>slangley@chromium.org</owner>
  <owner>weifangsun@chromium.org</owner>
  <summary>
    Chrome OS File Browser: counts the number of times ZIP file was opened or
    created, categorized by component extensions and its operation types.
  </summary>
</histogram>

<histogram name="FileReaderSync.WorkerType" enum="FileReaderSyncWorkerType">
  <owner>mek@chromium.org</owner>
  <summary>
    For each FileReaderSync instance records the type of the web worker that
    created the instance.
  </summary>
</histogram>

<histogram name="FileSystem.DirectoryDatabaseInit"
    enum="FileSystemDatabaseInitResult">
  <owner>tzik@chromium.org</owner>
  <summary>The result of FileSystemDirectoryDatabase initialization.</summary>
</histogram>

<histogram name="FileSystem.DirectoryDatabaseRepair"
    enum="DirectoryDatabaseRepairResult">
  <owner>tzik@chromium.org</owner>
  <summary>The result of FileSystemDirectoryDatabase repair.</summary>
</histogram>

<histogram name="FileSystem.OpenFileSystem" enum="OpenFileSystemResult">
  <owner>tzik@chromium.org</owner>
  <summary>
    The success or the cause of failure for each call to OpenFileSystem().
  </summary>
</histogram>

<histogram name="FileSystem.OpenFileSystemDetail" enum="FileSystemErrors">
  <owner>tzik@chromium.org</owner>
  <summary>The result of opening a filesystem.</summary>
</histogram>

<histogram name="FileSystem.OpenFileSystemDetailNonthrottled"
    enum="FileSystemErrors">
  <owner>tzik@chromium.org</owner>
  <summary>The result of opening a non-throttled filesystem.</summary>
</histogram>

<histogram name="FileSystem.OriginDatabaseInit"
    enum="FileSystemDatabaseInitResult">
  <owner>tzik@chromium.org</owner>
  <summary>The result of FileSystemOriginDatabase initialization.</summary>
</histogram>

<histogram name="FileSystem.OriginFailedCanCommitURL" enum="BooleanHit">
  <owner>nick@chromium.org</owner>
  <summary>
    Logged when we fail the permission validation of the filesystem URL origin,
    from ChildProcessSecurityPolicy::HasPermissionsForFileSystemFile. This is
    not expected to happen in normal operation.
  </summary>
</histogram>

<histogram name="FileSystem.PersistentOriginsCount" expires_after="2018-08-30">
  <owner>tzik@chromium.org</owner>
  <summary>
    Number of origins that have persistent filesystem. Measured when the Quota
    system queries the filesystem subsystem about its entire usage, which
    usually happens when one of the storage subsystem methods is called for the
    first time.
  </summary>
</histogram>

<histogram name="FileSystem.TemporaryOriginsCount" expires_after="2018-08-30">
  <owner>tzik@chromium.org</owner>
  <summary>
    Number of origins that have temporary filesystem. Measured when the Quota
    system queries the filesystem subsystem about its entire usage, which
    usually happens when one of the storage subsystem methods is called for the
    first time.
  </summary>
</histogram>

<histogram name="Fingerprint.Unlock.AttemptsCountBeforeSuccess" units="count"
    expires_after="2019-08-09">
  <owner>yulunwu@chromium.org</owner>
  <owner>jessejames@chromium.org</owner>
  <summary>
    Counts the number of fingerprint attempts until successful screen unlock.
  </summary>
</histogram>

<histogram name="Fingerprint.Unlock.AuthSuccessful" enum="BooleanSuccess"
    expires_after="2019-08-09">
  <owner>yulunwu@chromium.org</owner>
  <owner>jessejames@chromium.org</owner>
  <summary>
    Counts the number of times that the fingerprint match successfully vs.
    rejected.
  </summary>
</histogram>

<histogram name="Fingerprint.Unlock.EnrolledFingerCount" units="count"
    expires_after="2019-08-14">
  <owner>norvez@chromium.org</owner>
  <owner>yulunwu@chromium.org</owner>
  <owner>jessejames@chromium.org</owner>
  <summary>Counts the number of fingers enrolled by the user.</summary>
</histogram>

<histogram name="Fingerprint.Unlock.Match.Duration.Capture" units="ms"
    expires_after="2019-08-14">
  <owner>norvez@chromium.org</owner>
  <owner>yulunwu@chromium.org</owner>
  <owner>jessejames@chromium.org</owner>
  <summary>
    Measures the time it took to capture the fingerprint image in the 'match'
    case.
  </summary>
</histogram>

<histogram name="Fingerprint.Unlock.Match.Duration.Matcher" units="ms"
    expires_after="2019-08-14">
  <owner>norvez@chromium.org</owner>
  <owner>yulunwu@chromium.org</owner>
  <owner>jessejames@chromium.org</owner>
  <summary>
    Measures the time it took to run matcher in the 'match' case.
  </summary>
</histogram>

<histogram name="Fingerprint.Unlock.Match.Duration.Overall" units="ms"
    expires_after="2019-08-14">
  <owner>norvez@chromium.org</owner>
  <owner>yulunwu@chromium.org</owner>
  <owner>jessejames@chromium.org</owner>
  <summary>
    Measures the time it took between the detection of a finger and the 'match'
    event being sent to the AP.
  </summary>
</histogram>

<histogram name="Fingerprint.Unlock.NoMatch.Duration.Capture" units="ms"
    expires_after="2019-08-14">
  <owner>norvez@chromium.org</owner>
  <owner>yulunwu@chromium.org</owner>
  <owner>jessejames@chromium.org</owner>
  <summary>
    Measures the time it took to capture the fingerprint image in the 'no-match'
    case.
  </summary>
</histogram>

<histogram name="Fingerprint.Unlock.NoMatch.Duration.Matcher" units="ms"
    expires_after="2019-08-14">
  <owner>norvez@chromium.org</owner>
  <owner>yulunwu@chromium.org</owner>
  <owner>jessejames@chromium.org</owner>
  <summary>
    Measures the time it took to run the matcher in the 'no-match' case.
  </summary>
</histogram>

<histogram name="Fingerprint.Unlock.NoMatch.Duration.Overall" units="ms"
    expires_after="2019-08-14">
  <owner>norvez@chromium.org</owner>
  <owner>yulunwu@chromium.org</owner>
  <owner>jessejames@chromium.org</owner>
  <summary>
    Measures the time it took between the detection of a finger and the
    'no-match' event being sent to the AP.
  </summary>
</histogram>

<histogram name="Fingerprint.UnlockEnabled" enum="BooleanEnabled"
    expires_after="2019-08-09">
  <owner>yulunwu@chromium.org</owner>
  <owner>jessejames@chromium.org</owner>
  <summary>
    Track whether fingerprint is enabled to unlock the screen, when the user
    logs in.
  </summary>
</histogram>

<histogram name="FirstRun.IOSFirebaseConfigured" enum="FirebaseConfiguredState">
  <owner>pkl@chromium.org</owner>
  <summary>Track whether Firebase is enabled or not at app startup.</summary>
</histogram>

<histogram name="FirstRun.LaunchSource" enum="FirstRunLaunchSource">
  <owner>olivierrobin@chromium.org</owner>
  <summary>
    Counts the number of times First Run experience was triggered by another
    application launching Chrome. This metric measures the effectiveness of
    Smart App Banner promotions on installation of Chrome.
  </summary>
</histogram>

<histogram name="FirstRun.NewUserExperience.EmailInterstitialInteraction"
    enum="NuxEmailInterstitialInteractions" expires_after="2019-03-31">
  <owner>hcarmona@chromium.org</owner>
  <owner>scottchen@chromium.org</owner>
  <summary>
    Records when a user interacted with the email interstitial of the onboarding
    process. We record that the page was seen and what action the user took.
  </summary>
</histogram>

<histogram name="FirstRun.NewUserExperience.EmailProvidersInteraction"
    enum="NuxEmailProvidersInteractions" expires_after="2019-03-31">
  <owner>hcarmona@chromium.org</owner>
  <owner>scottchen@chromium.org</owner>
  <summary>
    Records when a user interacted with the Email Providers new user experience.
    We record the number of times the page is seen, how they interacted with the
    page (i.e. interacting with presented options and button clicks), and
    through what method they leave the page (i.e. confirm, cancel, neither). The
    new user experience should only be shown once to new profiles. Hence, the
    leaving method should be recorded at most once.
  </summary>
</histogram>

<histogram name="FirstRun.NewUserExperience.EmailProvidersSelection"
    enum="NuxEmailProvidersSelections" expires_after="2019-03-31">
  <owner>hcarmona@chromium.org</owner>
  <owner>scottchen@chromium.org</owner>
  <summary>
    Records what email provider was selected as part of the Email Providers New
    User Experience. Histogram is only recorded when a user confirms adding an
    email provider.
  </summary>
</histogram>

<histogram name="FirstRun.NewUserExperience.GoogleAppsInteraction"
    enum="NuxGoogleAppsInteractions" expires_after="2019-03-31">
  <owner>hcarmona@chromium.org</owner>
  <owner>scottchen@chromium.org</owner>
  <summary>
    Records when a user interacted with the Google Apps new user experience. We
    record both accept and reject but are not recording when a user ignored the
    prompt completely. Users can ignore this prompt by closing the tab or
    navigating away, we record when the prompt is shown.
  </summary>
</histogram>

<histogram name="FirstRun.NewUserExperience.GoogleAppsSelection"
    enum="NuxGoogleAppsSelections" expires_after="2019-03-31">
  <owner>hcarmona@chromium.org</owner>
  <owner>scottchen@chromium.org</owner>
  <summary>
    Records what Google apps were selected as part of the Google Apps New User
    Experience. Histogram is only recorded when a user accepts the prompt to add
    Google Apps.
  </summary>
</histogram>

<histogram name="FirstRun.NewUserExperience.LandingPageInteraction"
    enum="NuxLandingPageInteractions" expires_after="2019-03-31">
  <owner>hcarmona@chromium.org</owner>
  <owner>scottchen@chromium.org</owner>
  <summary>
    Records when a user interacted with the landing page of the onboarding
    process. We record that the page was seen and what action the user took.
  </summary>
</histogram>

<histogram name="FirstRun.NewUserExperience.NtpBackgroundInteraction"
    enum="NuxNtpBackgroundInteractions" expires_after="2019-05-31">
  <owner>hcarmona@chromium.org</owner>
  <owner>johntlee@chromium.org</owner>
  <summary>
    Records when a user interacts with the NTP Backgrounds new user experience.
    We record the number of times the page is seen, how they interacted with the
    page (i.e. interacted with the options and buttons), and through what method
    they leave the page (i.e, confirm, cancel, neither). The new user experience
    should only be shown once to new profiles.
  </summary>
</histogram>

<histogram name="FirstRun.NewUserExperience.SetAsDefaultInteraction"
    enum="NuxSetAsDefaultInteractions" expires_after="2019-03-31">
  <owner>hcarmona@chromium.org</owner>
  <owner>scottchen@chromium.org</owner>
  <summary>
    Records when a user interacted with the set default page of the onboarding
    process. We record that the page was seen and what action the user took.
  </summary>
</histogram>

<histogram name="FirstRun.NewUserExperience.SignInInterstitialInteraction"
    enum="NuxSignInInterstitialInteractions" expires_after="2019-03-31">
  <owner>hcarmona@chromium.org</owner>
  <owner>scottchen@chromium.org</owner>
  <summary>
    Records when a user interacted with the sign in interstitial of the
    onboarding process. We record that the page was seen and what action the
    user took.
  </summary>
</histogram>

<histogram name="FirstRun.Sentinel.Created" enum="FirstRunSentinelResult">
  <owner>jlebel@chromium.org</owner>
  <summary>Result of sentinel file has been written.</summary>
</histogram>

<histogram name="FirstRun.Sentinel.CreatedFileError" enum="PlatformFileError">
  <owner>jlebel@chromium.org</owner>
  <summary>File error when the sentinel file was not written.</summary>
</histogram>

<histogram name="FirstRun.SignIn" enum="FirstRunSignInResult">
  <owner>msarda@chromium.org</owner>
  <summary>Result of the sign in flow during Mobile first run.</summary>
</histogram>

<histogram name="FirstUserAction.BackgroundTime" units="minutes">
<!-- Name completed by histogram_suffixes name="FirstUserActionType" and name="FirstUserActionTypeDevice" -->

  <owner>pkl@chromium.org</owner>
  <summary>
    WARNING: The list of actions used to identify new tasks hasn't been
    attentively updated for several years (as of 2017). Some actions that should
    likely be considered new tasks are probably missing. Take this histogram
    with a grain of salt.

    The amount of time (in seconds) that the app was in the background before
    the user started it
  </summary>
</histogram>

<histogram base="true" name="FirstUserAction.BackgroundTime.MainIntent"
    units="minutes">
  <owner>tedchoc@chromium.org</owner>
  <summary>
    The amount of time (in minutes) that the app was in the background before
    the user started it (via an ACTION_MAIN intent) and performed a user action
    that describes the intent of resuming the app. Only recorded if the action
    took place within the first 10 seconds of starting Chrome. The actions are
    further described in the FirstUserActionTypes suffix.
  </summary>
</histogram>

<histogram name="FirstUserAction.HandsetUserActionType"
    enum="FirstUserActionType">
  <owner>pkl@chromium.org</owner>
  <summary>
    WARNING: The list of actions used to identify new tasks hasn't been
    attentively updated for several years (as of 2017). Some actions that should
    likely be considered new tasks are probably missing. Take this histogram
    with a grain of salt.

    On handsets, the type of the first user action performed after the app was
    started or unbackgrounded.
  </summary>
</histogram>

<histogram name="FirstUserAction.TabletUserActionType"
    enum="FirstUserActionType">
  <owner>pkl@chromium.org</owner>
  <summary>
    WARNING: The list of actions used to identify new tasks hasn't been
    attentively updated for several years (as of 2017). Some actions that should
    likely be considered new tasks are probably missing. Take this histogram
    with a grain of salt.

    On tablets, the type of the first user action performed after the app was
    started or unbackgrounded.
  </summary>
</histogram>

<histogram name="FontFallback.GetLinkedFonts.CacheMissTiming" units="ms"
    expires_after="2019-05-01">
  <owner>etienneb@chromium.org</owner>
  <summary>
    Time to retrieve the fallback fonts on the system when not found in cache.
  </summary>
</histogram>

<histogram name="FontFallback.GetLinkedFonts.FontCount" units="count"
    expires_after="2019-05-01">
  <owner>etienneb@chromium.org</owner>
  <summary>The amount of font returned for a given font family.</summary>
</histogram>

<histogram name="FontFallback.GetLinkedFonts.Timing" units="ms"
    expires_after="2019-05-01">
  <owner>etienneb@chromium.org</owner>
  <summary>Time to retrieve the fallback fonts on the system.</summary>
</histogram>

<histogram name="Gaia.AuthFetcher.ListAccounts.NetErrorCodes"
    enum="NetErrorCodes" expires_after="2019-08-30">
  <owner>droger@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>
    Reports the network error code for requests to the ListAccounts Gaia
    endpoint.
  </summary>
</histogram>

<histogram base="true" name="Gaia.AuthFetcher.ListAccounts.NetErrorCodes.Retry"
    enum="NetErrorCodes" expires_after="2019-08-30">
  <owner>droger@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="GaiaListAccountsRetry" -->

  <summary>
    Reports the network error code for requests to the ListAccounts Gaia
    endpoint. There are suffixes for individual tries (0 is the initial request,
    and 1-8 are retries).
  </summary>
</histogram>

<histogram name="Gaia.AuthFetcher.ListAccounts.ProcessUptime.Error" units="ms"
    expires_after="2019-08-30">
  <owner>droger@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>
    Reported when a request to the ListAccounts Gaia endpoint fails to complete
    for network reasons (i.e. when the error is not OK). This histogram can be
    used in conjunction with
    &quot;Gaia.AuthFetcher.ListAccounts.ProcessUptime.Success&quot; in order to
    compute the failure rate of ListAccounts depending on the process uptime
    (measured as a base::TimeDelta between the start of the process and the
    start of the request).
  </summary>
</histogram>

<histogram name="Gaia.AuthFetcher.ListAccounts.ProcessUptime.Success"
    units="ms" expires_after="2019-08-30">
  <owner>droger@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>
    Reported when a request to the ListAccounts Gaia endpoint completes without
    network error (i.e. when the network error is OK). This histogram can be
    used in conjunction with
    &quot;Gaia.AuthFetcher.ListAccounts.ProcessUptime.Error&quot; in order to
    compute the failure rate of ListAccounts depending on the process uptime
    (measured as a base::TimeDelta between the start of the process and the
    start of the request).
  </summary>
</histogram>

<histogram name="Gaia.AuthFetcher.ListAccounts.SystemUptime.Error" units="ms"
    expires_after="2019-08-30">
  <owner>droger@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>
    Reported when a request to the ListAccounts Gaia endpoint fails to complete
    for network reasons (i.e. when the network error is not OK). This histogram
    can be used in conjunction with
    &quot;Gaia.AuthFetcher.ListAccounts.SystemUptime.Success&quot; in order to
    compute the failure rate of ListAccounts depending on the system uptime
    (measured as a base::TimeDelta between the start of the system and the start
    of the request).
  </summary>
</histogram>

<histogram name="Gaia.AuthFetcher.ListAccounts.SystemUptime.Success" units="ms"
    expires_after="2019-08-30">
  <owner>droger@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>
    Reported when a request to the ListAccounts Gaia endpoint completes without
    network error (i.e. when the network error is OK). This histogram can be
    used in conjunction with
    &quot;Gaia.AuthFetcher.ListAccounts.SystemUptime.Error&quot; in order to
    compute the failure rate of ListAccounts depending on the system uptime
    (measured as a base::TimeDelta between the start of the system and the start
    of the request).
  </summary>
</histogram>

<histogram name="Gamepad.KnownGamepadConnected" enum="GamepadId">
  <obsolete>
    Deprecated as of 01/2018. Use Gamepad.KnownGamepadConnectedWithId instead.
  </obsolete>
  <owner>mattreynolds@chromium.org</owner>
  <summary>
    Records an enumeration value that can be used to identify the connected
    device from a list of known gamepads. Reported when a device with a vendor
    and product ID matching a known gaming input device is detected during
    Gamepad API enumeration.
  </summary>
</histogram>

<histogram name="Gamepad.KnownGamepadConnectedWithId"
    enum="GamepadVendorProduct" expires_after="2019-07-18">
  <owner>mattreynolds@chromium.org</owner>
  <summary>
    Records an integer value that can be used to identify a connected gamepad
    device. The value is constructed from the 16-bit vendor ID in the high-order
    bytes and the 16-bit product ID in the low-order bytes, then cast to a
    32-bit signed integer. The GamepadVendorProduct enum lists IDs for several
    popular gamepads but is incomplete. To identify a device not included in the
    enum, convert back to the vendor/product IDs and look up the human-friendly
    product name in go/gamepad-ids. This histogram records a new entry when a
    device with a vendor and product ID matching a known gaming input device is
    detected during Gamepad API enumeration.
  </summary>
</histogram>

<histogram name="Gamepad.UnknownGamepadConnected" enum="GamepadSource"
    expires_after="2019-07-18">
  <owner>mattreynolds@chromium.org</owner>
  <summary>
    Records an enumeration value identifying the active data fetcher when a
    fetcher enumerates a device that is not on the list of known gamepads, but
    is recognized as a gamepad by the fetcher.
  </summary>
</histogram>

<histogram name="GCM.AndroidGcmReceiverError" enum="GcmReceiverStatus">
  <obsolete>
    Deprecated as of 01/2016. The error has been fixed by GCM. (crbug/580367)
  </obsolete>
  <owner>khushalsagar@chromium.org</owner>
  <summary>Result of a message received by the GcmReceiver on Android.</summary>
</histogram>

<histogram name="GCM.APICallUnregister" expires_after="2018-08-30">
  <owner>jianli@chromium.org</owner>
  <summary>Number of times when gcm.unregister API is called.</summary>
</histogram>

<histogram name="GCM.CheckinCompleteTime" units="ms" expires_after="2018-08-30">
  <owner>jianli@chromium.org</owner>
  <summary>
    Length of time taken to complete a GCM checkin request successfully. If the
    checkin is retried multiple times, the length of time is counted for the
    last successful retry.
  </summary>
</histogram>

<histogram name="GCM.CheckinRequestStatus" enum="GCMCheckinRequestStatus">
  <owner>peter@chromium.org</owner>
  <summary>Status code of the outcome of a GCM checkin request.</summary>
</histogram>

<histogram name="GCM.CheckinRetryCount" expires_after="2018-08-30">
  <owner>jianli@chromium.org</owner>
  <summary>Number of retries before a GCM checkin succeeds.</summary>
</histogram>

<histogram name="GCM.ConnectedViaProxy" enum="Boolean">
  <obsolete>
    Deprecated as of 03/2018 (M67).
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>Whether the GCM connection was made via a proxy or not.</summary>
</histogram>

<histogram name="GCM.ConnectionDisconnectErrorCode"
    enum="CombinedHttpResponseAndNetErrorCode">
  <owner>zea@chromium.org</owner>
  <summary>URL response and error codes from GCM disconnect events.</summary>
</histogram>

<histogram name="GCM.ConnectionEndpoint" enum="GCMEndpoints"
    expires_after="2018-08-30">
  <owner>zea@chromium.org</owner>
  <summary>Number of connections made to each specific MCS endpoint.</summary>
</histogram>

<histogram name="GCM.ConnectionFailureErrorCode"
    enum="CombinedHttpResponseAndNetErrorCode" expires_after="2018-08-30">
  <owner>zea@chromium.org</owner>
  <summary>URL response and error codes from GCM connection attempts.</summary>
</histogram>

<histogram name="GCM.ConnectionLatency" units="ms">
  <owner>peter@chromium.org</owner>
  <summary>
    The time between the initiation of a connection and the successful
    completion of it.
  </summary>
</histogram>

<histogram name="GCM.ConnectionResetReason" enum="GCMConnectionResetReason"
    expires_after="2018-08-30">
  <owner>zea@chromium.org</owner>
  <summary>Reasons for GCM connection resets.</summary>
</histogram>

<histogram name="GCM.ConnectionSuccessRate" enum="BooleanSuccess"
    expires_after="2018-08-30">
  <owner>zea@chromium.org</owner>
  <summary>
    GCM connection success rate. Does not take into account login success. See
    GCM.ConnectionFailureErrorCode for a breakdown of connection failure
    reasons.
  </summary>
</histogram>

<histogram name="GCM.ConnectionUpTime" units="ms" expires_after="2018-08-30">
  <owner>zea@chromium.org</owner>
  <summary>
    Time (from login until reset) that a GCM connection was active.
  </summary>
</histogram>

<histogram name="GCM.Crypto.CreateKeySuccessRate" enum="BooleanSuccess">
  <owner>peter@chromium.org</owner>
  <summary>
    Success rate of writing new keying material to the GCM key store.
  </summary>
</histogram>

<histogram name="GCM.Crypto.DecryptMessageResult" enum="GCMDecryptionResult">
  <owner>peter@chromium.org</owner>
  <summary>
    Result of decryption on a received GCM message, which includes unencrypted
    messages, successfully decrypted messages and decryption failures.
  </summary>
</histogram>

<histogram name="GCM.Crypto.GCMDatabaseUpgradeResult" enum="Boolean">
  <owner>nator@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <owner>rayankans@chromium.org</owner>
  <summary>
    Result of upgrading GCM Key Store Database from deprecated format to current
    format. We upgrade the GCM Key store when it first initialized, if it
    contains any EncryptionData object with a KeyPair in it, and then record
    whether the upgrade was successful in this metric.
  </summary>
</histogram>

<histogram name="GCM.Crypto.GetKeySuccessRate" enum="BooleanSuccess">
  <owner>peter@chromium.org</owner>
  <summary>
    Success rate of reading keying material from the GCM key store.
  </summary>
</histogram>

<histogram name="GCM.Crypto.InitKeyStoreSuccessRate" enum="BooleanSuccess">
  <owner>peter@chromium.org</owner>
  <summary>
    Success rate of initializing the LevelDB back-end of the GCM key store.
  </summary>
</histogram>

<histogram name="GCM.Crypto.LoadKeyStoreSuccessRate" enum="BooleanSuccess">
  <owner>peter@chromium.org</owner>
  <summary>
    Success rate of loading existing keying material in the GCM key store.
  </summary>
</histogram>

<histogram name="GCM.Crypto.RemoveKeySuccessRate" enum="BooleanSuccess">
  <owner>peter@chromium.org</owner>
  <summary>
    Success rate of removing keying material from the GCM key store.
  </summary>
</histogram>

<histogram name="GCM.Database.Open" enum="LevelDBStatus">
  <owner>cmumford@chromium.org</owner>
  <summary>The result of a database open attempt by the GCM store.</summary>
</histogram>

<histogram name="GCM.DataMessageBurstReceivedInterval" units="ms">
  <owner>peter@chromium.org</owner>
  <summary>
    Interval between two successive received data message bursts.
  </summary>
</histogram>

<histogram name="GCM.DataMessageReceived" enum="BooleanReceived">
  <owner>peter@chromium.org</owner>
  <summary>
    Number of DATA_MESSAGE messages received from Google Cloud Messaging for
    which a matching registration exists. Recorded when processing the received
    message. Prior to M56 this also counted received DELETED_MESSAGES messages
    (whether or not a registration existed).
  </summary>
</histogram>

<histogram name="GCM.DataMessageReceivedHasCollapseKey"
    enum="BooleanHasCollapseKey" expires_after="2018-08-30">
  <owner>peter@chromium.org</owner>
  <summary>
    Records whether a non-empty collapse_key token is set for each received
    DATA_MESSAGE message from Google Cloud Messaging for which a matching
    registration exists. Recorded while processing the received message.
  </summary>
</histogram>

<histogram name="GCM.DataMessageReceivedHasRegisteredApp"
    enum="BooleanRegistered">
  <obsolete>
    No longer used starting with Chrome 61 as the check was removed.
  </obsolete>
  <owner>peter@chromium.org</owner>
  <summary>
    Records whether a matching registration was found for each received
    DATA_MESSAGE message from Google Cloud Messaging. Recorded while processing
    the received message. Prior to M56 this also counted received
    DELETED_MESSAGES messages.
  </summary>
</histogram>

<histogram name="GCM.DeletedMessagesReceived" units="messages"
    expires_after="2018-08-30">
  <owner>peter@chromium.org</owner>
  <summary>
    For every DELETED_MESSAGES message received from Google Cloud Messaging
    (whether or not a matching registration exists), this records the provided
    count of how many messages were simultaneously deleted, or zero if the count
    is unknown.
  </summary>
</histogram>

<histogram name="GCM.FirstReceivedDataMessageLatencyAfterConnection" units="ms">
  <owner>peter@chromium.org</owner>
  <summary>
    The time between the successful completion of the connection and the arrival
    of the first data message.
  </summary>
</histogram>

<histogram name="GCM.HeartbeatMissedDelta" units="ms"
    expires_after="2018-08-30">
  <owner>zea@chromium.org</owner>
  <summary>
    If a heartbeat was missed, the time delta by which it was missed (in system
    time, not ticks).
  </summary>
</histogram>

<histogram name="GCM.IncomingSendErrors" units="messages">
  <owner>peter@chromium.org</owner>
  <summary>
    Number of SEND_ERROR messages received from Google Cloud Messaging. Recorded
    when processing the received message.
  </summary>
</histogram>

<histogram name="GCM.LoadStatus" enum="GCMLoadStatus">
  <owner>jianli@chromium.org</owner>
  <summary>Status code of loading from the persistent GCM store.</summary>
</histogram>

<histogram name="GCM.LoadSucceeded" enum="BooleanSuccess">
  <obsolete>
    Deprecated as of 2/2015.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Success indicates successfully loading an initialized persistent GCM store
    at startup time. Failure indicates a failure loading the store.
  </summary>
</histogram>

<histogram name="GCM.NumThrottledApps">
  <owner>zea@chromium.org</owner>
  <summary>
    Number of applications hitting GCM per-app outstanding message limits at
    startup time.
  </summary>
</histogram>

<histogram name="GCM.NumUsers">
  <obsolete>
    Deprecated as of 3/2014.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Number of GCM users associated with this client at startup time.
  </summary>
</histogram>

<histogram name="GCM.OutgoingMessageTTL" enum="GCMOutgoingMessageTTLCategory"
    expires_after="2018-08-30">
  <owner>jianli@chromium.org</owner>
  <summary>
    Category of TTL specified in the outgoing message: 0, less than or equal to
    1 minute, less than or equal to 1 hour and etc.
  </summary>
</histogram>

<histogram name="GCM.PendingConnectionEventsAtShutdown" units="events">
  <owner>peter@chromium.org</owner>
  <summary>
    Number of connection events which have not been sent to GCM. This is
    recorded only at the time of shutdown to capture the events which are being
    lost due to shutdown. Because this is recorded at shutdown, this is not
    guaranteed to be complete and should be treated as a best effort record.
  </summary>
</histogram>

<histogram name="GCM.ReceivedDataMessageBurstSize" units="messages">
  <owner>peter@chromium.org</owner>
  <summary>Number of messages in a received GCM data message burst.</summary>
</histogram>

<histogram name="GCM.ReceivedDataMessageIntervalWithinBurst" units="ms">
  <owner>peter@chromium.org</owner>
  <summary>
    Interval between messages within a received GCM data message burst.
  </summary>
</histogram>

<histogram name="GCM.RegistrationCacheStatus" enum="GCMRegistrationCacheStatus">
  <owner>nator@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <owner>rayankans@chromium.org</owner>
  <summary>
    Reports the status of cached GCM registration. This is recorded when a new
    registration request is considered on the GCM client.
  </summary>
</histogram>

<histogram name="GCM.RegistrationCompleteTime" units="ms"
    expires_after="2018-08-30">
  <owner>jianli@chromium.org</owner>
  <summary>
    Length of time taken to complete a GCM registration request successfully. If
    the registration is retried multiple times, the length of time is counted
    for the last successful retry.
  </summary>
</histogram>

<histogram name="GCM.RegistrationRequest" units="requests"
    expires_after="2018-08-30">
  <owner>peter@chromium.org</owner>
  <summary>
    Number of registration requests sent to Google Cloud Messaging. Recorded
    immediately after the request has started.
  </summary>
</histogram>

<histogram name="GCM.RegistrationRequestStatus"
    enum="GCMRegistrationRequestStatus">
  <owner>peter@chromium.org</owner>
  <summary>
    Status code of the outcome of a GCM registration request. The Unknown error
    case was split up in M56 (merged mid-beta to M55) to separate out the
    Response parsing failed, Internal server error, Quota exceeded, and Device
    has too many registrations cases.
  </summary>
</histogram>

<histogram name="GCM.RegistrationRetryCount" expires_after="2018-08-30">
  <owner>jianli@chromium.org</owner>
  <summary>Number of retries before a GCM registration succeeds.</summary>
</histogram>

<histogram name="GCM.RegistrationSenderIdCount">
  <owner>jianli@chromium.org</owner>
  <summary>Number of sender IDs specified in a registration request.</summary>
</histogram>

<histogram name="GCM.ResetStore" enum="GCMResetStoreError">
  <obsolete>
    Deprecated in M56 in favor of GCM.ResetStoreError
  </obsolete>
  <owner>jianli@chromium.org</owner>
  <summary>
    Reports the problem encountered when resetting the GCM store.
  </summary>
</histogram>

<histogram name="GCM.ResetStoreError" enum="GCMResetStoreError">
  <owner>zea@chromium.org</owner>
  <summary>
    Reports the problem encountered when resetting the GCM store.
  </summary>
</histogram>

<histogram name="GCM.RestoredIncomingMessages" expires_after="2018-08-30">
  <owner>zea@chromium.org</owner>
  <summary>
    Number of unacknowledged incoming messages restored from the persistent
    store at startup.
  </summary>
</histogram>

<histogram name="GCM.RestoredOutgoingMessages" expires_after="2018-08-30">
  <owner>zea@chromium.org</owner>
  <summary>
    Number of pending outgoing messages restored from the persistent store at
    startup.
  </summary>
</histogram>

<histogram name="GCM.RestoredRegistrations" expires_after="2018-08-30">
  <owner>jianli@chromium.org</owner>
  <summary>
    Number of registrations restored from the persistent store at startup.
  </summary>
</histogram>

<histogram name="GCM.SendMessageStatus" enum="GCMSendMessageStatus"
    expires_after="2018-08-30">
  <owner>peter@chromium.org</owner>
  <summary>
    Result of sending an upstream message through Google Cloud Messaging.
    Recorded when the message has either been queued, sent, or has been dropped
    because it expired or an error happened.
  </summary>
</histogram>

<histogram name="GCM.StoreDestroySucceeded" enum="BooleanSuccess">
  <owner>zea@chromium.org</owner>
  <summary>
    Success indicates successfully destroying the GCM persistent store. Failure
    indicates a failure destroying the persistence store. GCM store will be
    destroyed when the profile has been signed out.
  </summary>
</histogram>

<histogram name="GCM.StoreSizeKB" units="KB" expires_after="2018-08-30">
  <owner>zea@chromium.org</owner>
  <summary>Size of the GCM persistent store in kilobytes at startup.</summary>
</histogram>

<histogram name="GCM.StoreUpdateSucceeded" enum="BooleanSuccess"
    expires_after="2018-08-30">
  <owner>zea@chromium.org</owner>
  <summary>
    Success indicates successfully updating the GCM persistent store on message
    update. Failure indicates a failure updating the persistence store.
  </summary>
</histogram>

<histogram name="GCM.SuspendTime" units="ms" expires_after="2018-08-30">
  <owner>zea@chromium.org</owner>
  <summary>Time elapsed from machine suspend until resume.</summary>
</histogram>

<histogram name="GCM.UnregistrationCompleteTime" units="ms"
    expires_after="2018-08-30">
  <owner>jianli@chromium.org</owner>
  <summary>
    Length of time taken to complete a GCM unregistration request successfully.
    If the unregistration is retried multiple times, the length of time is
    counted for the last successful retry.
  </summary>
</histogram>

<histogram name="GCM.UnregistrationRequest" units="requests"
    expires_after="2018-08-30">
  <owner>peter@chromium.org</owner>
  <summary>
    Number of unregistration requests sent to Google Cloud Messaging. Recorded
    immediately after the request has started.
  </summary>
</histogram>

<histogram name="GCM.UnregistrationRequestStatus"
    enum="GCMUnregistrationRequestStatus">
  <owner>peter@chromium.org</owner>
  <summary>Status code of the outcome of a GCM unregistration request.</summary>
</histogram>

<histogram name="GCM.UnregistrationRetryCount" expires_after="2018-08-30">
  <owner>jianli@chromium.org</owner>
  <summary>Number of retries before a GCM unregistration succeeds.</summary>
</histogram>

<histogram name="GCM.UserSignedIn" enum="Boolean">
  <owner>jianli@chromium.org</owner>
  <summary>
    Indicates whether the user was signed in when GCM started up.
  </summary>
</histogram>

<histogram name="GCMInvalidations.IncomingMessageStatus"
    enum="GCMInvalidationsIncomingMessageStatus">
  <owner>pavely@chromium.org</owner>
  <summary>
    Status of parsing incoming invalidations message from GCM channel.
  </summary>
</histogram>

<histogram name="GCMInvalidations.OutgoingMessageStatus"
    enum="GCMInvalidationsOutgoingMessageStatus">
  <owner>pavely@chromium.org</owner>
  <summary>
    Status of sending outgoing invalidations message through GCM.
  </summary>
</histogram>

<histogram name="GData.AuthSuccess" enum="GDataAuthResult"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Result of the authentication for Drive.</summary>
</histogram>

<histogram name="GData.EntireFeedLoadTime" units="microseconds">
  <obsolete>
    Deprecated 9/2012, and replaced by Drive.EntireFeedLoadTime
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time spent to load the entire file system information from the server
  </summary>
</histogram>

<histogram name="GData.EntryKind" enum="GDataEntryKind">
  <obsolete>
    Deprecated 9/2012, and replaced by Drive.EntryKind
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Provides breakdown of specific formats for hosted documents. Recorded when
    feed is loaded from the server.
  </summary>
</histogram>

<histogram name="GData.InitialFeedLoadTime" units="microseconds">
  <obsolete>
    Deprecated 9/2012, and replaced by Drive.InitialFeedLoadTime
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time spent to load the initial part of the file system information from the
    server
  </summary>
</histogram>

<histogram name="GData.NumberOfHostedDocuments">
  <obsolete>
    Deprecated 9/2012, and replaced by Drive.NumberOfHostedDocuments
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Number of hosted documents (spreadsheets etc.) on Drive. Logged when Drive
    is first accessed.
  </summary>
</histogram>

<histogram name="GData.NumberOfRegularFiles">
  <obsolete>
    Deprecated 9/2012, and replaced by Drive.NumberOfRegularFiles
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Number of regualr files on Drive. Logged when Drive is first accessed.
  </summary>
</histogram>

<histogram name="GData.NumberOfTotalFiles">
  <obsolete>
    Deprecated 9/2012, and replaced by Drive.NumberOfTotalFiles
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Number of total files (regualr files + hosted documents) on Drive. Logged
    when Drive is first accessed.
  </summary>
</histogram>

<histogram name="Geolocation.AuthorizationActionExistingUser"
    enum="GeolocationAuthorizationAction">
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>
    Records the action performed by an existing user when prompted to authorize
    the use of location by Chrome.
  </summary>
</histogram>

<histogram name="Geolocation.AuthorizationActionNewUser"
    enum="GeolocationAuthorizationAction">
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>
    Records the action performed by a new user when prompted to authorize the
    use of location by Chrome.
  </summary>
</histogram>

<histogram name="Geolocation.GeolocationDispatcherHostImpl.EnableHighAccuracy"
    enum="BooleanEnabled">
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>
    Whether high accuracy geolocation information was requested.
  </summary>
</histogram>

<histogram base="true" name="Geolocation.Header.LocationAge" units="seconds">
  <owner>kcarattini@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <summary>
    For Geolocation requests from the omnibox on Android, the time since the
    location was most recently acquired. If no location has been acquired, the
    maximum bucket is incremented.
  </summary>
</histogram>

<histogram name="Geolocation.Header.PermissionState"
    enum="GeolocationHeaderPermissionState">
  <owner>kcarattini@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <summary>
    Counts Geolocation requests for omnibox searches sliced by various
    permission combinations. The location mode abbreviations indicate one of:
    High Accuracy, Battery Saving, GPS On or Location Mode Off.
  </summary>
</histogram>

<histogram base="true" name="Geolocation.Header.TimeListening" units="ms">
  <owner>kcarattini@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <summary>
    For Geolocation requests from the omnibox on Android, the time since the
    location was first acquired. If no location has been acquired, the minimum
    bucket is incremented.
  </summary>
</histogram>

<histogram name="Geolocation.HeaderSentOrNot" enum="GeolocationHeaderSentOrNot">
  <owner>kiyun@google.com</owner>
  <owner>mvanouwerkerk@chromium.org</owner>
  <owner>newt@chromium.org</owner>
  <summary>
    Reason why the X-Geo header was or was not included in a Google search from
    the omnibox.
  </summary>
</histogram>

<histogram name="Geolocation.InfoBarDelegate.Event"
    enum="GeolocationInfoBarDelegateEvent">
  <obsolete>
    Deprecated 9/2014, and replaced by
    ContentSettings.PermissionActions_Geolocation.
  </obsolete>
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>Events in GeolocationInfoBarDelegate.</summary>
</histogram>

<histogram name="Geolocation.InfoBarDelegateAndroid.Event"
    enum="GeolocationInfoBarDelegateAndroidEvent">
  <obsolete>
    Deprecated 9/2014, and replaced by
    ContentSettings.PermissionActions_Geolocation.
  </obsolete>
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>Events in GeolocationInfoBarDelegateAndroid.</summary>
</histogram>

<histogram name="Geolocation.LocationUpdate.ErrorCode"
    enum="GeopositionErrorCode">
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>Error code for the geoposition sent to the renderers.</summary>
</histogram>

<histogram name="Geolocation.NetworkLocationRequest.AccessPoints">
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>
    The number of WiFi access points used to determine geolocation.
  </summary>
</histogram>

<histogram name="Geolocation.NetworkLocationRequest.Event"
    enum="NetworkLocationRequestEvent">
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>Events in NetworkLocationRequest.</summary>
</histogram>

<histogram name="Geolocation.NetworkLocationRequest.ResponseCode"
    units="HTTP response code">
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>Http response codes in NetworkLocationRequest.</summary>
</histogram>

<histogram base="true" name="Geolocation.SettingsDialog.AcceptEvent"
    enum="GeolocationSettingsDialogBackOff">
  <owner>benwells@chromium.org</owner>
  <summary>
    Records the backoff level when the Location Settings Dialog is accepted by
    the user.
  </summary>
</histogram>

<histogram base="true" name="Geolocation.SettingsDialog.DenyEvent"
    enum="GeolocationSettingsDialogBackOff">
  <owner>benwells@chromium.org</owner>
  <summary>
    Records the backoff level when the Location Settings Dialog is rejected by
    the user.
  </summary>
</histogram>

<histogram base="true" name="Geolocation.SettingsDialog.ShowEvent"
    enum="GeolocationSettingsDialogBackOff">
  <owner>benwells@chromium.org</owner>
  <summary>
    Records the backoff level when the Location Settings Dialog is shown to the
    user.
  </summary>
</histogram>

<histogram base="true" name="Geolocation.SettingsDialog.SuppressEvent"
    enum="GeolocationSettingsDialogBackOff">
  <owner>benwells@chromium.org</owner>
  <summary>
    Records the backoff level when the Location Settings Dialog is suppressed
    due to backoff.
  </summary>
</histogram>

<histogram name="Geolocation.Timeout">
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>
    Counts Geolocation request timeout values, bucketing by timeout duration.
    This is recorded for all requests upon creation, see
    Geolocation.TimeoutExpired for timeouts that actually expired.
  </summary>
</histogram>

<histogram name="Geolocation.TimeoutExpired">
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>
    Counts Geolocation request timeout expirations, bucketing by timeout
    duration. This means no position was received within the allowed time from
    the browser process due to e.g. a slow network or an unresponsive system
    location provider.
  </summary>
</histogram>

<histogram name="GeolocationDisclosure.DisclosureResult"
    enum="GeolocationDisclosureResult">
  <owner>benwells@chromium.org</owner>
  <summary>
    Records the action the user took after the geolocation disclosure has been
    displayed.
  </summary>
</histogram>

<histogram name="GeolocationDisclosure.InfoBarVisibleTime" units="ms">
  <owner>benwells@chromium.org</owner>
  <summary>
    Records how long the search geolocation disclosure infobar was visible for.
  </summary>
</histogram>

<histogram name="GeolocationDisclosure.PostDisclosureContentSetting"
    enum="ContentSetting">
  <obsolete>
    Deprecated 2017/11. Use PostDisclosureDSESetting instead.
  </obsolete>
  <owner>benwells@chromium.org</owner>
  <summary>
    Records the geolocation content setting for the default search engine's
    origin after the search geolocation disclosure has been shown and won't be
    shown again. This metric is only recorded once per client.
  </summary>
</histogram>

<histogram name="GeolocationDisclosure.PostDisclosureDSESetting"
    enum="BooleanAllowed">
  <owner>benwells@chromium.org</owner>
  <summary>
    Records the geolocation default search engine setting after the search
    geolocation disclosure has been shown and won't be shown again. This metric
    is only recorded once per client.
  </summary>
</histogram>

<histogram name="GeolocationDisclosure.PostDisclosurePermission"
    enum="PermissionStatus">
  <obsolete>
    Deprecated 2017/01. Replaced by PostDisclosureContentSetting.
  </obsolete>
  <owner>benwells@chromium.org</owner>
  <summary>
    Records the geolocation permission for the default search engine's origin
    after the search geolocation disclosure has been shown and won't be shown
    again. This metric is only recorded once per client.
  </summary>
</histogram>

<histogram name="GeolocationDisclosure.PreDisclosureContentSetting"
    enum="ContentSetting">
  <obsolete>
    Deprecated 2017/11. Use PreDisclosureDSESetting instead.
  </obsolete>
  <owner>benwells@chromium.org</owner>
  <summary>
    Records the geolocation content setting for the default search engine's
    origin immediately before the search geolocation disclosure has been shown.
    This metric is only recorded once per client.
  </summary>
</histogram>

<histogram name="GeolocationDisclosure.PreDisclosureDSESetting"
    enum="BooleanAllowed">
  <owner>benwells@chromium.org</owner>
  <summary>
    Records the geolocation default search engine setting immediately before the
    search geolocation disclosure has been shown. This metric is only recorded
    once per client.
  </summary>
</histogram>

<histogram name="GeolocationDisclosure.PreDisclosurePermission"
    enum="PermissionStatus">
  <obsolete>
    Deprecated 2017/01. Replaced by PreDisclosureContentSetting.
  </obsolete>
  <owner>benwells@chromium.org</owner>
  <summary>
    Records the geolocation permission for the default search engine's origin
    immediately before the search geolocation disclosure has been shown. This
    metric is only recorded once per client.
  </summary>
</histogram>

<histogram name="GoogleNow.Card.Button.Clicked0" enum="GoogleNowCardTypeId">
  <owner>robliao@chromium.org</owner>
  <owner>skare@chromium.org</owner>
  <summary>Types of cards which received an index 0 button click.</summary>
</histogram>

<histogram name="GoogleNow.Card.Button.Clicked1" enum="GoogleNowCardTypeId">
  <owner>robliao@chromium.org</owner>
  <owner>skare@chromium.org</owner>
  <summary>Types of cards which received an index 1 button click.</summary>
</histogram>

<histogram name="GoogleNow.Card.Clicked" enum="GoogleNowCardTypeId">
  <owner>robliao@chromium.org</owner>
  <owner>skare@chromium.org</owner>
  <summary>Types of cards which received a notification click.</summary>
</histogram>

<histogram name="GoogleNow.Event" enum="GoogleNowEvent">
  <owner>robliao@chromium.org</owner>
  <owner>skare@chromium.org</owner>
  <summary>Events in Google Now component extension.</summary>
</histogram>

<histogram name="GoogleNow.MessageCenter.Displayed.NotificationsVisible"
    units="count">
  <owner>robliao@chromium.org</owner>
  <owner>skare@chromium.org</owner>
  <summary>
    Count of the number of Google Now notifications visible when the message
    center/notification center is shown.
  </summary>
</histogram>

<histogram name="GooglePlayServices.ConnectionResult"
    enum="GooglePlayServicesConnectionResult">
  <owner>wnwen@chromium.org</owner>
  <summary>
    ConnectionResult error codes resulting from attempts to check whether or not
    Google Play Services is available. Most of these checks are done lazily,
    when a user accesses a feature that uses Google Play Services. Added for
    http://crbug.com/490710.
  </summary>
</histogram>

<histogram name="GooglePlayServices.ErrorHandlerAction"
    enum="GooglePlayServicesErrorHandlerAction">
  <owner>wnwen@chromium.org</owner>
  <summary>
    Types of action taken in response to Google Play Services user-recoverable
    errors. Added for http://crbug.com/490710.
  </summary>
</histogram>

<histogram name="GoogleSearch.AccessPoint" enum="SearchAccessPoint">
  <obsolete>
    Deprecated 2015/08.
  </obsolete>
  <owner>kmadhusu@chromium.org</owner>
  <summary>
    Counts number of Google searches from various access points in the browser.
    WARNING: Do not use this histogram as it currently fails to classify a large
    percentage of Omnibox searches correctly - http://crbug.com/421631.
  </summary>
</histogram>

<histogram name="GoogleUpdate.EffectivePolicy" enum="UpdatePolicy"
    expires_after="2018-08-30">
  <obsolete>
    Deprecated 09/2018; see https://crbug.com/871490.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    The effective update policy for Chrome on Windows. Recorded once per startup
    (following a 45 seconds delay).
  </summary>
</histogram>

<histogram name="GoogleUpdate.ErrorHresult" enum="Hresult">
  <owner>grt@chromium.org</owner>
  <summary>The HRESULT for a failed on-demand update check.</summary>
</histogram>

<histogram name="GoogleUpdate.InfoBar.ActionTaken"
    enum="GoogleUpdateInfoBarActions">
  <obsolete>
    Deprecated 12/2015 in Issue 566085.
  </obsolete>
  <owner>yfriedman@chromium.org</owner>
  <owner>dfalcantara@chromium.org</owner>
  <summary>
    (Android-only) Records what action the user took (if any) on the InfoBar
    indicating that a new version of Chrome is available.
  </summary>
</histogram>

<histogram name="GoogleUpdate.InfoBar.DeviceFreeSpace" units="MB">
  <owner>shaktisahu@chromium.org</owner>
  <summary>
    (Android-only) The amount of internal memory storage that is free on the
    file system and available to the applications when the InfoBar or update
    menu item is shown.
  </summary>
</histogram>

<histogram name="GoogleUpdate.InfoBar.InternalStorageSizeAvailable" units="MB">
  <owner>yfriedman@chromium.org</owner>
  <owner>dfalcantara@chromium.org</owner>
  <owner>khushalsagar@chromium.org</owner>
  <summary>
    (Android-only) The amount of internal memory storage available on the user's
    device when the InfoBar or update menu item is shown. Deprecating soon in
    M64.
  </summary>
</histogram>

<histogram name="GoogleUpdate.InfoBar.TimeShown" units="ms">
  <obsolete>
    Deprecated 12/2015 in Issue 566085.
  </obsolete>
  <owner>yfriedman@chromium.org</owner>
  <owner>dfalcantara@chromium.org</owner>
  <summary>
    (Android-only) The amount of time which the InfoBar indicating a new version
    is available is visible.
  </summary>
</histogram>

<histogram name="GoogleUpdate.Inline.CallFailure"
    enum="InlineUpdateCallFailure" expires_after="2019-10-30">
  <owner>dtrainor@chromium.org</owner>
  <owner>nyquist@chromium.org</owner>
  <summary>
    (Android-only) Records the instances where Play update API calls failed.
  </summary>
</histogram>

<histogram name="GoogleUpdate.Inline.StateChange.Error"
    enum="InlineUpdateErrorCodes" expires_after="2019-10-30">
<!-- Name completed by histogram_suffixes name="GoogleUpdate.Inline.InstallStatus" -->

  <owner>dtrainor@chromium.org</owner>
  <owner>nyquist@chromium.org</owner>
  <summary>
    (Android-only) Records the instances where Play update API notified us of an
    install error during an update. This is keyed on the specific state so we
    can tell which states are seeing which errors.
  </summary>
</histogram>

<histogram name="GoogleUpdate.Inline.UI.Install.Source"
    enum="UpdateInteractionSource" expires_after="2019-10-30">
  <owner>dtrainor@chromium.org</owner>
  <owner>nyquist@chromium.org</owner>
  <summary>
    (Android-only) The UI component that triggered an inline update to finish
    and install.
  </summary>
</histogram>

<histogram name="GoogleUpdate.Inline.UI.Retry.Source"
    enum="UpdateInteractionSource" expires_after="2019-10-30">
  <owner>dtrainor@chromium.org</owner>
  <owner>nyquist@chromium.org</owner>
  <summary>
    (Android-only) The UI component that triggered an inline update to retry.
  </summary>
</histogram>

<histogram name="GoogleUpdate.Inline.UI.Start.Source"
    enum="UpdateInteractionSource" expires_after="2019-10-30">
  <owner>dtrainor@chromium.org</owner>
  <owner>nyquist@chromium.org</owner>
  <summary>
    (Android-only) The UI component that triggered an inline update to start.
  </summary>
</histogram>

<histogram name="GoogleUpdate.InstallerExitCode" enum="InstallStatus">
  <owner>grt@chromium.org</owner>
  <summary>
    The exit code from Chrome's installer following a failed on-demand update
    check. All values reported for this histogram fall in the
    GOOGLE_UPDATE_ERROR_UPDATING bucket of the GoogleUpdate.UpdateErrorCode
    histogram and the GOOPDATEINSTALL_E_INSTALLER_FAILED bucket of the
    GoogleUpdate.ErrorHresult histogram.
  </summary>
</histogram>

<histogram name="GoogleUpdate.MenuItem.ActionTakenAfterItemClicked"
    enum="GoogleUpdateAfterItemClickedActions">
  <owner>twellington@chromium.org</owner>
  <summary>
    (Android-only) Records whether Chrome was updated after the update menu item
    was clicked.
  </summary>
</histogram>

<histogram name="GoogleUpdate.MenuItem.ActionTakenOnMenuOpen"
    enum="GoogleUpdateMenuItemActions">
  <owner>twellington@chromium.org</owner>
  <summary>
    (Android-only) Records whether the update menu item was clicked when the app
    menu was opened.
  </summary>
</histogram>

<histogram name="GoogleUpdate.StartUp.State" enum="UpdateState"
    expires_after="2019-10-30">
  <owner>dtrainor@chromium.org</owner>
  <owner>nyquist@chromium.org</owner>
  <summary>
    (Android-only) The state of any in-progress updates when the process first
    starts and queries for it.
  </summary>
</histogram>

<histogram name="GoogleUpdate.UnexpectedState">
  <owner>grt@chromium.org</owner>
  <summary>
    An unrecognized CurrentState value received from Google Update while polling
    for the status of an on-demand update check.
  </summary>
</histogram>

<histogram name="GoogleUpdate.UpdateErrorCode" enum="GoogleUpdateErrorCode">
  <owner>grt@chromium.org</owner>
  <summary>The error code for a failed on-demand update check.</summary>
</histogram>

<histogram name="GoogleUpdate.UpdatePolicyIsOverridden" enum="Boolean"
    expires_after="2018-08-30">
  <obsolete>
    Deprecated 09/2018; see https://crbug.com/871490.
  </obsolete>
  <owner>grt@chromium.org</owner>
  <summary>
    True if the effective update policy for Chrome on Windows is the result of
    an app-specific override; false if it is the default for all apps. Recorded
    once per startup (following a 45 seconds delay).
  </summary>
</histogram>

<histogram name="GoogleUpdate.UpgradeResult" enum="GoogleUpdateUpgradeStatus">
  <owner>grt@chromium.org</owner>
  <summary>The result of an on-demand update check.</summary>
</histogram>

<histogram name="GPU.AcceleratedSurfaceRefreshRate" units="hz">
  <owner>vmiura@chromium.org</owner>
  <summary>
    Refresh rate of the display in Hz. This is recorded every time we present a
    frame.
  </summary>
</histogram>

<histogram name="GPU.ANGLE.Buffer11CPUMemoryMB" units="MB">
  <owner>cwallez@chromium.org</owner>
  <summary>
    The sum of the size of the CPU-side memory allocations of Buffer11's copies
    (vs. GPU memory allocations). These allocations are used when modifying the
    buffer data on the CPU or when transfering to GPU memory via DMA.
  </summary>
</histogram>

<histogram name="GPU.ANGLE.D3D11CreateDeviceError" enum="Hresult">
  <owner>jmadill@chromium.org</owner>
  <summary>
    An extended Windows error code returned from D3D11CreateDevice on error. Can
    be almost any valid HRESULT or DXGI error code, which are listed at
    https://msdn.microsoft.com/en-us/library/windows/desktop/bb509553.aspx.
  </summary>
</histogram>

<histogram name="GPU.ANGLE.D3D11CreateDeviceMS" units="ms">
  <owner>jmadill@chromium.org</owner>
  <summary>
    The time that elapses for the initial call to D3D11CreateDevice on D3D11
    ANGLE. A pure system call, with no ANGLE or Chromium code, called once every
    GPU process startup.
  </summary>
</histogram>

<histogram name="GPU.ANGLE.D3D11FeatureLevel" enum="D3DFeatureLevel">
  <owner>jmadill@chromium.org</owner>
  <summary>
    The maxmium supported (or currently requested) Direct3D feature level in
    D3D11 ANGLE. We support as low as 9.3, and as high as 11.1, though Chrome
    should only use 10.0+ for D3D11. Gives an indication of how new a user's
    video card is, what features it supports, and it's general speed tier.
  </summary>
</histogram>

<histogram name="GPU.ANGLE.D3D11InitializeResult" enum="D3D11InitializeResult">
  <owner>jmadill@chromium.org</owner>
  <summary>
    The result from initializing a D3D11 device in ANGLE. Can be success, or one
    of several error codes which indicate different reasons for failing.
  </summary>
</histogram>

<histogram name="GPU.ANGLE.D3D9InitializeResult" enum="D3D9InitializeResult">
  <owner>jmadill@chromium.org</owner>
  <summary>
    The result from initializing a D3D9 device in ANGLE. Can be success, or one
    of several error codes which indicate different reasons for failing.
  </summary>
</histogram>

<histogram name="GPU.ANGLE.D3DCompileMS" units="ms">
  <owner>jmadill@chromium.org</owner>
  <summary>
    The time ANGLE spends calling the D3D shader compiler. Tracks total time we
    spend compiling shaders on startup and during Chrome's lifetime.
  </summary>
</histogram>

<histogram name="GPU.ANGLE.DisplayInitializeMS" units="ms">
  <owner>jmadill@chromium.org</owner>
  <summary>
    Time ANGLE spends in eglInitialize, where it spins up a Renderer. This can
    gives us insight into how much time we're spending initializing the GPU.
  </summary>
</histogram>

<histogram name="GPU.ANGLE.ProgramCache.BinaryCacheHitTimeUS"
    units="microseconds">
  <owner>jmadill@chromium.org</owner>
  <summary>
    The time to load a gpu program from the program cache.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="GPU.ANGLE.ProgramCache.BinaryCacheMissTimeUS"
    units="microseconds">
  <owner>jmadill@chromium.org</owner>
  <summary>
    The time to link a gpu program.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="GPU.ANGLE.ProgramCache.CacheResult"
    enum="ANGLEProgramCacheResult">
  <owner>jmadill@chromium.org</owner>
  <summary>
    If a successfully linked program was found in the GPU program cache during a
    program link call, and if the hit was originally loaded from disk.
  </summary>
</histogram>

<histogram name="GPU.ANGLE.ProgramCache.LoadBinarySuccess"
    enum="BooleanSuccess">
  <owner>jmadill@chromium.org</owner>
  <summary>
    Records if the call to load a cached binary was successful. This can
    legitimately fail if the driver wants chrome to re-link and re-cache the gpu
    program.
  </summary>
</histogram>

<histogram name="GPU.ANGLE.ProgramCache.ProgramBinarySizeBytes" units="bytes">
  <owner>jmadill@chromium.org</owner>
  <summary>
    The size of program binaries loaded into the gpu program cache.
  </summary>
</histogram>

<histogram name="GPU.ANGLE.Renderer11InitializeDeviceMS" units="ms">
  <owner>jmadill@chromium.org</owner>
  <summary>
    Time ANGLE spends initializing various shaders and internal classes. This is
    time that isn't purely loading system DLLs and calling OS methods. It might
    be work we can optimize or defer until later.
  </summary>
</histogram>

<histogram name="GPU.ANGLE.Renderer11InitializeDLLsMS" units="ms">
  <owner>jmadill@chromium.org</owner>
  <summary>
    Time ANGLE spends loading system DLLs, such as the D3D compiler DLL, and the
    D3D11 and DXGI DLLs. Probably unavoidable startup costs, though very useful
    to keep track of.
  </summary>
</histogram>

<histogram name="GPU.ANGLE.SupportsDXGI1_2" enum="BooleanSupported">
  <owner>jmadill@chromium.org</owner>
  <summary>
    Windows computers running Windows 8+, or running Windows 7 with a platform
    update, support the newer version of DXGI. This update also indicates the
    computer is capable of running Direct3D 11.1 if the hardware supports it.
  </summary>
</histogram>

<histogram name="GPU.AppContainer.EnableState"
    enum="GPUAppContainerEnableState">
  <owner>forshaw@chromium.org</owner>
  <summary>
    On Windows 10 version RS1 and above the GPU can be sandboxed using an
    AppContainer. This is recorded every time the GPU sandbox is initialized and
    enabling the AppContainer is requested, such as through a command line
    option. The recorded value can indicate that the AppContainer was disabled
    due to an incompatible configuration or the GPU process had previously
    crashed resulting in the AppContainer being forcefully disabled.
  </summary>
</histogram>

<histogram name="GPU.AppContainer.Status" enum="LaunchErrorCodes">
  <owner>forshaw@chromium.org</owner>
  <summary>
    On Windows 10 version RS1 and above the GPU can be sandboxed using an
    AppContainer. This indicates the status when initializing the sandbox
    profile during process creation.
  </summary>
</histogram>

<histogram name="GPU.AtExitMBytesAllocated" units="MB">
  <obsolete>
    Removed sometime around M55.
  </obsolete>
  <owner>vmiura@chromium.org</owner>
  <summary>
    The amount of GPU memory that was currently allocated as of just before the
    GPU process' exit.
  </summary>
</histogram>

<histogram name="GPU.AtExitMBytesAllocatedMax" units="MB">
  <obsolete>
    Removed sometime around M55.
  </obsolete>
  <owner>vmiura@chromium.org</owner>
  <summary>
    The maximum amount of GPU memory that had ever been allocated during the GPU
    process' lifetime, as of just before the GPU process' exit.
  </summary>
</histogram>

<histogram name="GPU.AtExitMBytesLimit" units="MB">
  <obsolete>
    Removed sometime around M55.
  </obsolete>
  <owner>vmiura@chromium.org</owner>
  <summary>
    The GPU memory manager's limit on the amount of GPU memory that can be
    allocated as of just before the GPU process' exit.
  </summary>
</histogram>

<histogram name="GPU.AtExitSurfaceCount">
  <owner>vmiura@chromium.org</owner>
  <summary>
    The number of surfaces that the GPU process was rendering to right before
    exiting. This should be equal to the number of tabs (both visible and
    hidden) rendering via the compositor.
  </summary>
</histogram>

<histogram name="GPU.AtExitWindowCount">
  <obsolete>
    Removed sometime around M55.
  </obsolete>
  <owner>vmiura@chromium.org</owner>
  <summary>
    The number of windows that the GPU memory manager believed to exist as of
    just before the GPU process' exit.
  </summary>
</histogram>

<histogram name="GPU.BlacklistFeatureTestResults"
    enum="GPUBlacklistFeatureTestResults">
  <owner>vmiura@chromium.org</owner>
  <summary>
    Counts number of browser invocations for which a GPU feature is
    allowed/blacklisted/disabled.
  </summary>
</histogram>

<histogram name="GPU.BlacklistFeatureTestResultsWindows"
    enum="GPUBlacklistFeatureTestResultsWindows">
  <obsolete>
    Replaced by GPU.BlacklistFeatureTestResultsWindows2 in M67.
  </obsolete>
  <owner>vmiura@chromium.org</owner>
  <summary>
    Counts number of browser invocations for which a GPU feature is
    allowed/blacklisted/disabled in various Windows sub-versions.
  </summary>
</histogram>

<histogram name="GPU.BlacklistFeatureTestResultsWindows2"
    enum="GPUBlacklistFeatureTestResultsWindows2">
  <owner>vmiura@chromium.org</owner>
  <summary>
    Counts number of browser invocations for which a GPU feature is
    allowed/blacklisted/disabled in various Windows sub-versions.
  </summary>
</histogram>

<histogram name="GPU.BlacklistTestResultsPerDisabledEntry"
    enum="GPUBlacklistTestResultPerEntry">
  <owner>vmiura@chromium.org</owner>
  <summary>
    Counts number of browser invocations for which a disabled blacklist entry is
    matched.
  </summary>
</histogram>

<histogram name="GPU.BlacklistTestResultsPerEntry"
    enum="GPUBlacklistTestResultPerEntry">
  <owner>vmiura@chromium.org</owner>
  <summary>
    Counts number of browser invocations for which the GPU process is blocked
    due to a blacklist entry match.
  </summary>
</histogram>

<histogram name="GPU.BlockStatusForClient3DAPIs"
    enum="BlockStatusForClient3DAPIs">
  <owner>kbr@chromium.org</owner>
  <summary>
    Indicates whether WebGL / Pepper3D were blocked, and if so, for all domains,
    or only a single one. This statistic is gathered every time an attempt is
    made to create a 3D context.
  </summary>
</histogram>

<histogram name="GPU.CheckFramebufferValidDuration" units="ms">
  <obsolete>
    Deprecated 01/2017.
  </obsolete>
  <owner>ericrk@chromium.org</owner>
  <summary>
    The amount of time spent in GLES2DecoderImpl::CheckFramebufferValid.
  </summary>
</histogram>

<histogram name="GPU.CollectContextGraphicsInfo" units="microseconds">
  <owner>vmiura@chromium.org</owner>
  <summary>
    The time that the GPU process spends collecting driver information during
    startup.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="GPU.ContextLost" enum="ContextLostReason">
  <owner>sievers@chromium.org</owner>
  <summary>
    The reason a GPU command buffer context of a given type was lost.
  </summary>
</histogram>

<histogram name="GPU.ContextMemory" units="MB">
  <owner>ericrk@chromium.org</owner>
  <summary>The amount of memory used by a GL Context.</summary>
</histogram>

<histogram name="GPU.CreateBrowserCompositor" units="microseconds">
  <obsolete>
    Deprecated 07/2018: not useful anymore.
  </obsolete>
  <owner>vmiura@chromium.org</owner>
  <summary>
    The time that the browser process takes to create the compositor from its
    point of view. One of these is created for each top-level window (browser
    frame, menus, etc.).

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="GPU.D3D11_B8G8R8A8_RenderTargetSupport" enum="BooleanSuccess">
  <owner>vmiura@chromium.org</owner>
  <summary>Whether D3D11 supports B8G8R8A8 format for render targets.</summary>
</histogram>

<histogram name="GPU.D3D11_B8G8R8A8_Texture2DSupport" enum="BooleanSuccess">
  <owner>vmiura@chromium.org</owner>
  <summary>Whether D3D11 supports B8G8R8A8 format for 2D textures.</summary>
</histogram>

<histogram name="GPU.D3D11_FeatureLevel" enum="D3D11FeatureLevel">
  <owner>vmiura@chromium.org</owner>
  <summary>The highest D3D11 feature level available.</summary>
</histogram>

<histogram name="GPU.D3D12FeatureLevel" enum="D3D12FeatureLevel">
  <owner>vmiura@chromium.org</owner>
  <owner>magchen@chromium.org</owner>
  <summary>
    The maximum D3D12 feature level supported in the gpu drivers. It is recorded
    15 seconds after the browser launch.
  </summary>
</histogram>

<histogram name="GPU.D3DShaderModel" enum="ShaderModel">
  <owner>jmadill@chromium.org</owner>
  <summary>
    ANGLE's currently active D3D shader model version. Logged once every startup
    of the GPU process, on Windows only. Note that Shader Models 2 and 3 map to
    D3D9 with ANGLE, and 4+ map to D3D11 ANGLE.
  </summary>
</histogram>

<histogram name="GPU.DestroyProgramManagerPrograms.Elapsed" units="ms">
  <obsolete>
    Deprecated 11/2016.
  </obsolete>
  <owner>ericrk@chromium.org</owner>
  <summary>
    The amount of time spent destroying programs during ProgramManager::Destroy.
  </summary>
</histogram>

<histogram name="GPU.DestroyProgramManagerPrograms.Programs" units="programs">
  <obsolete>
    Deprecated 11/2016.
  </obsolete>
  <owner>ericrk@chromium.org</owner>
  <summary>
    The number of progams destroyed during ProgramManager::Destroy.
  </summary>
</histogram>

<histogram name="GPU.DestroyProgramManagerPrograms.ProgramsPerMs"
    units="programs per ms">
  <obsolete>
    Deprecated 11/2016.
  </obsolete>
  <owner>ericrk@chromium.org</owner>
  <summary>
    The number of programs destroyed per millisecond during
    ProgramManager::Destroy. Only logged if both the number of programs and the
    elapsed time are greater than zero.
  </summary>
</histogram>

<histogram name="GPU.DirectComposition.CompositionMode"
    enum="DxgiFramePresentationMode">
  <owner>jbauman@chromium.org</owner>
  <summary>
    How the Desktop Window Manager presented Chrome's DirectComposition layers
    to the screen.
  </summary>
</histogram>

<histogram name="GPU.DirectComposition.DCLayerResult" enum="DCLayerResult">
  <obsolete>
    Deprecated 11/2018. Replaced by GPU.DirectComposition.DCLayerResult2.Clear.
  </obsolete>
  <owner>jbauman@chromium.org</owner>
  <summary>
    Recorded for each quad (on overlay processing) the reason it was or wasn't
    put in an overlay.
  </summary>
</histogram>

<histogram base="true" name="GPU.DirectComposition.DCLayerResult2"
    enum="DCLayerResult" expires_after="2020-12-31">
<!-- Name completed by histogram_suffixes name="GPU.ProtectedVideoType" -->

  <owner>magchen@chromium.org</owner>
  <owner>zmo@chromium.org</owner>
  <summary>
    Recorded for each quad (on overlay processing) with protected video type the
    reason it was or wasn't put in an overlay.
  </summary>
</histogram>

<histogram name="GPU.DirectComposition.DecodeSwapChainCreationResult"
    enum="Hresult" expires_after="M75">
  <owner>sunnyps@chromium.org</owner>
  <owner>zmo@chromium.org</owner>
  <summary>
    Result of calling CreateDecodeSwapChainForCompositionSurfaceHandle. Recorded
    when decode swap chain is created.
  </summary>
</histogram>

<histogram name="GPU.DirectComposition.DecodeSwapChainPresentResult"
    enum="Hresult" expires_after="M75">
  <owner>sunnyps@chromium.org</owner>
  <owner>zmo@chromium.org</owner>
  <summary>
    Result of calling Present on decode swap chain. Recorded on each present.
  </summary>
</histogram>

<histogram name="GPU.DirectComposition.DecodeSwapChainSurfaceCreationResult"
    enum="Hresult" expires_after="M75">
  <owner>sunnyps@chromium.org</owner>
  <owner>zmo@chromium.org</owner>
  <summary>
    Result of calling CreateSurfaceFromHandle. Recorded when decode swap chain
    is created.
  </summary>
</histogram>

<histogram name="GPU.DirectComposition.FramesSinceColorSpaceChange"
    units="frames">
  <owner>jbauman@chromium.org</owner>
  <summary>
    How many frames since the last time the layer color format was changed.
  </summary>
</histogram>

<histogram name="GPU.DirectComposition.OverlayFormatUsed" enum="OverlayFormat">
  <obsolete>
    Deprecated 10/2018. Replaced by GPU.DirectComposition.OverlayFormatUsed2.
  </obsolete>
  <owner>sunnyps@chromium.org</owner>
  <summary>Which overlay format was chosen for YUV overlays.</summary>
</histogram>

<histogram name="GPU.DirectComposition.OverlayFormatUsed2" enum="OverlayFormat"
    expires_after="M75">
  <owner>sunnyps@chromium.org</owner>
  <owner>zmo@chromium.org</owner>
  <summary>
    Which overlay format was chosen for YUV overlays. Recorded once per GPU
    process launch only if hardware overlays are supported.
  </summary>
</histogram>

<histogram name="GPU.DirectComposition.OverlayNV12Rec709Supported"
    enum="BooleanColorSpaceSupported" expires_after="2020-09-30">
  <owner>magchen@chromium.org</owner>
  <owner>sunnyps@chromium.org</owner>
  <owner>zmo@chromium.org</owner>
  <summary>
    Whether or not Rec709 color space is supported on NV12 supported machines.
    Recorded during the GPU process initialization.
  </summary>
</histogram>

<histogram name="GPU.DirectComposition.OverlaysSupported"
    enum="BooleanOverlaySupported">
  <owner>jbauman@chromium.org</owner>
  <summary>True if Chrome will try to use DirectComposition overlays.</summary>
</histogram>

<histogram name="GPU.DirectComposition.OverlaySupportFlags"
    enum="OverlaySupportFlag">
  <obsolete>
    Replaced by format specific histograms under OverlaySupportFlags2.
  </obsolete>
  <owner>sunnyps@chromium.org</owner>
  <summary>
    These are the flags explaining how well overlays are supported on the
    current display. The is recorded for every connected display when creating a
    DirectComposition view context.
  </summary>
</histogram>

<histogram base="true" name="GPU.DirectComposition.OverlaySupportFlags2"
    enum="OverlaySupportFlag">
<!-- Name completed by histogram_suffixes name="GPU.DirectComposition.OverlayFormat" -->

  <owner>sunnyps@chromium.org</owner>
  <summary>
    Flags that indicate if overlays are supported, and if additional features
    such as scaling are supported for some common pixel formats.
  </summary>
</histogram>

<histogram name="GPU.DirectComposition.OverlaysUsed" enum="BooleanOverlayUsage">
  <owner>jbauman@chromium.org</owner>
  <summary>Whether or not a frame displays an overlay.</summary>
</histogram>

<histogram name="GPU.DirectComposition.SwapBuffersFailed" enum="BooleanHit">
  <obsolete>
    Deprecated 08/2018. Replaced by SwapBuffersResult which is emitted on both
    success and failure.
  </obsolete>
  <owner>sunnyps@chromium.org</owner>
  <summary>Emitted on direct composition surface swap buffers failure.</summary>
</histogram>

<histogram name="GPU.DirectComposition.SwapBuffersLastError" enum="Hresult">
  <obsolete>
    Deprecated 05/2018. GetLastError returns error for last successful or failed
    win32 call so this doesn't work as expected.
  </obsolete>
  <owner>sunnyps@chromium.org</owner>
  <summary>Last error when presentation using DirectComposition fails.</summary>
</histogram>

<histogram name="GPU.DirectComposition.SwapBuffersResult" enum="BooleanSuccess">
  <owner>sunnyps@chromium.org</owner>
  <owner>zmo@chromium.org</owner>
  <summary>Whether or not swap buffers succeeded.</summary>
</histogram>

<histogram base="true" name="GPU.DirectComposition.SwapChainCreationResult"
    enum="BooleanSuccess" expires_after="M75">
<!-- Name completed by histogram_suffixes name="GPU.DirectComposition.OverlayFormat" -->

  <owner>sunnyps@chromium.org</owner>
  <owner>zmo@chromium.org</owner>
  <summary>
    Whether creating swap chain for overlay format succeeded. Recorded once per
    swap chain creation.
  </summary>
</histogram>

<histogram base="true" name="GPU.DirectComposition.SwapChainCreationResult3"
    enum="Hresult" expires_after="2020-12-31">
<!-- Name completed by histogram_suffixes name="GPU.ProtectedVideoType" -->

  <owner>magchen@chromium.org</owner>
  <owner>zmo@chromium.org</owner>
  <summary>
    Whether creating swap chain for protected video succeeded. Recorded once per
    swap chain creation.
  </summary>
</histogram>

<histogram name="GPU.DirectComposition.SwapchainFormat" enum="SwapchainFormat">
  <obsolete>
    Deprecated 10/2018. Replaced by GPU.DirectComposition.SwapChainFormatUsed.
  </obsolete>
  <owner>jbauman@chromium.org</owner>
  <summary>What type of swapchain was actually created for an overlay.</summary>
</histogram>

<histogram name="GPU.DirectComposition.SwapChainFormat2" enum="OverlayFormat"
    expires_after="M75">
  <owner>sunnyps@chromium.org</owner>
  <owner>zmo@chromium.org</owner>
  <summary>
    What format was used for each overlay swap chain on each swap buffers.
  </summary>
</histogram>

<histogram name="GPU.DirectComposition.SwapChainResizeResult"
    enum="BooleanSuccess" expires_after="M75">
  <owner>sunnyps@chromium.org</owner>
  <owner>zmo@chromium.org</owner>
  <summary>
    Result of ResizeBuffers call. Recorded once per swap chain resize.
  </summary>
</histogram>

<histogram name="GPU.DisplayCompositorLifetimeEvents"
    enum="GPUProcessLifetimeEvent">
  <obsolete>
    Deprecated 05/2018. Moved to GPU.ProcessLifetimeEvents.DisplayCompositor.
  </obsolete>
  <owner>mohsen@chromium.org</owner>
  <summary>
    Counts of the number of gpu process crashes when it only has display
    compositor (no hardware acceleration and software compositing).
  </summary>
</histogram>

<histogram name="GPU.DisplayLinkInstallationStatus"
    enum="DisplayLinkInstallationStatus">
  <obsolete>
    Deprecated 2/2017. The values hadn't been updated since it was created, and
    the code gathering the installation status has been removed in Chrome CL
    2679773002.
  </obsolete>
  <owner>vmiura@chromium.org</owner>
  <summary>
    Whether a version of DisplayLink is installed that crashes the GPU process.
    This information is collected at statup. It applies only to Windows. See
    http://crbug.com/177611.
  </summary>
</histogram>

<histogram name="GPU.DoLinkProgramTime" units="ms">
  <owner>jmadill@chromium.org</owner>
  <owner>jonahr@chromium.org</owner>
  <summary>
    The time we spend in GLES2DecoderImpl::DoLinkProgram. Related to how much
    time we spend compiling shaders during startup.
  </summary>
</histogram>

<histogram name="GPU.DriverBugTestResultsPerEntry"
    enum="GpuDriverBugWorkaroundEntry" expires_after="never">
<!-- expires-never: For monitoring new driver bugs. -->

  <owner>vmiura@chromium.org</owner>
  <owner>kbr@chromium.org</owner>
  <owner>zmo@chromium.org</owner>
  <summary>
    For every entry in the gpu driver bug list that is hit on a machine, this
    records the id. Entry 0 is the total number of times that data is recorded.
    It should be recorded whenever new GPU information is received: on startup,
    whenever a GPU process launches, and whenever the active GPU changes.
  </summary>
</histogram>

<histogram name="GPU.EGLDisplayType" enum="EGLDisplayType">
  <owner>jbauman@chromium.org</owner>
  <summary>The display type used to ask for an EGLDisplay.</summary>
</histogram>

<histogram name="GPU.Error" enum="GLError">
  <owner>zmo@chromium.org</owner>
  <owner>piman@chromium.org</owner>
  <summary>The error states generated by OpenGL calls.</summary>
</histogram>

<histogram base="true" name="GPU.EstablishGpuChannelDuration" units="ms"
    expires_after="M75">
  <owner>kylechar@chromium.org</owner>
  <summary>
    The duration from when a request to establish a GPU channel arrives in
    viz::GpuClient and to when the response for the request is sent.
  </summary>
</histogram>

<histogram name="GPU.FenceSupport" enum="BooleanAvailable">
  <owner>reveman@chromium.org</owner>
  <summary>
    Whether GLFence support is available. Recorded each time a new context group
    is initialized and extensions are detected.
  </summary>
</histogram>

<histogram name="GPU.GLImplementation" enum="GLImplementation"
    expires_after="2020-11-01">
  <owner>magchen@chromium.org</owner>
  <owner>zmo@chromium.org</owner>
  <summary>
    Records the OpenGL implementation mode. Recorded during GPU process
    initilization.
  </summary>
</histogram>

<histogram name="GPU.GpuGeneration" enum="GpuSeriesType" expires_after="M75">
  <owner>sunnyps@chromium.org</owner>
  <owner>zmo@chromium.org</owner>
  <summary>
    Records user device's GPU generation. Only recorded on Windows platform at
    GPU process launch time. Currently only meaningful with Intel GPUs.
  </summary>
</histogram>

<histogram name="GPU.GPUProcessDetailedExitStatus"
    enum="ProcessDetailedExitStatus">
  <owner>wnwen@chromium.org</owner>
  <summary>
    Breakdown of exit status for gpu processes. Only recorded on Android.
  </summary>
</histogram>

<histogram name="GPU.GPUProcessExitCode" enum="GPUProcessExitCode">
  <owner>jbauman@chromium.org</owner>
  <summary>
    Counts for the exit codes returned by the GPU process when it terminated.
  </summary>
</histogram>

<histogram name="GPU.GPUProcessInitialized" enum="BooleanSuccess">
  <owner>vmiura@chromium.org</owner>
  <summary>
    Whether the GPU process successfully initialized or failed and then exitted
    normally.
  </summary>
</histogram>

<histogram name="GPU.GPUProcessLaunchCause" enum="GPUProcessLaunchCauses">
  <obsolete>
    Deprecated 08/2016.
  </obsolete>
  <owner>piman@chromium.org</owner>
  <summary>
    Counts enumerating the initial cause for the GPU Process to be launched.
  </summary>
</histogram>

<histogram name="GPU.GPUProcessLaunchTime" units="ms">
  <owner>piman@chromium.org</owner>
  <summary>
    Startup time of the GPU process as measured by the GPU process host.
  </summary>
</histogram>

<histogram name="GPU.GPUProcessLifetimeEvents" enum="GPUProcessLifetimeEvent">
  <obsolete>
    Deprecated 05/2018. Moved to GPU.ProcessLifetimeEvents.HardwareAccelerated.
  </obsolete>
  <owner>vmiura@chromium.org</owner>
  <summary>
    Counts of the number of process launches and crashes (when running on h/w).
  </summary>
</histogram>

<histogram name="GPU.GPUProcessSoftwareRendering" enum="GPUProcessType">
  <obsolete>
    This histogram is no longer recorded. Use GPU.GLImplementation ==
    kGLImplementationSwiftShaderGL to check if the gpu process is launched with
    software rendering.
  </obsolete>
  <owner>vmiura@chromium.org</owner>
  <summary>
    A boolean indicating whether the gpu process that was launched uses software
    or hardware 3d rendering.
  </summary>
</histogram>

<histogram name="GPU.GPUProcessTerminationOrigin" enum="GpuTerminationOrigin"
    expires_after="2019-08-14">
  <owner>rjkroege@chromium.org</owner>
  <owner>msisov@igalia.com</owner>
  <summary>
    The reason a GPU process is terminated. It works only when
    TERMINATION_STATUS_PROCESS_WAS_KILLED TerminationStatus is set. The goal of
    this histogram is to get spikes of the above mentioned case when
    Ozone/Wayland terminates the GPU process due to invalid data it received if
    any.
  </summary>
</histogram>

<histogram name="GPU.GPUProcessTerminationStatus" enum="TerminationStatus">
  <obsolete>
    Deprecated April 2018. Replaced by GPU.GPUProcessTerminationStatus2.
  </obsolete>
  <owner>vmiura@chromium.org</owner>
  <summary>
    Counts for each time the GPU Process Host detects the process dies.
  </summary>
</histogram>

<histogram name="GPU.GPUProcessTerminationStatus2" enum="GpuTerminationStatus">
  <owner>vmiura@chromium.org</owner>
  <summary>
    Counts for each time the GPU Process Host detects the process dies.
  </summary>
</histogram>

<histogram name="GPU.InForceCompositingModeFieldTrial" enum="BooleanEnabled">
  <obsolete>
    Deprecated 10/2013.
  </obsolete>
  <owner>vmiura@chromium.org</owner>
  <summary>
    Records whether a client was selected for the force compositing mode field
    trial or not.
  </summary>
</histogram>

<histogram name="GPU.InitializeOneOffMediumTime" units="ms">
  <owner>jmadill@chromium.org</owner>
  <summary>
    The time that the GPU process spends in initializing the GL surface, and
    collecting graphics information. Records times up to three minutes.
  </summary>
</histogram>

<histogram name="GPU.InitializeOneOffTime" units="microseconds">
  <obsolete>
    Deprecated 4/2015.
  </obsolete>
  <owner>vmiura@chromium.org</owner>
  <summary>
    The time that the GPU process spends in initializing the GL surface, and
    collecting graphics information.
  </summary>
</histogram>

<histogram name="GPU.IOSurface.CATransactionTime" units="ms">
  <owner>ccameron@chromium.org</owner>
  <summary>
    The time that it took to update the CALayer tree and commit the transaction.
    This is often affected by IOSurface paging.
  </summary>
</histogram>

<histogram name="GPU.IOSurface.CreateTime" units="ms">
  <owner>ccameron@chromium.org</owner>
  <summary>
    The time that it took for a call to IOSurfaceCreate to complete.
  </summary>
</histogram>

<histogram name="GPU.IOSurface.GLFlushTime" units="ms">
  <owner>ccameron@chromium.org</owner>
  <summary>
    The time that it took for a call to glFlush to complete. This is often
    affected by IOSurface paging.
  </summary>
</histogram>

<histogram name="GPU.IOSurface.TexImageTime" units="ms">
  <owner>ccameron@chromium.org</owner>
  <summary>
    The time that it took for a call to CGLTexImageIOSurface2D to complete.
  </summary>
</histogram>

<histogram name="GPU.MaxMSAASampleCount" units="samples">
  <owner>senorblanco@chromium.org</owner>
  <summary>
    The maximum number of multisampled anti-aliasing (MSAA) samples per pixel
    that the user's GPU can render.
  </summary>
</histogram>

<histogram name="GPU.OopRaster.GlyphCacheMiss"
    enum="OopRasterGlyphCacheMissType">
  <owner>khushalsagar@chromium.org</owner>
  <summary>
    During OutOfProcess(Oop) raster, the renderer generates and sends the
    requisite glyph data for rasterizing a tile with the serialized paint
    commands. If the data for any glyph is missing, the GPU process attempts to
    use a fallback glyph from the cache. This records each time we encounter a
    cache miss on the GPU and whether we could use a fallback.
  </summary>
</histogram>

<histogram name="GPU.Output.ColorSpace" enum="DXGI_COLOR_SPACE_TYPE">
  <owner>hubbe@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records the output color space of the monitor as reported by Windows.
    Recorded once for each monitor when the gpu process starts. If monitor
    enumeration fails, this metric will not be provided.
  </summary>
</histogram>

<histogram name="GPU.Output.HDR" enum="Boolean">
  <owner>hubbe@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records if any connected monitor is HDR capable. Recorded when the gpu
    process starts. Only recorded on Windows as of M-61. If monitor enumeration
    fails, this metric will not be provided.
  </summary>
</histogram>

<histogram name="GPU.Output.MaxLuminance" units="lumens">
  <owner>hubbe@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records the display maximum lumens as reported by Windows. Recorded once for
    each monitor when the gpu process starts. If monitor enumeration fails, this
    metric will not be provided.
  </summary>
</histogram>

<histogram name="GPU.PassthroughDoLinkProgramTime" units="ms"
    expires_after="2019-09-08">
  <owner>jmadill@chromium.org</owner>
  <owner>jonahr@google.com</owner>
  <summary>
    The time we spend in GLES2DecoderPassthroughImpl::DoLinkProgram. Related to
    how much time we spend compiling shaders during startup.
  </summary>
</histogram>

<histogram name="GPU.ProcessLifetimeEvents.DisplayCompositor"
    enum="GPUProcessLifetimeEvent">
  <owner>vmiura@chromium.org</owner>
  <summary>
    Recorded once for every GPU process launch and crash when GPU process is
    started for the display compositor with software compositing. Crash buckets
    are based on crash count for disabling features. No hardware acceleration
    and no SwiftShader WebGL will be run.
  </summary>
</histogram>

<histogram name="GPU.ProcessLifetimeEvents.HardwareAccelerated"
    enum="GPUProcessLifetimeEvent">
  <owner>vmiura@chromium.org</owner>
  <summary>
    Recorded once for every GPU process launch and crash when GPU process is
    started for hardware accelerated GPU compositing and/or WebGL. Crash buckets
    are based on crash count for disabling features. With OOP-D enabled the
    display compositor also runs in the GPU process.
  </summary>
</histogram>

<histogram name="GPU.ProcessLifetimeEvents.SwiftShader"
    enum="GPUProcessLifetimeEvent">
  <owner>vmiura@chromium.org</owner>
  <summary>
    Recorded once for every GPU process launch and crash when GPU process is
    started for SwiftShader WebGL. Crash buckets are based on crash count for
    disabling features. With OOP-D enabled the display compositor with software
    compositing will also run as part of the GPU process.
  </summary>
</histogram>

<histogram name="GPU.ProgramCache.BinaryCacheHitTime" units="microseconds">
  <owner>vmiura@chromium.org</owner>
  <summary>
    The time to load a gpu program from the program cache.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="GPU.ProgramCache.BinaryCacheMissTime" units="microseconds">
  <owner>vmiura@chromium.org</owner>
  <summary>
    The time to link a gpu program.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="GPU.ProgramCache.CacheHit" enum="BooleanSuccess">
  <owner>jmadill@chromium.org</owner>
  <summary>
    If a successfully linked program was found in the GPU program cache during a
    program link call.
  </summary>
</histogram>

<histogram name="GPU.ProgramCache.CompilationCacheHitTime" units="microseconds">
  <owner>vmiura@chromium.org</owner>
  <summary>
    The time to check the program cache that we've already compiled the shader.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="GPU.ProgramCache.CompilationCacheMissTime"
    units="microseconds">
  <owner>vmiura@chromium.org</owner>
  <summary>
    The time to compile a shader.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="GPU.ProgramCache.CompressDataSuccess" units="BooleanSuccess">
  <owner>ericrk@chromium.org</owner>
  <summary>
    Whether we succeeded in compressing program data. Expected to always be
    true.
  </summary>
</histogram>

<histogram name="GPU.ProgramCache.CompressDataTime" units="microseconds">
  <owner>ericrk@chromium.org</owner>
  <summary>
    The time to compress a program's binary data during insertion into the
    program cache.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="GPU.ProgramCache.CompressionPercentage" units="%">
  <owner>ericrk@chromium.org</owner>
  <summary>
    The percentage of raw size that a program binary takes after compression.
  </summary>
</histogram>

<histogram name="GPU.ProgramCache.DecompressDataSuccess" units="BooleanSuccess">
  <owner>ericrk@chromium.org</owner>
  <summary>
    Whether we succeeded in decompressing program data. Failure indicates disk
    or memory corruption.
  </summary>
</histogram>

<histogram name="GPU.ProgramCache.DecompressDataTime" units="microseconds">
  <owner>ericrk@chromium.org</owner>
  <summary>
    The time to decompress a program's binary data during retrieval from the
    program cache.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="GPU.ProgramCache.LoadBinarySuccess" enum="BooleanSuccess">
  <owner>vmiura@chromium.org</owner>
  <summary>
    Records if the call to glProgramBinary was successful. This can legitimately
    fail if the driver wants chrome to re-link and re-cache the gpu program.
  </summary>
</histogram>

<histogram name="GPU.ProgramCache.MemoryReleasedOnPressure" units="KB">
  <owner>ssid@chromium.org</owner>
  <summary>
    Amount of memory released from the program cache on memory pressure.
  </summary>
</histogram>

<histogram name="GPU.ProgramCache.MemorySizeAfterKb" units="KB">
  <owner>vmiura@chromium.org</owner>
  <summary>
    Records the total in-memory cache size, before a program is cached. Can be
    used with GPU.ProgramCache.MemorySizeBeforeKb to find the maximum cache size
    distribution.
  </summary>
</histogram>

<histogram name="GPU.ProgramCache.MemorySizeBeforeKb" units="KB">
  <owner>vmiura@chromium.org</owner>
  <summary>
    Records the total in-memory cache size, after a program is cached. Can be
    used with GPU.ProgramCache.MemorySizeAfterKb to find the maximum cache size
    distribution.
  </summary>
</histogram>

<histogram name="GPU.ProgramCache.ProgramBinarySizeBytes" units="bytes">
  <owner>vmiura@chromium.org</owner>
  <summary>
    The size of program binaries loaded into the gpu program cache.
  </summary>
</histogram>

<histogram name="GPU.Sandbox.InitializedSuccessfully" enum="BooleanSuccess">
  <owner>piman@chromium.org</owner>
  <summary>
    Whether or not the GPU sandbox properly initialized. Failures are typically
    platform- and driver-specific (e.g. driver creating threads on Linux).
  </summary>
</histogram>

<histogram name="GPU.setIsAcceleratedCompositingActive"
    enum="GPUsetIsAcceleratedCompositingActive">
  <owner>vmiura@chromium.org</owner>
  <summary>
    Counts activation and deactivation of accelerated compositing.
  </summary>
</histogram>

<histogram name="GPU.ShaderLoadPrefixOK" enum="BooleanMatched">
  <owner>ericrk@chromium.org</owner>
  <summary>
    Whether or not the shader prefix loaded from disk matched the expected
    prefix for the data and system configuration. False indicates either disk
    corruption or a system configuration change, and should be rare.
  </summary>
</histogram>

<histogram name="GPU.SoftwareRendererLifetimeEvents"
    enum="GPUProcessLifetimeEvent">
  <obsolete>
    Never used.
  </obsolete>
  <owner>vmiura@chromium.org</owner>
  <summary>
    Counts of the number of gpu process crashes when the software rasterizer is
    enabled.
  </summary>
</histogram>

<histogram name="GPU.Stage3DFieldTrial" enum="BooleanEnabled">
  <owner>vmiura@chromium.org</owner>
  <summary>
    Records whether a client was selected for the Stage3D on XP field trial or
    not.
  </summary>
</histogram>

<histogram name="GPU.SupportsDX12" enum="BooleanSupported">
  <owner>vmiura@chromium.org</owner>
  <owner>magchen@chromium.org</owner>
  <summary>
    This metric shows whether the GPU supports D3D12. It is recorded 15 seconds
    after the browser launch.
  </summary>
</histogram>

<histogram name="GPU.SupportsVulkan" enum="BooleanSupported">
  <owner>vmiura@chromium.org</owner>
  <owner>magchen@chromium.org</owner>
  <summary>
    This metric shows whether the GPU supports Vulkan. It is recorded 15 seconds
    after the browser launch.
  </summary>
</histogram>

<histogram name="GPU.SurfaceCountAtExit">
  <obsolete>
    Deprecated 12/2012. Moved to GPU.AtExitSurfaceCount.
  </obsolete>
  <owner>vmiura@chromium.org</owner>
  <summary>
    The number of surfaces that the GPU process was rendering to right before
    exiting. This should be equal to the number of tabs (both visible and
    hidden) rendering via the compositor.
  </summary>
</histogram>

<histogram name="GPU.SurfaceOwner.AImageReader.AcquireImageResult"
    enum="MediaStatus" expires_after="2018-11-25">
  <owner>vikassoni@chromium.org</owner>
  <summary>
    Counts the error code which is returned when AImageReader api call
    acquireLatestImageAsync fails.
  </summary>
</histogram>

<histogram name="GPU.SwiftShaderLifetimeEvents" enum="GPUProcessLifetimeEvent">
  <obsolete>
    Deprecated 05/2018. Moved to GPU.ProcessLifetimeEvents.SwiftShader.
  </obsolete>
  <owner>capn@chromium.org</owner>
  <summary>
    Counts of the number of process launches and crashes (when running on s/w).
  </summary>
</histogram>

<histogram name="GPU.TextureR16Ext_LuminanceF16" enum="GpuTextureResultR16_L16">
  <owner>hubbe@chromium.org</owner>
  <owner>rijubrata.bhaumik@intel.com</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Whether LUMINANCE_F16 and/or R16_EXT texture support is available. Recorded
    each time a new context group is initialized and extensions are detected.
  </summary>
</histogram>

<histogram name="GPU.TextureRG" enum="BooleanAvailable">
  <owner>reveman@chromium.org</owner>
  <summary>
    Whether RG texture support is available. Recorded each time a new context
    group is initialized and extensions are detected.
  </summary>
</histogram>

<histogram name="GPU.ThreeDAPIInfoBarDismissal"
    enum="GPUThreeDAPIInfoBarDismissal">
  <obsolete>
    Deprecated 04/2018. Infobar has been removed.
  </obsolete>
  <owner>vmiura@chromium.org</owner>
  <summary>Counts user actions when a 3D API info bar is raised.</summary>
</histogram>

<histogram name="GPU.VulkanExtSupport.VK_KHR_external_memory_win32"
    enum="BooleanSupported">
  <owner>vmiura@chromium.org</owner>
  <owner>magchen@chromium.org</owner>
  <summary>
    Whether the Vulkan extension VK_KHR_external_memory_win32 is supported in
    the GPU drivers. It is recorded 15 seconds after the browser launch.
  </summary>
</histogram>

<histogram name="GPU.VulkanExtSupport.VK_KHR_external_semaphore_win32"
    enum="BooleanSupported">
  <owner>vmiura@chromium.org</owner>
  <owner>magchen@chromium.org</owner>
  <summary>
    Whether the Vulkan extension VK_KHR_external_semaphore_win32 is supported in
    the GPU drivers. It is recorded 15 seconds after the browser launch.
  </summary>
</histogram>

<histogram name="GPU.VulkanExtSupport.VK_KHR_win32_keyed_mutex"
    enum="BooleanSupported">
  <owner>vmiura@chromium.org</owner>
  <owner>magchen@chromium.org</owner>
  <summary>
    Whether the Vulkan extension VK_KHR_win32_keyed_mutex is supported in the
    GPU drivers. It is recorded 15 seconds after the browser launch.
  </summary>
</histogram>

<histogram name="GPU.VulkanVersion" enum="VulkanVersion">
  <owner>vmiura@chromium.org</owner>
  <owner>magchen@chromium.org</owner>
  <summary>
    The maximum Vulkan API version supported in the gpu drivers. It is recorded
    15 seconds after the browser launch.
  </summary>
</histogram>

<histogram name="GPU.WaitForVBlankErrorCode" enum="WaitForVBlankErrorCode">
  <owner>stanisc@chromium.org</owner>
  <summary>
    Whether WaitForVBlank operation has been successful or failed with one of
    the errors prompting a backup delay based v-sync mechanism. Recorded each
    time a new GPU v-sync signal is generated.
  </summary>
</histogram>

<histogram name="GPU.WebGraphicsContext3D_Init_CanLoseContext"
    enum="GPUWebGraphicsContext3D_Init_CanLoseContext">
  <owner>vmiura@chromium.org</owner>
  <summary>
    Counts of context initialization that succeed or fail based on combinations
    of attributes requiring canRecoverFromContextLoss and devices that report
    can_lose_context. Failing Init is desired when a device can not guarantee it
    won't fail for a user that can not handle failures, e.g. DX9 on WinXP used
    by Canvas2D'
  </summary>
</histogram>

<histogram name="GPU.WinSAT.GamingScore">
  <owner>vmiura@chromium.org</owner>
  <summary>
    The WinSAT (Windows System Assessment Tool) gaming graphics score. It is in
    the range 1.0-5.9 on Vista, 1.0-7.9 on Win7 and 1.0-9.9 on Win8. 0
    represents a failure to get the score. This is collected each time Chrome is
    launched.
  </summary>
</histogram>

<histogram name="GPU.WinSAT.GamingScore2">
  <owner>vmiura@chromium.org</owner>
  <summary>
    The WinSAT (Windows System Assessment Tool) gaming graphics score, scaled by
    10x. It is in the range 10-59 on Vista, 10-79 on Win7 and 10-99 on Win8. 0
    represents a failure to get the score. This is collected each time Chrome is
    launched.
  </summary>
</histogram>

<histogram name="GPU.WinSAT.GraphicsScore">
  <owner>vmiura@chromium.org</owner>
  <summary>
    The WinSAT (Windows System Assessment Tool) graphics score. It is in the
    range 1.0-5.9 on Vista, 1.0-7.9 on Win7 and 1.0-9.9 on Win8. 0 represents a
    failure to get the score. This is collected each time Chrome is launched.
  </summary>
</histogram>

<histogram name="GPU.WinSAT.GraphicsScore2">
  <owner>vmiura@chromium.org</owner>
  <summary>
    The WinSAT (Windows System Assessment Tool) graphics score, scaled by 10x.
    It is in the range 10-59 on Vista, 10-79 on Win7 and 10-99 on Win8. 0
    represents a failure to get the score. This is collected each time Chrome is
    launched.
  </summary>
</histogram>

<histogram name="GPU.WinSAT.HasResults" enum="BooleanSuccess">
  <owner>vmiura@chromium.org</owner>
  <summary>
    A boolean representing whether or not we succeeded in getting the system's
    WinSAT scores. This is collected each time Chrome is launched.
  </summary>
</histogram>

<histogram name="GPU.WinSAT.OverallScore">
  <owner>vmiura@chromium.org</owner>
  <summary>
    The WinSAT (Windows System Assessment Tool) overall system score. This is
    the minimum of all the individual subscores. It is in the range 1.0-5.9 on
    Vista, 1.0-7.9 on Win7 and 1.0-9.9 on Win8. 0 represents a failure to get
    the score. This is collected each time Chrome is launched.
  </summary>
</histogram>

<histogram name="GPU.WinSAT.OverallScore2">
  <owner>vmiura@chromium.org</owner>
  <summary>
    The WinSAT (Windows System Assessment Tool) overall system score, scaled by
    10x. This is the minimum of all the individual subscores. It is in the range
    10-59 on Vista, 10-79 on Win7 and 10-99 on Win8. 0 represents a failure to
    get the score. This is collected each time Chrome is launched.
  </summary>
</histogram>

<histogram name="GPU.WinSAT.ReadResultsFileTime" units="microseconds">
  <owner>vmiura@chromium.org</owner>
  <summary>
    The amount of time it takes to read the WinSAT results. This is collected
    each time Chrome is launched.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Graphics.PresentationTimestamp.InvalidBeforeSwap" units="ms"
    expires_after="2019-03-31">
  <owner>sadrul@chromium.org</owner>
  <summary>
    Presentation timestamp comes from the driver when showing a display frame on
    screen. These timestamps could be invalid, and be earlier than the swap
    time. This metric records how much time before the swap-time such invalid
    timestamps are. If the presentation timestamp is after the swap-time, then
    this metric is not recorded.
  </summary>
</histogram>

<histogram name="Graphics.PresentationTimestamp.InvalidFromFuture" units="ms"
    expires_after="2019-03-31">
  <owner>sadrul@chromium.org</owner>
  <summary>
    Presentation timestamp comes from the driver when showing a display frame on
    screen. These timestamps can sometimes be in the future. This metric records
    how far in the future these timestamps can be. If the timestamp is not in
    the future, then this metric is not recorded.
  </summary>
</histogram>

<histogram name="Graphics.PresentationTimestamp.LargePresentationDelta"
    units="ms">
  <owner>sadrul@chromium.org</owner>
  <summary>
    Measures very large (more than 3 minutes) delay in presenting display
    frames. Presentation timestamp comes from the driver when showing a display
    frame on screen. There are times when the presentation can be delayed a long
    time. This metric reports how often this can happen. This is reported only
    if the presentation takes 3 minutes or more.
  </summary>
</histogram>

<histogram name="GraphicsPipeline.ReceivedBeginFrame" units="microseconds">
  <owner>yiyix@chromium.org</owner>
  <owner>chrome-gpu-metrics@google.com</owner>
  <summary>
    The amount of time it takes for the BeginFrame to travel to the Client from
    the DisplayCompositor.

    Note that this metrics is only recorded on clients on which a
    high-resolution clock is available
  </summary>
</histogram>

<histogram name="GraphicsPipeline.SubmitCompositorFrameAfterBeginFrame"
    units="microseconds">
  <owner>yiyix@chromium.org</owner>
  <owner>chrome-gpu-metrics@google.com</owner>
  <summary>
    How long the client takes to prepare a compositor frame after receiving a
    BeginFrameArgs.

    Note that this is only recorded on clients on which a high-resolution clock
    is available.
  </summary>
</histogram>

<histogram name="GwpAsan.CrashAnalysisResult" enum="GwpAsanCrashAnalysisResult"
    expires_after="M76">
  <owner>vtsyrklevich@chromium.org</owner>
  <owner>dynamic-tools@google.com</owner>
  <summary>
    Reports the GWP-ASan crash analysis result. That can either be a
    determination that the crash was related to GWP-ASan, not related to
    GWP-ASan, or an error making that determination. Recorded with every crash.
  </summary>
</histogram>

<histogram name="Hardware.Display.Count.OnChange">
  <owner>erikchen@chromium.org</owner>
  <summary>
    The number of displays present right after the user has attached or detached
    a new display. Excludes mirrored displays, but includes sleeping displays.
  </summary>
</histogram>

<histogram name="Hardware.Display.Count.OnStartup">
  <owner>erikchen@chromium.org</owner>
  <summary>
    The number of displays present at start up. Excludes mirrored displays, but
    includes sleeping displays.
  </summary>
</histogram>

<histogram name="Hardware.Drive.HasSeekPenalty" enum="BooleanHasSeekPenalty">
  <owner>dbeam@chromium.org</owner>
  <summary>
    Whether a drive has a seek penalty (i.e. is a spinning disk). Emitted 0-2
    times shortly after startup when constructing the initial UMA log.
  </summary>
</histogram>

<histogram name="Hardware.Drive.HasSeekPenalty_Success" enum="BooleanSuccess">
  <owner>dbeam@chromium.org</owner>
  <summary>
    Whether it was possible to determine if a drive has a seek penalty. This can
    fail for various reasons (device drivers don't offer this information, the
    drive is still mounting, lack of access, etc.). Emitted twice shortly after
    startup when constructing the initial UMA log.

    Seek penalty detection is disabled on XP/Vista as of 9/24/2015 because it
    crashes too much. http://crbug.com/514822
  </summary>
</histogram>

<histogram name="Hardware.Drive.HasSeekPenalty_Time" units="ms">
  <owner>dbeam@chromium.org</owner>
  <summary>
    The amount of time it takes to determine whether a drive has a seek penalty.
    Emitted twice shortly after startup when constructing the initial UMA log.
  </summary>
</histogram>

<histogram name="Hardware.Serial.NewMinusOldDeviceListSize">
  <owner>charliea@chromium.org</owner>
  <summary>
    On Windows and Mac, we're implementing new methods to enumerate serial
    devices that provide us more information about the actual devices. This
    metric measures the difference between the number of devices that the new
    and old enumeration methods find. Once this metric gives us confidence that
    the new and old methods are at parity, we can cut out the old method
    altogether.
  </summary>
</histogram>

<histogram name="HeavyPageCapping.BlacklistReason" enum="OptOutBlacklistReason"
    expires_after="M75">
  <owner>ryansturm@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records that the capping heavy pages InfoBar was allowed or the specific
    reason that the feature was blacklisted from heavy page capping. Recorded
    when the triggering threshold is met for users with capping heavy pages
    enabled. Reasons are ordered in the same order they are checked.
  </summary>
</histogram>

<histogram name="HeavyPageCapping.InfoBarInteraction"
    enum="HeavyPageCappingInfoBarInteraction" expires_after="M75">
  <owner>ryansturm@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the details of user interaction with the heavy page capping InfoBar.
  </summary>
</histogram>

<histogram name="HeavyPageCapping.RecordedDataSavings" units="KB"
    expires_after="M75">
  <owner>ryansturm@chromium.org</owner>
  <summary>
    Records the data savings due to heavy page capping. This is recorded when
    the page is being terminated. This is not recorded when the tab is
    backgrounded, so android fast shutdown may result in this metric not being
    recorded. This is only recorded for page loads that were still paused when
    the page was terminated.
  </summary>
</histogram>

<histogram name="HIDDetection.OOBEDevicesDetectedOnContinuePressed"
    enum="HIDContinueScenarioType">
  <owner>alemate@chromium.org</owner>
  <summary>
    Which HID were detected when user pressed Continue on OOBE dialog. This
    metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="HIDDetection.OOBEDialogShown">
  <owner>alemate@chromium.org</owner>
  <summary>
    Whether HID detection dialog was shown on OOBE. Logged on screen show or on
    screen skip respectively. This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="HIDDetection.TimesDialogShownPerOOBECompleted">
  <owner>alemate@chromium.org</owner>
  <summary>
    Records number of times the dialog was shown by the time OOBE is completed.
    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="Histogram.BadConstructionArguments" enum="HistogramNameHash">
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    The hash codes of histograms that were found to have bad construction
    arguments. These would be DCHECK exceptions in debug builds but have simply
    been logged and corrected as best as possible rather than crash.
  </summary>
</histogram>

<histogram name="Histogram.InconsistenciesBrowser" enum="Inconsistencies">
  <obsolete>
    Deprecated 7/2017.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The number of inconsistency events found when examining a single histogram's
    data in a browser for transmission via UMA. Inconsistent data is NOT
    transmitted via UMA. Each type of inconsistency is a bit, and all bits found
    in one histogram examination are added together to summarize the
    inconsistent event. Note that the same inconsistency MAY appear time and
    again as the same corrupt histogram is examined for each potenital UMA
    upload.
  </summary>
</histogram>

<histogram name="Histogram.InconsistenciesBrowserUnique" enum="Inconsistencies">
  <obsolete>
    Deprecated 7/2017.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The number of inconsistency events found when examining a single histogram's
    data in a browser for transmission via UMA. Inconsistent data is NOT
    transmitted via UMA. Each type of inconsistency is a bit, and all bits found
    in one histogram examination are added together to summarize the
    inconsistent event. Note that the same inconsistency will only appear at
    most one time for each histogram in a single process (i.e., duplicate
    corruption in a single histogram is not noted in this chart.)
  </summary>
</histogram>

<histogram name="Histogram.InconsistenciesChildProcess" enum="Inconsistencies">
  <obsolete>
    Deprecated 7/2017.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The number of inconsistency events found when examining a single histogram's
    data in a child process for transmission via UMA. Inconsistent data is NOT
    transmitted via UMA. Each type of inconsistency is a bit, and all bits found
    in one histogram examination are added together to summarize the
    inconsistent event. Note that the same inconsistency MAY appear time and
    again as the same corrupt histogram is examined for each potenital UMA
    upload.
  </summary>
</histogram>

<histogram name="Histogram.InconsistenciesChildProcessUnique"
    enum="Inconsistencies">
  <obsolete>
    Deprecated 7/2017.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The number of inconsistency events found when examining a single histogram's
    data in a child process for transmission via UMA. Inconsistent data is NOT
    transmitted via UMA. Each type of inconsistency is a bit, and all bits found
    in one histogram examination are added together to summarize the
    inconsistent event. Note that the same inconsistency will only appear at
    most one time for each histogram in a single process (i.e., duplicate
    corruption in a single histogram is not noted in this chart.)
  </summary>
</histogram>

<histogram name="Histogram.InconsistenciesRenderer" enum="Inconsistencies">
  <obsolete>
    Deprecated 7/2012.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The number of inconsistency events found when examining a single histogram's
    data in a renderer for transmission to the browser. Inconsistent data is NOT
    transmitted to the browser. Each type of inconsistency is a bit, and all
    bits found in one histogram examination are added together to summarize the
    inconsistent event. Note that the same inconsistency MAY appear time and
    again as the same corrupt histogram is examined for each potenital UMA
    upload.
  </summary>
</histogram>

<histogram name="Histogram.InconsistenciesRendererUnique"
    enum="Inconsistencies">
  <obsolete>
    Deprecated 7/2012.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The number of inconsistency events found when examining a single histogram's
    data in a renderer for transmission to the browser. Inconsistent data is NOT
    transmitted to the browser. Each type of inconsistency is a bit, and all
    bits found in one histogram examination are added together to summarize the
    inconsistent event. Note that the same inconsistency will only appear at
    most one time for each histogram in a single renderer process (i.e.,
    duplicate corruption in a single histogram is not noted in this chart.)
  </summary>
</histogram>

<histogram name="Histogram.InconsistentCountHigh">
  <obsolete>
    Deprecated 7/2017.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The number of extra samples counted in the redundant_count in a histogram
    that were not found by summing the samples in the buckets.
  </summary>
</histogram>

<histogram name="Histogram.InconsistentCountLow">
  <obsolete>
    Deprecated 7/2017.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The number of missing samples in the redundant_count in a histogram that
    were found by summing the samples in the buckets.
  </summary>
</histogram>

<histogram name="Histogram.InconsistentSnapshotBrowser">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The amount of discrepancy found when examining a single histogram's data in
    the browser process for transmission via UMA. Inconsistent data is NOT
    transmitted via UMA.
  </summary>
</histogram>

<histogram name="Histogram.InconsistentSnapshotChildProcess">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The amount of discrepancy found when examining a single histogram's data in
    a child process for transmission via UMA. Inconsistent data is NOT
    transmitted via UMA.
  </summary>
</histogram>

<histogram name="Histogram.InconsistentSnapshotRenderer">
  <obsolete>
    Deprecated 7/2012.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The amount of discrepancy found when examining a single histogram's data in
    a renderer process for transmission via UMA. Inconsistent data is NOT
    transmitted via UMA.
  </summary>
</histogram>

<histogram name="Histogram.MismatchedConstructionArguments"
    enum="HistogramNameHash">
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    The hash codes of histograms that were found to have construction arguments
    different from a previous instantiation of the same name. Entries here have
    conflicting definitions and should be investigated. Data collected for the
    secondary definitions will be silently dropped.
  </summary>
</histogram>

<histogram name="Histogram.PermanentNameChanged" enum="HistogramNameHash">
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    The hash codes of histograms of which the external name storage was altered
    after the histogram was created.
  </summary>
</histogram>

<histogram name="Histogram.TooManyBuckets.1000" enum="HistogramNameHash"
    expires_after="M75">
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    The hash codes of histograms that were found to request more than 1000
    buckets. These would be DCHECK exceptions in debug builds if the limit is
    lowered so are being logged before that change.
  </summary>
</histogram>

<histogram name="History.AttemptedToFixProfileError">
  <owner>sky@chromium.org</owner>
  <owner>sdefresne@chromium.org</owner>
  <summary>
    Logged whenever history database initialization fails. The frequency of
    logging will tell you the total failure rate. True indicate that we think
    the database is non-recoverable and it will be deleted. It should be
    re-created the next time Chrome is started. False indicates we think the
    error is temporary (like out of disk space or file locked). Chrome will run
    with no history database and nothing will be done to try to fix the error.
    See History.InitializationFailureStep for which particular step of history
    initialization failed.
  </summary>
</histogram>

<histogram name="History.ClearBrowsingData.Duration.FullDeletion" units="ms">
  <owner>dullweber@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <summary>
    The time that passed while performing a full browsing data deletion.
  </summary>
</histogram>

<histogram name="History.ClearBrowsingData.Duration.PartialDeletion" units="ms">
  <owner>dullweber@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <summary>
    The time that passed while performing a browsing data deletion for a
    restricted amount of time (e.g. &quot;Last hour&quot;) or with an origin
    filter.
  </summary>
</histogram>

<histogram
    name="History.ClearBrowsingData.HistoryNoticeShownInFooterWhenUpdated"
    enum="BooleanShown">
  <owner>msramek@chromium.org</owner>
  <summary>
    Whether a notice about other forms of browsing history was shown in the
    footer of the Clear Browsing Data dialog. This is recorded every time the
    dialog is opened.
  </summary>
</histogram>

<histogram name="History.ClearBrowsingData.ImportantDeselectedNum">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Recorded when the user presses the 'clear' button when presented with the
    list of important sites they might want to exclude from clearing browsing
    data. We record the number of sites the user deselected, or protected, from
    clearing. The default has all sites selected.
  </summary>
</histogram>

<histogram name="History.ClearBrowsingData.ImportantDeselectedPercent"
    units="%/5">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Recorded when the user presses the 'clear' button when presented with the
    list of important sites they might want to exclude from clearing browsing
    data. We record the percent of sites the user deselected, or protected, from
    clearing. The default has all sites selected, which is 0%. Note: To reduce
    the number of empty buckets, the percent is divided by 5.
  </summary>
</histogram>

<histogram name="History.ClearBrowsingData.ImportantDialogShown"
    enum="BooleanShown">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Recorded when the user presses the 'clear' button in the clear browsing
    dialog. We record 'true' if the important sites dialog is shown.
  </summary>
</histogram>

<histogram name="History.ClearBrowsingData.NumImportant">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Recorded when we successfuly fetched important sites in the clear browsing
    data screen. This is the number of sites that we think are important to the
    user.
  </summary>
</histogram>

<histogram
    name="History.ClearBrowsingData.PasswordsDeletion.AdditionalDatatypesCount">
  <owner>msramek@chromium.org</owner>
  <summary>
    Recorded when the user deletes their passwords in the ClearBrowsingData
    dialog. Counts how many other data types were selected for deletion.
  </summary>
</histogram>

<histogram name="History.ClearBrowsingData.ShownHistoryNoticeAfterClearing"
    enum="BooleanShown">
  <owner>msramek@chromium.org</owner>
  <summary>
    Whether a dialog with a notice about other forms of browsing history was
    shown after the user deleted data from the Clear Browsing Data dialog.
  </summary>
</histogram>

<histogram name="History.ClearBrowsingData.SpannableStringAppliedCorrectly"
    enum="Boolean">
  <owner>dullweber@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <summary>
    Track whether the SpannableString is applied correctly in
    ClearBrowsingDataCheckbox.java. (crbug.com/783866)
  </summary>
</histogram>

<histogram name="History.ClearBrowsingData.TaskQueueAtShutdown">
  <owner>dullweber@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <summary>
    The number of tasks that are in the task queue when the BrowsingDataRemover
    is destroyed.
  </summary>
</histogram>

<histogram name="History.ClearBrowsingData.TimeSpentInDialog" units="ms">
  <owner>dullweber@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <summary>
    Time spent in Clear Browsing Data dialog. From opening the dialog until data
    is cleared. This does not record users who exit the dialog without clearing.
  </summary>
</histogram>

<histogram name="History.ClearBrowsingData.UserDeletedCookieOrCache"
    enum="CookieOrCacheDeletion">
  <owner>msramek@chromium.org</owner>
  <summary>
    Recorded when the user deletes their browsing data. Shows whether cookies
    and/or cache were among the selected data types.
  </summary>
</histogram>

<histogram name="History.ClearBrowsingData.UserDeletedCookieOrCacheFromDialog"
    enum="CookieOrCacheDeletion">
  <owner>msramek@chromium.org</owner>
  <summary>
    Recorded when the user deletes their browsing data manually from the
    ClearBrowsingData dialog. Shows whether cookies and/or cache were among the
    selected data types.
  </summary>
</histogram>

<histogram name="History.ClearBrowsingData.UserDeletedFromTab"
    enum="ClearBrowsingDataTab">
  <owner>dullweber@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <summary>
    Recorded when the user deletes their browsing data. Shows which tab was used
    to perform the deletion.
  </summary>
</histogram>

<histogram name="History.DatabaseAdvancedMetricsTime" units="ms">
  <owner>shess@chromium.org</owner>
  <summary>
    Time spent on advanced History DB metrics calculation (weekly and monthly
    URL, host, and category counts). Advanced metrics are logged on
    initialization of the History DB on 0.3% of starts.
  </summary>
</histogram>

<histogram name="History.DatabaseBasicMetricsTime" units="ms">
  <owner>shess@chromium.org</owner>
  <summary>
    Time spent on basic History DB metrics calculation (file size and table
    counts). Basic metrics are logged on initialization of the History DB on 1%
    of starts.
  </summary>
</histogram>

<histogram name="History.DatabaseFileMB" units="MB">
  <owner>shess@chromium.org</owner>
  <summary>
    Size of History DB file. Duplicate of Profile.HistorySize and
    Sqlite.SizeKB.History. Logged on initialization of the History DB on 1% of
    starts.
  </summary>
</histogram>

<histogram name="History.DatabaseMonthlyHostCountTime" units="ms">
  <owner>dimich@chromium.org</owner>
  <summary>
    Time spent on computing the monthly count of hosts visited. Reported every
    time computation is performed, which in turn is done approximately weekly.
  </summary>
</histogram>

<histogram name="History.DeleteFTSIndexDatabases" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Count of &quot;History Index *&quot; databases deleted. These databases
    stored the full-text-search data for history, which was removed at r213442,
    this histogram tracks cleanup.
  </summary>
</histogram>

<histogram name="History.ExpireVisits.GetRedirectsDurationPercentage" units="%">
  <owner>calamity@chromium.org</owner>
  <summary>
    The percentage of time taken in ExpireHistoryBackend::ExpireVisits for
    calculating the redirect parent.
  </summary>
</histogram>

<histogram name="History.ExpireVisits.TotalDuration" units="ms">
  <owner>calamity@chromium.org</owner>
  <summary>
    The time taken to expire a list of visits. This is not scaled to the number
    of visits deleted, but gives an idea of how long a single request to
    ExpireHistoryBackend::ExpireVisits takes.
  </summary>
</histogram>

<histogram name="History.FaviconDatabaseAdvancedMetricsTime" units="ticks">
  <owner>rogerm@chromium.org</owner>
  <summary>
    The wall-clock time taken to gather favicon database metrics. Metrics are
    logged on initialization of the Favicon DB on 1% of starts.
  </summary>
</histogram>

<histogram name="History.FaviconDatabaseSizeMB" units="MB">
  <owner>rogerm@chromium.org</owner>
  <summary>
    Size of the Favicons database in MB. This is calculated as the number of
    pages consumed by the database multiplied by the page size. Logged on
    initialization of the Favicon DB on 1% of starts.
  </summary>
</histogram>

<histogram name="History.FaviconsRecoveredPercentage" units="%">
  <obsolete>
    No longer tracked as of March 2017.
  </obsolete>
  <owner>rpop@google.com</owner>
  <summary>
    Size of the recovered Favicons database relative to the original corrupt
    database. Recovery is VACUUM-like, so the resulting database should always
    be smaller. Substantial 100% results would indicate empty databases being
    recovered, substantial low% results would indicate very little data being
    recovered.
  </summary>
</histogram>

<histogram name="History.FaviconsRecoveredRowsFaviconBitmaps">
  <obsolete>
    No longer tracked as of March 2017.
  </obsolete>
  <owner>rpop@google.com</owner>
  <summary>
    Rows recovered from [favicon_bitmaps] table in Favicons recovery.
  </summary>
</histogram>

<histogram name="History.FaviconsRecoveredRowsFavicons">
  <obsolete>
    No longer tracked as of March 2017.
  </obsolete>
  <owner>rpop@google.com</owner>
  <summary>Rows recovered from [favicons] table in Favicons recovery.</summary>
</histogram>

<histogram name="History.FaviconsRecoveredRowsIconMapping">
  <obsolete>
    No longer tracked as of March 2017.
  </obsolete>
  <owner>rpop@google.com</owner>
  <summary>
    Rows recovered from [icon_mapping] table in Favicons recovery.
  </summary>
</histogram>

<histogram name="History.FaviconsRecovery" enum="HistoryFaviconsRecoveryEnum">
  <obsolete>
    No longer tracked as of March 2017.
  </obsolete>
  <owner>rpop@google.com</owner>
  <summary>
    Track results of SQLite database recovery code in thumbnail_database.cc.
  </summary>
</histogram>

<histogram name="History.FirstSetTopSitesDeltaSize">
  <owner>yiyaoliu@chromium.org</owner>
  <summary>
    The count of differences between cached top sites and up-to-date top sites
    when function TopSitesImpl::SetTopSites is firstly called at startup.
  </summary>
</histogram>

<histogram name="History.FirstUpdateTime" units="ms">
  <owner>yiyaoliu@chromium.org</owner>
  <summary>
    The amount of time for function
    history::TopSitesBackend::UpdateTopSitesOnDBThread to execute when this
    function is called during startup. Excludes the case where local
    TopSitesDatabase db_ is unavailable, i.e. where the update doesn't really
    happen.
  </summary>
</histogram>

<histogram name="History.HistoryPageView" enum="HistoryPageView"
    expires_after="2020-03-01">
  <owner>calamity@chromium.org</owner>
  <summary>
    The page of the History page shown to the user. Logged each time the user
    loads the History page or switches pages.
  </summary>
</histogram>

<histogram name="History.HistoryServiceInitTime" units="ms">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during HistoryService::Init.
  </summary>
</histogram>

<histogram name="History.InitializationFailureStep" enum="HistoryInitStep">
  <owner>sky@chromium.org</owner>
  <owner>sdefresne@chromium.org</owner>
  <summary>
    The phase of history initialization that failed. This histogram is only
    logged on database initialization failure.
    History.AttemptedToFixProfileError will tell how often initialization fails
    overall.
  </summary>
</histogram>

<histogram name="History.InMemoryDBItemCount">
  <owner>gab@chromium.org</owner>
  <summary>
    The number of typed URLs in the history database that are read into the
    &quot;in memory&quot; history database. This in memory copy of the typed
    URLs is used for synchronous inline autocomplete on the UI thread, while the
    larger slower service is run off of disk on a background thread. Recorded on
    profile open.
  </summary>
</histogram>

<histogram name="History.InMemoryDBKeywordTermsCount">
  <owner>gab@chromium.org</owner>
  <summary>
    Number of items in in-memory keyword_search_terms table. Recorded on profile
    open.
  </summary>
</histogram>

<histogram name="History.InMemoryDBKeywordTermsPopulate" units="ms"
    expires_after="2018-08-30">
  <owner>gab@chromium.org</owner>
  <summary>
    Time to load in-memory keyword_search_terms table from disk. Recorded on
    profile open.
  </summary>
</histogram>

<histogram name="History.InMemoryDBKeywordURLItemCount">
  <owner>gab@chromium.org</owner>
  <summary>
    Number of items in in-memory urls table. Recorded on profile open.
  </summary>
</histogram>

<histogram name="History.InMemoryDBKeywordURLPopulate" units="ms"
    expires_after="2018-08-30">
  <owner>gab@chromium.org</owner>
  <summary>
    Time to load in-memory urls table from disk urls table. Recorded on profile
    open.
  </summary>
</histogram>

<histogram name="History.InMemoryDBPopulate">
  <owner>gab@chromium.org</owner>
  <summary>
    The time it takes to read the typed URLs from the main history database into
    the &quot;in memory&quot; history database. This in memory copy of the typed
    URLs is used for synchronous inline autocomplete on the UI thread, while the
    larger slower service is run off of disk on a background thread. Recorded on
    profile open.
  </summary>
</histogram>

<histogram name="History.InMemoryTypedUrlVisitCount">
  <owner>gab@chromium.org</owner>
  <summary>
    The sum of the visit_count fields for all URLs in the &quot;in memory&quot;
    history database. This corresponds to the number of times the user has
    visited the typed URLs in the last 30 days (excluding page reloads, since
    the history database does not increment the visit_count in that case).
    Recorded on profile open.
  </summary>
</histogram>

<histogram name="History.InMemoryURLCacheSize" units="bytes">
  <owner>mpearson@chromium.org</owner>
  <summary>
    Size of on-disk cache for in-memory url index. Recorded on profile open when
    restoring from a cache file.
  </summary>
</histogram>

<histogram name="History.InMemoryURLChars">
  <owner>mpearson@chromium.org</owner>
  <summary>
    Number of items in the in-memory url index char_word_map_. Recorded on
    profile open when restoring from a cache file and again shortly after
    profile open when rebuilding the in-memory url index from history.
  </summary>
</histogram>

<histogram name="History.InMemoryURLHistoryItems">
  <owner>mpearson@chromium.org</owner>
  <summary>
    Number of history items in the in-memory url index. Recorded on profile open
    when restoring from a cache file and again shortly after profile open when
    rebuilding the in-memory url index from history.
  </summary>
</histogram>

<histogram name="History.InMemoryURLIndexingTime" units="ms"
    expires_after="2019-08-30">
  <owner>mpearson@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    Time to rebuild in-memory url index from main history database. Recorded
    once shortly after profile open.
  </summary>
</histogram>

<histogram name="History.InMemoryURLIndexRestoreCacheTime" units="ms"
    expires_after="2019-08-30">
  <owner>mpearson@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    Time to restore the in-memory url index from disk cache. Recorded on profile
    open.
  </summary>
</histogram>

<histogram name="History.InMemoryURLIndexSaveCacheTime" units="ms"
    expires_after="2019-08-30">
  <owner>mpearson@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    Time to write in-memory url index to disk cache. Recorded once shortly after
    profile open (after rebuilding the in-memory url index from history) and
    again upon (clean) shutdown.
  </summary>
</histogram>

<histogram name="History.InMemoryURLWords">
  <owner>mpearson@chromium.org</owner>
  <summary>
    Number of items in in-memory url index word_map_. Recorded on profile open
    when restoring from a cache file and again shortly after profile open when
    rebuilding the in-memory url index from history.
  </summary>
</histogram>

<histogram name="History.MigrateFailureFromVersion">
  <owner>sky@chromium.org</owner>
  <owner>sdefresne@chromium.org</owner>
  <summary>
    History database version from which history migration failed. If there are
    higher than normal migration failures, this histogram will indicate which
    migration step failed.
  </summary>
</histogram>

<histogram name="History.MonthlyHostCount" units="hosts">
  <owner>sbirch@google.com</owner>
  <summary>
    Unique hostnames in History database urls table with last-visit times in the
    last 30 days. Metrics are logged on initialization of the History DB on 0.3%
    of starts. See also ExploreSites.MonthlyHostCount metric which is similar
    but is reported on a elapsed time basis to help avoid bias toward more
    active users.
  </summary>
</histogram>

<histogram name="History.MonthlyURLCount" units="urls">
  <owner>sbirch@google.com</owner>
  <summary>
    Unique URLs in History database urls table with last-visit times in the last
    30 days. Metrics are logged on initialization of the History DB on 0.3% of
    starts.
  </summary>
</histogram>

<histogram name="History.MonthlyVisitCount" units="visits">
  <owner>sbirch@google.com</owner>
  <summary>
    Number of rows in History visits table with visit times in the last 30 days.
    Metrics are logged on initialization of the History DB on 1% of starts.
  </summary>
</histogram>

<histogram name="History.NumFaviconBitmapsInDB">
  <owner>rogerm@chromium.org</owner>
  <summary>
    The total number of favicon bitmaps (of all sizes) cached in a user's
    Favicon database. A given favicon URL may be associated with multiple
    bitmaps (of different sizes). Logged on initialization of the Favicon DB on
    1% of starts.
  </summary>
</histogram>

<histogram name="History.NumFaviconMappingsInDB">
  <owner>rogerm@chromium.org</owner>
  <summary>
    The number of page URL (e.g., http://www.google.com) to favicon URL (e.g.,
    http://www.google.com/favicon.ico) mappings stored in a user's Favicon
    database. Logged on initialization of the Favicon DB on 1% of starts.
  </summary>
</histogram>

<histogram name="History.NumFaviconsInDB">
  <owner>rogerm@chromium.org</owner>
  <summary>
    The total number of favicon URLs (e.g. http://www.google.com/favicon.ico)
    tracked in a user's Favicon database. This metric tracks knowledge of a
    favicon URL not whether there are cached bitmaps for that favicon URL. See
    History.NumFaviconBitmapsInDB for that. Logged on initialization of the
    Favicon DB on 1% of starts.
  </summary>
</histogram>

<histogram name="History.NumLargeFaviconBitmapsInDB">
  <owner>rogerm@chromium.org</owner>
  <summary>
    The total number of large (&gt;= 64 pixels wide) favicons being tracked in a
    user's Favicon database. This is a subset of History.NumFaviconBitmapsInDB,
    which includes all sizes in its count. Logged on initialization of the
    Favicon DB on 1% of starts.
  </summary>
</histogram>

<histogram name="History.NumTouchIconsInDB">
  <owner>rogerm@chromium.org</owner>
  <summary>
    The total number of touch icons being tracked in a user's Favicon database.
    This is a subset of History.NumFaviconsInDB, which includes all icon types
    in its count. Logged on initialization of the Favicon DB on 1% of starts.
  </summary>
</histogram>

<histogram name="History.QueryMostVisitedURLsTime" units="ms">
  <owner>chengx@chromium.org</owner>
  <summary>
    The amount of time for function HistoryBackend::QueryMostVisitedURLs to
    execute. Excludes the case where local HistoryDatabase db_ is unavailable,
    i.e. where the query doesn't really happen.
  </summary>
</histogram>

<histogram name="History.ResultsRenderedTime" units="ms">
  <owner>dbeam@chromium.org</owner>
  <summary>
    Records the time taken to load the history Web UI and render (at least) a
    screen full of items. This is roughly equivalent to 'time to first
    meaningful paint' for the history page.
  </summary>
</histogram>

<histogram name="History.ShownHeaderAboutOtherFormsOfBrowsingHistory"
    enum="BooleanShown">
  <owner>msramek@chromium.org</owner>
  <summary>
    Whether the notice about other forms of browsing history was shown in the
    header of the History page when the header was displayed. The header is
    refreshed with every history query.
  </summary>
</histogram>

<histogram name="History.TopHostsVisitsByRank" units="rank">
  <obsolete>
    Deprecated as of 11/2018, not used in production since 2/2018.
  </obsolete>
  <owner>twifkak@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Page visits to each of a user's top 50 hosts. The bucket is the 1-based rank
    of the host. Visits to all other hosts go into the 51st bucket.
    Android-only. Only counts the last URL in a redirect chain and does not
    include reloads. The list of top hosts is computed approximately nightly.
    This means that a given day will likely include a recalculation of top
    hosts, and therefore a given bucket may represent two different hosts at
    different times of day.
  </summary>
</histogram>

<histogram name="History.TopSitesRecoveredPercentage" units="%">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Size of the recovered TopSites database relative to the original corrupt
    database. Recovery is VACUUM-like, so the resulting database should always
    be smaller. Substantial 100% results would indicate empty databases being
    recovered, substantial low% results would indicate very little data being
    recovered.
  </summary>
</histogram>

<histogram name="History.TopSitesRecoveredRowsThumbnails">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Rows recovered from [thumbnails] table in TopSites recovery.
  </summary>
</histogram>

<histogram name="History.TopSitesRecovery" enum="HistoryTopSitesRecoveryEnum"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The TopSites recovery code is written conservatively, with successful
    recovery committed and any failure leading to rollback. This tracks the
    outcomes to determine which cases are high-frequency enough to warrant
    adding additional code to handle them (versus simply deleting the data).
  </summary>
</histogram>

<histogram name="History.TopSitesVisitsByRank" units="rank">
  <obsolete>
    Deprecated as of 11/2014.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page visits to each of a user's top 50 sites. Visits to all other sites go
    into the 51st bucket. Only count the page visit if it came from user
    browsing and only count it once when cycling through a redirect chain.
  </summary>
</histogram>

<histogram name="History.UpdateTopSitesOnDBThreadTime" units="ms">
  <obsolete>
    Deprecated because only the execution time at startup is of interest. See
    histogram History.UpdateTopSitesOnDBThread_Startup_Time.
  </obsolete>
  <owner>yiyaoliu@chromium.org</owner>
  <summary>
    The amount of time for function
    history::TopSitesBackend::UpdateTopSitesOnDBThread to execute. Excludes the
    case where local TopSitesDatabase db_ is unavailable, i.e. where the update
    doesn't really happen.
  </summary>
</histogram>

<histogram name="History.URLTableCount">
  <owner>sbirch@google.com</owner>
  <summary>
    Number of rows in urls table in History DB. Metrics are logged on
    initialization of the History DB on 1% of starts.
  </summary>
</histogram>

<histogram name="History.VisitTableCount">
  <owner>sbirch@google.com</owner>
  <summary>
    Number of rows in visits table in History DB. Metrics are logged on
    initialization of the History DB on 1% of starts.
  </summary>
</histogram>

<histogram name="History.WeeklyHostCount">
  <owner>sbirch@google.com</owner>
  <summary>
    Unique hostnames in History database urls table with last-visit times in the
    last 7 days. Metrics are logged on initialization of the History DB on 0.3%
    of starts.
  </summary>
</histogram>

<histogram name="History.WeeklyURLCount">
  <owner>sbirch@google.com</owner>
  <summary>
    Unique URLs in History database urls table with last-visit times in the last
    7 days. Metrics are logged on initialization of the History DB on 0.3% of
    starts.
  </summary>
</histogram>

<histogram name="History.WeeklyVisitCount">
  <owner>sbirch@google.com</owner>
  <summary>
    Number of rows in History visits table with visit times in the last 7 days.
    Metrics are logged on initialization of the History DB on 1% of starts.
  </summary>
</histogram>

<histogram name="HistoryPage.ClickPosition">
  <owner>rpop@google.com</owner>
  <summary>
    Number of entries that the clicked entry is older than in History page. Last
    bucket is any entry of that value or higher.
  </summary>
</histogram>

<histogram name="HistoryPage.ClickPositionSubset">
  <owner>rpop@google.com</owner>
  <summary>
    Subset of the Click Position histogram. Contains only the first smaller
    subset of entries on the page. Number of entries that the clicked entry is
    older than in History page. Last bucket is entries of that value or higher.
  </summary>
</histogram>

<histogram name="HistoryPage.OtherDevicesMenu" enum="OtherSessionsActions">
  <owner>mad@chromium.org</owner>
  <owner>rpop@google.com</owner>
  <summary>
    Histogram for usage of the section in the history page that allows the user
    to access tabs from other devices.
  </summary>
</histogram>

<histogram name="HistoryPage.RemoveEntryPosition">
  <owner>rpop@google.com</owner>
  <summary>
    Number of entries that the deleted entry is older than in History page. Last
    bucket is any entry of that value or higher. Confirmed removal is not
    guaranteed, just an initiation of 'Remove selected items'.
  </summary>
</histogram>

<histogram name="HistoryPage.RemoveEntryPositionSubset">
  <owner>rpop@google.com</owner>
  <summary>
    Subset of Remove Entry Position histogram. Contains only the first smaller
    subset of entries on the page. Number of entries that the deleted entry is
    older than in History page. Last bucket is any entry of that value or
    higher. Confirmed removal is not guaranteed, just an initiation of 'Remove
    selected items'.
  </summary>
</histogram>

<histogram name="HostedAppFrame.ContentSettings.ImagePressed"
    enum="ContentSettingImageType">
  <owner>calamity@chromium.org</owner>
  <summary>
    Counts which content setting buttons in the hosted app frame are pressed by
    the user.
  </summary>
</histogram>

<histogram name="HostedAppFrame.WrenchMenu.MenuAction" enum="WrenchMenuAction">
  <owner>calamity@chromium.org</owner>
  <summary>
    Number of times that each menu item is clicked from the hosted app window
    menu button.
  </summary>
</histogram>

<histogram name="Hotword.AudioLoggingEnabled" enum="BooleanEnabled">
  <obsolete>
    Deprecated as of 10/2017. Feature removed with crbug/761426.
  </obsolete>
  <owner>rlp@chromium.org</owner>
  <summary>
    The state of the hotword audio logging preference. This value is emitted
    each time the hotword availability is requested by the extension if the user
    is also opted in to hotword voice search. This check typically happens each
    time a hotword search is initiated.
  </summary>
</histogram>

<histogram name="Hotword.Enabled" enum="HotwordPrefState">
  <obsolete>
    Deprecated as of 10/2017. Feature removed with crbug/761426.
  </obsolete>
  <owner>rlp@chromium.org</owner>
  <summary>
    The state of the hotword preference. This value is emitted during
    HotwordService initialization which happens during Profile initialization.
  </summary>
</histogram>

<histogram name="Hotword.ExtensionAvailability" enum="HotwordAvailability">
  <obsolete>
    Deprecated as of 10/2017. Feature removed with crbug/761426.
  </obsolete>
  <owner>rlp@chromium.org</owner>
  <summary>
    Whether the external component hotword extension exists (i.e., not pending
    download, disabled, etc.). This value is emitted each time the hotword
    availability is requested by the extension which typically happens each time
    a hotword search is initiated.
  </summary>
</histogram>

<histogram name="Hotword.HotwordError" enum="HotwordError">
  <obsolete>
    Deprecated as of 10/2017. Feature removed with crbug/761426.
  </obsolete>
  <owner>rlp@chromium.org</owner>
  <summary>
    Errors reported by the hotword service when determining if hotwording is
    available. Non-errors are also reported so that errors can be seen as a
    percentage of total requests.
  </summary>
</histogram>

<histogram name="Hotword.HotwordMediaStreamResult"
    enum="HotwordMediaStreamResult">
  <obsolete>
    Deprecated as of 10/2017. Feature removed with crbug/761426.
  </obsolete>
  <owner>amistry@chromium.org</owner>
  <owner>rlp@chromium.org</owner>
  <owner>somast@chromium.org</owner>
  <summary>
    Success or error when attempting to open a MediaStream for the microphone.
    At most one success or error will be logged for an attempt to open a stream.
  </summary>
</histogram>

<histogram name="Hotword.HotwordNaClMessageTimeout"
    enum="HotwordNaClMessageTimeout">
  <obsolete>
    Deprecated as of 10/2017. Feature removed with crbug/761426.
  </obsolete>
  <owner>amistry@chromium.org</owner>
  <owner>rlp@chromium.org</owner>
  <owner>somast@chromium.org</owner>
  <summary>
    Timeout occured while waiting for a message from the NaCl hotword detector
    plugin. This value is the message that was expected to be received from the
    plugin.
  </summary>
</histogram>

<histogram name="Hotword.HotwordNaClPluginLoadResult"
    enum="HotwordNaClPluginLoadResult">
  <obsolete>
    Deprecated as of 10/2017. Feature removed with crbug/761426.
  </obsolete>
  <owner>amistry@chromium.org</owner>
  <owner>rlp@chromium.org</owner>
  <owner>somast@chromium.org</owner>
  <summary>
    Success or error when attempting to load the NaCl hotword detector plugin.
  </summary>
</histogram>

<histogram name="Hotword.HotwordTriggerSource" enum="HotwordTriggerSource">
  <obsolete>
    Deprecated as of 10/2017. Feature removed with crbug/761426.
  </obsolete>
  <owner>amistry@chromium.org</owner>
  <owner>rlp@chromium.org</owner>
  <owner>somast@chromium.org</owner>
  <summary>
    Location of hotword trigger. Emitted every time the hotword is triggered by
    the user saying 'Ok Google'.
  </summary>
</histogram>

<histogram name="Hotword.SharedModuleReinstallLanguage" enum="LanguageCode">
  <obsolete>
    Deprecated as of 10/2017. Feature removed with crbug/761426.
  </obsolete>
  <owner>amistry@chromium.org</owner>
  <owner>rlp@chromium.org</owner>
  <owner>somast@chromium.org</owner>
  <summary>
    Language, switched to by the user, that triggered a hotword shared module
    reinstall.
  </summary>
</histogram>

<histogram name="HttpCache.AccessToDone" units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>
    For every http cache transaction with a pattern (see HttpCache.Pattern), the
    time from the first access to the disk cache until the transaction was done.
  </summary>
</histogram>

<histogram base="true" name="HttpCache.AfterSend" units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>
    For http cache transactions in which a network request was sent, the time
    elapsed between sending it over the network until the transaction was done.
  </summary>
</histogram>

<histogram name="HttpCache.AsyncValidationDuration" units="ms">
  <obsolete>
    Deprecated as of 3/2015.
  </obsolete>
  <owner>ricea@chromium.org</owner>
  <summary>
    The time spent performing an asynchronous revalidation that was triggered by
    a Cache-Control: stale-while-revalidate directive. This is recorded when the
    asynchronous revalidation completes, either after the response was
    completely read or an error occurred. One entry is recorded for each
    asynchronous revalidation that is performed.
  </summary>
</histogram>

<histogram name="HttpCache.BeforeSend" units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>
    For http cache transactions in which a network request was sent, the time
    elapsed between beginning the request and sending it over the network; this
    is the time spent accessing the disk cache.
  </summary>
</histogram>

<histogram name="HttpCache.CantConditionalizeCause"
    enum="HttpCacheValidationCause">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    For each request that results in an unconditionalizable network request, the
    cause for the request.
  </summary>
</histogram>

<histogram name="HttpCache.CantConditionalizeZeroFreshnessFromMemHint"
    enum="Boolean">
  <owner>morlovich@chromium.org</owner>
  <summary>
    For each request with HttpCache.CantConditionalizeCause == Zero Freshness,
    this is true iff the zero freshness status was determined by looking at
    in-memory hints in disk cache index, rather than by opening the entry and
    looking at headers.
  </summary>
</histogram>

<histogram name="HttpCache.EntryLockWait" units="ms">
  <owner>jkarlin@chromium.org</owner>
  <owner>morlovich@chromium.org</owner>
  <summary>
    The time spent waiting for write lock on a disk cache entry.
  </summary>
</histogram>

<histogram name="HttpCache.ExternallyConditionalized"
    enum="ExternallyConditionalizedType">
  <obsolete>
    stale-while-revalidate implementation removed for now, see
    https://crbug.com/700568.
  </obsolete>
  <owner>ricea@chromium.org</owner>
  <summary>
    Count of the number of external (ie. from Blink) conditionalized requests,
    and whether or not those requests could have been served from the browser
    cache.
  </summary>
</histogram>

<histogram name="HttpCache.OfflineStatus" enum="OfflineStatus">
  <obsolete>
    Deprecated 4/2015.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Result of a main page HttpCacheTransaction if offline mode had been enabled.
  </summary>
</histogram>

<histogram name="HttpCache.ParallelWritingPattern"
    enum="HttpCacheParallelWritingPattern">
  <owner>shivanisha@chromium.org</owner>
  <summary>
    Records whether a transaction either created a Writers object when one
    didn't exist, or joined an existing Writers object, or why it failed to do
    so (e.g., it's a range request, it's not a GET request, etc.).
  </summary>
</histogram>

<histogram name="HttpCache.Pattern" enum="HttpCachePattern">
  <owner>morlovich@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <summary>For each http cache transaction, the recorded pattern.</summary>
</histogram>

<histogram name="HttpCache.PercentBeforeSend" units="%">
  <owner>morlovich@chromium.org</owner>
  <summary>
    For http cache transactions in which a network request was sent, the
    percentage of total request time that elapsed before sending the request
    over the network; this is the time spent accessing the disk cache.
  </summary>
</histogram>

<histogram name="HttpCache.ReadErrorNonRestartable" enum="NetErrorCodes">
  <owner>morlovich@chromium.org</owner>
  <summary>Net error results from non-restartable cache read errors.</summary>
</histogram>

<histogram name="HttpCache.ReadErrorRestartable" enum="NetErrorCodes">
  <owner>morlovich@chromium.org</owner>
  <summary>Net error results from restartable cache read errors.</summary>
</histogram>

<histogram name="HttpCache.StaleEntry.FreshnessPeriodsSinceLastUsed">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    For each http cache transaction for which a cache entry exists but it cannot
    be used because the entry's age is beyond its freshness: counts how many
    freshness periods have elapsed since the entry was last used (x1000).
  </summary>
</histogram>

<histogram name="HttpCache.StaleEntry.Updated.Age" units="seconds">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    For each http cache transaction for which a validation attempt is made due
    to a stale entry and is updated (e.g., 200), records the age of the entry in
    seconds.
  </summary>
</histogram>

<histogram name="HttpCache.StaleEntry.Updated.AgeInFreshnessPeriods" units="%">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    For each http cache transaction for which a validation attempt is made due
    to a stale entry and is updated (e.g., 200), records the age of the entry as
    percentage of freshness period.
  </summary>
</histogram>

<histogram name="HttpCache.StaleEntry.Validated.Age" units="seconds">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    For each http cache transaction for which a validation attempt is made due
    to a stale entry and is validated (304), records the age of the entry in
    seconds.
  </summary>
</histogram>

<histogram name="HttpCache.StaleEntry.Validated.AgeInFreshnessPeriods"
    units="%">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    For each http cache transaction for which a validation attempt is made due
    to a stale entry and is validated (304), records the age of the entry as
    percentage of freshness period.
  </summary>
</histogram>

<histogram name="HttpCache.TopFrameOriginPresent"
    enum="BooleanTopFrameOriginPresent" expires_after="2020-02-26">
  <owner>jkarlin@chromium.org</owner>
  <owner>shivanisha@chromium.org</owner>
  <summary>
    Records whether a cache request has a top frame origin set or not, which is
    used for double-keying.
  </summary>
</histogram>

<histogram name="HttpCache.ValidationCause" enum="HttpCacheValidationCause">
  <owner>jkarlin@chromium.org</owner>
  <summary>For each validation attempt, the cause for the validation.</summary>
</histogram>

<histogram name="HttpCache.Vary" enum="VaryType">
  <obsolete>
    Deprecated as of 11/2014.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The type of Vary header for a given GET response.</summary>
</histogram>

<histogram name="Hyphenation.Open" units="ms">
  <owner>kojii@chromium.org</owner>
  <summary>The time it takes to open a hyphenation dictionary.</summary>
</histogram>

<histogram name="Hyphenation.Open.File" units="ms">
  <owner>kojii@chromium.org</owner>
  <summary>The time it takes to open a hyphenation dictionary file.</summary>
</histogram>

<histogram name="ImageAnnotationService.AccessibilityV1.CacheHit"
    enum="BooleanCacheHit" expires_after="2019-06-04">
  <owner>amoylan@chromium.org</owner>
  <owner>martis@chromium.org</owner>
  <summary>
    For each image processed by the image annotation service, records whether or
    not results for the image already existed in the client-side cache. A hit
    means that image data was not transmitted to the image annotation server.
  </summary>
</histogram>

<histogram name="ImageAnnotationService.AccessibilityV1.ClientResult"
    enum="ImageAnnotationServiceClientResult" expires_after="2019-06-04">
  <owner>amoylan@chromium.org</owner>
  <owner>martis@chromium.org</owner>
  <summary>
    For each request made by a client feature to the image annotation service,
    reports the final status of the service response.
  </summary>
</histogram>

<histogram base="true" name="ImageAnnotationService.AccessibilityV1.Confidence"
    units="%" expires_after="2019-06-04">
<!-- Name completed by histogram_suffixes name="ImageAnnotationServiceAnnotationType" -->

  <owner>amoylan@chromium.org</owner>
  <owner>martis@chromium.org</owner>
  <summary>
    For each annotation of the given type returned by the image annotation
    server, records the confidence (as a percentage) produced by the ML model
    for the annotation.
  </summary>
</histogram>

<histogram name="ImageAnnotationService.AccessibilityV1.DescType"
    enum="ImageAnnotationServiceDescType" expires_after="2019-06-04">
  <owner>amoylan@chromium.org</owner>
  <owner>martis@chromium.org</owner>
  <summary>
    For each annotation backend run by the image annotation server, records the
    gRPC status reported.
  </summary>
</histogram>

<histogram base="true" name="ImageAnnotationService.AccessibilityV1.Empty"
    enum="BooleanEmpty" expires_after="2019-06-04">
<!-- Name completed by histogram_suffixes name="ImageAnnotationServiceAnnotationType" -->

  <owner>amoylan@chromium.org</owner>
  <owner>martis@chromium.org</owner>
  <summary>
    For each annotation of the given type returned by the image annotation
    server, records whether or not the text of the annotation was empty. This is
    sometimes valid, e.g. for text extraction (OCR) on an image that does not
    contain any text.
  </summary>
</histogram>

<histogram name="ImageAnnotationService.AccessibilityV1.EncodedJpegSizeKB"
    units="KB" expires_after="2019-06-04">
  <owner>amoylan@chromium.org</owner>
  <owner>martis@chromium.org</owner>
  <summary>
    For each image sent from a client feature to the image annotation service,
    reports the image's final size (in kilobytes) after resizing and reencoding.
  </summary>
</histogram>

<histogram name="ImageAnnotationService.AccessibilityV1.EngineKnown"
    enum="BooleanKnown" expires_after="2019-06-04">
  <owner>amoylan@chromium.org</owner>
  <owner>martis@chromium.org</owner>
  <summary>
    For each annotation backend run by the image annotation server, records
    whether or not the backend is recognised by this version of Chrome.
  </summary>
</histogram>

<histogram name="ImageAnnotationService.AccessibilityV1.JsonParseSuccess"
    enum="BooleanSuccess" expires_after="2019-06-04">
  <owner>amoylan@chromium.org</owner>
  <owner>martis@chromium.org</owner>
  <summary>
    For each non-empty response sent from the image annotation server, records
    whether or not JSON data were successfully parsed from the response body.
  </summary>
</histogram>

<histogram name="ImageAnnotationService.AccessibilityV1.PixelFetchSuccess"
    enum="BooleanSuccess" expires_after="2019-06-04">
  <owner>amoylan@chromium.org</owner>
  <owner>martis@chromium.org</owner>
  <summary>
    For each pixel fetch request sent from the image annotation service to a
    client feature, records whether or not encoded pixel data were successfully
    returned to the service.
  </summary>
</histogram>

<histogram name="ImageAnnotationService.AccessibilityV1.ServerHttpResponseCode"
    enum="HttpResponseCode" expires_after="2019-06-04">
  <owner>amoylan@chromium.org</owner>
  <owner>martis@chromium.org</owner>
  <summary>
    For each HTTP response from the image annotation server, reports the
    associated HTTP code.
  </summary>
</histogram>

<histogram name="ImageAnnotationService.AccessibilityV1.ServerLatencyMs"
    units="ms" expires_after="2019-06-04">
  <owner>amoylan@chromium.org</owner>
  <owner>martis@chromium.org</owner>
  <summary>
    For each HTTP response from the image annotation server, reports the time
    elapsed (in milliseconds) since the corresponding request was sent.
  </summary>
</histogram>

<histogram name="ImageAnnotationService.AccessibilityV1.ServerNetError"
    enum="NetErrorCodes" expires_after="2019-06-04">
  <owner>amoylan@chromium.org</owner>
  <owner>martis@chromium.org</owner>
  <summary>
    For each HTTP request sent to the image annotation server, reports the net
    error (or OK status) of the request.
  </summary>
</histogram>

<histogram name="ImageAnnotationService.AccessibilityV1.ServerRequestSizeKB"
    units="KB" expires_after="2019-06-04">
  <owner>amoylan@chromium.org</owner>
  <owner>martis@chromium.org</owner>
  <summary>
    For each HTTP request sent to the image annotation server, reports the size
    of the request. Measured in kilobytes, since a request can contain the pixel
    data of multiple images.
  </summary>
</histogram>

<histogram
    name="ImageAnnotationService.AccessibilityV1.ServerResponseSizeBytes"
    units="bytes" expires_after="2019-06-04">
  <owner>amoylan@chromium.org</owner>
  <owner>martis@chromium.org</owner>
  <summary>
    For each HTTP response from the image annotation server, reports the
    response size in bytes.
  </summary>
</histogram>

<histogram name="ImageAnnotationService.AccessibilityV1.SourcePixelCount"
    units="pixels" expires_after="2019-06-04">
  <owner>amoylan@chromium.org</owner>
  <owner>martis@chromium.org</owner>
  <summary>
    For each image sent from a client feature to the image annotation service,
    reports the image's original (i.e. pre-scaling) area in pixels. Images with
    pixel count above a certain threshold will be resized prior to transmission.
  </summary>
</histogram>

<histogram base="true" name="ImageAnnotationService.AccessibilityV1.Status"
    enum="GoogleRpcCode" expires_after="2019-06-04">
<!-- Name completed by histogram_suffixes name="ImageAnnotationServiceAnnotationType" -->

  <owner>amoylan@chromium.org</owner>
  <owner>martis@chromium.org</owner>
  <summary>
    For each annotation backend run by the image annotation server, records the
    gRPC status reported.
  </summary>
</histogram>

<histogram name="ImageLoader.Client.Cache.HitMiss" enum="BooleanCacheHit"
    expires_after="2019-01-01">
  <owner>chromeos-files-app@google.com</owner>
  <owner>tapted@chromium.org</owner>
  <summary>
    For each image load request that requested caching, records whether or not
    it was found in the client-side cache. A hit means the request was not
    forwarded to the ImageLoader extension.
  </summary>
</histogram>

<histogram name="ImageLoader.Client.Cache.Usage" units="%"
    expires_after="2019-01-01">
  <owner>chromeos-files-app@google.com</owner>
  <owner>tapted@chromium.org</owner>
  <summary>
    Returns the percentage of the client-side cache that is used for loading
    images, before they are sent to the ImageLoader extension. Expressed as a
    percentage of ImageLoaderClient.CACHE_MEMORY_LIMIT (e.g. 20MB).
  </summary>
</histogram>

<histogram name="ImageLoader.Client.Cached" enum="BooleanRequested"
    expires_after="2019-01-01">
  <owner>chromeos-files-app@google.com</owner>
  <owner>tapted@chromium.org</owner>
  <summary>
    For each image load request records whether or not it requested caching.
  </summary>
</histogram>

<histogram name="Import.ImportedHistorySize.AutoImportFromIE" units="urls">
  <owner>gcomanici@chromium.org</owner>
  <summary>
    The size of the history on Auto Import from IE. This measure is only logged
    on a succesfull Auto Import.
  </summary>
</histogram>

<histogram name="Import.ImporterType.AutoImport" enum="ImporterType"
    expires_after="2018-08-30">
  <owner>gab@chromium.org</owner>
  <summary>The importer used on first run Auto Import.</summary>
</histogram>

<histogram name="Import.ImporterType.BookmarksAPI" enum="ImporterType">
  <owner>gab@chromium.org</owner>
  <summary>The importer used on import from the bookmarks file API.</summary>
</histogram>

<histogram name="Import.ImporterType.ImportDataHandler" enum="ImporterType"
    expires_after="2018-08-30">
  <owner>gab@chromium.org</owner>
  <summary>
    The importer used on import from the chrome://settings/importData UI.
  </summary>
</histogram>

<histogram name="Import.IncludesPasswords.Firefox" enum="BooleanChecked">
  <owner>vasilii@chromium.org</owner>
  <owner>hurims@gmail.com</owner>
  <summary>
    Whether or not the password checkbox is checked when importing a profile of
    Firefox. Note that canceled imports could be counted also.
  </summary>
</histogram>

<histogram name="Import.NumberOfImportedPasswords.Firefox">
  <owner>vasilii@chromium.org</owner>
  <owner>hurims@gmail.com</owner>
  <summary>
    The number of passwords that are imported from Firefox. This is recorded
    when importing a profile of Firefox with the password checkbox checked. Note
    that the reported number of password could be slightly bigger than the
    actual number of imported passwords because some incomplete or blacklisted
    passwords that are dropped while importing might be included in the reported
    value.
  </summary>
</histogram>

<histogram name="Import.ShowDialog.FromBookmarkBarView" units="seconds"
    expires_after="2018-08-30">
  <obsolete>
    Deprecated and removed BookmarkBarView
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The amount of time from install time to time that user opens import dialog
    from BookmarkBarView.
  </summary>
</histogram>

<histogram name="Import.ShowDialog.FromFloatingBookmarkBarView" units="seconds"
    expires_after="2018-08-30">
  <obsolete>
    Deprecated and removed BookmarkBarView
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The amount of time from install time to time that user opens import dialog
    from NTP floating BookmarkBarView.
  </summary>
</histogram>

<histogram name="Import_ShowDlg.FromBookmarkBarView" units="seconds">
  <obsolete>
    Deprecated and replaced by Import.ShowDialog.FromBookmarkBarView
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The amount of time from install time to time that user opens import dialog
    from BookmarkBarView.
  </summary>
</histogram>

<histogram name="Import_ShowDlg.FromFloatingBookmarkBarView" units="seconds">
  <obsolete>
    Deprecated and replaced by Import.ShowDialog.FromFloatingBookmarkBarView
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The amount of time from install time to time that user opens import dialog
    from NTP floating BookmarkBarView.
  </summary>
</histogram>

<histogram name="ImportantFile.FileCreateError" enum="PlatformFileError">
  <owner>xaerox@yandex-team.ru</owner>
  <summary>
    File error happened upon temporary file creation at ImportantFileWriter.
  </summary>
</histogram>

<histogram name="ImportantFile.FileDeleteError" enum="PlatformFileError">
  <owner>xaerox@yandex-team.ru</owner>
  <summary>
    File error happened upon temporary file deletion at ImportantFileWriter.
  </summary>
</histogram>

<histogram name="ImportantFile.FileOpenError" enum="PlatformFileError">
  <owner>xaerox@yandex-team.ru</owner>
  <summary>
    File error happened upon opening temporary file at ImportantFileWriter.
  </summary>
</histogram>

<histogram name="ImportantFile.FileRenameError" enum="PlatformFileError">
  <owner>xaerox@yandex-team.ru</owner>
  <summary>
    File error happened upon temporary file renaming at ImportantFileWriter.
  </summary>
</histogram>

<histogram name="ImportantFile.FileWriteError" enum="PlatformFileError">
  <owner>xaerox@yandex-team.ru</owner>
  <summary>
    File error happened upon writing data to temporary file at
    ImportantFileWriter.
  </summary>
</histogram>

<histogram name="ImportantFile.TempFileFailures" enum="TempFileFailure">
  <owner>lassey@google.com</owner>
  <summary>
    Count of various failures in ImportantFileWrite when manipulating a temp
    file to write to before moving it into place (replacing another file).
  </summary>
</histogram>

<histogram name="ImportantFile.TimeToWrite" units="ms">
  <owner>mamir@chromium.org</owner>
  <summary>
    Time used to atomically write string into a file using ImportantFileWriter.
  </summary>
</histogram>

<histogram name="IncognitoModePrefs.WindowsParentalControlsInitThread"
    enum="ThreadType">
  <owner>robliao@chromium.org</owner>
  <summary>
    The thread used to initialize the Windows parental controls.
  </summary>
</histogram>

<histogram name="IncognitoModePrefs.WindowsParentalControlsInitTime" units="ms">
  <owner>robliao@chromium.org</owner>
  <summary>
    The amount of time that elapsed during a run of
    PlatformParentalControlsValue::IsParentalControlActivityLoggingOnImpl on
    Windows 7 and above.
  </summary>
</histogram>

<histogram name="IncompatibleApplicationsPage.AddedPostCrash"
    enum="BooleanShown">
  <owner>pmonette@chromium.org</owner>
  <summary>
    Records whether the user was automatically shown the
    chrome://settings/incompatibleApplications page following a Chrome crash.
  </summary>
</histogram>

<histogram name="IncompatibleApplicationsPage.NumApplications"
    units="applications">
  <owner>pmonette@chromium.org</owner>
  <summary>
    The number of incompatible applications detected by Chrome at the time the
    chrome://settings/incompatibleApplications page was opened.
  </summary>
</histogram>

<histogram name="InertialSensor.AccelerometerAndroidAvailable"
    enum="BooleanAvailable">
  <owner>timvolodine@chromium.org</owner>
  <summary>
    Whether the Sensor.TYPE_LINEAR_ACCELERATION was available at the start of
    Device Motion.
  </summary>
</histogram>

<histogram name="InertialSensor.AccelerometerIncGravityAndroidAvailable"
    enum="BooleanAvailable">
  <owner>timvolodine@chromium.org</owner>
  <summary>
    Whether the Sensor.TYPE_ACCELEROMETER was available at the start of Device
    Motion.
  </summary>
</histogram>

<histogram name="InertialSensor.AccelerometerWindowsAvailable"
    enum="BooleanAvailable">
  <owner>timvolodine@chromium.org</owner>
  <summary>
    Whether the SENSOR_TYPE_ACCELEROMETER_3D was available at the start of
    Device Motion on the Windows platform.
  </summary>
</histogram>

<histogram name="InertialSensor.DeviceOrientationSensorAndroid"
    enum="DeviceOrientationSensorTypeAndroid">
  <owner>timvolodine@chromium.org</owner>
  <summary>
    Provides a histogram of the base sensors (if any) that are used at the start
    of the Device Orientation API. Currently Sensor.TYPE_GAME_ROTATION_VECTOR is
    the default sensor for orientation, if it's not available fall-back options
    are provided by using either Sensor.TYPE_ROTATION_VECTOR or a combination of
    Sensor.TYPE_ACCELEROMETER and Sensor.TYPE_MAGNETIC_FIELD.
  </summary>
</histogram>

<histogram name="InertialSensor.GyrometerWindowsAvailable"
    enum="BooleanAvailable">
  <owner>timvolodine@chromium.org</owner>
  <summary>
    Whether the SENSOR_TYPE_GYROMETER_3D was available at the start of Device
    Motion on the Windows platform.
  </summary>
</histogram>

<histogram name="InertialSensor.GyroscopeAndroidAvailable"
    enum="BooleanAvailable">
  <owner>timvolodine@chromium.org</owner>
  <summary>
    Whether the Sensor.TYPE_GYROSCOPE was available at the start of Device
    Motion.
  </summary>
</histogram>

<histogram name="InertialSensor.InclinometerWindowsAvailable"
    enum="BooleanAvailable">
  <owner>timvolodine@chromium.org</owner>
  <summary>
    Whether the SENSOR_TYPE_INCLINOMETER_3D was available at the start of Device
    Orientation on the Windows platform.
  </summary>
</histogram>

<histogram name="InertialSensor.MotionDefaultAvailable" enum="BooleanAvailable">
  <owner>timvolodine@chromium.org</owner>
  <summary>
    This histogram counts the number of Device Motion API invocations in the
    default implementation (Linux and CrOS). The default implementation does not
    provide any sensors so the result is always false.
  </summary>
</histogram>

<histogram name="InertialSensor.MotionMacAvailable" enum="BooleanAvailable">
  <owner>timvolodine@chromium.org</owner>
  <summary>
    Whether the sudden motion sensor was available at the start of Device Motion
    on the MacOS platform.
  </summary>
</histogram>

<histogram name="InertialSensor.OrientationDefaultAvailable"
    enum="BooleanAvailable">
  <owner>timvolodine@chromium.org</owner>
  <summary>
    This histogram counts the number of Device Orientation API invocations in
    the default implementation (Linux and CrOS). The default implementation does
    not provide any sensors so the result is always false.
  </summary>
</histogram>

<histogram name="InertialSensor.OrientationMacAvailable"
    enum="BooleanAvailable">
  <owner>timvolodine@chromium.org</owner>
  <summary>
    Whether the sudden motion sensor was available at the start of Device
    Orientation on the MacOS platform.
  </summary>
</histogram>

<histogram name="InertialSensor.RotationVectorAndroidAvailable"
    enum="BooleanAvailable">
  <obsolete>
    Deprecated 11/2014 (crbug.com/347507). Replaced by
    InertialSensor.DeviceOrientationSensorAndroid.
  </obsolete>
  <owner>timvolodine@chromium.org</owner>
  <summary>
    Whether the Sensor.TYPE_ROTATION_VECTOR was available at the start of Device
    Orientation.
  </summary>
</histogram>

<histogram name="InfoBar.Shown" enum="InfoBarIdentifier">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    Records how many times a particular infobar was shown to the user. On
    Android, the infobar may be partially hidden due to stacking. On desktop, a
    tab with a visible infobar will increment this histogram every time the user
    switches away from the tab and back to it with the infobar still visible.
  </summary>
</histogram>

<histogram name="InfoBar.Shown.Hidden" enum="InfoBarIdentifier">
  <owner>mdjones@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <summary>
    Records how many times a particular infobar was displayed in a hidden state
    due to at least one other infobar existing. If there are no existing
    infobars, but the user scrolls at the exact moment a new infobar is added,
    the infobar may be hidden, but not recorded in this metric. Reliably
    triggering and detecting this combination is tricky so it isn't done. Only
    recorded on Android.
  </summary>
</histogram>

<histogram name="InfoBar.Shown.Hiding" enum="InfoBarIdentifier">
  <owner>mdjones@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <summary>
    Records how many times a particular infobar was visible and hiding a new
    infobar behind it. Only recorded on Android.
  </summary>
</histogram>

<histogram name="InfoBar.Shown.Visible" enum="InfoBarIdentifier">
  <owner>mdjones@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <summary>
    Records how many times a particular infobar was displayed in a visible state
    due to no other infobars existing. If there are no existing infobars, but
    the user scrolls at the exact moment a new infobar is added, the infobar may
    be hidden, but recorded here as visible. Reliably triggering and detecting
    this combination is tricky so it isn't done. Only recorded on Android.
  </summary>
</histogram>

<histogram name="InProductHelp.Config.ParsingEvent" enum="ConfigParsingEvent">
  <owner>nyquist@chromium.org</owner>
  <owner>xingliu@chromium.org</owner>
  <summary>
    Records if in-product help configuration is parsed correctly, and the
    failure reasons for parsing failures.
  </summary>
</histogram>

<histogram base="true" name="InProductHelp.Db.Init" enum="BooleanSuccess">
  <owner>nyquist@chromium.org</owner>
  <owner>xingliu@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="IPHDatabase" -->

  <summary>
    Records if database initialization succeeds for in-product help.
  </summary>
</histogram>

<histogram base="true" name="InProductHelp.Db.Load" enum="BooleanSuccess">
  <owner>nyquist@chromium.org</owner>
  <owner>xingliu@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="IPHDatabase" -->

  <summary>
    Records if database successfully loads the data for in-product help.
  </summary>
</histogram>

<histogram name="InProductHelp.Db.TotalEvents" units="events">
  <owner>nyquist@chromium.org</owner>
  <owner>xingliu@chromium.org</owner>
  <summary>
    Records the total number of event records in the database for in-product
    help after the event model is loaded.
  </summary>
</histogram>

<histogram base="true" name="InProductHelp.Db.Update" enum="BooleanSuccess">
  <owner>nyquist@chromium.org</owner>
  <owner>xingliu@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="IPHDatabase" -->

  <summary>
    Records if each database update succeeds for in-product help.
  </summary>
</histogram>

<histogram base="true" name="InProductHelp.NotifyEventReadyState"
    enum="BooleanSuccess">
  <owner>nyquist@chromium.org</owner>
  <owner>xingliu@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="IPHFeatures" -->

  <summary>
    Records if the model is ready when in-product help event happens.
  </summary>
</histogram>

<histogram name="InProductHelp.Promos.IPH_ReopenTab.DismissedAt"
    enum="ReopenTabPromoStepAtDismissal" expires_after="M75">
  <owner>collinbaker@chromium.org</owner>
  <summary>
    Last step of in-product help (IPH) for reopening tabs that user followed
    before finishing the IPH flow or dismissing it early. Recorded when the IPH
    flow is dismissed, which is at one of three possible times: when the promo
    bubble times out, when the menu is closed after the user opens it for IPH,
    or when the user opens the last closed tab. The last is considered a
    success.
  </summary>
</histogram>

<histogram name="InProductHelp.ShouldTriggerHelpUI" enum="TriggerHelpUIResult">
  <owner>nyquist@chromium.org</owner>
  <owner>xingliu@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="IPHFeatures" -->

  <summary>
    Records if in-product help is shown to the user, and the failure reasons if
    in-product help is not shown. Recorded on its own across all in-product help
    features, in addition to being a base name for feature-specific histograms.
  </summary>
</histogram>

<histogram name="InputMethod.ActiveCount">
  <owner>shuchen@chromium.org</owner>
  <summary>
    The number of active input methods. Recorded when the user logs in to Chrome
    OS or each cold start of Chrome on Android. The active input methods are
    selected by user in the language settings page on Chrome OS and in system
    language settings on Android.
  </summary>
</histogram>

<histogram name="InputMethod.AutoCorrectLevel" enum="IMECorrectionLevel">
  <owner>shuchen@chromium.org</owner>
  <summary>The auto-correction level for suggestion engine.</summary>
</histogram>

<histogram name="InputMethod.Category" enum="InputMethodCategory">
  <owner>shuchen@chromium.org</owner>
  <summary>
    The breakdown of input method usage by input method category. Recorded when
    the system changes the current input method.
  </summary>
</histogram>

<histogram name="InputMethod.Commit.Index">
  <owner>shuchen@chromium.org</owner>
  <summary>
    The suggestion index (1-based) of the suggestion list item which user
    chooses to commit.
  </summary>
</histogram>

<histogram name="InputMethod.Commit.Type" enum="IMECommitType">
  <obsolete>
    Deprecated 03/2015, and replaced by InputMethod.Commit.Type2.
  </obsolete>
  <owner>shuchen@chromium.org</owner>
  <summary>
    The suggestion accuracy type which the user chooses to commit.
  </summary>
</histogram>

<histogram name="InputMethod.Commit.Type2" enum="IMECommitType2">
  <owner>shuchen@chromium.org</owner>
  <summary>
    The suggestion accuracy type which the user chooses to commit.
  </summary>
</histogram>

<histogram name="InputMethod.CommitLength">
  <owner>shuchen@chromium.org</owner>
  <summary>The number of characters committed with composition text.</summary>
</histogram>

<histogram name="InputMethod.ID" enum="InputMethodID">
  <obsolete>
    This is deprecated since M46, InputMethod.ID2 is used since then.
  </obsolete>
  <owner>shuchen@chromium.org</owner>
  <summary>
    The breakdown of input method usage by input method IDs. Recorded when the
    user presses keys on physical or on-screen keyboard.
  </summary>
</histogram>

<histogram name="InputMethod.ID2" enum="InputMethodID2">
  <owner>shuchen@chromium.org</owner>
  <summary>
    The breakdown of input method usage by input method IDs. Recorded when the
    user presses keys on physical or on-screen keyboard.
  </summary>
</histogram>

<histogram name="InputMethod.ImeMenu.ActivationChanged"
    enum="BooleanActivation">
  <owner>azurewei@chromium.org</owner>
  <owner>shuchen@chromium.org</owner>
  <summary>
    Whether the opt-in IME menu in the shelf has been activated.
  </summary>
</histogram>

<histogram name="InputMethod.ImeMenu.EmojiHandwritingVoiceButton"
    enum="ImeMenuButtonType">
  <owner>azurewei@chromium.org</owner>
  <owner>shuchen@chromium.org</owner>
  <summary>
    The number of times users click emoji, handwriting or voice button in opt-in
    IME menu.
  </summary>
</histogram>

<histogram name="InputMethod.ImeSwitch" enum="IMESwitchType">
  <owner>shuchen@chromium.org</owner>
  <summary>The trigger type of input method switches by user.</summary>
</histogram>

<histogram name="InputMethod.MatchesSystemLanguage" enum="BooleanMatched"
    expires_after="2019-01-30">
  <owner>aurimas@chromium.org</owner>
  <summary>
    Whether the currently selected keyboard language matches the system
    language. Recorded once with every cold start of Chrome for Android.
  </summary>
</histogram>

<histogram name="InputMethod.Mojo.Extension.ActivateIMELatency" units="ms"
    expires_after="2019-03-31">
  <owner>googleo@chromium.org</owner>
  <owner>shuchen@chromium.org</owner>
  <summary>
    The time taken to activate a new IME via IME Mojo service in the IME
    extension. It's from when the IME extension sends out an request to activate
    a new IME until the new IME is resolved in the IME service and its Mojo
    interface is bound to the IME extension.
  </summary>
</histogram>

<histogram name="InputMethod.Mojo.Extension.Event" enum="IMEExtensionMojoEvent">
  <owner>googleo@chromium.org</owner>
  <owner>shuchen@chromium.org</owner>
  <summary>The events of Mojo service in the IME Extension.</summary>
</histogram>

<histogram name="InputMethod.Mojo.Extension.Rulebased.ProcessLatency"
    units="ms" expires_after="2019-03-31">
  <owner>googleo@chromium.org</owner>
  <owner>shuchen@chromium.org</owner>
  <summary>
    The time taken to process a rulebased request via the IME Mojo service
    inside the IME extension.
  </summary>
</histogram>

<histogram name="InputMethod.Mojo.Extension.ServiceInitLatency" units="ms"
    expires_after="2019-03-31">
  <owner>googleo@chromium.org</owner>
  <owner>shuchen@chromium.org</owner>
  <summary>
    The time taken to initialize the IME Mojo service in the IME extension. It's
    from the IME extension starts loading a private Mojo bundle for making a
    request to connect a IME service until the connection between the extension
    and the IME Mojo service is built.
  </summary>
</histogram>

<histogram name="InputMethod.PkCommit.Index">
  <owner>shuchen@chromium.org</owner>
  <summary>
    The suggestion index (1-based) of the suggestion list item which user
    chooses to commit for physical keyboard autocorrect.
  </summary>
</histogram>

<histogram name="InputMethod.PkCommit.Type" enum="IMECommitType2">
  <owner>shuchen@chromium.org</owner>
  <summary>
    The suggestion accuracy type which the user chooses to commit for physical
    keyboard autocorrect.
  </summary>
</histogram>

<histogram name="InputMethod.RegisterProxyView" enum="IMERegisterProxyView">
  <owner>changwan@chromium.org</owner>
  <summary>The result of registering proxy view to InputMethodManager.</summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.BackspaceCount">
  <owner>essential-inputs-team@google.com</owner>
  <summary>
    The number of times the backspace key was pressed on the virtual keyboard,
    while the virtual keyboard was alive. Recorded when the virtual keyboard is
    closed.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.BackspaceOnLayout"
    enum="IMEVKLayout">
  <owner>essential-inputs-team@google.com</owner>
  <summary>
    The layout type of the virtual keyboard, recorded when backspace is pressed.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.BackwardsMovesPerSwipe"
    units="moves">
  <owner>essential-inputs-team@google.com</owner>
  <summary>
    Chrome OS histogram that counts the number of times the cursor was moved to
    the previous word by swiping backwards on the selection track. The count is
    initialized when the user starts swiping from any side of the virtual
    keyboard, incremented based on how far they swipe backwards on the selection
    track, and recorded when they release their finger.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.CharactersBetweenBackspaces">
  <owner>essential-inputs-team@google.com</owner>
  <summary>
    Counts the length of text typed by the virtual keyboard between each
    backspace. This metric provides a rough approximation of an error rate for
    the virtual keyboard.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.CharactersCommitted">
  <owner>essential-inputs-team@google.com</owner>
  <summary>
    The total number of characters committed. Recorded when the virtual keyboard
    is closed.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.ContainerBehavior"
    enum="VirtualKeyboardContainerType">
  <owner>essential-inputs-team@google.com</owner>
  <summary>
    Chrome OS histogram that counts the number of times each virtual keyboard
    display mode is used. Recorded when the virtual keyboard is opened or a user
    changes the keyboard mode from UI in the virtual keyboard.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.Duration" units="seconds">
  <owner>essential-inputs-team@google.com</owner>
  <summary>How long the virtual keyboard was visible.</summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.FocusedByStylus" enum="Boolean">
  <owner>essential-inputs-team@google.com</owner>
  <summary>
    Whether an input field was focused by a stylus or not. Recorded when an
    input field is focused.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.GestureTypingEvent"
    enum="IMEGestureTypingEvent">
  <owner>essential-inputs-team@google.com</owner>
  <summary>Text input events related to gesture typing.</summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.InitLatency" units="ms">
  <owner>essential-inputs-team@google.com</owner>
  <summary>
    The on-screen keyboard initialization latency in milliseconds.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.Layout" enum="IMEVKLayout">
  <owner>essential-inputs-team@google.com</owner>
  <summary>
    The layout of the on-screen keyboard. Logged when the specific layout is
    shown.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.LayoutSwitch">
  <owner>essential-inputs-team@google.com</owner>
  <summary>
    The count of layout switching actions while virtual keyboard is alive.
    Recorded when the virtual keyboard window is hidden or destroyed.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.MovesPerSwipe" units="moves">
  <owner>essential-inputs-team@google.com</owner>
  <summary>
    Chrome OS histogram that counts the number of times the cursor was moved to
    the next word by swiping forward on the selection track. The count is
    initialized when the user starts swiping from any side of the virtual
    keyboard, incremented based on how far they swipe forwards on the selection
    track, and recorded when they release their finger.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.PreferredLayoutForStylus"
    enum="IMEVKLayout">
  <owner>essential-inputs-team@google.com</owner>
  <summary>
    The layout of the virtual keyboard that is shown when the user focuses on an
    input field with a stylus. Recorded when the layout is shown after a focus.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.TapCount">
  <owner>essential-inputs-team@google.com</owner>
  <summary>
    The number of times the virtual keyboard was tapped while the virtual
    keyboard was alive. Recorded when the virtual keyboard is closed.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.WordsDeletedPerSwipe"
    units="words">
  <owner>essential-inputs-team@google.com</owner>
  <summary>
    Chrome OS histogram that tracks the total number of words that were deleted
    by swiping forward on the deletion track. The count is initialized when the
    user starts swiping on the backspace key, incremented based on how far they
    swipe forwards on the deletion track, and recorded when they release their
    finger.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.WordsPerMinute">
  <owner>essential-inputs-team@google.com</owner>
  <summary>
    The number of words typed per minute. Recorded when the virtual keyboard is
    closed.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.WordsRestoredPerSwipe"
    units="words">
  <owner>essential-inputs-team@google.com</owner>
  <summary>
    Chrome OS histogram that tracks the total number of words that were restored
    by swiping backwards on the deletion track. The count is initialized when
    the user starts swiping on the backspace key, incremented based on how far
    they swipe backwards on the deletion track, and recorded when they release
    their finger.
  </summary>
</histogram>

<histogram name="Installer.AttemptsCount.Total" units="count"
    expires_after="2019-01-30">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    The number of update attempts until the update has been applied. This is
    reported every time the device has completed an update.
  </summary>
</histogram>

<histogram name="Installer.DevModeErrorCodes" enum="UpdateEngineErrorCode">
  <owner>zeuthen@chromium.org</owner>
  <summary>Errors from update_engine process when running in dev mode.</summary>
</histogram>

<histogram name="Installer.DownloadOverheadPercentage" units="%"
    expires_after="2019-01-30">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    The overhead in downloading extra bytes due to errors/interruptions.
    Expressed as a percentage of the bytes that are actually needed to be
    downloaded for the update to be successful.
  </summary>
</histogram>

<histogram name="Installer.DownloadSourcesUsed"
    enum="UpdateEngineDownloadSources" expires_after="2019-01-30">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    The combinations of protocol and source server that were used to complete a
    successful update.
  </summary>
</histogram>

<histogram name="Installer.FullPayloadAttemptNumber" units="count"
    expires_after="2019-01-30">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    The number of update attempts with a full update payload until the update
    has been applied. This is reported on every update attempt.
  </summary>
</histogram>

<histogram name="Installer.InstallDateProvisioningSource"
    enum="UpdateEngineInstallDateProvisioningSource" expires_after="2019-01-30">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    The source used to provision the install-date-days value sent to Omaha with
    every request. This is reported when OOBE completes (M34 or later) or when
    upgrading to a version with install-date-days support.
  </summary>
</histogram>

<histogram name="Installer.NormalErrorCodes" enum="UpdateEngineErrorCode"
    expires_after="2019-01-30">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    Errors from update_engine process when running in normal mode.
  </summary>
</histogram>

<histogram name="Installer.OSAgeDays" units="days" expires_after="2019-01-30">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    The age of the OS, defined as the age of the /etc/lsb-release file. This is
    reported on every update check but at most once a day.
  </summary>
</histogram>

<histogram name="Installer.PayloadAttemptNumber" units="count"
    expires_after="2019-01-30">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    The number of update attempts until the update has been applied. This is
    reported on every update attempt.
  </summary>
</histogram>

<histogram name="Installer.PayloadFormat" enum="UpdateEnginePayloadFormat"
    expires_after="2019-01-30">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    The type of update payload used to update the device. The difference between
    &quot;Full&quot; and &quot;Forced Full&quot; is that in the latter, the
    request sent to Omaha included a directive saying that a delta payload
    wasn't accepted. A &quot;Full&quot; payload is one where a delta payload was
    accepted but Omaha provided a full payload. This is reported every time the
    device has completed an update.
  </summary>
</histogram>

<histogram name="Installer.PowerwashCount" units="powerwashes">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    The number of times a Chrome OS device has been powerwashed (factory reset)
    without subsequently going through recovery and/or changing the dev mode
    switch. Reported once after each powerwash.
  </summary>
</histogram>

<histogram name="Installer.RebootToNewPartitionAttempt" units="count"
    expires_after="2019-01-30">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    The number of consecutive times a device has failed to boot an update that
    successfully applied. This metric is reported every time the firmware fails
    to boot the slot with the update and fell back to the slot it originally
    updated from.
  </summary>
</histogram>

<histogram name="Installer.Recovery.Count" units="count">
  <obsolete>
    Superseded by Installer.Recovery.Reason in 8/2017.
  </obsolete>
  <owner>ahassani@chromium.org</owner>
  <summary>
    The number of times the device has been recovered.

    This is reported on reboot after a successful recovery. Cleared only when
    switching to dev mode or on factory reset.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="Installer.Recovery.Reason" enum="ChromeOSRecoveryReason">
  <owner>lannm@chromium.org</owner>
  <summary>
    The reason for entering recovery mode immediately prior to a recovery.

    This is reported on reboot after a successful recovery.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="Installer.SuccessfulMBsDownloadedFrom" units="MB"
    expires_after="2019-01-30">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    Number of MBs downloaded from during an update that completed successfully.
  </summary>
</histogram>

<histogram name="Installer.TimeToRebootMinutes" units="Minutes"
    expires_after="2019-01-30">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    Wall-clock duration between when an update has successfully completed (and
    the user is presented with the &quot;reboot arrow&quot;) and when the system
    has booted into the new update. This is reported every time the device is
    rebooted after an update has been applied.
  </summary>
</histogram>

<histogram name="Installer.TotalMBsDownloadedFrom" units="MB"
    expires_after="2019-01-30">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    Total number of MBs downloaded since the last successful update. This also
    includes all the bytes downloaded during any prior failed attempts.
  </summary>
</histogram>

<histogram name="Installer.UpdateDurationMinutes" units="Minutes"
    expires_after="2019-01-30">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    Absolute wall-clock time duration it took for the update to complete from
    the time an update first began. It includes not just the time the device was
    up, but also includes the time the device spent sleeping.
  </summary>
</histogram>

<histogram name="Installer.UpdateDurationUptimeMinutes" units="Minutes"
    expires_after="2019-01-30">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    Uptime duration it took for the update to complete from the time an update
    first began. It does not include the time the device spent sleeping, but it
    does include the uptime spent in waiting for the hourly update checks to
    happen.
  </summary>
</histogram>

<histogram name="Installer.UpdateNumReboots" units="count"
    expires_after="2019-01-30">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    Number of times the device was rebooted by the user since an update began
    and until it completed successfully.
  </summary>
</histogram>

<histogram name="Installer.UpdatesAbandonedCount" units="count"
    expires_after="2019-01-30">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    The number of update attempts that didn't complete because a newer update
    was detected during the update operation. This is reported every time the
    device has completed an update.
  </summary>
</histogram>

<histogram name="Installer.UpdatesAbandonedEventCount" units="count"
    expires_after="2019-01-30">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    The number of consecutive different abandoned update payloads since the last
    successful update. This is reported every time an update payload is
    abandoned because a newer update payload is available.
  </summary>
</histogram>

<histogram name="Installer.UpdateTime" units="seconds"
    expires_after="2019-01-30">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    The time in seconds it took to update a Chrome OS system -- from completing
    an update check to reboot pending.
  </summary>
</histogram>

<histogram name="Installer.UpdateURLSwitches" units="count"
    expires_after="2019-01-30">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    Number of times the download URLs were switched due to failures.
  </summary>
</histogram>

<histogram name="InstallSigner.InvalidCount">
  <obsolete>
    Deprecated 4/2015. It appears the code at some point changed to use the
    histogram name 'ExtensionInstallSigner.InvalidCount' and we forgot to update
    this histogram name.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    This is a count of the number of ids that we asked to be signed which the
    server response indicated were not in the webstore.
  </summary>
</histogram>

<histogram name="InstallSigner.InvalidSignature">
  <obsolete>
    Deprecated 1/2014 (crbug.com/333934). Replaced by
    ExtensionInstallSigner.ResultWasValid.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The extensions install signer got a well-formed result from the server but
    the signature check on it failed.
  </summary>
</histogram>

<histogram name="InstallVerifier.CallbackInvalidSignature">
  <obsolete>
    Deprecated 1/2014 (crbug.com/333934). Replaced by
    ExtensionInstallVerifier.GetSignatureResult.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The extension install verifier tried to get a new signature and received a
    response but it wasn't properly signed.
  </summary>
</histogram>

<histogram name="InstallVerifier.CallbackNoSignature">
  <obsolete>
    Deprecated 1/2014 (crbug.com/333934). Replaced by
    ExtensionInstallVerifier.GetSignatureResult.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The extension install verifier tried to get a new signature but was unable
    to (network error contacting the server, response from server was malformed,
    etc.).
  </summary>
</histogram>

<histogram name="InstallVerifier.CallbackValidSignature">
  <obsolete>
    Deprecated 1/2014 (crbug.com/333934). Replaced by
    ExtensionInstallVerifier.GetSignatureResult.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The extension install verifier got a new signature from the server that was
    valid.
  </summary>
</histogram>

<histogram name="InstallVerifier.InitGoodSignature">
  <obsolete>
    Deprecated 1/2014 (crbug.com/333934). Replaced by
    ExtensionInstallVerifier.InitResult.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The extension install verifier found a valid signature at startup, and this
    is a count of the number of signed ids it contained.
  </summary>
</histogram>

<histogram name="InstallVerifier.InitInvalidSignature">
  <obsolete>
    Deprecated 1/2014 (crbug.com/333934). Replaced by
    ExtensionInstallVerifier.InitResult.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The extension install verifier found a signature in the prefs at startup,
    and it parsed properly, but it was invalid (some ids may have been
    added/removed, could not verify it was signed with the correct private key,
    etc.).
  </summary>
</histogram>

<histogram name="InstallVerifier.InitNoSignature">
  <obsolete>
    Deprecated 1/2014 (crbug.com/333934). Replaced by
    ExtensionInstallVerifier.InitResult.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The extension install verifier did not find any signature in the prefs at
    startup.
  </summary>
</histogram>

<histogram name="InstallVerifier.InitUnparseablePref">
  <obsolete>
    Deprecated 1/2014 (crbug.com/333934). Replaced by
    ExtensionInstallVerifier.InitResult.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The extension install verifier found a signature in the prefs at startup,
    but it wasn't parseable (missing/wrong format of required keys, etc.).
  </summary>
</histogram>

<histogram name="InstallVerifier.SignatureFailedButNotEnforcing">
  <obsolete>
    Deprecated 1/2014 (crbug.com/333934). Replaced by
    ExtensionInstallVerifier.MustRemainDisabled.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The extension install verifier would have disabled an extension but is not
    in enforcement mode.
  </summary>
</histogram>

<histogram name="InstanceID.DeleteToken.CompleteTime" units="ms"
    expires_after="2018-08-30">
  <owner>jianli@chromium.org</owner>
  <summary>
    Length of time taken to complete the DeleteToken request successfully. If
    the request is retried multiple times, the length of time is counted for the
    last successful retry.
  </summary>
</histogram>

<histogram name="InstanceID.DeleteToken.RequestStatus"
    enum="GCMUnregistrationRequestStatus">
  <owner>peter@chromium.org</owner>
  <summary>Status code of the outcome of DeleteToken request.</summary>
</histogram>

<histogram name="InstanceID.DeleteToken.RetryCount" expires_after="2018-08-30">
  <owner>jianli@chromium.org</owner>
  <summary>Number of retries before DeleteToken succeeds.</summary>
</histogram>

<histogram name="InstanceID.Enabled" enum="BooleanEnabled"
    expires_after="2018-08-30">
  <owner>jianli@chromium.org</owner>
  <summary>
    Whether the Instance ID API is enabled. Checked when a chrome.instanceID
    function is called.
  </summary>
</histogram>

<histogram name="InstanceID.GetToken.CompleteTime" units="ms"
    expires_after="2018-08-30">
  <owner>jianli@chromium.org</owner>
  <summary>
    Length of time taken to complete the GetToken request successfully. If the
    request is retried multiple times, the length of time is counted for the
    last successful retry.
  </summary>
</histogram>

<histogram name="InstanceID.GetToken.OptionsCount" units="options"
    expires_after="2019-01-30">
  <owner>peter@chromium.org</owner>
  <summary>
    The number of options provided to the GetToken request. Recorded when the
    request has been received by the InstanceID instance.
  </summary>
</histogram>

<histogram name="InstanceID.GetToken.RequestStatus"
    enum="GCMRegistrationRequestStatus">
  <owner>peter@chromium.org</owner>
  <summary>Status code of the outcome of GetToken request.</summary>
</histogram>

<histogram name="InstanceID.GetToken.RetryCount" expires_after="2018-08-30">
  <owner>jianli@chromium.org</owner>
  <summary>Number of retries before GetToken succeeds.</summary>
</histogram>

<histogram name="InstanceID.RestoredIDCount" expires_after="2018-08-30">
  <owner>jianli@chromium.org</owner>
  <summary>
    Number of Instance IDs restored from the persistent store at startup.
  </summary>
</histogram>

<histogram name="InstanceID.RestoredTokenCount" expires_after="2018-08-30">
  <owner>jianli@chromium.org</owner>
  <summary>
    Number of InstanceID tokens restored from the persistent store at startup.
  </summary>
</histogram>

<histogram name="Instant.InstantControllerEvent" enum="InstantControllerEvent">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Records various events of interest in the InstantController. E.g. When URLs
    are blacklisted.
  </summary>
</histogram>

<histogram name="Instant.SessionsStorageNamespace"
    enum="InstantSessionStorageNamespace">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    How often an Instant preview is committed onto a different tab than it was
    created from.
  </summary>
</histogram>

<histogram name="Instant.TimeToFirstShow" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time between the first Omnibox interaction and when the Instant preview
    shows. If the instant preview was already showing when the user interacted
    with the omnibox, this histogram is not recorded.
  </summary>
</histogram>

<histogram name="InstantExtended.CacheableNTPLoad"
    enum="InstantExtended_CacheableNTPLoad">
  <owner>kmilka@chromium.org</owner>
  <owner>ramyan@chromium.org</owner>
  <summary>
    Records a histogram for how often the Cacheable NTP fails to load.
  </summary>
</histogram>

<histogram name="InstantExtended.FallbackToLocalOverlay"
    enum="InstantExtended_FallbackCause">
  <obsolete>
    Depcreated as of 10/2013. No longer relevant since the HTML overlay was
    abandoned.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Records the cause for falling back to a local overlay at the time of
    fallback.
  </summary>
</histogram>

<histogram name="InstantExtended.InstantNavigation"
    enum="InstantExtended_InstantNavigation">
  <obsolete>
    Deprecated as of 10/2013. This histogram is no longer relevant since the
    HTML overlay went away.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Records a histogram for instant extended (Local NTP and Online NTP) and
    non-extended navigations.
  </summary>
</histogram>

<histogram name="InstantExtended.NewOptInState"
    enum="InstantExtended_NewOptInState">
  <obsolete>
    Deprecated as of 11/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Records, on startup, whether the user has chosen to opt-in to or opt-out of
    InstantExtended via chrome://flags.
  </summary>
</histogram>

<histogram name="InstantExtended.OptInState" enum="InstantExtended_OptInState">
  <obsolete>
    Deprecated 2013-06. As of m30 use InstantExtended.NewOptInState.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Records, on startup, whether the user has chosen to opt-in to or opt-out of
    InstantExtended via chrome://flags.
  </summary>
</histogram>

<histogram name="InstantExtended.PercentageMatchQuerytoQuery" units="%">
  <obsolete>
    Deprecated 2013-07. Please see
    InstantExtended.PercentageMatchV2_QuerytoQuery instead.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Records the number of matching characters at the start of the user's text as
    a percentage of average length between the old and new text when the user
    navigates from a search query to another search query.
  </summary>
</histogram>

<histogram name="InstantExtended.PercentageMatchQuerytoURL" units="%">
  <obsolete>
    Deprecated 2013-07. Please see InstantExtended.PercentageMatchV2_QuerytoURL
    instead.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Records the number of matching characters at the start of the user's text as
    a percentage of average length between the old and new text when the user
    navigates from a search query to a url. Example: Accidental search for
    google.con, then navigation to google.com.
  </summary>
</histogram>

<histogram name="InstantExtended.PercentageMatchURLtoQuery" units="%">
  <obsolete>
    Deprecated 2013-07. Please see InstantExtended.PercentageMatchV2_URLtoQuery
    instead.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Records the number of matching characters at the start of the user's text as
    a percentage of average length between the old and new text when the user
    navigates from a url to a search query.
  </summary>
</histogram>

<histogram name="InstantExtended.PercentageMatchURLtoURL" units="%">
  <obsolete>
    Deprecated 2013-07. Please see InstantExtended.PercentageMatchV2_URLtoURL
    instead.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Records the number of matching characters at the start of the user's text as
    a percentage of average length between the old and new text when the user
    navigates from a url to another url.
  </summary>
</histogram>

<histogram name="InstantExtended.PercentageMatchV2_QuerytoQuery" units="%">
  <obsolete>
    Removed in August 2016 with the removal of query in the omnibox code.
  </obsolete>
  <owner>mpearson@chromium.org</owner>
  <summary>
    Records the number of matching characters at the start of the user's text as
    a percentage of average length between the old and new text when the user
    navigates from a search query to another search query.
  </summary>
</histogram>

<histogram name="InstantExtended.PercentageMatchV2_QuerytoURL" units="%">
  <obsolete>
    Removed in August 2016 with the removal of query in the omnibox code.
  </obsolete>
  <owner>mpearson@chromium.org</owner>
  <summary>
    Records the number of matching characters at the start of the user's text as
    a percentage of average length between the old and new text when the user
    navigates from a search query to a url. Example: Accidental search for
    google.con, then navigation to google.com.
  </summary>
</histogram>

<histogram name="InstantExtended.PercentageMatchV2_URLtoQuery" units="%">
  <obsolete>
    Removed in September 2016 because (i) this measurement was somewhat wrong,
    (ii) it's difficult to understand the data, and (iii) there are better ways
    to answer the same question. The measurement is somewhat wrong because
    reloads, link drops, and pasting URLs and pressing enter are all incorrectly
    logged to the URLtoQuery histogram, not the URLtoURL histogram. Futhermore,
    this histogram is difficult to analyze because it's not broken up by input
    length. Short URLs can by random chance have a sizable percentage match with
    a query. Finally, there are better source for data like this; ask mpearson
    for details.
  </obsolete>
  <owner>mpearson@chromium.org</owner>
  <summary>
    Records the number of matching characters at the start of the user's text as
    a percentage of average length between the old and new text when the user
    navigates from a url to a search query.
  </summary>
</histogram>

<histogram name="InstantExtended.PercentageMatchV2_URLtoURL" units="%">
  <obsolete>
    Removed in September 2016 because (i) this measurement was somewhat wrong,
    and (ii) there are better ways to answer the same question. The measurement
    is somewhat wrong because reloads, link drops, and pasting URLs and pressing
    enter are all incorrectly logged to the URLtoQuery histogram, not the
    URLtoURL histogram. Furthermore, there are better source for data like this;
    ask mpearson for details.
  </obsolete>
  <owner>mpearson@chromium.org</owner>
  <summary>
    Records the number of matching characters at the start of the user's text as
    a percentage of average length between the old and new text when the user
    navigates from a url to another url.
  </summary>
</histogram>

<histogram name="InstantExtended.PrefValue" enum="BooleanEnabled">
  <obsolete>
    Deprecated 2013-06. This preference has not been exposed or used for months,
    and we do not plan to use it in the future.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Records, on startup, the value of the &quot;Allow your search engine to
    provide Instant result&quot; preference setting for the first profile
    loaded.
  </summary>
</histogram>

<histogram name="InstantSearchClicks.PreviewScrollState"
    enum="InstantSearchClicks_PreviewScrollState">
  <obsolete>
    Deprecated as of 7/2015.
  </obsolete>
  <owner>ksimbili@chromium.org</owner>
  <summary>
    Records the scroll state on the preview page when instant search clicks
    feature is triggered.
  </summary>
</histogram>

<histogram name="InstantSearchClicks.ReasonForSwap"
    enum="InstantSearchClicks_ReasonForSwap">
  <obsolete>
    Deprecated as of 7/2015.
  </obsolete>
  <owner>ksimbili@chromium.org</owner>
  <summary>
    Records the reason that triggered the page swap when instant search clicks
    feature is triggered.
  </summary>
</histogram>

<histogram name="InstantSearchClicks.TimeInPreview" units="ms">
  <obsolete>
    Deprecated as of 7/2015.
  </obsolete>
  <owner>ksimbili@chromium.org</owner>
  <summary>
    The time spent by the user in preview page before swapping to original or
    navigating out of preview page.
  </summary>
</histogram>

<histogram name="InstantSearchClicks.TimeToSwap" units="ms">
  <obsolete>
    Deprecated as of 7/2015.
  </obsolete>
  <owner>ksimbili@chromium.org</owner>
  <summary>
    The time it took for swap to trigger for all swaps. The is the time between
    preview page load start to preview page swap with the original page.
  </summary>
</histogram>

<histogram name="InstantTethering.BluetoothAdvertisementRegistrationResult"
    enum="InstantTethering_BluetoothAdvertisementResult"
    expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Provides a breakdown of how many times each possible Bluetooth advertisement
    registration result occurs.

    The bucket &quot;Unknown result&quot; indicates that the Bluetooth platform
    returned an unknown error code; if it has any counts, the client code should
    be changed to account for the new error code.
  </summary>
</histogram>

<histogram name="InstantTethering.BluetoothAdvertisementUnregistrationResult"
    enum="InstantTethering_BluetoothAdvertisementResult"
    expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Provides a breakdown of how many times each possible Bluetooth advertisement
    unregistration result occurs.

    The bucket &quot;Unknown result&quot; indicates that the Bluetooth platform
    returned an unknown error code; if it has any counts, the client code should
    be changed to account for the new error code.
  </summary>
</histogram>

<histogram name="InstantTethering.BluetoothDiscoverySessionStarted"
    enum="BooleanSuccess" expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Provides the success rate of starting a Bluetooth discovery session.
  </summary>
</histogram>

<histogram name="InstantTethering.BluetoothDiscoverySessionStopped"
    enum="BooleanSuccess" expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Provides the success rate of stopping a Bluetooth discovery session.
  </summary>
</histogram>

<histogram name="InstantTethering.ConnectionToHostResult.Failure"
    enum="InstantTethering_ConnectionToHostResult_Failure"
    expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Provides a top-level breakdown of the times a connection to a host has
    failed.

    An &quot;unknown error&quot; is caused by the host returning an
    &quot;unknown error&quot; response code. Tethering timing out and client
    connection error are both broken down further in
    InstantTethering.ConnectionToHostResult.Failure.TetheringTimeout and
    InstantTethering.ConnectionToHostResult.Failure.ClientConnection,
    respectively.
  </summary>
</histogram>

<histogram
    name="InstantTethering.ConnectionToHostResult.Failure.ClientConnection"
    enum="InstantTethering_ConnectionToHostResult_Failure_ClientConnection"
    expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Breaks down the reasons why the client failed to connect to the hotspot, and
    the number of times they occurred.

    Note that a client connection can be canceled by a user either via pressing
    the Disconnect button or beginning a connection attempt to another host. The
    &quot;internal error&quot; case is a general bucket that captures client
    errors we don't expect to be significant failure causes.

    This histogram breaks down the &quot;client connection error&quot; count of
    InstantTethering.ConnectionToHostResult.Failure.
  </summary>
</histogram>

<histogram
    name="InstantTethering.ConnectionToHostResult.Failure.TetheringTimeout"
    enum="InstantTethering_ConnectionToHostResult_Failure_TetheringTimeout"
    expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Captures the number of times of whether or not first-time setup was required
    when tethering timed out.

    Starting tethering on the host works like so: if first-time setup is
    required on the host, a first-time setup UI is shown on the host; once the
    user interacts with it, the provisioning app is called. If first-time setup
    is not required, then the provisioning app is directly called. To be clear:
    the provisioning app is always run.

    There are two possible ways for tethering to time out: either the
    provisioning app flaked (crashed or hung, and never called back to Instant
    Tethering), or the user never interacted with the first-time setup UI flow
    (assuming first-time setup was required).

    Because it's very unlikely for the provisioning app to flake, we can read
    the &quot;was first-time setup&quot; count as almost always indicative of
    the user not interacting with the first-time setup UI. We expect the
    &quot;was not first-time setup&quot; count to be low (because, as mentioned,
    it's very unlikely for the provisioning app to flake).

    This histogram breaks down the &quot;tethering timed out&quot; count of
    InstantTethering.ConnectionToHostResult.Failure.
  </summary>
</histogram>

<histogram
    name="InstantTethering.ConnectionToHostResult.ProvisioningFailureRate"
    enum="InstantTethering_ConnectionToHostResult_ProvisioningFailureRate"
    expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Provides a breakdown of the times a connection to a host was either
    unsuccessful due to provisioning failure (the carrier disallows tethering)
    or &quot;other&quot; (this is captured under
    InstantTethering.ConnectionToHostResult.SuccessRate.Background).

    This metric captures the rough percentage of connections which are
    unsuccessful due to provisioning failure. It is separate from
    InstantTethering.ConnectionToHostResult.SuccessRate.Background and the
    metrics related to it because provisioning failure is neither truly a
    success nor an error.
  </summary>
</histogram>

<histogram name="InstantTethering.ConnectionToHostResult.SuccessRate"
    enum="InstantTethering_ConnectionToHostResult_SuccessRate">
  <obsolete>
    Removed 2019/02 in favor of MultiDevice.* equivalent.
  </obsolete>
  <owner>hansberry@chromium.org</owner>
  <summary>
    Captures the count of successful and failed connection attempts.

    This metric counts the top-level user action from beginning to connect, all
    the way through success or failure of the connection (excluding any
    programmatic retries within the connection attempt).

    This metric provides an immediate understanding of the Instant Tethering
    connection success rate. The counts of failure are broken down in
    InstantTethering.ConnectionToHostResult.Failure.
  </summary>
</histogram>

<histogram
    name="InstantTethering.ConnectionToHostResult.SuccessRate.Background"
    enum="InstantTethering_ConnectionToHostResult_SuccessRate"
    expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Captures the count of successful and failed connection attempts.

    This metric counts the top-level user action from beginning to connect, all
    the way through success or failure of the connection (excluding any
    programmatic retries within the connection attempt).

    This metric provides an immediate understanding of the Instant Tethering
    connection success rate. The counts of failure are broken down in
    InstantTethering.ConnectionToHostResult.Failure.
  </summary>
</histogram>

<histogram name="InstantTethering.FeatureState"
    enum="InstantTethering_FeatureState" expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Breaks down the state of Instant Tethering during user sessions. All states,
    except for 'Enabled', indicate that the feature was not active. This
    histogram is emitted to each time a condition affecting Instant Tethering's
    state, e.g. the user enabling or disabling the feature, or Bluetooth
    becoming enabled or disabled.

    Note: The &quot;Screen locked&quot; bucket is obsolete, and should not have
    any reports.
  </summary>
</histogram>

<histogram
    name="InstantTethering.GattConnectionAttempt.EffectiveSuccessRateWithRetries"
    enum="BooleanSuccess">
  <obsolete>
    Removed 2019/02 in favor of MultiDevice.* equivalent.
  </obsolete>
  <owner>hansberry@chromium.org</owner>
  <summary>
    Captures the effective count of successful and failed GATT connection
    attempts, including retries. This means that if a GATT connection attempt
    fails but then succeeds on a future retry, this is counted as a single
    success. In the context of this metric, a failure represents a GATT failure
    in all retry attempts.

    An individual attempt is considered successful if a GATT connection was
    created and authenticated successfully (i.e., the connection was ready for
    Instant Tethering to exchange protocol messages).
  </summary>
</histogram>

<histogram
    name="InstantTethering.GattConnectionAttempt.EffectiveSuccessRateWithRetries.Background"
    enum="BooleanSuccess">
  <obsolete>
    Removed 2019/02 in favor of MultiDevice.* equivalent.
  </obsolete>
  <owner>hansberry@chromium.org</owner>
  <summary>
    Captures the effective count of successful and failed GATT connection
    attempts, including retries. This means that if a GATT connection attempt
    fails but then succeeds on a future retry, this is counted as a single
    success. In the context of this metric, a failure represents a GATT failure
    in all retry attempts.

    An individual attempt is considered successful if a GATT connection was
    created and authenticated successfully (i.e., the connection was ready for
    Instant Tethering to exchange protocol messages).

    This metric is the background advertisement analog of
    InstantTethering.GattConnectionAttempt.EffectiveSuccessRateWithRetries.
  </summary>
</histogram>

<histogram name="InstantTethering.GattConnectionAttempt.SuccessRate"
    enum="BooleanSuccess">
  <obsolete>
    Removed 2019/02 in favor of MultiDevice.* equivalent.
  </obsolete>
  <owner>hansberry@chromium.org</owner>
  <summary>
    Captures the count of successful and failed GATT connection attempts.

    An attempt is considered successful if a GATT connection was created and
    authenticated successfully (i.e., the connection was ready for Instant
    Tethering to exchange protocol messages).
  </summary>
</histogram>

<histogram name="InstantTethering.GattConnectionAttempt.SuccessRate.Background"
    enum="BooleanSuccess">
  <obsolete>
    Removed 2019/02 in favor of MultiDevice.* equivalent.
  </obsolete>
  <owner>hansberry@chromium.org</owner>
  <summary>
    Captures the count of successful and failed GATT connection attempts.

    An attempt is considered successful if a GATT connection was created and
    authenticated successfully (i.e., the connection was ready for Instant
    Tethering to exchange protocol messages).

    This metric is the background advertisement analog of
    InstantTethering.GattConnectionAttempt.SuccessRate.
  </summary>
</histogram>

<histogram name="InstantTethering.HostScanBatchDuration" units="ms"
    expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    The duration of a batch of host scans. A batch is defined as a series of one
    or host scans separated by no more than one minute.

    For example, if a scan occurs then stops and does not start back up again,
    the metric logged would be the amount of time taken for that scan. However,
    if a scan finishes and a new scan starts up again less than a minute after
    the previous scan finished, the metric logged would be the time difference
    between the start of the first scan and the finish of the second scan.
  </summary>
</histogram>

<histogram name="InstantTethering.HostScanResult"
    enum="InstantTethering_HostScanResult" expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Provides a breakdown of the results of each host scan. This metric is
    recorded after each host scan.

    Comparing the number of times no hosts were found against the other buckets
    can help determine how often a host scan is useful.

    The sum of the buckets capturing that a notification was shown can be used
    as a baseline of comparison against
    InstantTethering.ConnectionToHostResult.ProvisioningFailureRate to roughly
    measure engagement with the notification.
  </summary>
</histogram>

<histogram name="InstantTethering.HotspotUsageDuration" units="ms"
    expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    The duration of time between the start and end of a Tether connection.
    Timing starts when the device connects to the Wi-Fi hotspot and ends when
    the device becomes disconnected from the Wi-Fi hotspot.
  </summary>
</histogram>

<histogram name="InstantTethering.MultiDeviceFeatureState"
    enum="MultiDevice_FeatureState" expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Indicates the feature state of the Instant Tethering feature. This metric is
    emitted to at the creation of the user session (when the user logs in), and
    when feature state updates occur.
  </summary>
</histogram>

<histogram name="InstantTethering.NotificationInteractionType"
    enum="InstantTethering_NotificationInteractionType"
    expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Counts the number of interactions a user has with each of the Instant
    Tethering notifications.
  </summary>
</histogram>

<histogram
    name="InstantTethering.Performance.AdvertisementToConnectionDuration"
    units="ms">
  <obsolete>
    Removed 2019/02 in favor of MultiDevice.* equivalent.
  </obsolete>
  <owner>hansberry@chromium.org</owner>
  <summary>
    The duration of time between when a client begins to scan and advertise, and
    connects to a host (before authentication).

    This histogram only considers the time from when the client *sends* an
    advertisement, and not when the client *receives* an advertisement. See
    InstantTethering.Performance.StartScanToReceiveAdvertisementDuration and
    InstantTethering.Performance.ReceiveAdvertisementToConnectionDuration for
    histograms that consider when the client receives an advertisement.

    This histogram is the foreground advertisement analog of
    InstantTethering.Performance.StartScanToConnectionDuration.Background.
  </summary>
</histogram>

<histogram
    name="InstantTethering.Performance.ConnectionToAuthenticationDuration"
    units="ms">
  <obsolete>
    Removed 2019/02 in favor of MultiDevice.* equivalent.
  </obsolete>
  <owner>hansberry@chromium.org</owner>
  <summary>
    The duration of time between when a client connects to a host, and
    authenticates with that host.
  </summary>
</histogram>

<histogram
    name="InstantTethering.Performance.ConnectionToAuthenticationDuration.Background"
    units="ms">
  <obsolete>
    Removed 2019/02 in favor of MultiDevice.* equivalent.
  </obsolete>
  <owner>hansberry@chromium.org</owner>
  <summary>
    The duration of time between when a client connects to a host, and
    authenticates with that host.

    This histogram is the background advertisement analog of
    InstantTethering.Performance.ConnectionToAuthenticationDuration.
  </summary>
</histogram>

<histogram name="InstantTethering.Performance.ConnectTetheringResponseDuration"
    units="ms" expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    The duration of time between when a client authenticates with a host, and
    receives a ConnectTetheringResponse.
  </summary>
</histogram>

<histogram name="InstantTethering.Performance.ConnectToHostDuration" units="ms">
  <obsolete>
    Removed 2019/02 in favor of MultiDevice.* equivalent.
  </obsolete>
  <owner>hansberry@chromium.org</owner>
  <summary>
    The duration of time it takes for the client to connect to the host, from
    the moment the user taps 'Connect', until the client connects to the host's
    hotspot. This does not include timeouts.
  </summary>
</histogram>

<histogram name="InstantTethering.Performance.ConnectToHostDuration.Background"
    units="ms" expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    The duration of time it takes for the client to connect to the host, from
    the moment the user taps 'Connect', until the client connects to the host's
    hotspot. This does not include timeouts.
  </summary>
</histogram>

<histogram name="InstantTethering.Performance.ConnectToHotspotDuration"
    units="ms" expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    The duration of time it takes for the client to connect to the provided
    hotspot after receiving a ConnectTetheringResponse. This does not include
    timeouts.
  </summary>
</histogram>

<histogram
    name="InstantTethering.Performance.DisconnectTetheringRequestDuration"
    units="ms" expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    The duration of time it takes for the client to send off a
    DisconnectTetheringRequest.
  </summary>
</histogram>

<histogram name="InstantTethering.Performance.KeepAliveTickleResponseDuration"
    units="ms" expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    The duration of time between when a client authenticates with a host, and
    receives a KeepAliveTickleResponse.
  </summary>
</histogram>

<histogram
    name="InstantTethering.Performance.ReceiveAdvertisementToConnectionDuration"
    units="ms">
  <obsolete>
    Removed 2019/02 in favor of MultiDevice.* equivalent.
  </obsolete>
  <owner>hansberry@chromium.org</owner>
  <summary>
    The duration of time between when a client received a foreground
    advertisement from a host, and connected to that host (before
    authentication).
  </summary>
</histogram>

<histogram
    name="InstantTethering.Performance.ReceiveAdvertisementToConnectionDuration.Background"
    units="ms">
  <obsolete>
    Removed 2019/02 in favor of MultiDevice.* equivalent.
  </obsolete>
  <owner>hansberry@chromium.org</owner>
  <summary>
    The duration of time between when a client received a background
    advertisement from a host, and connected to that host (before
    authentication).

    This histogram is the background advertisement analog of
    InstantTethering.Performance.ReceiveAdvertisementToConnectionDuration.
  </summary>
</histogram>

<histogram
    name="InstantTethering.Performance.StartScanToConnectionDuration.Background"
    units="ms">
  <obsolete>
    Removed 2019/02 in favor of MultiDevice.* equivalent.
  </obsolete>
  <owner>hansberry@chromium.org</owner>
  <summary>
    The duration of time between when a client begins to scan, and connects to a
    host (before authentication).

    This histogram is the background advertisement analog of
    InstantTethering.Performance.AdvertisementToConnectionDuration.
  </summary>
</histogram>

<histogram
    name="InstantTethering.Performance.StartScanToReceiveAdvertisementDuration"
    units="ms">
  <obsolete>
    Removed 2019/02 in favor of MultiDevice.* equivalent.
  </obsolete>
  <owner>hansberry@chromium.org</owner>
  <summary>
    The duration of time between when a client begins to scan and advertise, and
    receives a foreground advertisement from a host.
  </summary>
</histogram>

<histogram
    name="InstantTethering.Performance.StartScanToReceiveAdvertisementDuration.Background"
    units="ms">
  <obsolete>
    Removed 2019/02 in favor of MultiDevice.* equivalent.
  </obsolete>
  <owner>hansberry@chromium.org</owner>
  <summary>
    The duration of time between when a client begins to scan, and receives a
    background advertisement from a host.

    This histogram is the background advertisement analog of
    InstantTethering.Performance.AdvertisementToConnectionDuration.
  </summary>
</histogram>

<histogram
    name="InstantTethering.Performance.TetherAvailabilityResponseDuration"
    units="ms" expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    The duration of time between when a client authenticates with a host, and
    receives a TetherAvailabilityResponse.
  </summary>
</histogram>

<histogram name="InstantTethering.SessionCompletionReason"
    enum="InstantTethering_SessionCompletionReason" expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Provides a breakdown of how each Tether session ended. A session begins when
    a device is first connected to a host's hotspot, and ends when the device is
    no longer connected to the hotspot. This metric is recorded at the end of
    each session.
  </summary>
</histogram>

<histogram name="InstantTethering.UserPreference.OnStartup"
    enum="BooleanEnabled" expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Provides the count of the number of users who have the Instant Tethering
    toggle enabled vs. disabled on startup. This metric is logged each time a
    user logs into a Chromebook.
  </summary>
</histogram>

<histogram name="InstantTethering.UserPreference.OnToggle"
    enum="BooleanEnabled" expires_after="2020-02-19">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Provides the count of the number of times users have enabled or disabled the
    user preference for Mobile data. This metric is logged each time the value
    is toggled.
  </summary>
</histogram>

<histogram name="interstitial.authority_invalid_time" units="ms">
  <obsolete>
    Removed on 8/1/13.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    The time between the SSL interstitial display and the user decision, which
    may be either accept or deny. This is only recorded for overridable SSL
    warnings with a CERT_AUTHORITY_INVALID warning. Timing begins when user
    first focuses on the page.
  </summary>
</histogram>

<histogram name="interstitial.captive_portal"
    enum="CaptivePortalBlockingPageEvent">
  <owner>meacer@chromium.org</owner>
  <summary>
    User action when the user is shown a captive portal error page.
  </summary>
</histogram>

<histogram name="interstitial.common_name_invalid_time" units="ms">
  <obsolete>
    Removed on 8/1/13.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    The time between the SSL interstitial display and the user decision, which
    may be either accept or deny. This is only recorded for overridable SSL
    warnings with a CERT_COMMON_NAME_INVALID warning. Timing begins when user
    first focuses on the page.
  </summary>
</histogram>

<histogram name="interstitial.date_invalid_time" units="ms">
  <obsolete>
    Removed on 8/1/13.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    The time between the SSL interstitial display and the user decision, which
    may be either accept or deny. This is only recorded for overridable SSL
    warnings with a CERT_DATE_INVALID warning. Timing begins when user first
    focuses on the page.
  </summary>
</histogram>

<histogram name="interstitial.decision" enum="SecurityInterstitialDecision">
  <owner>felt@chromium.org</owner>
  <owner>carlosil@chromium.org</owner>
  <summary>
    User decision when presented with a security interstitial. As of M44,
    subresource interstitials were split into their own entries. As of M52,
    social_engineering_ads* and social_engineering_landing* interstitial reasons
    are split into their own entries from phishing*.
  </summary>
</histogram>

<histogram name="interstitial.decision.repeat_visit"
    enum="SecurityInterstitialDecision">
  <owner>felt@chromium.org</owner>
  <owner>carlosil@chromium.org</owner>
  <summary>
    User decision when presented with a security interstitial, on a site that
    the user had previously visited. As of M44, subresource interstitials were
    split into their own entries. As of M52, social_engineering_ads* and
    social_engineering_landing* interstitial reasons are split into their own
    entries from phishing*.
  </summary>
</histogram>

<histogram name="interstitial.interaction"
    enum="SecurityInterstitialInteraction">
  <owner>felt@chromium.org</owner>
  <owner>carlosil@chromium.org</owner>
  <summary>
    User interactions with a security interstitial. As of M44, subresource
    interstitials were split into their own entries. As of M52,
    social_engineering_ads* and social_engineering_landing* interstitial reasons
    are split into their own entries from phishing*.
  </summary>
</histogram>

<histogram name="interstitial.ssl" enum="SSLResponseTypesV2">
  <obsolete>
    Replaced by interstitial.ssl_overridable.* and
    interstitial.ssl_nonoverridable.* in Jan 2015 (M42).
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    User action when the user is shown a SSL interstitial. SHOW_ALL and MORE
    refer to the total number of SSL errors; all of the other numbers pertain to
    the number of actions related to SSL errors that are overridable. The counts
    do not sum to 100%; SHOW_ALL is a superset of SHOW_OVERRIDABLE, which in
    turn will be a supserset of the PROCEED/DONT_PROCEED variables.
    SHOW_UNDERSTAND is only being used by an experimental field trial. The
    interstitials due to captive portals are now recorded in the
    &quot;SSLCaptivePortal&quot;.
  </summary>
</histogram>

<histogram name="interstitial.ssl.captive_portal" enum="SSLCaptivePortal">
  <owner>meacer@chromium.org</owner>
  <summary>
    Record possible states of captive portals. This histogram is emitted
    (possibly multiple times to different buckets) whenever a ssl interstitial
    page is displayed and captive portal detection is enabled. The captive
    portal technique forces a client on a network to see a special web page
    (usually for authentication purposes) before using the internet normally.
  </summary>
</histogram>

<histogram name="interstitial.ssl.cause.nonoverridable" enum="SSLErrorCauses">
  <owner>felt@chromium.org</owner>
  <owner>carlosil@chromium.org</owner>
  <summary>
    Possible non-attack causes of the non-overridable SSL interstitial. Many
    errors are not reported in this histogram and new errors may be added over
    time, therefore one should not look at the breakdown of this histogram (one
    bucket divided by the sum) because that will be inaccurate. Instead, one
    should look at each bucket count divided by the count of the ssl errors of
    that type. E.g. WWW mismatch is recorded only when the ssl error is
    CERT_COMMON_NAME_INVALID, so one should look at the bucket count of WWW
    mismatch divided by the bucket count of CERT_COMMON_NAME_INVALID in the
    histogram interstitial.ssl_error_type.
  </summary>
</histogram>

<histogram name="interstitial.ssl.cause.overridable" enum="SSLErrorCauses">
  <owner>felt@chromium.org</owner>
  <owner>carlosil@chromium.org</owner>
  <summary>
    Possible non-attack causes of the overridable SSL interstitial. Many errors
    are not reported in this histogram and new errors may be added over time,
    therefore one should not look at the breakdown of this histogram (one bucket
    divided by the sum) because that will be inaccurate. Instead, one should
    look at each bucket count divided by the count of the ssl errors of that
    type. E.g. WWW mismatch is recorded only when the ssl error is
    CERT_COMMON_NAME_INVALID, so one should look at the bucket count of WWW
    mismatch divided by the bucket count of CERT_COMMON_NAME_INVALID in the
    histogram interstitial.ssl_error_type.
  </summary>
</histogram>

<histogram name="interstitial.ssl.clockstate.build_time" enum="ClockStates">
  <owner>mab@chromium.org</owner>
  <summary>
    State of the system clock, as inferred from the build timestamp, when an SSL
    CERT_INVALID_DATE error is seen.
  </summary>
</histogram>

<histogram name="interstitial.ssl.clockstate.network" enum="ClockStates">
  <obsolete>
    Deprecated August 2016. Replaced with interstitial.ssl.clockstate.network2,
    which records reasons why network time might be unavailable.
  </obsolete>
  <owner>mab@chromium.org</owner>
  <summary>
    State of the system clock, relative to network time, when an SSL
    CERT_INVALID_DATE error is seen.
  </summary>
</histogram>

<histogram name="interstitial.ssl.clockstate.network2"
    enum="NetworkClockStates">
  <obsolete>
    Deprecated October 2016. Due to a bug, data in this histogram is mislabelled
    and should be disregarded. Replaced with
    interstitial.ssl.clockstate.network3.
  </obsolete>
  <owner>estark@chromium.org</owner>
  <owner>mab@chromium.org</owner>
  <summary>
    State of the system clock, relative to network time, when an SSL
    CERT_INVALID_DATE error is seen.
  </summary>
</histogram>

<histogram name="interstitial.ssl.clockstate.network3"
    enum="NetworkClockStates">
  <owner>estark@chromium.org</owner>
  <owner>mab@chromium.org</owner>
  <summary>
    State of the system clock, relative to network time, when an SSL
    CERT_INVALID_DATE error is seen.
  </summary>
</histogram>

<histogram name="interstitial.ssl.connection_type"
    enum="ResourcePrefetchPredictorNetworkType">
  <owner>felt@chromium.org</owner>
  <owner>carlosil@chromium.org</owner>
  <summary>
    The histogram shows the connection types associated with SSL warnings. E.g.,
    do more warnings occur on WiFi?
  </summary>
</histogram>

<histogram name="interstitial.ssl.did_user_revoke_decisions"
    enum="BooleanRevoked">
  <obsolete>
    Deprecated September 13 2017.
  </obsolete>
  <owner>jww@chromium.org</owner>
  <summary>
    Specifies when a user enters the page info menu whether or not the user
    pressed the SSL decisions revoke button. This can only by done if the user
    is in the &quot;Remember Certificate Error Decisions&quot; experiment. This
    is logged when the page info UI is closed. Replaced by
    .did_user_revoke_decisions2 to keep data separate after changing
    functionality to only log when button was visible.
  </summary>
</histogram>

<histogram name="interstitial.ssl.did_user_revoke_decisions2"
    enum="BooleanRevoked">
  <owner>carlosil@chromium.org</owner>
  <summary>
    Specifies when a user enters the page info menu whether or not the user
    pressed the SSL decisions revoke button. This is logged when the page info
    UI is closed, only if the button was visible in the page info.
  </summary>
</histogram>

<histogram name="interstitial.ssl.expiration_and_decision.nonoverridable"
    enum="SSLIsExpiredAndDecision">
  <obsolete>
    Deprecated Dec 2017 (M65).
  </obsolete>
  <owner>jww@chromium.org</owner>
  <summary>
    Records when a user has made a decision to proceed on a nonoverridable SSL
    interstitial. Also records whether a prior decision had been made but the
    decision expired.
  </summary>
</histogram>

<histogram name="interstitial.ssl.expiration_and_decision.overridable"
    enum="SSLIsExpiredAndDecision">
  <obsolete>
    Deprecated Dec 2017 (M65).
  </obsolete>
  <owner>jww@chromium.org</owner>
  <summary>
    Records when a user has made a decision to proceed on an overridable SSL
    interstitial. Also records whether a prior decision had been made but the
    decision expired.
  </summary>
</histogram>

<histogram name="interstitial.ssl.good_cert_seen" enum="SSLGoodCertSeenEvent">
  <obsolete>
    Deprecated Nov 2017 (M64).
  </obsolete>
  <owner>jww@chromium.org</owner>
  <summary>
    Emitted when a good certificate is seen, specifying whether the user already
    gave an exception for a bad certificate for the same host.
  </summary>
</histogram>

<histogram name="interstitial.ssl.good_cert_seen_type_is_frame" enum="Boolean">
  <obsolete>
    Deprecated December 2017 (M65).
  </obsolete>
  <owner>jam@chromium.org</owner>
  <summary>
    Whether the resource type for a request that succeeded with a good cert and
    revoked a certificate exception is for a frame (as opposed to subresource).
  </summary>
</histogram>

<histogram name="interstitial.ssl.severity_score.authority_invalid" units="%">
  <obsolete>
    Deprecated Jan 2015 (M42).
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    The likelihood of a |CERT_AUTHORITY_INVALID| error being an attack.
  </summary>
</histogram>

<histogram name="interstitial.ssl.severity_score.common_name_invalid" units="%">
  <obsolete>
    Deprecated Jan 2015 (M42).
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    The likelihood of a |CERT_COMMON_NAME_INVALID| error being an attack.
  </summary>
</histogram>

<histogram name="interstitial.ssl.severity_score.date_invalid" units="%">
  <obsolete>
    Deprecated Jan 2015 (M42).
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    The likelihood of a |CERT_DATE_INVALID| error being an attack.
  </summary>
</histogram>

<histogram name="interstitial.ssl.visited_site_after_warning" enum="Boolean">
  <owner>carlosil@chromium.org</owner>
  <summary>
    Records when a user visits a site after clicking through a certificate
    warning.
  </summary>
</histogram>

<histogram name="interstitial.ssl_accept_time" units="ms">
  <obsolete>
    Removed on 8/1/13.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    The time between the SSL interstitial display and the user decision, when
    the user accepts the SSL warning. This is only recorded for overridable SSL
    warnings. Timing begins when user first focuses on the page.
  </summary>
</histogram>

<histogram name="interstitial.ssl_error_handler" enum="SSLErrorHandlerEvent">
  <owner>meacer@chromium.org</owner>
  <owner>carlosil@chromium.org</owner>
  <summary>The type of action that the SSL error handler takes.</summary>
</histogram>

<histogram name="interstitial.ssl_error_handler.cert_date_error_delay"
    units="ms">
  <owner>estark@chromium.org</owner>
  <summary>
    When handling a certificate date error, Chrome (under certain Variations
    Service experiments) will delay displaying the warning interstitial for up
    to 3 seconds while querying a network time service. This histogram records
    the amount of time for which the interstitial was delayed on this check. The
    histogram is recorded even when a time query is not sent (for example,
    because Chrome already had an up-to-date network timestamp that it could
    use, or because the client is not in the experimental group that enables
    network time queries).
  </summary>
</histogram>

<histogram name="interstitial.ssl_error_handler.superfish" enum="Boolean">
  <obsolete>
    Deprecated 2018-11.
  </obsolete>
  <owner>estark@chromium.org</owner>
  <summary>
    When encountering a certificate error, Chrome looks for the well-known
    Superfish certificate in the certificate chain and records this histogram as
    true if the Superfish certificate is present and false otherwise. The
    Superfish certificate is an indication that the user is vulnerable to
    man-in-the-middle attacks because of software installed on their computer.
  </summary>
</histogram>

<histogram name="interstitial.ssl_error_type" enum="SSLErrorTypes">
  <owner>felt@chromium.org</owner>
  <owner>carlosil@chromium.org</owner>
  <summary>
    The type of SSL error that the user encounters. This is recorded for all SSL
    warnings, regardless of whether they are overridable.
  </summary>
</histogram>

<histogram name="interstitial.ssl_nonoverridable.is_recurrent_error"
    enum="BooleanRecurrentError" expires_after="M72">
  <owner>estark@chromium.org</owner>
  <summary>
    Recorded when a non-overridable SSL interstitial is shown. The value is true
    if the user has seen the same error multiple times (in which case a special
    message is added to the interstitial).
  </summary>
</histogram>

<histogram name="interstitial.ssl_nonoverridable.is_recurrent_error.ct_error"
    enum="BooleanRecurrentError" expires_after="M72">
  <owner>estark@chromium.org</owner>
  <summary>
    Recorded when a non-overridable SSL interstitial is shown for a Certificate
    Transparency error. The value is true if the user has seen the same error
    multiple times (in which case a special message is added to the
    interstitial).
  </summary>
</histogram>

<histogram name="interstitial.ssl_overridable.is_recurrent_error"
    enum="BooleanRecurrentError" expires_after="M72">
  <owner>estark@chromium.org</owner>
  <summary>
    Recorded when an overridable SSL interstitial is shown. The value is true if
    the user has seen the same error multiple times (in which case a special
    message is added to the interstitial).
  </summary>
</histogram>

<histogram name="interstitial.ssl_overridable.is_recurrent_error.ct_error"
    enum="BooleanRecurrentError" expires_after="M72">
  <owner>estark@chromium.org</owner>
  <summary>
    Recorded when an overridable SSL interstitial is shown for a Certificate
    Transparency error. The value is true if the user has seen the same error
    multiple times (in which case a special message is added to the
    interstitial).
  </summary>
</histogram>

<histogram name="interstitial.ssl_recurrent_error.action"
    enum="RecurrentErrorAction" expires_after="M72">
  <owner>estark@chromium.org</owner>
  <summary>
    Recorded whenever the user sees or proceeds through an SSL interstitial for
    an error that the user has seen multiple times (in which case a special
    message is added to the interstitial).
  </summary>
</histogram>

<histogram name="interstitial.ssl_recurrent_error.ct_error.action"
    enum="RecurrentErrorAction" expires_after="M72">
  <owner>estark@chromium.org</owner>
  <summary>
    Recorded whenever the user sees or proceeds through an SSL interstitial for
    a Certificate Transparency error that the user has seen multiple times (in
    which case a special message is added to the interstitial).
  </summary>
</histogram>

<histogram name="interstitial.ssl_reject_time" units="ms">
  <obsolete>
    Removed on 8/1/13.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    The time between the SSL interstitial display and the user decision, when
    the user rejects the SSL warning. This is only recorded for overridable SSL
    warnings. Timing begins when user first focuses on the page.
  </summary>
</histogram>

<histogram name="Invalidations.GCMUpstreamRequest"
    enum="GCMUpstreamMessageStatus">
  <owner>nyquist@chromium.org</owner>
  <owner>khushalsagar@chromium.org</owner>
  <summary>
    Status of sending outgoing invalidation message through GCM upsteam.
  </summary>
</histogram>

<histogram name="Invalidations.NetworkChannel"
    enum="InvalidationNetworkChannel">
  <owner>pavely@chromium.org</owner>
  <summary>Network channel used for invalidations.</summary>
</histogram>

<histogram name="Invalidations.StatusChanged" enum="InvalidatorState">
  <owner>melandory@chromium.org</owner>
  <summary>
    Status of the invalidation component. The metric is recorded on startup
    unless invalidations are disabled, plus when the state changes.
  </summary>
</histogram>

<histogram name="IOS.CanonicalURLResult" enum="CanonicalURLResult">
  <obsolete>
    Deprecated 2018-01. As of M65 use Mobile.CanonicalURLResult.
  </obsolete>
  <owner>gchatz@chromium.org</owner>
  <summary>
    The result of the operation to retrieve the page's canonical URL.
  </summary>
</histogram>

<histogram name="IOS.CommittedNavigationHasContext" enum="Boolean"
    expires_after="2019-05-01">
  <owner>danyao@chromium.org</owner>
  <summary>
    When a navigation is committed, it should have a non-null NavigationContext.
    This histogram counts the frequency of this invariant holding at the time
    when a new navigation is committed. It is used to verify the effectiveness
    of code fixes because this issue is not currently reproducible in testing
    (http://crbug.com/864769). True means a non-null NavigationContext is
    present.
  </summary>
</histogram>

<histogram name="IOS.CommittedURLMatchesCurrentItem" enum="Boolean">
  <owner>danyao@chromium.org</owner>
  <summary>
    When a navigation is committed, the web view URL is expected to match that
    of the current back-forward item. WKWebView seems to break this assumption
    at times. This histogram counts the frequency of this invariant violation at
    the time when a new navigation is committed. True means the URL matches the
    current back-forward item.
  </summary>
</histogram>

<histogram name="IOS.ContentExtension.DisplayCount" units="count">
  <owner>olivierrobin@chromium.org</owner>
  <summary>
    The number of times the Content Extension was displayed since last Chrome
    foregrounding. Reported when Chrome is put in foregrounded.
  </summary>
</histogram>

<histogram name="IOS.ContentExtension.Index" units="index">
  <owner>olivierrobin@chromium.org</owner>
  <summary>
    The index of the URL selected by the user in the Content Extension.
  </summary>
</histogram>

<histogram name="IOS.Cookies.GetCookiesForURLCallResult"
    enum="IOSGetCookiesForURLCallResult">
  <owner>mrefaat@chromium.org</owner>
  <summary>
    Recorded to indicate whether the GetCookiesForURL call found cookies or not
    when called on a specific system cookie store implementation. Most of the
    cookies fetching on iOS Chromium is done by the WKWebView and doesn't
    involve calling GetCookiesForURL. The method is only called when a request
    is made by the UrlRequestFetcher for cases that are not handled by WKWebView
    (eg. Downloads, Auto Suggestions and NTP tiles).
  </summary>
</histogram>

<histogram name="IOS.Cookies.GetCookiesForURLCallStoreType"
    enum="IOSGetCookiesForURLCallCookieStoreType">
  <owner>mrefaat@chromium.org</owner>
  <summary>
    The system cookie store type used when GetCookiesForURL method is called.
    Most of the cookies fetching on iOS Chromium is done by the WKWebView and
    doesn't involve calling GetCookiesForURL. The method is only called when a
    request is made by the UrlRequestFetcher for cases that are not handled by
    WKWebView (eg. Downloads, Auto Suggestions and NTP tiles).
  </summary>
</histogram>

<histogram name="IOS.DragAndDrop.DragContent" enum="DragContent">
  <owner>jif@chromium.org</owner>
  <summary>
    The type of content that the user is dragging into Chrome. Because a drag
    can contain multiple types of objects, multiple DragContent values may be
    recorded for a single drag event.
  </summary>
</histogram>

<histogram name="IOS.EnterTabSwitcherSnapshotResult"
    enum="EnterTabSwitcherSnapshotResult" expires_after="2019-08-01">
  <owner>edchin@chromium.org</owner>
  <owner>justincohen@chromium.org</owner>
  <summary>
    Tracks the result of snapshotting when the user enters the tab switcher.
    Recorded whenever the user enters the tab switcher.
  </summary>
</histogram>

<histogram name="IOS.FinishedNavigationHasContext" enum="Boolean"
    expires_after="2019-05-01">
  <owner>danyao@chromium.org</owner>
  <summary>
    When a navigation is finished, it should have a non-null NavigationContext.
    This histogram counts the frequency of this invariant holding at the time
    when a new navigation is finished. It is used to verify the effectiveness of
    code fixes because this issue is not currently reproducible in testing
    (http://crbug.com/864769). True means a non-null NavigationContext is
    present.
  </summary>
</histogram>

<histogram name="IOS.FinishedNavigationHasItem" enum="Boolean"
    expires_after="2019-05-01">
  <owner>danyao@chromium.org</owner>
  <summary>
    When a navigation is finished, it should have a non-null NavigationItem.
    This histogram counts the frequency of this invariant holding at the time
    when a new navigation is finished. It is used to verify the effectiveness of
    code fixes because this issue is not currently reproducible in testing
    (http://crbug.com/864769). True means a non-null NavigationItem is present.
  </summary>
</histogram>

<histogram name="IOS.FinishedURLMatchesCurrentItem" enum="Boolean">
  <owner>danyao@chromium.org</owner>
  <summary>
    When a navigation is finished, the web view URL is expected to match that of
    the current back-forward item. WKWebView seems to break this assumption at
    times. This histogram counts the frequency of this invariant violation at
    the time when a new navigation is finished. True means the URL matches the
    current back-forward item.
  </summary>
</histogram>

<histogram name="IOS.Handoff.Origin" enum="IOSHandoffOrigin">
  <owner>erikchen@chromium.org</owner>
  <summary>
    This event is recorded each time a Handoff is received by Chrome on iOS. The
    enumeration indicates the source of the Handoff.
  </summary>
</histogram>

<histogram name="IOS.Inspect.Console" enum="IOSInspectConsoleAction">
  <owner>eugenebut@chromium.org</owner>
  <owner>michaeldo@chromium.org</owner>
  <summary>
    Recorded when the iOS JavaScript Console logging is manually enabled or
    manually disabled.
  </summary>
</histogram>

<histogram name="IOS.IPHBubbleDismissalReason" enum="BubbleDismissalReason">
  <owner>pkl@chromium.org</owner>
  <summary>
    Tracks the reason for why the In Product Help bubble was dismissed.
  </summary>
</histogram>

<histogram name="IOS.MailtoURLRewritten" enum="Boolean">
  <obsolete>
    Deprecated 2018-12.
  </obsolete>
  <owner>pkl@chromium.org</owner>
  <summary>
    Counts the times when a mailto: URL is tapped by user and whether the URL
    has been rewritten for an available native Mail client app or not.
  </summary>
</histogram>

<histogram name="IOS.MainThreadFreezeDetection.RecoveredAfter" units="ms"
    expires_after="2019-11-30">
  <owner>olivierrobin@chromium.org</owner>
  <summary>
    The time during which main thread was not responding. 0 if application was
    killed before recovering. Logged after an action posted on the main thread
    is not executed immediately. The histogram is sent when the task is finally
    executed or on next application startup.
  </summary>
</histogram>

<histogram name="IOS.NTP.Impression" enum="IOSNTPImpression">
  <owner>gambard@chromium.org</owner>
  <summary>
    The type of NTP impressions on iOS, split by type of suggestions shown
    (local vs remote vs remote_collapsed).
  </summary>
</histogram>

<histogram name="IOS.OpenIn.DownloadResult" enum="IOSOpenInDownloadResult">
  <owner>mrefaat@chromium.org</owner>
  <summary>
    The result of the download operation done when the user taps &quot;open
    in&quot; button to open a file by a different application.
  </summary>
</histogram>

<histogram name="IOS.PageLoadCount.Counts"
    enum="IOSPageLoadCountNavigationType">
  <owner>danyao@chromium.org</owner>
  <summary>The number of navigation started events by navigation type.</summary>
</histogram>

<histogram name="IOS.PageLoadCount.LoadingStarted">
  <owner>danyao@chromium.org</owner>
  <summary>
    The &quot;true&quot; value of this boolean histogram counts the number of
    page loading started events. The &quot;false&quot; value will never be seen.
  </summary>
</histogram>

<histogram name="IOS.PageLoadCountMigration.Counts"
    enum="IOSPageLoadCountNavigationType">
  <obsolete>
    Deprecated 2017-11.
  </obsolete>
  <owner>danyao@chromium.org</owner>
  <summary>
    Counts different types of navigation and loading events that are relevant to
    counting page loads.
  </summary>
</histogram>

<histogram name="IOS.PageLoadedSnapshotResult" enum="PageLoadedSnapshotResult"
    expires_after="2019-08-01">
  <owner>edchin@chromium.org</owner>
  <owner>justincohen@chromium.org</owner>
  <summary>
    Tracks the result of snapshotting when the page has been loaded.
  </summary>
</histogram>

<histogram name="IOS.PageLoadTiming.OmnibarToPageLoaded" units="ms">
  <owner>danyao@chromium.org</owner>
  <summary>
    Measures the time from the end of user input in the omnibox to when the page
    is fully loaded. Only measures page loads initiated by user typing a URL or
    selecting a suggested entry from the URL bar.
  </summary>
</histogram>

<histogram name="IOS.RepeatedExternalAppPromptResponse"
    enum="IOSRepeatedExternalAppPromptResponse">
  <owner>mrefaat@chromium.org</owner>
  <summary>
    The user reaction to the prompt that appears when a website tries to open an
    external application repeatedly.
  </summary>
</histogram>

<histogram name="IOS.RestoreNavigationItemCount" units="rank">
  <owner>eugenebut@chromium.org</owner>
  <summary>
    [iOS] The number of items Navigation Manager was requested to restore. 100
    is logged when the number of navigation items is greater than 100. This is
    just a requested count and actual number of restored items can be smaller.
    Restoration is triggered in the following cases (the list is not
    exhaustive): app cold start, remote tab was open, cookie were cleared,
    recently closed tab was restored.
  </summary>
</histogram>

<histogram name="IOS.RestoreNavigationTime" units="ms">
  <owner>eugenebut@chromium.org</owner>
  <summary>
    [iOS] Time spent on restoring committed Navigation Manager's items. Recorded
    once per restoration, as a cumulative time across all items. Restoration is
    triggered in the following cases (the list is not exhaustive): app cold
    start, remote tab was open, cookies were cleared, recently closed tab was
    restored. This metric will be used for monitoring session restoration
    performance which relies on system's WKWebView.
  </summary>
</histogram>

<histogram name="IOS.SearchExtension.Action" enum="IOSSearchExtensionAction">
  <owner>olivierrobin@chromium.org</owner>
  <summary>The action selected by the user in the Search Extension.</summary>
</histogram>

<histogram name="IOS.SearchExtension.DisplayCount" units="count">
  <owner>olivierrobin@chromium.org</owner>
  <summary>
    The number of times the Search Extension was displayed since last Chrome
    foregrounding. Reported when Chrome is put in foreground.
  </summary>
</histogram>

<histogram name="IOS.ShareExtension.ReceivedEntriesCount" units="files">
  <owner>olivierrobin@chromium.org</owner>
  <summary>
    The number of items received simultaneously in Chrome from the IOS share
    extension.
  </summary>
</histogram>

<histogram name="IOS.ShareExtension.ReceivedEntry"
    enum="IOSShareExtensionReceivedEntryType">
  <owner>olivierrobin@chromium.org</owner>
  <summary>Type of the item received from the iOS share extension.</summary>
</histogram>

<histogram name="IOS.ShareExtension.ReceivedEntryDelay" units="ms">
  <owner>olivierrobin@chromium.org</owner>
  <summary>
    The delay in milliseconds between the item creation in the extension and its
    processing in Chrome.
  </summary>
</histogram>

<histogram name="IOS.ShareExtension.Source"
    enum="IOSShareExtensionReceivedEntrySource">
  <owner>olivierrobin@chromium.org</owner>
  <summary>
    The source application that sent the external command to Chrome.
  </summary>
</histogram>

<histogram name="IOS.SharePageLatency" units="ms">
  <owner>pkl@chromium.org</owner>
  <summary>
    The latency in milliseconds between the start of the Share Page operation
    and when the UI is ready to be presented.
  </summary>
</histogram>

<histogram name="IOS.ShowTabSwitcherSnapshotResult"
    enum="ShowTabSwitcherSnapshotResult" expires_after="2019-08-01">
  <obsolete>
    Deprecated 2019-01.
  </obsolete>
  <owner>edchin@chromium.org</owner>
  <summary>
    Tracks the result of snapshotting when the user enters the tab switcher.
    Recorded whenever the user enters the tab switcher.
  </summary>
</histogram>

<histogram name="IOS.Spotlight.Action" enum="IOSSpotlightAction">
  <owner>olivierrobin@chromium.org</owner>
  <summary>The Spotlight Action pressed by the user.</summary>
</histogram>

<histogram name="IOS.Spotlight.Availability" enum="IOSSpotlightAvailability">
  <owner>olivierrobin@chromium.org</owner>
  <summary>
    Tracks the availability of the Spotlight indexation on the device. It is
    logged once at each cold start. Note: Spotlight may be available on the
    device but disabled by the user.
  </summary>
</histogram>

<histogram name="IOS.Spotlight.BookmarksIndexingDuration" units="ms">
  <owner>olivierrobin@chromium.org</owner>
  <summary>Time spent in Spotlight initial indexation of bookmarks.</summary>
</histogram>

<histogram name="IOS.Spotlight.BookmarksInitialIndexSize">
  <owner>olivierrobin@chromium.org</owner>
  <summary>Number of bookmarks indexed during initial indexation.</summary>
</histogram>

<histogram name="IOS.Spotlight.Origin" enum="IOSSpotlightOrigin">
  <owner>olivierrobin@chromium.org</owner>
  <summary>
    This event is recorded each time a Chrome Spotlight entry is selected by the
    user. The enumeration indicates the nature of the Spotlight entry.
  </summary>
</histogram>

<histogram name="IOS.StoreKit.ITunesURLsHandlingResult"
    enum="IOSITunesURLsStoreKitHandlingResult">
  <owner>mrefaat@chromium.org</owner>
  <owner>eugenebut@chromium.org</owner>
  <summary>
    The result of StoreKit handling for a specific iTunes URL. Not Handled will
    be logged when the LinksHandler didn't handle a specific URL on purpose (not
    supported), and Failure will be logged when a URL that should have been
    handled wasn't handled.
  </summary>
</histogram>

<histogram name="IOS.StoreKitLoadedSuccessfully" enum="BooleanSuccess">
  <owner>mrefaat@chromium.org</owner>
  <summary>
    Whether the StoreKit loaded the required iTunes product successfully or not.
  </summary>
</histogram>

<histogram name="IOS.TabGridMediator.DidDetachNilWebStateList"
    enum="BooleanNil" expires_after="2019-05-01">
  <owner>edchin@chromium.org</owner>
  <owner>marq@chromium.org</owner>
  <summary>
    WebStateList should be guaranteed to be non-nil during a
    WebStateListObserver callback. This histogram counts the frequency of this
    invariant holding when webStateList:DidDetachWebState: is invoked in
    TabGridMediator. Violations of this invariant is the cause of real-world
    crashes (https://crbug.com/877792), which were not currently reproducible in
    testing. This histogram is used to retain visibility of the severity of this
    issue, while preventing the crashes with a no-op.
  </summary>
</histogram>

<histogram name="IOS.TabGridMediator.GetActiveTabIDNilWebStateList"
    enum="BooleanNil" expires_after="2019-05-01">
  <owner>edchin@chromium.org</owner>
  <owner>marq@chromium.org</owner>
  <summary>
    WebStateList should be guaranteed to be non-nil during a
    WebStateListObserver callback. This histogram counts the frequency of this
    invariant holding when GetActiveTabID() is invoked in TabGridMediator.
    Violations of this invariant is the cause of real-world crashes
    (https://crbug.com/877792), which were not currently reproducible in
    testing. This histogram is used to retain visibility of the severity of this
    issue, while preventing the crashes with a no-op.
  </summary>
</histogram>

<histogram name="IOS.TabSwitcher.PageChangeInteraction"
    enum="IOSTabSwitcherPageChangeInteraction">
  <owner>marq@chromium.org</owner>
  <summary>
    The UI interaction by which the user changed the visible page in the tab
    switcher.
  </summary>
</histogram>

<histogram name="IOS.WKWebViewClobberedHistory" enum="Boolean"
    expires_after="2019-11-01">
  <owner>danyao@chromium.org</owner>
  <summary>
    Measures the number of main frame navigations in slim navigation manager
    that are affected by a WKWebView bug that corrupts back/forward history
    (http://crbug.com/887497). This is recorded during WKWebView's
    decidePolicyForNavigationAction callback. True means the bug is triggered.
    False means the bug is not triggered.
  </summary>
</histogram>

<histogram name="IOS.WKWebViewFinishBeforeCommit" enum="Boolean">
  <owner>danyao@chromium.org</owner>
  <summary>
    WKWebView should notify navigation commit before navigation finish, but
    exceptions have been observed. This histogram counts the frequency of this
    invariant violation at the time when a new navigation is finished. True
    means navigation finish callback happened before navigation commit.
  </summary>
</histogram>

<histogram name="IOS.WKWebViewLinkPreview" enum="IOSWKWebViewLinkPreviewAction"
    expires_after="M73">
  <owner>kkhorimoto@chromium.org</owner>
  <owner>pkl@chromium.org</owner>
  <summary>
    Records the user actions related to the WKWebView 3D touch link preview API.
  </summary>
</histogram>

<histogram name="IPC.AttachmentBrokerPrivileged.BrokerAttachmentError"
    enum="IPCAttachmentBrokerPrivilegedBrokerAttachmentError">
  <owner>erikchen@chromium.org</owner>
  <summary>
    Errors that the privileged attachment broker encounters while trying to
    broker attachments.
  </summary>
</histogram>

<histogram name="IPC.AttachmentBrokerUnprivileged.BrokerAttachmentError"
    enum="IPCAttachmentBrokerUnprivilegedBrokerAttachmentError">
  <owner>erikchen@chromium.org</owner>
  <summary>
    Errors that an unprivileged attachment broker encounters while trying to
    broker attachments.
  </summary>
</histogram>

<histogram name="JSDialogs.CharacterCount" units="characters">
  <owner>avi@chromium.org</owner>
  <summary>
    The count of the number of characters in JavaScript dialog messages.
  </summary>
</histogram>

<histogram name="JSDialogs.CharacterCountUserSuppressed" units="characters">
  <obsolete>
    Deprecated 2018-06.
  </obsolete>
  <owner>avi@chromium.org</owner>
  <summary>
    The count of the number of characters in JavaScript dialog messages that
    were suppressed by the user. Compare with
    JSDialogs.CountOfJSDialogMessageCharacters.
  </summary>
</histogram>

<histogram name="JSDialogs.CountOfJSDialogMessageCharacters" units="characters">
  <obsolete>
    Deprecated 2018-06.
  </obsolete>
  <owner>avi@chromium.org</owner>
  <summary>
    The count of the number of characters in JavaScript dialog messages.
  </summary>
</histogram>

<histogram name="JSDialogs.CountOfJSDialogMessageNewlines">
  <obsolete>
    Deprecated 2018-06.
  </obsolete>
  <owner>avi@chromium.org</owner>
  <summary>
    The count of the number of newlines in JavaScript dialog messages. (This
    does not count breaks inserted by the UI toolkit in wrapping the messages.)
  </summary>
</histogram>

<histogram name="JSDialogs.CountOfOnBeforeUnloadMessageCharacters"
    units="characters">
  <obsolete>
    Deprecated 2016-02.
  </obsolete>
  <owner>avi@chromium.org</owner>
  <summary>
    The count of the number of characters in onbeforeunload messages.
  </summary>
</histogram>

<histogram name="JSDialogs.CountOfOnBeforeUnloadMessageNewlines">
  <obsolete>
    Deprecated 2016-02.
  </obsolete>
  <owner>avi@chromium.org</owner>
  <summary>
    The count of the number of newlines in onbeforeunload messages. (This does
    not count breaks inserted by the UI toolkit in wrapping the messages.)
  </summary>
</histogram>

<histogram base="true" name="JSDialogs.DismissalCause"
    enum="JavaScriptDialogDismissalCause">
  <owner>avi@chromium.org</owner>
  <summary>The cause of dismissal of JavaScript dialogs.</summary>
</histogram>

<histogram
    name="JSDialogs.FineTiming.TimeBetweenDialogClosedAndNextDialogCreated"
    units="ms">
  <owner>joenotcharles@chromium.org</owner>
  <summary>
    Fine-grained (in msec) time between closing a Javascript dialog and opening
    another, to track very frequent dialogs.
  </summary>
</histogram>

<histogram
    name="JSDialogs.FineTiming.TimeBetweenDialogCreatedAndNextDialogCreated"
    units="ms">
  <owner>joenotcharles@chromium.org</owner>
  <summary>
    Fine-grained (in msec) time between opening a Javascript dialog and opening
    another, to track very frequent dialogs.
  </summary>
</histogram>

<histogram
    name="JSDialogs.FineTiming.TimeBetweenDialogCreatedAndSameDialogClosed"
    units="ms">
  <owner>joenotcharles@chromium.org</owner>
  <summary>
    Fine-grained (in msec) time between opening a Javascript dialog and closing
    it, to track very short-lived dialogs.
  </summary>
</histogram>

<histogram base="true" name="JSDialogs.IsForemost" enum="BooleanForemost">
  <owner>avi@chromium.org</owner>
  <summary>
    For dialogs, whether or not they were spawned by a tab that was foremost.
  </summary>
</histogram>

<histogram name="JSDialogs.OnBeforeUnloadStayVsLeave" enum="StayVsLeave">
  <owner>avi@chromium.org</owner>
  <summary>
    For onbeforeunload dialogs, the user's choice between staying on the page
    and leaving it.
  </summary>
</histogram>

<histogram base="true" name="JSDialogs.OriginRelationship"
    enum="DialogOriginRelationship">
  <owner>avi@chromium.org</owner>
  <summary>
    For dialogs, the relationship of the origins of the main frame vs the
    alerting frame.
  </summary>
</histogram>

<histogram base="true" name="JSDialogs.Scheme" enum="NavigationScheme">
  <owner>avi@chromium.org</owner>
  <summary>The scheme of the URL showing a JavaScript dialog.</summary>
</histogram>

<histogram name="JSDialogs.SiteEngagementOfBeforeUnload" units="%">
  <obsolete>
    Deprecated 2017-10.
  </obsolete>
  <owner>avi@chromium.org</owner>
  <summary>
    The site engagement values of sites showing onbeforeunload dialogs. Logged
    once per dialog, whether shown or suppressed.
  </summary>
</histogram>

<histogram base="true" name="JSDialogs.SiteEngagementOfDialogs" units="%">
  <obsolete>
    Deprecated 2016-10. Site engagement needed to be measured in small buckets
    anyway so it was never high-resolution enough for use.
  </obsolete>
  <owner>avi@chromium.org</owner>
  <summary>
    The site engagement values of sites showing dialogs. Logged once per dialog,
    whether shown or suppressed.
  </summary>
</histogram>

<histogram name="Keyboard.KeystrokeDeltas" units="ms">
  <obsolete>
    Deprecated 07/2016 in crbug.com/631204 with KeyboardUmaEventFilter removal.
  </obsolete>
  <owner>girard@chromium.org</owner>
  <summary>
    The time between keystrokes in Aura text fields. The only keystrokes that
    are measured are ones that produce a printable character and are not over 5
    seconds apart.
  </summary>
</histogram>

<histogram name="Keyboard.Shortcuts.CrosSearchKeyDelay" units="ms">
  <owner>xiaohuic@chromium.org</owner>
  <owner>zalcorn@chromium.org</owner>
  <summary>
    The time between a user pressing the Chrome OS &quot;Search&quot; key and
    the second key being pressed down to active a shortcut. e.g. Search + L
    would record the time between Search key down and L key down. If the user
    pressed multiple keys after Search, we only record the first key down.
  </summary>
</histogram>

<histogram name="Keyboard.ShortcutViewer.SearchUpdateTime" units="microseconds">
  <owner>jamescook@chromium.org</owner>
  <owner>msw@chromium.org</owner>
  <owner>wutao@chromium.org</owner>
  <summary>
    Time delay to make the visual update in response to a search-query. Note
    that this does *not* include the initial delay to trigger the update after
    the initial keystroke to change the search-query string.
  </summary>
</histogram>

<histogram name="Keyboard.ShortcutViewer.SearchUpdateTimeVisual" units="ms">
  <owner>jamescook@chromium.org</owner>
  <owner>msw@chromium.org</owner>
  <owner>wutao@chromium.org</owner>
  <summary>
    Time delay for the visual update to be visible on screen in response to a
    search-query. Note that this does *not* include the initial delay to trigger
    the update after the initial keystroke to change the search-query string.
  </summary>
</histogram>

<histogram name="Keyboard.ShortcutViewer.StartupTime" units="ms">
  <owner>jamescook@chromium.org</owner>
  <owner>msw@chromium.org</owner>
  <owner>wutao@chromium.org</owner>
  <summary>
    Time delay between the user gesture that triggered the keyboard shortcut
    viewer dialog (e.g. pressing Ctrl-Alt-/) and the dialog widget being shown,
    including layout time for the views::Views.
  </summary>
</histogram>

<histogram name="KeyboardAccessory.AccessoryActionImpression"
    enum="AccessoryAction">
  <owner>fhorschig@chromium.org</owner>
  <summary>
    Android only. Records whenever users faces an action in the accessory bar or
    one of its sheets.
  </summary>
</histogram>

<histogram name="KeyboardAccessory.AccessoryActionSelected"
    enum="AccessoryAction">
  <owner>fhorschig@chromium.org</owner>
  <summary>
    Android only. Records whenever users select an action in the accessory bar
    or one of its sheets.
  </summary>
</histogram>

<histogram name="KeyboardAccessory.AccessoryBarShown"
    enum="AccessoryBarContents">
  <owner>fhorschig@chromium.org</owner>
  <summary>
    Android only. Records how often users encounter the keyboard accessory bar.
    Its buckets show the contents when it came up. Every bucket may be logged up
    to one time per impression.
  </summary>
</histogram>

<histogram name="KeyboardAccessory.AccessorySheetSuggestionCount" units="count">
  <owner>fhorschig@chromium.org</owner>
  <summary>
    Android only. Records how many suggestions a user faced when opening a
    sheet. The base histogram counts impressions across all sheets.
  </summary>
</histogram>

<histogram name="KeyboardAccessory.AccessorySheetSuggestionsSelected"
    enum="AccessorySuggestionType">
  <owner>fhorschig@chromium.org</owner>
  <summary>
    Android only. Records which type of suggestion was selected from an open
    sheet.
  </summary>
</histogram>

<histogram name="KeyboardAccessory.AccessorySheetTriggered"
    enum="AccessorySheetTrigger">
  <owner>fhorschig@chromium.org</owner>
  <summary>
    Android only. Records how often the bottom sheet was opened or closed by a
    user and the overall count of closures. Closing buckets may be logged up to
    one time per trigger. There are suffixes for each specific sheet type.
  </summary>
</histogram>

<histogram name="KeyboardAccessory.GeneratedPasswordDialog"
    enum="BooleanAccepted">
  <owner>ioanap@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Android only. Records the interaction with the password generation dialog.
  </summary>
</histogram>

<histogram name="Kiosk.Launch.CryptohomeFailure" enum="LoginFailureReason">
  <owner>xiyuan@chromium.org</owner>
  <summary>Tracks cryptohome failure during kiosk launch.</summary>
</histogram>

<histogram name="Kiosk.Launch.Error" enum="KioskLaunchError">
  <owner>xiyuan@chromium.org</owner>
  <summary>Tracks kiosk launch errors.</summary>
</histogram>

<histogram name="Kiosk.LaunchType" enum="KioskLaunchType">
  <owner>xiyuan@chromium.org</owner>
  <owner>aghuie@chromium.org</owner>
  <summary>
    Records kiosk launches, whether it is an enterprise or consumer kiosk and
    whether it is an auto launch or manual launch.
  </summary>
</histogram>

<histogram name="LanguageSettings.Actions" enum="LanguageSettingsActionType">
  <owner>googleo@chromium.org</owner>
  <summary>
    The actions taken on languages settings, recorded every time they happen.
    This histogram will record every single event that happens separately.
  </summary>
</histogram>

<histogram name="LanguageSettings.PageImpression"
    enum="LanguageSettingsPageType">
  <owner>googleo@chromium.org</owner>
  <summary>The type of panes which language settings loads.</summary>
</histogram>

<histogram name="LanguageUsage.AcceptLanguage" enum="LanguageCode"
    expires_after="2018-08-30">
  <owner>anthonyvd@chromium.org</owner>
  <owner>frechette@chromium.org</owner>
  <summary>Accept languages.</summary>
</histogram>

<histogram name="LanguageUsage.ApplicationLanguage" enum="LanguageCode"
    expires_after="2018-08-30">
  <owner>anthonyvd@chromium.org</owner>
  <owner>frechette@chromium.org</owner>
  <summary>Application languages used for UI.</summary>
</histogram>

<histogram name="Launch.FlagsAtStartup" enum="LoginCustomFlags">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Logs which Chrome flags from about:flags were active on start up. Note that
    this flag is not really used on Chrome OS; on that platform, look at
    Login.CustomFlags instead.
  </summary>
</histogram>

<histogram name="Launch.HomeScreen" enum="LaunchFromHomeScreen">
  <owner>dfalcantara@chromium.org</owner>
  <summary>
    Records how Chrome handled a launch from an Android Home screen shortcut.
  </summary>
</histogram>

<histogram name="Launch.HomeScreenSource" enum="LaunchFromHomeScreenSource">
  <owner>dominickn@chromium.org</owner>
  <summary>
    Records the source of an Android homescreen launch intent used to launch
    Chrome.

    The Menu item bucket is deprecated as of M57, and will only contain records
    for shortcuts added to the homescreen until M56.

    For M57+, the Menu item (standalone) bucket contains all launch intents
    originating from the add to homescreen menu item that launch to standalone
    mode and *are not* WebAPKs. These are sites which do not meet the PWA
    eligibility criteria, but have an app manifest that specifies either
    standalone or fullscreen display. This bucket also contains PWA *and*
    non-PWA intents that were added to the homescreen *prior* to M57, as we
    cannot distinguish between them after they are added.

    For M57+, the Menu item (shortcut) bucket contains all launch intents
    originating from the add to homescreen menu item that launch to a browser
    tab, regardless of when the intent was added.
  </summary>
</histogram>

<histogram name="Launch.IntentFlags" enum="LaunchIntentFlags">
  <owner>dfalcantara@chromium.org</owner>
  <summary>
    Records flags (and combinations of flags) that were attached to the Intent
    that started ChromeLauncherActivity.
  </summary>
</histogram>

<histogram name="Launch.InvalidIntent" enum="BooleanHit">
  <obsolete>
    Deprecated 2016-06 -- hit rate is neglible.
  </obsolete>
  <owner>dfalcantara@chromium.org</owner>
  <summary>
    Records whether or not an invalid Android Intent was fired to launch Chrome.
    (http://crbug.com/445136)
  </summary>
</histogram>

<histogram name="Launch.MashService" enum="MashService">
  <owner>jamescook@chromium.org</owner>
  <summary>
    Records when a mojo ash UI service is started, for example the mojo app
    version of the keyboard shortcut viewer.
  </summary>
</histogram>

<histogram name="Launch.Modes" enum="LaunchMode">
  <owner>calamity@chromium.org</owner>
  <summary>The different ways Chrome is launched.</summary>
</histogram>

<histogram name="Launch.WebAppDisplayMode" enum="WebAppDisplayMode">
  <owner>peter@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records the display mode (as defined in the Web App Manifest spec) at the
    launch of the Added to Home screen or installed Web App (including WebAPKs).
  </summary>
</histogram>

<histogram name="Layout.MicroSecondsPerComplexText" units="microseconds">
  <owner>benjhayden@chromium.org</owner>
  <summary>
    For layouts that considered at least 100 nodes, at least half of which were
    complex text fragments, the average number of microseconds spent laying out
    each node.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Layout.MicroSecondsPerFloat" units="microseconds">
  <owner>benjhayden@chromium.org</owner>
  <summary>
    For layouts that considered at least 100 nodes, at least half of which were
    floats, the average number of microseconds spent laying out each node.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Layout.MicroSecondsPerNode" units="microseconds">
  <owner>benjhayden@chromium.org</owner>
  <summary>
    For layouts that considered at least 100 nodes, the average number of
    microseconds spent laying out each node.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Layout.MicroSecondsPerPositioned" units="microseconds">
  <owner>benjhayden@chromium.org</owner>
  <summary>
    For layouts that considered at least 100 nodes, at least half of which were
    fixed or absolute positioned, the average number of microseconds spent
    laying out each node.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Layout.MicroSecondsPerSimpleText" units="microseconds">
  <owner>benjhayden@chromium.org</owner>
  <summary>
    For layouts that considered at least 100 nodes, at least half of which were
    simple text fragments, the average number of microseconds spent laying out
    each node.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Layout.MicroSecondsPerTD" units="microseconds">
  <owner>benjhayden@chromium.org</owner>
  <summary>
    For layouts that considered at least 100 nodes, at least half of which were
    table cells, the average number of microseconds spent laying out each node.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Layout.ScrollAnchor.AdjustedScrollOffset" enum="BooleanHit">
  <owner>skobes@chromium.org</owner>
  <summary>
    Records the number of times ScrollAnchor adjusts the scroll offset.
  </summary>
</histogram>

<histogram name="Layout.ScrollAnchor.RestorationStatus"
    enum="ScrollAnchorRestorationStatus">
  <owner>pnoland@chromium.org</owner>
  <summary>
    Records the status of attempts to restore a serialized scroll anchor.
  </summary>
</histogram>

<histogram name="Layout.ScrollAnchor.SerializedAnchorSelectorLength"
    units="characters">
  <owner>pnoland@chromium.org</owner>
  <summary>
    The number of characters in the selector computed for a serialized scroll
    anchor. Recorded when a scroll anchor is serialized.
  </summary>
</histogram>

<histogram name="Layout.ScrollAnchor.SuppressedBySanaclap" enum="BooleanHit">
  <owner>ymalik@chromium.org</owner>
  <summary>
    Records the number of times scroll anchoring is suppressed because of the
    SANACLAP bit being set on an ancestor (see bit.ly/sanaclap).
  </summary>
</histogram>

<histogram name="Layout.ScrollAnchor.TimeToComputeAnchorNodeSelector"
    units="microseconds">
  <owner>pnoland@chromium.org</owner>
  <summary>
    The time it took to compute the selector of a serialized anchor element.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Layout.ScrollAnchor.TimeToFindAnchor" units="microseconds">
  <owner>ymalik@chromium.org</owner>
  <summary>
    The time it took to find a suitable anchor element.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Layout.ScrollAnchor.TimeToRestoreAnchor" units="microseconds">
  <owner>pnoland@chromium.org</owner>
  <summary>
    The time it took to restore the scroll anchor using the serialized anchor
    element.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Layout.ScrollRestoration.PrecededByJsScroll"
    enum="BooleanPrecededByJsScroll">
  <obsolete>
    Deprecated 2018-09. No longer needed.
  </obsolete>
  <owner>chaopeng@chromium.org</owner>
  <owner>input-dev@chromium.org</owner>
  <summary>
    We are considering allowing JS scrolling to prevent browser scroll position
    restoration. This histogram measures the impact of that change, in terms of
    how often restoration would be prevented by JS Scroll. Recorded after each
    successful scroll restoration attempt.
  </summary>
</histogram>

<histogram name="LevelDB.ApproximateMemoryUse" units="bytes">
  <obsolete>
    Replaced by LevelDB.ApproximateMemTableMemoryUse indefinitely.
  </obsolete>
  <owner>thildebr@chromium.org</owner>
  <summary>
    The approximate memory use of a LevelDB in bytes. Recorded right after
    initializing an on-disk database.
  </summary>
</histogram>

<histogram name="LevelDB.ApproximateMemTableMemoryUse" units="bytes"
    expires_after="2019-08-31">
  <owner>nyquist@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    The approximate MemTable memory use of a LevelDB in bytes. Recorded right
    after initializing an on-disk database.
  </summary>
</histogram>

<histogram name="LevelDB.Open" enum="LevelDBStatus">
  <owner>cmumford@chromium.org</owner>
  <summary>The result of an open attempt of a leveldb.</summary>
</histogram>

<histogram name="LevelDB.SharedCache.BytesUsed" units="Bytes">
  <obsolete>
    Deprecated 2017-10. Superceded by LevelDB.SharedCache.KBUsed.
  </obsolete>
  <owner>cmumford@chromium.org</owner>
  <summary>
    The estimated size (in bytes) of the leveldb shared cache. Recorded once per
    UMA ping.
  </summary>
</histogram>

<histogram name="LevelDB.SharedCache.DBCount" units="count">
  <owner>cmumford@chromium.org</owner>
  <summary>
    The number of databases currently using the shared block cache. Recorded
    once per UMA ping.
  </summary>
</histogram>

<histogram name="LevelDB.SharedCache.KBUsed" units="KB">
  <owner>cmumford@chromium.org</owner>
  <summary>
    The estimated size (in kilobytes) of the leveldb shared cache. Recorded once
    per UMA ping.
  </summary>
</histogram>

<histogram name="LevelDBEnv.All.SafeThreadAccess" units="accesses">
  <obsolete>
    Deprecated 2013-10. No thread-unsafety was found.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Linux and CrOS use unlocked_stdio(3). If it is used unsafely, record it
    here. If there is no record of unsafety after chrome 29 has been in the
    stable channel for a few weeks then revert this change.
  </summary>
</histogram>

<histogram name="LevelDBEnv.DeleteTableBackupFile" enum="BooleanSuccess">
  <owner>cmumford@chromium.org</owner>
  <summary>
    Tracks the success rate of deleting an unused leveldb table backup file.
  </summary>
</histogram>

<histogram name="LevelDBEnv.IOError" enum="LevelDBIOErrorMethods">
  <owner>dgrogan@chromium.org</owner>
  <summary>Methods where leveldb's Chromium environment has IO errors.</summary>
</histogram>

<histogram name="LevelDBEnv.IOError." enum="PlatformFileError">
  <obsolete>
    Deprecated 2015-05. As of M43 use LevelDBEnv.IOError.BFE.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>PlatformFileErrors encountered by a single leveldb method.</summary>
</histogram>

<histogram name="LevelDBEnv.IOError.BFE" enum="PlatformFileError">
  <owner>cmumford@chromium.org</owner>
  <summary>
    Errors (base::File::Error) encountered by a single leveldb method.
  </summary>
</histogram>

<histogram name="LevelDBEnv.IOError.NewLogger" enum="PopularOSErrno">
  <obsolete>
    Deprecated 2015-05. As of M43 use LevelDBEnv.IOError.BFE.NewLogger.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>Errno of errors encountered in NewLogger.</summary>
</histogram>

<histogram name="LevelDBEnv.IOError.NewSequentialFile" enum="PopularOSErrno">
  <obsolete>
    Deprecated 2015-05. As of M43 use LevelDBEnv.IOError.BFE.NewSequentialFile.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>Errno of errors encountered in NewSequentialFile.</summary>
</histogram>

<histogram name="LevelDBEnv.IOError.RandomAccessFile" enum="PlatformFileError">
  <obsolete>
    Deprecated 2013-04. As of m28 use LevelDBEnv.IOError.NewRandomAccessFile.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>
    File errors in leveldb ChromiumEnv's NewRandomAccessFile method.
  </summary>
</histogram>

<histogram name="LevelDBEnv.IOError.WritableFileAppend" enum="PopularOSErrno">
  <obsolete>
    Deprecated 2015-05. As of M43 use LevelDBEnv.IOError.BFE.WritableFileAppend.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>Errno of errors encountered in WritableFileAppend.</summary>
</histogram>

<histogram name="LevelDBEnv.IOError.WritableFileFlush" enum="PopularOSErrno">
  <obsolete>
    Deprecated 2015-05. As of M43 use LevelDBEnv.IOError.BFE.WritableFileFlush.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>Errno of errors encountered in WritableFileFlush.</summary>
</histogram>

<histogram name="LevelDBEnv.LockFileAncestorsNotFound" units="directories">
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Number of directories missing when Non-IDB LevelDBEnv tries to create a Lock
    file.
  </summary>
</histogram>

<histogram name="LevelDBEnv.MaxFDs" units="files">
  <obsolete>
    Deprecated as of September 20, 2017.
  </obsolete>
  <owner>cmumford@chromium.org</owner>
  <summary>
    File descriptor limit recorded every time LevelDB calls NewRandomAccessFile
    for clients other than IndexedDB.
  </summary>
</histogram>

<histogram name="LevelDBEnv.MissingFiles" units="files">
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Number of backup files found without corresponding ldb files. As measured by
    GetChildren when used in LevelDB clients other than IndexedDB.
  </summary>
</histogram>

<histogram name="LevelDBEnv.RetryRecoveredFromErrorIn" enum="PlatformFileError">
  <owner>dgrogan@chromium.org</owner>
  <summary>
    When Non-IDB LevelDBEnv successfully retries an operation that had failed,
    record the error from the most recent failed attempt.
  </summary>
</histogram>

<histogram name="LevelDBEnv.Table" enum="BooleanSuccess">
  <obsolete>
    As of M54 no longer creating or using table backup files.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Success indicates a successful backup or restore operation for .ldb table
    files when used by LevelDB clients other than IndexedDB.
  </summary>
</histogram>

<histogram name="LevelDBEnv.TimeTo" units="ms">
  <obsolete>
    Deprecated 2013-04. As of m28 use LevelDBEnv.TimeUntilSuccessFor.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Time Non-IDB LevelDBEnv slept before successfully completing this operation.
    0 means success on the first try.
  </summary>
</histogram>

<histogram name="LevelDBEnv.TimeUntilSuccessFor" units="ms">
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Time Non-IDB LevelDBEnv slept before successfully completing this operation.
    0 means success on the first try, as LevelDBEnv only sleeps when retries are
    needed.
  </summary>
</histogram>

<histogram name="LevelDBWrapper.CommitDelay" units="ms">
  <owner>mek@chromium.org</owner>
  <summary>
    Delay between the browser process receiving changes and those changes being
    written to the DB.
  </summary>
</histogram>

<histogram name="LibraryLoader.LoadNativeLibraryWindows"
    enum="LoadLibraryResultCategory">
  <owner>chengx@chromium.org</owner>
  <summary>
    This metric records the LoadLibraryExW and LoadLibraryW Windows API call
    results, which are used in native_library_win.cc.
  </summary>
</histogram>

<histogram name="LibraryLoader.NativeLibraryHack" enum="BooleanUsage">
  <obsolete>
    Deprecated as of 11/2014, removed from code.
  </obsolete>
  <owner>feng@chromium.org</owner>
  <summary>
    A boolean that indicates whether the workaround of a Sony framework bug was
    used. The metric is Android-specific, and is logged when the browser starts.
    See more details at http://crbug.com/311644.
  </summary>
</histogram>

<histogram base="true"
    name="LibraryLoader.PercentageOfResidentCodeBeforePrefetch" units="%">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Percentage of the native library code pages resident in memory. Recorded
    immediately before the library prefetching kicks in, only on Android.
  </summary>
</histogram>

<histogram name="LibraryLoader.PrefetchDetailedStatus"
    enum="LibraryLoaderPrefetchDetailedStatus">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Detailed status of the library prefetch final status. This is an expanded
    version of LibraryLoader.PrefetchStatus. Android only, recorded at most once
    per browser startup.
  </summary>
</histogram>

<histogram name="LibraryLoader.PrefetchStatus" enum="BooleanSuccess">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Indicates whether the forking of a child process to prefetch the native
    library succeeded. Android only, recorded at most once per browser startup.
  </summary>
</histogram>

<histogram name="Linux.Distro" enum="LinuxDistro">
  <owner>thomasanderson@chromium.org</owner>
  <summary>The Linux distro used. Logged on each start up.</summary>
</histogram>

<histogram name="Linux.GlibcVersion" enum="LinuxGlibcVersion">
  <owner>thestig@chromium.org</owner>
  <summary>
    The version of glibc used. (Linux only) Logged on each start up.
  </summary>
</histogram>

<histogram name="Linux.SandboxStatus" enum="LinuxSandboxStatus">
  <owner>mpdenton@google.com</owner>
  <summary>
    The Linux sandbox status. This describes what sandboxing features are
    enabled (such as the suid/namespace sandboxes, various namespaces, seccomp
    bpf, ...). Emitted once at startup.
  </summary>
</histogram>

<histogram name="Linux.WindowManager" enum="LinuxWindowManagerName">
  <owner>pkotwicz@chromium.org</owner>
  <summary>
    The window manager used. (Linux only) Logged on each start up.
  </summary>
</histogram>

<histogram name="Linux.X11.ServerRTT" units="microseconds">
  <owner>thomasanderson@chromium.org</owner>
  <summary>
    RTT between Chrome and the X11 server. Tracked in X11EventSource by
    measuring the latency to receive a property event after changing a property.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="LoadingPredictor.PreconnectCount" units="origins">
  <owner>alexilin@chromium.org</owner>
  <summary>
    The number of origins that were preconnected for a page load. It includes
    preconnect attempts that don't result in new opened connection. Logged after
    the preconnect manager completes all jobs attached to the page load.
  </summary>
</histogram>

<histogram name="LoadingPredictor.PreconnectHitsPercentage" units="%">
  <owner>alexilin@chromium.org</owner>
  <summary>
    The percentage of origins that were preconnected and requested by a page
    load to the total number of origins that were preconnected for a page load.
    Logged after the preconnect manager completes all jobs attached to the page
    load.
  </summary>
</histogram>

<histogram name="LoadingPredictor.PreconnectLearningCount" units="origins">
  <owner>alexilin@chromium.org</owner>
  <summary>
    When the loading predictor has origins in the local database for a given
    navigation to preconnect and preresolve, the count of predicted origins.
  </summary>
</histogram>

<histogram name="LoadingPredictor.PreconnectLearningPrecision" units="%">
  <owner>alexilin@chromium.org</owner>
  <summary>
    When the loading predictor has origins in the local database for a given
    navigation to preconnect and preresolve, the precision of the predictions in
    percentage. This is computed as 100 \times \frac{correct
    predictions}{predictions}.
  </summary>
</histogram>

<histogram name="LoadingPredictor.PreconnectLearningRecall" units="%">
  <owner>alexilin@chromium.org</owner>
  <summary>
    When the loading predictor has origins in the local database for a given
    navigation to preconnect and preresolve, the recall of the predictions, in
    percentage. This is computed as 100 \times \frac{correct predictions}{all
    prefetchable subresources}.
  </summary>
</histogram>

<histogram name="LoadingPredictor.PreconnectLearningRedirectStatus"
    enum="ResourcePrefetchPredictorRedirectStatus">
  <owner>alexilin@chromium.org</owner>
  <summary>
    When the prefetch predictor has origins in the local database for a given
    navigation to preconnect and preresolve, records stats about whether
    redirect was predicted correctly or incorrectly.
  </summary>
</histogram>

<histogram name="LoadingPredictor.PreresolveCount" units="hosts">
  <owner>alexilin@chromium.org</owner>
  <summary>
    The number of hosts that were preresolved for a page load. It includes only
    successful DNS lookups. Logged after the preconnect manager completes all
    jobs attached to the page load.
  </summary>
</histogram>

<histogram name="LoadingPredictor.PreresolveHitsPercentage" units="%">
  <owner>alexilin@chromium.org</owner>
  <summary>
    The percentage of hosts that were preresolved and requested by a page load
    to the total number of hosts that were preresolved for a page load. Logged
    after the preconnect manager completes all jobs attached to the page load.
  </summary>
</histogram>

<histogram name="LoadingPredictor.SubresourceConnectDuration" units="ms">
  <obsolete>
    Deprecated at M66. No longer recorded.
  </obsolete>
  <owner>alexilin@chromium.org</owner>
  <summary>
    Records the time measured before starting DNS lookup until after the
    connection is complete for main frame subresources observed by the
    LoadingPredictor. Only resources that required network connection and
    happened before the first contentful paint are recorded.
  </summary>
</histogram>

<histogram name="LocalDiscovery.ClientRestartAttempts">
  <owner>noamsml@chromium.org</owner>
  <owner>avi@chromium.org</owner>
  <summary>Records number of attempts to start local discovery.</summary>
</histogram>

<histogram name="LocalDiscovery.DetectorRestartTime" units="ms">
  <owner>noamsml@chromium.org</owner>
  <owner>avi@chromium.org</owner>
  <summary>Time between detector restarts.</summary>
</histogram>

<histogram name="LocalDiscovery.DetectorTriggerTime" units="ms">
  <owner>noamsml@chromium.org</owner>
  <owner>avi@chromium.org</owner>
  <summary>Time before detector trigger notifications.</summary>
</histogram>

<histogram name="LocalDiscovery.DevicesPage" enum="DevicesPageEvents">
  <owner>noamsml@chromium.org</owner>
  <owner>avi@chromium.org</owner>
  <summary>Records events related to devices page.</summary>
</histogram>

<histogram name="LocalDiscovery.FirewallAccessTime" units="ms">
  <owner>noamsml@chromium.org</owner>
  <owner>avi@chromium.org</owner>
  <summary>
    Windows only histogram that reports request time spend accessing firewall
    rules. It's logged once per browser process lifetime, when local discovery
    is used first time.
  </summary>
</histogram>

<histogram name="LocalDiscovery.IsFirewallReady" enum="BooleanEnabled">
  <owner>noamsml@chromium.org</owner>
  <owner>avi@chromium.org</owner>
  <summary>
    Windows only histogram that reports, whether a firewall is set, so we can
    bind inbound sockets. It's logged once per browser process lifetime, when
    local discovery is used first time.
  </summary>
</histogram>

<histogram name="LocalDiscovery.PrivetNotificationsEvent"
    enum="PrivetNotificationsEvent">
  <owner>noamsml@chromium.org</owner>
  <owner>avi@chromium.org</owner>
  <summary>Records events related to local discovery notifications.</summary>
</histogram>

<histogram base="true" name="LocalNetworkRequests.PrivatePage" units="requests">
  <owner>uthakore@chromium.org</owner>
  <owner>invernizzi@chromium.org</owner>
  <summary>
    Number of requests made by a private page to resources besides itself.
  </summary>
</histogram>

<histogram base="true" name="LocalNetworkRequests.PublicPage" units="requests">
  <owner>uthakore@chromium.org</owner>
  <owner>invernizzi@chromium.org</owner>
  <summary>
    Number of requests made by a public page to resources with reserved IP
    addresses.
  </summary>
</histogram>

<histogram name="LocalStorage.BrowserLocalStorageCachePurgedInKB" units="KB">
  <owner>ssid@chromium.org</owner>
  <summary>
    Total size of the HTML5 LocalStorage browser-side cache purged in KB when
    memory pressure signal was triggered or cache size hit the limits.
  </summary>
</histogram>

<histogram name="LocalStorage.BrowserLocalStorageCacheSizeInKB" units="KB">
  <owner>ssid@chromium.org</owner>
  <summary>
    Total size of the HTML5 LocalStorage databases in KB in the browser-side
    cache recorded each time a new database is opened in memory.
  </summary>
</histogram>

<histogram name="LocalStorage.BrowserLocalStorageSizeInKB" units="KB">
  <owner>mek@chromium.org</owner>
  <owner>dmurph@chromium.org</owner>
  <summary>
    Size of the HTML5 LocalStorage DB in KB in the browser-side cache.
  </summary>
</histogram>

<histogram name="LocalStorage.BrowserTimeToPrimeLocalStorage">
  <owner>mek@chromium.org</owner>
  <owner>dmurph@chromium.org</owner>
  <summary>
    Time to load HTML5 LocalStorage into the browser-side cache.
  </summary>
</histogram>

<histogram name="LocalStorage.CommitDelay" units="ms">
  <owner>mek@chromium.org</owner>
  <owner>dmurph@chromium.org</owner>
  <summary>
    Delay between a page making changes and those changes being written to the
    DB.
  </summary>
</histogram>

<histogram name="LocalStorage.MojoSizeInKB" units="KB">
  <owner>jam@chromium.org</owner>
  <summary>
    Size of the HTML5 LocalStorage DB in KB in the renderer-side cache using
    Mojo implementation.
  </summary>
</histogram>

<histogram name="LocalStorage.MojoTimeToPrime" units="ms">
  <owner>jam@chromium.org</owner>
  <summary>
    Time (in ms) to load HTML5 LocalStorage into the renderer-side cache using
    Mojo implementation.
  </summary>
</histogram>

<histogram name="LocalStorage.MojoTimeToPrimeFor" units="ms">
  <owner>jam@chromium.org</owner>
  <summary>
    Time (in ms) to load HTML5 LocalStorage into the renderer-side cache using
    Mojo implementation, split by size.
  </summary>
</histogram>

<histogram name="LocalStorage.RendererAreaCacheHit"
    enum="LocalStorageRendererAreaCacheHitEnum">
  <owner>ssid@chromium.org</owner>
  <summary>
    The renderer side cache hit rate metrics for new HTML5 LocalStorage DB
    opened.
  </summary>
</histogram>

<histogram name="LocalStorage.RendererLocalStorageSizeInKB" units="KB">
  <owner>mek@chromium.org</owner>
  <owner>dmurph@chromium.org</owner>
  <summary>
    Size of the HTML5 LocalStorage DB in KB in the renderer-side cache.
  </summary>
</histogram>

<histogram name="LocalStorage.RendererTimeToPrimeLocalStorage">
  <owner>mek@chromium.org</owner>
  <owner>dmurph@chromium.org</owner>
  <summary>
    Time to load HTML5 LocalStorage into the renderer-side cache.
  </summary>
</histogram>

<histogram name="LocalStorage.TimeToPrimeLocalStorage">
  <owner>mek@chromium.org</owner>
  <owner>dmurph@chromium.org</owner>
  <summary>
    Time to load HTML5 LocalStorage into the renderer-side cache. Note that the
    name is not 'Renderer' prefixed for continuity with the old naming.
  </summary>
</histogram>

<histogram name="LocalStorageContext.CachePurgedInKB" units="KB">
  <owner>mek@chromium.org</owner>
  <summary>
    Total size of the HTML5 LocalStorage browser-side cache purged in KB when
    memory pressure signal was triggered or cache size hit the limits.
  </summary>
</histogram>

<histogram name="LocalStorageContext.CacheSizeInKB" units="KB">
  <owner>mek@chromium.org</owner>
  <summary>
    Total size of the HTML5 LocalStorage databases in KB in the browser-side
    cache. Recorded each time a new database is opened in memory.
  </summary>
</histogram>

<histogram name="LocalStorageContext.CommitResult" enum="LevelDBStatus">
  <owner>mek@chromium.org</owner>
  <summary>
    The result of an attempt to commit localstorage data to the database.
  </summary>
</histogram>

<histogram name="LocalStorageContext.DatabaseOpenError" enum="LevelDBStatus">
  <owner>mek@chromium.org</owner>
  <summary>
    The result of a failed attempt to open a LevelDB database for LocalStorage.
  </summary>
</histogram>

<histogram name="LocalStorageContext.DatabaseOpenError.Disk"
    enum="LevelDBStatus">
  <owner>mek@chromium.org</owner>
  <summary>
    The result of a failed attempt to open a LevelDB database for LocalStorage
    on disk.
  </summary>
</histogram>

<histogram name="LocalStorageContext.DatabaseOpenError.Memory"
    enum="LevelDBStatus">
  <owner>mek@chromium.org</owner>
  <summary>
    The result of a failed attempt to open a LevelDB database for LocalStorage
    in memory.
  </summary>
</histogram>

<histogram name="LocalStorageContext.DestroyDBResult" enum="LevelDBStatus">
  <owner>mek@chromium.org</owner>
  <summary>
    The result of attempting to delete the LocalStorage database.
  </summary>
</histogram>

<histogram name="LocalStorageContext.DirectoryOpenError"
    enum="PlatformFileError">
  <owner>mek@chromium.org</owner>
  <summary>
    The reason opening a directory for the LevelDB database that backs
    LocalStorage failed.
  </summary>
</histogram>

<histogram name="LocalStorageContext.MapLoadError" enum="LevelDBStatus">
  <owner>mek@chromium.org</owner>
  <summary>
    The reason loading an initial snapshot of the localstorage data for an
    origin failed.
  </summary>
</histogram>

<histogram name="LocalStorageContext.MigrationFixUpNeeded" enum="Boolean">
  <owner>mek@chromium.org</owner>
  <summary>
    Whether or not any fixes needed to be made to localstorage data, as a result
    of bugs in the migration code in M61/M62. Recorded every time the browser
    loads an initial snapshot of the localstorage data for an origin.
  </summary>
</histogram>

<histogram name="LocalStorageContext.OnConnectionDestroyed" enum="Boolean">
  <owner>mek@chromium.org</owner>
  <owner>dullweber@chromium.org</owner>
  <summary>
    Recorded when the database connection is closed unexpectedly.
  </summary>
</histogram>

<histogram name="LocalStorageContext.OpenError" enum="LocalStorageOpenError">
  <owner>mek@chromium.org</owner>
  <summary>
    The reason opening the LevelDB database that backs LocalStorage failed.
  </summary>
</histogram>

<histogram base="true" name="LocalStorageContext.OpenResultAfter"
    enum="LocalStorageOpenError">
<!-- Name completed by histogram_suffixes name="LocalStorageContextOpenReasons" -->

  <owner>mek@chromium.org</owner>
  <summary>
    The result of opening the LevelDB database that backs LocalStorage.
  </summary>
</histogram>

<histogram name="LocalStorageContext.ReadVersionError" enum="LevelDBStatus">
  <owner>mek@chromium.org</owner>
  <summary>
    The reason reading the schema version of the LocalStorage database failed.
  </summary>
</histogram>

<histogram name="Login.ConsumerNewUsersAllowed" enum="LoginConsumerWhitelist">
  <owner>cmasone@chromium.org</owner>
  <owner>sumit@chromium.org</owner>
  <summary>
    Chrome OS histogram tracking, per consumer sign-in, whether the device owner
    is allowing arbitrary accounts to be used on the device, or only those on a
    specific whitelist.
  </summary>
</histogram>

<histogram name="Login.CustomFlags" enum="LoginCustomFlags">
  <owner>alemate@chromium.org</owner>
  <summary>
    A set of chrome flags that required browser restart on Chrome OS user sign
    in.
  </summary>
</histogram>

<histogram name="Login.FailureReason" enum="LoginFailureReason">
  <owner>achuith@chromium.org</owner>
  <summary>Chrome OS login failure reason.</summary>
</histogram>

<histogram name="Login.LeastUsedAccountDays" units="days">
  <owner>achuith@chromium.org</owner>
  <owner>omrilio@chromium.org</owner>
  <summary>
    Chrome OS histogram that keeps track of the days since the least frequently
    used account signed in. Reported on every boot and once a day after that.
  </summary>
</histogram>

<histogram name="Login.NewUserPriorityPrefsSyncResult"
    enum="NewUserPriorityPrefsSyncResult">
  <owner>alemate@chromium.org</owner>
  <summary>Records whether a new user's priority prefs sync timed out.</summary>
</histogram>

<histogram name="Login.NewUserPriorityPrefsSyncTime" units="ms">
  <owner>alemate@chromium.org</owner>
  <summary>
    Time spent waiting for priority preferences to sync after new user sign in.
    The operation will time out after 10s.
  </summary>
</histogram>

<histogram name="Login.OfflineFailure.IsKnownUser" enum="LoginIsKnownUser">
  <owner>glevin@chromium.org</owner>
  <summary>
    On offline login failure, records whether it is for an existing user.
  </summary>
</histogram>

<histogram name="Login.OfflineSuccess.Attempts">
  <owner>glevin@chromium.org</owner>
  <summary>
    On offline login success, records number of attempts, including success.
  </summary>
</histogram>

<histogram name="Login.PasswordChangeFlow" enum="LoginPasswordChangeFlow">
  <owner>xiyuan@chromium.org</owner>
  <owner>omrilio@chromium.org</owner>
  <summary>
    Records the UI flow after a possible password change is detected.
  </summary>
</histogram>

<histogram name="Login.PolicyFilesStatePerBoot" enum="LoginPolicyFilesState">
  <owner>cmasone@chromium.org</owner>
  <summary>The state of Chrome OS owner key and device policy files.</summary>
</histogram>

<histogram name="Login.PromptToCompleteLoginTime" units="ms">
  <owner>achuith@chromium.org</owner>
  <summary>
    Time from first display of the login prompt until the user completes signing
    in.
  </summary>
</histogram>

<histogram name="Login.PromptToLoginTime" units="ms">
  <owner>elijahtaylor@google.com</owner>
  <owner>yusukes@chromium.org</owner>
  <summary>
    Time from first display of the login prompt until the existing user
    completes signing in.
  </summary>
</histogram>

<histogram name="Login.ReauthReason" enum="LoginReauthReasons">
  <owner>achuith@chromium.org</owner>
  <summary>
    Tracks the reason why a user was sent through the GAIA re-auth flow.
  </summary>
</histogram>

<histogram name="Login.StateKeyGenerationStatus"
    enum="LoginStateKeyGenerationStatus">
  <owner>mnissler@chromium.org</owner>
  <summary>Result of a state key generation operation.</summary>
</histogram>

<histogram name="Login.SuccessReason" enum="LoginSuccessReason">
  <owner>achuith@chromium.org</owner>
  <summary>Chrome OS login success reason.</summary>
</histogram>

<histogram name="Login.TokenCheckResponseTime" units="ms">
  <owner>glevin@chromium.org</owner>
  <summary>
    Time between sending a request to, and receiving a reply from, GAIA token
    endpoint to validate TokenInfo.
  </summary>
</histogram>

<histogram name="Login.TokenObtainResponseTime" units="ms">
  <owner>glevin@chromium.org</owner>
  <summary>
    Time between sending a request to, and receiving a reply from, GAIA token
    endpoint to obtain TokenInfo.
  </summary>
</histogram>

<histogram name="Login.UsersActiveWeekly" units="users">
  <owner>alemate@chromium.org</owner>
  <owner>achuith@chromium.org</owner>
  <summary>
    Chrome OS histogram that keeps track of number of users who have logged in
    in the last 7 days. Reported on every boot and once a day after that.
  </summary>
</histogram>

<histogram name="Login.UsersActiveWeekly.Percent" units="%">
  <owner>alemate@chromium.org</owner>
  <owner>achuith@chromium.org</owner>
  <summary>
    Chrome OS histogram that keeps track of percentage of local users who have
    logged in in the last 7 days. Reported on every boot and once a day after
    that.
  </summary>
</histogram>

<histogram name="Login.UserType" enum="LoginUserType">
  <owner>cmasone@chromium.org</owner>
  <summary>
    Chrome OS histogram that keeps track of the way a user logs in and whether
    Chrome OS is running normal or developer mode.
  </summary>
</histogram>

<histogram name="LowPriorityIframes.IframeRequestPriority"
    enum="WebURLRequestPriority">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Original Blink priority of the request that belongs to an iframe. Recorded
    for every request fetched via Blink, but only when the experiment to lower
    the priority of iframes is enabled.
  </summary>
</histogram>

<histogram name="LowPriorityIframes.MainFrameRequestPriority"
    enum="WebURLRequestPriority">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Original Blink priority of the request that belongs to the main frame.
    Recorded for every request fetched via Blink, but only when the experiment
    to lower the priority of iframes is enabled.
  </summary>
</histogram>

<histogram base="true" name="MachineLearningService.CpuTimeMicrosec"
    units="microseconds">
<!-- Name completed by histogram_suffixes
     name="MachineLearningServiceRequests" -->

  <owner>amoylan@chromium.org</owner>
  <owner>alanlxl@chromium.org</owner>
  <summary>
    CPU time (for one CPU core) of one Chrome OS ML Service request.
  </summary>
</histogram>

<histogram name="MachineLearningService.CpuUsageMilliPercent"
    units="1/1000ths of %" expires_after="2019-07-01">
  <owner>amoylan@chromium.org</owner>
  <summary>
    Fraction of total CPU resources used by Chrome OS ML Service, sampled every
    5 minutes.
  </summary>
</histogram>

<histogram name="MachineLearningService.CreateGraphExecutorResult.Event"
    enum="MachineLearningServiceCreateGraphExecutorResultEvent">
  <owner>amoylan@chromium.org</owner>
  <owner>alanlxl@chromium.org</owner>
  <summary>
    The result of CreateGraphExecutor, which can be OK or some specific error.
  </summary>
</histogram>

<histogram base="true" name="MachineLearningService.ElapsedTimeMicrosec"
    units="microseconds">
<!-- Name completed by histogram_suffixes
     name="MachineLearningServiceRequests" -->

  <owner>amoylan@chromium.org</owner>
  <owner>alanlxl@chromium.org</owner>
  <summary>Elapsed time of one Chrome OS ML Service request.</summary>
</histogram>

<histogram name="MachineLearningService.ExecuteResult.Event"
    enum="MachineLearningServiceExecuteResultEvent">
  <owner>amoylan@chromium.org</owner>
  <owner>alanlxl@chromium.org</owner>
  <summary>
    The result of Execute, which can be OK or some specific error.
  </summary>
</histogram>

<histogram name="MachineLearningService.LoadModelResult.Event"
    enum="MachineLearningServiceLoadModelResultEvent">
  <owner>amoylan@chromium.org</owner>
  <owner>alanlxl@chromium.org</owner>
  <summary>
    The result of LoadModel, which can be OK or some specific error.
  </summary>
</histogram>

<histogram name="MachineLearningService.MojoConnectionEvent"
    enum="MachineLearningServiceMojoConnectionEvent" expires_after="2019-07-01">
  <owner>amoylan@chromium.org</owner>
  <summary>
    Events related to the connection and disconnection of the Mojo IPC channel
    between Chrome and the Chrome OS ML Service.
  </summary>
</histogram>

<histogram name="MachineLearningService.PeakPrivateMemoryKb" units="KB"
    expires_after="2019-07-01">
  <owner>amoylan@chromium.org</owner>
  <summary>
    Peak private (non-shared) memory used by Chrome OS ML Service over the last
    24 hours. Sampled every 5 minutes, so may miss short-lived spikes.
  </summary>
</histogram>

<histogram base="true" name="MachineLearningService.PrivateMemoryDeltaKb"
    units="KB">
<!-- Name completed by histogram_suffixes
     name="MachineLearningServiceRequests" -->

  <owner>amoylan@chromium.org</owner>
  <owner>alanlxl@chromium.org</owner>
  <summary>
    Memory usage increase caused by one Chrome OS ML Service request.
  </summary>
</histogram>

<histogram name="MachineLearningService.PrivateMemoryKb" units="KB"
    expires_after="2019-07-01">
  <owner>amoylan@chromium.org</owner>
  <summary>
    Private (non-shared) memory used by Chrome OS ML Service, sampled every 5
    minutes.
  </summary>
</histogram>

<histogram name="ManagedUsers.ChromeOS.PasswordChange"
    enum="ManagedUserPasswordChange">
  <owner>achuith@chromium.org</owner>
  <summary>
    Chrome OS histogram that keeps track of supervised user password change
    result.
  </summary>
</histogram>

<histogram name="ManagedUsers.FilteringResult"
    enum="SupervisedUserSafetyFilterResult">
  <owner>treib@chromium.org</owner>
  <owner>escordeiro@chromium.org</owner>
  <owner>menegola@chromium.org</owner>
  <summary>
    The counts of results from supervised user URL filtering. Each entry
    includes the outcome of the filter (i.e. allowed, blocked, or unknown) and
    the page transition type (how the user got there, e.g. typed URL, clicked
    link).
  </summary>
</histogram>

<histogram name="ManagedUsers.SafeSitesDelay" units="ms">
  <owner>treib@chromium.org</owner>
  <owner>escordeiro@chromium.org</owner>
  <owner>menegola@chromium.org</owner>
  <summary>
    The extra page load delays introduced by network requests due to the
    supervised user SafeSites feature, measured once per page load.
  </summary>
</histogram>

<histogram name="ManagedUsers.SafetyFilter"
    enum="SupervisedUserSafetyFilterResult">
  <owner>treib@chromium.org</owner>
  <owner>escordeiro@chromium.org</owner>
  <owner>menegola@chromium.org</owner>
  <summary>
    The counts of results from the supervised user safety filter. Each entry
    includes the outcome of the filter (i.e. allowed, blocked, or unknown) and
    the page transition type (how the user got there, e.g. typed URL, clicked
    link). This only includes URL requests that were handled by the SafeSites
    filter (both online and the static blacklist).
  </summary>
</histogram>

<histogram name="ManagedUsers.Whitelist.Count" units="whitelists">
  <owner>treib@chromium.org</owner>
  <owner>escordeiro@chromium.org</owner>
  <owner>menegola@chromium.org</owner>
  <summary>
    The number of whitelists installed for a supervised user. Recorded at every
    profile startup.
  </summary>
</histogram>

<histogram name="ManagedUsers.Whitelist.JsonParseDuration" units="ms">
  <owner>treib@chromium.org</owner>
  <owner>escordeiro@chromium.org</owner>
  <owner>menegola@chromium.org</owner>
  <summary>
    The total amount of time taken to parse the JSON contents of a whitelist out
    of process.
  </summary>
</histogram>

<histogram name="ManagedUsers.Whitelist.ReadDuration" units="ms">
  <owner>treib@chromium.org</owner>
  <owner>escordeiro@chromium.org</owner>
  <owner>menegola@chromium.org</owner>
  <summary>
    The amount of time taken to read a whitelist file from disk.
  </summary>
</histogram>

<histogram name="ManagedUsers.Whitelist.TotalLoadDuration" units="ms">
  <owner>treib@chromium.org</owner>
  <owner>escordeiro@chromium.org</owner>
  <owner>menegola@chromium.org</owner>
  <summary>
    The total amount of time taken to load a whitelist from disk and parse it,
    including jumps to the blocking thread.
  </summary>
</histogram>

<histogram name="Manifest.FetchResult" enum="ManifestFetchResultType">
  <owner>mlamouri@chromium.org</owner>
  <summary>
    Tracks whether the Manifest fetch succeed and why it failed if it failed.
  </summary>
</histogram>

<histogram name="Manifest.HasProperty" enum="Boolean">
  <owner>mlamouri@chromium.org</owner>
  <summary>
    Tracks which properties of a Manifest were present when it was parsed. If a
    property can't be parsed, it will be recorded as not present. These
    histograms will only be used if the Manifest was correctly fetched and
    parsed and the parsed manifest is not empty.
  </summary>
</histogram>

<histogram name="Manifest.IsEmpty" enum="Boolean">
  <owner>mlamouri@chromium.org</owner>
  <summary>Tracks whether the parsed Manifest is the empty Manifest.</summary>
</histogram>

<histogram name="Manifest.ParseSuccess" enum="Boolean">
  <owner>mlamouri@chromium.org</owner>
  <summary>
    Tracks the Manifest parsing result. A failure will be recorded if the
    Manifest was incorrectly structured. This doesn't take into account parse
    failures for each individual properties.
  </summary>
</histogram>

<histogram name="ManualFallback.PresentedOptions.AllPasswords"
    units="Credentials" expires_after="2019-12-31">
  <owner>javierrobles@chromium.org</owner>
  <summary>
    Tracks the number of credentials presented to the user in the &quot;Use
    other password...&quot; view in Manual Fallback. This is logged everytime
    the user opens this view.
  </summary>
</histogram>

<histogram name="ManualFallback.PresentedOptions.CreditCards" units="Cards"
    expires_after="2019-12-31">
  <owner>javierrobles@chromium.org</owner>
  <summary>
    Tracks the number of cards presented to the user in Manual Fallback. This is
    logged everytime the user opens this view.
  </summary>
</histogram>

<histogram name="ManualFallback.PresentedOptions.Passwords" units="Credentials"
    expires_after="2019-12-31">
  <owner>javierrobles@chromium.org</owner>
  <summary>
    Tracks the number of credentials presented to the user in the Passwords
    Manual Fallback view. This is logged everytime the user opens this view.
  </summary>
</histogram>

<histogram name="ManualFallback.PresentedOptions.Profiles" units="Profiles"
    expires_after="2019-12-31">
  <owner>javierrobles@chromium.org</owner>
  <summary>
    Tracks the number of profiles presented to the user in Manual Fallback. This
    is logged everytime the user opens this view.
  </summary>
</histogram>

<histogram name="ManualFallback.VisibleSuggestions.OpenCreditCards"
    units="Suggestions" expires_after="2019-12-31">
  <owner>javierrobles@chromium.org</owner>
  <summary>
    Tracks the number of autofill suggestions present when the user taps on the
    credit card button in manual fallback.
  </summary>
</histogram>

<histogram name="ManualFallback.VisibleSuggestions.OpenPasswords"
    units="Suggestions" expires_after="2019-12-31">
  <owner>javierrobles@chromium.org</owner>
  <summary>
    Tracks the number of password suggestions present when the user taps on the
    password button in manual fallback.
  </summary>
</histogram>

<histogram name="ManualFallback.VisibleSuggestions.OpenProfiles"
    units="Suggestions" expires_after="2019-12-31">
  <owner>javierrobles@chromium.org</owner>
  <summary>
    Tracks the number of autofill suggestions present when the user taps on the
    profiles (address) button in manual fallback.
  </summary>
</histogram>

<histogram name="Media.AcceleratedCompositingActive" enum="BooleanSuccess">
  <obsolete>
    Deprecated as of July 21, 2014.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Whether accelerated compositing was used for HTML5 media rendering.
  </summary>
</histogram>

<histogram name="Media.AImageReaderGLOwner.AcquireImageResult"
    enum="MediaStatus" expires_after="2018-11-25">
  <owner>vikassoni@chromium.org</owner>
  <summary>Error codes to handle AImage and AImageReader api calls.</summary>
</histogram>

<histogram name="Media.Android.BackgroundVideoTime" units="ms">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Android-specific metric. The time between the moment the backgrounded video
    playback is started (meaning the user just resumed the backgrounded video
    allowing playback) and the moment it stops being background playback by the
    current playing video either going foreground or being paused by the user.
    Note: on Android, videos are suspended when backgrounded.
  </summary>
</histogram>

<histogram name="Media.Android.IsHttpLiveStreamingMedia" enum="MediaUrlType">
  <obsolete>
    Deprecated as of 08/2017
  </obsolete>
  <owner>qinmin@chromium.org</owner>
  <summary>
    Android: Records whether a regular media URL is HLS (HTTP Live Streaming)
    media or not.
  </summary>
</histogram>

<histogram name="Media.Android.IsHttpLiveStreamingMediaPredictionResult"
    enum="MediaTypePredictionResult">
  <obsolete>
    Deprecated as of 08/2017
  </obsolete>
  <owner>sandersd@chromium.org</owner>
  <summary>
    Android: Records which HLS prediction based on the original URL was best.
  </summary>
</histogram>

<histogram name="Media.Android.MediaPlayerSuccess" enum="MediaPlayerExitStatus">
  <owner>tguilbert@chromium.org</owner>
  <summary>Android: Whether MediaPlayer exited without errors.</summary>
</histogram>

<histogram name="Media.Android.NumMediaServerCrashes">
  <obsolete>
    Deprecated as of 04/2017
  </obsolete>
  <owner>qinmin@chromium.org</owner>
  <summary>
    Android: Number of consecutive media server crashes monitored before it is
    reset to 0. Reset happens if there are no crashes in a minute, or if user
    hits the &quot;try again&quot; button on the media throttle info bar.
  </summary>
</histogram>

<histogram name="Media.Android.ThrottleInfobarResponse"
    enum="ThrottleInfobarResponse">
  <obsolete>
    Deprecated as of 04/2017
  </obsolete>
  <owner>qinmin@chromium.org</owner>
  <summary>
    Android: The distribution of responses to the media throttle infobar prompt.
  </summary>
</histogram>

<histogram name="Media.ArcGpuVideoDecodeAccelerator.InitializeResult"
    enum="ArcVideoDecodeAcceleratorResult">
  <obsolete>
    Deprecated as of June 12, 2017. Replaced by
    Media.ChromeArcVideoDecodeAccelerator.InitializeResult.
  </obsolete>
  <owner>johnylin@chromium.org</owner>
  <summary>
    Counts of status values returned from calls to
    ArcGpuVideoDecodeAccelerator::Initialize().
  </summary>
</histogram>

<histogram name="Media.Audible.CloseNewestToExitConcurrentPlayback"
    enum="ExitConcurrentPlaybackContents" expires_after="2019-05-30">
  <owner>beccahughes@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records when an audible tab is closed and we now only have one audible tab
    open.
  </summary>
</histogram>

<histogram name="Media.Audible.ConcurrentTabsTime" units="ms">
  <owner>mlamouri@chromium.org</owner>
  <summary>
    Records how long more than one tab is audible at the same time. The
    concurrent tabs might change during this period. The time recorded starts
    when the browser goes from one to two audbile tabs and stops when it is back
    below two.
  </summary>
</histogram>

<histogram name="Media.Audible.ConcurrentTabsWhenStarting">
  <owner>mlamouri@chromium.org</owner>
  <summary>
    Records how many tabs were audible when a new tab started to be audible.
  </summary>
</histogram>

<histogram name="Media.Audible.MaxConcurrentTabsInSession">
  <owner>mlamouri@chromium.org</owner>
  <summary>
    Records how many tabs are audible at the same time during the session. It is
    recording the maximum audible tab count everytime it increases. In other
    words, a session with N concurrent audible tabs will record entries from 1
    through N exactly once.
  </summary>
</histogram>

<histogram name="Media.Audio.ActualInputBufferFrameSizeMac">
  <owner>henrika@chromium.org</owner>
  <summary>
    Size (in audio frames) of native I/O buffers that is set by the audio
    manager when calling AUAudioInputStream::Open(). I.e., it is the actual
    buffer size and it can differ from the one that the client requested. Only
    sampled when Media.Audio.InputStartupSuccessMac reports 'Failure'.
  </summary>
</histogram>

<histogram name="Media.Audio.AudioUnitRenderHasWorkedMac"
    enum="BooleanEverWorked">
  <owner>henrika@chromium.org</owner>
  <summary>
    Stored in combination with Media.Audio.RenderFailsWhenBufferSizeChangesMac.
    It is set to true if calls to AudioUnitRender has ever worked, i.e., we did
    not start to see kAudioUnitErr_CannotDoInCurrentContext error messages
    directly from start but there has been at least on successful call to
    AudioUnitRender.
  </summary>
</histogram>

<histogram name="Media.Audio.AutomaticGainControlMac" enum="BooleanEnabled">
  <obsolete>
    Deprecated as of Aug 2018.
  </obsolete>
  <owner>henrika@chromium.org</owner>
  <summary>
    Indicates if the Automatic Gain Control (AGC) is enabled or not. Only
    sampled when Media.Audio.InputStartupSuccessMac reports 'Failure'.
  </summary>
</histogram>

<histogram name="Media.Audio.Autoplay" enum="AutoplaySource">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>Records the autoplay source of audios.</summary>
</histogram>

<histogram name="Media.Audio.Autoplay.Attribute.WaitTime" units="ms">
  <owner>hubbe@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records time from load starts until audio starts based on autoplay
    attribute.
  </summary>
</histogram>

<histogram name="Media.Audio.Autoplay.PlayMethod.WaitTime" units="ms">
  <owner>hubbe@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records time from load starts until audio starts based on play method.
  </summary>
</histogram>

<histogram name="Media.Audio.Bitstream" enum="BooleanSupported"
    expires_after="2019-07-31">
<!-- Name completed by histogram_suffixes name="BitstreamAudioFormats" -->

  <owner>dalecurtis@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records whether the given bitstream audio output format is supported.
    Recorded when the browser or audio process AudioManager is constructed.
  </summary>
</histogram>

<histogram name="Media.Audio.Capture.CallbackError" enum="BooleanError">
  <obsolete>
    Deprecated as of 02/2017.
  </obsolete>
  <owner>tommi@chromium.org</owner>
  <summary>
    A boolean that reflects whether or not an error was reported during audio
    capture.
  </summary>
</histogram>

<histogram name="Media.Audio.Capture.DetectedMissingCallbacks"
    enum="BooleanMissingCallbacks">
  <owner>grunell@chromium.org</owner>
  <summary>
    Whether missing callbacks where detected during audio capture. Logged when
    AudioInputDevice is stopped.
  </summary>
</histogram>

<histogram name="Media.Audio.Capture.DeviceLatency" units="ms"
    expires_after="2019-03-31">
  <owner>grunell@chromium.org</owner>
  <summary>
    The audio input device latency. The time from when a frame was captured
    until it reaches Chrome's platform audio implementation. Sampled for every
    buffer received from the device, and reports the latency for the first frame
    in the buffer.
  </summary>
</histogram>

<histogram name="Media.Audio.Capture.FramesProvided" units="frames">
  <owner>grunell@chromium.org</owner>
  <summary>
    The number of captured audio frames that is provided by the operating system
    in each callback. Typically, Chrome will want to use a 10 ms buffer (e.g.
    480 frames for a sample rate of 48 kHz), but the OS may decide to capture
    e.g. 256 frames of audio at a time. If the desired frame size is used, the
    emitted value is special-cased to be 0. This histogram then shows how
    frequent it is that the desired number of frames is used and if not, the
    number of frames used in practice. The number of frames per callback is
    normally constant or very rarely changed throughout the lifetime of the
    audio stream. The first value that differs from the desired value is stored
    and logged when an audio input stream is closed. Any further differences
    during the lifetime will be ignored.
  </summary>
</histogram>

<histogram name="Media.Audio.Capture.Glitches" units="glitches">
  <owner>grunell@chromium.org</owner>
  <summary>
    The number of glitches that were detected at the OS level while an audio
    stream was active. A glitch is detected if the OS has to skip providing a
    set of frames. This value is logged when an audio input stream is closed.
  </summary>
</histogram>

<histogram name="Media.Audio.Capture.HighLatencyCallbackError"
    enum="BooleanError">
  <owner>maxmorin@chromium.org</owner>
  <summary>
    A boolean that reflects whether or not an error was reported during audio
    capture for a high latency stream.
  </summary>
</histogram>

<histogram name="Media.Audio.Capture.InputStreamDuration" units="ms">
  <owner>maxmorin@chromium.org</owner>
  <summary>
    This histogram measures the duration of every input stream, as seen from the
    renderer. It counts from when it has been successfully started, until it is
    stopped. Streams that fail to start are not logged.
  </summary>
</histogram>

<histogram name="Media.Audio.Capture.LargestGlitchMs" units="ms">
  <owner>grunell@chromium.org</owner>
  <summary>
    The length in milliseconds of the largest audio glitch that was detected at
    the OS level. This value is logged when an audio input stream that has
    suffered glitches is closed.
  </summary>
</histogram>

<histogram name="Media.Audio.Capture.LostFramesInMs" units="ms">
  <owner>grunell@chromium.org</owner>
  <summary>
    The combined length in milliseconds of audio glitches that was detected at
    the OS level. This is useful to know in particular for audio processing such
    as echo cancellation. This value is logged when an audio input stream that
    has suffered glitches is closed.
  </summary>
</histogram>

<histogram name="Media.Audio.Capture.LowLatencyCallbackError"
    enum="BooleanError">
  <owner>maxmorin@chromium.org</owner>
  <summary>
    A boolean that reflects whether or not an error was reported during audio
    capture for a low latency stream.
  </summary>
</histogram>

<histogram name="Media.Audio.Capture.StreamBrokerDisconnectReason"
    enum="AudioInputStreamDisconnectReason" expires_after="2019-08-01">
  <owner>jonasolsson@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <owner>olka@chromium.org</owner>
  <summary>
    Error codes from AudioInputStreamBroker::ObserverBindingLost. They describe
    why an audio input stream ended.
  </summary>
</histogram>

<histogram name="Media.Audio.Capture.StreamCallbackError" enum="BooleanError">
  <obsolete>
    Replaced by Media.Audio.Capture.StreamCallbackError2
  </obsolete>
  <owner>maxmorin@chromium.org</owner>
  <summary>
    When AudioInputDevice is stopped, this stat is recorded with whether an
    error callback was ever received over IPC.
  </summary>
</histogram>

<histogram name="Media.Audio.Capture.StreamCallbackError2"
    enum="AudioCaptureDeviceError" expires_after="2019-06-01">
  <owner>maxmorin@chromium.org</owner>
  <summary>
    When AudioInputDevice is stopped, this stat is recorded with whether an
    error callback was ever received over IPC, and in that case whether the
    error occurred during or after stream creation.
  </summary>
</histogram>

<histogram name="Media.Audio.Capture.VirtualCallbackError" enum="BooleanError">
  <owner>maxmorin@chromium.org</owner>
  <summary>
    A boolean that reflects whether or not an error was reported during audio
    capture for a virtual stream.
  </summary>
</histogram>

<histogram name="Media.Audio.Capture.Win.ConcurrentGlitchAndDiscontinuities"
    units="occurrences" expires_after="2019-03-31">
  <owner>grunell@chromium.org</owner>
  <summary>
    The number of times a glitch was detected by detecting skipped frames (as
    with Media.Audio.Capture.Glitches) and disconinuity was flagged by the OS at
    the same time (as with Media.Audio.Capture.Win.Discontinuities). Sometimes
    these indications are not consistent with each other so this metric helps
    understanding how often they aren't. This value is logged when an audio
    input stream is closed.
  </summary>
</histogram>

<histogram name="Media.Audio.Capture.Win.DevicePeriod" units="ms"
    expires_after="2019-03-31">
  <owner>grunell@chromium.org</owner>
  <summary>
    The audio engine's period between processing passes. See
    IAudioClient::GetDevicePeriod. This value is logged when an audio input
    stream is opened.
  </summary>
</histogram>

<histogram name="Media.Audio.Capture.Win.DevicePositionLessThanExpected"
    units="occurrences" expires_after="2019-03-31">
  <owner>grunell@chromium.org</owner>
  <summary>
    The number of times the device position was less than expected during the
    lifetime of an audio stream. This value is logged when an audio input stream
    is closed.
  </summary>
</histogram>

<histogram name="Media.Audio.Capture.Win.Discontinuities"
    units="discontinuities" expires_after="2019-03-31">
  <owner>grunell@chromium.org</owner>
  <summary>
    The number of glitches that were detected at the OS level on Windows while
    an audio stream was active, as reported by the OS via the discontinuity flag
    (see IAudioCaptureClient::GetBuffer). This value is logged when an audio
    input stream is closed.
  </summary>
</histogram>

<histogram name="Media.Audio.Capture.Win.EndpointBufferSize" units="ms"
    expires_after="2019-03-31">
  <owner>grunell@chromium.org</owner>
  <summary>
    The endpoint buffer size for input audio. This value is logged when an audio
    input stream is opened.
  </summary>
</histogram>

<histogram name="Media.Audio.Capture.Win.InitError" enum="Hresult">
  <owner>tommi@chromium.org</owner>
  <summary>
    Error codes from IAudioClient::Initialize() in
    WASAPIAudioInputStream::InitializeAudioEngine on Windows.
  </summary>
</histogram>

<histogram name="Media.Audio.Capture.Win.InitError.FormatRelated"
    enum="AudioStreamFormatRelatedInitError">
  <owner>grunell@chromium.org</owner>
  <summary>
    Errors from IAudioClient::Initialize() in
    WASAPIAudioInputStream::InitializeAudioEngine on Windows that are related to
    the audio format. Each error is split by whether format conversion was used
    or not.
  </summary>
</histogram>

<histogram name="Media.Audio.Capture.Win.Open" enum="AudioStreamOpenResult">
  <owner>tommi@chromium.org</owner>
  <summary>
    Success/error cases for opening an audio input stream on Windows.
  </summary>
</histogram>

<histogram name="Media.Audio.Capture.Win.StreamLatency" units="ms"
    expires_after="2019-03-31">
  <owner>grunell@chromium.org</owner>
  <summary>
    The maximum stream latency as reported by the OS. See
    IAudioClient::GetStreamLatency. This value is logged when an audio input
    stream is opened.
  </summary>
</histogram>

<histogram name="Media.Audio.CoreAudioDispatchOverrideInitResult"
    enum="CoreAudioDispatchOverrideInitResult">
  <owner>ossu@chromium.org</owner>
  <summary>
    Tracks support and initialization success/failure of the CoreAudio dispatch
    override hotfix. Logged during initialization of AudioManagerMac. The fix is
    not supported on macOS earlier than version 10.10.
  </summary>
</histogram>

<histogram name="Media.Audio.CoreAudioDispatchOverrideLookupEvent"
    enum="CoreAudioDispatchOverrideLookupEvent">
  <owner>ossu@chromium.org</owner>
  <summary>
    Logged whenever the CoreAudio dispatch override hotfix needs to look up the
    calling function using dladdr(). Once ResumeIO and PauseIO have been
    identified, no more lookups should be performed during the session.
  </summary>
</histogram>

<histogram name="Media.Audio.InputBufferSizeWasChangedAudioWorkedMac"
    enum="BooleanChanged">
  <obsolete>
    Deprecated as of Aug 2018.
  </obsolete>
  <owner>henrika@chromium.org</owner>
  <summary>
    Indicates if the size of the audio unit's IO buffer was changed when
    starting an input audio stream. Sampled each time an AUAudioInputStream
    instance is closed, i.e., we know that input audio has started as it should
    when this value is stored. Can be compared with
    Media.Audio.InputBufferSizeWasChangedMac which is only added when input
    audio fails to start.
  </summary>
</histogram>

<histogram name="Media.Audio.InputBufferSizeWasChangedMac"
    enum="BooleanSuccess">
  <owner>henrika@chromium.org</owner>
  <summary>
    Indicates if the size of the audio unit's IO buffer was changed when
    starting an input audio stream. Only sampled when
    Media.Audio.InputStartupSuccessMac reports 'Failure'.
  </summary>
</histogram>

<histogram name="Media.Audio.InputDevicePropertyChangedMac"
    enum="AudioDevicePropertyResult">
  <obsolete>
    Deprecated Feb 2018. Was put in place to debug missing callback issues that
    have since been resolved.
  </obsolete>
  <owner>henrika@chromium.org</owner>
  <summary>
    Lists device properties that have been changed during an audio input stream
    session. We update a map of different property changes during a session and
    all these values are recorded when an AUAudioInputStream object is closed,
    hence multiple enum values can be emitted when the histogram is stored.
  </summary>
</histogram>

<histogram name="Media.Audio.InputDevicePropertyChangedStartupFailedMac"
    enum="AudioDevicePropertyResult">
  <obsolete>
    Deprecated Feb 2018. Was put in place to debug missing callback issues that
    have since been resolved.
  </obsolete>
  <owner>henrika@chromium.org</owner>
  <summary>
    Lists device properties that have been changed during an audio input stream
    session. Only sampled when Media.Audio.InputStartupSuccessMac reports
    'Failure' and multiple enum values can be emitted each time that happens.
  </summary>
</histogram>

<histogram name="Media.Audio.InputRestartAttemptsMac">
  <obsolete>
    Deprecated May 2017. Restart mechanism is removed.
  </obsolete>
  <owner>henrika@chromium.org</owner>
  <summary>
    Counts the total number of times an attempt to restart input audio has been
    done. The value is stored once when a stream is closed and updated when it
    has been detected that input audio callbacks are not generated as expected.
  </summary>
</histogram>

<histogram name="Media.Audio.InputStartupSuccessMac" enum="BooleanSuccess">
  <owner>henrika@chromium.org</owner>
  <summary>
    Indicates if audio capturing did start after stream startup was requested.
    Sampled once, a few seconds after a stream has been asked to start.
  </summary>
</histogram>

<histogram name="Media.Audio.InputStartWasDeferredAudioWorkedMac"
    enum="BooleanDeferred">
  <obsolete>
    Deprecated as of Aug 2018.
  </obsolete>
  <owner>henrika@chromium.org</owner>
  <summary>
    Indicates if audio capturing started with a small delay or not. Sampled each
    time an AUAudioInputStream instance is closed, i.e., we know that input
    audio has started as it should when this value is stored. Can be compared
    with Media.Audio.InputStartWasDeferredMac which is only added when input
    audio fails to start.
  </summary>
</histogram>

<histogram name="Media.Audio.InputStartWasDeferredMac" enum="BooleanDeferred">
  <obsolete>
    Deprecated as of Aug 2018.
  </obsolete>
  <owner>henrika@chromium.org</owner>
  <summary>
    Indicates if audio capturing started with a small delay or not. Only sampled
    when Media.Audio.InputStartupSuccessMac reports 'Failure'.
  </summary>
</histogram>

<histogram name="Media.Audio.IsOnBatteryPowerMac" enum="BooleanOnBattery">
  <obsolete>
    Deprecated as of Aug 2018.
  </obsolete>
  <owner>henrika@chromium.org</owner>
  <summary>
    Indicates if the Mac OSX device is on battery power or not. Only sampled
    when Media.Audio.InputStartupSuccessMac reports 'Failure'.
  </summary>
</histogram>

<histogram name="Media.Audio.LogicalProcessorsMac">
  <owner>henrika@chromium.org</owner>
  <summary>
    The number of logical processors/cores available on the Mac OSX device. Only
    sampled when Media.Audio.InputStartupSuccessMac reports 'Failure'.
  </summary>
</histogram>

<histogram name="Media.Audio.NumberOfBasicInputStreamsMac">
  <obsolete>
    Deprecated as of Aug 2018.
  </obsolete>
  <owner>henrika@chromium.org</owner>
  <summary>
    Number of created default input audio streams. Only sampled when
    Media.Audio.InputStartupSuccessMac reports 'Failure'.
  </summary>
</histogram>

<histogram name="Media.Audio.NumberOfLowLatencyInputStreamsMac">
  <obsolete>
    Deprecated as of Aug 2018.
  </obsolete>
  <owner>henrika@chromium.org</owner>
  <summary>
    Number of created low-latency input audio streams. Only sampled when
    Media.Audio.InputStartupSuccessMac reports 'Failure'.
  </summary>
</histogram>

<histogram name="Media.Audio.NumberOfOutputStreamsMac">
  <obsolete>
    Deprecated as of Aug 2018.
  </obsolete>
  <owner>henrika@chromium.org</owner>
  <summary>
    Number of created output audio streams. Only sampled when
    Media.Audio.InputStartupSuccessMac reports 'Failure'.
  </summary>
</histogram>

<histogram name="Media.Audio.OutputDeviceAuthorizationTime" units="ms">
  <owner>olka@chromium.org</owner>
  <summary>
    Time delta between the moment output device authorization request is
    received by the browser and the moment its processessing is finished (and
    reply is to be sent back to the renderer if IPC is not closed yet).
  </summary>
</histogram>

<histogram name="Media.Audio.OutputStreamsCanceledByBrowser" units="streams">
  <owner>maxmorin@chromium.org</owner>
  <summary>
    When a mojo audio stream factory is destructed, the streams it created are
    also destructed. This is a potential source of stat differences between the
    new mojo code and the old Chrome IPC code, where streams could potentially
    stick around until the destruction of the owning RenderProcessHost. This
    histogram measures how many output streams are destructed each time a mojo
    output stream factory is destructed.
  </summary>
</histogram>

<histogram name="Media.Audio.PhysicalProcessorsMac">
  <owner>henrika@chromium.org</owner>
  <summary>
    The number of physical processors/cores available on the Mac OSX device.
    Only sampled when Media.Audio.InputStartupSuccessMac reports 'Failure'.
  </summary>
</histogram>

<histogram name="Media.Audio.Processing.CaptureDelayMs" units="ms">
  <owner>ossu@chromium.org</owner>
  <owner>grunell@chromium.org</owner>
  <summary>
    The time, in milliseconds, between when a block of audio is read from the
    soundcard and when it's presented to the audio processor. Used in
    calculating the total system delay for the audio processor.
  </summary>
</histogram>

<histogram name="Media.Audio.Processing.CaptureDelayVarianceMs"
    units="ms squared">
  <owner>ossu@chromium.org</owner>
  <owner>grunell@chromium.org</owner>
  <summary>
    The variance of the capture delay in milliseconds (see
    Media.Audio.Processing.CaptureDelayMs). Logged once every second and
    calculated over the past second of data.
  </summary>
</histogram>

<histogram name="Media.Audio.Processing.RenderDelayMs" units="ms">
  <owner>ossu@chromium.org</owner>
  <owner>grunell@chromium.org</owner>
  <summary>
    The time, in milliseconds, between when a block of audio is presented to the
    audio processor and the time it's played out on the soundcard. Used in
    calculating the total system delay for the audio processor.
  </summary>
</histogram>

<histogram name="Media.Audio.Processing.RenderDelayVarianceMs"
    units="ms squared">
  <owner>ossu@chromium.org</owner>
  <owner>grunell@chromium.org</owner>
  <summary>
    The variance of the render delay in milliseconds (see
    Media.Audio.Processing.RenderDelayMs). Logged once every second and
    calculated over the past second of data.
  </summary>
</histogram>

<histogram name="Media.Audio.Processing.TotalDelayMs" units="ms">
  <owner>ossu@chromium.org</owner>
  <owner>grunell@chromium.org</owner>
  <summary>
    The estimated total audio system delay presented to the audio processor. The
    sum of the individual capture and render delays at similar points in time.
  </summary>
</histogram>

<histogram name="Media.Audio.Processing.TotalDelayVarianceMs"
    units="ms squared">
  <owner>ossu@chromium.org</owner>
  <owner>grunell@chromium.org</owner>
  <summary>
    The variance of the total delay in milliseconds (see
    Media.Audio.Processing.TotalDelayMs). Logged once every second and
    calculated over the past second of data.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.AudioInputsPerMixer.LatencyExact"
    units="inputs">
  <owner>olka@chromium.org</owner>
  <summary>
    Number of simultaneous inputs coming to the AudioRendererMixer which renders
    audio with user specified latency. The value is logged each time it reaches
    a new maximum for the mixer. It is useful for evaluating how mixing audio in
    renderer reduces the number of output audio streams going from the renderer
    to the browser.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.AudioInputsPerMixer.LatencyInteractive"
    units="inputs">
  <owner>olka@chromium.org</owner>
  <summary>
    Number of simultaneous inputs coming to the AudioRendererMixer which renders
    audio with interactive latency. The value is logged each time it reaches a
    new maximum for the mixer. It is useful for evaluating how mixing audio in
    renderer reduces the number of output audio streams going from the renderer
    to the browser.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.AudioInputsPerMixer.LatencyPlayback"
    units="inputs">
  <owner>olka@chromium.org</owner>
  <summary>
    Number of simultaneous inputs coming to the AudioRendererMixer which renders
    audio with playback latency. The value is logged each time it reaches a new
    maximum for the mixer. It is useful for evaluating how mixing audio in
    renderer reduces the number of output audio streams going from the renderer
    to the browser.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.AudioInputsPerMixer.LatencyRtc"
    units="inputs">
  <owner>olka@chromium.org</owner>
  <summary>
    Number of simultaneous inputs coming to the AudioRendererMixer which renders
    audio with real time latency. The value is logged each time it reaches a new
    maximum for the mixer. It is useful for evaluating how mixing audio in
    renderer reduces the number of output audio streams going from the renderer
    to the browser.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.AudioMixing.LatencyMap" units="subsets">
  <owner>olka@chromium.org</owner>
  <summary>
    Subset of audio output latencies encountered by the renderer so far. Logged
    each time an audio output with a new latency starts playing. The values are
    bitsets where each bit represents corresponding latency according to
    AudioLatency::LatencyType. Useful for understanding usecases for audio
    output mixing in renderer.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.BrowserCallbackRegularity">
  <owner>olka@chromium.org</owner>
  <summary>
    Reflects how regularly browser issues audio requests to renderer. Depends on
    how well the system buffer size the browser side renders audio at and the
    buffer size it requests from renderer are aligned. When zero, it means
    renderer buffer size is a multiple of system buffer size, and render calls
    from browser to renderer are issued evenly. When -1, it means the renderer
    buffer size is larger than system buffer size, but is not an exact multiple
    of it; in this case browser periodically skips a call to renderer. When
    positive, floor(value/2) reflects the number of extra consecutive render
    requests issued by browser to renderer each time to fulfill the system audio
    render request; if (value/2) is not integer, then plus one more extra call
    is issued periodically. The metric is recorded on the edge between browser
    and renderer. On Mac the system buffer size may vary dynamically, the metric
    does not capture that: only the buffer size mismatch introduced by audio
    output device configuration is captured.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.FramesRequested" units="frames">
  <owner>tommi@chromium.org</owner>
  <summary>
    The number of frames audio is actually rendered at if the number is
    different from the desired number of frames. If the desired frame size is
    used, this value will be 0. Typically, Chrome will want to use a 10ms buffer
    (e.g. 480 frames for a sample rate of 48kHz), but we might have to render
    audio 256 frames at a time. This histogram gives us an indication as to how
    frequent that is and what buffer sizes are used in practice. This value is
    logged when an audio output stream is stopped.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.GetSourceDataTime.WebRTC"
    units="microseconds">
  <owner>grunell@chromium.org</owner>
  <summary>
    The time spent to get audio data from the source. For WebRTC, it's the time
    spent in WebRtcAudioRenderer::SourceCallback. Logged every function call,
    which is every 10 ms.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.GetSourceDataTimeMax.WebRTC"
    units="microseconds">
  <owner>grunell@chromium.org</owner>
  <summary>
    The maximum time spent to get audio data from the source during a session.
    For WebRTC, it's the time spent in WebRtcAudioRenderer::SourceCallback. A
    session is between Start() and Stop() of WebRtcAudioRenderer.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.Glitches" units="glitches">
  <owner>tommi@chromium.org</owner>
  <summary>
    The number of glitches that were detected at the OS level while an audio
    stream was active. A glitch is detected if the OS has to skip rendering a
    set of frames. This value is logged when an audio output stream is stopped.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.InputDeviceStartTime" units="ms">
  <owner>jonasolsson@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <owner>olka@chromium.org</owner>
  <summary>
    The time delta from an AudioInputDevice sending a RecordStream message to it
    getting its first data callback.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.InputDeviceStreamCreationTime" units="ms">
  <owner>jonasolsson@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <owner>olka@chromium.org</owner>
  <summary>
    The time delta between the moment a MojoAudioInputIPC instance on the
    renderer process requests a new stream from the browser to the moment it
    receives a response.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.LargestGlitchMs" units="ms">
  <owner>tommi@chromium.org</owner>
  <summary>
    The length in milliseconds of the largest glitch that was detected at the OS
    level. This value is logged when an audio output stream that has suffered
    glitches is stopped.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.LostFramesInMs" units="ms">
  <owner>tommi@chromium.org</owner>
  <summary>
    The combined length in milliseconds of audio glitches. This is useful to
    know in particular for audio processing such as echo cancellation. This
    value is logged when an audio output stream that has suffered glitches is
    stopped.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.OutputDeviceAuthorizationTime" units="ms">
  <owner>maxmorin@chromium.org</owner>
  <summary>
    Similar to Media.Audio.OutputDeviceAuthorizationTime, this histogram
    measures the time required for device authorization, but it is measured on
    the renderer side when AudioOutputDevice calls RequestDeviceAuthorization on
    the IO thread until it receives OnDeviceAuthorized, also on the IO thread.
    Note that an authorization timeout will cause OnDeviceAuthorized to be
    called, so for platforms that use a timeout, very few times will be above
    the timeout value.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.OutputDeviceAuthorizationTimedOut"
    enum="BooleanTimedOut">
  <owner>olka@chromium.org</owner>
  <summary>
    Whether audio output device timed out waiting for authorization reply from
    the browser side.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.OutputDeviceStartTime" units="ms">
  <owner>jonasolsson@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <owner>olka@chromium.org</owner>
  <summary>
    The time delta from an AudioOutputDevice sending its first PlayStream
    message to it getting its first data callback.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.OutputDeviceStatus"
    enum="OutputDeviceStatus">
  <owner>olka@chromium.org</owner>
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Device status received in response to device authorization request.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.OutputDeviceStreamCreationTime" units="ms">
  <owner>jonasolsson@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <owner>olka@chromium.org</owner>
  <summary>
    The time delta between the moment a MojoAudioOutputIPC instance on the
    renderer process requests a new stream from the browser to the moment it
    receives a response.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.OutputStreamDuration" units="ms">
  <owner>maxmorin@chromium.org</owner>
  <summary>
    This histogram measures the duration of every output stream, as seen from
    the renderer. It counts from when it has been successfully started, until it
    is stopped. Streams that fail to start are not logged.
  </summary>
</histogram>

<histogram
    name="Media.Audio.Render.SinkCache.GetOutputDeviceInfoCacheUtilization"
    enum="GetOutputDeviceInfoCacheHit">
  <owner>olka@chromium.org</owner>
  <summary>
    Whether a cached sink was used to get audio output device information, or a
    new sink was created for that.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.SinkCache.InfoSinkReusedForOutput"
    enum="BooleanReused">
  <owner>olka@chromium.org</owner>
  <summary>
    When a new sink is created to get output device information, it is cached.
    This metric shows if such a sink is later reused for audio output (can
    happen no more than once) or deleted unused after timeout expires. Logged
    when one of the abovementioned events takes place.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.SinkCache.UsedForSinkCreation"
    enum="BooleanUsage">
  <owner>olka@chromium.org</owner>
  <summary>
    Whether a sink was created through the sink cache or directly.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.StreamBrokerDisconnectReason"
    enum="AudioOutputStreamDisconnectReason" expires_after="2019-08-01">
  <obsolete>
    Deprecated 09/2018, and replaced by
    Media.Audio.Render.StreamBrokerDisconnectReason2.
  </obsolete>
  <owner>jonasolsson@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <owner>olka@chromium.org</owner>
  <summary>
    Error codes from AudioOutputStreamBroker::ObserverBindingLost. They describe
    why an audio output stream ended.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.StreamBrokerDisconnectReason2"
    enum="AudioOutputStreamDisconnectReason2" expires_after="2019-06-01">
  <owner>jonasolsson@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <owner>olka@chromium.org</owner>
  <summary>
    Describes why and in which state an audio output stream ended.
  </summary>
</histogram>

<histogram
    name="Media.Audio.Render.StreamBrokerDocumentDestroyedAwaitingCreatedTime"
    units="ms" expires_after="2019-06-01">
  <owner>olka@chromium.org</owner>
  <owner>marinaciocea@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <summary>
    If the document was destroyed after the broker requested the output stream
    from the audio service, but before it received the reply: how long ago the
    stream was requested.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.StreamBrokerStreamCreationTime" units="ms"
    expires_after="2019-06-01">
  <owner>olka@chromium.org</owner>
  <owner>marinaciocea@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <summary>
    Time interval between the moment the broker requested the output stream from
    the audio service, and the moment it received the reply.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.StreamCallbackError" enum="BooleanError">
  <obsolete>
    Replaced by Media.Audio.Render.StreamCallbackError2
  </obsolete>
  <owner>maxmorin@chromium.org</owner>
  <summary>
    When AudioOutputDevice is stopped, this stat is recorded with whether an
    error callback was ever received over IPC.
  </summary>
</histogram>

<histogram name="Media.Audio.Render.StreamCallbackError2"
    enum="AudioRenderDeviceError" expires_after="2019-06-01">
  <owner>maxmorin@chromium.org</owner>
  <summary>
    When AudioOutputDevice is stopped, this stat is recorded with whether an
    error callback was ever received over IPC, and in that case whether the
    error occurred during or after stream creation.
  </summary>
</histogram>

<histogram name="Media.Audio.RenderFailsWhenBufferSizeChangesMac"
    enum="BooleanChanged">
  <owner>henrika@chromium.org</owner>
  <summary>
    True if a call to AudioUnitRender failed with an error code of
    kAudioUnitErr_CannotDoInCurrentContext (-10863) and the call was preceded
    with a change in the native I/O buffer size. This value is logged while
    input audio is active but it should be a very rare event.
  </summary>
</histogram>

<histogram name="Media.Audio.RequestedInputBufferFrameSizeMac">
  <owner>henrika@chromium.org</owner>
  <summary>
    Size (in audio frames) the client has asked for when creating an
    AUAudioInputStream object. It might not be able to fulfill this request. The
    actual size is given by Media.Audio.ActualInputBufferFrameSizeMac. Only
    sampled when Media.Audio.InputStartupSuccessMac reports 'Failure'.
  </summary>
</histogram>

<histogram name="Media.Audio.ResumeEventsMac">
  <obsolete>
    Deprecated as of Aug 2018.
  </obsolete>
  <owner>henrika@chromium.org</owner>
  <summary>
    Counts the number of times the system has resumed from power suspension.
    Counting is reset each time Chrome restarts. Only sampled when
    Media.Audio.InputStartupSuccessMac reports 'Failure'.
  </summary>
</histogram>

<histogram name="Media.Audio.TrackAudioRenderer.DeviceStatus"
    enum="OutputDeviceStatus" expires_after="2019-06-01">
  <owner>olka@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <summary>
    Device status received during TrackAudioRenderer initialization. This is a
    specific case of Media.Audio.Render.OutputDeviceStatus histogram.
  </summary>
</histogram>

<histogram name="Media.Audio.TrackAudioRenderer.SwitchDeviceStatus"
    enum="OutputDeviceStatus" expires_after="2019-06-01">
  <owner>olka@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <summary>
    Device status received by TrackAudioRenderer when switching the output
    device. This is a specific case of Media.Audio.Render.OutputDeviceStatus
    histogram.
  </summary>
</histogram>

<histogram name="Media.Audio.UptimeMac" units="hours">
  <obsolete>
    Deprecated as of Aug 2018.
  </obsolete>
  <owner>henrika@chromium.org</owner>
  <summary>
    Reports the system uptime in hours for Mac OS X devices. Only sampled when
    Media.Audio.InputStartupSuccessMac reports 'Failure'.
  </summary>
</histogram>

<histogram name="Media.Audio.WebRTCAudioRenderer.DeviceStatus"
    enum="OutputDeviceStatus" expires_after="2019-06-01">
  <owner>olka@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <summary>
    Device status received during WebRTCAudioRenderer initialization. This is a
    specific case of Media.Audio.Render.OutputDeviceStatus histogram.
  </summary>
</histogram>

<histogram name="Media.Audio.WebRTCAudioRenderer.SwitchDeviceStatus"
    enum="OutputDeviceStatus" expires_after="2019-06-01">
  <owner>olka@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <summary>
    Device status received by WebRTCAudioRenderer when switching the output
    device. This is a specific case of Media.Audio.Render.OutputDeviceStatus
    histogram.
  </summary>
</histogram>

<histogram name="Media.AudioBitsPerChannel">
  <owner>dalecurtis@chromium.org</owner>
  <summary>Bits per channel of HTML5 audio sample data.</summary>
</histogram>

<histogram name="Media.AudioCapturerAudioGlitches" enum="AudioGlitchResult">
  <owner>grunell@chromium.org</owner>
  <summary>
    Whether there is input audio glitches due to dropped input audio data or
    not. Sampled when a low-latency input audio stream is destructed.
  </summary>
</histogram>

<histogram name="Media.AudioCapturerDroppedData" units="%">
  <owner>grunell@chromium.org</owner>
  <summary>
    The percentage of input audio data that was dropped at the browser/renderer
    boundary due to for example buffer overflow in the writer side buffer or in
    the socket. Reported at the destruction of low-latency audio input stream.
  </summary>
</histogram>

<histogram name="Media.AudioCapturerMissedReadDeadline" units="%">
  <owner>grunell@chromium.org</owner>
  <summary>
    The percentage of input audio data blocks that had to be buffered because
    there was not room in the shared memory ring buffer on the browser/renderer
    boundary. This happens if the reading side hasn't read data in time.
    Reported at the destruction of low-latency audio input stream.
  </summary>
</histogram>

<histogram name="Media.AudioCapturerRepetition" units="ms">
  <obsolete>
    Deprecated as of Jan 2018.
  </obsolete>
  <owner>minyue@chromium.org</owner>
  <summary>
    Captures bit-exact audio repetitions with pre-defined look back time. As
    soon as a repetition is detected, its look back time is reported. Ideally,
    no reports should be generated.
  </summary>
</histogram>

<histogram name="Media.AudioChannelLayout" enum="ChannelLayout">
  <owner>dalecurtis@chromium.org</owner>
  <summary>Audio channel layout in HTML5 media.</summary>
</histogram>

<histogram name="Media.AudioCodec" enum="AudioCodec">
  <owner>dalecurtis@chromium.org</owner>
  <summary>Audio codec used in HTML5 media.</summary>
</histogram>

<histogram name="Media.AudioInputCbErrorMac" units="OSStatus">
  <owner>henrika@chromium.org</owner>
  <summary>
    Error codes that AudioUnitRender() returns in AUAudioInputStream on Mac.
  </summary>
</histogram>

<histogram name="Media.AudioInputController" units="ms">
  <owner>dalecurtis@chromium.org</owner>
  <summary>Measures the time taken for AudioInputController::</summary>
</histogram>

<histogram name="Media.AudioInputControllerCaptureStartupSuccess"
    enum="CaptureStartupResult">
  <obsolete>
    Deprecated as of 02/2017.
  </obsolete>
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Whether capture started successfully after an input stream startup was
    requested.
  </summary>
</histogram>

<histogram name="Media.AudioInputControllerSessionSilenceReport"
    enum="AudioInputSilenceReport">
  <owner>grunell@chromium.org</owner>
  <summary>
    Every 15 seconds during the lifetime of an audio input stream, the sound
    level is measured, see AudioInputController::CheckAudioPower(). If the level
    is below a certain threshold, it's considered &quot;silence&quot;. Otherwise
    it's considered &quot;audio&quot;. This metric shows whether there was only
    silence, only audio, or both, during the lifetime of a stream. If logged
    before the first measurement, i.e. if the lifetime is less than 15 seconds,
    &quot;no measurement&quot; is reported. If there is no audio data provided
    by the OS during the lifetime of the stream, for example because of a bug,
    measurements will not be performed and &quot;no measurement&quot; is
    reported.
  </summary>
</histogram>

<histogram name="Media.AudioInputDeviceManager" units="ms">
  <owner>dalecurtis@chromium.org</owner>
  <summary>Measures the time taken for AudioInputDeviceManager::</summary>
</histogram>

<histogram name="Media.AudioOutputController" units="ms">
  <owner>dalecurtis@chromium.org</owner>
  <summary>Measures the time taken for AudioOutputController::</summary>
</histogram>

<histogram name="Media.AudioOutputController.CallbackError" enum="BooleanError">
  <owner>maxmorin@chromium.org</owner>
  <summary>
    A boolean that reflects whether or not an error was reported during audio
    rendering, reported after a stream has stopped, if it was started.
  </summary>
</histogram>

<histogram name="Media.AudioOutputController.LifeTime" units="ms"
    expires_after="2019-06-01">
  <owner>olka@chromium.org</owner>
  <owner>marinaciocea@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <summary>
    Time interval from the output stream controller construction to its
    destruction.
  </summary>
</histogram>

<histogram name="Media.AudioOutputController.ProxyStreamCreationResult"
    enum="AudioOutputStreamCreationResult">
  <owner>maxmorin@chromium.org</owner>
  <summary>
    Whether an AudioOutputController succeeded in creating and opening an output
    stream proxy. Only logged for the initial creation, subsequent re-creations
    due to device change events are logged in the
    Media.AudioOutputController.ProxyStreamCreationResultForDeviceChange
    histogram.
  </summary>
</histogram>

<histogram
    name="Media.AudioOutputController.ProxyStreamCreationResultForDeviceChange"
    enum="AudioOutputStreamCreationResult">
  <owner>maxmorin@chromium.org</owner>
  <summary>
    Whether an AudioOutputController succeeded in creating and opening an output
    stream proxy after receiving a default device change event.
  </summary>
</histogram>

<histogram name="Media.AudioOutputControllerDataNotReady" units="ms">
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Time spent waiting in AudioOutputController::WaitTillDataReady() if the data
    was not initially available.
  </summary>
</histogram>

<histogram name="Media.AudioOutputControllerPlaybackStartupSuccess"
    enum="BooleanSuccess">
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Whether playback started successfully after stream startup was requested.
  </summary>
</histogram>

<histogram name="Media.AudioOutputResampler.OpenLowLatencyStream"
    enum="AudioOutputResamplerLowLatencyOpenStreamResult">
  <owner>olka@chromium.org</owner>
  <summary>
    Whether a low latency stream to be rendered through the resampler was opened
    successfully or which type of fallback stream was used instead. In case a
    fake fallback stream is used it means audio rendered through the resampler
    will be muted. In case fallback fails entirely, renderer callback error will
    be signalled.
  </summary>
</histogram>

<histogram
    name="Media.AudioOutputStreamProxy.GetPreferredOutputStreamParametersWin.CreateClientResult"
    enum="Hresult">
  <owner>marinaciocea@chromium.org</owner>
  <summary>
    This histogram is the 3nd potential failure step in
    CoreAudioUtil::GetPreferredAudioParameters. The success% of this histogram
    is input for
    Media.AudioOutputStreamProxy.GetPreferredOutputStreamParametersWin.GetMixFormatResult
    histogram.
  </summary>
</histogram>

<histogram
    name="Media.AudioOutputStreamProxy.GetPreferredOutputStreamParametersWin.CreateDeviceEnumeratorResult"
    enum="Hresult">
  <owner>marinaciocea@chromium.org</owner>
  <summary>
    This histogram is the 1st potential failure step in
    CoreAudioUtil::GetPreferredAudioParameters. The success% of this histogram
    is input for
    Media.AudioOutputStreamProxy.GetPreferredOutputStreamParametersWin.CreateDeviceResult
    histogram.
  </summary>
</histogram>

<histogram
    name="Media.AudioOutputStreamProxy.GetPreferredOutputStreamParametersWin.CreateDeviceResult"
    enum="Hresult">
  <owner>marinaciocea@chromium.org</owner>
  <summary>
    This histogram is the 2nd potential failure step in
    CoreAudioUtil::GetPreferredAudioParameters. The success% of this histogram
    is input for
    Media.AudioOutputStreamProxy.GetPreferredOutputStreamParametersWin.CreateClientResult
    histogram.
  </summary>
</histogram>

<histogram
    name="Media.AudioOutputStreamProxy.GetPreferredOutputStreamParametersWin.GetDevicePeriodResult"
    enum="Hresult">
  <owner>marinaciocea@chromium.org</owner>
  <summary>
    This histogram is the last potential failure step in
    CoreAudioUtil::GetPreferredAudioParameters.
  </summary>
</histogram>

<histogram
    name="Media.AudioOutputStreamProxy.GetPreferredOutputStreamParametersWin.GetMixFormatResult"
    enum="Hresult">
  <owner>marinaciocea@chromium.org</owner>
  <summary>
    This histogram is the 4nd potential failure step in
    CoreAudioUtil::GetPreferredAudioParameters. The success% of this histogram
    is input for
    Media.AudioOutputStreamProxy.GetPreferredOutputStreamParametersWin.GetDevicePeriodResult
    histogram.
  </summary>
</histogram>

<histogram name="Media.AudioOutputStreamProxy.StreamFormat"
    enum="AudioOutputProxyStreamFormat">
  <owner>olka@chromium.org</owner>
  <summary>
    Records format used by AudioManager to create audio output stream proxy. If
    a fake stream is created it results in muted audio playback.

    On Windows, the failure reasons that can lead to fake stream creation are
    tracked with the following histograms:
    Media.AudioOutputStreamProxy.GetPreferredOutputStreamParametersWin.CreateDeviceEnumeratorResult
    Media.AudioOutputStreamProxy.GetPreferredOutputStreamParametersWin.CreateDeviceResult
    Media.AudioOutputStreamProxy.GetPreferredOutputStreamParametersWin.CreateClientResult
    Media.AudioOutputStreamProxy.GetPreferredOutputStreamParametersWin.GetMixFormatResult
    Media.AudioOutputStreamProxy.GetPreferredOutputStreamParametersWin.GetDevicePeriodResult
  </summary>
</histogram>

<histogram name="Media.AudioRendererAudioGlitches" enum="AudioGlitchResult">
  <owner>henrika@chromium.org</owner>
  <summary>
    Captures if render-side audio glitches are detected or not. Sampled when a
    low-latency output audio stream is destructed.
  </summary>
</histogram>

<histogram name="Media.AudioRendererEvents" enum="AudioRendererEvents">
  <obsolete>
    Deprecated Mar 2016 in favor of a new PipelineStatus code.
  </obsolete>
  <owner>scherkus@chromium.org</owner>
  <summary>Captures statistics for various AudioRendererImpl events.</summary>
</histogram>

<histogram name="Media.AudioRendererImpl.SinkStatus" enum="OutputDeviceStatus">
  <owner>olka@chromium.org</owner>
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Status of audio sink used by AudioRendererImpl. If not OK, a NullAudioSink
    will be used for audio output instead. This is logged for every call to
    AudioRendererImpl::Initialize, which generally occurs once per active audio
    session (i.e., between a play and pause). If audio track changes are ever
    enabled, it may additionally be called for every audio track change.
  </summary>
</histogram>

<histogram name="Media.AudioRendererIpcStreams">
  <obsolete>
    Deprecated 02/2017. No longer needed.
  </obsolete>
  <owner>grunell@chromium.org</owner>
  <summary>
    The maximum number of simultaneous audio render streams over IPC created in
    AudioRendererHost for a render process. Logged at render process shutdown.
  </summary>
</histogram>

<histogram name="Media.AudioRendererIpcStreamsTotal">
  <obsolete>
    Deprecated 02/2017. No longer needed.
  </obsolete>
  <owner>grunell@chromium.org</owner>
  <summary>
    The maximum number of simultaneous audio render streams over IPC created in
    AudioRendererHost for all render processes. Logged at render process
    shutdown.
  </summary>
</histogram>

<histogram name="Media.AudioRendererMissedDeadline" units="%">
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Percentage of AudioSyncReader::Read() calls where the renderer missed its
    realtime deadline.
  </summary>
</histogram>

<histogram name="Media.AudioSampleFormat" enum="AudioSampleFormat">
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Audio sample format in HTML5 media. Logged when Audio Decoder initializes.
  </summary>
</histogram>

<histogram name="Media.AudioSamplesPerSecond" enum="AudioSampleRate">
  <owner>dalecurtis@chromium.org</owner>
  <summary>Audio samples per second in HTML5 media.</summary>
</histogram>

<histogram name="Media.AudioSamplesPerSecondUnexpected" units="Hz">
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Audio samples per second in HTML5 media (atypical values, in Hz).
  </summary>
</histogram>

<histogram name="Media.AudioService.AudioManagerStartupTime" units="ms">
  <owner>marinaciocea@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <owner>olka@chromium.org</owner>
  <summary>
    How long it take for the audio manager instance to be created by the audio
    service, in case the audio service owns the audio manager.
  </summary>
</histogram>

<histogram name="Media.AudioService.HasConnectionsDuration" units="ms">
  <owner>marinaciocea@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <owner>olka@chromium.org</owner>
  <summary>
    The time interval when the audio service has connections, computed from the
    moment the first bind request is received to the moment when the last
    connection is closed.
  </summary>
</histogram>

<histogram name="Media.AudioService.HasNoConnectionsDuration" units="ms">
  <owner>marinaciocea@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <owner>olka@chromium.org</owner>
  <summary>
    The time interval when the audio service has no connections, computed from
    the moment the last connection is closed until quit closure is called or a
    new bind request is received.
  </summary>
</histogram>

<histogram name="Media.AudioService.ObservedDowntime" units="ms">
  <obsolete>
    Deprecated 06/2018. Split into Media.AudioService.ObservedInitialDowntime
    and Media.AudioService.ObservedDowntime2.
  </obsolete>
  <owner>marinaciocea@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <owner>olka@chromium.org</owner>
  <summary>
    The audio service downtime, observed from the browser process. The downtime
    interval is measured either from when the audio service listener is
    initialized to the first audio service start, or from the audio service
    shutdown to the next startup.
  </summary>
</histogram>

<histogram name="Media.AudioService.ObservedDowntime2" units="ms">
  <owner>marinaciocea@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <owner>olka@chromium.org</owner>
  <summary>
    The audio service downtime, observed from the browser process. The downtime
    interval is measured from the audio service shutdown to the next startup.
  </summary>
</histogram>

<histogram name="Media.AudioService.ObservedInitialDowntime" units="ms">
  <owner>marinaciocea@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <owner>olka@chromium.org</owner>
  <summary>
    The audio service downtime, observed from the browser process. The downtime
    interval is measured from when the audio service listener is initialized to
    the first audio service start.
  </summary>
</histogram>

<histogram name="Media.AudioService.ObservedProcessTerminationStatus"
    enum="AudioServiceProcessTerminationStatus">
  <obsolete>
    Deprecated 10/2018. Covered by the more generic stats
    ChildProcess.Crashed.UtilityProcessHash and
    ChildProcess.Launched.UtilityProcessHash.
  </obsolete>
  <owner>marinaciocea@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <owner>olka@chromium.org</owner>
  <summary>
    The termination status of the audio service process, observed from the
    browser process.
  </summary>
</histogram>

<histogram name="Media.AudioService.ObservedStartStatus"
    enum="AudioServiceStartStatus">
  <owner>marinaciocea@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <owner>olka@chromium.org</owner>
  <summary>
    The start result of the audio service, observed from the browser process.
  </summary>
</histogram>

<histogram name="Media.AudioService.ObservedStartupTime" units="ms">
  <owner>marinaciocea@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <owner>olka@chromium.org</owner>
  <summary>
    The startup time of the audio service, observed from the browser process.
    The startup time interval is measured from when a connect request results in
    the audio service being created to the moment when the audio service is
    started.
  </summary>
</histogram>

<histogram name="Media.AudioService.ObservedUptime" units="ms">
  <owner>marinaciocea@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <owner>olka@chromium.org</owner>
  <summary>
    The uptime of the audio service, observed from the browser process. The
    uptime interval is measured from when the audio service starts to when it is
    shut down (either normally or through kill/crash). This metric includes
    Media.AudioService.Uptime measurements, logged by the audio service on
    normal shutdown. A difference between Media.AudioService.ObservedUptime and
    Media.AudioService.Uptime indicates buggy audio service behavior.
  </summary>
</histogram>

<histogram name="Media.AudioService.SystemInfoClient" units="ms">
<!-- Name completed by histogram_suffixes name="AudioSystemInfoRequest" -->

  <owner>marinaciocea@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <owner>olka@chromium.org</owner>
  <summary>
    The time interval between the moment when a client issues a system
    information request to the audio service, and the moment it receives the
    responce. Logged individually for each request type.
  </summary>
</histogram>

<histogram name="Media.AudioService.Uptime" units="ms">
  <owner>marinaciocea@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <owner>olka@chromium.org</owner>
  <summary>
    The uptime of the audio service, observed from the audio service. The uptime
    interval is measured from the audio service start to the audio service stop.
  </summary>
</histogram>

<histogram name="Media.AudioThreadStatus" enum="AudioThreadStatus">
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    State of the audio thread. A value of &quot;started&quot; is emitted once
    the hang monitor has been initialized. If the thread is detected as hung
    later, a value of &quot;hung&quot; is emitted. If the hung thread later
    recovers a value of &quot;recovered&quot; is emitted.
  </summary>
</histogram>

<histogram name="Media.AudioTrackProcessingStates"
    enum="AudioTrackProcessingStates">
  <owner>grunell@chromium.org</owner>
  <summary>
    State of the media stream audio track processing, sampled once during the
    life time of a MediaStreamAudioProcessor.
  </summary>
</histogram>

<histogram name="Media.Autoplay.CrossOrigin.Result"
    enum="CrossOriginAutoplayResult">
  <obsolete>
    Deprecated January 2019. No longer needed.
  </obsolete>
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    The result of autoplaying video elements in cross-origin iframes.
  </summary>
</histogram>

<histogram name="Media.AVDA.FrameInformation" enum="AVDAFrameInformation">
  <owner>liberato@chromium.org</owner>
  <summary>
    Record a count for each frame sent to the client by AVDA, separated by what
    type of frame it is: Non Overlay, secure overlay, etc.
  </summary>
</histogram>

<histogram name="Media.AVDA.FrameSentAsOverlay" enum="BooleanFrameAsOverlay">
  <owner>liberato@chromium.org</owner>
  <summary>
    Record a count for each frame sent to the client by AVDA. True counts
    indicate that the frame was an overlay (SurfaceView). False counts are for
    Non Overlay frames. This will be deprecated in favor of
    Media.AVDA.FrameInformation in M63.
  </summary>
</histogram>

<histogram name="Media.AVDA.InputQueueTime" units="ms">
  <obsolete>
    Deprecated 03/2016. No longer needed.
  </obsolete>
  <owner>watk@chromium.org</owner>
  <summary>
    The time that a bitstream buffer spends in AVDA's pending bitstream buffer
    queue before it is fed to MediaCodec.
  </summary>
</histogram>

<histogram name="Media.AVDA.MissingFormatChanged" enum="BooleanFormatChanged">
  <obsolete>
    Deprecated 10/2016. No longer needed.
  </obsolete>
  <owner>liberato@chromium.org</owner>
  <summary>
    Number of times that AVDA stopped decoding because MediaCodec failed to
    provide a FORMAT_CHANGED message before sending decoded frames back. True
    counts indicate instances where FORMAT_CHANGE was missed, while false
    instances indicate any MediaCodec initialization by AVDA.
  </summary>
</histogram>

<histogram name="Media.AVDA.NumAVDAInstances" units="AVDA instances">
  <obsolete>
    Deprecated 10/2016. No longer needed.
  </obsolete>
  <owner>watk@chromium.org</owner>
  <summary>
    The number of concurrently running AndroidVideoDecodeAccelerators. Logged
    during each AVDA initialization.
  </summary>
</histogram>

<histogram name="Media.AVDA.VirtualContext" enum="BooleanVirtualContext">
  <obsolete>
    Deprecated 10/2016. No longer needed.
  </obsolete>
  <owner>liberato@chromium.org</owner>
  <summary>
    Number of times that AVDA's deferred rendering encountered a virtual GL
    context. True counts indicate virtual, false counts indicate not.
  </summary>
</histogram>

<histogram name="Media.AvdaCodecImage.WaitTimeForFrame" units="ms">
  <obsolete>
    Deprecated 06/2018. This has been renamed to
    Media.CodecImage.SurfaceTextureGLOwner.WaitTimeForFrame and
    Media.CodecImage.ImageReaderGLOwner.WaitTimeForFrame.
  </obsolete>
  <owner>liberato@chromium.org</owner>
  <summary>
    Time spent waiting for a frame to become available in a Non Overlay after
    requesting that MediaCodec renders it.
  </summary>
</histogram>

<histogram name="Media.BytesReadFromCache" units="KB">
  <owner>hubbe@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>Kb read by media demuxer from MultiBuffer cache.</summary>
</histogram>

<histogram name="Media.BytesReadFromNetwork" units="KB">
  <owner>hubbe@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>Kb read by from network into MultiBuffer cache.</summary>
</histogram>

<histogram base="true" name="Media.BytesReceived" units="KB"
    expires_after="2019-10-15">
  <owner>hubbe@chromium.org</owner>
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Total number of bytes buffered over the lifetime of a WebMediaPlayer,
    suffixed by type of playback.
  </summary>
</histogram>

<histogram name="Media.CacheUseful" enum="BooleanSuccess">
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Whether a media response might be used to satisfy a future request.
  </summary>
</histogram>

<histogram name="Media.ChromeArcVideoDecodeAccelerator.InitializeResult"
    enum="ArcVideoDecodeAcceleratorResult">
  <obsolete>
    Deprecated as of Dec 18, 2017. Replaced by
    Media.GpuArcVideoDecodeAccelerator.InitializeResult.
  </obsolete>
  <owner>johnylin@chromium.org</owner>
  <summary>
    Counts of status values returned from calls to
    ChromeArcVideoDecodeAccelerator::Initialize().
  </summary>
</histogram>

<histogram name="Media.ChromeCast.DelayedAndDroppedFramesPer5Sec"
    units="frames/5s">
  <owner>mfoltz@chromium.org</owner>
  <summary>
    The average number of delayed and dropped frames for the ChromeCast
    application. Reported every 5 seconds.
  </summary>
</histogram>

<histogram name="Media.ChromeCast.DisplayedFramesPerSecond" units="frames/s">
  <obsolete>
    Deprecated 07/2015 in issue 508534.
  </obsolete>
  <owner>mfoltz@chromium.org</owner>
  <summary>
    The average number of displayed frames for the ChromeCast application.
    Reported every 5 seconds.
  </summary>
</histogram>

<histogram name="Media.ChromeCast.TimeToBufferAv" units="ms">
  <owner>mfoltz@chromium.org</owner>
  <summary>
    Time needed to pre-buffer A/V data before the actual playback for the
    ChromeCast application.
  </summary>
</histogram>

<histogram name="Media.ChromeCast.TimeToBufferAvAfterAbort" units="ms">
  <owner>mfoltz@chromium.org</owner>
  <summary>
    Time needed to buffer A/V data after an abort for the ChromeCast
    application.
  </summary>
</histogram>

<histogram name="Media.ChromeCast.TimeToBufferAvAfterUnderrun" units="ms">
  <owner>mfoltz@chromium.org</owner>
  <summary>
    Time needed to buffer A/V data after an underrun for the ChromeCast
    application.
  </summary>
</histogram>

<histogram name="Media.CodecImage.ImageReaderGLOwner.FrameTimedOut"
    enum="BooleanTimedOut" expires_after="M76">
  <owner>ericrk@chromium.org</owner>
  <owner>liberato@chromium.org</owner>
  <summary>
    Whether we exceeded the timeout in ImageReaderGLOwner::
    WaitForFrameAvailable and will proceed without a frame ready.
  </summary>
</histogram>

<histogram name="Media.CodecImage.ImageReaderGLOwner.WaitTimeForFrame"
    units="ms">
  <owner>vikassoni@chromium.org</owner>
  <summary>
    Time spent waiting for a frame to become available in a Non Overlay
    (AImageReader mode) so that MediaCodec can render it. This time is recorded
    before the frame is rendered.
  </summary>
</histogram>

<histogram name="Media.CodecImage.SurfaceTextureGLOwner.FrameTimedOut"
    enum="BooleanTimedOut" expires_after="M76">
  <owner>ericrk@chromium.org</owner>
  <owner>liberato@chromium.org</owner>
  <summary>
    Whether we exceeded the timeout in SurfaceTextureGLOwner::
    WaitForFrameAvailable and will proceed without a frame ready.
  </summary>
</histogram>

<histogram name="Media.CodecImage.SurfaceTextureGLOwner.WaitTimeForFrame"
    units="ms">
  <owner>liberato@chromium.org</owner>
  <summary>
    Time spent waiting for a frame to become available in a Non Overlay
    (SurfaceTexture mode) so that MediaCodec can render it. This time is
    recorded before the frame is rendered.
  </summary>
</histogram>

<histogram name="Media.Controls.CTR" enum="MediaControlsCTREvent">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records events related to click through rate (CTR) calculation.

    The CTR can be calculated by computing &quot;Interacted&quot; /
    &quot;Displayed&quot;. &quot;Interacted&quot;, for buttons, means that they
    were clicked. For sliders, it will reflect any change in the internal state
    and includes other events in addition to clicks. &quot;Displayed&quot; means
    that the control element was meant to be displayed in the controls. It does
    not mean that the user have seen the element so is not to be confused with
    visibility. Furthermore, because the controls UI changes while loading,
    &quot;Displayed&quot; is only computed when metadata are available unless
    preloading was disabled on the element or the browser.
  </summary>
</histogram>

<histogram name="Media.Controls.Download" enum="MediaControlsDownloadReason">
  <obsolete>
    Deprecated July 2017 in favor of Media.Controls.CTR.DownloadButton.
  </obsolete>
  <owner>mlamouri@chromium.org</owner>
  <owner>nyquist@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records events and user interactions related to the download button shown on
    media elements.
  </summary>
</histogram>

<histogram name="Media.Controls.Overflow.TimeToAction" units="seconds">
  <owner>beccahughes@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records the amount of time the overflow menu is displayed until the user
    clicked on a menu item. The overflow menu is shown by clicking the three
    dots on the media controls and is used to show more controls when there is
    not enough space. This histogram will record up to 100 seconds with accuracy
    to the second.
  </summary>
</histogram>

<histogram name="Media.Controls.Overflow.TimeToDismiss" units="seconds">
  <owner>beccahughes@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records the amount of time the overflow menu is displayed until the user
    dismissed the menu without clicking on a menu item. The overflow menu is
    shown by clicking the three dots on the media controls and is used to show
    more controls when there is not enough space. This histogram will record up
    to 100 seconds with accuracy to the second.
  </summary>
</histogram>

<histogram name="Media.Controls.Show" enum="MediaControlsShowReason">
  <obsolete>
    Deprecated May 19 2016 in favor of Media.Controls.Show.{Audio,Video}
  </obsolete>
  <owner>mlamouri@chromium.org</owner>
  <summary>
    Record whether the default media controls were shown and why every time they
    could be shown.
  </summary>
</histogram>

<histogram name="Media.Controls.Show.Audio" enum="MediaControlsShowReason">
  <owner>mlamouri@chromium.org</owner>
  <summary>
    Record whether the default media controls of an audio element were shown and
    why every time they could be shown. Note that audio elements that were not
    insterted to the DOM and do not have a controls attribute are not taken into
    account.
  </summary>
</histogram>

<histogram name="Media.Controls.Show.Video" enum="MediaControlsShowReason">
  <owner>mlamouri@chromium.org</owner>
  <summary>
    Record whether the default media controls of a video element were shown and
    why every time they could be shown.
  </summary>
</histogram>

<histogram name="Media.CrosBeamformingDeviceState"
    enum="CrosBeamformingDeviceState">
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    The state of the user selected virtual beamforming audio device on CrOS.
    It's logged whenever the format of the audio input stream is queried, which
    at least happens on stream startup, but could happen at other times as well.
  </summary>
</histogram>

<histogram name="Media.D3D11.WasVideoSupported"
    enum="D3D11VideoNotSupportedReason" expires_after="2019-12-31">
  <owner>liberato@chromium.org</owner>
  <owner>sandersd@chromium.org</owner>
  <owner>tmathmeyer@chromium.org</owner>
  <summary>
    This enum measures whether or not d3d11 is supported and if not, what the
    reason is.
  </summary>
</histogram>

<histogram name="Media.DetectedAudioCodec" enum="FFmpegCodecs">
  <obsolete>
    Deprecated Sep 15 2015 in favor of Media.DetectedAudioCodecHash
  </obsolete>
  <owner>jrummell@chromium.org</owner>
  <summary>Audio codec used in HTML5 media.</summary>
</histogram>

<histogram name="Media.DetectedAudioCodecHash" enum="FFmpegCodecHashes">
  <owner>media-dev@chromium.org</owner>
  <summary>
    Audio codec used in HTML5 media. Reporting corrected in M51 to include all
    detected audio codecs, not just those up to and including the first one
    supported.
  </summary>
</histogram>

<histogram name="Media.DetectedAudioCodecHash.Local" enum="FFmpegCodecHashes">
  <owner>media-dev@chromium.org</owner>
  <summary>Audio codec used in HTML5 media for a local file playback.</summary>
</histogram>

<histogram name="Media.DetectedContainer" enum="MediaContainers">
  <owner>jrummell@chromium.org</owner>
  <summary>
    Container used for HTML5 media. Views that include pre-M34 data will
    categorize dash (38) and smooth streaming (39) in the &quot;Other&quot;
    bucket.
  </summary>
</histogram>

<histogram name="Media.DetectedContainer.Local" enum="MediaContainers">
  <owner>media-dev@chromium.org</owner>
  <summary>Container used for HTML5 media for a local file playback.</summary>
</histogram>

<histogram name="Media.DetectedTrackCount.Audio">
  <owner>wolenetz@chromium.org</owner>
  <summary>
    Number of detected audio tracks in HTML5 media. Not all may be usable by the
    player.
  </summary>
</histogram>

<histogram name="Media.DetectedTrackCount.Text">
  <owner>wolenetz@chromium.org</owner>
  <summary>
    Number of detected text tracks in HTML5 media. Not all may be usable by the
    player.
  </summary>
</histogram>

<histogram name="Media.DetectedTrackCount.Video">
  <owner>wolenetz@chromium.org</owner>
  <summary>
    Number of detected video tracks in HTML5 media. Not all may be usable by the
    player.
  </summary>
</histogram>

<histogram name="Media.DetectedVideoCodec" enum="FFmpegCodecs">
  <obsolete>
    Deprecated Sep 15 2015 in favor of Media.DetectedVideoCodecHash
  </obsolete>
  <owner>jrummell@chromium.org</owner>
  <summary>Video codec used in HTML5 media.</summary>
</histogram>

<histogram name="Media.DetectedVideoCodecHash" enum="FFmpegCodecHashes">
  <owner>jrummell@chromium.org</owner>
  <summary>
    Video codec used in HTML5 media. Reporting corrected in M51 to include all
    detected video codecs, not just those up to and including the first one
    supported.
  </summary>
</histogram>

<histogram name="Media.DetectedVideoCodecHash.Local" enum="FFmpegCodecHashes">
  <owner>media-dev@chromium.org</owner>
  <summary>Video codec used in HTML5 media for a local file playback.</summary>
</histogram>

<histogram name="Media.DevicePermissionActions" enum="DevicePermissionActions">
  <obsolete>
    Removed 10/2015 in favor of Permissions.Action.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures the actions taken in the media infobar, which prompts the users for
    device permission.
  </summary>
</histogram>

<histogram name="Media.DroppedFrameCount">
  <owner>prabhur@chromium.org</owner>
  <summary>
    Count of dropped frames between pipeline start and stop. Media pipeline
    starts/stops when an HTML5 video is loaded/unloaded respectively in the
    browser.
  </summary>
</histogram>

<histogram name="Media.Duration" units="ms">
  <obsolete>
    Removed 03/2017 in favor of Media.Duration2 with larger max bucket.
  </obsolete>
  <owner>scherkus@chromium.org</owner>
  <summary>Duration in milliseconds of HTML5 media (when known).</summary>
</histogram>

<histogram name="Media.Duration2" units="ms">
  <owner>dalecurtis@chromium.org</owner>
  <summary>Duration in milliseconds of HTML5 media (when known).</summary>
</histogram>

<histogram name="Media.DXVAVDA.CreateDecoderStatus" enum="BooleanSuccess"
    expires_after="M73">
  <obsolete>
    Removed 12/2018 since we had enough data to make a decision.
  </obsolete>
  <owner>dalecurtis@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Did IsResolutionSupportedForDevice() succeed or fail during
    ID3D11VideoDevice::CreateVideoDecoder().
  </summary>
</histogram>

<histogram name="Media.DXVAVDA.ErrorLine">
  <owner>liberato@chromium.org</owner>
  <owner>sandersd@chromium.org</owner>
  <summary>
    Whenever an error is logged from the DXVAVDA, this records the line in
    dxva_video_decode_accelerator.cc where the failure occurred.
  </summary>
</histogram>

<histogram name="Media.DXVAVDA.GetDecoderConfigStatus" enum="BooleanSuccess"
    expires_after="M73">
  <obsolete>
    Removed 12/2018 since we had enough data to make a decision.
  </obsolete>
  <owner>dalecurtis@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Did IsResolutionSupportedForDevice() succeed or fail during
    ID3D11VideoDevice::GetVideoDecoderConfig().
  </summary>
</histogram>

<histogram name="Media.DXVAVDA.PictureBufferErrorLine">
  <owner>jbauman@chromium.org</owner>
  <owner>sandersd@chromium.org</owner>
  <summary>
    Whenever an error is logged from the DXVAVDA picture buffer code, this
    records the line in dxva_picture_buffer_win.cc where the failure occurred.
    This histogram can only meaningfully be compared between different versions
    of Chromium if no line numbers in that file changed between those versions.
  </summary>
</histogram>

<histogram name="Media.DXVAVDA.PictureBufferMechanism"
    enum="PictureBufferMechanism">
  <owner>liberato@chromium.org</owner>
  <owner>sandersd@chromium.org</owner>
  <summary>
    This enum measures how often each of the various DXVAVDA PictureBuffer
    display mechanisms are used. Each count represents the mechanism selected at
    the end of DXVA::Initialize; i.e., there is one count per decoder.
  </summary>
</histogram>

<histogram name="Media.DXVAVDA.UseD3D11" enum="DXVADXVersion"
    expires_after="2019-06-30">
  <owner>liberato@chromium.org</owner>
  <owner>tmathmeyer@chromium.org</owner>
  <owner>sandersd@chromium.org</owner>
  <summary>
    Records how many times the DXVA VDA successfully initializes a D3D11 device
    vs. D3D9 device.
  </summary>
</histogram>

<histogram base="true" name="Media.EME" enum="CdmPromiseResult">
  <owner>sandersd@chromium.org</owner>
  <summary>Result of EME promises that were handled by Chromium code.</summary>
</histogram>

<histogram base="true" name="Media.EME.addKey" enum="MediaKeyException">
  <obsolete>
    Deprecated 02/2016 with removal of prefixed EME.
  </obsolete>
  <owner>xhwang@chromium.org</owner>
  <summary>addKey result</summary>
</histogram>

<histogram base="true" name="Media.EME.cancelKeyRequest"
    enum="MediaKeyException">
  <obsolete>
    Deprecated 02/2016 with removal of prefixed EME.
  </obsolete>
  <owner>xhwang@chromium.org</owner>
  <summary>cancelKeyRequest result.</summary>
</histogram>

<histogram name="Media.EME.CdmFileIO.FileSizeKBOnError" units="KB">
  <owner>xhwang@chromium.org</owner>
  <summary>
    Size in KB of the last file successfully read by the CDM through CDM FileIO
    before a specific error happens. This is reported only when the error
    happens, which should be rare.
  </summary>
</histogram>

<histogram name="Media.EME.CdmFileIO.FileSizeKBOnFirstRead" units="KB">
  <owner>xhwang@chromium.org</owner>
  <summary>
    Size in KB of the first file successfully read by the CDM through CDM
    FileIO. This is recorded once per CDM instance.
  </summary>
</histogram>

<histogram name="Media.EME.CdmFileIO.ReadTime" units="ms">
  <owner>media-dev@chromium.org</owner>
  <summary>The actual time spent by the CDM reading a file.</summary>
</histogram>

<histogram name="Media.EME.CdmFileIO.WriteTime" units="ms">
  <owner>media-dev@chromium.org</owner>
  <summary>The actual time spent by the CDM writing a file.</summary>
</histogram>

<histogram name="Media.EME.CdmHostVerificationStatus"
    enum="CdmHostVerificationStatus">
  <owner>media-dev@chromium.org</owner>
  <summary>
    The status of CDM host verification. This is reported per CDM load.
  </summary>
</histogram>

<histogram name="Media.EME.CdmInterfaceVersion">
  <owner>xhwang@chromium.org</owner>
  <summary>
    Chromium could support multiple versions of CDM interface. This metric
    records the CDM interface version that the CDM created by Chromium uses.
    This is recorded once per CDM instance.
  </summary>
</histogram>

<histogram name="Media.EME.CdmLoadErrorCode" enum="WinGetLastError">
  <owner>media-dev@chromium.org</owner>
  <summary>
    The error code of a library CDM load failure. Only reported on Windows.
  </summary>
</histogram>

<histogram name="Media.EME.CdmLoadResult" enum="CdmLoadResult">
  <owner>media-dev@chromium.org</owner>
  <summary>The result from an attempt to load a library CDM.</summary>
</histogram>

<histogram name="Media.EME.CdmLoadTime" units="ms">
  <owner>media-dev@chromium.org</owner>
  <summary>The time spent to load a library CDM.</summary>
</histogram>

<histogram base="true" name="Media.EME.CreateCdm" enum="BooleanSuccess">
  <owner>xhwang@chromium.org</owner>
  <summary>
    Whether the CDM instance is created successfully. Reported each time a CDM
    instance creation is attempted, usually as a result of Javascript call of
    createMediaKeys().
  </summary>
</histogram>

<histogram base="true" name="Media.EME.CreateCdmTime" units="ms">
  <owner>xhwang@chromium.org</owner>
  <summary>The time it takes to create the CDM instance.</summary>
</histogram>

<histogram name="Media.EME.EncryptedEvent" enum="BooleanEncryptedEvent">
  <owner>xhwang@chromium.org</owner>
  <summary>
    Whether EME encrypted event has been fired. Every time a WebMediaPlayerImpl
    object is created a &quot;false&quot; value is reported to provide a
    baseline. Every time an encrypted event is fired, a &quot;true&quot; value
    will be reported. Note that it is possible to have multiple encrypted events
    during the lifetime of a WebMediaPlayerImpl object.
  </summary>
</histogram>

<histogram name="Media.EME.EncryptedMediaEnabled" enum="BooleanEnabled">
  <owner>xhwang@chromium.org</owner>
  <summary>
    Whether encrypted media is enabled when requestMediaKeySystemAccess() is
    called. User can enable and disable encrypted media in content settings.
    Recorded when requestMediaKeySystemAccess() is called but will be reported
    at most once per renderer process.
  </summary>
</histogram>

<histogram name="Media.EME.EncryptionScheme.Initial.Audio"
    enum="MediaEncryptionScheme">
  <owner>jrummell@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    The encryption scheme used by the audio stream in an HTML5 video. Reported
    when metadata is available if the initial config is encrypted.
  </summary>
</histogram>

<histogram name="Media.EME.EncryptionScheme.Initial.Video"
    enum="MediaEncryptionScheme">
  <owner>jrummell@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    The encryption scheme used by the video stream in an HTML5 video. Reported
    when metadata is available if the initial config is encrypted.
  </summary>
</histogram>

<histogram base="true" name="Media.EME.generateKeyRequest"
    enum="MediaKeyException">
  <obsolete>
    Deprecated 02/2016 with removal of prefixed EME.
  </obsolete>
  <owner>xhwang@chromium.org</owner>
  <summary>generateKeyRequest result.</summary>
</histogram>

<histogram name="Media.EME.IsIncognito" enum="BooleanIncognito">
  <owner>xhwang@chromium.org</owner>
  <summary>
    Whether a given WebMediaPlayer instance, with a CDM attached, is played in
    an incognito window or in Chrome OS guest mode. Players that never started
    playback are excluded. Recorded once at time of player destruction.
  </summary>
</histogram>

<histogram base="true" name="Media.EME.KeyAdded">
  <obsolete>
    Deprecated 02/2016 with removal of prefixed EME.
  </obsolete>
  <owner>xhwang@chromium.org</owner>
  <summary>KeyAdded event count.</summary>
</histogram>

<histogram base="true" name="Media.EME.KeyError" enum="MediaKeyError">
  <obsolete>
    Deprecated 02/2016 with removal of prefixed EME.
  </obsolete>
  <owner>xhwang@chromium.org</owner>
  <summary>KeyError event count.</summary>
</histogram>

<histogram base="true" name="Media.EME.KeyStatusSystemCode"
    enum="CdmSystemCode">
  <owner>media-dev@chromium.org</owner>
  <summary>System code count associated with key status.</summary>
</histogram>

<histogram name="Media.EME.KeySystemSupport.Widevine"
    enum="MediaKeySystemSupportStatus">
  <obsolete>
    Deprecated 02/2016 with removal of prefixed EME.
  </obsolete>
  <owner>xhwang@chromium.org</owner>
  <summary>
    Key system support query status and result. Each enum value will be reported
    at most once per renderer process.
  </summary>
</histogram>

<histogram base="true" name="Media.EME.LibraryCdmAvailable"
    enum="BooleanAvailable">
  <owner>media-dev@chromium.org</owner>
  <summary>
    Whether the CDM is available for the key system or not. In normal cases,
    this is reported once per render process if the EME API is used. In rare
    cases it could be reported more than once if the CDM is not available and
    then is component updated.
  </summary>
</histogram>

<histogram name="Media.EME.MediaCryptoAvailable" enum="BooleanAvailable">
  <owner>media-dev@chromium.org</owner>
  <summary>
    Whether MediaCrypto is available on a MediaDrm-based CDM. Reported once per
    MediaDrmBridge creation. In normal cases it should always be available.
  </summary>
</histogram>

<histogram name="Media.EME.MediaDrmBridge.KeySystemSupport"
    enum="BooleanSupported">
  <owner>media-dev@chromium.org</owner>
  <summary>
    Whether MediaDrmBridge supports the key system. Reported once per
    MediaDrmBridge creation. In normal cases it should always be supported.
  </summary>
</histogram>

<histogram name="Media.EME.MojoCdm.ConnectionError"
    enum="BooleanConnectionError">
  <owner>media-dev@chromium.org</owner>
  <summary>
    Whether connection error has happened for MojoCdm. Every time a MojoCdm
    object is created a &quot;false&quot; value is reported to provide a
    baseline. Every time a mojo connection error happened, a &quot;true&quot;
    value will be reported, which typically means a remote CDM process crash.
  </summary>
</histogram>

<histogram name="Media.EME.NeedKey">
  <obsolete>
    Renamed to Media.EME.EncryptedEvent in 10/2017.
  </obsolete>
  <owner>xhwang@chromium.org</owner>
  <summary>EME NeedKey event count.</summary>
</histogram>

<histogram name="Media.EME.OutputProtection" enum="MediaOutputProtectionStatus">
  <owner>xhwang@chromium.org</owner>
  <summary>
    Output protection query status and result. One query and one positive (no
    unprotected external links) result (if any) are reported per CDM instance.
  </summary>
</histogram>

<histogram name="Media.EME.RequestMediaKeySystemAccess"
    enum="RequestMediaKeySystemAccessStatus">
  <owner>sandersd@chromium.org</owner>
  <summary>
    Key system support query status and result, as reported by
    RequestMediaKeySystemAccess. Each value will be reported at most once per
    renderer process.
  </summary>
</histogram>

<histogram base="true" name="Media.EME.SystemCode" enum="CdmSystemCode">
  <owner>xhwang@chromium.org</owner>
  <summary>System code count in promise rejection.</summary>
</histogram>

<histogram base="true" name="Media.EME.TimeTo" units="ms">
  <owner>xhwang@chromium.org</owner>
  <summary>The time it takes to resolve a EME promise.</summary>
</histogram>

<histogram name="Media.EME.Widevine.VideoCapability.HasEmptyRobustness"
    enum="BooleanEmpty">
  <owner>xhwang@chromium.org</owner>
  <summary>
    Whether the robustness level of any video capability in the supported
    configuration passed into requestMediaKeySystemAccess() is empty. This is
    specific to the Widevine key system.
  </summary>
</histogram>

<histogram name="Media.Engagement.Clear" enum="MediaEngagementClearReason">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records the reason why the Media Engagement data was cleared. Partial
    changes and full wipeout will both be recorded as one event.
  </summary>
</histogram>

<histogram name="Media.Engagement.PreloadedList.CheckResult"
    enum="PreloadedListCheckResult">
  <owner>beccahughes@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Recorded when the Media Engagement Preloaded List is checked whether a
    string is present on that list. If the check was successful then the result
    of the check is recorded in this histogram. If the check was not successful
    then the reason for the check failing is recorded.
  </summary>
</histogram>

<histogram name="Media.Engagement.PreloadedList.LoadResult"
    enum="PreloadedListLoadResult">
  <owner>beccahughes@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Recorded when data is loaded into the Media Engagement Preloaded List. If
    the load is successful then &quot;loaded&quot; is recorded to this
    histogram. If the load was not successful then the reason why is recorded to
    this histogram.
  </summary>
</histogram>

<histogram name="Media.Engagement.PreloadedList.LoadTime" units="ms">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Time taken to load the Media Engagement Preloaded List. It should be
    recorded once per load of the list which will be once per start up with
    additional loads when the list is updated while running.
  </summary>
</histogram>

<histogram name="Media.Engagement.PreloadedList.LookupTime" units="ms">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Time taken to lookup an entry in the Media Engagement Preloaded List. This
    is recorded for every lookup, regardless of its success.
  </summary>
</histogram>

<histogram name="Media.Engagement.ScoreAtPlayback" units="%">
  <owner>beccahughes@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    The media engagement score recorded at the time of playback. It is converted
    to a percentage so should be divided by 100 to get the actual score. It is
    only recorded for playback that is either lacking an audio track or not
    muted.
  </summary>
</histogram>

<histogram name="Media.Engagement.ScoreAtStartup" units="%">
  <obsolete>
    Deprecated 11/2018 in Issue 900679 as we are no longer using this.
  </obsolete>
  <owner>beccahughes@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Media engagement scores for each origin, recorded at Chrome startup. It is
    converted to a percentage so should be divided by 100 to get the actual
    score.
  </summary>
</histogram>

<histogram name="Media.Engagement.Session" enum="MediaEngagementSessionEvent">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records creation and playback status of a Media Engagement Session. This is
    recorded at the same time as the data is commited into the content settings
    database.
  </summary>
</histogram>

<histogram name="Media.Engagement.Session.Restored"
    enum="MediaEngagementSessionEvent">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records creation and playback status of a restored Media Engagement Session.
    This is recorded at the same time as the data is commited into the content
    settings database. Restored information are recorded in addition of regular
    ones (Media.Engagement.Session).
  </summary>
</histogram>

<histogram
    name="Media.Engagement.SignificantPlayers.PlayerNotAdded.AfterFirstTime"
    enum="InsignificantPlaybackReason">
  <owner>beccahughes@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Recorded when the Media Engagement service doesn't determine a player to be
    significant. If a player is not significant the reasons why will be
    individually recorded to this histogram each time except for the first time
    which is recorded to a different histogram.

    The significant state of a player is reevaluated any time the state of the
    player changes (e.g. muted, playing/paused). If the player was not
    considered signficiant and still is not then we will record the reasons why
    in this histogram.
  </summary>
</histogram>

<histogram name="Media.Engagement.SignificantPlayers.PlayerNotAdded.FirstTime"
    enum="InsignificantPlaybackReason">
  <owner>beccahughes@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Recorded when the Media Engagement service doesn't determine a player to be
    significant. If a player is not significant the reasons why will be
    individually recorded to this histogram the first time only.

    The significant state of a player is reevaluated any time the state of the
    player changes (e.g. muted, playing/paused). If the player was not
    considered signficiant and still is not then we will record the reasons why
    in this histogram.
  </summary>
</histogram>

<histogram name="Media.Engagement.SignificantPlayers.PlayerRemoved"
    enum="InsignificantPlaybackReason">
  <owner>beccahughes@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Recorded when the Media Engagement service no longer determines a player to
    be significant. If a player is no longer significant, the reasons why will
    be individually recorded to this histogram.

    The significant state of a player is re-evaluted any time the state of the
    player changes (e.g. muted, playing/paused). If the player was previously
    considered significant and is no longer considered that we will record the
    reasons why in this histogram.
  </summary>
</histogram>

<histogram name="Media.Engagement.URLsDeletedScoreReduction" units="%">
  <owner>beccahughes@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Recorded when the history is cleared and the media engagement data are
    similarly cleared. It records the reduction in score for each affected
    origin. The algorithm is made to reduce the score by 0.0 as much as possible
    and if it fails, the score will actually become 0.0 so every reduction also
    represent the value of the previous score.
  </summary>
</histogram>

<histogram name="Media.FallbackHardwareAudioBitsPerChannel">
  <obsolete>
    Deprecated May 2018; has been 32-bit for years now.
  </obsolete>
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Bits per channel of the hardware audio device which failed to open in low
    latency mode and required high latency fallback.
  </summary>
</histogram>

<histogram name="Media.FallbackHardwareAudioChannelCount">
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Channel count of the hardware audio device which failed to open in low
    latency mode and required high latency fallback.
  </summary>
</histogram>

<histogram name="Media.FallbackHardwareAudioChannelLayout" enum="ChannelLayout">
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Channel layout of the hardware audio device which failed to open in low
    latency mode and required high latency fallback.
  </summary>
</histogram>

<histogram name="Media.FallbackHardwareAudioSamplesPerSecond"
    enum="AudioSampleRate">
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Samples per second of the hardware audio device which failed to open in low
    latency mode and required high latency fallback.
  </summary>
</histogram>

<histogram name="Media.FallbackHardwareAudioSamplesPerSecondUnexpected"
    units="Hz">
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Samples per second of the hardware audio device (atypical values, in Hz)
    which failed to open in low latency mode and required high latency fallback.
  </summary>
</histogram>

<histogram name="Media.FallbackToHighLatencyAudioPath"
    enum="BooleanDidFallBack">
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Whether Chrome had to fallback to the high latency audio path or not.
  </summary>
</histogram>

<histogram name="Media.Fling.DelayedAndDroppedFramesPer5Sec" units="frames/5s">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The average number of delayed and dropped frames for the Fling application.
    Reported every 5 seconds.
  </summary>
</histogram>

<histogram name="Media.Fling.DisplayedFramesPerSecond" units="frames/s">
  <obsolete>
    Deprecated 07/2015 in issue 508534.
  </obsolete>
  <owner>halliwell@chromium.org</owner>
  <summary>
    The average number of displayed frames for the Fling application. Reported
    every 5 seconds.
  </summary>
</histogram>

<histogram name="Media.Fling.TimeToBufferAv" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time needed to pre-buffer A/V data before the actual playback for the Fling
    application.
  </summary>
</histogram>

<histogram name="Media.Fling.TimeToBufferAvAfterAbort" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time needed to buffer A/V data after an abort for the Fling application.
  </summary>
</histogram>

<histogram name="Media.Fling.TimeToBufferAvAfterUnderrun" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time needed to buffer A/V data after an underrun for the Fling application.
  </summary>
</histogram>

<histogram name="Media.GPU.HasEverLostContext" enum="ContextProviderPhase">
  <owner>dcastagna@chromium.org</owner>
  <summary>
    Records when a context provider is acquired in media, and when it's released
    because a context loss has been detected.
  </summary>
</histogram>

<histogram name="Media.GpuArcVideoDecodeAccelerator.InitializeResult"
    enum="ArcVideoDecodeAcceleratorResult">
  <owner>hiroh@chromium.org</owner>
  <summary>
    Counts of status values returned from calls to
    GpuArcVideoDecodeAccelerator::Initialize().
  </summary>
</histogram>

<histogram name="Media.GpuMemoryBufferVideoFramePool.UnsupportedFormat"
    enum="VideoPixelFormatUnion">
  <owner>dcastagna@chromium.org</owner>
  <owner>mcasas@chromium.org</owner>
  <summary>
    GpuMemoryBufferVideoFramePool is called with an unsupported VideoFrame pixel
    format. Emitted on VideoFrame arrival.
  </summary>
</histogram>

<histogram name="Media.GpuVideoDecoderError" enum="VideoDecodeAcceleratorError">
  <owner>sandersd@chromium.org</owner>
  <summary>Counts of video decode errors reported to GpuVideoDecoder.</summary>
</histogram>

<histogram name="Media.GpuVideoDecoderInitializeStatus" enum="PipelineStatus">
  <owner>posciak@chromium.org</owner>
  <summary>Results of attempts to GpuVideoDecoder::Initialize().</summary>
</histogram>

<histogram name="Media.HardwareAudioBitsPerChannel">
  <obsolete>
    Deprecated May 2018; has been 32-bit for years now.
  </obsolete>
  <owner>dalecurtis@chromium.org</owner>
  <summary>Bits per channel of the hardware audio device.</summary>
</histogram>

<histogram name="Media.HardwareAudioChannelCount">
  <owner>dalecurtis@chromium.org</owner>
  <summary>Channel count of the hardware audio device.</summary>
</histogram>

<histogram name="Media.HardwareAudioChannelLayout" enum="ChannelLayout">
  <owner>dalecurtis@chromium.org</owner>
  <summary>Channel layout of the hardware audio device.</summary>
</histogram>

<histogram name="Media.HardwareAudioSamplesPerSecond" enum="AudioSampleRate">
  <owner>dalecurtis@chromium.org</owner>
  <summary>Samples per second of the hardware audio device.</summary>
</histogram>

<histogram name="Media.HardwareAudioSamplesPerSecondUnexpected" units="Hz">
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Samples per second of the hardware audio device (atypical values, in Hz).
  </summary>
</histogram>

<histogram name="Media.HardwareKeyPressed" enum="MediaHardwareKeyAction">
  <owner>steimel@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records media key presses that are handled by the
    HardwareKeyMediaController.
  </summary>
</histogram>

<histogram name="Media.HasEverPlayed" enum="BooleanHasPlayed">
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Whether a given WebMediaPlayer instance, after preload, started playback;
    recorded once at time of player destruction.
  </summary>
</histogram>

<histogram name="Media.HighLatencyAudioCaptureStartupSuccess"
    enum="AudioCaptureStartupResult">
  <owner>maxmorin@chromium.org</owner>
  <summary>
    Whether capture started successfully after a high-latency input stream
    startup was requested.
  </summary>
</histogram>

<histogram name="Media.InfoLoadDelay" units="ms">
  <obsolete>
    Deprecated June 2017. Found that the MediaInfoLoader class (the only user of
    this histogram) is no longer used by anyone.
  </obsolete>
  <owner>qinmin@chromium.org</owner>
  <summary>
    The time it takes to perform redirect tracking and a CORS access check while
    preparing to play a media file.
  </summary>
</histogram>

<histogram name="Media.Initialize.Windows" enum="WinGetLastError">
  <obsolete>
    Deprecated 05/2015 in Issue 1141703002. FFmpeg is now statically linked.
  </obsolete>
  <owner>scherkus@chromium.org</owner>
  <summary>
    Errors returned by LoadLibraryEx on Windows while attempting to load
    ffmpegsumo.dll.
  </summary>
</histogram>

<histogram name="Media.InputErrorMac" units="OSStatus">
  <owner>tommi@chromium.org</owner>
  <summary>
    Error codes that we encounter while setting up an AUAudioInputStream on Mac.
  </summary>
</histogram>

<histogram name="Media.InputInvalidSampleRateMac" units="Hz">
  <obsolete>
    Deprecated and removed from code as of 02/2016.
  </obsolete>
  <owner>henrika@chromium.org</owner>
  <summary>
    Invalid input sample rate when calling AUAudioInputStream::Open on Mac.
  </summary>
</histogram>

<histogram name="Media.InputStreamDuration" units="ms">
  <owner>henrika@chromium.org</owner>
  <summary>
    Duration in milliseconds of low-latency audio input streams. Sampled when
    the stream is closed by the AudioInputController.
  </summary>
</histogram>

<histogram name="Media.InputStreamDurationWithoutCallback" units="ms">
  <owner>maxmorin@chromium.org</owner>
  <summary>
    Duration in milliseconds of low-latency audio input streams which never got
    any callbacks.
  </summary>
</histogram>

<histogram name="Media.IsStreaming" enum="Boolean">
  <owner>sandersd@chromium.org</owner>
  <summary>
    Whether the WMPI data source is streaming (does not support range requests).
  </summary>
</histogram>

<histogram base="true"
    name="Media.Learning.MediaCapabilities.DroppedFrameRatioTask"
    units="ConfusionMatrix" expires_after="2019-06-30">
<!-- Name completed by histogram_suffixes name="MediaLearningDroppedFrameRatioTask" -->

  <owner>liberato@chromium.org</owner>
  <owner>chcunningham@chromium.org</owner>
  <summary>
    Confusion matrix for MediaCapabilities local learning experiment, using a
    lookup table and the base MediaCapabilities features (resolution, frame
    rate, video format). A positive outcome is smooth playback, while a negative
    outcome is not smooth. For example, a False Negative indicates that we
    predicted a negative result (not smooth playback), but we later observed
    that the result was positive (smooth playback).

    For those observations for which we could not make a prediction due to data
    sparsity, the &quot;no-prediction&quot; buckets indicate whether the
    observation was positive or negative.

    This is very similar to the existing MediaCapabilities implementation, but
    uses the same training set as other learners.

    The &quot;BaseTable&quot; variant uses a lookup table as the model, and uses
    the original MediaCapabilities features (resolution, frame rate, video
    format).

    The &quot;BaseTree&quot; variant uses ExtraTrees model and the same features
    as the BaseTable variant.

    The &quot;EnhancedTree&quot; variant uses ExtraTrees, plus additional
    features such as NetworkType. The exact set of features is still in flux, so
    be sure to restrict reporting to a particular Chromium version.
  </summary>
</histogram>

<histogram name="Media.LinuxAudioIO" enum="LinuxAudioIO">
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Audio IO layer used by the Linux OS, sampled once at startup of the browser.
  </summary>
</histogram>

<histogram name="Media.LoadType" enum="MediaLoadType">
  <owner>xhwang@chromium.org</owner>
  <summary>
    Load type of HTML5 media, such as URL, MediaSource and MediaStream.
  </summary>
</histogram>

<histogram name="Media.LocalRendererSinkStates" enum="LocalRendererSinkStates"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    State of the WebRtc local renderer, sampled once during the lifetime of a
    local renderer.
  </summary>
</histogram>

<histogram name="Media.LowLatencyAudioCaptureStartupSuccess"
    enum="AudioCaptureStartupResult">
  <owner>maxmorin@chromium.org</owner>
  <summary>
    Whether capture started successfully after a low-latency input stream
    startup was requested.
  </summary>
</histogram>

<histogram name="Media.MeanTimeBetweenRebuffers" units="ms">
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    The total watch time (see Media.WatchTime) of a given playback divided by
    the number of rebuffering events that occured during that playback.
  </summary>
</histogram>

<histogram name="Media.MediaElement.ContentTypeParseable"
    enum="ContentTypeParseableResult">
  <owner>jrummell@chromium.org</owner>
  <summary>
    Whether the content type provided to HTMLMediaElement would parse with
    ParsedContentType or not.
  </summary>
</histogram>

<histogram name="Media.MediaElement.PlaybackPositionIsInfinity"
    enum="BooleanInfinity">
  <obsolete>
    Deprecated and removed from code as of January 2019.
  </obsolete>
  <owner>ossu@chromium.org</owner>
  <owner>grunell@chromium.org</owner>
  <summary>
    Whether or not the MediaElement is at a playback position of infinity when
    checking if playback has ended.
  </summary>
</histogram>

<histogram name="Media.MediaElement.PlayPromiseReject"
    enum="PlayPromiseRejectReason">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Recorded when an HTMLMediaElement play() promise is rejected (handled or
    not) with the type of rejection.
  </summary>
</histogram>

<histogram name="Media.MediaKeysListener.RegisterHotKeyResult"
    enum="BooleanSuccess">
  <owner>steimel@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Whether or not the MediaKeysListener was able to successfully register a hot
    key. Failure typically indicates that the hotkey was already registered by a
    different application.
  </summary>
</histogram>

<histogram name="Media.MediaRecorder.VEAError"
    enum="VideoDecodeAcceleratorError">
  <owner>shenghao@chromium.org</owner>
  <owner>mcasas@chromium.org</owner>
  <summary>The errors HW video encode encounters in MediaRecorder.</summary>
</histogram>

<histogram name="Media.MediaRecorder.VEAUsed" enum="MediaRecorderVEAUsed">
  <owner>shenghao@chromium.org</owner>
  <owner>mcasas@chromium.org</owner>
  <summary>Whether HW video encode is used in MediaRecorder.</summary>
</histogram>

<histogram name="Media.MicrophoneMuted" enum="MicrophoneMuteResult"
    expires_after="2019-08-30">
  <owner>henrika@chromium.org</owner>
  <summary>
    Heuristically detects if the user has muted the microphone or not. Measured
    approximately four times per minute.
  </summary>
</histogram>

<histogram name="Media.MicrophoneVolume" units="%">
  <obsolete>
    Deprecated 08/2018. Histogram Eraser marked this histogram as unnecessary.
    See https://crbug.com/871467 for details.
  </obsolete>
  <owner>henrika@chromium.org</owner>
  <summary>
    Level of the microphone volume measured in percent. This value can be larger
    than 100% on Linux. Measured approximately four times per minute.
  </summary>
</histogram>

<histogram name="Media.Midi.InputPorts" units="devices">
  <owner>toyoshim@chromium.org</owner>
  <summary>Connected input port numbers on the initialization.</summary>
</histogram>

<histogram name="Media.Midi.OutputPorts" units="devices">
  <owner>toyoshim@chromium.org</owner>
  <summary>Connected output port numbers on the initialization.</summary>
</histogram>

<histogram name="Media.Midi.ResultOnShutdown" enum="MidiResult">
  <owner>toyoshim@chromium.org</owner>
  <summary>
    The final status of MidiManager on destruction. This can monitor unexpected
    failures on initializing platform dependent MIDI stuff.
  </summary>
</histogram>

<histogram name="Media.Midi.SendReceiveUsage" enum="MidiSendReceiveUsage">
  <owner>toyoshim@chromium.org</owner>
  <summary>
    Reports whether any data was sent or received by a MidiManager. Recorded
    once per MidiManager instantiation, upon destruction. MidiManager is
    instantiated when the first Web MIDI client starts a session, and destroyed
    when the last client ends the session.
  </summary>
</histogram>

<histogram name="Media.Midi.SysExMessageSizeUpTo1MB" units="bytes">
  <owner>toyoshim@chromium.org</owner>
  <summary>Reports sysex message size.</summary>
</histogram>

<histogram name="Media.Midi.Usage" enum="MidiUsage">
  <owner>toyoshim@chromium.org</owner>
  <summary>
    The MidiManager instance use count, but this is not intended to understand
    the real API usage because this can be counted by feature scanning scripts
    that are often used for footprinting. You may want to track SendReceiveUsage
    to monitor only instances that actually send or receive MIDI messages.
  </summary>
</histogram>

<histogram name="Media.MojoVideoDecoder.ActiveInstances">
  <owner>sandersd@chromium.org</owner>
  <summary>
    Records the number of active MojoVideoDecoderService instances that are
    alive each time an instance becomes active. An instance is active if
    Decode() has been called at least once. This provides an estimate of the
    concurrent hardware resource requirements.
  </summary>
</histogram>

<histogram name="Media.MSE.AudioCodec" enum="MSECodec">
  <owner>acolwell@chromium.org</owner>
  <summary>
    Audio codec used in Media Source Extensions playback. Set when AddId() is
    called during playback.
  </summary>
</histogram>

<histogram name="Media.MSE.AudioSpliceDurationType"
    enum="StreamParserBufferDurationType">
  <obsolete>
    Deprecated 05/2018. Splicing no longer performed on buffers with estimated
    duration. See https://crbug.com/396634.
  </obsolete>
  <owner>chcunningham@chromium.org</owner>
  <summary>
    Categorizes MSE audio splicing by the type of duration used in the
    overlapped buffer.
  </summary>
</histogram>

<histogram base="true" name="Media.MSE.CodecChangeTime" units="ms"
    expires_after="2019-09-04">
  <owner>wolenetz@chromium.org</owner>
  <owner>sandersd@chromium.org</owner>
  <summary>
    Duration of config changes that include codec changes, measured from before
    decoder flush until after the first output frame is returned. The HW/SW
    suffix indicates the type of the decoder that was ultimately selected.
  </summary>
</histogram>

<histogram name="Media.MSE.DemuxerDestructionTime" units="ms">
  <owner>wolenetz@chromium.org</owner>
  <summary>
    Amount of time taken to destroy one ChunkDemuxer object, not including
    initial background task scheduling delay.
  </summary>
</histogram>

<histogram name="Media.MSE.DetectedShakaPackagerInMp4" enum="BooleanDetected"
    expires_after="2019-12-01">
  <owner>dalecurtis@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Tracks if ShakaPackager metadata was detected in the MP4 'moov' atom during
    MSE based media playback. Recorded for every 'moov' atom, which is expected
    once per asset. Multiple assets may be played within the same MSE session.
  </summary>
</histogram>

<histogram name="Media.MSE.DetectedTrackCount.Audio">
  <owner>wolenetz@chromium.org</owner>
  <summary>
    Number of detected audio tracks in Media Source Extensions playback. Not all
    may be usable by the player.
  </summary>
</histogram>

<histogram name="Media.MSE.DetectedTrackCount.Text">
  <owner>wolenetz@chromium.org</owner>
  <summary>
    Number of detected text tracks in Media Source Extensions playback. Not all
    may be usable by the player. This count includes only explicitly signalled
    tracks in MSE initialization segments parsed from WebM or ISO BMFF
    bytestreams.
  </summary>
</histogram>

<histogram name="Media.MSE.DetectedTrackCount.Video">
  <owner>wolenetz@chromium.org</owner>
  <summary>
    Number of detected video tracks in Media Source Extensions playback. Not all
    may be usable by the player.
  </summary>
</histogram>

<histogram name="Media.MSE.LateAudioFrames"
    units="late frames per million frames">
  <obsolete>
    Deleted along with browser side MSE implementation.
  </obsolete>
  <owner>qinmin@chromium.org</owner>
  <owner>timav@chromium.org</owner>
  <summary>
    Relative number of late audio frames wrt total number of audio frames in MSE
    playback, multiplied by one million. The audio frame is considered late if
    it might cause an underrun, i.e. comes from decoder when audio buffer is
    already depleted.
  </summary>
</histogram>

<histogram name="Media.MSE.LateVideoFrames"
    units="late frames per million frames">
  <obsolete>
    Deleted along with browser side MSE implementation.
  </obsolete>
  <owner>qinmin@chromium.org</owner>
  <owner>timav@chromium.org</owner>
  <summary>
    Relative number of late video frames wrt total number of video frames in MSE
    playback, multiplied by one million. The video frame is late if it missed
    its presentation time as determined by PTS when it comes from decoder. The
    rendering policy (i.e. render or skip) does not affect it.
  </summary>
</histogram>

<histogram name="Media.MSE.Mp4ConsecutiveEmptySamples" units="samples"
    expires_after="2020-02-05">
  <owner>wolenetz@chromium.org</owner>
  <owner>sandersd@chromium.org</owner>
  <summary>
    Reports the number of consecutive empty samples in a sequence within a track
    run. There can be zero or more such sequences in a track run, and each
    sequence is reported separately. This metric is expected to inform a
    heuristic to realistically bound the parsing complexity of track runs that
    may contain empty samples. See https://crbug.com/907268.
  </summary>
</histogram>

<histogram name="Media.MSE.Mp4EmptySamplesInTRun" units="samples"
    expires_after="2020-02-05">
  <owner>wolenetz@chromium.org</owner>
  <owner>sandersd@chromium.org</owner>
  <summary>
    Reports the number of empty samples within a track run. This metric is
    expected to inform a heuristic to realistically bound the parsing complexity
    of track runs that may contain empty samples. See https://crbug.com/907268.
  </summary>
</histogram>

<histogram name="Media.MSE.Mp4SampleSize" units="bytes"
    expires_after="2020-02-05">
  <owner>wolenetz@chromium.org</owner>
  <owner>sandersd@chromium.org</owner>
  <summary>
    Reports the size of each sample parsed. This metric is expected to inform a
    heuristic to realistically bound the parsing complexity of track runs that
    may contain empty or huge samples. See https://crbug.com/907268.
  </summary>
</histogram>

<histogram name="Media.MSE.Mp4TrunSampleCount" units="samples"
    expires_after="2020-02-05">
  <owner>wolenetz@chromium.org</owner>
  <owner>sandersd@chromium.org</owner>
  <summary>
    Reports the number of samples in each track run. This metric is expected to
    inform a heuristic to realistically bound the parsing complexity of track
    runs that may contain huge numbers of samples. See https://crbug.com/907268.
  </summary>
</histogram>

<histogram name="Media.MSE.NumberOfTracks">
  <owner>acolwell@chromium.org</owner>
  <summary>
    Number of tracks specified to AddId() for Media Source Extensions playback.
    May be called multiple times per element if playback is dynamically altered.
  </summary>
</histogram>

<histogram name="Media.MSE.Playback" enum="BooleanSuccess">
  <obsolete>
    Renamed to Media.LoadType.
  </obsolete>
  <owner>acolwell@chromium.org</owner>
  <summary>
    Whether Media Source Extensions is specified for playback of Media elements.
    Sampled when media pipeline starts.
  </summary>
</histogram>

<histogram name="Media.MSE.PlaybackDuration" units="ms">
  <obsolete>
    Deleted along with browser side MSE implementation.
  </obsolete>
  <owner>qinmin@chromium.org</owner>
  <owner>timav@chromium.org</owner>
  <summary>
    Duration of an uninterrupted MSE playback. This is the time interval between
    the playback starts or resumes and the moment when user stops the playback
    by pressing pause, initiating a seek etc. Measured in media time in
    milliseconds.
  </summary>
</histogram>

<histogram name="Media.MSE.Starvations" units="starvations per million frames">
  <obsolete>
    Deleted along with browser side MSE implementation.
  </obsolete>
  <owner>qinmin@chromium.org</owner>
  <owner>timav@chromium.org</owner>
  <summary>
    Relative number of starvations wrt total number of frames in MSE playback,
    multiplied by one million. Starvation happens when the player interrupts the
    regular playback and asks for more data, conditions are player-specific.
  </summary>
</histogram>

<histogram name="Media.MSE.VideoCodec" enum="MSECodec">
  <owner>acolwell@chromium.org</owner>
  <summary>
    Video codec used in Media Source Extensions playback. Set when AddId() is
    called during playback.
  </summary>
</histogram>

<histogram name="Media.MSE.VideoCodec.MP4" enum="MSECodec">
  <owner>media-dev@chromium.org</owner>
  <summary>
    Video codec used in Media Source Extensions playback if the media container
    is MP4. Set when AddId() is called during playback.
  </summary>
</histogram>

<histogram name="Media.MSE.VideoCodec.WebM" enum="MSECodec">
  <owner>media-dev@chromium.org</owner>
  <summary>
    Video codec used in Media Source Extensions playback if the media container
    is WebM. Set when AddId() is called during playback.
  </summary>
</histogram>

<histogram name="Media.Netflix.AudioBitrate" units="kbps">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The audio bit rate as reported by the Netflix application. May be reported
    multiple times as network conditions change during playback.
  </summary>
</histogram>

<histogram name="Media.Netflix.AudioNumChannels" units="channels">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of audio channels as reported by the Netflix application. May be
    reported multiple times as network conditions change during playback.
  </summary>
</histogram>

<histogram name="Media.Netflix.DelayedAndDroppedFramesPer5Sec"
    units="frames/5s">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The average number of delayed and dropped frames for the Netflix
    application. Reported every 5 seconds.
  </summary>
</histogram>

<histogram name="Media.Netflix.DisplayedFramesPerSecond" units="frames/s">
  <obsolete>
    Deprecated 07/2015 in issue 508534.
  </obsolete>
  <owner>halliwell@chromium.org</owner>
  <summary>
    The average number of displayed frames for the Netflix application. Reported
    every 5 seconds.
  </summary>
</histogram>

<histogram name="Media.Netflix.VideoBitrate" units="kbps">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Video bit rate as reported by the Netflix application. May be reported
    multiple times as network conditions change during playback.
  </summary>
</histogram>

<histogram name="Media.Netflix.VideoHeight" units="pixels">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Video height as reported by the Netflix application. May be reported
    multiple times as network conditions change during playback.
  </summary>
</histogram>

<histogram name="Media.Notification.Click" enum="MediaNotificationClickSource">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    The type of media notification the user clicked to go back to Chrome.
  </summary>
</histogram>

<histogram name="Media.OutputStreamDuration" units="ms">
  <owner>maxmorin@chromium.org</owner>
  <summary>
    Duration of an audio output stream. Measured in AudioOutputController from
    when a stream is started until it is stopped. A stream is stopped when it is
    paused, closed (i.e. destructed), or when a device change event causes it to
    be restarted.
  </summary>
</histogram>

<histogram name="Media.Pepper.PlayedSound" enum="Boolean">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Whether Pepper players have played sound through its lifetime.
  </summary>
</histogram>

<histogram name="Media.PepperVideoDecoderError"
    enum="VideoDecodeAcceleratorError">
  <owner>ihf@chromium.org</owner>
  <owner>posciak@chromium.org</owner>
  <summary>Counts of video decode errors reported to plugin.</summary>
</histogram>

<histogram base="true" name="Media.PepperVideoDecoderOutputPictureCount"
    enum="MediaVideoHeight" expires_after="2019-11-01">
  <owner>sandersd@chromium.org</owner>
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Counts every output picture emitted to a PPAPI client, categorized by size
    and decoder type. Flash will only use platform decoders, but NaCl clients
    can use either decoder type.
  </summary>
</histogram>

<histogram name="Media.PepperVideoDecoderPictureCount">
  <owner>ihf@chromium.org</owner>
  <owner>posciak@chromium.org</owner>
  <summary>
    Number of PictureBuffers/textures requested per hardware decoder creation.
    This value varies by platform and video. A user visible video may trigger
    multiple decoder creations (sometimes every 5 seconds) but would normally
    not hold more than 2 sets of buffers at any given time in memory.
  </summary>
</histogram>

<histogram name="Media.PepperVideoDecoderPictureHeight">
  <owner>ihf@chromium.org</owner>
  <owner>posciak@chromium.org</owner>
  <summary>
    Vertical video resolution rounded to the nearest bucket. (Corresponds
    roughly to the number in 720p.)
  </summary>
</histogram>

<histogram name="Media.PipelineStatus" enum="PipelineStatus">
  <owner>prabhur@chromium.org</owner>
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Status of the media pipeline at the end of its lifecycle suffixed by stream
    and video decoder type.
  </summary>
</histogram>

<histogram name="Media.PipelineStatus.Start" enum="PipelineStatus">
  <owner>xhwang@chromium.org</owner>
  <summary>
    Status of the media pipeline starting process (including demuxer and
    renderer initialization). If the media pipeline is destroyed during the
    starting process nothing will be reported, but this should relatively rare.
  </summary>
</histogram>

<histogram name="Media.PlayMovies.DelayedAndDroppedFramesPer5Sec"
    units="frames/5s">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The average number of delayed and dropped frames for the PlayMovies
    application. Reported every 5 seconds.
  </summary>
</histogram>

<histogram name="Media.PlayMovies.DisplayedFramesPerSecond" units="frames/s">
  <obsolete>
    Deprecated 07/2015 in issue 508534.
  </obsolete>
  <owner>halliwell@chromium.org</owner>
  <summary>
    The average number of displayed frames for the PlayMovies application.
    Reported every 5 seconds.
  </summary>
</histogram>

<histogram name="Media.PreloadMetadataSuspendWasIdeal" enum="Boolean">
  <owner>media-dev@chromium.org</owner>
  <summary>
    Indicates if a suspend initiated for preload=metadata was ideal. I.e. we did
    not immediately resume after completing the suspend when signaling
    ReadyState::HAVE_FUTURE_DATA.
  </summary>
</histogram>

<histogram name="Media.RebuffersCount" units="rebuffers">
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Indicates the number of rebuffers a given watch time session had.
  </summary>
</histogram>

<histogram name="Media.Remoting.AllowedByPage" enum="BooleanEnabled">
  <owner>miu@chromium.org</owner>
  <summary>Tracks whether a web page allows content to be remoted.</summary>
</histogram>

<histogram name="Media.Remoting.AudioBitrate" units="kbps">
  <owner>miu@chromium.org</owner>
  <summary>
    Measured audio content transfer bitrate while remoting content.
  </summary>
</histogram>

<histogram name="Media.Remoting.AudioChannelLayout" enum="ChannelLayout">
  <owner>miu@chromium.org</owner>
  <summary>Audio channel layout used while remoting content.</summary>
</histogram>

<histogram name="Media.Remoting.AudioCodec" enum="AudioCodec">
  <owner>miu@chromium.org</owner>
  <summary>Audio codec used while remoting content.</summary>
</histogram>

<histogram name="Media.Remoting.AudioSamplesPerSecond" enum="AudioSampleRate">
  <owner>miu@chromium.org</owner>
  <summary>Audio sampling rate while remoting audio content.</summary>
</histogram>

<histogram name="Media.Remoting.AudioSamplesPerSecondUnexpected" units="Hz">
  <owner>miu@chromium.org</owner>
  <summary>
    Audio sampling rate while remoting audio content (atypical values, in Hz).
  </summary>
</histogram>

<histogram name="Media.Remoting.CapacityOverMediaBitrate" units="kbps">
  <obsolete>
    Deprecated 11/2017 in issue 788940.
  </obsolete>
  <owner>miu@chromium.org</owner>
  <summary>
    The difference between the estimated transmission capacity and the media
    bitrate when capacity is higher.
  </summary>
</histogram>

<histogram name="Media.Remoting.MediaBitrateOverCapacity" units="kbps">
  <obsolete>
    Deprecated 11/2017 in issue 788940.
  </obsolete>
  <owner>miu@chromium.org</owner>
  <summary>
    The difference between the media bitrate and the estimated transmission
    capacity when media bitrate is higher.
  </summary>
</histogram>

<histogram name="Media.Remoting.PosterDownloadDuration.Fail" units="ms">
  <obsolete>
    Deprecated as no more poster image is being downloaded while remoting
    content.
  </obsolete>
  <owner>miu@chromium.org</owner>
  <summary>
    Measures the amount of time it took to ultimately fail to download a poster
    image for an HTML5 video while remoting content.
  </summary>
</histogram>

<histogram name="Media.Remoting.PosterDownloadDuration.Success" units="ms">
  <obsolete>
    Deprecated as no more poster image is being downloaded while remoting
    content.
  </obsolete>
  <owner>miu@chromium.org</owner>
  <summary>
    Measures the amount of time it took to successfully download a poster image
    for an HTML5 video while remoting content.
  </summary>
</histogram>

<histogram name="Media.Remoting.SessionDuration" units="ms">
  <owner>miu@chromium.org</owner>
  <summary>Measures the duration of each remoting session.</summary>
</histogram>

<histogram name="Media.Remoting.SessionStartTrigger"
    enum="RemotingStartTrigger">
  <owner>miu@chromium.org</owner>
  <summary>Tracks the trigger for starting a remoting session.</summary>
</histogram>

<histogram name="Media.Remoting.SessionStopTrigger" enum="RemotingStopTrigger">
<!-- Name completed by histogram_suffixes name="RemotingSessionDuration" -->

  <owner>miu@chromium.org</owner>
  <summary>Tracks the trigger for stopping a remoting session.</summary>
</histogram>

<histogram name="Media.Remoting.ShortSessionDuration" units="ms">
  <owner>miu@chromium.org</owner>
  <summary>
    Measures the duration of each remoting session shorter than 15 seconds.
  </summary>
</histogram>

<histogram name="Media.Remoting.StartMediaBitrate" units="kbps">
  <obsolete>
    Deprecated 11/2017 in issue 788940.
  </obsolete>
  <owner>miu@chromium.org</owner>
  <summary>
    The estimated content bitrate (including both audio and video) when starting
    a remoting session.
  </summary>
</histogram>

<histogram name="Media.Remoting.TimeUntilFirstPlayout" units="ms">
  <owner>miu@chromium.org</owner>
  <summary>
    Measures how long, from the start of a remoting session, until content began
    playing out on the remote device.
  </summary>
</histogram>

<histogram name="Media.Remoting.TimeUntilRemoteInitialized" units="ms">
  <owner>miu@chromium.org</owner>
  <summary>
    Measures how long, from the start of a remoting session, until a message was
    received from the remote device indicating initialization succeeded.
  </summary>
</histogram>

<histogram name="Media.Remoting.TrackConfiguration"
    enum="RemotingTrackConfiguration">
  <owner>miu@chromium.org</owner>
  <summary>Tracks whether audio or video or both are remoted.</summary>
</histogram>

<histogram name="Media.Remoting.TransmissionCapacity" units="kbps">
  <obsolete>
    Deprecated 11/2017 in issue 788940.
  </obsolete>
  <owner>miu@chromium.org</owner>
  <summary>
    The estimated transmission capacity when starting a remoting session.
  </summary>
</histogram>

<histogram name="Media.Remoting.VideoAspectRatio" units="%">
  <owner>miu@chromium.org</owner>
  <summary>Aspect ratio of video while remoting content.</summary>
</histogram>

<histogram name="Media.Remoting.VideoBitrate" units="kbps">
  <owner>miu@chromium.org</owner>
  <summary>
    Measured video content transfer bitrate while remoting content.
  </summary>
</histogram>

<histogram name="Media.Remoting.VideoCodec" enum="VideoCodec">
  <owner>miu@chromium.org</owner>
  <summary>Video codec used while remoting content.</summary>
</histogram>

<histogram name="Media.Remoting.VideoCodecProfile" enum="VideoCodecProfile">
  <owner>miu@chromium.org</owner>
  <summary>Video codec profile used while remoting content.</summary>
</histogram>

<histogram name="Media.Remoting.VideoNaturalWidth" units="pixels">
  <owner>miu@chromium.org</owner>
  <summary>Video width while remoting content.</summary>
</histogram>

<histogram name="Media.RTCVideoDecoderError" enum="VideoDecodeAcceleratorError">
  <owner>posciak@chromium.org</owner>
  <summary>Counts of video decode errors reported to RTCVideoDecoder.</summary>
</histogram>

<histogram name="Media.RTCVideoDecoderInitDecodeStatus" enum="BooleanSuccess">
  <obsolete>
    Renamed to Media.RTCVideoDecoderInitDecodeSuccess.
  </obsolete>
  <owner>posciak@chromium.org</owner>
  <summary>Results of attempts to RTCVideoDecoder::InitDecode().</summary>
</histogram>

<histogram name="Media.RTCVideoDecoderInitDecodeSuccess" enum="BooleanSuccess">
  <owner>posciak@chromium.org</owner>
  <summary>
    Indicates whether we were successful in initializing hardware video decoder
    for use in the RTC pipeline.
  </summary>
</histogram>

<histogram name="Media.RTCVideoEncoderInitEncodeSuccess" enum="BooleanSuccess">
  <owner>posciak@chromium.org</owner>
  <summary>
    Indicates whether we were successful in initializing hardware video encoder
    for use in the RTC pipeline.
  </summary>
</histogram>

<histogram name="Media.RTCVideoEncoderProfile" enum="VideoCodecProfile">
  <owner>posciak@chromium.org</owner>
  <summary>Video codec profile used in RTC video encoder.</summary>
</histogram>

<histogram name="Media.RTCVideoEncoderTimestampMatchSuccess"
    enum="BooleanSuccess">
  <owner>emircan@chromium.org</owner>
  <summary>
    Indicates whether we were successful in preserving timestamps in hardware
    video encoder session. It is tracked during the session and logged after it
    ends.
  </summary>
</histogram>

<histogram name="Media.Session.ActiveTime" units="ms">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Time during which a media session has been active, in other words, the time
    between an activation and deactivation, without counting time while it was
    suspended. If a session is activated after being deactivated, there will be
    two entries. For example, if a user plays a song but is interrupted by a
    phone call, it will only account for the song playing time.
  </summary>
</histogram>

<histogram name="Media.Session.AudioFocus.Abandon"
    enum="AudioFocusAbandonSource" expires_after="2019-10-03">
  <owner>beccahughes@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    The number of times a media session abandon audio focus and where the
    abandon audio focus call originated from. This is recorded every time a
    media session abandons audio focus because it has stopped playing.
  </summary>
</histogram>

<histogram name="Media.Session.AudioFocus.Request"
    enum="AudioFocusRequestSource" expires_after="2019-10-03">
  <owner>beccahughes@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    The number of times a media session requested audio focus and where that
    focus request originated from. This is recorded every time a media session
    requests audio focus because it wants to start playing.
  </summary>
</histogram>

<histogram name="Media.Session.AudioFocus.Type" enum="AudioFocusType">
  <owner>beccahughes@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    The number of times a media session requested audio focus for a specific
    audio focus type. This is recorded every time a media session requests a new
    audio focus type. This may be because the session has started playing or the
    type of media being played has changed.
  </summary>
</histogram>

<histogram name="Media.Session.Pause" enum="MediaSessionActionSource">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    The number of times the user paused playback of a media session using other
    means than the pause button on the page.
  </summary>
</histogram>

<histogram name="Media.Session.Play" enum="MediaSessionActionSource">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    The number of times the user started playback of a media session using other
    means than the play button on the page.
  </summary>
</histogram>

<histogram name="Media.Session.RequestAudioFocusResult" enum="BooleanSuccess">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Indicate whether the native requestAudioFocus() call was successful.
  </summary>
</histogram>

<histogram name="Media.Session.Stop" enum="MediaSessionActionSource">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    The number of times the user stopped a media session using other means than
    the pause button on the page.
  </summary>
</histogram>

<histogram name="Media.Session.Suspended" enum="MediaSessionSuspendedSource">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    The number of times a media session is suspended and why it has been
    suspended.
  </summary>
</histogram>

<histogram name="Media.Session.UserAction" enum="MediaSessionUserAction">
  <owner>beccahughes@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    The number of times user interacts with MediaSession sorted by action type.
  </summary>
</histogram>

<histogram name="Media.Session.UserAction.Focus" enum="BooleanFocused"
    expires_after="M77">
  <owner>steimel@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    The focused state of the WebContents associated with the MediaSession that
    the user is interacting with. Recorded when the user interacts with a
    MediaSession (e.g. by pressing the play/pause key on their keyboard).
  </summary>
</histogram>

<histogram name="Media.SRC.PreloadAutoHasPoster" enum="Boolean">
  <owner>media-dev@chromium.org</owner>
  <summary>
    Whether a SRC= playback had a poster set at load() when the effective
    preload type is &quot;auto&quot;. Note that this includes audio playbacks,
    since we do not have track metadata at load(); audio elements never have
    posters.
  </summary>
</histogram>

<histogram name="Media.SRC.PreloadMetaDataHasPoster" enum="Boolean">
  <owner>media-dev@chromium.org</owner>
  <summary>
    Whether a SRC= playback had a poster set at load() when the effective
    preload type is &quot;metadata&quot;. Note that this includes audio
    playbacks, since we do not have track metadata at load(); audio elements
    never have posters.
  </summary>
</histogram>

<histogram name="Media.SRC.VideoCodec.MP4" enum="VideoCodec">
  <owner>media-dev@chromium.org</owner>
  <summary>
    Video codec used in plain src= (not MSE) HTML5 media if the media container
    is MP4.
  </summary>
</histogram>

<histogram name="Media.SRC.VideoCodec.WebM" enum="VideoCodec">
  <owner>media-dev@chromium.org</owner>
  <summary>
    Video codec used in plain src= (not MSE) HTML5 media if the media container
    is WebM.
  </summary>
</histogram>

<histogram base="true" name="Media.Timeline.DragGestureDuration" units="ms">
<!-- Name completed by histogram_suffixes name="MediaTimelineWidths" -->

  <owner>johnme@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    The duration of the user gesture (how long their finger is down), recorded
    at the end of each drag gesture. This histogram is split according to the
    width of the slider track in CSS px - see histogram name suffix.
  </summary>
</histogram>

<histogram base="true" name="Media.Timeline.DragPercent"
    enum="MediaTimelinePercent">
<!-- Name completed by histogram_suffixes name="MediaTimelineWidths" -->

  <owner>johnme@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    The net distance the media scrubber moved, recorded at the end of each drag
    gesture, as a percentage of the width of the slider track. This histogram is
    split according to the width of the slider track in CSS px - see histogram
    name suffix.
  </summary>
</histogram>

<histogram base="true" name="Media.Timeline.DragSumAbsTimeDelta"
    enum="MediaTimelineAbsTimeDelta">
<!-- Name completed by histogram_suffixes name="MediaTimelineWidths" -->

  <owner>johnme@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    The sum of absolute distances the media scrubber incrementally moved,
    recorded at the end of each drag gesture, each measured as the change in
    media current time. If the scrubber was dragged back and forth before being
    released, this will be larger than the value recorded for
    Media.Timeline.DragTimeDelta (and may even be larger than the media
    duration), otherwise it will be the same as DragTimeDelta. This histogram is
    split according to the width of the slider track in CSS px - see histogram
    name suffix.
  </summary>
</histogram>

<histogram base="true" name="Media.Timeline.DragTimeDelta"
    enum="MediaTimelineTimeDelta">
<!-- Name completed by histogram_suffixes name="MediaTimelineWidths" -->

  <owner>johnme@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    The net distance the media scrubber moved, recorded at the end of each drag
    gesture, measured as the change in media current time. This histogram is
    split according to the width of the slider track in CSS px - see histogram
    name suffix.
  </summary>
</histogram>

<histogram base="true" name="Media.Timeline.SeekType"
    enum="MediaTimelineSeekType">
<!-- Name completed by histogram_suffixes name="MediaTimelineWidths" -->

  <owner>johnme@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    The type of user gesture, recorded at the end of each input sequence. For
    example holding down the right arrow key with the scrubber focused will only
    be logged as a single event. This histogram is split according to the width
    of the slider track in CSS px - see histogram name suffix.
  </summary>
</histogram>

<histogram name="Media.Timeline.Width" units="CSS px">
<!-- Name completed by histogram_suffixes name="MediaElementConfigurations" -->

  <owner>johnme@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    The width of the media timeline track in CSS pixels, recorded the first time
    a media element with controls starts playing (strictly speaking, it's the
    width in CSS pixels ignoring CSS transforms, multiplied by pageZoomFactor,
    but deliberately ignoring pinch zoom's pageScaleFactor).
  </summary>
</histogram>

<histogram base="true" name="Media.TimeToFirstFrame" units="ms">
  <owner>dalecurtis@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Time in milliseconds from when WebMediaPlayerImpl starts loading until the
    first video frame has been shown.
  </summary>
</histogram>

<histogram base="true" name="Media.TimeToFirstFrame.SRC.ManyVideos" units="ms">
  <obsolete>
    Removed from code 2018/11/29.
  </obsolete>
  <owner>hubbe@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Time in milliseconds from when WebMediaPlayerImpl starts loading until the
    first video frame has been shown IFF six or more videos are loading in
    parallel.
  </summary>
</histogram>

<histogram base="true" name="Media.TimeToMetadata" units="ms">
  <owner>dalecurtis@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Time in milliseconds from when WebMediaPlayerImpl starts loading until
    metadata is known.
  </summary>
</histogram>

<histogram name="Media.TimeToPipelineStarted" units="ms">
  <obsolete>
    Removed from code 2014/6/18.
  </obsolete>
  <owner>scherkus@chromium.org</owner>
  <summary>
    Time in milliseconds from HTML5 media pipeline creation to playing event.
  </summary>
</histogram>

<histogram base="true" name="Media.TimeToPlayReady" units="ms">
  <owner>dalecurtis@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Time in milliseconds from when WebMediaPlayer starts loading until it has
    buffered enough to start playback.
  </summary>
</histogram>

<histogram name="Media.TotalMBytes" units="MB">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <owner>scherkus@chromium.org</owner>
  <summary>Size of HTML5 media (when known), in MB.</summary>
</histogram>

<histogram name="Media.UncacheableReason" enum="UncacheableReason">
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Reasons a media response won't be used to satisfy a future request.
  </summary>
</histogram>

<histogram name="Media.UnderflowCount">
  <obsolete>
    Removed Feb 2017. Media.UnderflowDuration provides more useful counts.
  </obsolete>
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    The number of times a src= playback has underflowed; i.e. ran out of data.
  </summary>
</histogram>

<histogram name="Media.UnderflowDuration" units="ms">
  <obsolete>
    Removed Aug 2017. Media.UnderflowDuration2.SRC removes zero-weighting so
    that we only report actual underflows.
  </obsolete>
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    The amount of time taken to leave the underflow state (i.e. resume playback)
    for src= playbacks.
  </summary>
</histogram>

<histogram name="Media.UnderflowDuration.EME" units="ms">
  <obsolete>
    Removed Aug 2017. Media.UnderflowDuration2.EME removes zero-weighting so
    that we only report actual underflows.
  </obsolete>
  <owner>media-dev@chromium.org</owner>
  <summary>
    The amount of time taken to leave the underflow state (i.e. resume playback)
    for Encrypted Media Extensions (EME) based playbacks.
  </summary>
</histogram>

<histogram name="Media.UnderflowDuration.MSE" units="ms">
  <obsolete>
    Removed Aug 2017. Media.UnderflowDuration2.MSE removes zero-weighting so
    that we only report actual underflows.
  </obsolete>
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    The amount of time taken to leave the underflow state (i.e. resume playback)
    for Media Source Extensions (MSE) based playbacks.
  </summary>
</histogram>

<histogram base="true" name="Media.UnderflowDuration2" units="ms">
<!-- Name completed by histogram_suffixes name="WebMediaPlayerImplTypes" -->

  <owner>dalecurtis@chromium.org</owner>
  <summary>
    The amount of time taken to leave the underflow state (i.e. resume playback)
    for playbacks. This doesn't report initial zero samples, which was
    previously used to compensate for playbacks that don't rebuffer.
  </summary>
</histogram>

<histogram name="Media.URLScheme" enum="URLSchemeForHistogram">
  <obsolete>
    Replaced with Media.URLScheme2 which is only recorded for src=URL playbacks
    instead of including MediaSource playbacks which are always blob.
  </obsolete>
  <owner>media-dev@chromium.org</owner>
  <summary>
    URL scheme used with HTML5 media. (each URL provides one sample)
  </summary>
</histogram>

<histogram name="Media.URLScheme2" enum="URLSchemeForHistogram">
  <owner>media-dev@chromium.org</owner>
  <summary>
    URL scheme used with HTML5 media; only recorded for src=URL playbacks and
    not for Media Source Extensions playbacks. Each URL provides one sample.
  </summary>
</histogram>

<histogram name="Media.VaapiWrapper.VADisplayStateInitializeSuccess"
    enum="BooleanSuccess">
  <owner>acourbot@chromium.org</owner>
  <owner>mcasas@chromium.org</owner>
  <summary>
    Whether the call to VaapiWrapper's VADisplayState::Initialize() succeeded or
    not.
  </summary>
</histogram>

<histogram name="Media.VAJDA.DecoderFailure" enum="VAJDADecoderFailure">
  <owner>kcwu@chromium.org</owner>
  <summary>
    Error codes reported by jpeg decode using VA-API hardware jpeg decoder.
  </summary>
</histogram>

<histogram name="Media.VAJEA.EncoderResult" enum="VAJEAEncoderResult">
  <owner>shenghao@chromium.org</owner>
  <summary>
    Result codes reported by jpeg encode using VA-API hardware jpeg encoder.
  </summary>
</histogram>

<histogram name="Media.VAVDA.DecoderFailure" enum="VAVDADecoderFailure">
  <owner>posciak@chromium.org</owner>
  <summary>
    Error codes reported by video decode using VA-API hardware video decoder.
  </summary>
</histogram>

<histogram name="Media.VAVDA.VaapiWrapperCreationSuccess" enum="BooleanSuccess">
  <owner>acourbot@chromium.org</owner>
  <owner>mcasas@chromium.org</owner>
  <summary>
    Whether the creation of VaapiWrapper succeeded or not inside VaVDA.
  </summary>
</histogram>

<histogram name="Media.VAVDAH264.DecoderFailure" enum="VAVDAH264DecoderFailure">
  <obsolete>
    Deprecated as of 4/2015, partially replaced by Media.VAVDA.DecoderFailure.
  </obsolete>
  <owner>posciak@chromium.org</owner>
  <summary>
    Error codes reported by video decode using VA-API hardware video decoder.
  </summary>
</histogram>

<histogram name="Media.VAVEA.EncoderFailure" enum="VAVEAEncoderFailure">
  <owner>posciak@chromium.org</owner>
  <summary>
    Error codes reported by video encode using VA-API hardware video encoder.
  </summary>
</histogram>

<histogram name="Media.Video.Autoplay" enum="AutoplaySource">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records the autoplay source of videos. This includes
    Media.Video.Autoplay.Muted.
  </summary>
</histogram>

<histogram name="Media.Video.Autoplay.Attribute.WaitTime" units="ms">
  <owner>hubbe@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records time from load starts until video starts based on autoplay
    attribute.
  </summary>
</histogram>

<histogram name="Media.Video.Autoplay.Muted" enum="AutoplaySource">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>Records the autoplay source of muted videos.</summary>
</histogram>

<histogram name="Media.Video.Autoplay.Muted.Attribute.OffscreenDuration"
    units="ms">
  <obsolete>
    Deprecated as autoplay muted video by attributed is paused when going
    offscreen since https://crbug.com/683141.
  </obsolete>
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records the offscreen playing duration of a muted video autoplaying from
    autoplay attribute.
  </summary>
</histogram>

<histogram name="Media.Video.Autoplay.Muted.Blocked"
    enum="AutoplayBlockedReason">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records the reason why autoplay of muted videos was blocked.
  </summary>
</histogram>

<histogram name="Media.Video.Autoplay.Muted.PlayMethod.BecomesVisible"
    enum="Boolean">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records muted video started playing with play() become visible at some
    point. The UMA for false is not complete since it is recorded in a
    destructor which is garbage-collected. Please subtract
    Media.Video.Autoplay.Muted &quot;play() method&quot; count with the true
    count of this histogram to obtain the real false count.
  </summary>
</histogram>

<histogram name="Media.Video.Autoplay.Muted.PlayMethod.OffscreenDuration"
    units="ms">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records the offscreen playing duration of a muted video autoplaying from
    play() method.
  </summary>
</histogram>

<histogram name="Media.Video.Autoplay.Muted.UnmuteAction" enum="BooleanSuccess">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Status of the unmute action on a video that autoplayed because it was muted.
  </summary>
</histogram>

<histogram name="Media.Video.Autoplay.PlayMethod.WaitTime" units="ms">
  <owner>hubbe@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records time from load starts until video starts based on play method.
  </summary>
</histogram>

<histogram name="Media.Video.FullscreenOrientationLock.AutoRotateEnabled"
    enum="BooleanEnabled">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Whether auto rotation of screen orientation is enabled by the user (if so
    the user has not locked the screen orientation at the OS level, though the
    orientation may still be locked by apps). Recorded each time
    MediaControlsOrientationLockDelegate locks the screen orientation in
    response to a video going fullscreen (or loading metadata whilst
    fullscreen).
  </summary>
</histogram>

<histogram name="Media.Video.FullscreenOrientationLock.LockResult"
    enum="VideoFullscreenOrientationLockResult">
  <owner>mlamouri@chromium.org</owner>
  <summary>
    Result of the orientation lock attempt when a video enters fullscreen.
  </summary>
</histogram>

<histogram name="Media.Video.FullscreenOrientationLock.MetadataAvailability"
    enum="VideoFullscreenOrientationLockMetadataAvailability">
  <owner>mlamouri@chromium.org</owner>
  <summary>
    Status of the metadata when attempting to lock the screen orientation for a
    fullscreen video.
  </summary>
</histogram>

<histogram name="Media.Video.KeyFrameDistance" units="ms">
  <obsolete>
    Deprecated as of 11/2018 -- no longer used and expensive to monitor.
  </obsolete>
  <owner>dalecurtis@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records the time distance between consequent keyframes in a video. The new
    value is recorded for each video key frame decoded.
  </summary>
</histogram>

<histogram name="Media.Video.TimeFromForegroundToFirstFrame" units="ms">
  <obsolete>
    Deprecated as of 01/18/2017 in issue 670150. Replaced by
    Media.Video.TimeFromForegroundToFirstFrame.DisableTrack and
    Media.Video.TimeFromForegroundToFirstFrame.Paused.
  </obsolete>
  <owner>dalecurtis@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records the time between the moment when the video element is brought to the
    foreground and when the video frame compositor outputs the next frame.
  </summary>
</histogram>

<histogram name="Media.Video.TimeFromForegroundToFirstFrame.DisableTrack"
    units="ms">
  <owner>dalecurtis@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records the time between the moment when the video element that had video
    track disabled in the background is brought to the foreground and when the
    video frame compositor outputs the next frame. Recorded even if disabling
    video track in the background is turned off to collect data for the control
    group.
  </summary>
</histogram>

<histogram name="Media.Video.TimeFromForegroundToFirstFrame.Paused" units="ms">
  <owner>dalecurtis@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records the time between the moment when the video element that was paused
    in the background is brought to the foreground and when the video frame
    compositor outputs the next frame. Recorded even if disabling pausing video
    in the background is turned off to collect data for the control group.
  </summary>
</histogram>

<histogram name="Media.VideoCapture.AspectRatio" units="%">
  <owner>mcasas@chromium.org</owner>
  <summary>
    Video Capture Device captured aspect ratio, as a rounded integer multiplied
    by 100. The collection is made in the VideoCaptureController upon reception
    of the first frame.
  </summary>
</histogram>

<histogram name="Media.VideoCapture.BlacklistedDevice"
    enum="BlacklistedVideoCaptureDeviceNames">
  <owner>mcasas@chromium.org</owner>
  <summary>
    Counts appearances of Blacklisted Video Capture devices during enumeration.
    This collection happens during first enumeration in the appropriate
    platforms' VideoCaptureDeviceFactory.
  </summary>
</histogram>

<histogram name="Media.VideoCapture.DelayUntilFirstFrame" units="ms">
  <owner>chfremer@chromium.org</owner>
  <summary>
    Time it takes from the moment that a VideoCaptureController is requested to
    start to the moment the first video frame arrives at
    VideoCaptureController::OnFrameReadyInBuffer().
  </summary>
</histogram>

<histogram name="Media.VideoCapture.Error" enum="VideoCaptureError">
  <owner>chfremer@chromium.org</owner>
  <summary>
    Breaks down the events counted in Media.VideoCaptureManager.Event bucket
    &quot;Stopping video capture due to error&quot; by the origin of the error.
    This allows narrowing down what is causing errors. An event for this
    histogram is emitted once for each time a client disconnects from a video
    capture session because the session has reported an error.
  </summary>
</histogram>

<histogram name="Media.VideoCapture.FrameDrop"
    enum="VideoCaptureFrameDropReason">
  <owner>chfremer@chromium.org</owner>
  <summary>
    An event for this histogram is emitted once for each time a video frame is
    dropped on the way from a capture source, e.g. a webcam, to a corresponding
    media::VideoCaptureController instance running in the Browser process. If
    more than
    |VideoCaptureController::max_consecutive_frame_drop_for_same_reason_count()|
    frames are dropped consecutively for the same reason, no more events for the
    same reason will be counted for that session until either a frame is
    delivered successfully or the reason for the frame dropping changes.
  </summary>
</histogram>

<histogram name="Media.VideoCapture.FrameRate" units="fps">
  <owner>mcasas@chromium.org</owner>
  <summary>
    Video Capture Device frame rate requested by VideoCaptureManager on
    AllocateAndStart(). The collection is made in the VideoCaptureController
    upon reception of the first frame.
  </summary>
</histogram>

<histogram name="Media.VideoCapture.FramesReceived" enum="BooleanReceived">
  <obsolete>
    Deprecated as of 10/2014 in issue 422822. Replaced by
    Media.VideoCaptureManager.Event and the two new values 3 and 4 in the enum
    VideoCaptureEvent.
  </obsolete>
  <owner>grunell@chromium.org</owner>
  <owner>mcasas@chromium.org</owner>
  <summary>
    Whether any frames were received during a video capture session. This metric
    is recorded when a video source is stopped.
  </summary>
</histogram>

<histogram name="Media.VideoCapture.Height" units="pixels">
  <owner>mcasas@chromium.org</owner>
  <summary>
    Video Capture Device captured frame height in pixels. The collection is made
    in the VideoCaptureController upon reception of the first frame.
  </summary>
</histogram>

<histogram name="Media.VideoCapture.MacBook.HardwareVersionWhenNoCamera"
    enum="MacBookVersions">
  <owner>perkj@chromium.org</owner>
  <summary>
    MacBook hardware version used when Chrome cannot enumerate a video device.
    This is used for tracking http://crbug.com/582931.
  </summary>
</histogram>

<histogram name="Media.VideoCapture.MacBook.NumberOfDevices" units="devices">
  <owner>perkj@chromium.org</owner>
  <summary>
    Number of video capture devices detected by Chrome during device
    enumeration. Zero devices indicate a problem since all MacBooks should have
    a built-in camera. This is used for tracking http://crbug.com/582931.
  </summary>
</histogram>

<histogram name="Media.VideoCapture.MacBook.NumberOfDevicesAfterServiceRestart"
    units="devices" expires_after="2019-04-15">
  <owner>chfremer@chromium.org</owner>
  <summary>
    Number of video capture devices detected by Chrome when retrying device
    enumeration after restarting the video capture service because a previous
    device enumeration delivered zero devices.This is used for testing the
    effectiveness of restarting the video capture service as a mitigation for
    http://crbug.com/582931.
  </summary>
</histogram>

<histogram name="Media.VideoCapture.MaxFrameDropExceeded"
    enum="VideoCaptureFrameDropReason">
  <owner>chfremer@chromium.org</owner>
  <summary>
    An event for this histogram is emitted when a video capture session drops
    more than
    |VideoCaptureController::max_consecutive_frame_drop_for_same_reason_count()|
    consecutive video frames for the same reason. After this event is emitted
    once, no additional events are emitted for consecutively dropped frames for
    the same reason until the count is reset by either a frame being delivered
    successfully or a frame being dropped for a different reason. See also
    Media.VideoCapture.FrameDrop.
  </summary>
</histogram>

<histogram name="Media.VideoCapture.PixelFormat" enum="CapturePixelFormat">
  <obsolete>
    Deprecated 10/2014 in Issue 660493002.
  </obsolete>
  <owner>mcasas@chromium.org</owner>
  <summary>
    Pixel format provided by a Video Capture Device. The collection is made in
    the VideoCaptureController upon reception of the first frame.
  </summary>
</histogram>

<histogram name="Media.VideoCapture.Width" units="pixels">
  <owner>mcasas@chromium.org</owner>
  <summary>
    Video Capture Device captured frame width in pixels. The collection is made
    in the VideoCaptureController upon reception of the first frame.
  </summary>
</histogram>

<histogram name="Media.VideoCapture.Windows.BackendUsed"
    enum="VideoCaptureWinBackendUsed">
  <owner>chfremer@chromium.org</owner>
  <summary>
    Indicates which video capture backend is used on Windows. A count is
    recorded each time a new VideoCaptureDeviceFactoryWin instance is created.
  </summary>
</histogram>

<histogram base="true" name="Media.VideoCapture.Windows.ImageCaptureOutcome"
    enum="ImageCaptureOutcome">
  <owner>chfremer@chromium.org</owner>
  <summary>
    Counts number of times taking a still image on Windows fails/succeeds.
  </summary>
</histogram>

<histogram
    name="Media.VideoCapture.Windows.NumberOfRetriesNeededForMFGetAvailableDeviceMediaType"
    units="retries">
  <owner>chfremer@chromium.org</owner>
  <summary>
    Counts how many retries are needed for calls to MediaFoundation function
    GetAvailableDeviceMediaType before getting a result different from
    MF_E_INVALIDREQUEST or giving up.
  </summary>
</histogram>

<histogram
    name="Media.VideoCapture.Windows.NumberOfRetriesNeededForMFGetDeviceStreamCategory"
    units="retries">
  <owner>chfremer@chromium.org</owner>
  <summary>
    Counts how many retries are needed for calls to MediaFoundation function
    GetDeviceStreamCategory before getting a result different from
    MF_E_INVALIDREQUEST or giving up.
  </summary>
</histogram>

<histogram
    name="Media.VideoCapture.Windows.NumberOfRetriesNeededForMFGetDeviceStreamCount"
    units="retries">
  <owner>chfremer@chromium.org</owner>
  <summary>
    Counts how many retries are needed for calls to MediaFoundation function
    GetDeviceStreamCount before getting a result different from
    MF_E_INVALIDREQUEST or giving up.
  </summary>
</histogram>

<histogram name="Media.VideoCaptureApi.Mac" enum="CaptureApiMac">
  <owner>mcasas@chromium.org</owner>
  <summary>
    Video Capture and device enumeration/monitoring API used for Mac OS Lion or
    later. Collection is made only once when the flags are parsed and the
    appropriate library selected and/or loaded, successfully or not.
  </summary>
</histogram>

<histogram name="Media.VideoCaptureGpuJpegDecoder.InitDecodeSuccess"
    enum="BooleanSuccess">
  <owner>henryhsu@chromium.org</owner>
  <summary>
    Indicates whether we were successful in initializing hardware jpeg decoder
    for attempts to VideoCaptureGpuJpegDecoder::Initialize().
  </summary>
</histogram>

<histogram name="Media.VideoCaptureManager" units="ms">
  <owner>mcasas@chromium.org</owner>
  <summary>Measures the time taken for VideoCaptureManager::</summary>
</histogram>

<histogram name="Media.VideoCaptureManager.Event" enum="VideoCaptureEvent">
  <owner>chfremer@chromium.org</owner>
  <owner>mcasas@chromium.org</owner>
  <summary>
    Counts video capture event, such as start and stop capture. Note that the
    ideal case is 50% start events and 50% normal stop events.
  </summary>
</histogram>

<histogram
    name="Media.VideoCaptureService.DurationFromLastConnectToClosingConnection"
    units="ms">
  <obsolete>
    Deprecated 07/2017 in favor of the more differentiated durations.
  </obsolete>
  <owner>chfremer@chromium.org</owner>
  <summary>
    Measures the duration from the time the Browser connected to the video
    capture service to the time it closed the connection.
  </summary>
</histogram>

<histogram
    name="Media.VideoCaptureService.DurationFromLastConnectToClosingConnectionAfterCapture"
    units="ms">
  <owner>chfremer@chromium.org</owner>
  <summary>
    Measures the duration from the time the Browser connected to the video
    capture service to the time it closed the connection. Entries are only
    logged if the service was used for creating an actual capture session as
    opposed to enumerating devices only.
  </summary>
</histogram>

<histogram
    name="Media.VideoCaptureService.DurationFromLastConnectToClosingConnectionAfterEnumerationOnly"
    units="ms">
  <owner>chfremer@chromium.org</owner>
  <summary>
    Measures the duration from the time the Browser connected to the video
    capture service to the time it closed the connection. Entries are only
    logged if the service was used for enumerating devices only, but not for
    creating an actual capture session.
  </summary>
</histogram>

<histogram
    name="Media.VideoCaptureService.DurationFromLastConnectToConnectionLost"
    units="ms">
  <owner>chfremer@chromium.org</owner>
  <summary>
    Measures the duration from the time the Browser connected to the video
    capture service to the time the connection was lost.
  </summary>
</histogram>

<histogram name="Media.VideoCaptureService.DurationUntilReconnect" units="ms">
  <obsolete>
    Deprecated 07/2017 in favor of the more differentiated durations.
  </obsolete>
  <owner>chfremer@chromium.org</owner>
  <summary>
    Measures the duration from the time the Browser last closed or lost
    connection to the video capture service to the time it reconnects.
  </summary>
</histogram>

<histogram name="Media.VideoCaptureService.DurationUntilReconnectAfterCapture"
    units="ms">
  <owner>chfremer@chromium.org</owner>
  <summary>
    Measures the duration from the time the Browser last closed or lost
    connection to the video capture service to the time it reconnects. This
    duration only gets logged for reconnects after usage of the service for
    capture (as opposed to enumeration-only usage).
  </summary>
</histogram>

<histogram
    name="Media.VideoCaptureService.DurationUntilReconnectAfterEnumerationOnly"
    units="ms">
  <owner>chfremer@chromium.org</owner>
  <summary>
    Measures the duration from the time the Browser last closed or lost
    connection to the video capture service to the time it reconnects. This
    duration only gets logged for reconnects after enumeration-only usage of the
    service.
  </summary>
</histogram>

<histogram name="Media.VideoCaptureService.Event"
    enum="VideoCaptureServiceEvent">
  <owner>chfremer@chromium.org</owner>
  <summary>
    Counts video capture service events, such as startup, shutdown, and
    connection lost.
  </summary>
</histogram>

<histogram name="Media.VideoCodec" enum="VideoCodec">
  <owner>dalecurtis@chromium.org</owner>
  <summary>Video codec used in HTML5 media.</summary>
</histogram>

<histogram name="Media.VideoCodecProfile" enum="VideoCodecProfile">
  <owner>dalecurtis@chromium.org</owner>
  <summary>Video codec profile used in HTML5 media.</summary>
</histogram>

<histogram name="Media.VideoCodedAspectRatio" units="%">
  <obsolete>
    Deprecated 11/2016 in issue 2506533002.
  </obsolete>
  <owner>scherkus@chromium.org</owner>
  <summary>Coded aspect ratio of HTML5 video.</summary>
</histogram>

<histogram name="Media.VideoCodedWidth">
  <obsolete>
    Deprecated 11/2016 in issue 2506533002.
  </obsolete>
  <owner>scherkus@chromium.org</owner>
  <summary>Coded width of HTML5 video.</summary>
</histogram>

<histogram name="Media.VideoColorRange" enum="FFmpegColorRanges">
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Pixel format color range of HTML5 video. Emitted on video load.
  </summary>
</histogram>

<histogram name="Media.VideoDecoderFallback" enum="BooleanDidFallBack">
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Whether Chrome had to fall back to a secondary video decoder after the
    primary decoder failed reinitialization.
  </summary>
</histogram>

<histogram name="Media.VideoDecodeStatsDB.OpSuccess" enum="BooleanSuccess">
  <owner>chcunningham@chromium.org</owner>
  <summary>
    Indicates whether we were successful performing some database operation. See
    suffix VideoDecodeStatsDBOperations.
  </summary>
</histogram>

<histogram name="Media.VideoFormat" enum="VideoFormat">
  <obsolete>
    Replaced by Media.VideoFramePixelFormat 05/2015.
  </obsolete>
  <owner>mcasas@chromium.org</owner>
  <summary>Pixel format used in HTML5 video. Emitted on video load.</summary>
</histogram>

<histogram name="Media.VideoFrame.ColorSpace" enum="VideoFrameColorSpaceUMA">
  <owner>hubbe@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>Video frame color space. Emitted for each video frame.</summary>
</histogram>

<histogram name="Media.VideoFramePixelFormat" enum="VideoFramePixelFormat">
  <obsolete>
    Replaced by Media.VideoPixelFormatUnion 08/2015.
  </obsolete>
  <owner>mcasas@chromium.org</owner>
  <owner>watk@chromium.org</owner>
  <summary>Pixel format used in HTML5 video. Emitted on video load.</summary>
</histogram>

<histogram base="true" name="Media.VideoHeight.Initial" units="pixels">
  <owner>media-dev@chromium.org</owner>
  <summary>
    The height of the first video frame in an HTML5 video. Reported when the
    first video frame is available.
  </summary>
</histogram>

<histogram name="Media.VideoPersistence.AttemptResult"
    enum="VideoPersistenceAttemptResult">
  <owner>mlamouri@chromium.org</owner>
  <owner>peconn@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Every time a video persistence session could be triggered, it records the
    result of the attempt.
  </summary>
</histogram>

<histogram name="Media.VideoPersistence.ControlsType"
    enum="VideoPersistenceControlsType">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Record the type of controls a persisted video is using. This is recorded
    every time a video enters persistence mode
  </summary>
</histogram>

<histogram name="Media.VideoPersistence.Duration" units="ms">
  <owner>mlamouri@chromium.org</owner>
  <owner>peconn@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records the length during which a video was in a persistent state. It is
    recorded once per video persistence session.
  </summary>
</histogram>

<histogram name="Media.VideoPersistence.EndReason"
    enum="VideoPersistenceEndReason">
  <owner>mlamouri@chromium.org</owner>
  <owner>peconn@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records the reason why a video persistence session has ended.
  </summary>
</histogram>

<histogram name="Media.VideoPixelFormat" enum="VideoPixelFormat">
  <obsolete>
    Replaced by Media.VideoFormat 05/2015.
  </obsolete>
  <owner>scherkus@chromium.org</owner>
  <summary>Pixel format used in HTML5 video. Emitted on video load.</summary>
</histogram>

<histogram name="Media.VideoPixelFormatUnion" enum="VideoPixelFormatUnion">
  <owner>mcasas@chromium.org</owner>
  <owner>emircan@chromium.org</owner>
  <summary>
    Pixel format used in capture and HTML5 video. Emitted on video load.
  </summary>
</histogram>

<histogram name="Media.VideoRenderer.CadenceChanges" units="changes">
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Indicates how many cadence changes have occurred during playback, a zero
    value is emitted at the beginning of playback. Subsequent values are emitted
    during video rendering for each cadence change (up to a maximum of 10).
  </summary>
</histogram>

<histogram name="Media.VideoRenderer.LowDelay" enum="Boolean">
  <owner>xhwang@chromium.org</owner>
  <summary>
    Indicates whether video is rendering in low delay mode. It's recorded when a
    video starts playing.
  </summary>
</histogram>

<histogram name="Media.VideoRotation" enum="VideoRotation">
  <owner>dalecurtis@chromium.org</owner>
  <summary>Metadata rotation in mp4 videos. Emitted during demuxing.</summary>
</histogram>

<histogram name="Media.VideoTrackAdapter.FramesReceived" enum="BooleanReceived">
  <obsolete>
    Replaced by Media.VideoCapture.FramesReceived 09/2014.
  </obsolete>
  <owner>grunell@chromium.org</owner>
  <owner>mcasas@chromium.org</owner>
  <summary>
    If any frames were received during a video capture session. It's recorded
    when a video source is stopped.
  </summary>
</histogram>

<histogram name="Media.VideoVisibleAspectRatio" units="%">
  <owner>dalecurtis@chromium.org</owner>
  <summary>Visible aspect ratio of HTML5 video.</summary>
</histogram>

<histogram name="Media.VideoVisibleWidth">
  <owner>dalecurtis@chromium.org</owner>
  <summary>Visible width of HTML5 video.</summary>
</histogram>

<histogram name="Media.VirtualAudioCaptureStartupSuccess"
    enum="AudioCaptureStartupResult">
  <owner>maxmorin@chromium.org</owner>
  <summary>
    Whether capture started successfully after a high-latency input stream
    startup was requested.
  </summary>
</histogram>

<histogram name="Media.Vpx.VideoDecoderBuffersInUseByDecoder">
  <obsolete>
    Deprecated 05/2016.
  </obsolete>
  <owner>dcastagna@chromium.org</owner>
  <summary>Number of frame buffers used by Vpx decoder.</summary>
</histogram>

<histogram name="Media.Vpx.VideoDecoderBuffersInUseByDecoderAndVideoFrame">
  <obsolete>
    Deprecated 05/2016.
  </obsolete>
  <owner>dcastagna@chromium.org</owner>
  <summary>
    Number of frame buffers currently in use by both Vpx decoder and a
    VideoFrame.
  </summary>
</histogram>

<histogram name="Media.VpxVideoDecoder.Vp9DecodeTime" units="ms">
  <obsolete>
    Deprecated 11/2018 -- shows nothing interesting; it's been static for years.
  </obsolete>
  <owner>dalecurtis@chromium.org</owner>
  <summary>Amount of time taken to decode one VP9 frame.</summary>
</histogram>

<histogram name="Media.VTVDA.HardwareAccelerated"
    enum="BooleanHardwareAccelerated">
  <owner>sandersd@chromium.org</owner>
  <summary>
    Whether a VTDecompressionSession is internally using hardware accelerated
    decoding.
  </summary>
</histogram>

<histogram name="Media.VTVDA.InitializationFailureReason"
    enum="VTVDAInitializationFailureType">
  <owner>sandersd@chromium.org</owner>
  <summary>
    Count of VideoToolbox initialization failure reasons. Successful
    initializations are counted as a special failure type. The sum of successes
    and failures gives a lower bound on the number of attempted initializations.
  </summary>
</histogram>

<histogram name="Media.VTVDA.SessionFailureReason"
    enum="VTVDASessionFailureType">
  <owner>sandersd@chromium.org</owner>
  <summary>
    Count of VTVDA session failure reasons. Successful initializations are
    counted as a special failure type. Since only successfully initialized
    session can fail, failures rates are computed as a simple ratio.
  </summary>
</histogram>

<histogram name="Media.WatchTime" units="ms">
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Watch time is defined as the amount of elapsed media time for audio+video
    media aggregated per player instance. A minimum of 7 seconds of unmuted,
    foreground media must be watched to start watch time monitoring. Watch time
    is checked on a regular basis and reported to UMA upon one of the stop
    events mentioned below or at player destruction if none occur prior.

    Any one of paused, hidden, or muted is sufficient to stop watch time metric
    reports. Each of these has a hysteresis where if the state change is undone
    within some time, the watch time will be counted as uninterrupted.

    Power events (on/off battery power) have a similar hysteresis, but unlike
    the aforementioned properties, will not stop metric collection.

    Each seek event will result in a new watch time metric being started and the
    old metric finalized as accurately as possible.
  </summary>
</histogram>

<histogram name="Media.WebAudioSourceProvider.SinkStatus"
    enum="OutputDeviceStatus">
  <obsolete>
    Replaced by Media.AudioRendererImpl.SinkStatus in Nov 2018.
  </obsolete>
  <owner>olka@chromium.org</owner>
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Status of audio sink provided to WebMediaPlayer. If not OK, null sink will
    be used for audio output instead.
  </summary>
</histogram>

<histogram name="Media.WebMediaPlayerImpl.HLS.HasAccessControl" enum="Boolean"
    expires_after="2019-12-31">
  <owner>sandersd@chromium.org</owner>
  <owner>tguilbert@chromium.org</owner>
  <summary>
    When an HLS manifest is found during loading (on Android only), and the
    response is CORS cross-origin, this histogram records whether the response
    included an Access-Control-Allow-Origin header. Such requests are likely to
    be supported by fetch() if the mode is correctly configured.
  </summary>
</histogram>

<histogram name="Media.WebMediaPlayerImpl.HLS.IsCorsCrossOrigin" enum="Boolean"
    expires_after="2019-12-31">
  <owner>sandersd@chromium.org</owner>
  <owner>tguilbert@chromium.org</owner>
  <summary>
    When an HLS manifest is found during loading (on Android only), records
    whether the request was CORS cross-origin. These are cases that could not be
    implemented using fetch(). Note: subresources referenced by the manifest are
    not considered; they may have different origins or CORS configurations.
  </summary>
</histogram>

<histogram name="Media.WebMediaPlayerImpl.HLS.IsMixedContent" enum="Boolean"
    expires_after="2019-12-31">
  <owner>sandersd@chromium.org</owner>
  <owner>tguilbert@chromium.org</owner>
  <summary>
    When an HLS manifest is found during loading (on Android only), records
    whether the request would be mixed content. These are cases that could not
    be implemented using fetch(). Note: subresources referenced by the manifest
    are not considered; they may have different origins.
  </summary>
</histogram>

<histogram name="Media.WebMediaPlayerImpl.HLS.WouldTaintOrigin" enum="Boolean"
    expires_after="2019-12-31">
  <obsolete>
    Deprecated because an overwhelming majority of pages do not set the
    crossorigin attribute and as a result most HLS content is counted.
    Superseded by Media.WebMediaPlayerImpl.HLS.HasAccessControl.
  </obsolete>
  <owner>sandersd@chromium.org</owner>
  <owner>tguilbert@chromium.org</owner>
  <summary>
    When an HLS manifest is found during loading (on Android only), records
    whether the request was CORS cross-origin or redirected between origins.
    These are cases that may or may not be able to be implemented using fetch(),
    depending on details of the redirection and the setting of the crossorigin
    attribute. Note: subresources referenced by the manifest are not considered;
    they may have different origins or CORS configurations.
  </summary>
</histogram>

<histogram base="true" name="Media.WebMediaPlayerImpl.Memory" units="KB">
  <owner>wolenetz@chromium.org</owner>
  <summary>
    Amount of memory used by the WebMediaPlayerImpl and its components.
  </summary>
</histogram>

<histogram name="Media.WebView.UnsupportedContainer"
    enum="UnsupportedContainers">
  <obsolete>
    Deprecated 09/2018 since support for these containers has been deprecated.
  </obsolete>
  <owner>dalecurtis@chromium.org</owner>
  <summary>
    Media container extensions seen by WebView that are not supported by the
    standard HTML5 playback path. This value is recorded every time a
    WebMediaPlayer is created with one of the unsupported containers.
  </summary>
</histogram>

<histogram name="Media.WindowsCoreAudioInput" enum="BooleanSuccess">
  <obsolete>
    Deprecated 01/2017 as Windows Core Audio is now the only audio input
    implementation on Windows.
  </obsolete>
  <owner>henrika@chromium.org</owner>
  <summary>
    Whether Chrome is using Windows Core Audio for audio input or not. Updated
    on Windows only when a low-latency audio input stream is created.
  </summary>
</histogram>

<histogram name="Media.YouTube.DelayedAndDroppedFramesPer5Sec"
    units="frames/5s">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The average number of delayed and dropped frames for the YouTube
    application. Reported every 5 seconds.
  </summary>
</histogram>

<histogram name="Media.YouTube.DisplayedFramesPerSecond" units="frames/s">
  <obsolete>
    Deprecated 07/2015 in issue 508534.
  </obsolete>
  <owner>halliwell@chromium.org</owner>
  <summary>
    The average number of displayed frames for the YouTube application. Reported
    every 5 seconds.
  </summary>
</histogram>

<histogram name="Media.YouTube.TimeToBufferAv" units="ms">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time needed to pre-buffer A/V data before the actual playback for the
    YouTube application.
  </summary>
</histogram>

<histogram name="Media.YouTube.TimeToBufferAvAfterAbort" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time needed to buffer A/V data after an abort for the YouTube application.
  </summary>
</histogram>

<histogram name="Media.YouTube.TimeToBufferAvAfterUnderrun" units="ms">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time needed to buffer A/V data after an underrun for the YouTube
    application.
  </summary>
</histogram>

<histogram name="MediaGalleries.ScanCancelTime" units="ms">
  <owner>vandebo@chromium.org</owner>
  <summary>If a media scan was cancelled, the duration (in ms) it ran.</summary>
</histogram>

<histogram name="MediaGalleries.ScanDirectoriesFound">
  <owner>vandebo@chromium.org</owner>
  <summary>
    The number of directories with media files found during a scan.
  </summary>
</histogram>

<histogram name="MediaGalleries.ScanFinishedTime" units="ms">
  <owner>vandebo@chromium.org</owner>
  <summary>
    Duration in milliseconds taken to do a media scan that ran to completion.
  </summary>
</histogram>

<histogram name="MediaGalleries.ScanGalleriesGranted" units="%">
  <owner>vandebo@chromium.org</owner>
  <summary>
    The percentage of galleries accepted (not deselected) from the scan result
    dialog.
  </summary>
</histogram>

<histogram name="MediaGalleries.ScanGalleriesPopulated">
  <owner>vandebo@chromium.org</owner>
  <summary>
    The number of galleries added or updated in preferences after a scan.
  </summary>
</histogram>

<histogram name="MediaGalleries.Usage" enum="MediaGalleriesUsageType">
  <owner>vandebo@chromium.org</owner>
  <summary>Various usage counts for media galleries.</summary>
</histogram>

<histogram name="MediaLauncherActivity.MediaType"
    enum="MediaLauncherActivityMediaType">
  <owner>steimel@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    The type of media that a user is opening via the MediaLauncherActivity.
  </summary>
</histogram>

<histogram base="true" name="MediaRouter.Cast.App.Availability" units="ms">
<!-- Name completed by histogram_suffixes name="MediaRouterSuccess" -->

  <owner>takumif@chromium.org</owner>
  <owner>mfoltz@chromium.org</owner>
  <owner>openscreen-team@google.com</owner>
  <summary>
    Round trip time for a Cast app availability request. Can be suffixed with
    Success or Failure.
  </summary>
</histogram>

<histogram name="MediaRouter.Cast.Channel.ConnectResult" enum="BooleanSuccess">
  <owner>mfoltz@chromium.org</owner>
  <summary>
    Whether opening Cast channel succeeds or not. Recorded when all opening
    channel attempts (including retry attempts) finish.
  </summary>
</histogram>

<histogram name="MediaRouter.Cast.Channel.Error"
    enum="MediaRouterCastChannelError">
  <owner>mfoltz@chromium.org</owner>
  <summary>
    Errors encountered on a Cast channel. Recorded when a Cast channel fails to
    open, or when an opened channel fails to respond to keepalive ping request
    and times out.
  </summary>
</histogram>

<histogram name="MediaRouter.Cast.Discovery.CachedSinksAvailableCount"
    units="devices">
  <owner>btolsch@chromium.org</owner>
  <summary>
    The number of Cast devices available from the device cache at the time of a
    new network connection.
  </summary>
</histogram>

<histogram name="MediaRouter.Cast.Discovery.ConnectedDevicesCount"
    units="devices">
  <owner>mfoltz@chromium.org</owner>
  <summary>
    The number of connected Cast devices. Recorded when browser finishes
    discovering Cast devices. Recording happens roughly once per hour.
  </summary>
</histogram>

<histogram name="MediaRouter.Cast.Discovery.KnownDevicesCount" units="devices">
  <owner>mfoltz@chromium.org</owner>
  <summary>
    The number of known Cast devices. Recorded when browser finishes discovering
    Cast devices. Recording happens roughly once per hour.
  </summary>
</histogram>

<histogram name="MediaRouter.Cast.Discovery.SinkSource"
    enum="MediaRouterCastSinkSource">
  <owner>btolsch@chromium.org</owner>
  <summary>The source of discovery for a newly-created Cast sink.</summary>
</histogram>

<histogram name="MediaRouter.Cast.Mdns.Channel.Open_Failure" units="ms">
  <owner>mfoltz@chromium.org</owner>
  <summary>
    Duration in milliseconds taken to fail to open a cast channel. Recorded when
    one opening channel attempt fails.
  </summary>
</histogram>

<histogram name="MediaRouter.Cast.Mdns.Channel.Open_Success" units="ms">
  <owner>mfoltz@chromium.org</owner>
  <summary>
    Duration in milliseconds taken to successfully open a cast channel. Recorded
    when one opening channel attempt succeeds.
  </summary>
</histogram>

<histogram name="MediaRouter.Dial.AvailableDevicesCount" units="devices">
  <owner>mfoltz@chromium.org</owner>
  <summary>
    The number of available DIAL devices. Recorded when browser finishes
    discovering DIAL devices. Recording happens roughly once per hour.
  </summary>
</histogram>

<histogram name="MediaRouter.Dial.CreateRoute"
    enum="MediaRouterDialCreateRouteResult">
  <owner>takumif@chromium.org</owner>
  <owner>mfoltz@chromium.org</owner>
  <owner>openscreen-team@google.com</owner>
  <summary>
    The result of a DIAL CreateRoute request. Recorded when the user requests to
    create a media route to a DIAL device.
  </summary>
</histogram>

<histogram name="MediaRouter.Dial.FetchAppInfo"
    enum="MediaRouterDialFetchAppInfoResult">
  <owner>takumif@chromium.org</owner>
  <owner>mfoltz@chromium.org</owner>
  <owner>openscreen-team@google.com</owner>
  <summary>
    The result of a DIAL app info request. Recorded when an app info request is
    issued to a DIAL device.
  </summary>
</histogram>

<histogram name="MediaRouter.Dial.KnownDevicesCount" units="devices">
  <owner>mfoltz@chromium.org</owner>
  <summary>
    The number of known DIAL devices. Recorded when browser finishes discovering
    DIAL devices. Recording happens roughly once per hour.
  </summary>
</histogram>

<histogram name="MediaRouter.Dial.ParseMessage"
    enum="MediaRouterDialParseMessageResult">
  <owner>takumif@chromium.org</owner>
  <owner>mfoltz@chromium.org</owner>
  <owner>openscreen-team@google.com</owner>
  <summary>
    The result of parsing a Cast SDK message in the DIAL media route provider.
    Recorded when the DIAL media route prover finishes parsing a Cast SDK
    message sent from a Cast-enabled webpage.
  </summary>
</histogram>

<histogram name="MediaRouter.Dial.ParsingError"
    enum="MediaRouterDialParsingError">
  <owner>mfoltz@chromium.org</owner>
  <summary>
    Error encountered while parsing DIAL device description XML text. Recorded
    when utility process returns an invalid DIAL device description object to
    browser.
  </summary>
</histogram>

<histogram name="MediaRouter.Dial.TerminateRoute"
    enum="MediaRouterDialTerminateRouteResult">
  <owner>takumif@chromium.org</owner>
  <owner>mfoltz@chromium.org</owner>
  <owner>openscreen-team@google.com</owner>
  <summary>
    The result of a DIAL TerminateRoute request. Recorded the user requests to
    terminate a DIAL media route.
  </summary>
</histogram>

<histogram name="MediaRouter.Icon.Click.Location"
    enum="MediaRouterDialogOpenOrigin">
  <owner>takumif@chromium.org</owner>
  <summary>Location the user clicked to open the Media Router dialog.</summary>
</histogram>

<histogram name="MediaRouter.NetworkMonitor.ConnectionType"
    enum="DiscoveryNetworkMonitorConnectionType">
  <owner>btolsch@chromium.org</owner>
  <summary>
    Network connection type reported by DiscoveryNetworkMonitor whenever it
    detects a change in the set of networks connected to the host device which
    may affect local discovery.
  </summary>
</histogram>

<histogram name="MediaRouter.NetworkMonitor.NetworkChangeEventDelta" units="ms">
  <owner>btolsch@chromium.org</owner>
  <summary>
    Time between network change events reported by DiscoveryNetworkMonitor.
  </summary>
</histogram>

<histogram name="MediaRouter.PresentationRequest.AvailabilityUrlType"
    enum="PresentationUrlType">
  <owner>takumif@chromium.org</owner>
  <owner>mfoltz@chromium.org</owner>
  <owner>openscreen-team@google.com</owner>
  <summary>
    The type of Presentation URL used in a PresentationRequest by a web page.
  </summary>
</histogram>

<histogram name="MediaRouter.Provider.CreateRoute.Result"
    enum="MediaRouteProviderResult">
  <owner>takumif@chromium.org</owner>
  <owner>mfoltz@chromium.org</owner>
  <owner>openscreen-team@google.com</owner>
  <summary>
    Result of a request to the extension (or an unknown) MediaRouteProvider to
    create a route.
  </summary>
</histogram>

<histogram name="MediaRouter.Provider.CreateRoute.Result.WiredDisplay"
    enum="MediaRouteProviderResult">
  <owner>takumif@chromium.org</owner>
  <summary>
    Result of a request to the wired display MediaRouteProvider to create a
    route.
  </summary>
</histogram>

<histogram name="MediaRouter.Provider.JoinRoute.Result"
    enum="MediaRouteProviderResult">
  <owner>takumif@chromium.org</owner>
  <owner>mfoltz@chromium.org</owner>
  <owner>openscreen-team@google.com</owner>
  <summary>
    Result of a request to the extension (or an unknown) MediaRouteProvider to
    join a route.
  </summary>
</histogram>

<histogram name="MediaRouter.Provider.JoinRoute.Result.WiredDisplay"
    enum="MediaRouteProviderResult">
  <owner>takumif@chromium.org</owner>
  <summary>
    Result of a request to the wired display MediaRouteProvider to join a route.
  </summary>
</histogram>

<histogram name="MediaRouter.Provider.RouteControllerCreationOutcome"
    enum="BooleanSuccess">
  <owner>takumif@chromium.org</owner>
  <summary>
    Records whether the Media Route Provider succeeded or failed to create a
    controller for a media route.
  </summary>
</histogram>

<histogram name="MediaRouter.Provider.TerminateRoute.Result"
    enum="MediaRouteProviderResult">
  <owner>mfoltz@chromium.org</owner>
  <summary>
    Result of a request to the extension (or an unknown) MediaRouteProvider to
    terminate a route.
  </summary>
</histogram>

<histogram name="MediaRouter.Provider.TerminateRoute.Result.WiredDisplay"
    enum="MediaRouteProviderResult">
  <owner>takumif@chromium.org</owner>
  <summary>
    Result of a request to the wired display MediaRouteProvider to terminate a
    route.
  </summary>
</histogram>

<histogram name="MediaRouter.Provider.Version" enum="MediaRouteProviderVersion">
  <owner>mfoltz@chromium.org</owner>
  <summary>
    Records how the major version of the Media Router component extension
    compares to the major version of the browser.
  </summary>
</histogram>

<histogram name="MediaRouter.Provider.WakeReason"
    enum="MediaRouteProviderWakeReason">
  <owner>mfoltz@chromium.org</owner>
  <summary>
    Reason that the Media Router woke the Media Route Provider event page.
  </summary>
</histogram>

<histogram name="MediaRouter.Provider.Wakeup" enum="MediaRouteProviderWakeup">
  <owner>mfoltz@chromium.org</owner>
  <summary>
    Records the outcome of waking the Media Router component's event page.
  </summary>
</histogram>

<histogram name="MediaRouter.Route.CreationOutcome"
    enum="MediaRouterCreateRouteOutcome">
  <owner>takumif@chromium.org</owner>
  <summary>
    The number of times a Media Router create route response succeeds or fails.
    This breaks down the different failure types in to separate buckets.
  </summary>
</histogram>

<histogram name="MediaRouter.Sink.SearchOutcome" enum="BooleanSuccess">
  <owner>takumif@chromium.org</owner>
  <summary>
    The outcome of querying Media Route Providers for a sink by ID.
    &quot;Success&quot; indicates that a sink was found. This is recorded when
    the user attempts to cast to a sink with a manually entered ID.
  </summary>
</histogram>

<histogram name="MediaRouter.Sink.SelectedType" enum="MediaSinkType">
  <owner>takumif@chromium.org</owner>
  <summary>
    The type of the Media Sink that media is being Cast to. Recorded each time
    the user selects a Media Sink to start Casting.
  </summary>
</histogram>

<histogram name="MediaRouter.Source.CastingSource"
    enum="MediaRouterSourceTypes">
  <owner>takumif@chromium.org</owner>
  <summary>
    The source of a Media Router session. This is recorded to keep track of what
    kind of media is being streamed.
  </summary>
</histogram>

<histogram name="MediaRouter.Source.LocalFileFormat" enum="MediaContainers">
  <owner>takumif@chromium.org</owner>
  <summary>
    The file format of a local media Media Router session. This is recorded when
    a casting session begins to keep track of what kind of media is being
    streamed.
  </summary>
</histogram>

<histogram name="MediaRouter.Source.LocalFileSize" units="MB">
  <owner>takumif@chromium.org</owner>
  <summary>
    The file size of a local media Media Router session. This is recorded when a
    casting session begins to keep track of what kind of media is being
    streamed, specifically, whether it is a clip or a song, or a full length
    film or podcast.
  </summary>
</histogram>

<histogram name="MediaRouter.Ui.Action.CloseLatency" units="ms">
  <owner>takumif@chromium.org</owner>
  <summary>
    Duration in milliseconds taken from the user opening the Media Router dialog
    to the user closing the dialog. This is only recorded if closing the dialog
    is the first action the user takes.
  </summary>
</histogram>

<histogram name="MediaRouter.Ui.Action.StartLocal.Latency" units="ms">
  <owner>takumif@chromium.org</owner>
  <summary>
    Duration in milliseconds taken from the Media Router dialog showing the sink
    list and being populated with at least one device to the user selecting a
    device immediately after to create a new route.
  </summary>
</histogram>

<histogram name="MediaRouter.Ui.Action.StartLocalPosition"
    enum="MediaRouterSinkPositionLabel">
  <owner>takumif@chromium.org</owner>
  <summary>The index of the sink that was selected in the sink list.</summary>
</histogram>

<histogram name="MediaRouter.Ui.Action.StartLocalSessionSuccessful"
    enum="BooleanSuccess">
  <owner>takumif@chromium.org</owner>
  <summary>
    The number of times a session was successfully started versus failed.
  </summary>
</histogram>

<histogram name="MediaRouter.Ui.Action.StopRoute" enum="MediaRouteType">
  <owner>takumif@chromium.org</owner>
  <summary>The number of times a user stops different types of routes.</summary>
</histogram>

<histogram name="MediaRouter.Ui.Device.Count">
  <owner>takumif@chromium.org</owner>
  <summary>
    Counts the number of devices known and populated to the Media Router dialog
    three seconds after the dialog loads. Always expected to be non-negative.
  </summary>
</histogram>

<histogram name="MediaRouter.Ui.Dialog.LoadedWebUiRouteController" units="ms">
  <owner>takumif@chromium.org</owner>
  <summary>
    Duration in milliseconds it takes the WebUI route controls in the route
    details view to be populated after the view is opened.
  </summary>
</histogram>

<histogram name="MediaRouter.Ui.Dialog.LoadedWithData" units="ms">
  <owner>takumif@chromium.org</owner>
  <summary>
    Duration in milliseconds taken from the user click to open the Media Router
    dialog to initializing the dialog with data.
  </summary>
</histogram>

<histogram name="MediaRouter.Ui.Dialog.Paint" units="ms">
  <owner>takumif@chromium.org</owner>
  <summary>
    Duration in milliseconds taken from a user click to open the Media Router
    dialog to the initial paint.
  </summary>
</histogram>

<histogram name="MediaRouter.Ui.FirstAction" enum="MediaRouterUserAction">
  <owner>takumif@chromium.org</owner>
  <summary>
    The first action taken by the user after opening the Media Router dialog.
  </summary>
</histogram>

<histogram name="MediaRouter.Ui.InitialState" enum="MediaRouterInitialViews">
  <owner>takumif@chromium.org</owner>
  <summary>
    The view that was shown when the Media Router dialog is initially opened.
  </summary>
</histogram>

<histogram name="MediaRouter.Ui.Navigate.SourceSelection"
    enum="MediaRouterSourceTypes">
  <owner>takumif@chromium.org</owner>
  <summary>
    The number of times the user selects a specific cast source type.
  </summary>
</histogram>

<histogram name="MediaRouter.WiredDisplay.AvailableDevicesCount">
  <owner>takumif@chromium.org</owner>
  <summary>
    The number of Media Sinks available for Casting a Presentation API URL to
    local screens. Recorded at most once an hour, when the Wired Display Media
    Route Provider reports an update on the sink count.
  </summary>
</histogram>

<histogram name="MemCache.WriteResult" enum="MemCacheWriteResult">
  <owner>jkarlin@chromium.org</owner>
  <summary>The outcome of Entry::WriteData in the memory cache.</summary>
</histogram>

<histogram name="Memory.AudioService.PrivateMemoryFootprint" units="MB"
    expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->

  <owner>marinaciocea@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <owner>olka@chromium.org</owner>
  <summary>
    A rough estimate of the private memory footprint of the audio service
    process. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.AudioService.PrivateSwapFootprint" units="MB">
  <owner>marinaciocea@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <owner>olka@chromium.org</owner>
  <summary>
    An amount of private memory of the audio service process placed in swap
    (VmSwap). Available only on Android and Linux.
  </summary>
</histogram>

<histogram name="Memory.AudioService.ResidentSet" units="MiB"
    expires_after="2019-01-31">
  <owner>fdoray@chromium.org</owner>
  <summary>
    The size of the resident memory in a audio service process. This is
    influenced by factors we control (e.g. memory that is not accessed can be
    swapped) and factors we don't control (e.g. an unrelated process using a lot
    of memory can force memory in our process to be swapped). Recorded once per
    UMA ping on Windows/Linux/ChromeOS/Android.
  </summary>
</histogram>

<histogram name="Memory.AudioService.SharedMemoryFootprint" units="MB">
  <owner>marinaciocea@chromium.org</owner>
  <owner>maxmorin@chromium.org</owner>
  <owner>olka@chromium.org</owner>
  <summary>
    A rough estimate of the shared memory footprint of the audio service
    process. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.BackingStore">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>TBD.</summary>
</histogram>

<histogram name="Memory.Browser" units="KB">
  <obsolete>
    Deprecated 06/2016 Replaced with Memory.Browser.Large2.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The private working set used by the browser process. Recorded once per UMA
    ping. Note the existence of Memory.Browser.Large, which doesn't have
    overflow issues. TODO(rkaplow): This should be replaced with
    Memory.Browser.Large2 in M54.
  </summary>
</histogram>

<histogram name="Memory.Browser.Committed" units="MB">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>bashi@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The total committed memory used by the browser process. Recorded once per
    UMA ping.
  </summary>
</histogram>

<histogram name="Memory.Browser.Large" units="MB">
  <obsolete>
    Deprecated 07/2016 as it reports wrong numbers. crbug.com/629354. Replaced
    with Memory.Browser.Large2
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    The private working set used by the browser process. Recorded once per UMA
    ping.
  </summary>
</histogram>

<histogram name="Memory.Browser.Large2" units="MB">
  <obsolete>
    Deprecated 11/2017 Replaced with Memory.Browser.PrivateMemoryFootprint.
  </obsolete>
  <owner>bashi@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The private working set used by the browser process. Recorded once per UMA
    ping.
  </summary>
</histogram>

<histogram name="Memory.Browser.PrivateMemoryFootprint" units="MB"
    expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->

  <owner>erikchen@chromium.org</owner>
  <summary>
    A rough estimate of the private memory footprint of the browser process.
    Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.Browser.PrivateSwapFootprint" units="MB">
  <owner>erikchen@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    An amount of private memory of the browser process placed in swap (VmSwap).
    Available only on Android and Linux.
  </summary>
</histogram>

<histogram name="Memory.Browser.ResidentSet" units="MiB"
    expires_after="2019-01-31">
  <owner>fdoray@chromium.org</owner>
  <summary>
    The size of the resident memory in the browser process. This is influenced
    by factors we control (e.g. memory that is not accessed can be swapped) and
    factors we don't control (e.g. an unrelated process using a lot of memory
    can force memory in our process to be swapped). Recorded once per UMA ping
    on Windows/Linux/ChromeOS/Android.
  </summary>
</histogram>

<histogram name="Memory.Browser.SharedMemoryFootprint" units="MB">
  <owner>erikchen@chromium.org</owner>
  <summary>
    A rough estimate of the shared memory footprint of the browser process.
    Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.CachedFontAndDC">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>TBD.</summary>
</histogram>

<histogram name="Memory.Chrome" units="KB">
  <obsolete>
    Deprecated 11/2017. No direct replacement, but
    Memory.Renderer.PrivateMemoryFootprint is similar.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The private working set used by each chrome:// renderer process. Each
    process provides one sample. Recorded once per process per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.ChromeProcessCount" units="processes">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The count of active chrome:// renderer processes. Recorded once per UMA
    ping.
  </summary>
</histogram>

<histogram name="Memory.CompressibleStringCount"
    enum="CompressibleStringCountType">
  <obsolete>
    Deprecated as of Aug 2016. CompressibleString has been reverted once at
    https://crrev.com/2227933002.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <summary>
    This records the frequency with which JavaScript source strings are
    compressed and decompressed in foreground and background tabs. Compressing
    runs 10 seconds after the tab goes background and decompressing runs when
    JavaScript source string is required (e.g. V8 starts to compile). This
    measurement is a preparation to introduce CompressibleString class for
    JavaScript source strings to reduce Blink memory usage.
  </summary>
</histogram>

<histogram name="Memory.Coordinator.FreeMemoryUntilCritical" units="MB">
  <owner>bashi@chromium.org</owner>
  <summary>
    Available free memory until the system will be in a critical state. Critical
    is as defined by the OS (swapping will occur, or physical memory will run
    out, etc).
  </summary>
</histogram>

<histogram name="Memory.Coordinator.StateDuration" units="seconds">
  <obsolete>
    Obsolete as of 2/2017
  </obsolete>
  <owner>bashi@chromium.org</owner>
  <summary>Time elapsed between the global state changes.</summary>
</histogram>

<histogram name="Memory.Coordinator.StateOnCriticalNotificationReceived"
    enum="MemoryState">
  <obsolete>
    Obsolete as of 2/2017
  </obsolete>
  <owner>bashi@chromium.org</owner>
  <summary>
    The global state of memory coordinator when a critical pressure notification
    is received.
  </summary>
</histogram>

<histogram name="Memory.Coordinator.StateOnModerateNotificationReceived"
    enum="MemoryState">
  <obsolete>
    Obsolete as of 2/2017
  </obsolete>
  <owner>bashi@chromium.org</owner>
  <summary>
    The global state of memory coordinator when a moderate pressure notification
    is received.
  </summary>
</histogram>

<histogram name="Memory.Coordinator.TotalPrivate" units="MB">
  <obsolete>
    Obsolete as of 2/2017
  </obsolete>
  <owner>bashi@chromium.org</owner>
  <summary>
    The total private working set memory used by the browser and renderer
    processes when the memory coordinator changes the global memory state.
  </summary>
</histogram>

<histogram name="Memory.Coordinator.TrimMemoryLevel.Normal"
    enum="TrimMemoryLevel">
  <obsolete>
    Obsolete as of 2/2017
  </obsolete>
  <owner>bashi@chromium.org</owner>
  <summary>
    Android: Records trim memory level when the global state is NORMAL.
  </summary>
</histogram>

<histogram name="Memory.Coordinator.TrimMemoryLevel.Suspended"
    enum="TrimMemoryLevel">
  <obsolete>
    Obsolete as of 2/2017
  </obsolete>
  <owner>bashi@chromium.org</owner>
  <summary>
    Android: Records trim memory level when the global state is SUSPENDED.
  </summary>
</histogram>

<histogram name="Memory.Coordinator.TrimMemoryLevel.Throttled"
    enum="TrimMemoryLevel">
  <obsolete>
    Obsolete as of 2/2017
  </obsolete>
  <owner>bashi@chromium.org</owner>
  <summary>
    Android: Records trim memory level when the global state is THROTTLED.
  </summary>
</histogram>

<histogram name="Memory.DiscardableAllocationSize" units="KB">
  <owner>reveman@chromium.org</owner>
  <summary>
    The discardable memory allocation size in KB. Recorded each time a new
    discardable memory instance is created.
  </summary>
</histogram>

<histogram name="Memory.Experimental.Browser.EGLShaderCacheSize.Android"
    units="KB">
  <owner>ericrk@chromium.org</owner>
  <summary>
    The size of the EGL_ANDROID_blob_cache cache file on disk. Recorded once per
    Chrome launch, after the first page has loaded.
  </summary>
</histogram>

<histogram name="Memory.Experimental.Browser.PrivateMemoryFootprint.MacOS"
    units="MB">
  <obsolete>
    Deprecated 12/2017. Replaced by Memory.Browser.PrivateMemoryFootprint.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    A rough estimate of the private memory footprint of the browser process.
  </summary>
</histogram>

<histogram name="Memory.Experimental.Browser.PurgedMemory" units="MB">
  <obsolete>
    Deprecated 03/2018.
  </obsolete>
  <owner>bashi@chromium.org</owner>
  <summary>
    Amount of reclaimed memory (in terms of the private working set size) after
    a purge request on the browser process. Recorded 2 seconds after the purge
    request.
  </summary>
</histogram>

<histogram base="true" name="Memory.Experimental.Browser2" units="MB"
    expires_after="2019-12-31">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" -->

  <owner>erikchen@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    The browser process's memory usage reported by the memory instrumentation
    service in MB.
  </summary>
</histogram>

<histogram base="true" name="Memory.Experimental.Browser2.Small" units="KB"
    expires_after="2019-12-31">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorSmall2" -->

  <owner>erikchen@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    The browser process's memory usage reported by the memory instrumentation
    service in KB.
  </summary>
</histogram>

<histogram name="Memory.Experimental.CompressedPagesPerSecond" units="pages/s">
  <owner>bashi@chromium.org</owner>
  <summary>
    The number of pages compressed per second. Recorded every 60 seconds. Only
    recorded on macOS.
  </summary>
</histogram>

<histogram name="Memory.Experimental.Debug.FailedProcessDumpsPerGlobalDump"
    units="failures">
  <owner>ssid@chromium.org</owner>
  <owner>erikchen@chromium.org</owner>
  <summary>
    Records how many failed process dumps there were for a given global dump
    completed by the memory instrumentation service
    (resource_coordinator/memory_instrumentation/coordinator_impl.h). This is
    recorded once each time a global dump request is completed.
  </summary>
</histogram>

<histogram name="Memory.Experimental.Debug.GlobalDumpDuration" units="ms">
  <owner>ssid@chromium.org</owner>
  <owner>erikchen@chromium.org</owner>
  <summary>
    Records how long it took the memory instrumentation service
    (resource_coordinator/memory_instrumentation/coordinator_impl.h) from
    starting working on a global memory dump request until complating that
    request. This does not include queuing time (requests are handled serially).
    This is recorded once each time a request is completed.
  </summary>
</histogram>

<histogram name="Memory.Experimental.Debug.GlobalDumpQueueLength"
    units="requests">
  <owner>ssid@chromium.org</owner>
  <owner>erikchen@chromium.org</owner>
  <summary>
    Number of global memory dump requests queued in by the memory
    instrumentation service
    (resource_coordinator/memory_instrumentation/coordinator_impl.h). This
    includes the request currently being worked on if any. This is recorded once
    each time a new request is queued. This happens at least once per UMA ping
    to in order to compute Memory.Experimental.Renderer2,
    Memory.Experimental.Browser2 etc.
  </summary>
</histogram>

<histogram name="Memory.Experimental.DecompressedPagesPerSecond"
    units="pages/s">
  <owner>bashi@chromium.org</owner>
  <summary>
    The number of pages decompressed per second. Recorded every 60 seconds. Only
    recorded on macOS.
  </summary>
</histogram>

<histogram name="Memory.Experimental.Extension.PrivateMemoryFootprint.MacOS"
    units="MB">
  <obsolete>
    Deprecated 12/2017. Replaced by Memory.Extension.PrivateMemoryFootprint.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    A rough estimate of the private memory footprint of an extension process.
  </summary>
</histogram>

<histogram base="true" name="Memory.Experimental.Extension2" units="MB">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" -->

  <owner>erikchen@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    The extension process's memory usage reported by the memory instrumentation
    service in MB.
  </summary>
</histogram>

<histogram base="true" name="Memory.Experimental.Extension2.Small" units="KB">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorSmall2" -->

  <owner>erikchen@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    The extension process's memory usage reported by the memory instrumentation
    service in KB.
  </summary>
</histogram>

<histogram name="Memory.Experimental.Gpu.PhysicalFootprint.MacOS" units="MB">
  <owner>erikchen@chromium.org</owner>
  <summary>
    The physical footprint of the GPU process on macOS. Other measurements fail
    to correctly account for OpenGL memory usage. This metric also has flaws and
    is not intended for permanent use. It's an emergency measure added to help
    debug https://crbug.com/713854. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.Experimental.Gpu.PrivateMemoryFootprint.MacOS"
    units="MB">
  <obsolete>
    Deprecated 12/2017. Replaced by Memory.Gpu.PrivateMemoryFootprint.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    A rough estimate of the private memory footprint of the GPU process.
  </summary>
</histogram>

<histogram base="true" name="Memory.Experimental.Gpu2" units="MB"
    expires_after="2019-12-31">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" -->

  <owner>erikchen@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    The gpu process's memory usage reported by the memory instrumentation
    service in MB.
  </summary>
</histogram>

<histogram base="true" name="Memory.Experimental.Gpu2.Small" units="KB"
    expires_after="2019-12-31">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorSmall2" -->

  <owner>erikchen@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    The gpu process's memory usage reported by the memory instrumentation
    service in KB.
  </summary>
</histogram>

<histogram name="Memory.Experimental.OomIntervention.BrowserMonitorStatus"
    enum="OomInterventionBrowserMonitorStatus">
  <obsolete>
    Deprecated 08/2018. Made a decision in issue 871507 that we no longer need
    this data.
  </obsolete>
  <owner>ssid@chromium.org</owner>
  <summary>
    Records the status of OOM intervention if the feature is turned on, with
    various reasons for failure, in the browser process. Recorded once at
    browser startup.
  </summary>
</histogram>

<histogram name="Memory.Experimental.OomIntervention.InterventionStateOnCrash"
    enum="OomInterventionUserDecision">
  <owner>bashi@chromium.org</owner>
  <summary>
    Records state of the intervention (accepted or declined) when the foreground
    renderer is crashed after near-OOM intervention is triggered.
  </summary>
</histogram>

<histogram
    name="Memory.Experimental.OomIntervention.NavigationAfterDetectionTime"
    units="ms">
  <owner>bashi@chromium.org</owner>
  <summary>
    Records the time elapsed between a near-OOM detection and when a navigation
    is started.
  </summary>
</histogram>

<histogram name="Memory.Experimental.OomIntervention.NearOomDetectionEndReason"
    enum="NearOomDetectionEndReason">
  <owner>bashi@chromium.org</owner>
  <summary>
    Records the reason for stopping near-OOM detection. This isn't recorded when
    a near-OOM situation was detected.
  </summary>
</histogram>

<histogram
    name="Memory.Experimental.OomIntervention.OomProtectedCrashAfterDetectionTime"
    units="ms">
  <owner>bashi@chromium.org</owner>
  <summary>
    Records the time elapsed between a near-OOM detection and when an OOM
    protected renderer was crashed.
  </summary>
</histogram>

<histogram
    name="Memory.Experimental.OomIntervention.ReducedBlinkUsageAfter10secs"
    units="MB">
  <owner>yuzus@chromium.org</owner>
  <summary>
    Reduced amount of blink usage after 10 seconds of intervention.
  </summary>
</histogram>

<histogram
    name="Memory.Experimental.OomIntervention.ReducedBlinkUsageAfter20secs"
    units="MB">
  <owner>yuzus@chromium.org</owner>
  <summary>
    Reduced amount of blink usage after 20 seconds of intervention.
  </summary>
</histogram>

<histogram
    name="Memory.Experimental.OomIntervention.ReducedBlinkUsageAfter30secs"
    units="MB">
  <owner>yuzus@chromium.org</owner>
  <summary>
    Reduced amount of blink usage after 30 seconds of intervention.
  </summary>
</histogram>

<histogram
    name="Memory.Experimental.OomIntervention.ReducedRendererPMFAfter10secs"
    units="MB">
  <owner>yuzus@chromium.org</owner>
  <summary>
    Reduced amount of renderer pmf after 10 seconds of intervention.
  </summary>
</histogram>

<histogram
    name="Memory.Experimental.OomIntervention.ReducedRendererPMFAfter20secs"
    units="MB">
  <owner>yuzus@chromium.org</owner>
  <summary>
    Reduced amount of renderer pmf after 20 seconds of intervention.
  </summary>
</histogram>

<histogram
    name="Memory.Experimental.OomIntervention.ReducedRendererPMFAfter30secs"
    units="MB">
  <owner>yuzus@chromium.org</owner>
  <summary>
    Reduced amount of renderer pmf after 30 seconds of intervention.
  </summary>
</histogram>

<histogram name="Memory.Experimental.OomIntervention.RendererBlinkUsage"
    units="MB">
  <owner>yuzus@chromium.org</owner>
  <summary>
    The renderer process's memory usage reported every second when OOM
    intervention is enabled.
  </summary>
</histogram>

<histogram name="Memory.Experimental.OomIntervention.RendererBlinkUsageAtOOM"
    units="MB">
  <owner>ssid@chromium.org</owner>
  <summary>
    The renderer process' Blink memory usage, as sum of V8, PartitionAlloc and
    BlinkGC allocations, when a foreground OOM occurs. This was last recorded
    metric by renderer a few seconds before getting killed.
  </summary>
</histogram>

<histogram name="Memory.Experimental.OomIntervention.RendererEnabledStatus"
    enum="OomInterventionRendererStatus">
  <obsolete>
    Deprecated 08/2018. Made a decision in issue 871507 that we no longer need
    this data.
  </obsolete>
  <owner>ssid@chromium.org</owner>
  <summary>
    Records the status of OOM intervention in renderer process if the feature is
    turned on, with various reasons for failure. Recorded at each navigation or
    reload.
  </summary>
</histogram>

<histogram
    name="Memory.Experimental.OomIntervention.RendererGoneAfterDetectionTime"
    units="ms">
  <owner>bashi@chromium.org</owner>
  <summary>
    Records the time elapsed between a near-OOM detection and when a foreground
    renderer process was gone. This histogram does not contain OOM protected
    crashes.
  </summary>
</histogram>

<histogram
    name="Memory.Experimental.OomIntervention.RendererPrivateMemoryFootprint"
    units="MB">
  <owner>yuzus@chromium.org</owner>
  <summary>
    The renderer process's PMF size reported every second when OOM intervention
    is enabled.
  </summary>
</histogram>

<histogram
    name="Memory.Experimental.OomIntervention.RendererPrivateMemoryFootprintAtOOM"
    units="MB">
  <owner>ssid@chromium.org</owner>
  <owner>bashi@chromium.org</owner>
  <summary>
    The renderer process' private memory footprint when a foreground OOM occurs.
    This was last recorded metric by renderer a few seconds before getting
    killed.
  </summary>
</histogram>

<histogram name="Memory.Experimental.OomIntervention.RendererSwapFootPrint"
    units="MB">
  <owner>yuzus@chromium.org</owner>
  <summary>
    The renderer process's swap size reported every second when OOM intervention
    is enabled.
  </summary>
</histogram>

<histogram
    name="Memory.Experimental.OomIntervention.RendererSwapFootprintAtOOM"
    units="MB">
  <owner>ssid@chromium.org</owner>
  <owner>bashi@chromium.org</owner>
  <summary>
    The renderer process' swap size when a foreground OOM occurs. This was last
    recorded metric by renderer a few seconds before getting killed.
  </summary>
</histogram>

<histogram
    name="Memory.Experimental.OomIntervention.RendererTimeSinceLastNavigationAtDetection"
    units="seconds" expires_after="2019-07-31">
  <owner>yuzus@chromium.org</owner>
  <owner>keishi@chromium.org</owner>
  <summary>
    Records the time since last main frame navigation start on the renderer
    process when high memory usage is detected. Record only when navigation
    happened at least once.
  </summary>
</histogram>

<histogram
    name="Memory.Experimental.OomIntervention.RendererTimeSinceLastNavigationAtIntervention"
    units="seconds">
  <obsolete>
    Deprecated 1/2019 because RendererTimeSinceLastNavigationAtDetection
    replaced this metric by expanding coverage to include detection-only mode.
  </obsolete>
  <owner>yuzus@chromium.org</owner>
  <summary>
    Records the time since last main frame navigation start on the renderer
    process when intervention is triggered. Record only when navigation happened
    at least once.
  </summary>
</histogram>

<histogram
    name="Memory.Experimental.OomIntervention.RendererTimeSinceLastNavigationAtOOM"
    units="seconds">
  <owner>ssid@chromium.org</owner>
  <owner>haraken@chromium.org</owner>
  <summary>
    Records the time since last main frame navigation start on the renderer
    process when it OOMs in foreground visible state. Record 0 if no navigation
    was started.
  </summary>
</histogram>

<histogram
    name="Memory.Experimental.OomIntervention.RendererTimeSinceStartMonitoringAtDetection"
    units="seconds" expires_after="2019-07-31">
  <owner>yuzus@chromium.org</owner>
  <owner>keishi@chromium.org</owner>
  <summary>
    Records the time since starting monitor on renderer when high memory usage
    is detected.
  </summary>
</histogram>

<histogram name="Memory.Experimental.OomIntervention.RendererVMSize" units="MB">
  <owner>yuzus@chromium.org</owner>
  <summary>
    The renderer process's virtual memory usage reported every second when OOM
    intervention is enabled.
  </summary>
</histogram>

<histogram name="Memory.Experimental.OomIntervention.RendererVmSizeAtOOM"
    units="MB" expires_after="2018-06-12">
  <obsolete>
    Replaced by Memory.Experimental.OomIntervention.RendererVmSizeAtOOMLarge.
  </obsolete>
  <owner>ssid@chromium.org</owner>
  <summary>
    The renderer process' virtual memory usage, when a foreground OOM occurs.
    This was last recorded metric by renderer a few seconds before getting
    killed.
  </summary>
</histogram>

<histogram name="Memory.Experimental.OomIntervention.RendererVmSizeAtOOMLarge"
    units="MB">
  <owner>ssid@chromium.org</owner>
  <owner>bashi@chromium.org</owner>
  <summary>
    The renderer process' virtual memory usage, when a foreground OOM occurs.
    This was last recorded metric by renderer a few seconds before getting
    killed.
  </summary>
</histogram>

<histogram name="Memory.Experimental.OomIntervention.UserDecision"
    enum="OomInterventionUserDecision">
  <owner>bashi@chromium.org</owner>
  <summary>Records user decisions on near-OOM intervention.</summary>
</histogram>

<histogram base="true" name="Memory.Experimental.Renderer" units="MB">
<!-- Name completed by histogram_suffixes name="RendererMemoryAllocator" -->

  <owner>keishi@chromium.org</owner>
  <summary>
    The renderer process's memory usage at the specific timing, i.e. after a
    page load and 5/10/15minutes after backgrounded.
  </summary>
</histogram>

<histogram name="Memory.Experimental.Renderer.LoadsInMainFrameDuringUptime"
    units="loads">
  <owner>keishi@chromium.org</owner>
  <summary>
    The number of loads in a main frame during the lifetime of a render process
    (excludes extensions). Emitted when the processes quits.
  </summary>
</histogram>

<histogram name="Memory.Experimental.Renderer.PrivateMemoryFootprint.MacOS"
    units="MB">
  <obsolete>
    Deprecated 12/2017. Replaced by Memory.Renderer.PrivateMemoryFootprint.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    A rough estimate of the private memory footprint of a renderer process.
  </summary>
</histogram>

<histogram name="Memory.Experimental.Renderer.PurgedMemory" units="MB">
  <owner>bashi@chromium.org</owner>
  <summary>
    Amount of reclaimed memory (in terms of
    Memory.Experimental.Renderer.TotalAllocated) after a purge request on a
    renderer process. Recorded 2 seconds after the purge request.
  </summary>
</histogram>

<histogram name="Memory.Experimental.Renderer.Uptime" units="ms">
  <owner>keishi@chromium.org</owner>
  <summary>
    The uptime of a render process in time ticks (excludes extensions). Emitted
    when the processes quits.
  </summary>
</histogram>

<histogram base="true" name="Memory.Experimental.Renderer2" units="MB"
    expires_after="2019-12-31">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" -->

  <owner>erikchen@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    The renderer process's memory usage reported by the memory instrumentation
    service in MB.
  </summary>
</histogram>

<histogram base="true" name="Memory.Experimental.Renderer2.Small" units="KB"
    expires_after="2019-12-31">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorSmall2" -->

  <owner>erikchen@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    The renderer process's memory usage reported by the memory instrumentation
    service in KB.
  </summary>
</histogram>

<histogram name="Memory.Experimental.SwapInPerSecond" units="swaps/s">
  <owner>bashi@chromium.org</owner>
  <summary>
    The number of swap-ins per second. Recorded every 60 seconds.
  </summary>
</histogram>

<histogram name="Memory.Experimental.SwapOutPerSecond" units="swaps/s">
  <owner>bashi@chromium.org</owner>
  <summary>
    The number of swap-outs per second. Recorded every 60 seconds.
  </summary>
</histogram>

<histogram name="Memory.Experimental.SwapThrashingLevel"
    enum="SwapThrashingLevel">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The swap thrashing level, which is recorded periodically. This shows the
    cumulative number of seconds that systems spend in each of the swap
    thrashing states. Only available on Windows.
  </summary>
</histogram>

<histogram name="Memory.Experimental.SwapThrashingLevelChanges"
    enum="SwapThrashingLevelChanges">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The number of swap-thrashing level state changes for each possible pairwise
    state change. Only available on Windows.
  </summary>
</histogram>

<histogram name="Memory.Experimental.Total2.PrivateMemoryFootprint" units="MB">
  <owner>erikchen@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    A rough estimate of the private memory footprint of all processes.
  </summary>
</histogram>

<histogram base="true" name="Memory.Experimental.Utility2" units="MB"
    expires_after="2019-12-31">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" -->

  <owner>erikchen@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    The utility process's memory usage reported by the memory instrumentation
    service in MB. Recorded once per UMA ping for each process.
  </summary>
</histogram>

<histogram base="true" name="Memory.Experimental.Utility2.Small" units="KB"
    expires_after="2019-12-31">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorSmall2" -->

  <owner>erikchen@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    The utility process's memory usage reported by the memory instrumentation
    service in KB. Recorded once per UMA ping for each process.
  </summary>
</histogram>

<histogram name="Memory.Experimental.WMIRefresher.Init.AddEnumDuration"
    units="ms" expires_after="2019-09-30">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The time it takes for the call to |AddEnum| to complete during the
    initialization of the WMI Refresher.
  </summary>
</histogram>

<histogram
    name="Memory.Experimental.WMIRefresher.Init.CoCreateInstanceDuration"
    units="ms" expires_after="2019-09-30">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The time it takes for the call to |CoCreateInstance| to complete during the
    initialization of the WMI Refresher.
  </summary>
</histogram>

<histogram
    name="Memory.Experimental.WMIRefresher.Init.CreateLocalWmiConnectionDuration"
    units="ms" expires_after="2019-09-30">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The time it takes for the call to |CreateLocalWmiConnection| to complete
    during the initialization of the WMI Refresher.
  </summary>
</histogram>

<histogram name="Memory.Experimental.WMIRefresher.InitDiskIdleTimeConfigStatus"
    enum="WMIRefresherInitStatus" expires_after="2019-09-30">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The result of configuring the WMIRefresher to read the disk idle time
    values.
  </summary>
</histogram>

<histogram
    name="Memory.Experimental.WMIRefresher.InitializeDiskIdleTimeConfigDuration"
    units="ms" expires_after="2019-09-30">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The time it takes to initialize the disk idle config in the WMI Refresher.
  </summary>
</histogram>

<histogram name="Memory.Experimental.WMIRefresher.RefreshDiskIdleTimeDuration"
    units="ms" expires_after="2019-09-30">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The time it takes to do a refresh of the disk idle time value in the WMI
    Refresher.
  </summary>
</histogram>

<histogram name="Memory.Experimental.WMIRefresher.RefreshDiskIdleTimeStatus"
    enum="WMIRefresherRefreshStatus" expires_after="2019-09-30">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The result of refreshing the disk idle time value in the WMIRefresher.
  </summary>
</histogram>

<histogram name="Memory.Extension" units="KB">
  <obsolete>
    Deprecated 11/2017. Replaced by Memory.Extension.PrivateMemoryFootprint.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The private working set used by each extension process. Each process
    provides one sample. Recorded once per process per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.Extension.PrivateMemoryFootprint" units="MB"
    expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->

  <owner>erikchen@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    A rough estimate of the private memory footprint of the extension process.
    Recorded once per process per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.Extension.ResidentSet" units="MiB"
    expires_after="2019-01-31">
  <owner>fdoray@chromium.org</owner>
  <summary>
    The size of the resident memory in an extension process. This is influenced
    by factors we control (e.g. memory that is not accessed can be swapped) and
    factors we don't control (e.g. an unrelated process using a lot of memory
    can force memory in our process to be swapped). Recorded once per UMA ping
    on Windows/Linux/ChromeOS/Android.
  </summary>
</histogram>

<histogram name="Memory.Extension.SharedMemoryFootprint" units="MB">
  <owner>erikchen@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    A rough estimate of the shared memory footprint of the extension process.
    Recorded once per process per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.ExtensionProcessCount" units="processes">
  <owner>creis@chromium.org</owner>
  <owner>nasko@chromium.org</owner>
  <summary>
    The count of active extension processes. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.GlyphPagesPerLoad">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The number of glyph pages present in the renderer when it commits a load.
    Since this is per-sub-process, you can get the average number of glyph pages
    in the system by multiplying this number with the average number of
    renderers. Note that this typically won't count the glyph pages added as a
    result of the load that just committed, since layout will happen after the
    commit. There are 512 bytes per glyph page, but this number also very
    closely approximates the number of glyph width map pages in the same
    renderer. The only difference is that if you have font fallback, it will
    make a new glyph page and no width page, but in most common cases there is
    no fallback). Width pages are 1K each (256 floats), so you could think of
    this value as being the number of &quot;1.5K units related to glyphs per
    renderer per page load&quot;.
  </summary>
</histogram>

<histogram name="Memory.Gpu" units="KB">
  <obsolete>
    Deprecated 11/2017. Replaced by Memory.Gpu.PrivateMemoryFootprint.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>jamescook@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The private working set used by the GPU process. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.Gpu.PrivateMemoryFootprint" units="MB"
    expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->

  <owner>erikchen@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    A rough estimate of the private memory footprint of the gpu process.
    Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.Gpu.PrivateSwapFootprint" units="MB">
  <owner>erikchen@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    An amount of private memory of the GPU process placed in swap (VmSwap).
    Available only on Android and Linux.
  </summary>
</histogram>

<histogram name="Memory.Gpu.ResidentSet" units="MiB" expires_after="2019-01-31">
  <owner>fdoray@chromium.org</owner>
  <summary>
    The size of the resident memory in the GPU process. This is influenced by
    factors we control (e.g. memory that is not accessed can be swapped) and
    factors we don't control (e.g. an unrelated process using a lot of memory
    can force memory in our process to be swapped). Recorded once per UMA ping
    on Windows/Linux/ChromeOS/Android.
  </summary>
</histogram>

<histogram name="Memory.Gpu.SharedMemoryFootprint" units="MB">
  <owner>erikchen@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    A rough estimate of the shared memory footprint of the gpu process. Recorded
    once per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.Graphics" units="MB">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>erikchen@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    System-wide graphics driver memory consumption. Recorded on Chrome OS for
    platforms where it is exposed by the kernel (for example, Intel i915 and
    Exynos Mali). Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.IPCChannelReader.ReceivedMessageSize" units="bytes">
  <obsolete>
    Obsolete as of 11/2015
  </obsolete>
  <owner>ssid@chromium.org</owner>
  <summary>Size of messages received by IPC::ChannelReader.</summary>
</histogram>

<histogram name="Memory.MovableStringParkingAction" enum="ParkingAction">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Recorded each time a Movable String is (un)parked, with the context:
    foreground/background.
  </summary>
</histogram>

<histogram name="Memory.MovableStringsCount" units="count">
  <owner>lizeb@chromium.org</owner>
  <summary>
    This records the number of movable Javascript source string resources in a
    given renderer, at the time page is backgrounded. Recorded alongside
    Memory.MovableStringsTotalSizeKb.
  </summary>
</histogram>

<histogram name="Memory.MovableStringsTotalSizeKb" units="KB">
  <owner>lizeb@chromium.org</owner>
  <summary>
    This records the total size of movable Javascript source string resources in
    a given renderer, at the time page is backgrounded. Recorded alongside
    Memory.MovableStringsCount.
  </summary>
</histogram>

<histogram name="Memory.NativeClient" units="KB">
  <obsolete>
    Deprecated 11/2017. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The private working set used by each Native Client loader process. Each
    process provides one sample. Recorded once per process per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.NativeClientBroker" units="KB">
  <obsolete>
    Deprecated 11/2017. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The private working set used by each Native Client broker process. Each
    process provides one sample. Recorded once per process per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.NativeLibrary.MappedAndResidentMemoryFootprint"
    units="KB" expires_after="2019-07-01">
  <owner>msalama@google.com</owner>
  <owner>lizeb@chromium.org</owner>
  <summary>
    The size of the resident memory for the native library code across all
    processes. This metric is computed by parsing proc/self/pagemap and counting
    native library pages that are mapped and present in RAM for at least one
    Chrome process. Recorded once per UMA ping. Available only on Android.
  </summary>
</histogram>

<histogram name="Memory.OOMKill.Contents.MemAllocatedMB" units="MB">
  <owner>oshima@chromium.org</owner>
  <summary>
    System-wide memory allocation right after a renderer was killed by
    oom-killer, roughly equivalent to the sum of memory allocated with malloc()
    in userspace plus graphics driver memory.
  </summary>
</histogram>

<histogram name="Memory.OOMKill.Contents.MemAvailableMB" units="MB">
  <owner>oshima@chromium.org</owner>
  <summary>
    System-wide file-backed memory plus free memory right after a renderer was
    killed by oom-killer, which should be smaller than or close to what the
    kernel uses to trigger low-memory notifications for tab discards. If this is
    higher than the kernel's threshold for tab discards, renderers may be killed
    due to reasons other than out-of-memory.
  </summary>
</histogram>

<histogram name="Memory.OOMKill.Contents.MemGraphicsMB" units="MB">
  <owner>oshima@chromium.org</owner>
  <summary>
    Graphics driver (GEM object) memory right after a renderer was killed by
    oom-killer.
  </summary>
</histogram>

<histogram name="Memory.OOMKill.Contents.MemShmemMB" units="MB">
  <owner>oshima@chromium.org</owner>
  <summary>
    System-wide shared memory right after a renderer was killed by oom-killer.
    Used primarily for shared buffers in the graphics system. Tracked because
    it's a historical source of leaks on Chrome OS.
  </summary>
</histogram>

<histogram name="Memory.OOMKill.Extensions.MemAllocatedMB" units="MB">
  <owner>oshima@chromium.org</owner>
  <summary>
    System-wide memory allocation right after a renderer was killed by
    oom-killer, roughly equivalent to the sum of memory allocated with malloc()
    in userspace plus graphics driver memory.
  </summary>
</histogram>

<histogram name="Memory.OOMKill.Extensions.MemAvailableMB" units="MB">
  <owner>oshima@chromium.org</owner>
  <summary>
    System-wide file-backed memory plus free memory right after a renderer was
    killed by oom-killer, which should be smaller than or close to what the
    kernel uses to trigger low-memory notifications for tab discards. If this is
    higher than the kernel's threshold for tab discards, renderers may be killed
    due to reasons other than out-of-memory.
  </summary>
</histogram>

<histogram name="Memory.OOMKill.Extensions.MemGraphicsMB" units="MB">
  <owner>oshima@chromium.org</owner>
  <summary>
    Graphics driver (GEM object) memory right after a renderer was killed by
    oom-killer.
  </summary>
</histogram>

<histogram name="Memory.OOMKill.Extensions.MemShmemMB" units="MB">
  <owner>oshima@chromium.org</owner>
  <summary>
    System-wide shared memory right after a renderer was killed by oom-killer.
    Used primarily for shared buffers in the graphics system. Tracked because
    it's a historical source of leaks on Chrome OS.
  </summary>
</histogram>

<histogram base="true" name="Memory.OpenFDs" units="files">
<!-- Name completed by histogram_suffixes name="MemoryFDsBroswerGpuAndRendererProcess" and name="MemoryFDsAllProcesses" -->

  <owner>dcastagna@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    The total number of open file descriptors opened per process. Recorded once
    per UMA ping.
  </summary>
</histogram>

<histogram base="true" name="Memory.OpenFDsSoftLimit" units="files">
<!-- Name completed by histogram_suffixes name="MemoryFDsBroswerGpuAndRendererProcess" -->

  <owner>dcastagna@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    The limit of open file descriptors that can be opened per process. Recorded
    once per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.OtherProcessCount" units="processes">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The count of other various utility processes (nacl, gpu, sandbox, zygote,
    utility). Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.ParkableString.CompressedSizeKb" units="KB">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Total size of compressed ParkableStrings, in KB. Recorded at the same time
    as &quot;Memory.ParkableString.TotalSizeKb&quot;.
  </summary>
</histogram>

<histogram name="Memory.ParkableString.Compression.Latency"
    units="microseconds">
  <owner>lizeb@chromium.org</owner>
  <summary>Time to compress a parkable string, in ms.</summary>
</histogram>

<histogram name="Memory.ParkableString.Compression.SizeKb" units="KB">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Size of a compressed parkable string, recorded at compression time.
  </summary>
</histogram>

<histogram name="Memory.ParkableString.Compression.ThroughputMBps" units="MBps">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Size of a compressed parkable string, recorded at compression time.
  </summary>
</histogram>

<histogram name="Memory.ParkableString.CompressionRatio" units="%">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Average compression ratio, 100 * compressed_size / initial_size, for all
    compressed ParkableStrings. Recorded at the same time as
    &quot;Memory.ParkableString.TotalSizeKb&quot;.
  </summary>
</histogram>

<histogram name="Memory.ParkableString.CompressionRatio.5min" units="%"
    expires_after="2019-07-31">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Average compression ratio, 100 * compressed_size / initial_size, for all
    compressed ParkableStrings. Recorded at the same time as
    &quot;Memory.ParkableString.TotalSizeKb.5min&quot;.
  </summary>
</histogram>

<histogram name="Memory.ParkableString.Decompression.Latency"
    units="microseconds">
  <owner>lizeb@chromium.org</owner>
  <summary>Time to decompress a parkable string, in ms.</summary>
</histogram>

<histogram name="Memory.ParkableString.Decompression.SizeKb" units="KB">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Original size of a compressed parkable string, recorded at decompression
    time.
  </summary>
</histogram>

<histogram name="Memory.ParkableString.Decompression.ThroughputMBps"
    units="MBps">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Original size of a compressed parkable string, recorded at decompression
    time.
  </summary>
</histogram>

<histogram name="Memory.ParkableString.MainThreadTime.5min" units="ms"
    expires_after="2019-07-31">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Total main thread time used by ParkableStrings over the first 5 minutes of a
    renderer lifetime. Starting time is from the first ParkableString being
    added.
  </summary>
</histogram>

<histogram name="Memory.ParkableString.SavingsKb" units="KB">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Sum of memory saved by compression, in KB. Recorded at the same time as
    &quot;Memory.ParkableString.TotalSizeKb&quot;.
  </summary>
</histogram>

<histogram name="Memory.ParkableString.SavingsKb.5min" units="KB"
    expires_after="2019-07-31">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Sum of memory saved by compression, in KB. Recorded at the same time as
    &quot;Memory.ParkableString.TotalSizeKb.5min&quot;.
  </summary>
</histogram>

<histogram name="Memory.ParkableString.TotalSizeKb" units="KB">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Total size of ParkableStrings assuming no compression, in KB. Recorded 30s
    after compression was triggered, provided that the renderer stayed
    backgrounded.
  </summary>
</histogram>

<histogram name="Memory.ParkableString.TotalSizeKb.5min" units="KB"
    expires_after="2019-07-31">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Total size of ParkableStrings assuming no compression, in KB. Recorded once,
    5 minutes after the first ParkableString is added to a renderer, at the same
    time as &quot;Memory.ParkableString.MainThreadTime.5min&quot;.
  </summary>
</histogram>

<histogram name="Memory.PepperFlashPlugin" units="KB">
  <obsolete>
    Deprecated 11/2017. No direct replacement.
  </obsolete>
  <owner>thestig@chromium.org</owner>
  <summary>
    The private working set used by each Pepper Flash plugin process. Each
    plugin process provides one sample. Recorded once per process per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.PepperPlugin" units="KB">
  <obsolete>
    Deprecated 11/2017. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The private working set used by each Pepper plugin process. Each plugin
    process provides one sample. Recorded once per process per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.PepperPluginBroker" units="KB">
  <obsolete>
    Deprecated 11/2017. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The private working set used by each Pepper plugin broker process. Each
    process provides one sample. Recorded once per process per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.PepperPluginBrokerProcessCount" units="processes">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The count of Pepper plugin broker processes, recorded once per metrics
    services (UMA) update. See MetricsReportingScheduler for details.
  </summary>
</histogram>

<histogram name="Memory.PepperPluginProcessCount" units="processes">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The count of active Pepper plugin processes. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.Plugin" units="KB">
  <obsolete>
    Deprecated due to NPAPI removal.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The private working set used by each plugin process. Each plugin process
    provides one sample. Recorded once per process per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.PluginProcessCount" units="processes">
  <obsolete>
    Deprecated due to NPAPI removal.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The count of active plugin processes. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.PressureLevel" enum="MemoryPressureLevel">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The memory pressure level, which is recorded periodically. This shows the
    cumulative number of seconds that systems spend in each of the memory
    pressure states.
  </summary>
</histogram>

<histogram name="Memory.PressureLevelChanges" enum="MemoryPressureLevelChanges">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The number of pressure level state changes for each possible pairwise state
    change.
  </summary>
</histogram>

<histogram name="Memory.ProcessCount" units="processes">
  <owner>creis@chromium.org</owner>
  <owner>nasko@chromium.org</owner>
  <summary>
    The count of all active processes. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.ProcessLimit">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>The current process limit. Recorded once per UMA ping.</summary>
</histogram>

<histogram name="Memory.Renderer" units="KB">
  <obsolete>
    Deprecated 06/2016 Replaced with Memory.Renderer.Large2.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The private working set used by each renderer process. Each renderer process
    provides one sample. Recorded once per UMA ping. TODO(rkaplow): This should
    be replaced with Memory.Renderer.Large2 in M54.
  </summary>
</histogram>

<histogram name="Memory.Renderer.Committed" units="MB">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>bashi@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The total committed memory used by each renderer process. Each renderer
    process provides one sample. Recorded once per process per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.Renderer.EstimatedDroppableEncodedSize" units="KB">
  <owner>hajimehoshi@chromium.org</owner>
  <summary>
    The esitimated memory size which would be reduced when reusing disk cache is
    implemented. If it is 100% sure that the encoded data is in disk cache, the
    same data in memory can be dropped to reduce memory usage. This is rencorded
    when an ImageResource is pruned. See crbug/664437.
  </summary>
</histogram>

<histogram name="Memory.Renderer.Large2" units="MB">
  <obsolete>
    Deprecated 11/2017. Replaced by Memory.Renderer.PrivateMemoryFootprint.
  </obsolete>
  <owner>bashi@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The private working set used by each renderer process. Each renderer process
    provides one sample. Recorded once per process per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.Renderer.PrivateMemoryFootprint" units="MB"
    expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->

  <owner>erikchen@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    A rough estimate of the private memory footprint of the renderer process.
    Recorded once per process per UMA ping.

    Do not modify this metric in any way without contacting
    speed-metrics-dev@chromium.org.
  </summary>
</histogram>

<histogram name="Memory.Renderer.ResidentSet" units="MiB"
    expires_after="2019-01-31">
  <owner>fdoray@chromium.org</owner>
  <summary>
    The size of the resident memory in a renderer process. This is influenced by
    factors we control (e.g. memory that is not accessed can be swapped) and
    factors we don't control (e.g. an unrelated process using a lot of memory
    can force memory in our process to be swapped). Recorded once per UMA ping
    on Windows/Linux/ChromeOS/Android.
  </summary>
</histogram>

<histogram name="Memory.Renderer.SharedMemoryFootprint" units="MB">
  <owner>erikchen@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    A rough estimate of the shared memory footprint of the renderer process.
    Recorded once per process per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.RendererAll" units="MB">
  <obsolete>
    Deprecated 11/2017. No direct replacement, although
    Memory.Total.PrivateMemoryFootprint is similar.
  </obsolete>
  <owner>bashi@chromium.org</owner>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>tasak@chromium.org</owner>
  <summary>
    The private working set used by each renderer process, including all
    renderer types, i.e. this includes Chrome renderer, extensions renderer, as
    well as regular renderer processes. Each renderer process provides one
    sample. Recorded once per process per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.RendererAll.Committed" units="MB">
  <obsolete>
    Deprecated 01/2018. No direct replacement, although
    Memory.Total.PrivateMemoryFootprint is similar.
  </obsolete>
  <owner>bashi@chromium.org</owner>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>tasak@chromium.org</owner>
  <summary>
    The total committed memory used by each renderer process, including all
    renderer types, i.e. this includes Chrome renderer, extensions renderer, as
    well as regular renderer processes. Each renderer process provides one
    sample. Recorded once per process per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.RendererGrowthIn30Min" units="KB">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Growth speed of the private working set used by each renderer process per 30
    minutes. The usage and growth speed is recorded at most every 30 minutes,
    not every exact 30 minutes. If the interval is longer than 30 minutes, it is
    normalized to a speed KB per 30 minutes. Each renderer process provides one
    sample. Recorded once per UMA log unless this is the first time the UMA log
    is recorded after startup of the renderer, 30 minutes have not passed from
    the last recording of the renderer or the usage goes down. If the usage goes
    down, the amount of the shrink will be recorded in the
    Memory.RendererShrinkIn30Min histogram.
  </summary>
</histogram>

<histogram name="Memory.RendererProcessCount" units="processes">
  <owner>creis@chromium.org</owner>
  <owner>nasko@chromium.org</owner>
  <summary>
    The count of active renderer processes. Recorded once per UMA ping. Excludes
    renderers hosting chrome-extension:// and/or chrome:// URLs.

    Computed based on OS data.

    WARNING: Not reliable on Android, see https://crbug.com/875400. Consider
    using Memory.RenderProcessHost.Count.* instead.
  </summary>
</histogram>

<histogram name="Memory.RendererShrinkIn30Min" units="KB">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Shrink speed of the private working set used by each renderer process per 30
    minutes. The usage and shrink speed is recorded at most every 30 minutes,
    not every exact 30 minutes. If the interval is longer than 30 minutes, it is
    normalized to a speed KB per 30 minutes. Each renderer process provides one
    sample. Recorded once per UMA log unless this is the first time the UMA log
    is recorded after startup of the renderer, 30 minutes have not passed from
    the last recording of the renderer or the usage goes up. If the usage goes
    up, the amount of the growth will be recorded in the
    Memory.RendererGrowthIn30Min histogram.
  </summary>
</histogram>

<histogram name="Memory.RenderProcessHost.Count.All" units="processes">
  <owner>alexmos@chromium.org</owner>
  <owner>creis@chromium.org</owner>
  <owner>lukasza@chromium.org</owner>
  <owner>nasko@chromium.org</owner>
  <summary>
    The count of all renderer processes. Recorded once per UMA ping. Covers all
    renderer processes, including ones hosting web content (i.e. http(s)://
    and/or file://), extensions (i.e. chrome-extension://) and WebUI (i.e.
    chrome://).

    Computed based on count of RenderProcessHost objects, even if 1) they have
    not been launched yet (e.g. during session restore) or 2) they are dead
    (e.g. killed by the browser process or the OS).
  </summary>
</histogram>

<histogram name="Memory.RenderProcessHost.Count.InitializedAndNotDead"
    units="processes">
  <owner>alexmos@chromium.org</owner>
  <owner>creis@chromium.org</owner>
  <owner>lukasza@chromium.org</owner>
  <owner>nasko@chromium.org</owner>
  <summary>
    The count of active renderer processes. Recorded once per UMA ping. Covers
    all renderer processes, including ones hosting web content (i.e. http(s)://
    and/or file://), extensions (i.e. chrome-extension://) and WebUI (i.e.
    chrome://).

    Computed based on count of RenderProcessHost objects that are
    IsInitializedAndNotDead (i.e. have been launched and not terminated yet).
  </summary>
</histogram>

<histogram name="Memory.SandboxHelper" units="KB">
  <obsolete>
    Deprecated 11/2017. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The private working set used by each sandbox helper process. Each sandbox
    helper process provides one sample. Recorded once per process per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.ShmemDir.AmountOfFreeSpace" units="MB">
  <owner>reveman@chromium.org</owner>
  <summary>
    The amount of free space in temporary directory for shared memory files.
    Recorded each time a new discardable memory manager instance is created.
  </summary>
</histogram>

<histogram name="Memory.Stats.Win.AvailPageFile" units="MB">
  <obsolete>
    Deprecated in 595320 and replaced with Memory.Stats.Win.AvailPageFile2.
  </obsolete>
  <owner>georgesak@chromium.org</owner>
  <summary>
    Windows-only metric that represents the maximum amount of memory the current
    process can commit. This value is equal to or smaller than the system-wide
    available commit value.
  </summary>
</histogram>

<histogram name="Memory.Stats.Win.AvailPageFile2" units="MB">
  <owner>georgesak@chromium.org</owner>
  <summary>
    Windows-only metric that represents the maximum amount of memory the current
    process can commit. This value is equal to or smaller than the system-wide
    available commit value.
  </summary>
</histogram>

<histogram name="Memory.Stats.Win.AvailPhys" units="MB">
  <obsolete>
    Deprecated in 595320 and replaced with Memory.Stats.Win.AvailPhys2.
  </obsolete>
  <owner>georgesak@chromium.org</owner>
  <summary>
    Windows-only metric that represents the amount of physical memory currently
    available. This is the amount of physical memory that can be immediately
    reused without having to write its contents to disk first. It is the sum of
    the size of the standby, free, and zero lists.
  </summary>
</histogram>

<histogram name="Memory.Stats.Win.AvailPhys2" units="MB">
  <owner>georgesak@chromium.org</owner>
  <summary>
    Windows-only metric that represents the amount of physical memory currently
    available. This is the amount of physical memory that can be immediately
    reused without having to write its contents to disk first. It is the sum of
    the size of the standby, free, and zero lists.
  </summary>
</histogram>

<histogram name="Memory.Stats.Win.AvailVirtual" units="MB">
  <obsolete>
    Deprecated in 595320 and replaced with Memory.Stats.Win.AvailVirtual2.
  </obsolete>
  <owner>georgesak@chromium.org</owner>
  <summary>
    Windows-only metric that represents the amount of unreserved and uncommitted
    memory currently in the user-mode portion of the virtual address space of
    the calling process.
  </summary>
</histogram>

<histogram name="Memory.Stats.Win.AvailVirtual2" units="MB">
  <owner>georgesak@chromium.org</owner>
  <summary>
    Windows-only metric that represents the amount of unreserved and uncommitted
    memory currently in the user-mode portion of the virtual address space of
    the calling process.
  </summary>
</histogram>

<histogram name="Memory.Stats.Win.MemoryLoad" units="%">
  <owner>georgesak@chromium.org</owner>
  <summary>
    Windows-only metric that represents the approximate percentage of physical
    memory that was in use (0 indicates no memory use and 100 indicates full
    memory use).
  </summary>
</histogram>

<histogram name="Memory.Stats.Win.TotalPageFile" units="MB">
  <obsolete>
    Deprecated in 595320 and replaced with Memory.Stats.Win.TotalPageFile2.
  </obsolete>
  <owner>georgesak@chromium.org</owner>
  <summary>
    Windows-only metric that represents the current committed memory limit for
    the system or the current process, whichever is smaller.
  </summary>
</histogram>

<histogram name="Memory.Stats.Win.TotalPageFile2" units="MB">
  <owner>georgesak@chromium.org</owner>
  <summary>
    Windows-only metric that represents the current committed memory limit for
    the system or the current process, whichever is smaller.
  </summary>
</histogram>

<histogram name="Memory.Stats.Win.TotalPhys" units="MB">
  <obsolete>
    Deprecated in 595320 and replaced with Memory.Stats.Win.TotalPhys2.
  </obsolete>
  <owner>georgesak@chromium.org</owner>
  <summary>
    Windows-only metric that represents the amount of actual physical memory.
  </summary>
</histogram>

<histogram name="Memory.Stats.Win.TotalPhys2" units="MB">
  <owner>georgesak@chromium.org</owner>
  <summary>
    Windows-only metric that represents the amount of actual physical memory.
  </summary>
</histogram>

<histogram name="Memory.Stats.Win.TotalVirtual" units="MB">
  <obsolete>
    Deprecated in 595320 and replaced with Memory.Stats.Win.TotalVirtual2.
  </obsolete>
  <owner>georgesak@chromium.org</owner>
  <summary>
    Windows-only metric that represents the size of the user-mode portion of the
    virtual address space of the calling process. This value depends on the type
    of process, the type of processor, and the configuration of the operating
    system. For example, this value is approximately 2 GB for most 32-bit
    processes on an x86 processor and approximately 3 GB for 32-bit processes
    that are large address aware running on a system with 4-gigabyte tuning
    enabled.
  </summary>
</histogram>

<histogram name="Memory.Stats.Win.TotalVirtual2" units="MB">
  <owner>georgesak@chromium.org</owner>
  <summary>
    Windows-only metric that represents the size of the user-mode portion of the
    virtual address space of the calling process. This value depends on the type
    of process, the type of processor, and the configuration of the operating
    system. For example, this value is approximately 2 GB for most 32-bit
    processes on an x86 processor and approximately 3 GB for 32-bit processes
    that are large address aware running on a system with 4-gigabyte tuning
    enabled.
  </summary>
</histogram>

<histogram name="Memory.Swap.Browser" units="KB">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The swap used by the browser process. Recorded once per UMA ping if the
    system has swapped.
  </summary>
</histogram>

<histogram name="Memory.Swap.Chrome" units="KB">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The swap used by each chrome:// renderer process. Each process provides one
    sample. Recorded once per process per UMA ping if the system has swapped.
  </summary>
</histogram>

<histogram name="Memory.Swap.CompressedDataSize" units="MB">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The amount of memory that swap was compressed into. Recorded once per UMA
    ping if the system has swapped.
  </summary>
</histogram>

<histogram name="Memory.Swap.CompressionRatio">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The ratio of swapped data original size to compressed size. Recorded once
    per UMA ping if the system has swapped.
  </summary>
</histogram>

<histogram name="Memory.Swap.Extension" units="KB">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The swap used by each extension process. Each process provides one sample.
    Recorded once per process per UMA ping if the system has swapped.
  </summary>
</histogram>

<histogram name="Memory.Swap.Gpu" units="KB">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The swap used by the GPU process. Recorded once per UMA ping if the system
    has swapped.
  </summary>
</histogram>

<histogram name="Memory.Swap.HaveSwapped" enum="BooleanSuccess">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Indicates that the system has swapped memory out at least once since boot.
    Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.Swap.MemUsedTotal" units="MB">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The amount of memory that is used by swap, including bookkeeping. Recorded
    once per UMA ping if the system has swapped.
  </summary>
</histogram>

<histogram name="Memory.Swap.NativeClient" units="KB">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The swap used by each Native Client loader process. Each process provides
    one sample. Recorded once per process per UMA ping if the system has
    swapped.
  </summary>
</histogram>

<histogram name="Memory.Swap.NativeClientBroker" units="KB">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The swap used by each Native Client broker process. Each process provides
    one sample. Recorded once per process per UMA ping if the system has
    swapped.
  </summary>
</histogram>

<histogram name="Memory.Swap.NumReads">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The number of reads from swap. Recorded once per UMA ping if the system has
    swapped.
  </summary>
</histogram>

<histogram name="Memory.Swap.NumWrites">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The number of writes to swap. Recorded once per UMA ping if the system has
    swapped.
  </summary>
</histogram>

<histogram name="Memory.Swap.OriginalDataSize" units="MB">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The amount of memory that was swapped out. Recorded once per UMA ping if the
    system has swapped.
  </summary>
</histogram>

<histogram name="Memory.Swap.PepperPlugin" units="KB">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The swap used by each Pepper plugin process. Each plugin process provides
    one sample. Recorded once per process per UMA ping if the system has
    swapped.
  </summary>
</histogram>

<histogram name="Memory.Swap.PepperPluginBroker" units="KB">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The swap used by each Pepper plugin broker process. Each process provides
    one sample. Recorded once per process per UMA ping if the system has
    swapped.
  </summary>
</histogram>

<histogram name="Memory.Swap.Plugin" units="KB">
  <obsolete>
    Deprecated due to NPAPI removal.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The swap used by each plugin process. Each plugin process provides one
    sample. Recorded once per process per UMA ping if the system has swapped.
  </summary>
</histogram>

<histogram name="Memory.Swap.Renderer" units="KB">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The swap used by each renderer process. Each renderer process provides one
    sample. Recorded once per process per UMA ping if the system has swapped.
  </summary>
</histogram>

<histogram name="Memory.Swap.SandboxHelper" units="KB">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The swap used by each sandbox helper process. Each sandbox helper process
    provides one sample. Recorded once per process per UMA ping if the system
    has swapped.
  </summary>
</histogram>

<histogram name="Memory.Swap.Total" units="MB">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The sum of all processes' swap. Recorded once per UMA ping if the system has
    swapped. See Memory.Swap.Total2 for the same metric with higher precision
    bucketing.
  </summary>
</histogram>

<histogram name="Memory.Swap.Total2" units="MiB">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The sum of all processes' swap. Recorded once per UMA ping if the system has
    swapped.
  </summary>
</histogram>

<histogram name="Memory.Swap.Utility" units="KB">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The swap used by each utility process. Each utility process provides one
    sample. Recorded once per process per UMA ping if the system has swapped.
  </summary>
</histogram>

<histogram name="Memory.Swap.Worker" units="KB">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The swap used by each worker process. Each worker process provides one
    sample. Recorded once per process per UMA ping if the system has swapped.
  </summary>
</histogram>

<histogram name="Memory.Swap.Zygote" units="KB">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The swap used by the zygote process. Recorded once per UMA ping if the
    system has swapped.
  </summary>
</histogram>

<histogram name="Memory.Total" units="MB">
  <obsolete>
    Deprecated 09/2016. Replaced by Memory.Total2.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The sum of all processes. This is not aware of shared memory so it is just a
    rough estimate. Recorded once per UMA ping. See Memory.Total2 for the same
    metric with higher precision bucketing.
  </summary>
</histogram>

<histogram name="Memory.Total.PrivateMemoryFootprint" units="MB"
    expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->

  <owner>erikchen@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    A rough estimate of the private memory footprint of all processes. Recorded
    once per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.Total.RendererPrivateMemoryFootprint" units="MB">
  <owner>tommckee@chromium.org</owner>
  <summary>
    A rough estimate of the private memory footprint of all renderer processes.
    Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.Total.ResidentSet" units="MiB"
    expires_after="2019-01-31">
  <owner>fdoray@chromium.org</owner>
  <summary>
    The size of the resident memory in all processes. This is influenced by
    factors we control (e.g. memory that is not accessed can be swapped) and
    factors we don't control (e.g. an unrelated process using a lot of memory
    can force memory in our process to be swapped). Recorded once per UMA ping
    on Windows/Linux/ChromeOS/Android.
  </summary>
</histogram>

<histogram name="Memory.Total.SharedMemoryFootprint" units="MB">
  <owner>erikchen@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    A rough estimate of the shared memory footprint of all processes. Recorded
    once per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.Total2" units="MiB">
  <obsolete>
    Deprecated 11/2017. Replaced by Memory.Total.PrivateMemoryFootprint.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The sum of all processes. This is not aware of shared memory so it is just a
    rough estimate. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.Utility" units="KB">
  <obsolete>
    Deprecated 11/2017. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The private working set used by each utility process. Each utility process
    provides one sample. Recorded once per process per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.Utility.PrivateMemoryFootprint" units="MB"
    expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->

  <owner>jam@chromium.org</owner>
  <summary>
    A rough estimate of the private memory footprint of the utility process.
    Recorded once per process per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.Utility.PrivateSwapFootprint" units="MB">
  <owner>jam@chromium.org</owner>
  <summary>
    An amount of private memory of the utility process placed in swap (VmSwap).
    Available only on Android and Linux.
  </summary>
</histogram>

<histogram name="Memory.Utility.ResidentSet" units="MiB"
    expires_after="2019-01-31">
  <owner>fdoray@chromium.org</owner>
  <summary>
    The size of the resident memory in a utility process. This is influenced by
    factors we control (e.g. memory that is not accessed can be swapped) and
    factors we don't control (e.g. an unrelated process using a lot of memory
    can force memory in our process to be swapped). Recorded once per UMA ping
    on Windows/Linux/ChromeOS/Android.
  </summary>
</histogram>

<histogram name="Memory.Utility.SharedMemoryFootprint" units="MB">
  <owner>jam@chromium.org</owner>
  <summary>
    A rough estimate of the shared memory footprint of the utility process.
    Recorded once per process per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.Worker" units="KB">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The private working set used by each worker process. Each worker process
    provides one sample. Recorded once per process per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.WorkerProcessCount" units="processes">
  <obsolete>
    Deprecated 03/2018. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The count of active worker processes. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="Memory.Zygote" units="KB">
  <obsolete>
    Deprecated 11/2017. No direct replacement.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The private working set used by the zygote process. Each zygote process
    provides one sample. Recorded once per process per UMA ping.
  </summary>
</histogram>

<histogram name="MemoryAndroid.DeviceMemoryClass">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Value of getMemoryClass() recorded once upon startup. This is an integer,
    device-specific constant correlated with the amount of memory available on
    Android device.
  </summary>
</histogram>

<histogram name="MemoryAndroid.EvictionReason" enum="AndroidEvictionReason">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Reasons behind evictions of individual tabs, recorded upon each tab
    eviction.
  </summary>
</histogram>

<histogram name="MemoryAndroid.LowMemoryLoadedTabCount">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Number of loaded (memory-resident) tabs when LowMemory notification is
    delivered.
  </summary>
</histogram>

<histogram name="MemoryAndroid.LowMemoryTimeBetween" units="ms">
  <obsolete>
    Deprecated 04/2018.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Time between two consecutive LowMemory notification in one foreground
    session.
  </summary>
</histogram>

<histogram name="MemoryAndroid.LowRamDevice" enum="Boolean">
  <owner>ssid@chromium.org</owner>
  <summary>
    Whether Chrome is running in low ram mode. This histogram is reported on
    every upload by Android devices. A device is considered low-RAM if it has
    512MiB of RAM or lower (see SysUtils.detectLowEndDevice()).

    Note: The low-RAM determination has changed in M-49, it used to be given
    directly by the Android OS.
  </summary>
</histogram>

<histogram name="MemoryAndroid.NotificationBackground"
    enum="AndroidMemoryNotificationBackground">
  <obsolete>
    Deprecated 04/2018 in favor of Android.MemoryPressureNotification.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Memory notifications delivered through system callbacks to Chrome while in
    the background.
  </summary>
</histogram>

<histogram name="MemoryAndroid.NotificationForeground"
    enum="AndroidMemoryNotificationForeground">
  <obsolete>
    Deprecated 04/2018 in favor of Android.MemoryPressureNotification.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Memory notifications delivered through system callbacks to Chrome while in
    the foreground - we count LowMemory notification vs particular levels of
    TrimMemory foreground notification.
  </summary>
</histogram>

<histogram name="MemoryPurgeController.ReclaimedPartitionAllocInactiveTab"
    units="KB">
  <owner>bashi@chromium.org</owner>
  <summary>The amount of reclaimed memory after a tab became inactive.</summary>
</histogram>

<histogram name="MemoryWarning.EvictedTabTimeSinceActive" units="ms">
  <obsolete>
    Deprecated as of 10/2016.
  </obsolete>
  <summary>
    [iOS] When the OS sends a memory warning and the app evicts a tab, this
    histogram records the time since the evicted tab was active.
  </summary>
</histogram>

<histogram name="MemoryWarning.OccurrencesPerSession">
  <owner>justincohen@chromium.org</owner>
  <summary>
    The number of memory warnings during a given foreground session.
  </summary>
</histogram>

<histogram name="MemoryWarning.ProtectedTabTimeSinceActive" units="ms">
  <obsolete>
    Deprecated as of 10/2016.
  </obsolete>
  <summary>
    [iOS] When the OS sends a memory warning and the app protects a tab, this
    histogram records the time since the protected tab was active.
  </summary>
</histogram>

<histogram name="MessageLoop.DelayedTaskQueue.PendingTasksCountOnIdle">
  <obsolete>
    Deprecated as of 07/2018.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    The size of the delayed task queue when the loop becomes idle. Diagnosis
    metric for https://crbug.com/850450#c4.
  </summary>
</histogram>

<histogram name="MessageLoop.DelayedTaskQueue.PostedDelay" units="ms">
  <obsolete>
    Deprecated as of 07/2018.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Reports the delay of a delayed task posted to a MessageLoop. Reported once
    per delayed task. Diagnosis metric for https://crbug.com/850450#c4.
  </summary>
</histogram>

<histogram name="MessageLoop.DelayedTaskQueueForUI.PendingTasksCountOnIdle">
  <obsolete>
    Deprecated as of 11/2018.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    The size of the delayed task queue when the loop becomes idle on a UI
    thread. Diagnosis metric for https://crbug.com/850450#c4. Note: this metric
    is a bit broken on Mac OSX as CFRunLoop doesn't deterministically invoke
    MessageLoop::DoIdleWork().
  </summary>
</histogram>

<histogram name="MessageLoop.ScheduledSleep.Completed" units="ms">
  <obsolete>
    Deprecated as of 07/2018.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Reports the delay for which the MessageLoop successfully slept until an
    upcoming delayed task. Reported each time a MessageLoop successfully sleeps
    until the next delayed task.
  </summary>
</histogram>

<histogram name="MessageLoop.ScheduledSleep.Interrupted" units="ms">
  <obsolete>
    Deprecated as of 07/2018.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Reports the delay for which the MessageLoop had planned to sleep (next
    delayed task) before it was woken up early. Reported each time a MessageLoop
    is woken up early.
  </summary>
</histogram>

<histogram name="Mist.SwitchResult" enum="MistSwitchResult">
  <owner>benchan@chromium.org</owner>
  <summary>
    The result (e.g. success or the type of failure) of a modem interface switch
    operation performed by mist on Chrome OS.
  </summary>
</histogram>

<histogram name="MixedAutoupgrade.ResourceRequest.ErrorOrResponseCode"
    enum="CombinedHttpResponseAndNetErrorCode">
  <owner>carlosil@chromium.org</owner>
  <summary>
    The net error or HTTP response code of a mixed content resource request that
    was autoupgraded to HTTPS
  </summary>
</histogram>

<histogram name="MixedAutoupgrade.ResourceRequest.Status"
    enum="MixedContentAutoupgradeStatus">
  <owner>carlosil@chromium.org</owner>
  <summary>
    The status of a mixed content resource request that was autoupgraded to
    HTTPS
  </summary>
</histogram>

<histogram name="MixedAutoupgrade.Websocket.Status"
    enum="MixedContentAutoupgradeStatus">
  <owner>carlosil@chromium.org</owner>
  <summary>
    The status of a mixed content websocket that was autoupgraded to WSS.
  </summary>
</histogram>

<histogram name="Mobile.CanonicalURLResult" enum="CanonicalURLResult">
  <owner>pkl@chromium.org</owner>
  <owner>tedchoc@chromium.org</owner>
  <summary>
    The result of the operation to retrieve the page's canonical URL.
  </summary>
</histogram>

<histogram base="true" name="Mobile.DefaultBrowser.BrowserCount">
<!-- Name completed by histogram_suffixes name="Mobile.DefaultBrowser.Type" -->

  <owner>dtrainor@chromium.org</owner>
  <summary>Android: The number of browsers installed on the device.</summary>
</histogram>

<histogram name="Mobile.DefaultBrowser.State" enum="MobileDefaultBrowserState">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Android: Whether or not the device has a default browser and whether or not
    it is a system installed browser.
  </summary>
</histogram>

<histogram base="true" name="Mobile.DefaultBrowser.SystemBrowserCount">
<!-- Name completed by histogram_suffixes
    name="Mobile.DefaultBrowser.SystemDefaultBrowser.Type" -->

  <owner>dtrainor@chromium.org</owner>
  <summary>Android: The number of system installed browsers.</summary>
</histogram>

<histogram name="Mobile.SystemNotification.Action.Click"
    enum="SystemNotificationActionType" expires_after="2020-01-22">
  <owner>dtrainor@chromium.org</owner>
  <owner>xingliu@chromium.org</owner>
  <summary>
    Records which Android notifications users interact with. Recorded when an
    user taps the button in a notification, for any Chrome-generated
    notification on Android that includes a button tap-target.
  </summary>
</histogram>

<histogram name="Mobile.SystemNotification.Blocked"
    enum="SystemNotificationType">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Android: Represents the number of system notifications that were blocked and
    could not be shown by type.
  </summary>
</histogram>

<histogram name="Mobile.SystemNotification.BlockedAfterShown"
    enum="SystemNotificationType">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Android: Represents the type of notification that was last shown before the
    user disabled notification permissions on Chrome. This is only logged the
    first time we attempt to show a notification and fail.
  </summary>
</histogram>

<histogram name="Mobile.SystemNotification.ChannelBlocked"
    enum="SystemNotificationType">
  <owner>peter@chromium.org</owner>
  <summary>
    Android: Represents the number of system notifications by type that we
    attempted to show but were blocked, due to their notification channel being
    blocked. Only applies to devices on Android O and above.
  </summary>
</histogram>

<histogram name="Mobile.SystemNotification.Content.Click"
    enum="SystemNotificationType">
  <owner>xingliu@chromium.org</owner>
  <summary>
    Records the type of notification when the user clicks the body of Android
    notification. This does not include clicks on notification action buttons.
  </summary>
</histogram>

<histogram name="Mobile.SystemNotification.Dismiss"
    enum="SystemNotificationType">
  <owner>xingliu@chromium.org</owner>
  <summary>
    Records the type of notification when the user dismisses the Android
    notification.
  </summary>
</histogram>

<histogram name="Mobile.SystemNotification.Shown" enum="SystemNotificationType">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Android: Represents the number of system notifications that will be
    successfully shown to the user by type.
  </summary>
</histogram>

<histogram name="MobileDownload.Background"
    enum="MobileDownloadBackgroundDownloadEvent" expires_after="2019-12-05">
  <owner>hnakashima@chromium.org</owner>
  <owner>hanxi@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Android: Records events for downloads started from the background, that is,
    while the browser process is not running. Used to measure completion rate of
    these downloads.
  </summary>
</histogram>

<histogram name="MobileDownload.BytesDownloaded" units="KB">
  <owner>qinmin@chromium.org</owner>
  <summary>
    Android: Records the total data downloaded by completion status.
  </summary>
</histogram>

<histogram base="true" name="MobileDownload.BytesWasted.ChromeNetworkStack"
    units="KB">
  <owner>qinmin@chromium.org</owner>
  <summary>
    Android: Records the total data wasted during download due to resumptions.
  </summary>
</histogram>

<histogram name="MobileDownload.CancelledDownloadRemovedFromHistory"
    units="downloads" expires_after="M72">
  <owner>qinmin@chromium.org</owner>
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Android: Records the number of cancelled download that are cleaned up from
    the history, after loading all the downloads from the history DB on startup.
  </summary>
</histogram>

<histogram name="MobileDownload.CancelReason" enum="MobileDownloadCancelReason">
  <owner>qinmin@chromium.org</owner>
  <summary>Android: Records the reason that a download is canceled.</summary>
</histogram>

<histogram name="MobileDownload.ContextMenu.SaveImage"
    enum="ContextMenuSaveImage">
  <owner>qinmin@chromium.org</owner>
  <summary>
    Android: Records various counts related to the save image context menu
    option.
  </summary>
</histogram>

<histogram name="MobileDownload.DownloadResumption"
    enum="MobileDownloadResumption">
  <owner>qinmin@chromium.org</owner>
  <summary>
    Android: Records user interaction on the download resumption button.
  </summary>
</histogram>

<histogram name="MobileDownload.DownloadTime" units="ms">
  <owner>qinmin@chromium.org</owner>
  <summary>
    Android: Records the total time for a download by completion status.
  </summary>
</histogram>

<histogram name="MobileDownload.DuplicateInfobar"
    enum="MobileDownloadDuplicateInfobar">
  <owner>qinmin@chromium.org</owner>
  <summary>
    Android: Records various counts related to the duplicate download infobar.
  </summary>
</histogram>

<histogram name="MobileDownload.InterceptFailureReason"
    enum="MobileDownloadInterceptFailureReason">
  <obsolete>
    Deprecated 09/2016 in Issue 647755 with all downloads going through Chrome.
  </obsolete>
  <owner>qinmin@chromium.org</owner>
  <summary>
    Android: Records the reason that Chrome fails to intercept a download and
    pass it to the Android DownloadManager.
  </summary>
</histogram>

<histogram name="MobileDownload.InterruptedDownloadsRemovedFromHistory"
    units="downloads" expires_after="M73">
  <owner>qinmin@chromium.org</owner>
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Android: Records the number of interrupted download that are cleaned up from
    the history, after loading all the downloads from the history DB on startup.
  </summary>
</histogram>

<histogram name="MobileDownload.InterruptionsCount">
  <owner>qinmin@chromium.org</owner>
  <summary>
    Android: Records the total interruptions for a download by completion
    status.
  </summary>
</histogram>

<histogram name="MobileDownload.Location.Dialog.DirectoryType"
    enum="DownloadLocationDirectoryType">
  <owner>xingliu@chromium.org</owner>
  <summary>
    Records the directory type when the user selects the download directory
    through download location dialog. May be recorded even when the user didn't
    download anything.
  </summary>
</histogram>

<histogram name="MobileDownload.Location.Dialog.Result"
    enum="DownloadLocationDialogResult">
  <owner>xingliu@chromium.org</owner>
  <summary>
    Records whether the user accepted or dismissed the dialog to select a
    download location.
  </summary>
</histogram>

<histogram name="MobileDownload.Location.Dialog.Type"
    enum="DownloadLocationDialogType">
  <owner>xingliu@chromium.org</owner>
  <summary>
    Records the download location dialog type when the dialog is shown to the
    user.
  </summary>
</histogram>

<histogram name="MobileDownload.Location.DirectoryType"
    enum="DownloadLocationDirectoryType" expires_after="2019-09-24">
  <owner>dtrainor@chromium.org</owner>
  <owner>qinmin@chromium.org</owner>
  <owner>xingliu@chromium.org</owner>
  <summary>
    Records the directory type shown when a user opens download location dialog
    or download location setting. This is recorded when the directory provider
    generates a list of available directories.
  </summary>
</histogram>

<histogram name="MobileDownload.Location.Download.DirectoryType"
    enum="DownloadLocationDirectoryType">
  <owner>xingliu@chromium.org</owner>
  <summary>Records the directory type when download is completed.</summary>
</histogram>

<histogram name="MobileDownload.Location.Setting.DirectoryType"
    enum="DownloadLocationDirectoryType">
  <owner>xingliu@chromium.org</owner>
  <summary>
    Records the directory type when the user selects the download directory
    through download preference. May be recorded even when the user didn't
    download anything.
  </summary>
</histogram>

<histogram name="MobileDownload.Notification.FixingSummaryLeak"
    enum="BooleanForegroundNotification">
  <obsolete>
    Deprecated 10/2017 in Issue 722320 with the removal of
    DownloadNotificationService.hideDanglingSummaryNotification.
  </obsolete>
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Android: Records the situation where we try to fix a standalone downloads
    summary notification, which shouldn't be visible to the user. True if the
    notification was a foreground notification, in which case we can't dismiss
    it and need to attempt a more drastic workaround. False if it was a normal
    notification and we can dismiss it easily (this is okay and expected
    behavior in some scenarios).
  </summary>
</histogram>

<histogram base="true" name="MobileDownload.ResumptionsCount">
  <owner>qinmin@chromium.org</owner>
  <summary>
    Android: Records the number of resumptions for a download by resumption
    type. For all resumption types, this is recorded when a download is
    finished, completed or cancelled. For automatic resumptions, it is also
    recorded when user manually resumes the download to clear the auto retry
    count.
  </summary>
</histogram>

<histogram name="MobileDownload.StoragePermission"
    enum="MobileDownloadStoragePermission">
  <owner>qinmin@chromium.org</owner>
  <summary>
    Android: Records various counts when requesting the storage permission.
  </summary>
</histogram>

<histogram name="MobileFre.PrivacyLinkTappedStatus"
    enum="MobileFreLinkTappedStatus">
  <owner>justincohen@chromium.org</owner>
  <summary>
    iOS: Records the status of the privacy page after user taps on the privacy
    link on the first run welcome view. This metric is only recorded if and
    after the TOS are accepted. This metric is specific to iOS.
  </summary>
</histogram>

<histogram name="MobileFre.Progress" enum="MobileFreProgress">
  <owner>gogerald@chromium.org</owner>
  <summary>
    Android: Records which states of the &quot;first run experience&quot; have
    been reached. Each bucket represents a state and recorded everytime the
    state changed. Pages can be double counted if the user goes backwards in the
    flow.
  </summary>
</histogram>

<histogram name="MobileFre.SignInChoice" enum="MobileFreSignInChoice">
  <owner>aruslan@chromium.org</owner>
  <summary>
    Android: How the user left the sign-in part of the &quot;first run
    experience&quot; activity (M-38+).
  </summary>
</histogram>

<histogram name="MobileFullscreenVideo.DurationAfterPotraitRotation" units="ms">
  <owner>qinmin@chromium.org</owner>
  <summary>
    Android: Records the duration that a fullscreen video is played after device
    rotates from portrait to landscape mode for the first time, and before it
    exits fullscreen. If there is no device rotation or if the video starts with
    landscape mode, it is not recorded. If there are mutiple rotations between
    portrait and landscape mode, only one record is emitted and it is equal to
    the time period from the first rotation to the moment when the video exits
    fullscreen.
  </summary>
</histogram>

<histogram name="MobileFullscreenVideo.LandscapeDuration" units="ms">
  <owner>qinmin@chromium.org</owner>
  <summary>
    Android: Records the duration that a fullscreen video is played in landscape
    mode. If a video starts playing in landscape mode, and then it is switched
    back and forth between landscape and portrait mode, only the time period
    before the first switch is accounted. If a video starts playing in portrait
    mode, it is not recorded.
  </summary>
</histogram>

<histogram name="MobileFullscreenVideo.LandscapeRotation" enum="BooleanEnabled">
  <owner>qinmin@chromium.org</owner>
  <summary>
    Android: Records whether a fullscreen video is switched from landscape to
    portrait mode at any point during playback.
  </summary>
</histogram>

<histogram name="MobileFullscreenVideo.OrientationPortrait"
    enum="BooleanEnabled">
  <owner>qinmin@chromium.org</owner>
  <summary>
    Android: Records the device orientation when a video enters fullscreen. The
    value is true if device orientation is portrait, or false otherwise. The
    video doesn't necessarily needs to be in a playing state.
  </summary>
</histogram>

<histogram name="MobileFullscreenVideo.PortraitDuration" units="ms">
  <owner>qinmin@chromium.org</owner>
  <summary>
    Android: Records the duration that a fullscreen video is played in portrait
    mode. If a video starts playing in portrait mode, and then it is switched
    back and forth between landscape and portrait mode, only the time period
    before the first switch is accounted. If a video starts playing in landscape
    mode, it is not recorded.
  </summary>
</histogram>

<histogram name="MobileFullscreenVideo.PortraitRotation" enum="BooleanEnabled">
  <owner>qinmin@chromium.org</owner>
  <summary>
    Android: Records whether a fullscreen video is switched from portrait to
    landscape mode at any point during playback.
  </summary>
</histogram>

<histogram name="MobileFullscreenVideo.VideoPortrait" enum="BooleanEnabled">
  <owner>qinmin@chromium.org</owner>
  <summary>
    Android: Records whether a video has a larger height than width when it
    enters the fullscreen mode.
  </summary>
</histogram>

<histogram name="MobileIntent.PageLoadDueToExternalApp" enum="ClientAppId">
  <owner>tedchoc@chromium.org</owner>
  <summary>
    Android: Count of page loads started by intents from external apps.
  </summary>
</histogram>

<histogram name="MobileOmnibox.PopupOpenDuration" units="ms">
  <owner>stkhapugin@chromium.org</owner>
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Recorded when the omnibox popup is closed. Indicates the duration it was
    open.
  </summary>
</histogram>

<histogram name="MobileOmnibox.PressedClipboardSuggestionAge" units="ms">
  <owner>jdonnelly@chromium.org</owner>
  <owner>mpearson@chromium.org</owner>
  <summary>
    When a user presses an omnibox suggestion based on the content of the
    clipboard, this histograms records how long ago Chrome detected a change in
    the clipboard.

    Intended to be compared to Omnibox.ClipboardSuggestionShownAge.

    If Chrome never detected a change to the clipboard, no clipboard suggestion
    is shown, meaning this histogram will never be emitted to.
  </summary>
</histogram>

<histogram name="MobileSignInPromo.BookmarkManager.ImpressionsTilDismiss"
    units="impressions">
  <owner>jlebel@chromium.org</owner>
  <summary>
    Counts how many times the signin promo is implicitly dismissed (by closing
    the bookmark manager) per impression.
  </summary>
</histogram>

<histogram name="MobileSignInPromo.BookmarkManager.ImpressionsTilSigninButtons"
    units="impressions">
  <owner>jlebel@chromium.org</owner>
  <summary>
    Counts how many times one of the &quot;sign in&quot; buttons (any of the
    signed-out &quot;Sign in to Chrome&quot; button, the &quot;Continue as
    |name|&quot; button, or the &quot;Not |email|?&quot; button) is clicked per
    impression.
  </summary>
</histogram>

<histogram name="MobileSignInPromo.BookmarkManager.ImpressionsTilXButton"
    units="impressions">
  <owner>jlebel@chromium.org</owner>
  <summary>
    Counts how many times the explicit &quot;X&quot;-to-close button is clicked
    per impression.
  </summary>
</histogram>

<histogram name="MobileSignInPromo.SettingsManager.ImpressionsTilDismiss"
    units="impressions">
  <owner>jlebel@chromium.org</owner>
  <summary>
    Counts how many times the signin promo is implicitly dismissed (by closing
    the settings view) per impression.
  </summary>
</histogram>

<histogram name="MobileSignInPromo.SettingsManager.ImpressionsTilSigninButtons"
    units="impressions">
  <owner>jlebel@chromium.org</owner>
  <summary>
    Counts how many times one of the &quot;sign in&quot; buttons (any of the
    signed-out &quot;Sign in to Chrome&quot; button, the &quot;Continue as
    |name|&quot; button, or the &quot;Not |email|?&quot; button) is clicked per
    impression.
  </summary>
</histogram>

<histogram name="MobileSignInPromo.SettingsManager.ImpressionsTilXButton"
    units="impressions">
  <owner>jlebel@chromium.org</owner>
  <summary>
    Counts how many times the explicit &quot;X&quot;-to-close button is clicked
    per impression.
  </summary>
</histogram>

<histogram name="MobileStartup.ColdStartupIntent" enum="MobileStartupIntent">
  <owner>tedchoc@chromium.org</owner>
  <summary>
    For cold starts of Chrome (native not initialized at the time of intent),
    record in ChromeTabbedActivity whether the intent had the effect of opening
    a new page or was a restore of last session.
  </summary>
</histogram>

<histogram name="MobileStartup.DailyLaunchCount">
  <owner>tedchoc@chromium.org</owner>
  <summary>The count of launching Chrome mobile app within a day.</summary>
</histogram>

<histogram name="MobileStartup.IntentToCreationTime" units="ms">
  <owner>twellington@chromium.org</owner>
  <summary>
    Android: The time it takes from creating an intent for ChromeActivity to
    activity creation. This includes activity creation time spent in the
    framework.
  </summary>
</histogram>

<histogram name="MobileStartup.LaunchType" enum="LaunchType">
  <owner>tedchoc@chromium.org</owner>
  <summary>
    The type of launching Chrome mobile app, e.g launch by hitting icon.
  </summary>
</histogram>

<histogram name="MobileStartup.LoadedHomepageOnColdStart" enum="BooleanIsNtp"
    expires_after="M75">
  <owner>tedchoc@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Android: Tracks whether a homepage was loaded on startup of
    ChromeTabbedActivity. Launching a homepage is conditional on a homepage
    being configured on the device and the absence of any existing tabs, so it
    will only happen on a subsets of cold starts. The metric splits out whether
    the homepage was the NTP or some other URL.
  </summary>
</histogram>

<histogram name="MobileStartup.MainIntentAction" enum="MobileStartingAction">
  <obsolete>
    Deprecated and removed from the code 05/2018
  </obsolete>
  <owner>mariakhomenko@chromium.org</owner>
  <summary>
    Android: Records the first action the user does within 10s of starting
    Chrome. Recorded in DocumentActivity and ChromeTabbedActivity only when the
    starting intent is of type MAIN.
  </summary>
</histogram>

<histogram name="MobileStartup.MobileMultiWindowInstances">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Android: Number of instances of Chrome currently open during a MultiWindow
    session. Emitted every time Chrome is paused. Only emitted on Android
    MultiWindow devices.

    A MultiWindow session is any period of time that Chrome was not used in a
    full screen mode but together with another Activity that is visible at the
    same time. This is only supported in a few Android models.
  </summary>
</histogram>

<histogram name="MobileStartup.MobileMultiWindowSession" units="%">
  <owner>twellington@chromium.org</owner>
  <owner>tedchoc@chromium.org</owner>
  <summary>
    Android: percent of the screen available for Chrome during a multi-window
    session. Emitted every time chrome is paused. Only emitted on Android
    MultiWindow devices.

    A multiwindow session is any period of time that Chrome was not used in full
    screen mode but together with some other application that is visible at the
    same time. This is only supported in a few Android models.
  </summary>
</histogram>

<histogram name="MobileStartup.NonMainIntentAction" enum="MobileStartingAction">
  <obsolete>
    Deprecated and removed from the code 05/2018
  </obsolete>
  <owner>mariakhomenko@chromium.org</owner>
  <summary>
    Android: Records the first action the user does within 10s of starting
    Chrome. Recorded in DocumentActivity and ChromeTabbedActivity only when the
    starting intent is not of type MAIN, e.g. VIEW, etc.
  </summary>
</histogram>

<histogram name="MobileStartup.TimeSinceLastUse" units="minutes">
  <obsolete>
    Deprecated and removed from the code 05/2018
  </obsolete>
  <owner>knn@chromium.org</owner>
  <summary>
    Android: The time since last use until Chrome is launched from the home
    screen. This is measured from the time the last tab is closed until a Main
    intent is received. Has a minute level precision for first 10 minutes
    increasing exponentially till 30 days.

    Note: this metric is broken in M63 and below and only reliable in M64+.
  </summary>
</histogram>

<histogram base="true" name="MobileStartup.ToolbarFirstDrawTime" units="ms">
  <obsolete>
    Deprecated and renamed to MobileStartup.ToolbarFirstDrawTime2 due to double
    reporting bug (see https://crbug.com/857508).
  </obsolete>
  <owner>yusufo@chromium.org</owner>
  <summary>
    Android: The time it takes from launch to the completion of first draw for
    Toolbar. This excludes activity creation time spent in framework.
  </summary>
</histogram>

<histogram base="true" name="MobileStartup.ToolbarFirstDrawTime2" units="ms">
  <owner>yusufo@chromium.org</owner>
  <summary>
    Android: The time it takes from launch to the completion of first draw for
    Toolbar. This excludes activity creation time spent in framework.
  </summary>
</histogram>

<histogram base="true" name="MobileStartup.ToolbarFirstFocusStartupState"
    enum="MobileStartupToolbarFirstFocusStartupState">
  <owner>mheikal@chromium.org</owner>
  <summary>
    Android: The state of chrome startup at the first time the user focuses the
    omnibox, if the user does so within the first 30s of the launch (excluding
    activity creation time spent in the framework).
  </summary>
</histogram>

<histogram base="true" name="MobileStartup.ToolbarFirstFocusTime" units="ms">
  <obsolete>
    Deprecated and renamed to MobileStartup.ToolbarFirstFocusTime2 due to double
    reporting bug (see https://crbug.com/857508).
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    Android: The time it takes from launch to the first time the user focuses
    the omnibox if the user does so within first 30s of the launch. This
    excludes activity creation time spent in framework.
  </summary>
</histogram>

<histogram base="true" name="MobileStartup.ToolbarFirstFocusTime2" units="ms">
  <owner>pasko@chromium.org</owner>
  <summary>
    Android: The time it takes from launch to the first time the user focuses
    the omnibox if the user does so within first 30s of the launch. This
    excludes activity creation time spent in framework.
  </summary>
</histogram>

<histogram base="true" name="MobileStartup.ToolbarInflationTime" units="ms">
  <owner>pasko@chromium.org</owner>
  <summary>
    Android: The time spent performing toolbar layout inflation.
  </summary>
</histogram>

<histogram name="ModuleBlacklistCache.BlacklistPathUpdated"
    enum="BooleanSuccess">
  <owner>pmonette@chromium.org</owner>
  <summary>
    Records the result of writing the path of the module blacklist cache to the
    registry so that chrome_elf.dll can use it. A value is emitted every time
    the cache is updated because another instance of Chrome with a different
    User Data directory could have overwritten the path to point to their own
    version of the cache.
  </summary>
</histogram>

<histogram name="ModuleBlacklistCache.BlacklistStatus"
    enum="ModuleBlacklistStatus">
  <owner>pmonette@chromium.org</owner>
  <summary>
    The status of a blacklisted module in the process. Recorded when the cache
    is updated.
  </summary>
</histogram>

<histogram name="ModuleBlacklistCache.DeleteResult" enum="BooleanSuccess">
  <owner>pmonette@chromium.org</owner>
  <summary>
    The result of deleting the module blacklist cache when third-party module
    blocking is disabled. Attempting to delete an empty file is considered a
    success.
  </summary>
</histogram>

<histogram name="ModuleBlacklistCache.ExpectedMD5Digest" enum="Boolean">
  <owner>pmonette@chromium.org</owner>
  <summary>
    Records whether the MD5 digest of the module blacklist cache matched the one
    recorded in the Local State file.
  </summary>
</histogram>

<histogram name="ModuleBlacklistCache.ModuleCount" units="modules">
  <owner>pmonette@chromium.org</owner>
  <summary>
    Records the number of modules in the module blacklist cache at the time it
    was written to disk.
  </summary>
</histogram>

<histogram name="ModuleBlacklistCache.ReadResult"
    enum="ModuleBlacklistCacheReadResult">
  <owner>pmonette@chromium.org</owner>
  <summary>
    The result of reading the current module blacklist cache while updating it.
  </summary>
</histogram>

<histogram name="ModuleBlacklistCache.WriteResult" enum="BooleanSuccess">
  <owner>pmonette@chromium.org</owner>
  <summary>The result of writing the updated module blacklist cache.</summary>
</histogram>

<histogram name="ModuleIntegrityVerification.BytesModified" units="bytes">
  <owner>anthonyvd@chromium.org</owner>
  <summary>
    Represents the amount of bytes in a module that are different on disk and in
    memory. Logged when the ModuleIntegrityVerifier determines that a module is
    different on disk and in memory after being triggered by an incident.
  </summary>
</histogram>

<histogram name="ModuleIntegrityVerification.Difference" units="bytes">
  <obsolete>
    Deprecated and removed from code as of 05/2015.
  </obsolete>
  <owner>anthonyvd@chromium.org</owner>
  <summary>
    Represents the difference in bytes deemed modified by the two
    ModuleIntegrityVerifier code paths. The suffix indicates which path had a
    higher value. Logged when the ModuleIntegrityVerifier determines that a
    module is different on disk and in memory after being triggered by an
    incident and the reported byte count for both methods is different.
  </summary>
</histogram>

<histogram name="ModuleIntegrityVerification.RelocationsUnordered"
    enum="ModuleIndex">
  <owner>grt@chromium.org</owner>
  <summary>
    Logged when the relocations in a module are not ordered causing the module
    verification to abort.
  </summary>
</histogram>

<histogram name="ModuleIntegrityVerification.RelocationsUnorderedModuleIndex">
  <obsolete>
    Deprecated 04/2015; replaced by
    ModuleIntegrityVerification.RelocationsUnordered.
  </obsolete>
  <owner>anthonyvd@chromium.org</owner>
  <summary>
    Logged when the relocations in a module are not ordered causing the module
    verification to abort. The value is the index of the affected module.
  </summary>
</histogram>

<histogram name="Mojo.MachPortRelay.BrokerError"
    enum="MojoMachPortRelayBrokerError">
  <owner>amistry@chromium.org</owner>
  <owner>erikchen@chromium.org</owner>
  <summary>
    Errors that the broker process encounters while trying to send or receive
    Mach ports from a child process.
  </summary>
</histogram>

<histogram name="Mojo.MachPortRelay.ChildError"
    enum="MojoMachPortRelayChildError">
  <owner>amistry@chromium.org</owner>
  <owner>erikchen@chromium.org</owner>
  <summary>
    Errors that a child process encounters while trying to receive Mach ports
    from the broker process.
  </summary>
</histogram>

<histogram name="Mojo.Shell.ChildConnectionTime" units="ms">
  <obsolete>
    Deprecated 2/2018. Has not actually been collected for some time.
  </obsolete>
  <owner>rockot@chromium.org</owner>
  <summary>
    Measures the time it takes for a new child process to receive an
    initialization request from the Mojo shell. This is precisely the duration
    of the MojoShellConnectionImpl::BindToMessagePipe() call in ChildThreadImpl.
  </summary>
</histogram>

<histogram name="Mojo.System.GetParentPlatformHandleSyncTime" units="ms">
  <obsolete>
    Deprecated 2/2018. Data no longer useful.
  </obsolete>
  <owner>rockot@chromium.org</owner>
  <summary>
    Measures the time it takes for a child to receive its parent platform handle
    synchronously from the broker on startup. This only applies to the subset of
    platforms on which the sync broker is used.
  </summary>
</histogram>

<histogram name="Mojo.System.MessagesAcceptedPerEvent">
  <obsolete>
    Deprecated as of 6/2017.
  </obsolete>
  <owner>rockot@chromium.org</owner>
  <summary>
    Number of internal Mojo system messages processed synchronously during a
    single execution of NodeController::AcceptIncomingMessages(). This is called
    any time an event requires internal Mojo system messages to be pumped.
    Values below 4 are no longer logged.
  </summary>
</histogram>

<histogram name="Mojo.System.Node.ConnectedPeers">
  <obsolete>
    Deprecated 2/2018. Data no longer useful.
  </obsolete>
  <owner>rockot@chromium.org</owner>
  <summary>
    Number of connected peer nodes tracked by a node. This is emitted any time a
    peer is added to or dropped from a node.
  </summary>
</histogram>

<histogram name="Mojo.System.Node.PendingChildren">
  <obsolete>
    Deprecated 2/2018. Data no longer useful.
  </obsolete>
  <owner>rockot@chromium.org</owner>
  <summary>
    Number of connected pending child node connections tracked by a node. This
    is emitted any time a parent-child node connection is initiated or dropped.
  </summary>
</histogram>

<histogram name="MojoLevelDBEnv.IOError" enum="LevelDBIOErrorMethods">
  <owner>mek@chromium.org</owner>
  <summary>Methods where leveldb's Mojo environment has IO errors.</summary>
</histogram>

<histogram name="MojoLevelDBEnv.IOError.BFE" enum="PlatformFileError">
  <owner>mek@chromium.org</owner>
  <summary>
    Errors (base::File::Error) encountered by a single leveldb method in
    leveldb's Mojo environment.
  </summary>
</histogram>

<histogram name="MojoLevelDBEnv.RetryRecoveredFromErrorIn"
    enum="PlatformFileError">
  <owner>mek@chromium.org</owner>
  <summary>
    When Mojo LevelDBEnv successfully retries an operation that had failed,
    record the error from the most recent failed attempt.
  </summary>
</histogram>

<histogram name="MojoLevelDBEnv.TimeUntilSuccessFor" units="ms">
  <owner>mek@chromium.org</owner>
  <summary>
    Time Mojo LevelDBEnv slept before successfully completing this operation. 0
    means success on the first try, as LevelDBEnv only sleeps when retries are
    needed.
  </summary>
</histogram>

<histogram name="Mouse.PointerSensitivity.Changed" enum="PointerSensitivity"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Tracks mouse sensitivity setting changes by the user. This replaces the old
    Mouse.Sensitivity.Changed metric.
  </summary>
</histogram>

<histogram name="Mouse.PointerSensitivity.Started" enum="PointerSensitivity"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Tracks mouse sensitivity setting on startup. This replaces the old
    Mouse.Sensitivity.Started metric.
  </summary>
</histogram>

<histogram name="Mouse.ReverseScroll.Changed" enum="BooleanEnabled">
  <owner>lannm@chromium.org</owner>
  <summary>Tracks mouse reverse scroll setting changes by the user.</summary>
</histogram>

<histogram name="Mouse.ReverseScroll.Started" enum="BooleanEnabled">
  <owner>lannm@chromium.org</owner>
  <summary>Tracks mouse reverse scroll setting on startup.</summary>
</histogram>

<histogram name="Mouse.Sensitivity.Changed" enum="PointerSensitivity">
  <obsolete>
    Deprecated as of 6/2013, replaced by Mouse.PointerSensitivity.Changed.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Tracks mouse sensitivity setting.</summary>
</histogram>

<histogram name="Mouse.Sensitivity.Started" enum="PointerSensitivity">
  <obsolete>
    Deprecated as of 6/2013, replaced by Mouse.PointerSensitivity.Started.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Tracks mouse sensitivity setting on startup.</summary>
</histogram>

<histogram name="MouseEventPrefetch.MouseDownDuration_Click" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures the time elapsed between when the user mousedown-ed a link and when
    the user clicked a link.
  </summary>
</histogram>

<histogram name="MouseEventPrefetch.MouseDownFollowedByClick"
    enum="MouseEventFollowedByClick">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    For each click handled by an HTML anchor tag link, whether Blink saw a
    mousedown event preceding it. This is only measured for clicks handled by
    the anchor tag's default click event handler.
  </summary>
</histogram>

<histogram name="MouseEventPrefetch.MouseDowns">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of mousedown events detected at HTML anchor-tag links' default
    event handler.
  </summary>
</histogram>

<histogram name="MouseEventPrefetch.MouseOverDuration_Click" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures the time elapsed between when the user mouseover-ed a link and when
    the user clicked a link.
  </summary>
</histogram>

<histogram name="MouseEventPrefetch.MouseOverDuration_NoClick" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures the time elapsed between when the user mouseover-ed a link and when
    the user mouseout-ed a link without click.
  </summary>
</histogram>

<histogram name="MouseEventPrefetch.MouseOvers">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of mouseover events detected at HTML anchor-tag links' default
    event handler.
  </summary>
</histogram>

<histogram name="MouseEventPrefetch.PreTapEventsFollowedByClick"
    enum="PreTapEvents">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The tap gesture events detected before click at HTML anchor-tag links'
    default event handler.
  </summary>
</histogram>

<histogram name="MouseEventPrefetch.TapDownDuration_Click" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures the time elapsed between when the user tapdown-ed a link and when
    the user clicked a link.
  </summary>
</histogram>

<histogram name="MouseEventPrefetch.TapDowns">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of gesturetapdown events detected at HTML anchor-tag links'
    default event handler.
  </summary>
</histogram>

<histogram name="MouseEventPrefetch.TapUnconfirmeds">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of gesturetapunconfirmed events detected at HTML anchor-tag
    links' default event handler.
  </summary>
</histogram>

<histogram name="MPArch.ChildProcessLaunchFirst">
  <owner>ppi@chromium.org</owner>
  <summary>
    The time it takes to spawn the first child subprocess (including sandbox
    init).
  </summary>
</histogram>

<histogram name="MPArch.ChildProcessLaunchSubsequent">
  <owner>ppi@chromium.org</owner>
  <summary>
    The time it takes to spawn child sub processes not counting the first one.
  </summary>
</histogram>

<histogram name="MPArch.ForkTime" units="ms">
  <owner>lizeb@chromium.org</owner>
  <summary>
    Time to call fork() or clone(), in ms. Recorded at each fork excluding from
    the zygote, only on posix platforms.
  </summary>
</histogram>

<histogram name="MPArch.IIR_InputEventDelta" units="ms">
  <obsolete>
    Deprecated 08/2016 due to lack of use (Histogram Eraser).
  </obsolete>
  <owner>lassey@google.com</owner>
  <summary>
    The time spent waiting for the renderer to acknowledge an input event.
  </summary>
</histogram>

<histogram name="MPArch.RendererLaunchFirst">
  <obsolete>
    Deprecated 2/2013, renamed.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time it takes to spawn the first renderer subprocess (including sandbox
    init).
  </summary>
</histogram>

<histogram name="MPArch.RendererLaunchSubsequent">
  <obsolete>
    Deprecated 2/2013, renamed.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time it takes to spawn renderer sub processes not counting the first
    one.
  </summary>
</histogram>

<histogram name="MPArch.RPHCountPerLoad">
  <owner>ppi@chromium.org</owner>
  <summary>
    The number of RenderProcessHosts (i.e. renderer processes) present when each
    load completes. This is basically the average number of sub-processes over
    time. See also Tabs.TabCountPerLoad.
  </summary>
</histogram>

<histogram name="MPArch.RWH_HangMonitorUnresponsive" units="ms">
  <obsolete>
    Deprecated 12/2017 due to lack of usage.
  </obsolete>
  <owner>amaralp@chromium.org</owner>
  <summary>
    The length of time the renderer is unresponsive according to the hang
    monitor. Recorded when the renderer regains responsiveness.
  </summary>
</histogram>

<histogram name="MPArch.RWH_InputEventDelta" units="ms">
  <obsolete>
    renamed MPArch.IIR_InputEventDelta.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time spent waiting for the renderer to acknowledge an input event.
  </summary>
</histogram>

<histogram name="MPArch.RWH_OnMsgPaintRect" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The time spent inside RenderWidgetHost::OnMsgPaintRect.</summary>
</histogram>

<histogram name="MPArch.RWH_OnMsgResizeOrRepaintACK">
  <obsolete>
    Deprecated 09/2018 as message no longer exists.
  </obsolete>
  <owner>kylechar@chromium.org</owner>
  <owner>piman@chromium.org</owner>
  <summary>
    The time delta for processing a paint message. On platforms that don't
    support asynchronous painting, this is equivalent to
    MPArch.RWH_TotalPaintTime.
  </summary>
</histogram>

<histogram name="MPArch.RWH_OnMsgScrollRect" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The time spent inside RenderWidgetHost::OnMsgScrollRect.</summary>
</histogram>

<histogram name="MPArch.RWH_OnMsgUpdateRect">
  <obsolete>
    Deprecated 10/2017. Replaced with MPArch.RWH_OnMsgResizeOrRepaintACK.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>TBD</summary>
</histogram>

<histogram name="MPArch.RWH_RepaintDelta" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>TBD</summary>
</histogram>

<histogram name="MPArch.RWH_TabSwitchPaintDuration" units="ms">
  <owner>jbauman@chromium.org</owner>
  <summary>
    Time from tab switch requested to tab appearing on screen (Aura and Mac
    only).
  </summary>
</histogram>

<histogram name="MPArch.RWHH_WhiteoutDuration" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time that the user sees a blank white page after switching to a
    different tab, while the RenderWidgetHost receives data to paint from the
    renderer process.
  </summary>
</histogram>

<histogram name="MultiDevice.BetterTogetherSuite.MultiDeviceFeatureState"
    enum="MultiDevice_FeatureState">
  <owner>hansberry@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>
    Indicates the feature state of the Better Together Suite feature. This
    metric is emitted to at the creation of the user session (when the user logs
    in), and when feature state updates occur.
  </summary>
</histogram>

<histogram name="MultiDevice.DeviceSyncService.FindEligibleDevices.Result"
    enum="BooleanSuccess">
  <owner>hansberry@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>Result of trying to find eligible devices.</summary>
</histogram>

<histogram
    name="MultiDevice.DeviceSyncService.FindEligibleDevices.Result.FailureReason"
    enum="MultiDevice_DeviceSyncService_DeviceSyncRequestFailureReason">
  <owner>hansberry@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>
    Breaks down the percentages of reasons when failure occurs on
    FindEligibleDevices.
  </summary>
</histogram>

<histogram name="MultiDevice.DeviceSyncService.ForceEnrollmentNow.Result"
    enum="MultiDevice_DeviceSyncService_ForceCryptAuthOperationResult">
  <owner>hansberry@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>Result for when ForceEnrollmentNow is called.</summary>
</histogram>

<histogram name="MultiDevice.DeviceSyncService.ForceSyncNow.Result"
    enum="MultiDevice_DeviceSyncService_ForceCryptAuthOperationResult">
  <owner>hansberry@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>Result for when ForceSyncNow is called.</summary>
</histogram>

<histogram
    name="MultiDevice.DeviceSyncService.SetSoftwareFeatureState.Disable.FailedFeature"
    enum="MultiDevice_DeviceSyncService_Features">
  <owner>hansberry@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>
    Breaks down which features failed when attempted to disable.
  </summary>
</histogram>

<histogram
    name="MultiDevice.DeviceSyncService.SetSoftwareFeatureState.Enable.FailedFeature"
    enum="MultiDevice_DeviceSyncService_Features">
  <owner>hansberry@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>Breaks down which features failed when attempted to enable.</summary>
</histogram>

<histogram name="MultiDevice.DeviceSyncService.SetSoftwareFeatureState.Result"
    enum="BooleanSuccess">
  <owner>hansberry@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>Result of enabling and disabling features for devices.</summary>
</histogram>

<histogram
    name="MultiDevice.DeviceSyncService.SetSoftwareFeatureState.Result.FailureReason"
    enum="MultiDevice_DeviceSyncService_DeviceSyncRequestFailureReason">
  <owner>hansberry@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>
    Breaks down the percentages of reasons when failure occurs on
    SetSoftwareFeatureState.
  </summary>
</histogram>

<histogram name="MultiDevice.ForgetHostConfirmed"
    enum="MultiDevice_VerifyAndForgetHostConfirmationState">
  <owner>hansberry@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>
    Compares when the Forget Host Button is pressed and when setup completes.
  </summary>
</histogram>

<histogram name="MultiDevice.PostOOBESetupFlow.PageShown"
    enum="MultiDevice_PostOOBESetupFlow_Page">
  <owner>hansberry@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>
    Provides a count of how many times each page of the MultiDevice setup flow
    was reached. This allows analysis of user dropoff between subsequent pages.

    The formula &quot;Success page&quot; / &quot;Start page&quot; provides the
    overall &quot;success rate&quot; of the MultiDevice setup flow, at a quick
    glance.

    The sum of each bucket's count is not meaningful.
  </summary>
</histogram>

<histogram
    name="MultiDevice.SecureChannel.BLE.GattConnectionToAuthentication.EffectiveSuccessRateWithRetries"
    enum="BooleanSuccess">
  <owner>hansberry@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>
    A histogram measuring the success rate of authenticating a BLE channel once
    a GATT connection has been established. This metric measures the effective
    rate; i.e., a failure followed by a successful retry is counted as a
    success.
  </summary>
</histogram>

<histogram
    name="MultiDevice.SecureChannel.BLE.Performance.ConnectionToAuthenticationDuration.Background"
    units="ms">
  <owner>hansberry@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>
    A time histogram measuring the time from the moment a GATT connection is
    made to the remote device, to the moment that an authenticated channel is
    established with the remote device.

    In this context, &quot;background&quot; refers to the BLE advertising scheme
    under which the remote device is persistently advertising &quot;in the
    background&quot; at low power.
  </summary>
</histogram>

<histogram
    name="MultiDevice.SecureChannel.BLE.Performance.ReceiveAdvertisementToConnectionDuration.Background"
    units="ms">
  <owner>hansberry@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>
    A time histogram measuring the time from the moment a background
    advertisement is received, to the moment that a GATT connection is made to
    the remote device.

    In this context, &quot;background&quot; refers to the BLE advertising scheme
    under which the remote device is persistently advertising &quot;in the
    background&quot; at low power.
  </summary>
</histogram>

<histogram
    name="MultiDevice.SecureChannel.BLE.Performance.StartScanToAuthenticationDuration.Background"
    units="ms">
  <owner>hansberry@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>
    A time histogram measuring the time it takes to create a secure connection
    to a remote device, from the moment a SecureChannelService client asks for a
    new connection (start scanning), to the moment that an authenticated channel
    is established with the remote device.

    In this context, &quot;background&quot; refers to the BLE advertising scheme
    under which the remote device is persistently advertising &quot;in the
    background&quot; at low power.
  </summary>
</histogram>

<histogram
    name="MultiDevice.SecureChannel.BLE.Performance.StartScanToConnectionDuration.Background"
    units="ms">
  <owner>hansberry@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>
    A time histogram measuring the time it from the moment SecureChannelService
    starts scanning for a background advertisement, to the moment that it
    establishes a GATT connection to the remote device.

    In this context, &quot;background&quot; refers to the BLE advertising scheme
    under which the remote device is persistently advertising &quot;in the
    background&quot; at low power.
  </summary>
</histogram>

<histogram
    name="MultiDevice.SecureChannel.BLE.Performance.StartScanToReceiveAdvertisementDuration.Background"
    units="ms">
  <owner>hansberry@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>
    A time histogram measuring the time it from the moment SecureChannelService
    starts scanning for a background advertisement, to the moment that it
    receives an advertisement from the expected remote device.

    In this context, &quot;background&quot; refers to the BLE advertising scheme
    under which the remote device is persistently advertising &quot;in the
    background&quot; at low power.
  </summary>
</histogram>

<histogram
    name="MultiDevice.SecureChannel.BLE.ReceiveAdvertisementToAuthentication.EffectiveSuccessRateWithRetries"
    enum="BooleanSuccess">
  <owner>hansberry@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>
    A histogram measuring the success rate of authenticating a BLE channel once
    an advertisement has been received. This metric measures the effective rate;
    i.e., a failure followed by a successful retry is counted as a success.
  </summary>
</histogram>

<histogram
    name="MultiDevice.SecureChannel.BLE.ReceiveAdvertisementToGattConnection.EffectiveSuccessRateWithRetries"
    enum="BooleanSuccess">
  <owner>hansberry@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>
    A histogram measuring the success rate of creating a GATT connection once an
    advertisement has been received. This metric measures the effective rate;
    i.e., a failure followed by a successful retry is counted as a success.
  </summary>
</histogram>

<histogram name="MultiDevice.Setup.HostStatus"
    enum="MultiDevice_Setup_HostStatus">
  <owner>hansberry@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>
    Breaks down percentages of host statuses. This metric is emitted to at the
    creation of the user session (when the user logs in), and when host status
    updates occur.
  </summary>
</histogram>

<histogram name="MultiDevice.VerifyButtonClicked"
    enum="MultiDevice_VerifyAndForgetHostConfirmationState">
  <owner>hansberry@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>
    Compares when the Verify Host Button is pressed to when setup completes.
  </summary>
</histogram>

<histogram name="MultiDeviceSetup.OOBE.UserChoice"
    enum="MultiDeviceSetupOOBEUserChoice">
  <owner>hansberry@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <owner>hsuregan@chromium.org</owner>
  <summary>
    Breaks down the percentage of users who either accepted or declined
    MultiDevice OOBE setup.
  </summary>
</histogram>

<histogram name="MultiDeviceSetup_NotificationClicked"
    enum="MultiDeviceSetupNotification">
  <owner>jordynass@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>
    Counts the number of each MultiDevice setup notification clicked by a user.
    This metric should be compared with MultiDeviceSetup_NotificationShown.
  </summary>
</histogram>

<histogram name="MultiDeviceSetup_NotificationDismissed"
    enum="MultiDeviceSetupNotification">
  <owner>hansberry@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>
    Counts the number of each MultiDevice setup notification dismissed by a
    user. This metric should be compared with
    MultiDeviceSetup_NotificationShown.
  </summary>
</histogram>

<histogram name="MultiDeviceSetup_NotificationShown"
    enum="MultiDeviceSetupNotification">
  <owner>jordynass@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <summary>
    Counts the number of each MultiDevice setup notification shown to a user.
  </summary>
</histogram>

<histogram name="MultiProfile.DiscardedTabsPerUser">
  <obsolete>
    Deprecated 11/2017. Analysis confirms that the number of discards increases
    with the number of logged in users. No action will be taken based on this
    information.
  </obsolete>
  <owner>skuhne@chromium.org</owner>
  <summary>
    The relation of discarded tabs vs. the amount of simultaneous users. The
    counts are the number of discards and the buckets are the number of users.
    Since the count values are absolute numbers, they need to be normalized
    before use - so divide the counts by the percentage of users per session
    found under 'MultiProfile.UsersPerSessionIncremental'.
  </summary>
</histogram>

<histogram name="MultiProfile.SessionMode" enum="MultiProfileSessionMode">
  <obsolete>
    Deprecated 09/2017 when side-by-side multi-profile mode was removed. There
    is now only one multi-profile mode (separate desktop). See the metric
    'MultiProfile.UsersPerSessionIncremental' for overall usage of the
    multi-profile feature on Chrome OS.
  </obsolete>
  <owner>skuhne@chromium.org</owner>
  <summary>
    The session counter for different multi profile modes which gets stored once
    per session at the beginning of the session.
  </summary>
</histogram>

<histogram name="MultiProfile.SigninUserUIPath"
    enum="MultiProfileSigninUserAction">
  <owner>skuhne@chromium.org</owner>
  <summary>
    Count the number of times each UI path is taken for signing into a new
    account in a Chrome OS multiprofile session. UI paths include the system
    tray and the user account switcher on the browser frame.
  </summary>
</histogram>

<histogram name="MultiProfile.SwitchActiveUserUIPath"
    enum="MultiProfileSwitchActiveUserAction">
  <owner>skuhne@chromium.org</owner>
  <summary>
    Count the number of times each UI path is taken for switching the active
    account in a Chrome OS multiprofile session. UI paths include the system
    tray and the keyboard shortcut.
  </summary>
</histogram>

<histogram name="MultiProfile.TeleportWindow"
    enum="MultiProfileTeleportWindowAction">
  <obsolete>
    Deprecated 04/2018. Was not being maintained - some cases leading to
    teleport were not captured. See counts of 'MultiProfile.TeleportWindowType'
    to assess the usage of the teleport window feature.
  </obsolete>
  <owner>skuhne@chromium.org</owner>
  <summary>
    Counts the number of window teleportations when using separated desktop
    mode.
  </summary>
</histogram>

<histogram name="MultiProfile.TeleportWindowType"
    enum="MultiProfileTeleportWindowType">
  <owner>skuhne@chromium.org</owner>
  <summary>
    Counts the number of teleported windows by types in separated desktop mode.
  </summary>
</histogram>

<histogram name="MultiProfile.UsersPerSession">
  <obsolete>
    Deprecated 3/2014, renamed to MultiProfile.UsersPerSessionIncremental.
  </obsolete>
  <owner>skuhne@chromium.org</owner>
  <summary>
    The number of users simultaneously signed into a multiprofile session on
    Chrome OS. This is recorded upon session end.
  </summary>
</histogram>

<histogram name="MultiProfile.UsersPerSessionIncremental">
  <owner>skuhne@chromium.org</owner>
  <summary>
    The number of users simultaneously signed into a multiprofile session on
    Chrome OS. This is recorded whenever a user gets added to the session. To
    get the correct count, all following counts must be subtracted. Example: If
    100 single user, 20 two user and 5 three user sessions, there were
    100-20-5=75 single user sessions, 100-80=20 dual user sessions and so on.
  </summary>
</histogram>

<histogram name="NaCl.Client.Helper.InitState" enum="NaClHelperStatus"
    expires_after="2019-12-31">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    When the browser started, what happened with the NaCl helper process?
  </summary>
</histogram>

<histogram name="NaCl.Client.Helper.StateOnFork" enum="NaClHelperStatus"
    expires_after="2019-12-31">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    When a NaCl application process was created, what had happened with the NaCl
    helper process when the browser was started?
  </summary>
</histogram>

<histogram name="NaCl.Client.OSArch" enum="NaClOSArchEnum">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>The OS/Architecture of a nexe that was loaded.</summary>
</histogram>

<histogram name="NaCl.HttpStatusCodeClass.Manifest.InstalledApp"
    enum="NaClHttpStatusCodeClass" expires_after="2019-12-31">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The status code returned when trying to load a manifest inside an installed
    app.
  </summary>
</histogram>

<histogram name="NaCl.HttpStatusCodeClass.Manifest.NotInstalledApp"
    enum="NaClHttpStatusCodeClass">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The status code returned when trying to load a manifest from a source other
    than an installed app.
  </summary>
</histogram>

<histogram name="NaCl.HttpStatusCodeClass.Nexe.InstalledApp"
    enum="NaClHttpStatusCodeClass">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The status code returned when trying to load a NaCl executable inside an
    installed app.
  </summary>
</histogram>

<histogram name="NaCl.HttpStatusCodeClass.Nexe.NotInstalledApp"
    enum="NaClHttpStatusCodeClass" expires_after="2019-12-31">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The status code returned when trying to load a NaCl executable from a source
    other than an installed app.
  </summary>
</histogram>

<histogram name="NaCl.LoadStatus.Plugin" enum="NaClPluginErrorCode">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>The error code returned by NaCl's Chrome plugin.</summary>
</histogram>

<histogram name="NaCl.LoadStatus.Plugin.InstalledApp"
    enum="NaClPluginErrorCode">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The error code returned by NaCl's Chrome plugin, but only for installed
    apps.
  </summary>
</histogram>

<histogram name="NaCl.LoadStatus.Plugin.NotInstalledApp"
    enum="NaClPluginErrorCode">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The error code returned by NaCl's Chrome plugin, but excluding installed
    apps.
  </summary>
</histogram>

<histogram name="NaCl.LoadStatus.SelLdr" enum="NaClSelLdrErrorCode">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>The error code returned by NaCl's sel_ldr.</summary>
</histogram>

<histogram name="NaCl.LoadStatus.SelLdr.InstalledApp"
    enum="NaClSelLdrErrorCode">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The error code returned by NaCl's sel_ldr, but only for installed apps.
  </summary>
</histogram>

<histogram name="NaCl.LoadStatus.SelLdr.NotInstalledApp"
    enum="NaClSelLdrErrorCode" expires_after="2019-12-31">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The error code returned by NaCl's sel_ldr, but excluding installed apps.
  </summary>
</histogram>

<histogram name="NaCl.Manifest.IsDataURI" enum="NaClManifestType"
    expires_after="2019-12-31">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    Was the manifest specified as a data URI rather than a .nmf file?
  </summary>
</histogram>

<histogram name="NaCl.ManifestDownloadTime" units="ms">
  <obsolete>
    Deprecated 6/2011, renamed.
  </obsolete>
  <owner>adamk@chromium.org</owner>
  <summary>
    The time it took to download the manifset file for a Native Client module.
  </summary>
</histogram>

<histogram name="NaCl.ModuleUptime.Crash" units="ms" expires_after="2019-12-31">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>The time a NaCl module ran before it crashed.</summary>
</histogram>

<histogram name="NaCl.ModuleUptime.Normal" units="ms"
    expires_after="2019-12-31">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>The time a NaCl module ran without crashing, at shutdown.</summary>
</histogram>

<histogram name="NaCl.NexeDownloadTime" units="ms">
  <obsolete>
    Deprecated 6/2011, renamed.
  </obsolete>
  <owner>adamk@chromium.org</owner>
  <summary>
    The time it took to download the main .nexe for a Native Client module.
  </summary>
</histogram>

<histogram name="NaCl.NexeSize" units="KB">
  <obsolete>
    Deprecated 6/2011, renamed.
  </obsolete>
  <owner>adamk@chromium.org</owner>
  <summary>
    The size of the main .nexe file downloaded for a Native Client module.
  </summary>
</histogram>

<histogram name="NaCl.NexeStartupTime" units="ms">
  <obsolete>
    Deprecated 6/2011, renamed.
  </obsolete>
  <owner>adamk@chromium.org</owner>
  <summary>
    The time it took between the Native Client plugin initialization and when
    proxied execution of the NaCl module begins. This is the general startup
    overhead of running as a NaCl module vs a trusted PPAPI plugin.
  </summary>
</histogram>

<histogram name="NaCl.NexeStartupTimePerMB" units="milliseconds/MB">
  <obsolete>
    Deprecated 6/2011, renamed.
  </obsolete>
  <owner>adamk@chromium.org</owner>
  <summary>
    The time it took between the Native Client plugin initialization and when
    proxied execution of the NaCl module begins. This is the general startup
    overhead of running as a NaCl module vs a trusted PPAPI plugin.
  </summary>
</histogram>

<histogram name="NaCl.Options.PNaCl.OptLevel" enum="PNaClOptionsOptLevelEnum">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The optimization level set for the initial Portable Native Client
    translation from bitcode to native code.
  </summary>
</histogram>

<histogram name="NaCl.OSArch" enum="NaClOSArchEnum">
  <obsolete>
    Deprecated 6/2011, renamed.
  </obsolete>
  <owner>adamk@chromium.org</owner>
  <summary>The OS/Architecture of a nexe that was loaded.</summary>
</histogram>

<histogram name="NaCl.Perf.PNaClCache.IsHit" enum="PNaClTranslationCacheEnum">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    Did the Portable Native Client translation cache find an executable
    translated from bitcode?
  </summary>
</histogram>

<histogram name="NaCl.Perf.PNaClLoadTime.CompileKBPerSec" units="KB/s">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The rate for compiling a Portable Native Client bitcode file to an object
    file in Kilobytes per second.
  </summary>
</histogram>

<histogram name="NaCl.Perf.PNaClLoadTime.CompileTime" units="ms">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The time it took to compile a Portable Native Client bitcode file to an
    object file.
  </summary>
</histogram>

<histogram name="NaCl.Perf.PNaClLoadTime.LinkTime" units="ms"
    expires_after="2019-12-31">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The time it took to link a Portable Native Client generated object file into
    a Native Client executable.
  </summary>
</histogram>

<histogram name="NaCl.Perf.PNaClLoadTime.LoadCompiler" units="ms">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The time it took to load and validate the Portable Native Client compiler.
  </summary>
</histogram>

<histogram name="NaCl.Perf.PNaClLoadTime.LoadLinker" units="ms"
    expires_after="2019-12-31">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The time it took to load and validate the Portable Native Client linker.
  </summary>
</histogram>

<histogram name="NaCl.Perf.PNaClLoadTime.PctCompiledWhenFullyDownloaded"
    units="%">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The percentage of a Portable Native Client application that is compiled by
    the time the application is fully downloaded (compile and download happen in
    parallel).
  </summary>
</histogram>

<histogram name="NaCl.Perf.PNaClLoadTime.TotalUncachedKBPerSec" units="KB/s">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The rate for completely translating a Portable Native Client bitcode file
    into a Native Client executable and caching the result in Kilobytes per
    second.
  </summary>
</histogram>

<histogram name="NaCl.Perf.PNaClLoadTime.TotalUncachedTime" units="ms">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The total time it took to completely translate a Portable Native Client
    bitcode file into a Native Client executable, and cache the result.
  </summary>
</histogram>

<histogram name="NaCl.Perf.ShutdownTime.Total" units="ms"
    expires_after="2019-12-31">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>The time it took the NaCl module to shut down.</summary>
</histogram>

<histogram name="NaCl.Perf.Size.Manifest" units="KB" expires_after="2019-12-31">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>The size of the manifest file.</summary>
</histogram>

<histogram name="NaCl.Perf.Size.Nexe" units="KB">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The size of the main .nexe file downloaded for a Native Client module.
  </summary>
</histogram>

<histogram name="NaCl.Perf.Size.Pexe" units="KB" expires_after="2019-12-31">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The size of the main .pexe bitcode file downloaded for a Portable Native
    Client module.
  </summary>
</histogram>

<histogram name="NaCl.Perf.Size.PexeNexeSizePct" units="%">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The size of the main .pexe bitcode file divided by the size of the .nexe
    that is the result of translating the bitcode file, times 100.
  </summary>
</histogram>

<histogram name="NaCl.Perf.Size.PNaClTranslatedNexe" units="KB">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The size of the main .nexe file that is the result of translating a Portable
    Native Client .pexe bitcode file. This reflects the amount of cache
    consumed.
  </summary>
</histogram>

<histogram name="NaCl.Perf.StartupTime.LoadModule" units="ms"
    expires_after="2019-12-31">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>The time it took to load the NaCl module into sel_ldr.</summary>
</histogram>

<histogram name="NaCl.Perf.StartupTime.LoadModulePerMB" units="milliseconds/MB"
    expires_after="2019-12-31">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The time it took to load the NaCl module into sel_ldr. Normalized by the
    size of the .nexe, in megabytes.
  </summary>
</histogram>

<histogram name="NaCl.Perf.StartupTime.ManifestDownload" units="ms"
    expires_after="2019-12-31">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The time it took to download the manifset file for a Native Client module.
  </summary>
</histogram>

<histogram name="NaCl.Perf.StartupTime.NaClOverhead" units="ms"
    expires_after="2019-12-31">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The time it took between the Native Client plugin initialization and when
    proxied execution of the NaCl module begins. This is the general startup
    overhead of running as a NaCl module vs a trusted PPAPI plugin.
  </summary>
</histogram>

<histogram name="NaCl.Perf.StartupTime.NaClOverheadPerMB"
    units="milliseconds/MB">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The time it took between the Native Client plugin initialization and when
    proxied execution of the NaCl module begins. This is the general startup
    overhead of running as a NaCl module vs a trusted PPAPI plugin. Normalized
    by the size of the .nexe, in megabytes.
  </summary>
</histogram>

<histogram name="NaCl.Perf.StartupTime.NexeDownload" units="ms"
    expires_after="2019-12-31">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The time it took to download the main .nexe for a Native Client module.
  </summary>
</histogram>

<histogram name="NaCl.Perf.StartupTime.NexeDownloadPerMB"
    units="milliseconds/MB">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The time it took to download the main .nexe for a Native Client module.
    Normalized by the size of the .nexe, in megabytes.
  </summary>
</histogram>

<histogram name="NaCl.Perf.StartupTime.Total" units="ms">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The time it took between the Native Client plugin initialization and when
    the NaCl module is ready to be used.
  </summary>
</histogram>

<histogram name="NaCl.Perf.StartupTime.TotalPerMB" units="milliseconds/MB"
    expires_after="2019-12-31">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    The time it took between the Native Client plugin initialization and when
    the NaCl module is ready to be used. Normalized by the size of the .nexe, in
    megabytes.
  </summary>
</histogram>

<histogram name="NaCl.Startups" enum="NaClStartupEnum">
  <obsolete>
    Deprecated 5/2011, data is duplicated by NaCl.NexeStartupTime, and
    normalizing to 'tab opens' is unusual.
  </obsolete>
  <owner>adamk@chromium.org</owner>
  <summary>
    The number of times that Native Client has been started by loading a .nexe
    compared to the number of times that a tab has been opened.
  </summary>
</histogram>

<histogram name="NaCl.ValidationCache.Query" enum="NaClValidationCacheEnum">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    Did a validation cache query find a previously known validation result?
  </summary>
</histogram>

<histogram name="NaCl.ValidationCache.Set" enum="NaClValidationCacheEnum"
    expires_after="2019-12-31">
  <owner>dschuff@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>bbudge@chromium.org</owner>
  <summary>
    Was the validation cache updated with a new validation result?
  </summary>
</histogram>

<histogram name="NativeAppLauncher.InstallationDetected"
    enum="BooleanInstalled">
  <owner>jif@chromium.org</owner>
  <summary>
    The number of times that Chrome detected that a request to download and
    install another Google iOS app completed successfully.
  </summary>
</histogram>

<histogram name="NativeSmbFileShare.AuthenticationMethod"
    enum="NativeSmbFileShare_AuthMethod">
  <owner>zentaro@chromium.org</owner>
  <summary>
    The method used to authenticate to a share. This is called on each attempted
    mount.
  </summary>
</histogram>

<histogram name="NativeSmbFileShare.MountCount">
  <owner>zentaro@chromium.org</owner>
  <summary>
    The number of active mounts that a user has. This is recorded after a share
    has been successfully mounted.
  </summary>
</histogram>

<histogram name="NativeSmbFileShare.MountResult"
    enum="NativeSmbFileShare_MountResult">
  <owner>zentaro@chromium.org</owner>
  <summary>
    The result of the mount operation for Native SMB File Share. This is
    recorded after the D-Bus call to Mount returns.
  </summary>
</histogram>

<histogram name="NativeSmbFileShare.ReadDirectoryCount">
  <owner>zentaro@chromium.org</owner>
  <summary>
    The number of entries read when calling ReadDirectory. This is recorded
    after the D-Bus call to ReadDirectory returns.
  </summary>
</histogram>

<histogram name="NativeSmbFileShare.ReadDirectoryDuration" units="ms">
  <owner>zentaro@chromium.org</owner>
  <summary>
    The duration of ReadDirectory call to SmbProvider in milliseconds. This is
    recorded after the D-Bus call returns.
  </summary>
</histogram>

<histogram name="NativeSmbFileShare.RemountResult"
    enum="NativeSmbFileShare_MountResult">
  <owner>zentaro@chromium.org</owner>
  <summary>
    The result of the Remount operation during startup. This is recorded after
    the D-Bus call to Remount returns.
  </summary>
</histogram>

<histogram name="Navigation.BackForward.AllBackTargetsSkippable" enum="Boolean"
    expires_after="2019-12-31">
  <owner>shivanisha@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    This metric logs true if all the previous entries are marked to be skipped
    on back/forward button via the history manipulation intervention. This is
    logged when back button is pressed (see crbug.com/907167). The goal of the
    intervention is to intervene against pages that manipulate browser history
    such that the user is not able to use the back button to go to the previous
    site they interacted with.
  </summary>
</histogram>

<histogram name="Navigation.BackForward.BackTargetSkipped">
  <owner>shivanisha@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    This metric counts the number of entries the history manipulation
    intervention would have skipped when the user presses the back button (see
    crbug.com/907167). The goal of the intervention is to intervene against
    pages that manipulate browser history such that the user is not able to use
    the back button to go to the previous site they interacted with.
  </summary>
</histogram>

<histogram name="Navigation.BackForward.CacheFlags" enum="NavigationCacheEnum">
  <owner>clamy@chromium.org</owner>
  <summary>The cache flags set on back-forward navigations.</summary>
</histogram>

<histogram name="Navigation.BackForward.ForwardTargetSkipped">
  <owner>shivanisha@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    This metric counts the number of entries the history manipulation
    intervention would have skipped when the user presses the forward button
    (see crbug.com/907167). The goal of the intervention is to intervene against
    pages that manipulate browser history such that the user is not able to use
    the back button to go to the previous site they interacted with.
  </summary>
</histogram>

<histogram name="Navigation.BackForward.IsSameProcess"
    enum="NavigationIsSameProcess">
  <obsolete>
    Deprecated 2018-02, replaced by Navigation.IsSameProcess.BackForward.
  </obsolete>
  <owner>clamy@chromium.org</owner>
  <summary>
    Whether the back-forward navigation lead to a change of process or not.
  </summary>
</histogram>

<histogram name="Navigation.BackForward.NavigatingToEntryMarkedToBeSkipped"
    enum="Boolean" expires_after="2019-12-31">
  <owner>shivanisha@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    This metric logs true if the existing entry being navigated to is marked to
    be skipped on back/forward UI. This is logged at the start of navigation
    initiated using long-press back/forward button.
  </summary>
</histogram>

<histogram name="Navigation.BackForward.ReadyToCommitUntilCommit" units="ms">
  <obsolete>
    Deprecated 2018-02, replaced by
    Navigation.ReadyToCommitUntilCommit.BackForward.
  </obsolete>
  <owner>clamy@chromium.org</owner>
  <summary>
    The time needed to commit a back forward-navigation once it is ready to
    commit. This is the time between ReadyToCommit and DidFinishNavigation (for
    a navigation that commits).
  </summary>
</histogram>

<histogram name="Navigation.BackForward.SetShouldSkipOnBackForwardUI"
    enum="Boolean">
  <owner>shivanisha@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Whether an entry in the back-forward list is marked to be skipped on
    subsequent back/forward button clicks as part of the history manipulation
    intervention. This is logged when the entry is navigated away from. The goal
    is to intervene against pages that manipulate browser history such that the
    user is not able to use the back button to go to the previous site they
    interacted with.
  </summary>
</histogram>

<histogram name="Navigation.BackForward.TimeToReadyToCommit" units="ms">
  <obsolete>
    Deprecated 2018-02, replaced by Navigation.TimeToReadyToCommit.BackForward.
  </obsolete>
  <owner>clamy@chromium.org</owner>
  <summary>
    The time delta between the start of a back-forward navigation and the time
    it was ready to commit.
  </summary>
</histogram>

<histogram name="Navigation.BackForward.WasCached"
    enum="NavigationWasServedFromCache">
  <owner>clamy@chromium.org</owner>
  <summary>Whether the back-forward navigation was served from cache.</summary>
</histogram>

<histogram name="Navigation.ClearSiteData.Duration" units="ms">
  <owner>msramek@chromium.org</owner>
  <summary>
    Recorded when a navigation is deferred while clearing site data. Indicates
    how much time the clearing took.
  </summary>
</histogram>

<histogram name="Navigation.ClearSiteData.Parameters"
    enum="ClearSiteDataParameters">
  <owner>msramek@chromium.org</owner>
  <summary>
    The parameters of the Clear-Site-Data header. Recorded when the header is
    successfully parsed.
  </summary>
</histogram>

<histogram name="Navigation.DeferredDocumentLoading.StatesV1"
    enum="DocumentStateForDeferredLoading">
  <obsolete>
    Deprecated 10/2016 in favor of Navigation.DeferredDocumentLoading.StatesV2.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Why and if cross-origin documents would be loaded in a world where we defer
    loading until they are visible.
  </summary>
</histogram>

<histogram name="Navigation.DeferredDocumentLoading.StatesV2"
    enum="DocumentStateForDeferredLoadingV2">
  <obsolete>
    Deprecated 10/2016 in favor of Navigation.DeferredDocumentLoading.StatesV3.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Why and if cross-origin documents would be loaded if we were to defer
    loading as long as possible.
  </summary>
</histogram>

<histogram name="Navigation.DeferredDocumentLoading.StatesV3"
    enum="DocumentStateForDeferredLoadingV3">
  <obsolete>
    Deprecated 3/2017 in favor of Navigation.DeferredDocumentLoading.StatesV4.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Why and if cross-origin documents would be loaded if we were to defer
    loading as long as possible. Difference from V2: frames positioned both
    above and to the left of the page have their own bucket and are no longer
    counted in the &quot;above&quot; bucket.
  </summary>
</histogram>

<histogram name="Navigation.DeferredDocumentLoading.StatesV4"
    enum="DocumentStateForDeferredLoadingV4">
  <obsolete>
    Deprecated 11/2018 because LazyLoading has real stats now.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Why and if cross-origin documents would be loaded if we were to defer
    loading as long as possible. Changes from V3: replace detailed reasons with
    summaries for four strategies. E.g. any document that would load under a
    strategy of loading when a frame is two screens away is logged to the
    WouldLoad2Screens AND WouldLoad3Screens bucket. We only record documents
    below the current viewport, not to the right of it.
  </summary>
</histogram>

<histogram name="Navigation.DownloadPolicy" enum="NavigationDownloadPolicy"
    expires_after="2019-11-01">
  <owner>csharrison@chromium.org</owner>
  <owner>yaoxia@chromium.org</owner>
  <summary>
    When a navigation results in a download, logs the download policy applied to
    that navigation.
  </summary>
</histogram>

<histogram name="Navigation.EngagementTime.HTTP" units="ms">
  <owner>felt@chromium.org</owner>
  <summary>
    The amount of time that an HTTP page was in the foreground. Recorded on
    every page close/transition.
  </summary>
</histogram>

<histogram name="Navigation.EngagementTime.HTTPS" units="ms">
  <owner>felt@chromium.org</owner>
  <summary>
    The amount of time that an HTTPS page was in the foreground. Recorded on
    every page close/transition.
  </summary>
</histogram>

<histogram name="Navigation.EngagementTime.Ratio" units="%">
  <owner>felt@chromium.org</owner>
  <summary>
    The percentage of time that HTTPS pages were in the foreground, as compared
    to total foreground time. Recorded whenever user metrics are uploaded.
  </summary>
</histogram>

<histogram name="Navigation.FrameHasEmbeddedCredentials" enum="Boolean">
  <obsolete>
    Deprecated 03/2017 in Issue 703460.
  </obsolete>
  <owner>palmer@chromium.org</owner>
  <summary>
    Whether the navigation was to a URL that had embedded credentials.
  </summary>
</histogram>

<histogram name="Navigation.Intercept.Ignored" enum="Boolean">
  <owner>csharrison@chromium.org</owner>
  <summary>
    Records whether the InterceptNavigationThrottle ignored the navigation. This
    is recorded at the end of every navigation the throttle observes.
  </summary>
</histogram>

<histogram name="Navigation.Intercept.WillStart" units="microseconds">
  <owner>csharrison@chromium.org</owner>
  <summary>
    The microseconds it takes for the InterceptNavigationThrottle to determine
    if the navigation should be ignored, at WillStartRequest time.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Navigation.IOSWKWebViewSlowFastBackForward"
    enum="BackForwardNavigationType">
  <owner>eugenebut@chromium.org</owner>
  <summary>
    Counts slow/fast back/forward WKWebView navigations on iOS. Fast navigation
    is a back/forward navigation done with WKBackForwardList.
  </summary>
</histogram>

<histogram name="Navigation.IsMobileOptimized" enum="BooleanIsMobileOptimized">
  <obsolete>
    Removed from code March 2018.
  </obsolete>
  <owner>cjhopman@chromium.org</owner>
  <owner>nyquist@chromium.org</owner>
  <summary>
    Signifies whether a succesfully finished page load for the main frame
    content width fits within the device width and/or has a fixed page scale.
  </summary>
</histogram>

<histogram name="Navigation.IsSameProcess" enum="NavigationIsSameProcess">
  <owner>clamy@chromium.org</owner>
  <owner>nasko@chromium.org</owner>
  <summary>Whether the navigation led to a change of process or not.</summary>
</histogram>

<histogram name="Navigation.LoadIfNecessaryType"
    enum="NavigationNeedsReloadType">
  <owner>boliu@chromium.org</owner>
  <owner>alexmos@chromium.org</owner>
  <summary>
    The type of the source of a load from LoadIfNecessary. Recorded when
    LoadIfNecessary starts a page load. For example, on Android,
    kRequestedByClient is recorded when user switch back to a tab with a dead
    renderer, which causes the tab to reload.
  </summary>
</histogram>

<histogram name="Navigation.MainFrameHasEmbeddedCredentials" enum="Boolean">
  <obsolete>
    Deprecated 03/2017 in Issue 703460.
  </obsolete>
  <owner>palmer@chromium.org</owner>
  <summary>
    Whether the main-frame navigation was to a URL that had embedded
    credentials.
  </summary>
</histogram>

<histogram name="Navigation.MainFrameScheme" enum="NavigationScheme">
  <owner>elawrence@chromium.org</owner>
  <owner>estark@chromium.org</owner>
  <summary>The scheme of the URL for each main-frame navigation.</summary>
</histogram>

<histogram name="Navigation.MainFrameScheme.DataUrl.MimeType"
    enum="DataUrlMimeType">
  <obsolete>
    Removed from code October 2017.
  </obsolete>
  <owner>meacer@chromium.org</owner>
  <summary>
    The mime type of the data: URL for each main-frame navigation. This only
    contains mime types that can run scripts.
  </summary>
</histogram>

<histogram name="Navigation.MainFrameSchemeDifferentPage"
    enum="NavigationScheme">
  <owner>elawrence@chromium.org</owner>
  <owner>estark@chromium.org</owner>
  <summary>
    The scheme of the URL for each main-frame navigation that replaces a
    document object. This is not reported for reference fragment navigations,
    pushState/replaceState or same page history navigation.
  </summary>
</histogram>

<histogram name="Navigation.MainFrameSchemeDifferentPageOTR"
    enum="NavigationScheme">
  <owner>elawrence@chromium.org</owner>
  <owner>estark@chromium.org</owner>
  <summary>
    The scheme of the URL for each main-frame navigation that replaces a
    document object while in incognito. This is not reported for reference
    fragment navigations, pushState/replaceState or same page history
    navigation.
  </summary>
</histogram>

<histogram name="Navigation.MainFrameSchemeOTR" enum="NavigationScheme">
  <owner>elawrence@chromium.org</owner>
  <owner>estark@chromium.org</owner>
  <summary>
    The scheme of the URL for each main-frame navigation while in incognito.
  </summary>
</histogram>

<histogram name="Navigation.NavigationURLLoaderImplIOPostTime"
    units="microseconds" expires_after="M79">
  <owner>jam@chromium.org</owner>
  <owner>kinuko@chromium.org</owner>
  <summary>
    The sum of all the times spent posting tasks between the UI and IO threads
    inside NavigationURLLoaderImpl. Recorded when each frame navigation gets the
    response.

    Note: This metric drops reports on clients with low-resolution clocks, which
    means these reports will be biased against a portion of the population on
    Windows. See Windows.HasHighResolutionTimeTicks for the affected sample.
  </summary>
</histogram>

<histogram name="Navigation.OnBeforeUnloadOverheadTime" units="ms">
  <owner>carlosk@chromium.org</owner>
  <summary>
    Overhead time spent handling the OnBeforeUnload event from the browser
    standpoint. More precisely, it is the total time between dispatch and
    acknowledgment of the BeforeUnload event on the browser side, minus the
    actual time spent executing the BeforeUnload handlers on the renderer side.
  </summary>
</histogram>

<histogram name="Navigation.ReadyToCommitUntilCommit" units="ms">
  <obsolete>
    Deprecated 2019-01 (M73), replaced by Navigation.ReadyToCommitUntilCommit2
    (same histogram, different bucketing).
  </obsolete>
  <owner>clamy@chromium.org</owner>
  <owner>nasko@chromium.org</owner>
  <summary>
    The time needed to commit a navigation once it is ready to commit. This is
    the time between ReadyToCommit and DidFinishNavigation (for a navigation
    that commits).
  </summary>
</histogram>

<histogram name="Navigation.ReadyToCommitUntilCommit2" units="ms">
  <owner>clamy@chromium.org</owner>
  <owner>nasko@chromium.org</owner>
  <summary>
    The time needed to commit a navigation once it is ready to commit. This is
    the time between ReadyToCommit and DidFinishNavigation (for a navigation
    that commits).
  </summary>
</histogram>

<histogram name="Navigation.RedirectChainSize" units="characters">
  <obsolete>
    Removed January 2019 because it wasn't used.
  </obsolete>
  <owner>donnd@chromium.org</owner>
  <summary>
    Total length of the redirect URL strings in navigation entry. Logged when
    entry is committed.
  </summary>
</histogram>

<histogram name="Navigation.Reload.ReloadMainResourceToReloadDuration"
    units="ms">
  <owner>toyoshim@chromium.org</owner>
  <summary>
    Reported when a user triggers reload without any other navigations after the
    previous reload in the same page, and the previous reload variant was
    RELOAD_MAIN_RESOURCE. Duration time between two reloads is reported.
  </summary>
</histogram>

<histogram name="Navigation.Reload.ReloadToReloadDuration" units="ms">
  <owner>toyoshim@chromium.org</owner>
  <summary>
    Reported when a user triggers reload without any other navigations after the
    previous reload in the same page. Duration time between two reloads is
    reported.
  </summary>
</histogram>

<histogram name="Navigation.Renderer.ReadyToCommitUntilCommit" units="ms">
  <owner>arthursonzogni@chromium.org</owner>
  <owner>clamy@chromium.org</owner>
  <owner>nasko@chromium.org</owner>
  <summary>
    The time needed in the renderer process between receiving the message to
    commit the navigation until the navigation has committed.
  </summary>
</histogram>

<histogram
    name="Navigation.ResourceHandler.ProceedWithResponseUntilFirstReadCompleted"
    units="ms">
  <obsolete>
    Obsolete as of 06/2018.
  </obsolete>
  <owner>arthursonzogni@chromium.org</owner>
  <owner>clamy@chromium.org</owner>
  <owner>nasko@chromium.org</owner>
  <summary>
    The time delta between when the ResourceHandler is allowed to read the
    response's body and when it has completed its first read.
  </summary>
</histogram>

<histogram
    name="Navigation.ResourceHandler.ResponseStartedUntilProceedWithResponse"
    units="ms">
  <obsolete>
    Obsolete as of 06/2018.
  </obsolete>
  <owner>arthursonzogni@chromium.org</owner>
  <owner>clamy@chromium.org</owner>
  <owner>nasko@chromium.org</owner>
  <summary>
    The time delta between when the ResourceHandler started receiving the
    response and when it is allowed to read the response's body.
  </summary>
</histogram>

<histogram name="Navigation.Scheduled.MaybeCausedAbort"
    enum="ScheduledNavigationType" expires_after="2018-08-30">
  <obsolete>
    Deprecated August 2018
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    window.location and other scheduled navigation changes can cause the current
    provisional load to be aborted. Many times these are initiated without user
    gesture. This histogram logs counts of the various aborters.
  </summary>
</histogram>

<histogram name="Navigation.Scheduled.MaybeCausedAbort.Time" units="ms"
    expires_after="2018-08-30">
  <obsolete>
    Deprecated August 2018
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    window.location and other scheduled navigation changes can cause the current
    provisional load to be aborted. Many times these are initiated without user
    gesture. This histogram logs the time between the aborted navigation start
    and the scheduled navigation start, if the aborted navigation has a non-zero
    navigationStart value.
  </summary>
</histogram>

<histogram name="Navigation.SchemePerUniqueOrigin" enum="NavigationScheme">
  <obsolete>
    Deprecated 4/2017 in Issue 712843.
  </obsolete>
  <owner>palmer@chromium.org</owner>
  <owner>felt@chromium.org</owner>
  <summary>
    The scheme of the URL for the first main-frame navigation per origin per
    non-OffTheRecord session.
  </summary>
</histogram>

<histogram name="Navigation.SchemePerUniqueOriginOTR" enum="NavigationScheme">
  <obsolete>
    Deprecated 4/2017 in Issue 712843.
  </obsolete>
  <owner>palmer@chromium.org</owner>
  <owner>felt@chromium.org</owner>
  <summary>
    The scheme of the URL for the first main-frame navigation per origin per
    OffTheRecord session.
  </summary>
</histogram>

<histogram name="Navigation.SecureSchemeHasSSLStatus" enum="BooleanPresent">
  <owner>jam@chromium.org</owner>
  <summary>
    True counts the events when a https URL commits with a SSL certificate.
    False is when the certificate is missing. This should be at 100%, anything
    less is probably a bug.
  </summary>
</histogram>

<histogram name="Navigation.Start.RendererBrowserDifference.Negative"
    units="ms">
  <obsolete>
    Data collected and posted on issue 675833.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The difference between Now() in the renderer and browser_navigation_start
    for browser-initiated navigations if the difference is negative. This value
    should ideally only reflect the IPC time between the browser process and
    renderer process, but in practice could be skewed by inter-process timing
    errors. If the clocks used for TimeTicks are monotonic across processes, all
    samples should fall into the Positive bucket.
  </summary>
</histogram>

<histogram name="Navigation.Start.RendererBrowserDifference.Positive"
    units="ms">
  <obsolete>
    Data collected and posted on issue 675833.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The difference between Now() in the renderer and browser_navigation_start
    for browser-initiated navigations if the difference is positive. This value
    should ideally only reflect the IPC time between the browser process and
    renderer process, but in practice could be skewed by inter-process timing
    errors. If the clocks used for TimeTicks are monotonic across processes, all
    samples should fall into the Positive bucket.
  </summary>
</histogram>

<histogram name="Navigation.StartToCommit" units="ms">
  <owner>csharrison@chromium.org</owner>
  <owner>nasko@chromium.org</owner>
  <summary>
    The time delta between the start of a navigation and the time it is
    committed.
  </summary>
</histogram>

<histogram name="Navigation.TimeToCommit" units="ms">
  <obsolete>
    Deprecated March 2018 in favor of Navigation.StartToCommit variants.
  </obsolete>
  <owner>carlosk@chromium.org</owner>
  <summary>
    Time between the start of a browser-started navigation request in and its
    commit.
  </summary>
</histogram>

<histogram name="Navigation.TimeToReadyToCommit" units="ms">
  <obsolete>
    Deprecated 2019-01 (M73), replaced by Navigation.TimeToReadyToCommit2 (same
    histogram, different bucketing).
  </obsolete>
  <owner>clamy@chromium.org</owner>
  <owner>nasko@chromium.org</owner>
  <summary>
    The time delta between the start of a navigation and the time it is ready to
    commit.
  </summary>
</histogram>

<histogram name="Navigation.TimeToReadyToCommit2" units="ms">
  <owner>clamy@chromium.org</owner>
  <owner>nasko@chromium.org</owner>
  <summary>
    The time delta between the start of a navigation and the time it is ready to
    commit.
  </summary>
</histogram>

<histogram name="Navigation.TimeToURLJobStart" units="ms">
  <owner>carlosk@chromium.org</owner>
  <summary>
    Time between the start of a browser-started navigation request and the
    reception of a corresponding ResourceRequest in the network stack.
  </summary>
</histogram>

<histogram name="Navigation.UI_OnCommitProvisionalLoad.Intent" units="ms">
  <obsolete>
    Deprecated 06/2018 in favor of PageLoad metrics.
  </obsolete>
  <owner>clamy@chromium.org</owner>
  <summary>
    Obsolete. Time between receiving an Android Intent and the navigation
    commit.
  </summary>
</histogram>

<histogram name="Navigation.UI_OnCommitProvisionalLoad.Link" units="ms">
  <obsolete>
    Deprecated 06/2018 in favor of PageLoad metrics.
  </obsolete>
  <owner>clamy@chromium.org</owner>
  <summary>
    Obsolete. Time between clicking on a link and the navigation commit.
  </summary>
</histogram>

<histogram name="Navigation.UI_OnLoadComplete.Intent" units="ms">
  <obsolete>
    Deprecated 06/2018 in favor of PageLoad metrics.
  </obsolete>
  <owner>clamy@chromium.org</owner>
  <summary>
    Obsolete. Time between receiving an Android intent and the document load
    complete event for a navigation in the main frame.
  </summary>
</histogram>

<histogram name="Navigation.UI_OnLoadComplete.Link" units="ms">
  <obsolete>
    Deprecated 06/2018 in favor of PageLoad metrics.
  </obsolete>
  <owner>clamy@chromium.org</owner>
  <summary>
    Obsolete. Time between clicking on a link and the document load complete
    event for a navigation in the main frame.
  </summary>
</histogram>

<histogram
    name="Navigation.URLLoaderNetworkService.OnCompleteCertificateChainsSize"
    units="KB">
  <owner>estark@chromium.org</owner>
  <summary>
    When the navigation URL loader receives an OnComplete message from the
    network service that contains certificate chains, this histogram records the
    size in KB of those pickled certificate chains. This histogram is recorded
    by the navigation URLLoader for navigations that fetch from network, for
    every request which contains an SSLInfo in its OnComplete notification.
  </summary>
</histogram>

<histogram name="Navigation.URLLoaderNetworkService.OnCompleteHasSSLInfo"
    enum="BooleanPresent">
  <owner>estark@chromium.org</owner>
  <summary>
    Whether the network service's OnComplete message to the navigation URL
    loader contains an SSLInfo, which should only be present for main-frame
    requests with certificate errors. This histogram is recorded for every
    request completion by the navigation URL loader that fetches from network.
  </summary>
</histogram>

<histogram base="true" name="NavigationPredictor.AccuracyActionTaken"
    enum="NavigationPredictorAccuracyActionTaken">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Tracks the accuracy of the action taken by navigation predictor. Recorded at
    the time of page click.
  </summary>
</histogram>

<histogram base="true" name="NavigationPredictor.ActionTaken"
    enum="NavigationPredictorActionTaken">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Tracks action taken by navigation predictor. Recorded at the time of page
    load.
  </summary>
</histogram>

<histogram name="NavigationSuggestion.Event" enum="NavigationSuggestionEvent">
  <owner>meacer@chromium.org</owner>
  <summary>
    Tracks events when the currently navigated domain name is a lookalike to one
    of the top 10K domains or a domain that the user interacted with, resulting
    in a navigation suggestion interstitial.
  </summary>
</histogram>

<histogram name="NCN.CellularConnectionSubtype" enum="ConnectionSubtype">
  <owner>bmcquade@chromium.org</owner>
  <summary>
    The connection subtype of the network the client is connected to, when the
    client is on a cellular connection. This histogram is logged once per UMA
    record, if the user is on a cellular connection, at the time the record is
    finalized.
  </summary>
</histogram>

<histogram name="NCN.CM.FastestRTTOn2G" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Rough estimate of the fastest round-trip-time seen on a 2G connection,
    before the NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.FastestRTTOn3G" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Rough estimate of the fastest round-trip-time seen on a 3G connection,
    before the NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.FastestRTTOn4G" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Rough estimate of the fastest round-trip-time seen on a 4G connection,
    before the NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.FastestRTTOnBluetooth" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Rough estimate of the fastest round-trip-time seen on a Bluetooth
    connection, before the NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.FastestRTTOnEthernet" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Rough estimate of the fastest round-trip-time seen on an Ethernet
    connection, before the NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.FastestRTTOnNone" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Rough estimate of the fastest round-trip-time seen while the
    NetworkChangeNotifier thought there was no network connection, before the
    NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.FastestRTTOnUnknown" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Rough estimate of the fastest round-trip-time seen on an unknown connection
    type, before the NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.FastestRTTOnWifi" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Rough estimate of the fastest round-trip-time seen on a Wifi connection,
    before the NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.FirstReadOn2G" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Time between switching to a 2G connection and receiving the first network
    data.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.FirstReadOn3G" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Time between switching to a 3G connection and receiving the first network
    data.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.FirstReadOn4G" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Time between switching to a 4G connection and receiving the first network
    data.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.FirstReadOnBluetooth" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Time between switching to a Bluetooth connection and receiving the first
    network data.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.FirstReadOnEthernet" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Time between switching to an Ethernet connection and receiving the first
    network data.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.FirstReadOnNone" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Time between disconnecting and receiving the first network data.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.FirstReadOnUnknown" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Time between switching to an unknown connection type and receiving the first
    network data.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.FirstReadOnWifi" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Time between switching to a Wifi connection and receiving the first network
    data.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.KBTransferedOn2G" units="KB">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    How much data was transfered while connected via a 2G connection, before the
    NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.KBTransferedOn3G" units="KB">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    How much data was transfered while connected via a 3G connection, before the
    NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.KBTransferedOn4G" units="KB">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    How much data was transfered while connected via a 4G connection, before the
    NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.KBTransferedOnBluetooth" units="KB">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    How much data was transfered while connected via a Bluetooth connection,
    before the NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.KBTransferedOnEthernet" units="KB">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    How much data was transfered while connected via an Ethernet connection,
    before the NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.KBTransferedOnNone" units="KB">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    How much data was transfered while the NetworkChangeNotifier thought there
    was no network connection, before the NetworkChangeNotifier detected a
    connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.KBTransferedOnUnknown" units="KB">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    How much data was transfered while connected via an unknown connection type,
    before the NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.KBTransferedOnWifi" units="KB">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    How much data was transfered while connected via a Wifi connection, before
    the NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.PeakKbpsOn2G" units="Kbps">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Rough estimate of peak throughput seen on a 2G connection, before the
    NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.PeakKbpsOn3G" units="Kbps">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Rough estimate of peak throughput seen on a 3G connection, before the
    NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.PeakKbpsOn4G" units="Kbps">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Rough estimate of peak throughput seen on a 4G connection, before the
    NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.PeakKbpsOnBluetooth" units="Kbps">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Rough estimate of peak throughput seen on a Bluetooth connection, before the
    NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.PeakKbpsOnEthernet" units="Kbps">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Rough estimate of peak throughput seen on an Ethernet connection, before the
    NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.PeakKbpsOnNone" units="Kbps">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Rough estimate of peak throughput seen while the NetworkChangeNotifier
    thought there was no network connection, before the NetworkChangeNotifier
    detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.PeakKbpsOnUnknown" units="Kbps">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Rough estimate of peak throughput seen on an unknown connection type, before
    the NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.PeakKbpsOnWifi" units="Kbps">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Rough estimate of peak throughput seen on a Wifi connection, before the
    NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.TimeOn2G" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    How long was spent connected via a 2G connection, before the
    NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.TimeOn3G" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    How long was spent connected via a 3G connection, before the
    NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.TimeOn4G" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    How long was spent connected via a 4G connection, before the
    NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.TimeOnBluetooth" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    How long was spent connected via a Bluetooth connection, before the
    NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.TimeOnEthernet" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    How long was spent connected via an Ethernet connection, before the
    NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.TimeOnNone" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    How long was spent disconnected, before the NetworkChangeNotifier detected a
    connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.TimeOnUnknown" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    How long was spent connected via an unknown connection type, before the
    NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.CM.TimeOnWifi" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    How long was spent connected via a Wifi connection, before the
    NetworkChangeNotifier detected a connectivity change.

    This metric is recorded when the NetworkChangeNotifier detects a
    connectivity change. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NCN.ConnectionTypeChangeToIPAddressChange" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Time from ConnectionTypeChanged message until IPAddressChanged message.
  </summary>
</histogram>

<histogram name="NCN.DNSConfigChange" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>Time between DNS configuration change messages.</summary>
</histogram>

<histogram name="NCN.GetActiveNetworkInfoResult"
    enum="NCNGetActiveNetworkInfoResult">
  <obsolete>
    Deprecated 05/2017 in Issue 677365.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Records the result of querying the network info of the current active
    network. Useful for investigating how frequently the current network was
    unblocked, and why it was not unblocked. See http://crbug.com/677365.
  </summary>
</histogram>

<histogram name="NCN.GetConnectionTypeTime" units="ms">
  <owner>pauljensen@chromium.org</owner>
  <summary>
    How long does each call to NetworkChangeNotifier::GetConnectionType() take.
  </summary>
</histogram>

<histogram name="NCN.getNetInfo1stSuccess"
    enum="BooleanAvoidedNullPointerException">
  <obsolete>
    Deprecated 5/2017 for Issue 592131.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    True if the first call to ConnectivityManager.getNetworkInfo(Network) did
    not throw NullPointerException, false if it did. Useful for investigating
    and avoiding unexpected exceptions, see http://crbug.com/592131.
  </summary>
</histogram>

<histogram name="NCN.getNetInfo2ndSuccess"
    enum="BooleanAvoidedNullPointerException">
  <obsolete>
    Deprecated 5/2017 for Issue 592131.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Recorded after the first call to ConnectivityManager.getNetworkInfo(Network)
    threw a NullPointerException. True if the second call to
    ConnectivityManager.getNetworkInfo(Network) did not throw
    NullPointerException, false if it did. Useful for investigating and avoiding
    unexpected exceptions, see http://crbug.com/592131.
  </summary>
</histogram>

<histogram name="NCN.getWifiInfo1stSuccess"
    enum="BooleanAvoidedNullPointerException">
  <obsolete>
    Deprecated 5/2017 for Issue 592131.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    True if the first call to WifiManager.getConnectionInfo() did not throw
    NullPointerException, false if it did. Useful for investigating and avoiding
    unexpected exceptions, see http://crbug.com/592131.
  </summary>
</histogram>

<histogram name="NCN.getWifiInfo2ndSuccess"
    enum="BooleanAvoidedNullPointerException">
  <obsolete>
    Deprecated 5/2017 for Issue 592131.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Recorded after the first call to WifiManager.getConnectionInfo() threw a
    NullPointerException. True if the second call to
    ConnectivityManager.getNetworkInfo(Network) did not throw
    NullPointerException, false if it did. Useful for investigating and avoiding
    unexpected exceptions, see http://crbug.com/592131.
  </summary>
</histogram>

<histogram name="NCN.IPAddressChange" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>Time between IP address change messages.</summary>
</histogram>

<histogram name="NCN.IPAddressChangeToConnectionTypeChange" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Time from IPAddressChanged message until ConnectionTypeChanged message.
  </summary>
</histogram>

<histogram name="NCN.NetworkOfflineChange" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Time between going online until we go offline change messages, using new
    filtered signal.
  </summary>
</histogram>

<histogram name="NCN.NetworkOnlineChange" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Time between going offline until we go online change messages, using new
    filtered signal.
  </summary>
</histogram>

<histogram name="NCN.NetworkOperatorMCCMNC">
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@google.com</owner>
  <summary>
    The MCC (mobile country code) and MNC (mobile network code) of the network
    operator when a new metrics log is created or when the network connection is
    changed. A value of zero means a non-mobile network or the operator code is
    unknown.
  </summary>
</histogram>

<histogram name="NCN.OfflineChange" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Time between going online until we go offline change messages.
  </summary>
</histogram>

<histogram name="NCN.OfflineDataRecv" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Time between when we thought we went offline and when we received some
    network data (a URLRequest read completed).
  </summary>
</histogram>

<histogram name="NCN.OfflineDataRecvAny5sBeforeOnline">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Count of how many times we received network data (a URLRequest read
    completed) while offline when some data was received at most five seconds
    before going online.
  </summary>
</histogram>

<histogram name="NCN.OfflineDataRecvUntilOnline" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Time between when we received the last network data (a URLRequest read
    completed) while offline and when we thought we went online.
  </summary>
</histogram>

<histogram name="NCN.OfflinePolls">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Count of how many times we polled the online/offline status before detecting
    an offline to online transition.
  </summary>
</histogram>

<histogram name="NCN.OnlineChange" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Time between going offline until we go online change messages.
  </summary>
</histogram>

<histogram name="NCN.PollingOfflineDataRecv" units="ms">
  <obsolete>
    Deprecated 6/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Time between when we thought we went offline and when we received some
    network data (a URLRequest read completed), while polling
    NetworkChangeNotifier::GetConnectionType() still told us we were offline.
  </summary>
</histogram>

<histogram name="Net.AlternateProtocolBrokenLocation"
    enum="BrokenAlternateProtocolLocation">
  <owner>rch@chromium.org</owner>
  <summary>
    Breakdown of the locations when SetBrokenAlternateProtocol is called.
  </summary>
</histogram>

<histogram name="Net.AlternateProtocolUsage" enum="AlternateProtocolUsage">
  <owner>rch@chromium.org</owner>
  <summary>
    Breakdown of how requests which could potentially make use of an alternate
    protocol use or don't use the protocol.
  </summary>
</histogram>

<histogram name="Net.AlternateProtocolUsage.1000Truncated"
    enum="AlternateProtocolUsage">
  <obsolete>
    Deprecated 10/2014.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    Breakdown of how requests which could potentially make use of an alternate
    protocol use or don't use the protocol. Loaded data for 1000 servers and we
    have persisted 1000 MRU servers.
  </summary>
</histogram>

<histogram name="Net.AlternateProtocolUsage.200Truncated"
    enum="AlternateProtocolUsage">
  <obsolete>
    Deprecated 10/2014.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    Breakdown of how requests which could potentially make use of an alternate
    protocol use or don't use the protocol. Loaded data for 200 servers and we
    have persisted 1000 MRU servers.
  </summary>
</histogram>

<histogram name="Net.AlternateServiceFailed" enum="NetErrorCodes">
  <owner>tbansal@chromium.org</owner>
  <owner>rch@chromium.org</owner>
  <summary>
    Positive net error codes that failed alternative protocol requests end with.
    Recorded only when an alternative job fails, and the main job succeeds.
  </summary>
</histogram>

<histogram name="Net.AlternativeProxyFailed" enum="NetErrorCodes">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Positive net error codes that failed alternative proxy requests end with.
    Recorded when an alternative job fails, whether or not the main job
    succeeds.

    As of M66 this superceded DataReductionProxy.Quic.OnAlternativeProxyBroken.
  </summary>
</histogram>

<histogram name="Net.AlternativeServiceServers.MoreOrEqualCacheEntries"
    expires_after="2018-08-30">
  <owner>rch@chromium.org</owner>
  <summary>
    The difference between the size of alternative service mappings in cache and
    preferences. This tracks zero or negative values (when the difference
    between preferences size is less than or equal to memory cache size).
    Positive values are tracked by
    Net.AlternativeServiceServers.MorePrefsEntries.
  </summary>
</histogram>

<histogram name="Net.AlternativeServiceServers.MorePrefsEntries">
  <owner>rch@chromium.org</owner>
  <summary>
    The difference between the size of alternative service mappings in
    preferences and cache. This tracks positive values (when the difference
    between preferences size is greater than memory cache size). Non positive
    values are tracked by Net.AlternativeServiceServers.MoreOrEqualCacheEntries.
  </summary>
</histogram>

<histogram name="Net.AlternativeServiceTypeForRequest"
    enum="AlternativeServiceType">
  <owner>bnc@chromium.org</owner>
  <summary>
    Information about the AlternativeService used for each request.
  </summary>
</histogram>

<histogram name="Net.AsyncResourceHandler_PendingDataCount">
  <obsolete>
    Deprecated 03/2015.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The count of unacknowledged ResourceMsg_DataReceived messages. This message
    is sent once per chunk of data read from the network.
  </summary>
</histogram>

<histogram name="Net.AsyncResourceHandler_PendingDataCount_WhenFull">
  <obsolete>
    Deprecated 03/2015.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The count of unacknowledged ResourceMsg_DataReceived messages at the point
    where we pause network loading.
  </summary>
</histogram>

<histogram name="Net.AsyncResourceHandler_RedirectHopTime" units="ms">
  <obsolete>
    Data collection finished on 2015-03-31.
  </obsolete>
  <owner>bnc@chromium.org</owner>
  <summary>
    The time between the call of AsyncResourceHandler::OnRequestRedirected and
    the FollowRedirect IPC message from ResourceHost, that is, the length of the
    redirect browser-renderer-browser hop.
  </summary>
</histogram>

<histogram name="Net.AsyncResourceHandler_SharedIOBuffer_Alloc" units="bytes">
  <obsolete>
    Deprecated 03/2015.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The size of a SharedIOBuffer allocation.</summary>
</histogram>

<histogram name="Net.AsyncResourceHandler_SharedIOBuffer_Used" units="bytes">
  <obsolete>
    Deprecated 03/2015.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The number of bytes copied into a SharedIOBuffer.</summary>
</histogram>

<histogram name="Net.AsyncResourceHandler_SharedIOBuffer_UsedPercentage"
    units="%">
  <obsolete>
    Deprecated 03/2015.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The percentage of a SharedIOBuffer allocation that is actually used.
  </summary>
</histogram>

<histogram name="Net.AsyncRevalidation.ReadError" enum="NetErrorCodes">
  <obsolete>
    Removed in March 2017. See https://crbug.com/700568.
  </obsolete>
  <owner>ricea@chromium.org</owner>
  <summary>
    Counts of error codes received while reading the body of an async
    revalidation before getting a response. Only async revalidations that had a
    read error are counted.
  </summary>
</histogram>

<histogram name="Net.AsyncRevalidation.ResponseError" enum="NetErrorCodes">
  <obsolete>
    Removed in March 2017. See https://crbug.com/700568.
  </obsolete>
  <owner>ricea@chromium.org</owner>
  <summary>
    Counts of error codes received while performing an async revalidation before
    getting a response. Only async revalidations that had in a response error
    are counted.
  </summary>
</histogram>

<histogram name="Net.AsyncRevalidation.Result" enum="AsyncRevalidationResult">
  <obsolete>
    Removed in March 2017. See https://crbug.com/700568.
  </obsolete>
  <owner>ricea@chromium.org</owner>
  <summary>
    The result of an async revalidation resulting from application of the
    Cache-Control: stale-while-revalidate directive. All async revalidations are
    counted.
  </summary>
</histogram>

<histogram name="Net.AuthGenerateToken_basic" units="ms">
  <obsolete>
    Deprecated 01/2011 in https://crrev.com/70740
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The time to generate a Basic HTTP authentication token.</summary>
</histogram>

<histogram name="Net.AuthGenerateToken_digest" units="ms">
  <obsolete>
    Deprecated 01/2011 in https://crrev.com/70740
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The time to generate a Digest HTTP authentication token.</summary>
</histogram>

<histogram name="Net.AuthGenerateToken_negotiate" units="ms">
  <obsolete>
    Deprecated 01/2011 in https://crrev.com/70740
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time to generate a Negotiate (or SPNEGO) HTTP authentication token.
  </summary>
</histogram>

<histogram name="Net.AuthGenerateToken_ntlm" units="ms">
  <obsolete>
    Deprecated 01/2011 in https://crrev.com/70740
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The time to generate an NTLM HTTP authentication token.</summary>
</histogram>

<histogram name="Net.AutoReload.CountAtStop">
  <owner>mmenke@chromium.org</owner>
  <summary>
    Number of times auto-reload has been attempted before auto-reload stopped
    without succeeding, either because the stop button was pressed or because
    the renderer was destroyed.
  </summary>
</histogram>

<histogram name="Net.AutoReload.CountAtSuccess">
  <owner>mmenke@chromium.org</owner>
  <summary>
    Number of times auto-reload had to attempt to reload a page before
    succeeding.
  </summary>
</histogram>

<histogram name="Net.AutoReload.ErrorAtFirstSuccess" enum="NetErrorCodes">
  <owner>mmenke@chromium.org</owner>
  <summary>
    Original error code that started an auto-reload which then succeeded on the
    first attempt.
  </summary>
</histogram>

<histogram name="Net.AutoReload.ErrorAtStop" enum="NetErrorCodes">
  <owner>mmenke@chromium.org</owner>
  <summary>
    Error code, if any, when auto-reload stopped without succeeding, either
    because the stop button was pressed or because the renderer was destroyed.
  </summary>
</histogram>

<histogram name="Net.AutoReload.ErrorAtSuccess" enum="NetErrorCodes">
  <owner>mmenke@chromium.org</owner>
  <summary>
    Original error code that started an auto-reload which then eventually
    succeeded.
  </summary>
</histogram>

<histogram name="Net.BidirectionalStream.ReceivedBytes" units="bytes">
  <owner>mef@chromium.org</owner>
  <owner>pauljensen@chromium.org</owner>
  <summary>Number of bytes received over this stream.</summary>
</histogram>

<histogram name="Net.BidirectionalStream.SentBytes" units="bytes">
  <owner>mef@chromium.org</owner>
  <owner>pauljensen@chromium.org</owner>
  <summary>Number of bytes sent over this stream.</summary>
</histogram>

<histogram name="Net.BidirectionalStream.TimeToReadEnd" units="ms">
  <owner>mef@chromium.org</owner>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    How long it takes from starting the request to reading the end of the
    response.
  </summary>
</histogram>

<histogram name="Net.BidirectionalStream.TimeToReadStart" units="ms">
  <owner>mef@chromium.org</owner>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    How long it takes from starting the request to reading the start of the
    response.
  </summary>
</histogram>

<histogram name="Net.BidirectionalStream.TimeToSendEnd" units="ms">
  <owner>mef@chromium.org</owner>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    How long it takes from starting the request to when the last byte is sent.
  </summary>
</histogram>

<histogram name="Net.BidirectionalStream.TimeToSendStart" units="ms">
  <owner>mef@chromium.org</owner>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    How long it takes from starting the request to when we can start sending
    data.
  </summary>
</histogram>

<histogram name="Net.CacheState.AllBytes">
  <obsolete>
    Part of a concluded experiment, 2016-08-02.
  </obsolete>
  <owner>ellyjones@chromium.org</owner>
  <summary>Counts of response bytes by cache state.</summary>
</histogram>

<histogram name="Net.CacheState.AllRequests" enum="NetCacheState">
  <obsolete>
    Part of a concluded experiment, 2016-08-02.
  </obsolete>
  <owner>ellyjones@chromium.org</owner>
  <summary>
    State of the cache for a request, delta-encoding eligible or otherwise.
  </summary>
</histogram>

<histogram name="Net.CacheState.EncodeableBytes">
  <obsolete>
    Part of a concluded experiment, 2016-08-02.
  </obsolete>
  <owner>ellyjones@chromium.org</owner>
  <summary>
    Counts of response bytes by cache state for delta-encoding eligible
    requests.
  </summary>
</histogram>

<histogram name="Net.CacheState.EncodeableRequests" enum="NetCacheState">
  <obsolete>
    Part of a concluded experiment, 2016-08-02.
  </obsolete>
  <owner>ellyjones@chromium.org</owner>
  <summary>State of the cache for a delta-encoding eligible request.</summary>
</histogram>

<histogram name="Net.CertCommonNameFallback" enum="BooleanCommonNameMatch">
  <owner>rsleevi@chromium.org</owner>
  <summary>
    Whether the certificate common name was used for matching the hostname,
    instead of the subjectAlternativeName.

    Measures results for all CAs (internal and publicly-trusted).
  </summary>
</histogram>

<histogram name="Net.CertCommonNameFallbackPrivateCA"
    enum="BooleanCommonNameMatch">
  <owner>rsleevi@chromium.org</owner>
  <summary>
    Whether the certificate common name was used for matching the hostname,
    instead of the subjectAlternativeName.

    Measures results ony for internal (non-publicly-trusted) CAs.
  </summary>
</histogram>

<histogram name="Net.Certificate.AndroidAIAFetchError" enum="NetErrorCodes">
  <owner>estark@chromium.org</owner>
  <summary>
    The net error code returned after attempting an AIA fetch on Android.
    Recorded once per intermediate that Chrome attempts to fetch via AIA on
    Android.
  </summary>
</histogram>

<histogram name="Net.Certificate.IgnoreCertificateErrorsSPKIListPresent"
    enum="BooleanPresent">
  <owner>martinkr@google.com</owner>
  <summary>
    Whether certificate validation was disabled for a set of public keys because
    the --ignore-certificate-errors-spki-list switch was set on startup.
  </summary>
</histogram>

<histogram name="Net.Certificate.IgnoreErrors" enum="BooleanEnabled">
  <owner>martinkr@google.com</owner>
  <summary>
    Whether certificate validation was disabled because the
    --ignore-certificate-errors switch was set on startup.
  </summary>
</histogram>

<histogram name="Net.Certificate.SHA1.MainFrame" enum="SHA1Status">
  <obsolete>
    Deprecated 06/2017 as SHA-1 was successfully disabled in 01/2017.
  </obsolete>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    Whether or not SHA-1 was present in a resource fetched for the main frame,
    and if so, what its maximum validity period was.
  </summary>
</histogram>

<histogram name="Net.Certificate.SHA1.Subresource" enum="SHA1Status">
  <obsolete>
    Deprecated 06/2017 as SHA-1 was successfully disabled in 01/2017.
  </obsolete>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    Whether or not SHA-1 was present in a subresource fetch, and if so, what its
    maximum validity period was.
  </summary>
</histogram>

<histogram name="Net.Certificate.TLSFeatureExtensionWithPrivateRoot"
    enum="Boolean">
  <owner>estark@chromium.org</owner>
  <summary>
    This histogram is recorded every time Chrome successfully verifies a
    certificate that chains to a private root. A value of true indicates that
    the certificate contains the TLS Feature Extension, and false indicates that
    it doesn't.
  </summary>
</histogram>

<histogram name="Net.Certificate.TLSFeatureExtensionWithPrivateRootHasOCSP"
    enum="Boolean">
  <owner>estark@chromium.org</owner>
  <summary>
    This histogram is recorded every time Chrome successfully verifies a
    certificate that chains to a private root and the certificate contains the
    TLS Feature Extension. A value of true indicates that the connection had an
    OCSP response stapled, and a value of false indicates that it did not.
  </summary>
</histogram>

<histogram name="Net.Certificate.TrustAnchor.Request" enum="NetTrustAnchors">
  <owner>rsleevi@chromium.org</owner>
  <summary>
    The SHA-256 hash of the subjectPublicKeyInfo of the most-specific trust
    anchor encountered in a successfully-verified certificate chain, during an
    HTTP URL request. The associated root certificate can be looked up using
    https://crt.sh/?spkisha256= .
  </summary>
</histogram>

<histogram name="Net.Certificate.TrustAnchor.Verify" enum="NetTrustAnchors">
  <owner>rsleevi@chromium.org</owner>
  <summary>
    The SHA-256 hash of the subjectPublicKeyInfo of the most-specific trust
    anchor encountered in a successfully-verified certificate chain, during
    verification time. The associated root certificate can be looked up using
    https://crt.sh/?spkisha256= .
  </summary>
</histogram>

<histogram name="Net.Certificate.TrustAnchor.VerifyOutOfDate"
    enum="BooleanOutOfDate">
  <owner>rsleevi@chromium.org</owner>
  <summary>
    This histogram is recorded every time Chrome successfully validates a
    certificate, but cannot determine a public trust anchor from the verified
    chain. A value of true indicates that the trust anchor list is out of date,
    as the OS believes a public trust anchor is being used, but the built-in
    list does not know about this trust anchor, while a value of false indicates
    that a public trust anchor was not used, thus there is no evidence that the
    list is out of date. This histogram is temporary until the transition to a
    unified root store (in source), at which point, the OS store will no longer
    be consulted for known roots.
  </summary>
</histogram>

<histogram name="Net.Certificate.VerificationSuccessAfterAIAFetchingNeeded"
    enum="BooleanSuccess">
  <owner>estark@chromium.org</owner>
  <summary>
    Whether or not certificate verification was successful after attempting AIA
    fetching on Android. Recorded once per certificate verification on Android
    that resulted in an untrusted-root error without AIA fetching.
  </summary>
</histogram>

<histogram name="Net.CertificatePinSuccess" enum="BooleanSuccess">
  <obsolete>
    Renamed to Net.PublicKeyPinSuccess 28 Oct 2011.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    A validated certificate chain may be subject to additional
    &quot;pinning&quot; requirements on a per-domain basis. This records the
    fraction of successful matches between a certificate chain and a pin list.
  </summary>
</histogram>

<histogram name="Net.CertificateTransparency.CanInclusionCheckSCT"
    enum="SCTCanBeChecked">
  <owner>estark@chromium.org</owner>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    Whether an observed Signed Certificate Timestamp (SCT) can be checked for
    inclusion. An SCT can be checked for inclusion if the client has a valid
    Signed Tree Head (STH) and the STH currently known to the client was issued
    24 hours after the timestamp in the SCT (24 hours being the typical Maximum
    Merge Delay).
  </summary>
</histogram>

<histogram name="Net.CertificateTransparency.ConnectionComplianceStatus.QUIC"
    enum="CTComplianceStatus">
  <obsolete>
    Deprecated Nov 2017, replaced with
    Net.CertificateTransparency.ConnectionComplianceStatus2
  </obsolete>
  <owner>estark@chromium.org</owner>
  <summary>
    The compliance of each QUIC connection with the Certificate Transparency
    policy, recorded once on connection setup unless CT evaluation has been
    disabled for that connection or the certificate is invalid. Connections can
    be compliant, or they can be non-compliant for one of several reasons (not
    enough Signed Certificate Timestamps [SCTs], not diverse enough SCTs, or the
    build was old so CT compliance wasn't checked).
  </summary>
</histogram>

<histogram name="Net.CertificateTransparency.ConnectionComplianceStatus.SSL"
    enum="CTComplianceStatus">
  <obsolete>
    Deprecated Nov 2017, replaced with
    Net.CertificateTransparency.ConnectionComplianceStatus2
  </obsolete>
  <owner>estark@chromium.org</owner>
  <summary>
    The compliance of each SSL connection with the Certificate Transparency
    policy, recorded once on connection setup unless CT evaluation has been
    disabled for that connection or the certificate is invalid. Connections can
    be compliant, or they can be non-compliant for one of several reasons (not
    enough Signed Certificate Timestamps [SCTs], not diverse enough SCTs, or the
    build was old so CT compliance wasn't checked).
  </summary>
</histogram>

<histogram base="true"
    name="Net.CertificateTransparency.ConnectionComplianceStatus2"
    enum="CTComplianceStatus">
<!-- Name completed by histogram_suffixes name="CertificateTransparencyProtocol" -->

  <owner>estark@chromium.org</owner>
  <summary>
    The compliance of each connection with the Certificate Transparency policy,
    recorded once on connection setup unless CT evaluation has been disabled for
    that connection or the certificate is invalid. Connections can be compliant,
    or they can be non-compliant for one of several reasons (not enough Signed
    Certificate Timestamps [SCTs], not diverse enough SCTs, or the build was old
    so CT compliance wasn't checked). Not recorded for certificates that chain
    to locally-installed roots.
  </summary>
</histogram>

<histogram
    name="Net.CertificateTransparency.CTRequiredConnectionComplianceStatus"
    enum="CTComplianceStatus">
  <obsolete>
    Deprecated Nov 2017, replaced with
    Net.CertificateTransparency.CTRequiredConnectionComplianceStatus2
  </obsolete>
  <owner>estark@chromium.org</owner>
  <summary>
    The compliance of each QUIC connection with the Certificate Transparency
    policy, for connections for which CT compliance is required for the
    connection to succeed. (For example, CT compliance is required for certain
    Certificate Authorities, or a site can opt in to having CT be required.)
    Recorded once on connection setup for applicable connections unless CT
    evaluation has been disabled for that connection or the certificate is
    otherwise invalid.
  </summary>
</histogram>

<histogram
    name="Net.CertificateTransparency.CTRequiredConnectionComplianceStatus.SSL"
    enum="CTComplianceStatus">
  <obsolete>
    Deprecated Nov 2017, replaced with
    Net.CertificateTransparency.CTRequiredConnectionComplianceStatus2
  </obsolete>
  <owner>estark@chromium.org</owner>
  <summary>
    The compliance of each SSL connection with the Certificate Transparency
    policy, for connections for which CT compliance is required for the
    connection to succeed. (For example, CT compliance is required for certain
    Certificate Authorities, or a site can opt in to having CT be required.)
    Recorded once on connection setup for applicable connections unless CT
    evaluation has been disabled for that connection or the certificate is
    otherwise invalid. Not recorded for certificates that chain to
    locally-installed roots.
  </summary>
</histogram>

<histogram base="true"
    name="Net.CertificateTransparency.CTRequiredConnectionComplianceStatus2"
    enum="CTComplianceStatus">
<!-- Name completed by histogram_suffixes name="CertificateTransparencyProtocol" -->

  <owner>estark@chromium.org</owner>
  <summary>
    The compliance of each connection with the Certificate Transparency policy,
    for connections for which CT compliance is required for the connection to
    succeed. (For example, CT compliance is required for certain Certificate
    Authorities, or a site can opt in to having CT be required.) Recorded once
    on connection setup for applicable connections unless CT evaluation has been
    disabled for that connection or the certificate is otherwise invalid. Not
    recorded for certificates that chain to locally-installed roots.
  </summary>
</histogram>

<histogram name="Net.CertificateTransparency.CTRequiredRequestComplianceStatus"
    enum="CTComplianceStatus">
  <owner>estark@chromium.org</owner>
  <summary>
    The compliance of each HTTP request with the Certificate Transparency
    policy, for requests on connections for which CT compliance is required for
    the connection to succeed. (For example, CT compliance is required for
    certain Certificate Authorities, or a site can opt in to having CT be
    required.) Recorded once on request completion for requests on applicable
    connections, unless CT evaluation has been disabled for that connection or
    the certificate is otherwise invalid. Not recorded when the request's
    certificate chains to a locally-installed root.
  </summary>
</histogram>

<histogram name="Net.CertificateTransparency.DnsQueryAuditProofError"
    enum="NetErrorCodes">
  <owner>robpercival@chromium.org</owner>
  <summary>
    Counts of specific error codes returned by LogDnsClient at the end of an
    attempt to obtain an inclusion proof for a certificate from a Certificate
    Transparency log.
  </summary>
</histogram>

<histogram name="Net.CertificateTransparency.DnsQueryAuditProofRcode"
    enum="AsyncDNSRcode">
  <owner>robpercival@chromium.org</owner>
  <summary>
    Counts of specific DNS response codes returned by LogDnsClient at the end of
    an attempt to obtain an inclusion proof for a certificate from a Certificate
    Transparency log. The response codes (rcodes) and meanings are listed on
    https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6.
  </summary>
</histogram>

<histogram name="Net.CertificateTransparency.DnsQueryDuration" units="ms">
  <owner>robpercival@chromium.org</owner>
  <summary>
    The time taken attempting to obtain an inclusion proof from a Certificate
    Transparency log over DNS. This includes the time taken to obtain the leaf
    index first. Emitted at the end of an attempt. Includes attempts that fail.
  </summary>
</histogram>

<histogram name="Net.CertificateTransparency.DnsQueryDuration.Success"
    units="ms">
  <owner>robpercival@chromium.org</owner>
  <summary>
    The time taken to successfully obtain an inclusion proof from a Certificate
    Transparency log over DNS. This includes the time taken to obtain the leaf
    index first. Emitted at the end of an attempt.
  </summary>
</histogram>

<histogram name="Net.CertificateTransparency.DnsQueryLeafIndexError"
    enum="NetErrorCodes">
  <owner>robpercival@chromium.org</owner>
  <summary>
    Counts of specific error codes returned by LogDnsClient at the end of an
    attempt to obtain a leaf index for a certificate from a Certificate
    Transparency log.
  </summary>
</histogram>

<histogram name="Net.CertificateTransparency.DnsQueryLeafIndexRcode"
    enum="AsyncDNSRcode">
  <owner>robpercival@chromium.org</owner>
  <summary>
    Counts of specific DNS response codes returned by LogDnsClient at the end of
    an attempt to obtain a leaf index for a certificate from a Certificate
    Transparency log. The response codes (rcodes) and meanings are listed on
    https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6.
  </summary>
</histogram>

<histogram name="Net.CertificateTransparency.DnsQueryStatus"
    enum="CertificateTransparencyDnsQueryStatus" expires_after="M67">
  <obsolete>
    Replaced by Net.CertificateTransparency.DnsQueryError, which provides the
    full range of net::Error codes rather than summarising them into the limited
    set used by this histogram.
  </obsolete>
  <owner>robpercival@chromium.org</owner>
  <summary>
    The status of each attempt to obtain an inclusion proof from a Certificate
    Transparency log over DNS. This can consist of more than one DNS request.
    Emitted at the end of an attempt.
  </summary>
</histogram>

<histogram name="Net.CertificateTransparency.EVCompliance.QUIC"
    enum="CTComplianceStatus">
  <obsolete>
    Deprecated Nov 2017, replaced with
    Net.CertificateTransparency.EVCompliance2.QUIC
  </obsolete>
  <owner>estark@chromium.org</owner>
  <summary>
    The state of compliance with Certificate Transparency presence requirements
    for each EV certificate. Recorded once on QUIC connection setup when the
    connection uses an EV certificate unless CT evaluation has been disabled for
    that connection or the certificate is invalid.
  </summary>
</histogram>

<histogram name="Net.CertificateTransparency.EVCompliance.SSL"
    enum="CTComplianceStatus">
  <obsolete>
    Deprecated Nov 2017, replaced with
    Net.CertificateTransparency.EVCompliance2.SSL
  </obsolete>
  <owner>estark@chromium.org</owner>
  <summary>
    The state of compliance with Certificate Transparency presence requirements
    for each EV certificate. Recorded once on SSL connection setup when the
    connection uses an EV certificate unless CT evaluation has been disabled for
    that connection or the certificate is invalid.
  </summary>
</histogram>

<histogram base="true" name="Net.CertificateTransparency.EVCompliance2"
    enum="CTComplianceStatus">
<!-- Name completed by histogram_suffixes name="CertificateTransparencyProtocol" -->

  <owner>estark@chromium.org</owner>
  <summary>
    The state of compliance with Certificate Transparency presence requirements
    for each EV certificate. Recorded once on QUIC connection setup when the
    connection uses an EV certificate unless CT evaluation has been disabled for
    that connection or the certificate is invalid. Not recorded for certificates
    that chain to locally-installed roots.
  </summary>
</histogram>

<histogram name="Net.CertificateTransparency.InclusionCheckResult"
    enum="CTLogEntryInclusionCheckResult">
  <owner>estark@chromium.org</owner>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    The result of an inclusion check for a Certificate Transparency log entry
    (composed of a TLS certificate observed together with Signed Certificate
    Timestamps). Emitted once per (TLS certificate, Signed Certificate
    Timestamp) pair observed and checked for inclusion (check results are
    cached).
  </summary>
</histogram>

<histogram name="Net.CertificateTransparency.MainFrameValidSCTCount">
  <obsolete>
    Deprecated 12/2018.
  </obsolete>
  <owner>eranm@chromium.org</owner>
  <summary>
    Number of valid Signed Certificate Timestamps (SCTs) present for the
    main-frame resource. Emitted every time a main-frame resource is fetched.
  </summary>
</histogram>

<histogram name="Net.CertificateTransparency.PilotSTHAge" units="ms">
  <owner>estark@chromium.org</owner>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    Age of Pilot's Signed Tree Head, as observed by the client, in minutes.
    Measuring the age of a particular log's Signed Tree Head will allow more
    informed update frequency of the Component Updater component that provides
    them. Emitted once for every STH update received by the component updater.
  </summary>
</histogram>

<histogram name="Net.CertificateTransparency.RequestComplianceStatus"
    enum="CTComplianceStatus">
  <owner>estark@chromium.org</owner>
  <summary>
    The compliance of each HTTP request with the Certificate Transparency
    policy, recorded once on request completion unless CT evaluation has been
    disabled for that request's connection or the certificate is otherwise
    invalid. A request's connection can be compliant, or it can be non-compliant
    for one of several reasons (not enough Signed Certificate Timestamps [SCTs],
    not diverse enough SCTs, or the build was old so CT compliance wasn't
    checked). Not recorded when the request's certificate chains to a
    locally-installed root.
  </summary>
</histogram>

<histogram name="Net.CertificateTransparency.SCT.SingleVerificationTime"
    units="microseconds" expires_after="M70">
  <owner>estark@chromium.org</owner>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    Time to verify a single SCT (Signed Certificate Timestamps) when setting up
    a TLS connection. Recorded each time a single SCT is verified. Includes not
    just the signature verification but also other operations that are involved
    in verifying an SCT, such as notifying observers and looking up the log that
    issued the SCT.
  </summary>
</histogram>

<histogram name="Net.CertificateTransparency.SCT.VerificationTime"
    units="microseconds" expires_after="M70">
  <owner>estark@chromium.org</owner>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    Time to verify the SCTs (Signed Certificate Timestamps) when setting up a
    TLS connection. Recorded on each connection setup where at least one SCT is
    verified.
  </summary>
</histogram>

<histogram name="Net.CertificateTransparency.SCTOrigin" enum="SCTOrigin">
  <owner>estark@chromium.org</owner>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    The origin breakdown of Signed Certificate Timestamps (SCTs). Emitted once
    for every SCT when first validated, which means 0 or more times during every
    SSL connection establishment.
  </summary>
</histogram>

<histogram name="Net.CertificateTransparency.SCTsPerConnection">
  <obsolete>
    Deprecated 12/2018.
  </obsolete>
  <owner>eranm@chromium.org</owner>
  <summary>
    The number of Signed Certificate Timestamps (SCTs) that were available for
    each SSL connection, including SCTs embedded in the certificate. This metric
    measures how many SSL connections had SCTs available. Emitted during every
    SSL connection establishment.
  </summary>
</histogram>

<histogram name="Net.CertificateTransparency.SCTStatus" enum="SCTVerifyStatus">
  <owner>estark@chromium.org</owner>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    Breakdown of Signed Certificate Timestamps (SCTs) validation status. Emitted
    once for every SCT when first validated, which means 0 or more times during
    every SSL connection establishment.
  </summary>
</histogram>

<histogram name="Net.CertVerifier_First_Job_Latency" units="ms">
  <owner>davidben@chromium.org</owner>
  <summary>
    The actual amount of time spent verifying a certificate using the underlying
    cryptographic APIs. Because parallel verifications for the same certificate
    may be coalesced, histograms such as Net.SSLCertVerificationTime may be
    skewed, due to later verifications taking less overall time. This records
    the overall time spent verifying the first job to capture initialization
    costs.
  </summary>
</histogram>

<histogram name="Net.CertVerifier_Job_Latency" units="ms">
  <owner>rsleevi@chromium.org</owner>
  <summary>
    The actual amount of time spent verifying a certificate using the underlying
    cryptographic APIs. Because parallel verifications for the same certificate
    may be coalesced, histograms such as Net.SSLCertVerificationTime may be
    skewed, due to later verifications taking less overall time. This records
    the overall time spent verifying a single request, regardless of how many
    parallel requests are being served by the verification.
  </summary>
</histogram>

<histogram name="Net.CertVerifier_TrialComparisonResult"
    enum="CertVerifierTrialComparisonResult">
  <owner>mattm@chromium.org</owner>
  <summary>
    If the CertDualVerificationTrial is enabled, each certificate verification
    associated with a (non-incognito) profile which is opted-in to SBER2(Scout)
    will record the outcome of comparing the primary verifier and secondary
    verifier results.
  </summary>
</histogram>

<histogram name="Net.CoalescePotential" enum="CoalescePotentialPackets">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of times we sent N packets, but could have sent N-1 packets.
  </summary>
</histogram>

<histogram name="Net.ComodoDNSExperimentFailureTime" units="ms">
  <obsolete>
    This experiment has concluded.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The amount of time taken before we failed to resolve the Comodo test DNS
    record. This is an experiment, run in conjuction with Comodo, to test the
    viability of a DNS based certificate revocation mechanism.
  </summary>
</histogram>

<histogram name="Net.ComodoDNSExperimentSuccessTime" units="ms">
  <obsolete>
    This experiment has concluded.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The amount of time taken to successfully resolve the Comodo test DNS record.
    This is an experiment, run in conjuction with Comodo, to test the viability
    of a DNS based certificate revocation mechanism.
  </summary>
</histogram>

<histogram name="Net.Compress.NoProxy.BytesAfterCompression" units="bytes">
  <obsolete>
    Removed as of 02/2015
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The uncompressed number of bytes received per request that was compressed.
    Only includes requests which did not go through an explicit proxy and did
    not go over SSL.
  </summary>
</histogram>

<histogram name="Net.Compress.NoProxy.BytesBeforeCompression" units="bytes">
  <obsolete>
    Removed as of 02/2015
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The compressed number of bytes received per request that was compressed.
    Only includes requests which did not go through an explicit proxy and did
    not go over SSL.
  </summary>
</histogram>

<histogram name="Net.Compress.NoProxy.ShouldHaveBeenCompressed" units="bytes">
  <obsolete>
    Removed as of 02/2015
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The uncompressed number of bytes received per request that was not
    compressed but appears to have been compressible. Only includes requests
    which did not go through an explicit proxy and did not go over SSL.
  </summary>
</histogram>

<histogram name="Net.Compress.Proxy.BytesAfterCompression" units="bytes">
  <obsolete>
    Removed as of 02/2015
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The uncompressed number of bytes received per request that was compressed.
    Only includes requests sent through a proxy without SSL.
  </summary>
</histogram>

<histogram name="Net.Compress.Proxy.BytesBeforeCompression" units="bytes">
  <obsolete>
    Removed as of 02/2015
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The compressed number of bytes received per request that was compressed.
    Only includes requests sent through a proxy without SSL.
  </summary>
</histogram>

<histogram name="Net.Compress.Proxy.ShouldHaveBeenCompressed" units="bytes">
  <obsolete>
    Removed as of 02/2015
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The uncompressed number of bytes received per request that was not
    compressed but appears to have been compressible. Only includes requests
    sent through a proxy without SSL.
  </summary>
</histogram>

<histogram name="Net.Compress.SSL.BytesAfterCompression" units="bytes">
  <obsolete>
    Removed as of 02/2015
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The uncompressed number of bytes received per request that was compressed.
    Only includes requests sent over SSL.
  </summary>
</histogram>

<histogram name="Net.Compress.SSL.BytesBeforeCompression" units="bytes">
  <obsolete>
    Removed as of 02/2015
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The compressed number of bytes received per request that was compressed.
    Only includes requests sent over SSL.
  </summary>
</histogram>

<histogram name="Net.Compress.SSL.ShouldHaveBeenCompressed" units="bytes">
  <obsolete>
    Removed as of 02/2015
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The uncompressed number of bytes received per request that was not
    compressed but appears to have been compressible. Only includes requests
    sent over SSL.
  </summary>
</histogram>

<histogram name="Net.ConnectionInfo.MainFrame" enum="ConnectionInfo">
  <owner>bnc@chromium.org</owner>
  <summary>
    Application protocol used for main frame resources. Logged by the renderer
    only for request that accessed the network and have received response
    headers.
  </summary>
</histogram>

<histogram name="Net.ConnectionInfo.SubResource" enum="ConnectionInfo">
  <owner>bnc@chromium.org</owner>
  <summary>
    Application protocol used for subresources (resources other than main
    frame). Logged by the renderer only for request that accessed the network
    and have received response headers.
  </summary>
</histogram>

<histogram name="Net.ConnectionTypeCount" enum="ConnectionType">
  <obsolete>
    The count was inaccurate (it counted transactions rather than connections)
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Each bucket is the number of connections of a particular type that the user
    has had during the session.
  </summary>
</histogram>

<histogram name="Net.ConnectionTypeCount2" enum="ConnectionType">
  <obsolete>
    Renamed to match HadConnectionType.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Each bucket is the number of successful connections of a particular type
    that the user has had during the session.
  </summary>
</histogram>

<histogram name="Net.ConnectionTypeCount3" enum="ConnectionType">
  <obsolete>
    Removed May 2016.
  </obsolete>
  <owner>davidben@chromium.org</owner>
  <summary>
    Each bucket is the number of successful connections of a particular type
    that the user has had during the session.
  </summary>
</histogram>

<histogram name="Net.ConnectionTypeFailCount2" enum="ConnectionType">
  <obsolete>
    No longer collected.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Each bucket is the number of failed connections of a particular type that
    the user has had during the session.
  </summary>
</histogram>

<histogram name="Net.ConnectionUsedSSLDeprecatedCipherFallback"
    enum="BooleanDeprecatedCiphers">
  <obsolete>
    Replaced with Net.ConnectionUsedSSLDeprecatedCipherFallback2 in Chrome 44.
  </obsolete>
  <owner>davidben@chromium.org</owner>
  <summary>
    True if an HTTPS connection was made using the deprecated cipher suite
    fallback.
  </summary>
</histogram>

<histogram name="Net.ConnectionUsedSSLDeprecatedCipherFallback2"
    enum="BooleanDeprecatedCiphers">
  <obsolete>
    Removed May 2017.
  </obsolete>
  <owner>davidben@chromium.org</owner>
  <summary>
    For each successful HTTPS request, whether it used the deprecated cipher
    suite fallback.
  </summary>
</histogram>

<histogram name="Net.ConnectionUsedSSLv3Fallback">
  <obsolete>
    Replaced by Net.ConnectionUsedSSLVersionFallback in Chrome 21.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    True if the HTTP request was to a server which requires SSLv3 fallback
  </summary>
</histogram>

<histogram name="Net.ConnectionUsedSSLVersionFallback"
    enum="FallbackSSLVersion">
  <obsolete>
    Replaced with Net.ConnectionUsedSSLVersionFallback2 in Chrome 44.
  </obsolete>
  <owner>agl@chromium.org</owner>
  <summary>
    Nonzero if the HTTP request was to a server which requires SSL version
    fallback. The value indicates the SSL version the request fell back on.
  </summary>
</histogram>

<histogram name="Net.ConnectionUsedSSLVersionFallback2"
    enum="FallbackSSLVersion">
  <obsolete>
    Removed June 2016.
  </obsolete>
  <owner>davidben@chromium.org</owner>
  <summary>
    For each successful HTTPS request, whether it used the SSL version fallback.
    The value indicates the SSL version the request fell back on
  </summary>
</histogram>

<histogram name="Net.ContentDecodingFailed.FilterType" enum="NetFilterType">
  <obsolete>
    Obsoleted in favor of Net.ContentDecodingFailed2.FilterType below.
  </obsolete>
  <summary>
    For each CONTENT_DECODING_FAILED, record the filter that failed.
  </summary>
</histogram>

<histogram name="Net.ContentDecodingFailed2" enum="NetFilterType2">
  <owner>mef@chromium.org</owner>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    For each CONTENT_DECODING_FAILED, record the filter that failed.
  </summary>
</histogram>

<histogram name="Net.ContentDecodingFailed2.FilterType" enum="NetFilterType2">
  <obsolete>
    Obsoleted in favor of Net.ContentDecodingFailed2 above.
  </obsolete>
  <owner>mef@chromium.org</owner>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    For each CONTENT_DECODING_FAILED, record the filter that failed.
  </summary>
</histogram>

<histogram name="net.CookieBackingStoreUpdateResults"
    enum="BackingStoreResults">
  <obsolete>
    Initial typo; only here to get results from builds before r59117. See
    &quot;Cookie.&quot; group.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Whether or not updates to the backing store succeeded or failed, recorded
    every update.
  </summary>
</histogram>

<histogram name="net.CookieBetweenAccessIntervalMinutes" units="minutes">
  <obsolete>
    Initial typo; only here to get results from builds before r59117. See
    &quot;Cookie.&quot; group.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Intervals between access time updates for each cookie.</summary>
</histogram>

<histogram name="net.CookieCount">
  <obsolete>
    Initial typo; only here to get results from builds before r59117. See
    &quot;Cookie.&quot; group.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Number of cookies in the store (recorded every 10 minutes of active browsing
    time)
  </summary>
</histogram>

<histogram name="net.CookieDeletionCause" enum="CookieDeletionCause">
  <obsolete>
    Initial typo; only here to get results from builds before r59117. See
    &quot;Cookie.&quot; group.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    For each cookie removed from the store, the reason it was removed.
  </summary>
</histogram>

<histogram name="net.CookieDomainCount">
  <obsolete>
    Initial typo; only here to get results from builds before r59117. See
    &quot;Cookie.&quot; group.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    For each domain, number of cookies in that domain (recorded every 10 minutes
    of active browsing time).
  </summary>
</histogram>

<histogram name="net.CookieDomainPerEtldp1Count">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    For every top level domain, number of subdomains in that top level domain
    (recorded every 10 minutes of active browsing time).
  </summary>
</histogram>

<histogram name="net.CookieEtldp1Count">
  <obsolete>
    Initial typo; only here to get results from builds before r59117. See
    &quot;Cookie.&quot; group.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    For every top level domain, number of cookies in that domain (recorded every
    10 minutes of active browsing time).
  </summary>
</histogram>

<histogram name="net.CookieEvictedLastAccessMinutes" units="minutes">
  <obsolete>
    Initial typo; only here to get results from builds before r59117. See
    &quot;Cookie.&quot; group.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    For each evicted (not expired) cookie, the amount of time since it was last
    used
  </summary>
</histogram>

<histogram name="net.CookieExpirationDurationMinutes" units="minutes">
  <obsolete>
    Initial typo; only here to get results from builds before r59117. See
    &quot;Cookie.&quot; group.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Number of minutes until cookie expires when set.</summary>
</histogram>

<histogram name="net.CookieTimeGet">
  <obsolete>
    Initial typo; only here to get results from builds before r59117. See
    &quot;Cookie.&quot; group.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The amount of time (ms) to get cookies for each URL request.
  </summary>
</histogram>

<histogram name="net.CookieTimeLoad">
  <obsolete>
    Initial typo; only here to get results from builds before r59117. See
    &quot;Cookie.&quot; group.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The amount of time (ms) to load the persistent cookie store at browser
    start.
  </summary>
</histogram>

<histogram name="Net.CountOfAlternateProtocolServers" units="servers">
  <owner>bnc@chromium.org</owner>
  <owner>rch@chromium.org</owner>
  <summary>
    The total number of servers (HostPortPairs) to which alternative protocol
    was used. This counts the number of servers persisted to prefs file.
  </summary>
</histogram>

<histogram name="Net.CountOfAlternateProtocolServers.Memory" units="servers">
  <owner>bnc@chromium.org</owner>
  <owner>rch@chromium.org</owner>
  <summary>
    The total number of servers (HostPortPairs in memory) to which alternative
    protocol was used.
  </summary>
</histogram>

<histogram name="Net.CountOfBrokenAlternativeServices" units="services">
  <owner>wangyix@chromium.org</owner>
  <summary>
    The number of broken alternative services loaded from the prefs file on
    startup. Alternative services allow an origin server to specify additional
    means of interacting with it on the network. A broken alternative service is
    one whose most recent connection attempt failed and whose retry timeout
    period has not yet expired. Recorded when broken alternative services are
    loaded from the prefs file on startup.
  </summary>
</histogram>

<histogram name="Net.CountOfPipelineCapableServers" units="servers">
  <obsolete>
    Deprecated 05/2014, related field trial already long expired.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The total number of servers (HostPortPairs) that support HTTP pipelining.
    This counts the number of servers persisted to prefs file.
  </summary>
</histogram>

<histogram name="Net.CountOfQuicServerInfos" units="configs">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    This counts the number of server configs persisted in prefs file.
  </summary>
</histogram>

<histogram name="Net.CountOfRecentlyBrokenAlternativeServices" units="services">
  <owner>wangyix@chromium.org</owner>
  <summary>
    The number of recently broken alternative services loaded from the prefs
    file on startup. Alternative services allow an origin server to specify
    additional means of interacting with it on the network. A recently broken
    alternative service is one whose most recent connection attempt failed.
    Recorded when broken alternative services are loaded from the prefs file on
    startup.
  </summary>
</histogram>

<histogram name="Net.CountOfSpdyServers">
  <owner>bnc@chromium.org</owner>
  <owner>rch@chromium.org</owner>
  <summary>
    The total number of SPDY server names persisted to prefs file.
  </summary>
</histogram>

<histogram name="Net.CountOfSpdySettings">
  <obsolete>
    Removed on 2016-10-11.
  </obsolete>
  <owner>bnc@chromium.org</owner>
  <owner>rch@chromium.org</owner>
  <summary>
    The total number of SPDY Settings properties persisted to prefs file.
  </summary>
</histogram>

<histogram name="Net.CRLRequestFailedTimeMs" units="ms">
  <obsolete>
    Deprecated 2017-04-21 as it was Linux/CrOS only.
  </obsolete>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    When validating an HTTPS certificate we may have to block to fetch one or
    more revocation lists. This measures the amount of time that failures to get
    CRL information take.
  </summary>
</histogram>

<histogram name="Net.CRLRequestSuccess" enum="BooleanSuccess">
  <obsolete>
    Deprecated 2017-04-21 as it was Linux/CrOS only.
  </obsolete>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    When validating an HTTPS certificate we may have to block to fetch one or
    more revocation lists. This records the fraction of successful requests.
  </summary>
</histogram>

<histogram name="Net.CRLRequestTimeMs" units="ms">
  <obsolete>
    Deprecated 2017-04-21 as it was Linux/CrOS only.
  </obsolete>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    When validating an HTTPS certificate we may have to block to fetch one or
    more revocation lists. This measures the amount of time that each fetch
    takes.
  </summary>
</histogram>

<histogram name="Net.Cronet.CertVerifierCache.DeserializeTime" units="ms">
  <owner>rch@chromium.org</owner>
  <summary>
    Measures time spent to deserialize and populate the
    net::CachingCertVerifier's cache.
  </summary>
</histogram>

<histogram name="Net.Cronet.CertVerifierCache.SerializeTime" units="ms">
  <owner>rch@chromium.org</owner>
  <summary>
    Measures time spent to serialize the net::CachingCertVerifier's cache.
  </summary>
</histogram>

<histogram name="Net.Cronet.PrefsInitTime" units="ms">
  <owner>mgersh@chromium.org</owner>
  <summary>
    Measures time spent creating the Cronet PrefService, including loading the
    prefs from disk synchronously.
  </summary>
</histogram>

<histogram name="Net.DailyContentLength" units="KB">
  <owner>tbansal@chromium.org</owner>
  <summary>
    The total content size in KB of all HTTP/HTTPS response bodies in the
    previous calendar day. The metric is reported when the first response in the
    current day is received.
  </summary>
</histogram>

<histogram name="Net.DailyContentLength_DataReductionProxyEnabled" units="KB">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The total content size in KB of all HTTP/HTTPS response bodies in the
    previous calendar day while the data reduction proxy setting was enabled.
    The metric is reported when the first response in the current day is
    received.
  </summary>
</histogram>

<histogram name="Net.DailyContentLength_DataReductionProxyEnabled_Https"
    units="KB">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The total content size in KB of all HTTPS response bodies in the previous
    calendar day while the data reduction proxy setting was enabled. The metric
    is reported when the first response in the current day is received.
  </summary>
</histogram>

<histogram name="Net.DailyContentLength_DataReductionProxyEnabled_LongBypass"
    units="KB">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The total content size in KB of all long-bypassed HTTP response bodies in
    the previous calendar day while the data reduction proxy setting was
    enabled. The metric is reported when the first response in the current day
    is received.
  </summary>
</histogram>

<histogram name="Net.DailyContentLength_DataReductionProxyEnabled_ShortBypass"
    units="KB">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The total content size in KB of all short-bypassed HTTP response bodies in
    the previous calendar day while the data reduction proxy setting was
    enabled. The metric is reported when the first response in the current day
    is received.
  </summary>
</histogram>

<histogram name="Net.DailyContentLength_DataReductionProxyEnabled_Unknown"
    units="KB">
  <obsolete>
    Deprecated. Moved to
    Net.DailyContentLength_DataReductionProxyEnabled_UnknownBypass in M46.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>bolian@chromium.org</owner>
  <summary>
    The total content size in KB of all HTTP response bodies for requests that
    were not served by the enabled data reduction proxy for unknown reasons in
    the previous calendar day while the data reduction proxy setting was
    enabled. The metric is reported when the first response in the current day
    is received.
  </summary>
</histogram>

<histogram
    name="Net.DailyContentLength_DataReductionProxyEnabled_UnknownBypass"
    units="KB">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The total content size in KB of all HTTP response bodies for requests that
    were not served by the enabled data reduction proxy for unknown reasons in
    the previous calendar day while the data reduction proxy setting was
    enabled. The metric is reported when the first response in the current day
    is received.
  </summary>
</histogram>

<histogram name="Net.DailyContentLength_ViaDataReductionProxy" units="KB">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The total content size in KB of all HTTP/HTTPS response bodies in the
    previous calendar day via the data reduction proxy. The metric is reported
    when the first response in the current day is received.
  </summary>
</histogram>

<histogram name="Net.DailyContentPercent_DataReductionProxyEnabled" units="%">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The percentage of total HTTP/HTTPS response body size while the data
    reduction proxy is enabled to total HTTP/HTTPS response body size in the
    previous calendar day. The metric is reported when the first response in the
    current day is received.
  </summary>
</histogram>

<histogram name="Net.DailyContentPercent_DataReductionProxyEnabled_Https"
    units="%">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The percentage of total HTTPS response body size while the data reduction
    proxy is enabled to total HTTP/HTTPS response body size in the previous
    calendar day. The metric is reported when the first response in the current
    day is received.
  </summary>
</histogram>

<histogram name="Net.DailyContentPercent_DataReductionProxyEnabled_LongBypass"
    units="%">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The percentage of total long-bypassed response body size while the data
    reduction proxy is enabled to total HTTP/HTTPS response body size in the
    previous calendar day. The metric is reported when the first response in the
    current day is received.
  </summary>
</histogram>

<histogram name="Net.DailyContentPercent_DataReductionProxyEnabled_ShortBypass"
    units="%">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The percentage of total short-bypassed response body size while the data
    reduction proxy is enabled to total HTTP/HTTPS response body size in the
    previous calendar day. The metric is reported when the first response in the
    current day is received.
  </summary>
</histogram>

<histogram name="Net.DailyContentPercent_DataReductionProxyEnabled_Unknown"
    units="%">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The percentage of total body size of responses that were not served by the
    data reduction proxy for unknown reason while the data reduction proxy is
    enabled to total HTTP/HTTPS response body size in the previous calendar day.
    The metric is reported when the first response in the current day is
    received.
  </summary>
</histogram>

<histogram name="Net.DailyContentPercent_ViaDataReductionProxy" units="%">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The percentage of total HTTP/HTTPS response body size via the data reduction
    proxy to total HTTP/HTTPS response body size in the previous calendar day.
    The metric is reported when the first response in the current day is
    received.
  </summary>
</histogram>

<histogram name="Net.DailyContentSavingPercent" units="%">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The percentage of data saving in the previous calendar day. A negative
    saving will be shown as zero. The metric is reported when the first response
    in the current day is received.
  </summary>
</histogram>

<histogram name="Net.DailyContentSavingPercent_DataReductionProxyEnabled"
    units="%">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The percentage of data saving in the previous calendar day while the data
    reduction proxy was enabled. A negative saving will be shown as zero. This
    only counts responses while the data reduction proxy is enabled. The metric
    is reported when the first response in the current day is received.
  </summary>
</histogram>

<histogram name="Net.DailyContentSavingPercent_DataReductionProxyEnabled_Video"
    units="%">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The percentage of data saving in the previous calendar day while the data
    reduction proxy was enabled. A negative saving will be shown as zero. This
    only counts responses while the data reduction proxy is enabled. The metric
    is reported when the first response in the current day is received. If no
    video bytes were received while the data reduction proxy was enabled, the
    metric will not be reported.
  </summary>
</histogram>

<histogram name="Net.DailyContentSavingPercent_ViaDataReductionProxy" units="%">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The percentage of data saving in the previous calendar day via the data
    reduction proxy. A negative saving will be shown as zero. This only counts
    responses via the data reduction proxy. The metric is reported when the
    first response in the current day is received.
  </summary>
</histogram>

<histogram name="Net.DailyContentSavingPercent_ViaDataReductionProxy_Video"
    units="%">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The percentage of data saving in the previous calendar day via the data
    reduction proxy. A negative saving will be shown as zero. This only counts
    responses via the data reduction proxy. The metric is reported when the
    first response in the current day is received. If no video bytes were
    received via the data reduction proxy, the metric will not be reported.
  </summary>
</histogram>

<histogram name="Net.DailyHttpContentLengthViaDataReductionProxy" units="KB">
  <obsolete>
    Deprecated- see Net.DailyContentLength_ViaDataReductionProxy.
  </obsolete>
  <owner>bolian@chromium.org</owner>
  <summary>
    Total size in KB of all response bodies in the previous calendar day that
    were received through the data reduction proxy.
  </summary>
</histogram>

<histogram name="Net.DailyHttpContentLengthWithDataReductionProxyEnabled"
    units="KB">
  <obsolete>
    Deprecated- see Net.DailyContentLength_DataReductionProxyEnabled
  </obsolete>
  <owner>bolian@chromium.org</owner>
  <summary>
    Total size in KB of all response bodies in the previous calendar day that
    were received when the data reduction proxy was enabled.
  </summary>
</histogram>

<histogram name="Net.DailyHttpContentSavings" units="%">
  <obsolete>
    Deprecated- see Net.DailyContentSavingPercent.
  </obsolete>
  <owner>bolian@chromium.org</owner>
  <summary>
    The percentage of data saving in the previous calendar day. A negative
    saving will be shown as zero.
  </summary>
</histogram>

<histogram name="Net.DailyHttpContentSavings_DataReductionProxy" units="%">
  <obsolete>
    Deprecated- see Net.DailyContentSavingPercent_DataReductionProxyEnabled.
  </obsolete>
  <owner>bolian@chromium.org</owner>
  <summary>
    The percentage of data saving in the previous calendar day when the data
    reduction proxy was enabled for at least some responses during the day. A
    negative saving will be shown as zero.
  </summary>
</histogram>

<histogram name="Net.DailyHttpOriginalContentLength" units="KB">
  <obsolete>
    Deprecated- see Net.DailyOriginalContentLength.
  </obsolete>
  <owner>bolian@chromium.org</owner>
  <summary>
    Total size in KB specified in the X-Original-Content-Length headers of all
    responses in the previous calendar day. If the header is not present in a
    response, the size of the response body is used.
  </summary>
</histogram>

<histogram name="Net.DailyHttpReceivedContentLength" units="KB">
  <obsolete>
    Deprecated- see Net.DailyContentLength.
  </obsolete>
  <owner>bolian@chromium.org</owner>
  <summary>
    Total size in KB of all response bodies in the previous calendar day.
  </summary>
</histogram>

<histogram name="Net.DailyOriginalContentLength" units="KB">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The total size in KB specified in the X-Original-Content-Length headers of
    all HTTP/HTTPS response bodies in the previous calendar day. If the header
    is not present in a response, the size of the response body is used. The
    metric is reported when the first response in the current day is received.
  </summary>
</histogram>

<histogram name="Net.DailyOriginalContentLength_DataReductionProxyEnabled"
    units="KB">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The total size in KB specified in the X-Original-Content-Length headers of
    all HTTP/HTTPS response bodies in the previous calendar day while the data
    reduction proxy is enabled. If the header is not present in a response, the
    size of the response body is used. The metric is reported when the first
    response in the current day is received.
  </summary>
</histogram>

<histogram name="Net.DailyOriginalContentLength_ViaDataReductionProxy"
    units="KB">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The total size in KB specified in the X-Original-Content-Length headers of
    all HTTP/HTTPS response bodies in the previous calendar day via the data
    reduction proxy. If the header is not present in a response, the size of the
    response body is used. The metric is reported when the first response in the
    current day is received.
  </summary>
</histogram>

<histogram name="Net.DailyReceivedContentViaDataReductionProxy" units="%">
  <obsolete>
    Deprecated- see Net.DailyContentPercent_ViaDataReductionProxy.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>bolian@chromium.org</owner>
  <summary>
    The percentage of Net.DailyHttpContentLengthViaDataReductionProxy in
    Net.DailyHttpReceivedContentLength.
  </summary>
</histogram>

<histogram name="Net.DailyReceivedContentWithDataReductionProxyEnabled"
    units="%">
  <obsolete>
    Deprecated- see Net.DailyContentPercent_DataReductionProxyEnabled.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>bolian@chromium.org</owner>
  <summary>
    The percentage of Net.DailyHttpContentLengthWithDataReductionProxyEnabled in
    Net.DailyHttpReceivedContentLength.
  </summary>
</histogram>

<histogram name="Net.DailyUserVisibleSavingsPercent_DataReductionProxyEnabled"
    units="%">
  <obsolete>
    Removed in Chrome 57.
  </obsolete>
  <owner>kundaji@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The percentage of data savings in past
    |DataReductionProxy::kNumDaysInHistorySummary| days. This number is
    displayed to users as their data savings.
  </summary>
</histogram>

<histogram name="Net.DailyUserVisibleSavingsSize_DataReductionProxyEnabled"
    units="KB">
  <obsolete>
    Removed in Chrome 57.
  </obsolete>
  <owner>kundaji@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The total data saved in KB in past
    |DataReductionProxy::kNumDaysInHistorySummary| days. This number is used to
    compute the data savings displayed to the user.
  </summary>
</histogram>

<histogram name="Net.DetachableResourceHandler.Duration" units="ms">
  <obsolete>
    Removed in Chrome 64.
  </obsolete>
  <owner>yhirano@chromium.org</owner>
  <summary>
    Duration of time that a request associated with DetachableResourceHandler
    takes.
  </summary>
</histogram>

<histogram name="Net.DhcpWpadCancelTime" units="ms">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures time from initiating a fetch of a PAC file from DHCP WPAD to
    cancellation of the fetch. For a given fetch, only one of the cancellation
    or completion histograms will be added to.
  </summary>
</histogram>

<histogram name="Net.DhcpWpadCompletionTime" units="ms">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures time from initiating a fetch of a PAC file from DHCP WPAD to
    completion of the fetch. For a given fetch, only one of the cancellation or
    completion histograms will be added to.
  </summary>
</histogram>

<histogram name="Net.DhcpWpadFetchError" enum="NetErrorCodes">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Tracks the net error codes received when the DHCP WPAD fetch fails to
    retrieve a PAC file (including PAC_NOT_IN_DHCP, which is not really an error
    but an indication that a PAC URL was not configured in DHCP).
  </summary>
</histogram>

<histogram name="Net.DhcpWpadGetAdaptersAddressesError"
    enum="ErrorCodesGetAdaptersAddresses">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Tracks the frequency of each of the different known error codes of calling
    the GetAdaptersAddresses Win32 API.
  </summary>
</histogram>

<histogram name="Net.DhcpWpadGetAdaptersAddressesTime" units="ms">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Measures the time taken to call the GetAdaptersAddresses Win32 API, to
    validate our understanding that it should complete quickly enough to call
    synchronously from the network thread.
  </summary>
</histogram>

<histogram name="Net.DhcpWpadNumAdaptersAtWaitTimer">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Total number of adapters enabled for DHCP as seen when the wait timer in the
    DHCP WPAD code hits. This timer fires after a timeout from when we get some
    information from the first adapter to finish.
  </summary>
</histogram>

<histogram name="Net.DhcpWpadNumPendingAdaptersAtWaitTimer">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Number of adapters enabled for DHCP that we have not completed retrieving
    information for, as seen when the wait timer in the DHCP WPAD code hits.
    This timer fires after a timeout from when we get some information from the
    first adapter to finish.
  </summary>
</histogram>

<histogram name="Net.DhcpWpadUnhandledDhcpError">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Counts the number of errors from the DhcpRequestParams API that we do not
    have specific handling for, so that we can see if there is an abnormally
    high rate.
  </summary>
</histogram>

<histogram name="Net.DiskCache.Size" units="MB">
  <obsolete>
    Removed in Chrome 65.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    The sum of the size of all files in the HTTP cache directory.

    This is recorded on startup, and then every 24 hours afterwards. However, it
    is only recorded for 0.1% of profiles, to reduce overhead for most users.
    This is meant to be a temporary metric to help debug a potential HTTP cache
    leak. We do not yet know which milestone we expect it to be removed in.
  </summary>
</histogram>

<histogram name="Net.DNS.Android.AutoDohPrivate" enum="Boolean">
  <owner>pauljensen@chromium.org</owner>
  <summary>
    For devices using Android private DNS, are their DNS servers known to
    support DNS-over-HTTPS.
  </summary>
</histogram>

<histogram name="Net.DNS.Android.AutoDohPublic" enum="Boolean">
  <owner>pauljensen@chromium.org</owner>
  <summary>
    For devices not using Android private DNS, are their DNS servers known to
    support DNS-over-HTTPS, thus potential candidates for automatic upgrading
    from regular DNS to DNS-over-HTTPS.
  </summary>
</histogram>

<histogram name="Net.DNS.Android.DotExplicit" enum="Boolean">
  <owner>pauljensen@chromium.org</owner>
  <summary>
    For devices using Android private DNS, was their DNS-over-TLS server
    specified explicitly in their Android settings. When false, they were
    automatically upgraded from the standard DNS protocol to DNS-over-TLS via
    auto-detection.
  </summary>
</histogram>

<histogram name="Net.DNS.DnsTask.ErrorBeforeFallback.Fast" enum="NetErrorCodes">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Counts of specific error codes returned by DnsTask. Only counts failures
    that took less than 10ms, which are probably local failures.
  </summary>
</histogram>

<histogram name="Net.DNS.DnsTask.ErrorBeforeFallback.Slow" enum="NetErrorCodes">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Counts of specific error codes returned by DnsTask. Only counts failures
    that took at least 10ms, which are probably remote failures or connectivity
    problems.
  </summary>
</histogram>

<histogram name="Net.DNS.DnsTask.Errors" enum="NetErrorCodes">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Counts of specific error codes returned by DnsTask if a subsequent ProcTask
    succeeded.
  </summary>
</histogram>

<histogram name="Net.DNS.DnsTask.FailureTime" units="ms">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time taken by DnsTask in resolutions that failed. Excludes time
    spent in the subsequent fallback.
  </summary>
</histogram>

<histogram name="Net.DNS.DnsTask.SuccessTime" units="ms">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time taken by DnsTask in resolutions that succeeded.
  </summary>
</histogram>

<histogram name="Net.DNS.JobQueueTime" units="ms">
  <obsolete>
    Deprecated 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Time elapsed between the time the HostResolverImpl::Job was created and the
    time the Job was started.
  </summary>
</histogram>

<histogram name="Net.DNS.JobQueueTimeAfterChange" units="ms">
  <obsolete>
    Deprecated 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Time elapsed between the last time the priority of a HostResolverImpl::Job
    changed (when a Request was attached or detached) and the time the Job was
    started.
  </summary>
</histogram>

<histogram name="Net.DNS.ProcTask.FailureTime" units="ms">
  <obsolete>
    Deprecated 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time taken by ProcTask in resolutions that failed.
  </summary>
</histogram>

<histogram name="Net.DNS.ProcTask.SuccessTime" units="ms">
  <obsolete>
    Deprecated 11/2018.
  </obsolete>
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time taken by ProcTask in resolutions that succeeded.
  </summary>
</histogram>

<histogram name="Net.DNS.RecordParser.DomainNameLength" units="octets">
  <owner>dmcardle@chromium.org</owner>
  <owner>davidben@chromium.org</owner>
  <summary>
    Length of domain name parsed by DnsRecordParser::ReadName().
  </summary>
</histogram>

<histogram name="Net.DNS.ResolveCategory" enum="ResolutionCategory">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Whether a DNS resolution (single HostResolverImpl::Job) succeeded or failed,
    and whether it was speculative.
  </summary>
</histogram>

<histogram name="Net.DNS.ResolveError.Fast" enum="NetErrorCodes">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    For DNS resolutions that failed after less than 10 ms, which are probably
    local failures, what error code the jobs failed with.
  </summary>
</histogram>

<histogram name="Net.DNS.ResolveError.Slow" enum="NetErrorCodes">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    For DNS resolutions that failed after at least 10 ms, which are probably
    remote failures or connectivity problems, what error code the jobs failed
    with.
  </summary>
</histogram>

<histogram name="Net.DNS.ResolveFailureTime" units="ms">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time taken by HostResolverImpl::Job in resolutions that failed.
    This is the time to resolve a hostname from start to finish. The main
    histogram and by-priority versions exclude speculative requests.
  </summary>
</histogram>

<histogram name="Net.DNS.ResolveSuccessTime" units="ms">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time taken by HostResolverImpl::Job in resolutions that
    succeeded. This is the time to resolve a hostname from start to finish. The
    main histogram and by-priority versions exclude speculative requests.
  </summary>
</histogram>

<histogram name="Net.DNS.ResultAfterMalformedResponse"
    enum="MalformedResponseResult">
  <obsolete>
    Deprecated July 2018.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    When DnsUDPAttempt gets a malformed response, it returns an error but
    continues running. This histogram records all attempt outcomes that are
    returned to the transaction once a malformed response has been received,
    including the original malformed response.
  </summary>
</histogram>

<histogram name="Net.DNS.TotalTime" units="ms">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time since a HostResolverImpl::Resolve request to the time a
    result is posted. Excludes canceled, evicted, and aborted requests. Includes
    cache hits (recorded as 0). Excludes speculative requests.
  </summary>
</histogram>

<histogram name="Net.DNS.TotalTimeNotCached" units="ms">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>
    Duration of time since a HostResolverImpl::Resolve request to the time a
    result is posted. Excludes canceled, evicted, and aborted requests and
    requests that returned synchronously (such as cache hits). Excludes
    speculative requests.
  </summary>
</histogram>

<histogram base="true" name="Net.DNS.TotalTimeTyped" units="ms">
<!-- Name completed by histogram_suffixes
     name="DnsTotalTimeType" -->

  <owner>pauljensen@chromium.org</owner>
  <summary>
    Duration of time since a HostResolverImpl::Resolve request to the time a
    result is posted. Excludes canceled, evicted, and aborted requests. Includes
    cache hits (recorded as 0). Excludes speculative requests.
  </summary>
</histogram>

<histogram name="Net.DNS_Resolution_And_TCP_Connection_Latency">
  <obsolete>
    Deprecated- see Net.DNS_Resolution_And_TCP_Connection_Latency2
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
</histogram>

<histogram name="Net.Dns_Resolution_And_TCP_Connection_Latency">
  <obsolete>
    Deprecated- see Net.DNS_Resolution_And_TCP_Connection_Latency2
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
</histogram>

<histogram name="Net.DNS_Resolution_And_TCP_Connection_Latency2" units="ms">
  <owner>mmenke@chromium.org</owner>
  <summary>
    The time measured before starting DNS lookup until after the connection is
    complete.
  </summary>
</histogram>

<histogram name="Net.Dns_Resolution_And_TCP_Connection_Latency2">
  <obsolete>
    Deprecated- see Net.DNS_Resolution_And_TCP_Connection_Latency2
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
</histogram>

<histogram name="Net.DNSNameCompliantIfValid" enum="Boolean">
  <obsolete>
    Deprecated 07/2017, not necessary to determine deprecation for invalid DNS
    names.
  </obsolete>
  <owner>palmer@chromium.org</owner>
  <summary>
    True if |net::IsCanonicalizedHostCompliant| returns true. Used to see if
    IsCanonicalizedHostCompliant() runs afoul of real websites. This histogram
    is recorded when converting dotted DNS names into DNS query form, in
    preparation for issuing a DNS request. This histogram is only recorded if
    Net.ValidDNSName is true.
  </summary>
</histogram>

<histogram name="Net.DoubleGetExperiment_InitialResponseMethod"
    enum="DoubleGetExperimentMethods">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of HTTP request responses with MS Office Docs MIME types. The
    responses are classified based on their method type and cacheability (POST,
    cacheable GET and non-cacheable GET). The histogram is used in Double GET
    Experiment, where successful non-cacheable GET requests are intercepted
    after initial response and repeated in order to determine how much reissuing
    non-cacheable GET requests influences their error rate. The histogram tracks
    only initial requests (not the repeated ones).
  </summary>
</histogram>

<histogram name="Net.DoubleGetExperiment_ResponseCode">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The response codes encountered for GET request repeated in Double GET
    Experiment. In the experiment successful non-cacheable GET requests are
    intercepted after initial response and repeated. The goal of the experiment
    is to measure how much reissuing non-cacheable GET requests influences their
    error rate.
  </summary>
</histogram>

<histogram name="Net.DownloadBandwidth">
  <obsolete>
    Deprecated as of 03/2015. No longer generated.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Kbps on download streams exceeding 25KB. Measures from the beginning of the
    first byte received until the end of flowing data.
  </summary>
</histogram>

<histogram name="Net.ErrAborted.CountPerUpload" units="aborts">
  <obsolete>
    Deprecated in favor of Net.ErrAborted.CountPerUpload2 which has a higher
    upper bound
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The count of the ABORTED bucket in Net.ErrorCodesForMainFrame3 at the time
    histograms are being uploaded.
  </summary>
</histogram>

<histogram name="Net.ErrAborted.CountPerUpload2" units="aborts">
  <owner>csharrison@chromium.org</owner>
  <summary>
    The count of the ABORTED bucket in Net.ErrorCodesForMainFrame3 at the time
    histograms are being uploaded.
  </summary>
</histogram>

<histogram name="Net.ErrAborted.ProportionPerUpload" units="%">
  <owner>csharrison@chromium.org</owner>
  <summary>
    The bucket proportion of the ABORTED bucket in Net.ErrorCodesForMainFrame3
    at the time histograms are being uploaded.
  </summary>
</histogram>

<histogram name="Net.ErrAborted.ReceivedBytes" units="bytes">
  <obsolete>
    Removed from Chromium as of 2018/7/2.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The TotalReceivedBytes() at the time the request finishes with ERR_ABORTED.
  </summary>
</histogram>

<histogram name="Net.ErrAborted.SentBytes" units="bytes">
  <obsolete>
    Removed from Chromium as of 2018/7/2.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The TotalSentBytes() at the time the request finishes with ERR_ABORTED.
  </summary>
</histogram>

<histogram name="Net.ErrorCodesForHTTPSGoogleMainFrame" enum="NetErrorCodes">
  <obsolete>
    Deprecated as of 2012/5/16, replaced by
    Net.ErrorCodesForHTTPSGoogleMainFrame2, which measures the same data but
    includes ERR_ABORT and OK.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Errors resulting from loading pages from https://www.google.com. Note that
    this only counts the errors in &quot;main frames&quot;, so it is a measure
    of the error pages that users actually see (it does not for example count
    the error codes for subresoures on a page). This is a temporary histogram,
    added in order to debug query loss from the SSL Search launch.
  </summary>
</histogram>

<histogram name="Net.ErrorCodesForHTTPSGoogleMainFrame2" enum="NetErrorCodes">
  <obsolete>
    Deprecated as of 7/2018, replaced by Net.ErrorCodesForHTTPSGoogleMainFrame3.
  </obsolete>
  <owner>mmenke@chromium.org</owner>
  <summary>
    Positive net error codes that requests for pages end with, including net::OK
    and net::ERR_ABORTED. This only counts loads in &quot;main frames&quot; for
    https://www.google.com. Subresources or main frame navigations to other
    origins are not included.
  </summary>
</histogram>

<histogram name="Net.ErrorCodesForHTTPSGoogleMainFrame3" enum="NetErrorCodes">
  <owner>mmenke@chromium.org</owner>
  <summary>
    Positive net error codes that requests for pages end with, including net::OK
    and net::ERR_ABORTED. This only counts loads in &quot;main frames&quot; for
    https://www.google.com (it does not for example count the error codes for
    subresoures on a page). It excludes main frame navigations that are
    converted to downloads (unless they fail / are aborted before it's known
    that they would be a download), and requests handled externally (like mailto
    links).
  </summary>
</histogram>

<histogram name="Net.ErrorCodesForImages" enum="NetErrorCodes">
  <obsolete>
    Deprecated as of 7/2018, replaced by Net.ErrorCodesForImages2, which is
    recorded in a net-service friendly way.
  </obsolete>
  <owner>skonig@chromium.org</owner>
  <owner>hbengali@chromium.org</owner>
  <summary>
    Net error codes that requests for images end with, including net::OK and
    net:ERR_ABORTED.
  </summary>
</histogram>

<histogram name="Net.ErrorCodesForImages2" enum="NetErrorCodes">
  <owner>skonig@chromium.org</owner>
  <owner>hbengali@chromium.org</owner>
  <summary>
    Net error codes that requests for images end with, including net::OK and
    net:ERR_ABORTED.
  </summary>
</histogram>

<histogram name="Net.ErrorCodesForMainFrame" enum="NetErrorCodes">
  <obsolete>
    Deprecated as of 2011/5/24, replaced by Net.ErrorCodesForMainFrame2, which
    measures the same data but uses a different bucket structure (adds guard
    buckets).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Positive net error code that a page failed with. Note that this only counts
    the errors in &quot;main frames&quot;, so it is a measure of the error pages
    that users actually see (it does not for example count the error codes for
    subresoures on a page).
  </summary>
</histogram>

<histogram name="Net.ErrorCodesForMainFrame2" enum="NetErrorCodes">
  <obsolete>
    Deprecated as of 2012/5/16, replaced by Net.ErrorCodesForMainFrame3, which
    measures the same data but includes ERR_ABORTED and OK.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Positive net error code that a page failed with. Note that this only counts
    the errors in &quot;main frames&quot;, so it is a measure of the error pages
    that users actually see (it does not for example count the error codes for
    subresoures on a page).
  </summary>
</histogram>

<histogram name="Net.ErrorCodesForMainFrame3" enum="NetErrorCodes">
  <obsolete>
    Deprecated as of 7/2018, replaced by Net.ErrorCodesForMainFrame4, which is
    recorded in a net-service friendly way.
  </obsolete>
  <owner>mmenke@chromium.org</owner>
  <summary>
    Positive net error codes that requests for pages end with, including net::OK
    and net::ERR_ABORTED. This only counts loads in &quot;main frames&quot; (it
    does not for example count the error codes for subresoures on a page).
  </summary>
</histogram>

<histogram name="Net.ErrorCodesForMainFrame4" enum="NetErrorCodes">
  <owner>mmenke@chromium.org</owner>
  <summary>
    Positive net error codes that requests for pages end with, including net::OK
    and net::ERR_ABORTED. This only counts loads in &quot;main frames&quot; (it
    does not for example count the error codes for subresoures on a page). It
    excludes main frame navigations that are converted to downloads (unless they
    fail / are aborted before it's known that they would be a download), and
    requests handled externally (like mailto links).
  </summary>
</histogram>

<histogram name="Net.ErrorCodesForSubresources" enum="NetErrorCodes">
  <obsolete>
    Deprecated as of 2012/5/16, replaced by Net.ErrorCodesForSubresources2,
    which measures the same data but includes ERR_ABORT and OK.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Positive net error code that a page failed with. Note that this only counts
    the errors in &quot;subresources&quot;.
  </summary>
</histogram>

<histogram name="Net.ErrorCodesForSubresources2" enum="NetErrorCodes">
  <obsolete>
    Deprecated as of 7/2018, replaced by Net.ErrorCodesForSubresources3, which
    is recorded in a net-service friendly way.
  </obsolete>
  <owner>mmenke@chromium.org</owner>
  <summary>
    Net error codes that requests for &quot;subresources&quot; end with,
    including net::OK and net::ERR_ABORTED.
  </summary>
</histogram>

<histogram name="Net.ErrorCodesForSubresources3" enum="NetErrorCodes">
  <owner>mmenke@chromium.org</owner>
  <summary>
    Net error codes that requests for &quot;subresources&quot; end with,
    including net::OK and net::ERR_ABORTED.
  </summary>
</histogram>

<histogram name="Net.ErrorCodesForTLS13ExperimentMainFrame"
    enum="NetErrorCodes">
  <obsolete>
    Deprecated as of 7/2018, replaced by
    Net.ErrorCodesForTLS13ExperimentMainFrame2, which is recorded in a
    net-service friendly way.
  </obsolete>
  <owner>svaldez@chromium.org</owner>
  <summary>
    Positive net error codes that requests for pages end with, including net::OK
    and net::ERR_ABORTED. This only counts loads in &quot;main frames&quot; for
    endpoints used in the initial TLS 1.3 deployment. Subresources or main frame
    navigations to other origins are not included.
  </summary>
</histogram>

<histogram name="Net.ErrorCodesForTLS13ExperimentMainFrame2"
    enum="NetErrorCodes">
  <owner>svaldez@chromium.org</owner>
  <summary>
    Positive net error codes that requests for pages end with, including net::OK
    and net::ERR_ABORTED. This only counts loads in &quot;main frames&quot; for
    endpoints used in the initial TLS 1.3 deployment. Subresources or main frame
    navigations to other origins are not included.
  </summary>
</histogram>

<histogram name="Net.ErrorPageButtonPressedWhileInUnexpectedState"
    enum="ErrorPageButton">
  <obsolete>
    Deprecated as of 2015/8/21
  </obsolete>
  <owner>mmenke@chromium.org</owner>
  <summary>
    Temporary histogram to investigate http://crbug.com/500556. Records which
    button on the network error page was pushed when either the URL Blink
    reports for the page is not the internal error page URL or the
    NetErrorHelper core has no error information for the current page (or both).
  </summary>
</histogram>

<histogram name="Net.ErrorPageButtonPressUnexpectedStates"
    enum="ErrorPageUnexpectedStates">
  <obsolete>
    Deprecated as of 2015/8/21
  </obsolete>
  <owner>mmenke@chromium.org</owner>
  <summary>
    Temporary histogram to investigate http://crbug.com/500556. Records whether,
    when the handler for a button press on the network error page runs, which of
    the following are or are not true: The URL Blink reports for the page is not
    the internal error page URL or the NetErrorHelper core has no error
    information for the current page.
  </summary>
</histogram>

<histogram name="Net.ErrorPageCounts" enum="NetErrorPageEvents">
  <owner>mmenke@chromium.org</owner>
  <summary>
    Counts of various events that can occur on the network error page. Note that
    this histogram enum buckets are not mutually exclusive and so a single error
    page load might report samples into multiple ones. Each bucket has
    descriptions that further explain the context of their samples.
  </summary>
</histogram>

<histogram name="Net.ErrorPageCounts.NavigationCorrectionLinksShown"
    enum="NetErrorNavigationCorrectionTypes">
  <owner>edwardjung@chromium.org</owner>
  <summary>
    Counts of the type of navigation correction suggestions shown on the network
    error page. Multiple suggestions can be shown at the same time.
  </summary>
</histogram>

<histogram name="Net.ErrorPageCounts.NavigationCorrectionLinksUsed"
    enum="NetErrorNavigationCorrectionTypes">
  <owner>edwardjung@chromium.org</owner>
  <summary>
    Usage of navigation correction suggestions shown on the network error page.
  </summary>
</histogram>

<histogram name="Net.ErrorPageCounts.SuggestionClicked"
    enum="NetErrorOfflineSuggestionType" expires_after="2019-08-24">
  <owner>carlosk@chromium.org</owner>
  <owner>harringtond@chromium.org</owner>
  <summary>
    Counts of the type of offline content suggestions clicked on the network
    error page. Reported upon click.
  </summary>
</histogram>

<histogram name="Net.ErrorPageCounts.SuggestionPresented"
    enum="NetErrorOfflineSuggestionType" expires_after="2019-08-24">
  <owner>carlosk@chromium.org</owner>
  <owner>harringtond@chromium.org</owner>
  <summary>
    Counts of the type of offline content suggestions shown on the network error
    page. Multiple suggestions can be shown at the same time. Reported when the
    suggestions are presented.
  </summary>
</histogram>

<histogram name="Net.ErrorResponseHasContentMainFrame" enum="BooleanSuccess">
  <obsolete>
    Deprecated 10/2016.
  </obsolete>
  <owner>mmenke@chromium.org</owner>
  <summary>
    The number of main frame 4xx/5xx responses that have content, to determine
    if it's worth hooking up an error page for those that don't. Intended to be
    removed from the binary soon.
  </summary>
</histogram>

<histogram name="Net.ErrorResponseHasContentNonMainFrame" enum="BooleanSuccess">
  <obsolete>
    Deprecated 10/2016.
  </obsolete>
  <owner>mmenke@chromium.org</owner>
  <summary>
    The number of non-main frame 4xx/5xx responses that have content, to
    determine if it's worth hooking up an error page for those that don't.
    Intended to be removed from the binary soon.
  </summary>
</histogram>

<histogram name="Net.ExpectCTHeader.ParseSuccess" enum="BooleanSuccess">
  <owner>estark@chromium.org</owner>
  <summary>
    Sites can send an Expect-CT header to Chrome to indicate that they intend
    their sites to comply with Chrome's Certificate Transparency policy. This
    histogram is recorded whenever an Expect-CT header is processed on a
    connection. True indicates that the header parsed successfully, and false
    indicates that there was a parse failure.
  </summary>
</histogram>

<histogram name="Net.ExpectCTHeader.PolicyComplianceOnConnectionSetup"
    enum="CTComplianceStatus">
  <owner>estark@chromium.org</owner>
  <summary>
    Sites can send an Expect-CT header to Chrome to indicate that they intend
    their sites to comply with Chrome's Certificate Transparency policy. This
    histogram is recorded on connection setup, whenever Chrome connects to an
    Expect-CT site using a publicly trusted root. The histogram records the CT
    policy compliance status of the connection.
  </summary>
</histogram>

<histogram name="Net.ExpectCTHeader.PolicyComplianceOnHeaderProcessing"
    enum="CTComplianceStatus">
  <owner>estark@chromium.org</owner>
  <summary>
    Sites can send an Expect-CT header to Chrome to indicate that they intend
    their sites to comply with Chrome's Certificate Transparency policy. This
    histogram is recorded whenever an Expect-CT header is successfully parsed on
    a connection that chains to a publicly trusted root. The histogram records
    the CT policy compliance status of the connection on which the header was
    received.
  </summary>
</histogram>

<histogram name="Net.ExpectCTHeaderResult" enum="ExpectCTHeaderResult">
  <obsolete>
    Deprecated 04/2017.
  </obsolete>
  <owner>estark@chromium.org</owner>
  <summary>
    Sites can send an Expect-CT header to Chrome to indicate that they want a
    report to be sent when the connection does not comply with Certificate
    Transparency policy. This histogram is recorded whenever Chrome receives an
    Expect-CT header, and it records the result of processing the header, such
    as whether it was ignored due to a bad value.
  </summary>
</histogram>

<histogram name="Net.FileError_Flush">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    System error code that a file Flush failed with. The code is OS dependent,
    so when looking at the histogram don't mix OSes.
  </summary>
</histogram>

<histogram name="Net.FileError_GetSize">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    System error code that a file GetSize failed with. The code is OS dependent,
    so when looking at the histogram don't mix OSes.
  </summary>
</histogram>

<histogram name="Net.FileError_Open">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    System error code that a file Open failed with. The code is OS dependent, so
    when looking at the histogram don't mix OSes.
  </summary>
</histogram>

<histogram name="Net.FileError_Read">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    System error code that a file Read failed with. The code is OS dependent, so
    when looking at the histogram don't mix OSes.
  </summary>
</histogram>

<histogram name="Net.FileError_Seek">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    System error code that a file Seek failed with. The code is OS dependent, so
    when looking at the histogram don't mix OSes.
  </summary>
</histogram>

<histogram name="Net.FileError_SetEof">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    System error code that a file SetEof failed with. The code is OS dependent,
    so when looking at the histogram don't mix OSes.
  </summary>
</histogram>

<histogram name="Net.FileError_Write">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    System error code that a file Write failed with. The code is OS dependent,
    so when looking at the histogram don't mix OSes.
  </summary>
</histogram>

<histogram name="Net.FileErrorRange_Flush">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    System error code range that a file Flush failed with. Any value other than
    0 indicates that we have received errors in a range outside of the one in
    which we recorded the specific errors in Net.FileError_Flush. The code is OS
    dependent, so when looking at the histogram don't mix OSes.
  </summary>
</histogram>

<histogram name="Net.FileErrorRange_GetSize">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    System error code range that a file GetSize failed with. Any value other
    than 0 indicates that we have received errors in a range outside of the one
    in which we recorded the specific errors in Net.FileError_GetSize. The code
    is OS dependent, so when looking at the histogram don't mix OSes.
  </summary>
</histogram>

<histogram name="Net.FileErrorRange_Open">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    System error code range that a file Open failed with. Any value other than 0
    indicates that we have received errors in a range outside of the one in
    which we recorded the specific errors in Net.FileError_Open. The code is OS
    dependent, so when looking at the histogram don't mix OSes.
  </summary>
</histogram>

<histogram name="Net.FileErrorRange_Read">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    System error code range that a file Read failed with. Any value other than 0
    indicates that we have received errors in a range outside of the one in
    which we recorded the specific errors in Net.FileError_Read. The code is OS
    dependent, so when looking at the histogram don't mix OSes.
  </summary>
</histogram>

<histogram name="Net.FileErrorRange_Seek">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    System error code range that a file Seek failed with. Any value other than 0
    indicates that we have received errors in a range outside of the one in
    which we recorded the specific errors in Net.FileError_Seek. The code is OS
    dependent, so when looking at the histogram don't mix OSes.
  </summary>
</histogram>

<histogram name="Net.FileErrorRange_SetEof">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    System error code range that a file SetEof failed with. Any value other than
    0 indicates that we have received errors in a range outside of the one in
    which we recorded the specific errors in Net.FileError_SetEof. The code is
    OS dependent, so when looking at the histogram don't mix OSes.
  </summary>
</histogram>

<histogram name="Net.FileErrorRange_Write">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    System error code range that a file Write failed with. Any value other than
    0 indicates that we have received errors in a range outside of the one in
    which we recorded the specific errors in Net.FileError_Write. The code is OS
    dependent, so when looking at the histogram don't mix OSes.
  </summary>
</histogram>

<histogram name="Net.FileSVGZLoadCount" enum="BooleanAttempted"
    expires_after="2019-03-12">
  <owner>cmumford@chromium.org</owner>
  <summary>
    A compressed SVG file was loaded from the file scheme. This is a temporary
    counter to determine how often (if at all) this feature is used. Recorded
    during creation of file-request for .svgz resource. See
    http://crbug.com/857117 for more information. This value will only be
    recorded in M72 and removed from M73.
  </summary>
</histogram>

<histogram name="Net.ForceAlternativeService" enum="BooleanForced">
  <obsolete>
    Data collection ended, corresponding feature removed.
  </obsolete>
  <owner>bnc@chromium.org</owner>
  <summary>
    Track usage of alternative services forced by the force-alt-protocols
    command line flag. Triggered each time alternative services are queried for
    a given origin and the command line flag would make a difference (that is,
    there is no advertised alternative service for that origin).
  </summary>
</histogram>

<histogram name="Net.FoundSystemTrustRootsAndroid" enum="BooleanFound">
  <owner>davidben@chromium.org</owner>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    Whether or not system installed trust anchors could be distinguished from
    user installed trust anchors. Recorded on first certificate verification on
    Android 4.2 and later.
  </summary>
</histogram>

<histogram name="Net.FtpDataConnectionErrorCount" enum="FtpDataConnectionError">
  <owner>phajdan.jr@chromium.org</owner>
  <summary>The number of times each FTP Error was observed.</summary>
</histogram>

<histogram name="Net.FtpDataConnectionErrorHappened"
    enum="FtpDataConnectionError">
  <owner>phajdan.jr@chromium.org</owner>
  <summary>
    The number of Chrome sessions which encountered the indicates FTP Error.
    This prevents allowing a user that retried a connection many times (getting
    an error each time) from biasing the tallies.
  </summary>
</histogram>

<histogram name="Net.FtpServerTypeCount" enum="FtpServerType">
  <obsolete>
    Replaced by Net.FtpServerTypeCount2 on 2012-11-03.
  </obsolete>
  <owner>phajdan.jr@chromium.org</owner>
  <summary>
    Each bucket is the number of times the FTP server type was encountered.
  </summary>
</histogram>

<histogram name="Net.FtpServerTypeCount2" enum="FtpServerType2">
  <owner>phajdan.jr@chromium.org</owner>
  <summary>
    Each bucket is the number of times the FTP server type was encountered.
  </summary>
</histogram>

<histogram name="Net.GetProxyForUrl_FAIL" units="ms">
  <obsolete>
    Removed at some time before 2014/09/15.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time spent waiting for WinHttpGetProxyForUrl to return with error.
  </summary>
</histogram>

<histogram name="Net.GetProxyForUrl_OK" units="ms">
  <obsolete>
    Removed at some time before 2014/09/15.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time spent waiting for WinHttpGetProxyForUrl to return with success.
  </summary>
</histogram>

<histogram name="Net.GoogleConnectionInappropriateFallback"
    enum="BooleanInappropriateFallback">
  <obsolete>
    Removed June 2016.
  </obsolete>
  <owner>davidben@chromium.org</owner>
  <summary>
    Records a sample for each HTTPS request to a Google server that either
    succeeded or received an inappropriate_fallback alert. This is used to
    estimate how frequently the fallback is used to recover from a spurious
    network failure.
  </summary>
</histogram>

<histogram name="Net.GoogleConnectionUsedSSLVersionFallback"
    enum="FallbackSSLVersion">
  <obsolete>
    Replaced with Net.GoogleConnectionUsedSSLVersionFallback2 in Chrome 44.
  </obsolete>
  <owner>agl@chromium.org</owner>
  <summary>
    Nonzero if the HTTP request was to a Google server which required SSL
    version fallback. The value indicates the SSL version the request fell back
    on. Since Google servers support TLS 1.2, any fallback is an indication of
    network middleware problems.
  </summary>
</histogram>

<histogram name="Net.GoogleConnectionUsedSSLVersionFallback2"
    enum="FallbackSSLVersion">
  <obsolete>
    Removed June 2016.
  </obsolete>
  <owner>davidben@chromium.org</owner>
  <summary>
    For each successful HTTPS request to a Google server, whether it used the
    SSL version fallback. The value indicates the SSL version the request fell
    back on. Since Google servers support TLS 1.2 and FALLBACK_SCSV, any
    fallback is an indication of a broken local SSL MITM proxy.
  </summary>
</histogram>

<histogram name="Net.GzipEncodingFixupResult" enum="GzipEncodingFixupResult">
  <obsolete>
    Removed around 2015/03/18. The code which implemented Gzip encoding fixup
    was removed.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>
    Resources are sometimes transferred with an incorrect encoding type of gzip.
    net::Filter::FixupEncodingTypes() attempts to correct for these situations
    by applying a set of heuristics. This histogram counts the frequency of
    usage of these heuristics in the wild.
  </summary>
</histogram>

<histogram name="Net.HadConnectionType" enum="ConnectionType">
  <obsolete>
    The count was inaccurate (it counted transactions rather than connections).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Each bucket is a boolean (0 or 1) indicating whether the user has had a
    connection of that type during the session.
  </summary>
</histogram>

<histogram name="Net.HadConnectionType2" enum="ConnectionType">
  <obsolete>
    This statistic measures successful and failed connections, the new one only
    measures successful ones.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Each bucket is a boolean (0 or 1) indicating whether the user has had a
    connection of that type during the session.
  </summary>
</histogram>

<histogram name="Net.HadConnectionType3" enum="ConnectionType">
  <obsolete>
    Removed May 2016.
  </obsolete>
  <owner>davidben@chromium.org</owner>
  <summary>
    Each bucket is a boolean (0 or 1) indicating whether the user has had a
    successful connection of that type during the session.
  </summary>
</histogram>

<histogram name="Net.HadFtpServerType" enum="FtpServerType">
  <obsolete>
    Replaced by Net.HadFtpServerType2 on 2012-11-13.
  </obsolete>
  <owner>phajdan.jr@chromium.org</owner>
  <summary>
    Each bucket is the number of sessions that encountered a given FTP server
    type. Each session reports a given server type at most once.
  </summary>
</histogram>

<histogram name="Net.HadFtpServerType2" enum="FtpServerType2">
  <owner>phajdan.jr@chromium.org</owner>
  <summary>
    Each bucket is the number of sessions that encountered a given FTP server
    type. Each session reports a given server type at most once.
  </summary>
</histogram>

<histogram name="Net.HasBrokenNEON" enum="BooleanBroken">
  <owner>davidben@chromium.org</owner>
  <summary>
    Records, on startup, for ARM devices running Android, whether the CPU is
    known to have a broken NEON unit. See https://crbug.com/341598.
  </summary>
</histogram>

<histogram name="Net.Http2ResponseStatusHeader" enum="StatusHeader">
  <obsolete>
    Removed in 2017 March.
  </obsolete>
  <owner>bnc@chromium.org</owner>
  <summary>Format of :status header value in HTTP/2 response.</summary>
</histogram>

<histogram name="Net.Http2SSLCipherSuite" enum="SSLCipherSuite">
  <obsolete>
    Removed 2017-02.
  </obsolete>
  <owner>davidben@chromium.org</owner>
  <summary>
    The SSL/TLS cipher suite that was negotiated, recorded for each successful
    HTTP/2 connection.
  </summary>
</histogram>

<histogram name="Net.HttpAuthCacheAddEvicted" enum="BooleanDidEvict">
  <owner>asanka@chromium.org</owner>
  <summary>
    Whether adding an entry to the HTTP auth cache evicted another entry.
  </summary>
</histogram>

<histogram name="Net.HttpAuthCacheAddEvictedCreation">
  <owner>asanka@chromium.org</owner>
  <summary>
    When an HTTP auth cache entry is evicted, the time since it was created.
  </summary>
</histogram>

<histogram name="Net.HttpAuthCacheAddEvictedLastUse">
  <owner>asanka@chromium.org</owner>
  <summary>
    When an HTTP auth cache entry is evicted, the time since it was last used.
  </summary>
</histogram>

<histogram name="Net.HttpAuthCacheAddPathEvicted" enum="BooleanDidEvict">
  <owner>asanka@chromium.org</owner>
  <summary>
    Whether adding a path to an entry in the HTTP auth cache evicted another
    path.
  </summary>
</histogram>

<histogram name="Net.HttpAuthCacheEntriesExaminedWhenNoMatch">
  <obsolete>
    Deprecated 10/2018 when changing the cache implementation such that the
    number of entries examined no longer applies.
  </obsolete>
  <owner>chlily@chromium.org</owner>
  <summary>
    The number of entries examined (equal to the cache size) when attempting to
    look up an HTTP auth cache entry (either by path or realm) and finding no
    matching entries. This is recorded whenever the lookup fails (i.e., value 0
    in Net.HttpAuthCacheLookupPosition and
    Net.HttpAuthCacheLookupByPathPosition).
  </summary>
</histogram>

<histogram name="Net.HttpAuthCacheLookupByPathPosition">
  <obsolete>
    Deprecated 10/2018 when changing the cache implementation such that the
    lookup position no longer applies.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>
    When looking up an HTTP auth cache entry by path, the position (1-indexed)
    of the entry on a hit, or 0 on a miss.
  </summary>
</histogram>

<histogram name="Net.HttpAuthCacheLookupPosition">
  <obsolete>
    Deprecated 10/2018 when changing the cache implementation such that the
    lookup position no longer applies.
  </obsolete>
  <owner>asanka@chromium.org</owner>
  <summary>
    When looking up an HTTP auth cache entry by realm, the position (1-indexed)
    of the entry on a hit, or 0 on a miss.
  </summary>
</histogram>

<histogram name="Net.HttpAuthCount" enum="HttpAuthCount">
  <owner>asanka@chromium.org</owner>
  <owner>mmenke@chromium.org</owner>
  <summary>
    Per-authentication-scheme counts of authentication attempts and rejections.
  </summary>
</histogram>

<histogram name="Net.HttpAuthPromptType" enum="HttpAuthPromptType">
  <owner>meacer@chromium.org</owner>
  <summary>Type of the HTTP auth prompt displayed.</summary>
</histogram>

<histogram name="Net.HttpAuthResource" enum="HttpAuthResource">
  <obsolete>
    Removed in https://crrev.com/209100
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Count of authentication requests for top level pages vs. sub-resources, such
    as images or iframes.
  </summary>
</histogram>

<histogram name="Net.HttpAuthTarget" enum="HttpAuthTarget">
  <owner>asanka@chromium.org</owner>
  <owner>mmenke@chromium.org</owner>
  <summary>
    Per-authentication-scheme counts of authentication targets, such as secure
    servers or proxies.
  </summary>
</histogram>

<histogram name="Net.HttpConnectionLatency" units="ms">
  <obsolete>
    Deprecated as of 03/2015.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time between the HttpNetworkTransaction requesting a connection and the time
    it connected.
  </summary>
</histogram>

<histogram name="Net.HttpContentFreshnessLifetime" units="seconds">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Length of time that a received resource will be cacheable.</summary>
</histogram>

<histogram name="Net.HttpContentLength" units="bytes">
  <obsolete>
    Replaced by Net.HttpContentLengthV2
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <summary>
    Size of the response body. This is the actual number of bytes received,
    which usually agrees with but is not necessarily the same as the size
    specified by the Content-Length header.
  </summary>
</histogram>

<histogram name="Net.HttpContentLengthCacheable" units="bytes">
  <obsolete>
    Deprecated 04/2018.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <summary>
    Size of the response body if it is cacheable. This is the actual number of
    bytes received, which usually agrees with but is not necessarily the same as
    the size specified by the Content-Length header.
  </summary>
</histogram>

<histogram name="Net.HttpContentLengthCacheable24Hours" units="bytes">
  <obsolete>
    Deprecated 04/2018.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <summary>
    Size of the response body if it is cacheable for at least 24 hours. This is
    the actual number of bytes received, which usually agrees with but is not
    necessarily the same as the size specified by the Content-Length header.
  </summary>
</histogram>

<histogram name="Net.HttpContentLengthCacheable4Hours" units="bytes">
  <obsolete>
    Deprecated 04/2018.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <summary>
    Size of the response body if it is cacheable for at least 4 hours. This is
    the actual number of bytes received, which usually agrees with but is not
    necessarily the same as the size specified by the Content-Length header.
  </summary>
</histogram>

<histogram name="Net.HttpContentLengthDifference" units="bytes">
  <obsolete>
    Deprecated 06/2018.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <summary>
    The difference between the size specified in the X-Original-Content-Length
    header and the size of the response body. This is zero if the
    X-Original-Content-Length header is not present in the response.
  </summary>
</histogram>

<histogram name="Net.HttpContentLengthDifferenceWithValidOCL" units="bytes">
  <owner>bengr@chromium.org</owner>
  <summary>
    The difference between the size specified in the X-Original-Content-Length
    header and the size of the response body. Only includes resources that have
    the X-Original-Content-Length header.
  </summary>
</histogram>

<histogram name="Net.HttpContentLengthV2" units="bytes" expires_after="never">
<!-- expires-never: Input to Lingo pipelines. -->

  <owner>bengr@chromium.org</owner>
  <summary>
    Size of the response body. This is the actual number of bytes received,
    which usually agrees with but is not necessarily the same as the size
    specified by the Content-Length header. Replaces Net.HttpContentLength,
    recording non-DRP Http traffic as &quot;Http.Direct&quot; instead of
    &quot;Http.Other&quot;.
  </summary>
</histogram>

<histogram name="Net.HttpContentLengthWithValidOCL" units="bytes">
  <obsolete>
    Deprecated 04/2018.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <summary>
    Size of the response body. Only includes resources that have the
    X-Original-Content-Length header.
  </summary>
</histogram>

<histogram name="Net.HttpHeaderParserEvent" enum="HttpHeaderParserEvent">
  <obsolete>
    Deprecated as of 12/2016.
  </obsolete>
  <owner>mmenke@chromium.org</owner>
  <summary>
    Records the frequency with which a number of hacky HTTP header parsing rules
    are invoked. This histogram should be removed after we have enough data to
    know if we can remove the hacks.
  </summary>
</histogram>

<histogram name="net.HttpIdentSrcURL" units="requests">
  <owner>tsepez@chromium.org</owner>
  <summary>
    Count of requests which contained a basic auth username and password
    embedded in the URL itself.
  </summary>
</histogram>

<histogram name="Net.HttpJob.PrefilterBytesRead" units="bytes">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Total prefilter (e.g., before decompression) bytes read for an HttpJob
    request.
  </summary>
</histogram>

<histogram name="Net.HttpJob.TotalTime" units="ms">
  <owner>mmenke@chromium.org</owner>
  <summary>
    Time it takes to complete an HttpJob, from starting the transaction until we
    are done reading.
  </summary>
</histogram>

<histogram name="Net.HttpJob.TotalTimeCached" units="ms">
  <owner>mmenke@chromium.org</owner>
  <summary>
    Time it takes to complete an HttpJob, from starting the transaction until we
    are done reading, for jobs served from the cache.
  </summary>
</histogram>

<histogram name="Net.HttpJob.TotalTimeCancel" units="ms">
  <owner>mmenke@chromium.org</owner>
  <summary>
    Time it takes to complete an HttpJob, from starting the transaction until
    the job is killed. Note that we didn't detect the end of the data for this
    job.
  </summary>
</histogram>

<histogram name="Net.HttpJob.TotalTimeNotCached" units="ms">
  <owner>mmenke@chromium.org</owner>
  <summary>
    Time it takes to complete an HttpJob, from starting the transaction until we
    are done reading, for jobs not served from the cache.
  </summary>
</histogram>

<histogram name="Net.HttpJob.TotalTimeSuccess" units="ms">
  <owner>mmenke@chromium.org</owner>
  <summary>
    Time it takes to complete an HttpJob, from starting the transaction until we
    are done reading, for jobs when we read until no more data is available.
  </summary>
</histogram>

<histogram name="Net.HttpOriginalContentLength" units="bytes">
  <obsolete>
    Replaced by Net.HttpOriginalContentLengthV2.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <summary>
    Size specified in the X-Original-Content-Length header. If this header is
    not present in the response, the size of the response body is used.
  </summary>
</histogram>

<histogram name="Net.HttpOriginalContentLengthV2" units="bytes"
    expires_after="never">
<!-- expires-never: Input to Lingo pipelines. -->

  <owner>bengr@chromium.org</owner>
  <summary>
    Net.HttpOriginalContentLength with non-data reduction proxy traffic properly
    labeled with the &quot;Direct&quot; suffix.

    Size specified in the X-Original-Content-Length header. If this header is
    not present in the response, the size of the response body is used. Replaces
    Net.HttpOriginalContentLength, breaking down traffic by Direct, ViaDRP,
    Bypassed, and Other.
  </summary>
</histogram>

<histogram name="Net.HttpOriginalContentLengthWithValidOCL" units="bytes">
  <owner>bengr@chromium.org</owner>
  <summary>
    Size specified in the X-Original-Content-Length header. Only includes
    resources that have the X-Original-Content-Length header.
  </summary>
</histogram>

<histogram name="Net.HttpProxy.ConnectLatency" units="ms">
  <owner>tbansal@chromium.org</owner>
  <summary>Time taken to establish the connection to the HTTP proxy.</summary>
</histogram>

<histogram name="Net.HttpProxySocketRequestTime" units="ms">
  <obsolete>
    Deprecated as of 10/2016.
  </obsolete>
  <owner>mmenke@chromium.org</owner>
  <summary>Time it takes to request a new (unused) HTTP proxy socket.</summary>
</histogram>

<histogram name="Net.HttpRequest.ContainsInvalidHeaderValuesInRFC7230"
    enum="Boolean">
  <obsolete>
    Deprecated 06/2016 because this is not continuously tracked.
  </obsolete>
  <owner>hiroshige@chromium.org</owner>
  <summary>
    Whether a request contains invalid request header values in RFC 7230. This
    is counted once for every redirect leg. https://crbug.com/455099.
  </summary>
</histogram>

<histogram name="Net.HttpRequestCompletionErrorCodes" enum="NetErrorCodes">
  <owner>sclittle@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The network error code that the HTTP request completes with, including OK
    and ABORTED.
  </summary>
</histogram>

<histogram name="Net.HttpRequestCompletionErrorCodes.MainFrame"
    enum="NetErrorCodes">
  <owner>sclittle@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The network error code that the HTTP main frame resource request completes
    with, including OK and ABORTED.
  </summary>
</histogram>

<histogram name="Net.HttpResponse.ContainsInvalidHeaderValuesInRFC7230"
    enum="Boolean">
  <obsolete>
    Deprecated 06/2016 because this is not continuously tracked.
  </obsolete>
  <owner>hiroshige@chromium.org</owner>
  <summary>
    Whether a response contains invalid response header values in RFC 7230. This
    is counted once for every redirect leg. https://crbug.com/455099.
  </summary>
</histogram>

<histogram name="Net.HttpResponseCode">
  <owner>mmenke@chromium.org</owner>
  <summary>The count of HTTP Response codes encountered.</summary>
</histogram>

<histogram name="Net.HttpResponseCode_Nxx_MainFrame">
  <owner>mmenke@chromium.org</owner>
  <summary>
    The count of HTTP Response codes encountered, in response to MAIN_FRAME
    requests only; saving only the hundreds digit, e.g. 100-&gt;1, 300-&gt;3.
  </summary>
</histogram>

<histogram name="Net.HttpResponseInfo.ConnectionInfo" enum="ConnectionInfo">
  <obsolete>
    Deprecated as of 06/2016.
  </obsolete>
  <owner>bnc@chromium.org</owner>
  <summary>
    Application protocol used in HTTP response. Recorded every time a URLRequest
    completes.
  </summary>
</histogram>

<histogram name="Net.HttpResponseInfo.ConnectionInfo.MainFrame"
    enum="ConnectionInfo">
  <obsolete>
    Deprecated as of July 2018.
  </obsolete>
  <owner>mmenke@chromium.org</owner>
  <summary>
    Application protocol used in HTTP responses to requests for main frames.
    Only includes requests that went over the network.
  </summary>
</histogram>

<histogram name="Net.HttpResponseInfo.ConnectionInfo.SubResource"
    enum="ConnectionInfo">
  <obsolete>
    Deprecated as of July 2018.
  </obsolete>
  <owner>mmenke@chromium.org</owner>
  <summary>
    Application protocol used in HTTP responses to requests for resources other
    than main frames. Does not include internal Chrome requests. Only includes
    requests that went over the network.
  </summary>
</histogram>

<histogram name="Net.HttpServerProperties.UpdatePrefs"
    enum="HttpServerPropertiesUpdatePrefsLocation" expires_after="2018-08-30">
  <owner>rch@chromium.org</owner>
  <summary>
    The location in http_server_properties_manager.cc where UpdatePrefs was
    called.
  </summary>
</histogram>

<histogram name="Net.HttpSocketType" enum="HttpSocketType">
  <obsolete>
    Deprecated as of 03/2015.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The counts of the type of sockets (all HTTP sockets, regardless of any proxy
    used) used for HTTP[s].
  </summary>
</histogram>

<histogram name="Net.HttpStatusLineStatus" enum="HttpStatusLineStatus">
  <obsolete>
    Deprecated as of 12/2016.
  </obsolete>
  <owner>ellyjones@chromium.org</owner>
  <summary>
    Records how often violations of RFC 7230's header parsing rules are
    observed.
  </summary>
</histogram>

<histogram name="Net.HttpStreamFactoryJob.Alt.NextState"
    enum="HttpStreamFactoryJobState">
  <obsolete>
    Deprecated as of 1/2018.
  </obsolete>
  <owner>mef@chromium.org</owner>
  <owner>pauljensen@chromium.org</owner>
  <summary>Reports the next state that the Alternative Job is in.</summary>
</histogram>

<histogram name="Net.HttpStreamFactoryJob.Alt.State"
    enum="HttpStreamFactoryJobState">
  <obsolete>
    Deprecated as of 1/2018.
  </obsolete>
  <owner>mef@chromium.org</owner>
  <owner>pauljensen@chromium.org</owner>
  <summary>Reports the state that the Alternative Job is in.</summary>
</histogram>

<histogram name="Net.HttpStreamFactoryJob.Main.NextState"
    enum="HttpStreamFactoryJobState">
  <obsolete>
    Deprecated as of 1/2018.
  </obsolete>
  <owner>mef@chromium.org</owner>
  <owner>pauljensen@chromium.org</owner>
  <summary>Reports the next state that the Main Job is in.</summary>
</histogram>

<histogram name="Net.HttpStreamFactoryJob.Main.State"
    enum="HttpStreamFactoryJobState">
  <obsolete>
    Deprecated as of 1/2018.
  </obsolete>
  <owner>mef@chromium.org</owner>
  <owner>pauljensen@chromium.org</owner>
  <summary>Reports the state that the Main Job is in.</summary>
</histogram>

<histogram name="Net.HttpStreamFactoryJob.StreamReadyCallbackTime" units="ms">
  <obsolete>
    Deprecated 08/2017. No longer tracked.
  </obsolete>
  <owner>zhongyi@chromium.org</owner>
  <summary>Time it takes for OnStreamReadyCallback to be called.</summary>
</histogram>

<histogram name="Net.HttpTimeToFirstByte" units="ms">
  <owner>mmenke@chromium.org</owner>
  <summary>
    Time from when an HTTP request is issued to when the first byte is
    processed.
  </summary>
</histogram>

<histogram name="Net.HttpTimeToFirstByte.LargeUpload" units="ms">
  <owner>mmenke@chromium.org</owner>
  <summary>
    Time from when an HTTP request is issued to when the first byte is
    processed, for requests with an upload that is &gt; 1 MiB. Excludes chunked
    uploads.
  </summary>
</histogram>

<histogram name="Net.IOError_SocketReuseType" enum="HttpSocketType">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The count of handleable socket errors (connection abort/close/reset) per
    socket reuse type.
  </summary>
</histogram>

<histogram name="Net.IOError_SocketReuseType_disable_late_binding"
    enum="HttpSocketType">
  <obsolete>
    Late bindings are on by default now.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The count of handleable socket errors (connection abort/close/reset) per
    socket reuse type. Socket late binding is disabled.
  </summary>
</histogram>

<histogram name="Net.IOError_SocketReuseType_enable_late_binding"
    enum="HttpSocketType">
  <obsolete>
    Late bindings are on by default now.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The count of handleable socket errors (connection abort/close/reset) per
    socket reuse type. Socket late binding is enabled.
  </summary>
</histogram>

<histogram name="Net.IOThreadCreationToHttpRequestStart" units="ms">
  <obsolete>
    Deprecated 11/2014. No longer tracked.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <summary>
    Time from when the IOThread is created to when the first URL request is
    started. Only requests that are created for a profile while Chrome is
    starting up are considered.
  </summary>
</histogram>

<histogram name="Net.IPv6ConnectDuration" units="ms">
  <obsolete>
    Deprecated 1/2015. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Duration of time spent during the UDP-connect IPv6 probe.</summary>
</histogram>

<histogram name="Net.IPv6ConnectFailureMatch" enum="BooleanSuccess">
  <obsolete>
    Deprecated 03/2015. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Whether the interface-enumeration IPv6 probe method failed given that the
    UDP-connect IPV6 probe failed.
  </summary>
</histogram>

<histogram name="Net.IPv6ConnectSuccessMatch" enum="BooleanSuccess">
  <obsolete>
    Deprecated 03/2015. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Whether the interface-enumeration IPv6 probe method was successful given
    that the UDP-connect IPV6 probe was successful.
  </summary>
</histogram>

<histogram name="Net.IPv6Status" enum="IPV6ProbeResult">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The probe results when a test for IPv6 support is done.</summary>
</histogram>

<histogram name="Net.IPv6Status_retest" enum="IPV6ProbeResult">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The probe results when a test for IPv6 support is done, after a network
    change event.
  </summary>
</histogram>

<histogram name="Net.JobControllerSet.CountOfJobController"
    units="job_controllers">
  <obsolete>
    Deprecated 01/2018.
  </obsolete>
  <owner>zhongyi@chromium.org</owner>
  <summary>
    This counts number of all the job controllers that are still alive if the
    count is a multiple of 100: 100, 200, 300, etc.
  </summary>
</histogram>

<histogram
    name="Net.JobControllerSet.CountOfJobController.NonPreconnect.PendingRequest"
    units="job_controllers">
  <obsolete>
    Deprecated 01/2018.
  </obsolete>
  <owner>zhongyi@chromium.org</owner>
  <summary>
    This counts number of JobControllers that are still alive, not created for
    preconnect, and still have a HttpStreamFactoryImpl::Request pending.
  </summary>
</histogram>

<histogram
    name="Net.JobControllerSet.CountOfJobController.NonPreconnect.RequestGone"
    units="job_controllers">
  <obsolete>
    Deprecated 01/2018.
  </obsolete>
  <owner>zhongyi@chromium.org</owner>
  <summary>
    This counts number of job controllers that are still alive, not created for
    preconnect but HttpStreamFactoryImpl::Request has completed.
  </summary>
</histogram>

<histogram name="Net.JobControllerSet.CountOfJobController.Preconnect"
    units="job_controllers">
  <obsolete>
    Deprecated 01/2018.
  </obsolete>
  <owner>zhongyi@chromium.org</owner>
  <summary>
    This counts number of job controllers which are used for preconnect and are
    still alive.
  </summary>
</histogram>

<histogram name="Net.JobControllerSet.CountOfJobControllerAtShutDown"
    units="job_controllers">
  <obsolete>
    Deprecated 01/2018.
  </obsolete>
  <owner>zhongyi@chromium.org</owner>
  <summary>
    This counts number of all the job controllers that are still alive.
  </summary>
</histogram>

<histogram name="Net.JobControllerSet.CountOfNonPreconnectAltJob"
    units="alt_jobs">
  <obsolete>
    Deprecated 08/2017.
  </obsolete>
  <owner>zhongyi@chromium.org</owner>
  <summary>
    This counts number of alternative jobs which are still alive.
  </summary>
</histogram>

<histogram name="Net.JobControllerSet.CountOfNonPreconnectMainJob"
    units="main_jobs">
  <obsolete>
    Deprecated 08/2017.
  </obsolete>
  <owner>zhongyi@chromium.org</owner>
  <summary>This counts number of main jobs which are still alive.</summary>
</histogram>

<histogram name="Net.JobControllerSet.CountOfPendingRequest" units="requests">
  <obsolete>
    Deprecated 04/2017, replaced by
    Net.JobController.CountOfJobController.NonPreconnect.PendingRequest.
  </obsolete>
  <owner>zhongyi@chromium.org</owner>
  <summary>
    This counts number of HttpStreamFactoryImpl::Request which are still alive.
  </summary>
</histogram>

<histogram name="Net.JobControllerSet.CountOfPreconnect"
    units="job_controllers">
  <obsolete>
    Deprecated 04/2017, replaced by
    Net.JobController.CountOfJobController.Preconnect.
  </obsolete>
  <owner>zhongyi@chromium.org</owner>
  <summary>
    This counts number of job controllers which are used for preconnect and are
    still alive.
  </summary>
</histogram>

<histogram name="Net.KeepaliveStatisticsRecorder.PeakInflightRequests"
    units="requests">
  <obsolete>
    Deprecated 02/2018, replaced by
    Net.KeepaliveStatisticsRecorder.PeakInflightRequests2
  </obsolete>
  <owner>yhirano@chromium.org</owner>
  <summary>
    The peak number of concurrent outstanding requests with keepalive specified.
  </summary>
</histogram>

<histogram name="Net.KeepaliveStatisticsRecorder.PeakInflightRequests2"
    units="requests">
  <owner>yhirano@chromium.org</owner>
  <summary>
    The peak number of concurrent outstanding requests with keepalive specified.
    This histogram is reported whenever the peak number is updated. For example,
    if the inflight number of requests were 0 =&gt; 1 =&gt; 2 =&gt; 1 =&gt; 2
    =&gt; 3 =&gt; 2, then 0, 1, 2, and 3 would be reported.
  </summary>
</histogram>

<histogram
    name="Net.KeepaliveStatisticsRecorder.PeakInflightRequestsPerProcess"
    units="requests">
  <owner>yhirano@chromium.org</owner>
  <summary>
    The peak number of concurrent outstanding requests with keepalive specified
    per render process.
  </summary>
</histogram>

<histogram
    name="Net.KeepaliveStatisticsRecorder.PeakInflightRequestsPerProcess2"
    units="requests">
  <owner>yhirano@chromium.org</owner>
  <summary>
    The peak number of concurrent outstanding requests with keepalive specified
    per render process. This histogram is reported whenever the peak number is
    updated. For example, if the inflight number of requests were 0 =&gt; 1
    =&gt; 2 =&gt; 1 =&gt; 2 =&gt; 3 =&gt; 2, then 0, 1, 2, and 3 would be
    reported.
  </summary>
</histogram>

<histogram name="Net.LoadPrefetch.Pattern" enum="PrefetchStatus">
  <obsolete>
    Deprecated July 2018
  </obsolete>
  <owner>droger@chromium.org</owner>
  <owner>mattcary@chromium.org</owner>
  <owner>pasko@chromium.org</owner>
  <summary>
    The completion status of prefetches that have finished loading.
  </summary>
  <details>
    Measurement occurs at ResourceLoader::ResponseCompleted so requests canceled
    before that point are not registered.

    This applies to requests with net::LOAD_PREFETCH, used by various
    prefetching features such as no-state prefetch and RESOURCE_TYPE_PREFETCH.

    Note that &quot;success from cache&quot; means that the
    UrlRequest::was_cached() was true and unused_since_prefetch was false.
    &quot;success from network&quot; means that was_cached() was false.
    &quot;success already prefetched&quot; means that both was_cached() and
    unused_since_prefetch were true. Validated results are considered cached,
    even though a conditional network request is made.
  </details>
</histogram>

<histogram name="Net.MainFrameNoStore" enum="MainFrameStorable">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The distribution of storable vs &quot;cache-control: no-store&quot;
    main-frame resources.

    Counted after response headers have completed and before the content has
    completed. Redirects are counted. All HTTP cache transactions are counted,
    not just those that require the network.
  </summary>
</histogram>

<histogram name="Net.MTPR_GetProxyForUrl_Thread_Wait_Time" units="ms">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time that a (non-cancelled) proxy resolution request was stalled waiting
    for an execution thread, for MultiThreadedProxyResolver.
  </summary>
</histogram>

<histogram name="Net.MTPR_GetProxyForUrl_Time" units="ms">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The total time that it took for a (non-cancelled) proxy resolution request
    to complete, for MultiThreadedProxyResolver.
  </summary>
</histogram>

<histogram name="Net.NeedsHWCAP2Workaround" enum="BooleanBroken">
  <owner>davidben@chromium.org</owner>
  <summary>
    Records, on startup, for ARM devices running Android, whether the kernel is
    missing AT_HWCAP2 from the ELF auxv and /proc/cpuinfo reports support for
    ARMv8 features. Those features should also be reported in AT_HWCAP2. This is
    to measure the workaround in https://crbug.com/boringssl/46.
  </summary>
</histogram>

<histogram name="Net.NetInternalsUi.Feature" enum="NetInternalsUiFeature">
  <obsolete>
    Removed in Chrome 44.
  </obsolete>
  <owner>eroman@chromium.org</owner>
  <summary>
    Counts the number of browser launches where chrome://net-internals and
    chrome://net-internals/#tests are used.
  </summary>
</histogram>

<histogram name="Net.NetworkConfigWatcherMac.SCDynamicStore.Create"
    enum="SCStatusCode">
  <owner>mef@chromium.org</owner>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    This is logged when SCDynamicStoreCreate fails in
    network_config_watcher_mac.cc.
  </summary>
</histogram>

<histogram
    name="Net.NetworkConfigWatcherMac.SCDynamicStore.Create.RunLoopSource"
    enum="SCStatusCode">
  <owner>mef@chromium.org</owner>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    This is logged when SCDynamicStoreCreateRunLoopSource fails in
    network_config_watcher_mac.cc.
  </summary>
</histogram>

<histogram name="Net.NetworkConfigWatcherMac.SCDynamicStore.NumRetry"
    units="retries">
  <owner>mef@chromium.org</owner>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    This is logged when retrying SCDynamicStore has stopped after either
    receiving a success or hitting the maximum number of retries in
    network_config_watcher_mac.cc. The 0 bucket is where no retry is performed,
    and the maximal bucket is where all retries have failed.
  </summary>
</histogram>

<histogram name="Net.NetworkErrorLogging.HeaderOutcome"
    enum="NetNetworkErrorLoggingHeaderOutcome">
  <owner>chlily@chromium.org</owner>
  <summary>
    When Network Error Logging receives a &quot;NEL:&quot; header, what happens
    to it.
  </summary>
</histogram>

<histogram name="Net.NetworkErrorLogging.RequestOutcome"
    enum="NetNetworkErrorLoggingRequestOutcome">
  <owner>chlily@chromium.org</owner>
  <summary>
    When Network Error Logging observes a completed request that might generate
    a report, what happens to it. NEL observes all requests, both successful and
    unsuccessful. It sends reports for successful and unsuccessful requests at
    specified sampling rates so that error rates can be calculated. Insecure
    requests are discarded for having an insecure origin regardless of existence
    of a policy for the origin.
  </summary>
</histogram>

<histogram name="Net.NetworkErrorLogging.SignedExchangeRequestOutcome"
    enum="NetNetworkErrorLoggingRequestOutcome" expires_after="2020-02-28">
  <owner>horo@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    When Network Error Logging observes a completed request of signed exchange
    that might generate a report, what happens to it. NEL observes all requests,
    both successful and unsuccessful. It sends reports for successful and
    unsuccessful requests at specified sampling rates so that error rates can be
    calculated. Insecure requests are discarded for having an insecure origin
    regardless of existence of a policy for the origin.
  </summary>
</histogram>

<histogram name="Net.NetworkErrorsRecovered.MainFrame" enum="NetErrorCodes">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    How often automatically retrying to download the main frame of a page in
    response to specific HTTP network errors succeeds.
  </summary>
</histogram>

<histogram name="Net.NetworkErrorsRecovered.Subresource" enum="NetErrorCodes">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    How often automatically retrying to download a subresource in response to
    specific HTTP network errors succeeds.
  </summary>
</histogram>

<histogram name="Net.NetworkErrorsUnrecovered.MainFrame" enum="NetErrorCodes">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    How often automatically retrying to download the main frame of a page in
    response to specific HTTP network errors returns another network error.
    Histogram includes only the error code that triggered the retry.
  </summary>
</histogram>

<histogram name="Net.NetworkErrorsUnrecovered.Subresource" enum="NetErrorCodes">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    How often automatically retrying to download a subresource in response to
    specific HTTP network errors returns another network error. Histogram
    includes only the error code that triggered the retry.
  </summary>
</histogram>

<histogram name="Net.NotifyAddrChangeFailures" expires_after="2018-08-30">
  <owner>pauljensen@chromium.org</owner>
  <summary>
    On Windows, NetworkChangeNotifierWin calls NotifyAddrChange, which can fail
    for unknown reasons. This records the number of times it fails in a row
    before a successful call. If it never succeeds, or takes over 100 tries, a
    value of 100 is recorded. See http://crbug.com/69198
  </summary>
</histogram>

<histogram name="Net.NumDuplicateCookiesInDb">
  <obsolete>
    Deprecated 2015-08-17 as part of cookie histogram cleanup
    (https://crbug.com/521135).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of duplicate cookies that were present in the cookie store during
    startup.
  </summary>
</histogram>

<histogram name="Net.NumQuicSessionsAtShutdown">
  <owner>rch@chromium.org</owner>
  <summary>
    The number of QUIC sessions when the QuicStreamFactory is destroyed.
  </summary>
</histogram>

<histogram name="Net.OCSPRequestFailedTimeMs" units="ms">
  <obsolete>
    Deprecated 2017-04-21 as it was Linux/CrOS only.
  </obsolete>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    When validating an HTTPS certificate we may have to make one or more HTTP
    fetches to OCSP responders in order to get revocation information. This
    measures the amount of time that failures to get OCSP information take.
  </summary>
</histogram>

<histogram name="Net.OCSPRequestSuccess" enum="BooleanSuccess">
  <obsolete>
    Deprecated 2017-04-21 as it was Linux/CrOS only.
  </obsolete>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    When validating an HTTPS certificate we may have to make one or more HTTP
    fetches to OCSP responders in order to get revocation information. This
    records the fraction of successful requests.
  </summary>
</histogram>

<histogram name="Net.OCSPRequestTimeMs" units="ms">
  <obsolete>
    Deprecated 2017-04-21 as it was Linux/CrOS only.
  </obsolete>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    When validating an HTTPS certificate we may have to make one or more HTTP
    fetches to OCSP responders in order to get revocation information. This
    measures the amount of time that each of those requests takes.
  </summary>
</histogram>

<histogram name="Net.OCSPResponseStapled" enum="BooleanSuccess">
  <obsolete>
    Deprecated 12/2018.
  </obsolete>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    When connecting over HTTPS, a server may include an OCSP response as part of
    the TLS handshake so that clients do not have to fetch it, provided the
    client requested the server do so. This measures whether or not a server
    included an OCSP response when it was requested.
  </summary>
</histogram>

<histogram name="Net.OSErrorsForGetAddrinfo" enum="ErrorCodesGetaddrinfo_All">
  <obsolete>
    Deprecated 11/2018.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Positive error code that was returned by the system library
    &quot;getaddrinfo()&quot;. This error code is platform specific, so when
    there is a Windows/Linux conflict, both decodings are shown.
  </summary>
</histogram>

<histogram name="Net.OSErrorsForGetAddrinfo_Linux"
    enum="ErrorCodesGetaddrinfo_Linux">
  <obsolete>
    Deprecated 11/2018.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Positive error code that was returned by the system library
    &quot;getaddrinfo()&quot;.
  </summary>
</histogram>

<histogram name="Net.OSErrorsForGetAddrinfo_Mac"
    enum="ErrorCodesGetaddrinfo_Mac">
  <obsolete>
    Deprecated 11/2018.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Positive error code that was returned by the system library
    &quot;getaddrinfo()&quot;.
  </summary>
</histogram>

<histogram name="Net.OSErrorsForGetAddrinfo_Win"
    enum="ErrorCodesGetaddrinfo_Win">
  <obsolete>
    Deprecated 11/2018.
  </obsolete>
  <owner>mgersh@chromium.org</owner>
  <summary>
    Positive error code that was returned by the system library
    &quot;getaddrinfo()&quot;.
  </summary>
</histogram>

<histogram name="Net.PacResultForStrippedUrl" enum="PacResultForStrippedUrl">
  <obsolete>
    Deprecated 4/27/2016. No longer tracked.
  </obsolete>
  <owner>eroman@chromium.org</owner>
  <summary>
    Proxy Auto Config (PAC) allows specifying an arbitrary javascript program to
    pick network proxies on a per-request basis (based on the URL). This works
    by calling the script's FindProxyForURL() function with the target URL as
    its first argument.

    Traditionally, the URL parameter passed into the script contains the exact
    URL being loaded, except maybe for having stripped the fragment and embedded
    identity portions of the URL.

    This histogram records what happens when the URL passed into
    FindProxyForURL() additionally has had its path component stripped. Does it
    return the same proxy list as when calling FindProxyForURL() with the
    original (unmodified) URL?

    This comparison is done only when the URL scheme implies a secure channel
    (i.e. https:// and wss://), in order to gather data for crbug.com/593759.
  </summary>
</histogram>

<histogram name="Net.Ping_ResponseStartedTime" units="ms">
  <obsolete>
    Deprecated 4/16/2014. No longer tracked.
  </obsolete>
  <owner>davidben@chromium.org</owner>
  <summary>
    How long it took for an &lt;a ping&gt; request to receive a response. Only
    recorded if a response was received.
  </summary>
</histogram>

<histogram name="Net.Ping_Result" enum="PingResult">
  <obsolete>
    Deprecated 4/16/2014. No longer tracked.
  </obsolete>
  <owner>davidben@chromium.org</owner>
  <summary>
    The result of an &lt;a ping&gt; request, whether it received a response or
    timed out or failed for some other reason.
  </summary>
</histogram>

<histogram name="Net.PreconnectedLinkNavigations" enum="PreconnectedNavigation">
  <obsolete>
    No longer tracked.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Indicate whether a link navigation was preceded by a recent pre-connect
    trigger (within 10 seconds). There is a high chance that loading the page
    used a preconnected TCP session.
  </summary>
</histogram>

<histogram name="Net.PreconnectedNavigation" enum="PreconnectedNavigation">
  <obsolete>
    No longer tracked.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Indicate whether a URLRequest was preceded by a recent pre-connect trigger
    (within 10 seconds). There is a high chance that loading the resource used a
    preconnected TCP session.
  </summary>
</histogram>

<histogram name="Net.PreconnectMotivation" enum="PreconnectMotivation">
  <obsolete>
    Deprecated May 2018
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    When a preconnection is made, indicate what the motivation was.
  </summary>
  <details>
    Currently, the most common (only?) motivations are SELF_REFERAL,
    LEARNED_REFERAL and OMNIBOX. The SELF_REFERAL indicates that we made sure a
    second connection was available for a resource that either was never before
    seen, or has historically had no subresources. The LEARNED_REFERAL indicates
    that we &quot;learned&quot; that a subresource was commonly needed, and that
    motivated the TCP/IP preconnect. The OMNIBOX motivation happens when a
    search is being suggested, and we preconnect to the search provider.
    (WARNING: Prior to version 7.517.*, enums 7, 8, and 9 may be confused, as
    EARLY_LOAD_MOTIVATED was inserted new 6 value.)
  </details>
</histogram>

<histogram name="Net.PreconnectProxyStatus" enum="ProxyStatus">
  <obsolete>
    No longer tracked.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Indicate whether there was a proxy to preclude preconnection.
  </summary>
</histogram>

<histogram name="Net.PreconnectSkippedToProxyServers" units="count">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Indicates number of times a preconnect to proxy server was skipped due to an
    existing pending preconnection request.
  </summary>
</histogram>

<histogram name="Net.PreconnectSubresourceEval"
    enum="PreconnectSubresourceEval">
  <obsolete>
    Deprecated May 2018
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    What did we decide to do about a predicted resource, based on the historical
    expected number of connection that this subresource will require.
  </summary>
  <details>
    This is basically the current thresholding of the SubresourceExpectation,
    relative to current static thresholds, and taking into account whether
    preconnection is enabled (i.e., if preconnection is disabled, we'll never
    decide to preconnect).
  </details>
</histogram>

<histogram name="Net.PreconnectSubresourceExpectation">
  <obsolete>
    Deprecated May 2018
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The expected number of connections, times 100, that we'll make to a given
    subresource, based on learned history.
  </summary>
  <details>
    By comparing this to thresholds, we decide if we will preconnect,
    preresolve, or do nothing. This histogram can be used to select those static
    thresholds.
  </details>
</histogram>

<histogram name="Net.PreconnectTriggerUsed" enum="PreconnectTriggerUsed">
  <obsolete>
    No longer tracked.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Indicate whether if a preconnect trigger is followed by a resource request
    (from link navigations) to the host or not. This is to measure precision of
    link-based preconnect triggers.
  </summary>
</histogram>

<histogram name="Net.PreconnectUtilization" enum="NetPreconnectUtilization">
  <obsolete>
    Sourced data corrected, and replaced by NetPreconnectUtilization2
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Indicate final utilization for each attempted socket connection.
  </summary>
  <details>
    We also include stats for non-speculative sockets. Some socket connections
    may never connect, and others may never be used (as the user may abort
    before then).
  </details>
</histogram>

<histogram name="Net.PreconnectUtilization2" enum="NetPreconnectUtilization">
  <obsolete>
    Deprecated in M68 (May 2018)
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Indicate final utilization for each attempted socket connection.
  </summary>
  <details>
    We also include stats for non-speculative sockets. Some socket connections
    may never connect, and others may never be used (as the user may abort
    before then).
  </details>
</histogram>

<histogram name="Net.Predictor.MRUIndex">
  <obsolete>
    Dev data was collected which was good enough to make a decision on the size
    of the predictor database.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The index into the predictor's MRU on navigation. This is the size the MRU
    had to be in order to effectively predict subresources for this navigation.
  </summary>
</histogram>

<histogram name="Net.Predictor.Startup.DBSize" units="bytes">
  <obsolete>
    Deprecated May 2018
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The approximate size in bytes of the predictor's database on startup.
  </summary>
</histogram>

<histogram name="Net.Prefetch.HitBytes" units="bytes">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Bytes read for requests that were served from a cache entry whose
    unused_since_prefetch bit is true.
  </summary>
</histogram>

<histogram name="Net.Prefetch.Pattern" enum="PrefetchStatus">
  <obsolete>
    Deprecated July 2018
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The completion status of prefetches that have finished loading.
  </summary>
  <details>
    Measurement occurs at ResourceLoader::ResponseCompleted so requests canceled
    before that point are not registered.

    This applies to requests with RESOURCE_TYPE_PREFETCH.

    Note that &quot;success from cache&quot; means that the
    UrlRequest::was_cached() was true and unused_since_prefetch was false.
    &quot;success from network&quot; means that was_cached() was false.
    &quot;success already prefetched&quot; means that both was_cached() and
    unused_since_prefetch were true. Validated results are considered cached,
    even though a conditional network request is made.
  </details>
</histogram>

<histogram name="Net.Prefetch.PrefilterBytesReadFromNetwork" units="bytes">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Number of bytes read from the network on behalf of prefetch requests. This
    is prefilter, so before any decompression.
  </summary>
  <details>
    This applies to requests with RESOURCE_TYPE_PREFETCH.
  </details>
</histogram>

<histogram name="Net.Prefetch.TimeBeforeCancel" units="ms">
  <obsolete>
    Deprecated July 2018
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Time spent on prefetch requests before the request was canceled.
  </summary>
  <details>
    This applies to requests with RESOURCE_TYPE_PREFETCH.
  </details>
</histogram>

<histogram name="Net.Prefetch.TimeSpentOnPrefetchHit" units="ms">
  <obsolete>
    Deprecated July 2018
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Time spent on requests that were served from a cache entry whose
    unused_since_prefetch bit is true.
  </summary>
</histogram>

<histogram name="Net.Prefetch.TimeSpentPrefetchingFromCache" units="ms">
  <obsolete>
    Deprecated July 2018
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>Time spent on prefetch requests when fetched from cache.</summary>
  <details>
    This applies to requests with RESOURCE_TYPE_PREFETCH.
  </details>
</histogram>

<histogram name="Net.Prefetch.TimeSpentPrefetchingFromNetwork" units="ms">
  <obsolete>
    Deprecated July 2018
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Time spent on prefetch requests when fetched from the network, including
    validation time.
  </summary>
</histogram>

<histogram name="Net.PrefProxyConfig.GooglezipProxyRemovalCount">
  <owner>sclittle@chromium.org</owner>
  <summary>
    Records how many *.googlezip.net Data Reduction Proxies were removed from
    the effective proxy configuration when a proxy reconfiguration occurs.
  </summary>
</histogram>

<histogram name="Net.Priority_High_Latency" units="ms">
  <obsolete>
    Replaced by Net.Priority_High_Latency_b.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from the start of the http transaction until the first byte of the
    response for high priority (currently frame and subframe) requests. Only
    times under 10 minutes are recorded.
  </summary>
</histogram>

<histogram name="Net.Priority_High_Latency_b" units="ms">
  <obsolete>
    Deprecated as of 11/2014.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from the start of the http transaction until the first byte of the
    response for high priority (currently frame and subframe) requests.
  </summary>
</histogram>

<histogram name="Net.Priority_Low_Latency" units="ms">
  <obsolete>
    Replaced by Net.Priority_Low_Latency_b.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from the start of the http transaction until the first byte of the
    response for low priority (non-frame/subframe) requests. Only times under 10
    minutes are recorded.
  </summary>
</histogram>

<histogram name="Net.Priority_Low_Latency_b" units="ms">
  <obsolete>
    Deprecated as of 11/2014.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from the start of the http transaction until the first byte of the
    response for low priority (non-frame/subframe) requests.
  </summary>
</histogram>

<histogram name="Net.Proxy.RedirectDuringConnect"
    enum="TunnelRedirectHistogramValue" expires_after="2019-05-19">
  <owner>eroman@chromium.org</owner>
  <owner>mmenke@chromium.org</owner>
  <summary>
    Counts how often a 302 (redirect) response is observed during CONNECT (proxy
    tunnel establishment). The counts are bucketed by proxy settings source
    (auto-detect vs explicit) and load type (subresource vs main frame).

    To interpret this histogram, the most interesting property will be the
    number of users in each of the buckets, which can be used to approximate
    what fraction of users would be affected by a policy change that blocked
    redirects on subresources/non-autodetected proxies.
  </summary>
</histogram>

<histogram name="Net.ProxyAuthRequested.HasConnection">
  <obsolete>
    Removed 2019/02/28, in a proxy auth refactor.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    When a PROXY_AUTH_REQUESTED error code is handled in
    net::HttpStreamFactoryImpl::Job::RunLoop, this is true if connection_ has an
    associated value.
  </summary>
</histogram>

<histogram name="Net.ProxyPollConfigurationTime">
  <obsolete>
    Removed at some time before 2014/09/15.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time in milliseconds spent fetch the system proxy configuration, when
    polling it for changes.
  </summary>
</histogram>

<histogram name="Net.ProxyResolutionService.PacUrlScheme" enum="PacUrlScheme">
  <owner>eroman@chromium.org</owner>
  <summary>
    The breakdown of URL schemes seen for explicitly configured ProxyAutoConfig
    (PAC). This metric is emitted once each time the proxy settings change
    (including initial value). Note that this does not count implicitly inferred
    PAC URLs (from WPAD).
  </summary>
</histogram>

<histogram name="Net.ProxyResolver.AbandonedExecutionTotalTime" units="ms">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The total amount of time that was spent executing the proxy script during
    &quot;tracing&quot; runs (executions of the script which discovered a new
    DNS dependency and were subsequently abandoned).
  </summary>
</histogram>

<histogram name="Net.ProxyResolver.BlockingDNSMode.AbandonedExecutionTotalTime"
    units="ms">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The total amount of time that was spent executing the proxy script during
    &quot;tracing&quot; runs (executions of the script which discovered a new
    DNS dependency and were subsequently abandoned).
  </summary>
</histogram>

<histogram name="Net.ProxyResolver.BlockingDNSMode.DnsWaitTotalTime" units="ms">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The total amount of time that was spent in the non-blocking DNS bindings
    while executing PAC scripts. This includes the times for abandoned
    executions.
  </summary>
</histogram>

<histogram name="Net.ProxyResolver.BlockingDNSMode.ExecutionTime" units="ms">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The amount of time inside of V8 that the proxy script spent executing for
    the final pass. This includes the time spent in the javascript bindings.
    This does not include the time spent in abandoned execution passes.
  </summary>
</histogram>

<histogram name="Net.ProxyResolver.BlockingDNSMode.NumAlerts">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of times that alert() was called in the final execution of the
    script.
  </summary>
</histogram>

<histogram name="Net.ProxyResolver.BlockingDNSMode.NumErrors">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of errors that were seen in the final execution of the script.
  </summary>
</histogram>

<histogram name="Net.ProxyResolver.BlockingDNSMode.NumRestarts">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of times that the PAC script execution was restarted.
  </summary>
</histogram>

<histogram name="Net.ProxyResolver.BlockingDNSMode.TotalTime" units="ms">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The total time that the proxy resolution took. This includes all the time
    spent waiting for DNS, PAC script execution, and restarts.
  </summary>
</histogram>

<histogram name="Net.ProxyResolver.BlockingDNSMode.TotalTimeDNS" units="ms">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The total time that proxy resolution spent waiting for DNS. This also
    includes any queuing delays on the origin thread waiting for the DNS result
    to be processed.
  </summary>
</histogram>

<histogram name="Net.ProxyResolver.BlockingDNSMode.UniqueDNS">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of unique DNS hostnames that the PAC script tried to resolve. The
    *Ex() versions of the bindings count separately.
  </summary>
</histogram>

<histogram name="Net.ProxyResolver.DnsWaitTotalTime" units="ms">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The total amount of time that was spent in the non-blocking DNS bindings
    while executing PAC scripts. This includes the times for abandoned
    executions.
  </summary>
</histogram>

<histogram name="Net.ProxyResolver.ExecutionTime" units="ms">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The amount of time inside of V8 that the proxy script spent executing for
    the final pass. This includes the time spent in the javascript bindings
    (which is probably dominated by Net.ProxyResolver.DnsWaitTotalTime). This
    does not include the time spent in abandoned execution passes.
  </summary>
</histogram>

<histogram name="Net.ProxyResolver.NumAlerts">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of times that alert() was called in the final execution of the
    script.
  </summary>
</histogram>

<histogram name="Net.ProxyResolver.NumErrors">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of errors that were seen in the final execution of the script.
  </summary>
</histogram>

<histogram name="Net.ProxyResolver.NumRestarts">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of times that the PAC script execution was restarted.
  </summary>
</histogram>

<histogram name="Net.ProxyResolver.OriginThreadLatency" units="ms">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The amount of time it took upon completion to run the final task posted back
    to the IO thread.
  </summary>
</histogram>

<histogram name="Net.ProxyResolver.TotalTime" units="ms">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The total time that the proxy resolution took. This includes all the time
    spent waiting for DNS, PAC script execution, and restarts.
  </summary>
</histogram>

<histogram name="Net.ProxyResolver.TotalTimeDNS" units="ms">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The total time that proxy resolution spent waiting for DNS. This also
    includes any queuing delays on the origin thread waiting for the DNS result
    to be processed.
  </summary>
</histogram>

<histogram name="Net.ProxyResolver.TotalTimeWorkerThread" units="ms">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The total time that the proxy resolution took, not including the post back
    to the origin thread. This includes all the time spent waiting for DNS, PAC
    script execution, and restarts.
  </summary>
</histogram>

<histogram name="Net.ProxyResolver.UniqueDNS">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of unique DNS hostnames that the PAC script tried to resolve. The
    *Ex() versions of the bindings count separately.
  </summary>
</histogram>

<histogram name="Net.ProxyResolver.URLSize">
  <obsolete>
    Removed in Chrome 39.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The length of the URL that was passed into the PAC script.</summary>
</histogram>

<histogram name="Net.ProxyScriptFetcher.FirstByteDuration" units="ms">
  <owner>eroman@chromium.org</owner>
  <summary>
    The time taken from requesting a PAC script to receiving the first byte of
    the response body on successful fetches. This does not include time spent
    doing proxy auto-discovery, or failed attempts at retrieving PAC scripts. If
    the response body was empty, this measures the total time to fetch the
    (empty) response body.
  </summary>
</histogram>

<histogram name="Net.ProxyScriptFetcher.SuccessDuration" units="ms">
  <owner>eroman@chromium.org</owner>
  <summary>
    The time taken to successfully fetch a PAC script. This does not include
    time spent doing proxy auto-discovery, or failed attempts at retrieving PAC
    scripts.
  </summary>
</histogram>

<histogram name="Net.ProxyService.GetProxyUsingScriptResult"
    enum="NetErrorCodes">
  <obsolete>
    Deprecated as of Chrome 61.
  </obsolete>
  <owner>eroman@chromium.org</owner>
  <summary>
    The network error code of resolving a URL by forwarding the request to the
    proxy resolver and executing the PAC script.
  </summary>
</histogram>

<histogram name="Net.ProxyService.GetProxyUsingScriptTime"
    units="100s of microseconds">
  <obsolete>
    Deprecated as of Chrome 61.
  </obsolete>
  <owner>eroman@chromium.org</owner>
  <summary>
    The time taken to resolve a URL by forwarding the request to the proxy
    resolver and executing the PAC script. This includes PAC script execution,
    DNS queries, and internal retries. This does not include retries initiated
    by the user, such as by calling ProxyService::ReconsiderProxyAfterError().
  </summary>
</histogram>

<histogram name="Net.ProxyService.ResolvedUsingScript" enum="Boolean">
  <obsolete>
    Deprecated as of Chrome 61.
  </obsolete>
  <owner>eroman@chromium.org</owner>
  <summary>
    Whether proxy resolution occured by forwarding the request to the proxy
    resolver and executing the PAC script. This histogram records all URLs,
    regardless of whether a proxy configuration is set. Note that in some cases,
    the system proxy resolver is used. If so, this histogram indicates whether
    the request was forwarded to the system resolver. However, on desktop
    platforms, the number of users using the system resolver should be small
    since the default is to use V8. Hence, the count of emissions to the 'True'
    bucket on desktop caused by users of the system resolver should be small.
  </summary>
</histogram>

<histogram name="Net.ProxyService.ResolveProxyTime"
    units="100s of microseconds">
  <obsolete>
    Deprecated as of Chrome 61.
  </obsolete>
  <owner>eroman@chromium.org</owner>
  <summary>
    The total time taken to resolve a URL. This includes PAC script execution,
    DNS queries, and internal retries. This does not include retries initiated
    by the user, such as by calling ProxyService::ReconsiderProxyAfterError().
  </summary>
</histogram>

<histogram name="Net.ProxyService.ScriptTerminated" enum="BooleanTerminated">
  <obsolete>
    Deprecated as of Chrome 61.
  </obsolete>
  <owner>eroman@chromium.org</owner>
  <summary>
    Whether a proxy resolution resulted in the PAC script terminating
    unexpectedly. This does not include terminations that occured during
    initialization of a new proxy resolver. This only happens when the resolver
    process crashes when using out-of-process PAC.
  </summary>
</histogram>

<histogram name="Net.ProxyService.ScriptTerminatedOnInit"
    enum="BooleanTerminated">
  <obsolete>
    Deprecated as of Chrome 61.
  </obsolete>
  <owner>eroman@chromium.org</owner>
  <summary>
    Whether the creation of a new proxy resolver resulted in the PAC script
    terminating unexpectedly. This only happens when the resolver process
    crashes when using out-of-process PAC.
  </summary>
</histogram>

<histogram name="Net.PublicKeyPinFailureDomain" enum="PublicKeyPinFailedDomain">
  <obsolete>
    Deprecated as of November 2016 because of disuse. Historical data is likely
    inaccurate due to changes in the data structure that calculated domain IDs
    for this histogram.
  </obsolete>
  <owner>agl@chromium.org</owner>
  <summary>
    Second-level domains for which we have observed public key pinning failures.
  </summary>
</histogram>

<histogram name="Net.PublicKeyPinReportSendingFailure" enum="NetErrorCodes">
  <obsolete>
    Deprecated as of 07/2016. Replaced with
    Net.PublicKeyPinReportSendingFailure2.
  </obsolete>
  <owner>estark@chromium.org</owner>
  <summary>
    A validated certificate chain may be subject to additional pinning
    requirements on a per-domain basis. When pinning requirements are violated,
    Chrome attempts to send a report about the incident. This records the net
    error code when sending a pinning violation report fails.
  </summary>
</histogram>

<histogram name="Net.PublicKeyPinReportSendingFailure2" enum="NetErrorCodes">
  <owner>estark@chromium.org</owner>
  <summary>
    A validated certificate chain may be subject to additional pinning
    requirements on a per-domain basis. When pinning requirements are violated,
    Chrome attempts to send a report about the incident. This records the net
    error code when sending a pinning violation report fails.
  </summary>
</histogram>

<histogram name="Net.PublicKeyPinSuccess" enum="BooleanSuccess">
  <owner>agl@chromium.org</owner>
  <summary>
    A validated certificate chain may be subject to additional
    &quot;pinning&quot; requirements on a per-domain basis. This records the
    fraction of successful matches between a certificate chain and a pin list.
  </summary>
</histogram>

<histogram name="Net.PushedStreamAlreadyHasResponseHeaders" enum="Boolean">
  <obsolete>
    Deprecated 11/2017.
  </obsolete>
  <owner>bnc@chromium.org</owner>
  <summary>
    Records whether HTTP/2 response headers have already arrived on a pushed
    stream at the time the stream is matched up with a request. See
    https://crbug.com/554220.
  </summary>
</histogram>

<histogram name="Net.PushedStreamVaryResponseHeader"
    enum="PushedStreamVaryResponseHeaderValues">
  <owner>bnc@chromium.org</owner>
  <summary>
    Information about the value of the Vary response header in HTTP/2 pushed
    streams.
  </summary>
</histogram>

<histogram name="Net.QuicActiveSessions">
  <owner>rch@chromium.org</owner>
  <summary>
    The number of active QUIC sessions before we activate a new QUIC session.
  </summary>
</histogram>

<histogram name="Net.QuicAlternativeProxy.Usage"
    enum="QuicAlternativeProxyUsage">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Breakdown of how requests which could potentially make use of an alternative
    QUIC proxy server use or don't use the QUIC server.
  </summary>
</histogram>

<histogram name="Net.QuicAltSvcFormat" enum="QuicAltSvcFormat">
  <owner>wangyix@chromium.org</owner>
  <summary>
    Tracks the number of QUIC alt-svc advertisements parsed by Chrome in Google
    format vs in IETF format.
  </summary>
</histogram>

<histogram name="Net.QuicClientHelloRejectReasons" enum="QuicRejectReasons">
  <owner>rch@chromium.org</owner>
  <summary>
    The reject reasons for QUIC's CHLO (client hello) message from server
  </summary>
</histogram>

<histogram name="Net.QuicClientHelloServerConfig.HowExpired" units="ms">
  <obsolete>
    Deprecated 08/2014, and replaced by
    Net.QuicClientHelloServerConfig.InvalidDuration.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    How expired server config is for sending inchoate ClientHello to the server.
  </summary>
</histogram>

<histogram name="Net.QuicClientHelloServerConfig.InvalidDuration" units="ms"
    expires_after="2018-08-30">
  <owner>rch@chromium.org</owner>
  <summary>
    The time since expiration of server config when we sent inchoate ClientHello
    to the server.
  </summary>
</histogram>

<histogram name="Net.QuicClientHelloServerConfigState"
    enum="QuicServerConfigState">
  <obsolete>
    Deprecated as of 11/2014. Replaced by Net.QuicInchoateClientHelloReason.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    The reason (the state of the server config) for sending inchoate ClientHello
    to the server.
  </summary>
</histogram>

<histogram name="Net.QuicCloseConnection.NullVisitor" enum="BooleanNullVisitor">
  <obsolete>
    Deprecated 02/2018. No data for this histogram for more than 30 days.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    The number of times Connection's visitor is a nullptr when CloseConnection
    is called.
  </summary>
</histogram>

<histogram name="Net.QuicConnection.WritePacketStatus" enum="QuicWriteStatus">
  <owner>wub@chromium.org</owner>
  <summary>
    The write result returned by the packet writer when the connection attempts
    to write a packet.
  </summary>
</histogram>

<histogram name="Net.QuicCryptoClientConfig.PopulatedFromCanonicalConfig"
    enum="BooleanPopulated" expires_after="2018-08-30">
  <owner>rch@chromium.org</owner>
  <summary>
    The number of times CryptoClientConfig's CachedState is populated from
    canonical config whenever we create a new CryptoClientConfig::CachedState.
  </summary>
</histogram>

<histogram name="Net.QuicDiskCache.APICall" enum="QuicDiskCacheAPICall">
  <obsolete>
    Deprecated as of 4/15/2017.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    Tracks number of times data read/parse/write API calls of QuicServerInfo to
    and from disk cache is called.
  </summary>
</histogram>

<histogram name="Net.QuicDiskCache.EntryState" enum="QuicDiskCacheEntryState">
  <obsolete>
    Deprecated as of 10/2014.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    Tracks the opening and closing of disk cache entries. Recorded each time a
    disk cache entry is either opened or closed.
  </summary>
</histogram>

<histogram name="Net.QuicDiskCache.FailureReason"
    enum="QuicDiskCacheFailureReason">
  <owner>rch@chromium.org</owner>
  <summary>
    Tracks failure reasons to read/load/write of QuicServerInfo to and from disk
    cache.
  </summary>
</histogram>

<histogram name="Net.QuicDroppedPacketReason" enum="QuicDroppedPacketReason">
  <owner>rch@chromium.org</owner>
  <summary>
    The reason a QUIC packet could not be processed, logged for each dropped
    packet.
  </summary>
</histogram>

<histogram name="Net.QuicEphemeralPortsSuggested">
  <obsolete>
    Deprecated as of 04/2016.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>The number of ports suggested per server.</summary>
</histogram>

<histogram name="Net.QuicHandshakeNotConfirmedNumPacketsReceived">
  <owner>rch@chromium.org</owner>
  <summary>
    The number of QUIC packets received by a QUIC connection whose handshake was
    not confirmed when that connection is closed.
  </summary>
</histogram>

<histogram name="Net.QuicHandshakeState" enum="QuicHandshakeState">
  <owner>rch@chromium.org</owner>
  <summary>
    The state of a QUIC connection's crypto hanshake as it progresses from
    starting to confirmation or failure.
  </summary>
</histogram>

<histogram name="Net.QuicHpackCompressionPercentage" units="%">
  <owner>ckrasic@chromium.org</owner>
  <summary>
    The compression percentage, logged for each sent HPACK compressed header
    frame.
  </summary>
</histogram>

<histogram name="Net.QuicHpackDecoder.IndexedEntryAge" units="ms">
  <owner>ckrasic@chromium.org</owner>
  <summary>
    For each indexed representation decoded, records the time since the
    corresponding entry was added to the dynamic table. This data is being
    collected to help analyze a proposed solution to HPACK induced head of line
    blocking.
  </summary>
</histogram>

<histogram name="Net.QuicHpackDecompressionPercentage" units="%">
  <owner>ckrasic@chromium.org</owner>
  <summary>
    The decompression percentage, logged for each received HPACK compressed
    header frame.
  </summary>
</histogram>

<histogram name="Net.QuicHpackEncoder.IndexedEntryAge" units="ms">
  <owner>ckrasic@chromium.org</owner>
  <summary>
    For each indexed representation encoded, records the time since the
    corresponding entry was added to the dynamic table. This data is being
    collected to help analyze a proposed solution to HPACK induced head of line
    blocking.
  </summary>
</histogram>

<histogram name="Net.QuicHttpStream::DoStreamRequest.IsNullSession"
    enum="Boolean">
  <obsolete>
    Deprecated 2016. No longer tracked.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    The number of times QuicHttpStream's session_ is a nullptr before
    StartRequest() is called.
  </summary>
</histogram>

<histogram name="Net.QuicInchoateClientHelloReason"
    enum="QuicServerConfigState" expires_after="2018-08-30">
  <owner>rch@chromium.org</owner>
  <summary>
    The reason (the state of the server config) for sending inchoate ClientHello
    to the server.
  </summary>
</histogram>

<histogram name="Net.QuicNetworkDegradingDurationTillDisconnected" units="ms">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    The time from QUIC detecting network performance degradation to network
    disconnection.
  </summary>
</histogram>

<histogram name="Net.QuicNetworkDegradingDurationTillNewNetworkMadeDefault"
    units="ms">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    The time from QUIC detecting network performance degradation to an
    alternative network becoming default.
  </summary>
</histogram>

<histogram name="Net.QuicNetworkDisconnectionDuration" units="ms">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    The time from network disconnection to an alternative network becoming
    default.
  </summary>
</histogram>

<histogram name="Net.QuicNumSentClientHellos">
  <owner>rch@chromium.org</owner>
  <summary>The number of client hello messages sent.</summary>
</histogram>

<histogram name="Net.QuicNumSentClientHellosCryptoHandshakeConfirmed">
  <obsolete>
    see Net.QuicSession.Connect*PortForHTTP*
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    The number of client hello messages sent when the crypto handshake was
    confirmed.
  </summary>
</histogram>

<histogram name="Net.QuicNumServerConfig.UpdateMessagesIgnored"
    enum="BooleanIgnored">
  <owner>rch@chromium.org</owner>
  <summary>The number of times ServerConfigUpdateMessages ignored.</summary>
</histogram>

<histogram name="Net.QuicNumStreamFramesInPacket" expires_after="2018-08-30">
  <owner>rch@chromium.org</owner>
  <summary>
    The number of stream frames bundled within a received packet.
  </summary>
</histogram>

<histogram name="Net.QuicNumStreamFramesPerStreamInPacket"
    expires_after="2018-08-30">
  <owner>rch@chromium.org</owner>
  <summary>
    The number of stream frames per stream ID within a received packet.
  </summary>
</histogram>

<histogram name="Net.QuicReadAvailableData.NullStream" enum="BooleanNullStream">
  <obsolete>
    Removed as of 05/2017.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    The number of times QuicHttpStream's stream_ is a nullptr before
    IsDoneReading() is called.
  </summary>
</histogram>

<histogram name="Net.QuicServerInfo.DiskCacheLoadTime" units="ms">
  <obsolete>
    Deprecated as of 4/15/2017.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>Time spent to load QUIC server information from disk cache.</summary>
</histogram>

<histogram name="Net.QuicServerInfo.DiskCacheReadTime" units="ms">
  <obsolete>
    Deprecated as of 10/2014. Replaced by DiskCacheWaitForDataReadyTime.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>Time spent to load QUIC server information from disk cache.</summary>
</histogram>

<histogram name="Net.QuicServerInfo.DiskCacheState"
    enum="QuicServerConfigState">
  <owner>rch@chromium.org</owner>
  <summary>
    The state of the QUIC server information when it's loaded from the disk
    cache.
  </summary>
</histogram>

<histogram name="Net.QuicServerInfo.DiskCacheWaitForDataReadyTime" units="ms">
  <obsolete>
    Deprecated as of 4/19/2017.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    Time spent waiting to load QUIC server information from disk cache.
  </summary>
</histogram>

<histogram name="Net.QuicServerInfo.ExpectConfigMissingFromDiskCache"
    enum="BooleanMissingFromDiskCache">
  <obsolete>
    Deprecated as of 4/15/2017.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    The number of times AlternateProtocolMap supports QUIC, but there is no QUIC
    server information in the disk cache. This is recorded whenever QUIC server
    information is loaded from the disk cache.
  </summary>
</histogram>

<histogram name="Net.QuicServerInfo.WaitForDataReady.HandshakeConfirmedTime"
    units="Milliseconds">
  <obsolete>
    Deprecated as of 8/3/2017.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    The elapsed time between waiting for reading of QUIC server information from
    disk cache, and receiving crypto handshake confirmation from the server.
    Will measure the impact of cancelling the WaitForDataReady callback. Logged
    after crypto handshake is confirmed.
  </summary>
</histogram>

<histogram name="Net.QuicServerInfo.WaitForDataReadyToRtt" units="%">
  <obsolete>
    Deprecated as of 4/15/2017.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    The ratio of the time spent waiting to load QUIC server information from
    disk cache to the min rtt. Logged when session is closed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.21CumulativePacketsReceived"
    units="Received in Ranges">
  <obsolete>
    Deprecated 08/2016.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    This histogram summarizes information about a 21 packet sequence, indicating
    for each of the 21 possible prefixes of this pattern, how many packets were
    received in that prefix. The first range uses buckets 0 and 1, and it
    describes the 1st packet in the sequence. It indicates if the first packet
    was missing (bucket 0), or the first packet was present (bucket 1). The
    second range uses buckets 2 through 4, and describes the first 2 packets in
    the prefix of this sequence. It indicates if there were no packets received
    in the first two packets (bucket 2), or there was one out of two packets
    received (bucket 3), or if there was two out of tow received (bucket 4).
    etc. etc. Reading this histogram may require post-processing in a spread
    sheet, but can indicate the potential value of using FEC packets to convey
    data.
  </summary>
</histogram>

<histogram name="Net.QuicSession.6PacketsPatternsReceived"
    units="Binay of Packets ACKed">
  <obsolete>
    Deprecated 08/2016.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    Each of the 64 buckets represents a different binary pattern of 6
    consecutive packets that were received by the client. The LSB of the bucket
    number corresponds to the reception of the oldest packet. A bit in the
    bucket-number being 1 indicates the packet was received, and a 0 means the
    packet was never received (by the client).
  </summary>
</histogram>

<histogram name="Net.QuicSession.AbortedPendingStreamRequests"
    units="stream requests">
  <owner>ckrasic@chromium.org</owner>
  <summary>
    The number of pending stream requests aborted when the session is closed.
    Pending streams are those which could not be created immediately because
    there were too many active streams.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ActiveStreamsOnGoAwayAfterPathDegrading"
    units="Streams">
  <owner>renjietang@chromium.org</owner>
  <summary>
    The number of active streams when the quic session decides to go away on
    path degrading.
  </summary>
</histogram>

<histogram name="Net.QuicSession.AsyncRead" enum="Boolean">
  <owner>rch@chromium.org</owner>
  <summary>
    True if the result of reading a packet from the network was ERR_IO_PENDING.
    Recorded for each packet when Read() returns.
  </summary>
</histogram>

<histogram name="Net.QuicSession.BlockedFrames.Received">
  <owner>rch@chromium.org</owner>
  <summary>
    The number of BLOCKED frames recevied by a QuicSession when the session is
    closed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.BlockedFrames.Sent">
  <owner>rch@chromium.org</owner>
  <summary>
    The number of BLOCKED frames sent by a QuicSession when the session is
    closed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.CertVerificationResult" enum="NetErrorCodes">
  <owner>rch@chromium.org</owner>
  <summary>
    The network error code returned to a QUIC session from the CertVerifier when
    a certification verification is attempted.
  </summary>
</histogram>

<histogram name="Net.QuicSession.CertVerifierJob.CompleteTime"
    units="Milliseconds">
  <owner>rch@chromium.org</owner>
  <summary>
    Time spent verifying a certificate when racing cert veriifcation with host
    resolution.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ClientSideMtu" units="bytes"
    expires_after="2018-08-30">
  <owner>rch@chromium.org</owner>
  <summary>
    The final maximum packet size of the connection used by the client before
    the session is closed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.CloseAllSessionsError" enum="NetErrorCodes">
  <owner>rch@chromium.org</owner>
  <summary>
    The network error code which resulted in all sessions being closed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ClosedByPublicReset" enum="Boolean">
  <owner>wub@chromium.org</owner>
  <summary>
    For a QUIC session that is closed by a public reset, this boolean shows
    whether it is a public reset sent from a Google server or not.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ClosedByRtoAtClient.ReceivedPacketCount"
    units="packets" expires_after="2019-07-01">
  <owner>wub@chromium.org</owner>
  <owner>fayang@chromium.org</owner>
  <summary>
    For a QUIC session that is closed by QUIC_TOO_MANY_RTOS at client, this is
    the number of packets it received before it is closed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ClosedByRtoAtClient.SentPacketCount"
    units="packets" expires_after="2019-07-01">
  <owner>wub@chromium.org</owner>
  <owner>fayang@chromium.org</owner>
  <summary>
    For a QUIC session that is closed by QUIC_TOO_MANY_RTOS at client, this is
    the number of packets it sent before it is closed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ClosedDuringInitializeSession" enum="Boolean"
    expires_after="2018-08-30">
  <owner>rch@chromium.org</owner>
  <summary>
    True if the QUIC session is closed during the call to InitializeSession,
    logged for each session just after InitializeSession is called.
  </summary>
</histogram>

<histogram name="Net.QuicSession.CloseSessionOnError" enum="NetErrorCodes">
  <owner>rch@chromium.org</owner>
  <summary>
    The network error code which resulted in the session being closed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.Connect" units="RTTs">
  <owner>rch@chromium.org</owner>
  <summary>
    Samples of the number of round-trips needed by a QUIC connection before a
    request could be sent by the client.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ConnectAfterBroken" enum="BooleanSuccess">
  <owner>rch@chromium.org</owner>
  <summary>
    True if a QUIC connection connected successfully after having been broken.
    Only emitted after a QUIC connection attempt to a server that was previous
    marked as broken.
  </summary>
</histogram>

<histogram
    name="Net.QuicSession.ConnectionClose.HandshakeFailureBlackHole.QuicError"
    enum="QuicErrorCodes" expires_after="2018-08-30">
  <owner>rch@chromium.org</owner>
  <summary>
    The QUIC error which caused a QUIC connection to be closed before the
    hanshake was confirmed, in the case where no packets were received. This
    provides a breakdown of the entires in
    Net.QuicSession.ConnectionClose.HandshakeNotConfirmed.Reason where the value
    is BLACK_HOLE.
  </summary>
</histogram>

<histogram
    name="Net.QuicSession.ConnectionClose.HandshakeFailureUnknown.QuicError"
    enum="QuicErrorCodes">
  <owner>rch@chromium.org</owner>
  <summary>
    The QUIC error which caused a QUIC connection to be closed before the
    hanshake was confirmed, in the case where at least 1 packet was received.
    This provides a breakdown of the entires in
    Net.QuicSession.ConnectionClose.HandshakeNotConfirmed.Reason where the value
    is UNKNOWN.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ConnectionClose.HandshakeNotConfirmed.Reason"
    enum="QuicHandshakeFailureReason">
  <owner>rch@chromium.org</owner>
  <summary>The reason a QUIC handshake failed.</summary>
</histogram>

<histogram
    name="Net.QuicSession.ConnectionClose.NumOpenStreams.HandshakeTimedOut">
  <owner>rch@chromium.org</owner>
  <summary>
    The number of streams open when a QUIC session crypto handshake timed out.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ConnectionClose.NumOpenStreams.TimedOut">
  <owner>rch@chromium.org</owner>
  <summary>The number of streams open when a QUIC session timed out.</summary>
</histogram>

<histogram
    name="Net.QuicSession.ConnectionClose.NumTotalStreams.HandshakeTimedOut">
  <owner>rch@chromium.org</owner>
  <summary>
    The number of total streams created when a QUIC session crypto handshake
    timed out.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ConnectionCloseErrorCode"
    enum="QuicErrorCodes">
  <owner>rch@chromium.org</owner>
  <summary>
    The QUIC error code which resulted in the connection being closed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ConnectionCloseErrorCodeClient"
    enum="QuicErrorCodes">
  <owner>rch@chromium.org</owner>
  <summary>
    The QUIC error code which resulted in the connection being closed by the
    client.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ConnectionCloseErrorCodeClientGoogle"
    enum="QuicErrorCodes">
  <owner>rch@chromium.org</owner>
  <summary>
    The QUIC error code which resulted in the connection being closed by the
    client to a server ending in .google.com.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ConnectionCloseErrorCodeServer"
    enum="QuicErrorCodes">
  <owner>rch@chromium.org</owner>
  <summary>
    The QUIC error code which resulted in the connection being closed by the
    server.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ConnectionCloseErrorCodeServerGoogle"
    enum="QuicErrorCodes">
  <owner>rch@chromium.org</owner>
  <summary>
    The QUIC error code which resulted in the connection being closed by the
    server with a name ending in .google.com.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ConnectionFlowControlBlocked"
    enum="BooleanBlocked">
  <owner>rch@chromium.org</owner>
  <summary>
    Whether QUIC session's connection is flow control blocked when a PING
    message is sent to server.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ConnectionIpPooled" enum="Boolean"
    expires_after="2019-06-30">
  <owner>renjietang@chromium.org</owner>
  <owner>rch@chromium.org</owner>
  <summary>
    True if an active session already exists for a given Ip during connection.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ConnectionMigration"
    enum="QuicConnectionMigrationStatus">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    The result of a QUIC connection migration attempt. The suffix specifies the
    cause of connection migration.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ConnectionMigrationProbeSuccess"
    enum="BooleanSuccess">
  <owner>fayang@chromium.org</owner>
  <summary>
    The result of connectivity probing according to different migration causes.
    Recorded for every connectivity probing when attempting connection
    migrations.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ConnectionTypeFromPeer" enum="AddressFamily">
  <owner>rch@chromium.org</owner>
  <summary>
    The IP Address family of this connection, as reported by the server.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ConnectionTypeFromSelf" enum="AddressFamily">
  <owner>rch@chromium.org</owner>
  <summary>The IP Address family of this connection, as seen locally.</summary>
</histogram>

<histogram name="Net.QuicSession.ConnectRandomPortRequiringConfirmation"
    units="RTTs">
  <owner>jri@chromium.org</owner>
  <summary>
    Samples of the number of round-trips needed by a QUIC connection before a
    request could be sent by the client, when handshake confirmation was
    required. (The operating system randomly selected a source port for the
    connection.)
  </summary>
</histogram>

<histogram name="Net.QuicSession.CookieSentToAccountsOverChannelId"
    enum="BooleanUsage" expires_after="2018-08-30">
  <owner>rch@chromium.org</owner>
  <summary>
    Logs whether channel ID was used when a cookie is sent over QUIC to
    https://accounts.google.com.
  </summary>
</histogram>

<histogram name="Net.QuicSession.CreationError" enum="QuicSessionErrorCodes">
  <owner>rch@chromium.org</owner>
  <summary>
    Count of errors during attempts to create a QUIC session (before even using
    the session).
  </summary>
</histogram>

<histogram name="Net.QuicSession.DrainingStreamsOnGoAwayAfterPathDegrading"
    units="Streams">
  <owner>renjietang@chromium.org</owner>
  <summary>
    The number of draining streams when the quic session decides to go away on
    path degrading.
  </summary>
</histogram>

<histogram name="Net.QuicSession.DuplicatePacketsReceived">
  <owner>rch@chromium.org</owner>
  <summary>
    The number of duplicate packets recevied by a QuicSession when the session
    is closed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.FinalTcpCwnd">
  <owner>rch@chromium.org</owner>
  <summary>
    The value of the TCP cubic sender's CWND when the session is closed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.GapBetweenWriteErrorAndNetworkDisconnection"
    units="ms">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    This measures the time gap between the most recent write error and the
    network disconnection.
  </summary>
</histogram>

<histogram name="Net.QuicSession.GoAwayReceivedForConnectionMigration"
    enum="BooleanReceived">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    Whether QuicGoAwayFrame is received from server for connection migration due
    to client's port change. Logged when a QuicGoAwayFrame with error code
    QUIC_ERROR_MIGRATING_PORT is received.
  </summary>
</histogram>

<histogram name="Net.QuicSession.HandshakeConfirmedTime" units="Milliseconds">
  <owner>rch@chromium.org</owner>
  <summary>
    The elapsed time between starting the crypto handshake, and receiving
    confirmation from the server.
  </summary>
</histogram>

<histogram name="Net.QuicSession.HandshakeRoundTrips" units="RTTs">
  <obsolete>
    see Net.QuicSession.Connect*PortForHTTP*
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    Samples of the number of round-trips needed by a QUIC connection before a
    request could be sent by the client.
  </summary>
</histogram>

<histogram name="Net.QuicSession.HandshakeStatusOnConnectionMigration"
    enum="BooleanConfirmed">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    The handshake status when when the session attempts to migrate the
    connection according to different migration causes.
  </summary>
</histogram>

<histogram name="Net.QuicSession.HandshakeTimeout.PathDegradingDetected"
    enum="BooleanDetected">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    Whether path degrading has been detected by the time a QUIC connection is
    closed due to handshake timeout.
  </summary>
</histogram>

<histogram name="Net.QuicSession.HeadersHOLBlockedTime" units="Milliseconds">
  <obsolete>
    The experiments with head of line blocking have been completed, and the code
    tracking head of line blocking was removed.
  </obsolete>
  <owner>ckrasic@chromium.org</owner>
  <summary>
    The elapsed time that headers are head of line blocked on others, presumably
    due to lost headers stream packets.
  </summary>
</histogram>

<histogram name="Net.QuicSession.HeadersStream.EarlyFramesReceived">
  <obsolete>
    Deprecated 08/2016.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    The frames received on the headers stream which arrived early.
  </summary>
</histogram>

<histogram name="Net.QuicSession.HostResolution.HandshakeConfirmedTime"
    units="Milliseconds">
  <owner>rch@chromium.org</owner>
  <summary>
    The elapsed time between the end of resolving the DNS name of the server for
    a QUIC connection, and receiving crypto handshake confirmation from the
    server. Logged after crypto handshake is confirmed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.HostResolutionTime" units="ms">
  <obsolete>
    Deprecated 08/2016. No longer tracked.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    Time spent resolving the DNS name of the server for a QUIC connection.
  </summary>
</histogram>

<histogram name="Net.QuicSession.IncorrectConnectionIDsReceived"
    expires_after="2018-08-30">
  <owner>rch@chromium.org</owner>
  <summary>
    The number packets recevied by a QuicSession with an incorrect connection id
    when the sesesion is closed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.InitialRttEsitmateSource"
    enum="InitialRttEstimateSource">
  <owner>rch@chromium.org</owner>
  <summary>
    The source for the initial RTT estimate recorded when a QUIC session is
    created.
  </summary>
</histogram>

<histogram name="Net.QuicSession.InternalErrorLocation"
    enum="QuicInternalErrorLocation">
  <owner>rch@chromium.org</owner>
  <summary>
    The location where a QUIC internal error was generated, recorded any time an
    internal error is generated, which should be once per connection.
  </summary>
</histogram>

<histogram
    name="Net.QuicSession.LocallyTimedOutWithOpenStreams.TimeSinceLastReceived">
  <owner>rch@chromium.org</owner>
  <summary>
    If a QUIC connection timed out locally with open streams, this contains the
    time since any data was read from the network until the connection was
    closed. The suffix specifies whether there were any unacked packets pending
    when the connection timed out.
  </summary>
</histogram>

<histogram name="Net.QuicSession.MaxReordering">
  <owner>rch@chromium.org</owner>
  <summary>
    The maximum packet sequence number reordering observed by a QUIC connection.
  </summary>
</histogram>

<histogram name="Net.QuicSession.MaxReorderingTime" units="%">
  <owner>rch@chromium.org</owner>
  <summary>
    The ratio of the maximum reordering time of a QUIC packet to the min rtt.
  </summary>
</histogram>

<histogram name="Net.QuicSession.MaxReorderingTimeLongRtt" units="%">
  <owner>rch@chromium.org</owner>
  <summary>
    The ratio of the maximum reordering time of a QUIC packet to the min rtt,
    only for those sessions with a min rtt larger than 100 ms.
  </summary>
</histogram>

<histogram name="Net.QuicSession.MinRTT" units="ms">
  <owner>rch@chromium.org</owner>
  <summary>
    The minimum RTT observed during the life of a QUIC connection.
  </summary>
</histogram>

<histogram name="Net.QuicSession.MtuProbesSent" expires_after="2018-08-30">
  <owner>rch@chromium.org</owner>
  <summary>
    The number of MTU probes sent by the client during the session. Logged when
    the connection is destroyed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.NumMigrationsExercisedBeforePublicReset"
    units="migrations" expires_after="2020-02-13">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    Number of connection migrations exercised before the connection receives a
    public reset.
  </summary>
</histogram>

<histogram name="Net.QuicSession.NumOpenStreams">
  <owner>rch@chromium.org</owner>
  <summary>
    The number of QUIC streams opened when a new QUIC stream is created.
  </summary>
</histogram>

<histogram name="Net.QuicSession.NumPendingStreamRequests"
    units="stream requests">
  <owner>ckrasic@chromium.org</owner>
  <summary>
    The number of pending stream requests when a new stream request is added to
    the pending list. Pending streams are those which could not be created
    immediately because there were too many active streams.
  </summary>
</histogram>

<histogram name="Net.QuicSession.NumQueuedPacketsAtOutOfOrder" units="packets">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    The number of queued packets when a connection is closed due to writing an
    out of order packet.
  </summary>
</histogram>

<histogram name="Net.QuicSession.NumQueuedPacketsBeforeWrite" units="packets">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    The number of queued packets when a connection starts to write queued
    packets.
  </summary>
</histogram>

<histogram name="Net.QuicSession.NumTotalStreams">
  <owner>rch@chromium.org</owner>
  <summary>
    The total number of streams created by the client when the session is
    closed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.OutOfOrderGapReceived">
  <owner>rch@chromium.org</owner>
  <summary>
    The number of missing packets between the current received packet and the
    previously largest received packet sequence number, when the current
    received packet had a lower sequence number than the previously received
    packet sequence number.
  </summary>
</histogram>

<histogram name="Net.QuicSession.OutOfOrderLargePacketsReceived"
    expires_after="2018-08-30">
  <owner>rch@chromium.org</owner>
  <summary>
    The number of times the current received packet had a lower sequence number
    than the previously received packet sequence number, and the size of the
    current packet is larger than the size of the previous packet.
  </summary>
</histogram>

<histogram name="Net.QuicSession.OutOfOrderPacketsReceived">
  <owner>rch@chromium.org</owner>
  <summary>
    The number of times the current received packet had a lower sequence number
    than the previously received packet sequence number.
  </summary>
</histogram>

<histogram name="Net.QuicSession.PacketGapReceived">
  <owner>rch@chromium.org</owner>
  <summary>
    The number of missing packets between the current received packet and the
    previously largest received packet sequence number.
  </summary>
</histogram>

<histogram name="Net.QuicSession.PacketGapReceivedNearPing" units="count">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    The number of missing packets between the last received packet before a PING
    frame sent and the first packet received after PING sent.
  </summary>
</histogram>

<histogram name="Net.QuicSession.PacketGapSent">
  <owner>rch@chromium.org</owner>
  <summary>
    The number of missing packets between the current received packet and the
    previously largest received packet sequence number, as reported by the
    remote end of the connection.
  </summary>
</histogram>

<histogram name="Net.QuicSession.PacketLossRate" units="1/10th Percent">
  <owner>rch@chromium.org</owner>
  <summary>
    The ratio of the number of missing packets, to the maximum packet sequence
    number received, for QUIC connections longer than 21 packets received via
  </summary>
</histogram>

<histogram name="Net.QuicSession.PacketReceived" units="SequenceNumber">
  <obsolete>
    Deprecated 08/2016.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    Each bucket corresponds to a specific packet sequence number that was sent
    by a server to Chrome at the start of a QUIC connection. This histogram is
    compared, bucket by bucket, with a second histogram to compute the ratio for
    each bucket (each packet sequence number).
  </summary>
</histogram>

<histogram name="Net.QuicSession.PacketRetransmitsPerMille" units="permille">
  <owner>ckrasic@chromium.org</owner>
  <summary>
    The number of packets retransmitted per 1000. Only sessions with
    packets_sent &gt;= 100 are included. Recorded in session destructor.
  </summary>
</histogram>

<histogram name="Net.QuicSession.PacketWriteTime">
  <owner>rch@chromium.org</owner>
  <summary>
    The time taken to Write() a QUIC packet to the socket. Recorded for each
    packet when it is sent. The suffix specifies if the write completed
    synchonously or asynchronously.
  </summary>
</histogram>

<histogram name="Net.QuicSession.PendingStreamsWaitTime" units="ms">
  <owner>ckrasic@chromium.org</owner>
  <summary>
    The wait time of the pending stream when it is finally serviced. Pending
    streams are those which could not be created immediately because there were
    too many active streams.
  </summary>
</histogram>

<histogram name="Net.QuicSession.PlatformNotification"
    enum="QuicPlatformNotification">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    The platform notification received by QUIC when network change happens.
  </summary>
</histogram>

<histogram name="Net.QuicSession.PreferAesGcm" enum="BooleanPreferred">
  <owner>rch@chromium.org</owner>
  <summary>
    True if the QUIC session prefers to use AES GCM because of hardware support.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ProbingRetryCountUntilSuccess" units="retries">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    Number of retries to send connectivity probing packet on new path until
    success.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ProbingTimeInMillisecondsUntilSuccess"
    units="ms">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    The wait time to receive a matched probing response to mark connectivity
    probing as successful.
  </summary>
</histogram>

<histogram name="Net.QuicSession.PublicResetAddressMismatch"
    enum="QuicAddressMismatch">
  <obsolete>
    Deprecated 02/2018. Use Net.QuicSession.PublicResetAddressMismatch2.
  </obsolete>
  <owner>wtc@google.com</owner>
  <summary>
    When a public reset packet is received, whether the client IP address and
    port number in it differ from the client IP address and port number in the
    ServerHello handshake message. In the comparison, the first address is the
    one in ServerHello and the second address is the one in public reset. Note:
    this histogram is obsolete because it failed to treat IPv4-mapped IPv6
    addresses as IPv4 addresses.
  </summary>
</histogram>

<histogram name="Net.QuicSession.PublicResetAddressMismatch2"
    enum="QuicAddressMismatch">
  <owner>wtc@google.com</owner>
  <summary>
    When a public reset packet is received, whether the client IP address and
    port number in it differ from the client IP address and port number in the
    ServerHello handshake message. In the comparison, the first address is the
    one in ServerHello and the second address is the one in public reset.
  </summary>
</histogram>

<histogram name="Net.QuicSession.Pushed" units="count">
  <owner>ckrasic@chromium.org</owner>
  <summary>
    The number of push streams received when the session is closed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.PushedAndClaimed" units="count">
  <owner>ckrasic@chromium.org</owner>
  <summary>
    The number of pushed and used streams when the session is closed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.PushedAndUnclaimedBytes" units="count">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    The number of bytes that is pushed but not used when the session is closed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.PushedBytes" units="count">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    The number of bytes that is pushed when the session is closed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.QuicVersion">
  <owner>rch@chromium.org</owner>
  <summary>Version of the QUIC protocol used for this connection.</summary>
</histogram>

<histogram name="Net.QuicSession.ReadError" enum="NetErrorCodes">
  <owner>rch@chromium.org</owner>
  <summary>
    The network error code returned when attempting to read from a QUIC
    connection. The suffix specifies the condition/source of the read error.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ReadError.CurrentNetwork.HandshakeConfirmed"
    enum="NetErrorCodes">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    The network error code returned when attempting to read on the current
    network from a QUIC connection after handshake has been confirmed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.RejectHasProof" enum="Boolean"
    expires_after="2018-08-30">
  <owner>rch@chromium.org</owner>
  <summary>
    True if the QUIC REJ message received from the server contains a proof.
  </summary>
</histogram>

<histogram name="Net.QuicSession.RejectLength" expires_after="2018-08-30">
  <owner>rch@chromium.org</owner>
  <summary>
    The length in bytes of a QUIC REJ message received from the server.
  </summary>
</histogram>

<histogram name="Net.QuicSession.RetryAfterWriteErrorCount" units="retries">
  <obsolete>
    Deprecated 11/2017. Use Net.QuicSession.RetryAfterWriteErrorCount2.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    The number of consecutive times a packet was retried after a write error.
  </summary>
</histogram>

<histogram name="Net.QuicSession.RetryAfterWriteErrorCount2" units="retries">
  <owner>rch@chromium.org</owner>
  <summary>
    The number of consecutive times a packet was retried after a write error,
    using exponential backoff.
  </summary>
</histogram>

<histogram name="Net.QuicSession.RstStreamErrorCodeClient"
    enum="QuicRstStreamErrorCodes">
  <owner>rch@chromium.org</owner>
  <summary>
    The QUIC error code which resulted in a stream being reset by the client.
  </summary>
</histogram>

<histogram name="Net.QuicSession.RstStreamErrorCodeServer"
    enum="QuicRstStreamErrorCodes">
  <owner>rch@chromium.org</owner>
  <summary>
    The QUIC error code which resulted in a stream being reset by the server.
  </summary>
</histogram>

<histogram name="Net.QuicSession.SecureResourceSecureSession">
  <owner>rch@chromium.org.</owner>
  <summary>
    The number of request for secure resources over QUIC sessions. True if the
    session is secure, false if it is not.
  </summary>
</histogram>

<histogram name="Net.QuicSession.SentConnectivityProbe" enum="Boolean">
  <obsolete>
    Deprecated 03/2018 as crbug.com/817496 is resolved.
  </obsolete>
  <owner>zhongyi@chromium.org</owner>
  <summary>
    The number of times the connection sends connectivity probe to the peer.
  </summary>
</histogram>

<histogram name="Net.QuicSession.ServerSideMtu" units="bytes"
    expires_after="2018-08-30">
  <owner>rch@chromium.org</owner>
  <summary>
    The largest packet which the client received from the server during the
    session.
  </summary>
</histogram>

<histogram name="Net.QuicSession.SmoothedRTT" units="ms">
  <owner>rch@chromium.org</owner>
  <summary>
    The final smoothed RTT observed during the life of a QUIC connection.
  </summary>
</histogram>

<histogram name="Net.QuicSession.StaleAndFreshHostMatched" enum="Boolean">
  <owner>renjietang@chromium.org</owner>
  <summary>
    True if fresh host lists contains stale host used in racing connection.
  </summary>
</histogram>

<histogram name="Net.QuicSession.StaleHostRacing" enum="Boolean">
  <owner>renjietang@chromium.org</owner>
  <summary>True if the stale host is used in racing connection.</summary>
</histogram>

<histogram name="Net.QuicSession.StreamCloseErrorCodeClient.HandshakeConfirmed"
    enum="QuicErrorCodes">
  <owner>rch@chromium.org</owner>
  <summary>
    The QUIC error code which resulted in the stream (and connection) being
    closed by the client after the handshake was confirmed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.StreamCloseErrorCodeServer.HandshakeConfirmed"
    enum="QuicErrorCodes">
  <owner>rch@chromium.org</owner>
  <summary>
    The QUIC error code which resulted in the stream (and connection) being
    closed by the client after the handshake was confirmed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.StreamFlowControlBlocked"
    enum="BooleanBlocked">
  <owner>rch@chromium.org</owner>
  <summary>
    Whether any of QUIC session's streams are flow control blocked when a PING
    message is sent to server.
  </summary>
</histogram>

<histogram name="Net.QuicSession.StreamFrameDuplicatedLongConnection"
    units="1/10th Percent">
  <owner>rch@chromium.org</owner>
  <summary>
    The number of stream frames received which were duplicates, out of every
    1000 stream frames received. Only for QUIC sessions which received at least
    100 packets.
  </summary>
</histogram>

<histogram name="Net.QuicSession.StreamFrameDuplicatedPercentLongConnection">
  <owner>rch@chromium.org</owner>
  <summary>
    The percentage of stream frames received which were duplicates. Only for
    QUIC sessions which received at least 100 packets.
  </summary>
</histogram>

<histogram name="Net.QuicSession.StreamFrameDuplicatedPercentShortConnection">
  <owner>rch@chromium.org</owner>
  <summary>
    The percentage of stream frames received which were duplicates. Only for
    QUIC sessions which received fewer than 100 packets.
  </summary>
</histogram>

<histogram name="Net.QuicSession.StreamFrameDuplicatedShortConnection"
    units="1/10th Percent">
  <owner>rch@chromium.org</owner>
  <summary>
    The number of stream frames received which were duplicates, out of every
    1000 stream frames received. Only for QUIC sessions which received fewer
    than 100 packets.
  </summary>
</histogram>

<histogram name="Net.QuicSession.TimedOutWithOpenStreams.ConsecutiveRTOCount"
    expires_after="2018-08-30">
  <owner>rch@chromium.org</owner>
  <summary>
    If a QUIC connection timed out with open streams, this contains a count of
    consecutive RTOs.
  </summary>
</histogram>

<histogram name="Net.QuicSession.TimedOutWithOpenStreams.ConsecutiveTLPCount"
    expires_after="2018-08-30">
  <owner>rch@chromium.org</owner>
  <summary>
    If a QUIC connection timed out with open streams, this contains a count of
    consecutive TLPs.
  </summary>
</histogram>

<histogram name="Net.QuicSession.TimedOutWithOpenStreams.HasUnackedPackets"
    expires_after="2018-08-30">
  <owner>rch@chromium.org</owner>
  <summary>
    If a QUIC connection timed out with open streams, this will be true when the
    connection has unacked packets.
  </summary>
</histogram>

<histogram name="Net.QuicSession.TimedOutWithOpenStreams.LocalPort"
    expires_after="2018-08-30">
  <owner>rch@chromium.org</owner>
  <summary>
    If a QUIC connection timed out locally with open streams, this contains the
    local port number for the connection.
  </summary>
</histogram>

<histogram name="Net.QuicSession.TimeFromResolveHostToConfirmConnection"
    units="Milliseconds">
  <owner>renjietang@chromium.org</owner>
  <summary>
    The time a QuicStreamFactory Job takes from host rersolution to connection
    confirmation.
  </summary>
</histogram>

<histogram name="Net.QuicSession.TooManyOpenStream" enum="BooleanTooMany">
  <obsolete>
    Deprecated 04/2015. Tracked as Net.QuicSession.TooManyOpenStreams.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    True if more than 100 streams are open when a new stream is activated.
  </summary>
</histogram>

<histogram name="Net.QuicSession.TooManyOpenStreams" enum="BooleanTooMany"
    expires_after="2018-08-30">
  <owner>rch@chromium.org</owner>
  <summary>
    True if more than 100 streams are open when a new stream is activated.
  </summary>
</histogram>

<histogram name="Net.QuicSession.TruncatedAcksReceived">
  <obsolete>
    Deprecated 08/2016.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>The number of truncated ACK frames received.</summary>
</histogram>

<histogram name="Net.QuicSession.TruncatedAcksSent">
  <obsolete>
    Deprecated 08/2016.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>The number of truncated ACK frames sent.</summary>
</histogram>

<histogram name="Net.QuicSession.UndecryptablePacketsReceived"
    expires_after="2018-08-30">
  <owner>rch@chromium.org</owner>
  <summary>
    The number of undecryptable packets recevied by a QuicSession when the
    sesesion is closed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.UnexpectedNotGoingAway"
    enum="QuicSessionLocations">
  <owner>rch@chromium.org</owner>
  <summary>
    The location in quic_client_session.cc where a session is unexpectedly not
    going away.
  </summary>
</histogram>

<histogram name="Net.QuicSession.UnexpectedObservers"
    enum="QuicSessionLocations">
  <owner>rch@chromium.org</owner>
  <summary>
    The location in quic_client_session.cc where there were unexpected
    observers.
  </summary>
</histogram>

<histogram name="Net.QuicSession.UnexpectedOpenStreams"
    enum="QuicSessionLocations">
  <owner>rch@chromium.org</owner>
  <summary>
    The location in quic_client_session.cc where there were unexpected open
    streams.
  </summary>
</histogram>

<histogram name="Net.QuicSession.VerifyProofTime" units="ms">
  <owner>rch@chromium.org</owner>
  <summary>
    Time spent verifying the signature and certificate chain. This is logged
    whenever QUIC verifies the certificate chain and signature during crypto
    handshake.
  </summary>
</histogram>

<histogram name="Net.QuicSession.WriteError" enum="NetErrorCodes">
  <owner>rch@chromium.org</owner>
  <summary>
    The network error code returned when attempting to write to a QUIC
    connection.
  </summary>
</histogram>

<histogram name="Net.QuicSession.WriteError.HandshakeConfirmed"
    enum="NetErrorCodes">
  <owner>rch@chromium.org</owner>
  <summary>
    The network error code returned when attempting to write to a QUIC
    connection after the handshake has been confirmed.
  </summary>
</histogram>

<histogram name="Net.QuicSession.WriteError.NetworkDisconnected"
    enum="NetErrorCodes">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    The most recent network error code when attempting to write to a QUIC
    connection when the network gets disconnected.
  </summary>
</histogram>

<histogram name="Net.QuicSession.WriteOutOfOrderQueuedPacketAfterClose"
    enum="Boolean">
  <obsolete>
    Deprecated 06/2018 after https://crbug.com/818040 is fixed.
  </obsolete>
  <owner>wub@chromium.org</owner>
  <summary>
    Temporary histogram being used to investigate https://crbug.com/818040.
    Records whether a connection is closed when an out of order queued packet is
    about to be written.
  </summary>
</histogram>

<histogram name="Net.QuicSession.WritePacketNotReusableReason"
    enum="QuicNotReusableReason">
  <owner>ckrasic@chromium.org</owner>
  <summary>
    The reason QUIC packet writer needed to allocate a new buffer, rather than
    the expected case of reusing its existing one.
  </summary>
</histogram>

<histogram name="Net.QuicStreamFactory.AttemptMigrationBeforeHandshake"
    enum="BooleanAttempted" expires_after="2020-11-01">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    Records if a new connection on the alternate network is attempted when a
    connection fails before handshake is confirmed.
  </summary>
</histogram>

<histogram
    name="Net.QuicStreamFactory.AttemptMigrationBeforeHandshake.FailedConnectionType"
    enum="NetworkConnectionType" expires_after="2020-12-01">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    Connection type of the default network when the connection fails with
    handshake not confirmed.
  </summary>
</histogram>

<histogram name="Net.QuicStreamFactory.BadPacketLossEvents5"
    enum="QuicBadPacketLossEvents">
  <owner>rch@chromium.org</owner>
  <summary>
    A count of how often a user hits 1, 2, 3, 4 and 5 bad packet loss events for
    port 443. Recorded whenever QUIC has bad packet loss (high packet loss on
    multiple consecutive connections).
  </summary>
</histogram>

<histogram name="Net.QuicStreamFactory.ConnectionOnNonDefaultNetwork"
    enum="BooleanSuccess" expires_after="2020-12-01">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    Status of the connection on the non-default network when it finishes. A
    connection may stay on the non-default network during the initial setup when
    the platform's default network changes.
  </summary>
</histogram>

<histogram name="Net.QuicStreamFactory.DefaultNetworkMatch"
    enum="BooleanMatched">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    Records, for initial socket created for each new QUIC connection, whether
    the bound network matched the default network tracked by QuicStreamFactory.
  </summary>
</histogram>

<histogram name="Net.QuicStreamFactory.DisabledReasons"
    enum="QuicDisabledReason">
  <owner>ckrasic@chromium.org</owner>
  <summary>
    Rrecords reasons QUIC is disabled (for all ports), if sufficent recent
    connections experience: public reset post crypto handshake, or timeouts with
    streams open. QUIC is disabled until the next reboot of Chrome. Logged
    during session close.
  </summary>
</histogram>

<histogram name="Net.QuicStreamFactory.MigrationBeforeHandshake"
    enum="BooleanSuccess" expires_after="2020-11-01">
  <obsolete>
    Deprecated 11/2018. Replaced by MigrationBeforeHandshake2.
  </obsolete>
  <owner>zhongyi@chromium.org</owner>
  <summary>
    Status of the connection which is created for migration before handshake is
    confirmed.
  </summary>
</histogram>

<histogram
    name="Net.QuicStreamFactory.MigrationBeforeHandshake.NewConnectionType"
    enum="NetworkConnectionType" expires_after="2020-12-01">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    Connection type of the alternate network when a connection is about to be
    attempted when the original connection fails on the default network with
    handshake not confirmed.
  </summary>
</histogram>

<histogram name="Net.QuicStreamFactory.MigrationBeforeHandshake2"
    enum="BooleanSuccess" expires_after="2020-12-01">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    Status of the connection which is created for migration before handshake is
    confirmed.
  </summary>
</histogram>

<histogram name="Net.QuicStreamFactory.MigrationBeforeHandshakeFailedReason"
    enum="NetErrorCodes" expires_after="2020-12-01">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    The network error code returned when the retried connection on the alternate
    network before handshake fails.
  </summary>
</histogram>

<histogram
    name="Net.QuicStreamFactory.NetworkChangeDuringMigrationBeforeHandshake"
    enum="BooleanChanged" expires_after="2020-12-01">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    Captures whether the default network has been changed when the new
    connection succeeds on the &quot;alternate&quot; network.
  </summary>
</histogram>

<histogram name="Net.QuicStreamFactory.PublicResetsPostHandshake"
    units="resets">
  <owner>ckrasic@chromium.org</owner>
  <summary>
    Captures the maximum number of public resets post handshake that occurred
    within a window of recent connections (default 20). Will help inform the
    choice of threshold to disable QUIC for clients that experience pathalogical
    errors. Logged during session close.
  </summary>
</histogram>

<histogram name="Net.QuicStreamFactory.QuicIsDisabled" enum="Ports">
  <owner>rch@chromium.org</owner>
  <summary>
    Recorded whenever QUIC is disabled for a port due to repeated lossy
    connections (high packet loss on multiple consecutive connections). QUIC is
    disabled until next reboot of Chrome.
  </summary>
</histogram>

<histogram name="Net.QuicStreamFactory.TimeoutsWithOpenStreams"
    units="timeouts">
  <owner>ckrasic@chromium.org</owner>
  <summary>
    Captures the maximum number of connection timeouts with streams open that
    occurred within a window of recent connections (default 20). Will help
    inform the choice of threshold to disable QUIC for clients that experience
    pathalogical errors. Logged during session close.
  </summary>
</histogram>

<histogram name="Net.QuicStreamFactory.TSVIPCliIsLoaded" enum="Boolean">
  <obsolete>
    Deprecated 06/2016. No longer tracked.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    Whether TSVIPCli DLL is loaded or not on windows when the socket is
    configured.
  </summary>
</histogram>

<histogram name="Net.QuicTimeBetweenTwoPacketSent" units="ms">
  <obsolete>
    Deprecated 08/2016. No longer tracked.
  </obsolete>
  <owner>zhongyi@chromium.org</owner>
  <summary>
    Time duration from last packet sent to a new packet sent in QUIC connection.
  </summary>
</histogram>

<histogram name="Net.QuicVerifyProofFailed.HandshakeConfirmed"
    enum="BooleanHandshakeConfirmed">
  <owner>rch@chromium.org</owner>
  <summary>
    Logged whenever proof verification fails and if the failure occurred before
    or after the crypto handshake is confirmed.
  </summary>
</histogram>

<histogram name="Net.RedirectChainLength" units="redirects">
  <owner>csharrison@chromium.org</owner>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    The total number of redirects encountered during processing a URLRequest.
    This includes redirects generated by servers (for example, 302 Found) and
    redirects generated internally (for example, HSTS redirects or error pages).
  </summary>
</histogram>

<histogram name="Net.RedirectWithUnadvertisedContentEncoding" enum="Boolean">
  <owner>eustas@chromium.org</owner>
  <summary>
    True for redirect responses with unadvertised &quot;Content-Encoding&quot;.
    False for valid redirect responses. See http://crbug.com/714514
  </summary>
</histogram>

<histogram name="Net.RenegotiationExtensionSupported">
  <obsolete>
    Deprecated 03/2015. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    True if the HTTP request was sent to a server which supports the TLS
    renegotiation extension.
  </summary>
</histogram>

<histogram name="Net.Reporting.HeaderEndpointGroupOutcome"
    enum="NetReportingHeaderEndpointGroupOutcome">
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The outcome of Reporting trying to process a single endpoint group in a
    Report-To header once the header itself has been parsed.
  </summary>
</histogram>

<histogram name="Net.Reporting.HeaderEndpointOutcome"
    enum="NetReportingHeaderEndpointOutcome">
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The outcome of Reporting trying to process a single endpoint in a Report-To
    header once the header itself has been parsed.
  </summary>
</histogram>

<histogram name="Net.Reporting.HeaderOutcome" enum="NetReportingHeaderOutcome">
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The outcome of Reporting trying to process a Report-To header. Once it is
    parsed, Reporting.HeaderEndpointOutcome records the outcome of the endpoints
    within it.
  </summary>
</histogram>

<histogram name="Net.Reporting.ReportDeliveredAttempts" units="attempts">
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    When Reporting successfully delivers a report, the number of unsuccessful
    delivery attempts that preceded the successful one.
  </summary>
</histogram>

<histogram name="Net.Reporting.ReportDeliveredLatency" units="ms">
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The delivery latency of reports successfully delivered by Reporting. Starts
    when the report is queued and finishes when the delivery attempt returns
    successfully.
  </summary>
</histogram>

<histogram name="Net.Reporting.ReportOutcome" enum="NetReportingReportOutcome">
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The outcome of Reporting trying to deliver a report, recorded when the
    report is finally erased from memory.
  </summary>
</histogram>

<histogram name="Net.Reporting.UploadError"
    enum="CombinedHttpResponseAndNetErrorCode">
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The error (net or HTTP) encountered by Reporting trying to upload one or
    more reports to a single endpoint in a single request, recorded when the
    upload attempt completes, if and only if the attempt failed with a net error
    or an HTTP error other than 410 (which is specified to mean &quot;remove
    endpoint&quot;).
  </summary>
</histogram>

<histogram name="Net.Reporting.UploadOutcome" enum="NetReportingUploadOutcome">
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The outcome of Reporting trying to upload one or more reports to a single
    endpoint in a single request, recorded when the upload attempt completes.
  </summary>
</histogram>

<histogram name="Net.RequestTime">
  <obsolete>
    Replaced by Net.RequestTime2 due to bug in original implementation.
  </obsolete>
  <summary>
    The amount of time between request initiation and request completion for
    success and various different errors.
  </summary>
</histogram>

<histogram name="Net.RequestTime2">
  <obsolete>
    Unused, so removed from Chromium as of 2017/8/31.
  </obsolete>
  <summary>
    The amount of time between request initiation and request completion for
    success and various different errors.
  </summary>
</histogram>

<histogram name="Net.RequestTime2.ErrAborted.HttpScheme" units="ms">
  <obsolete>
    Unused, so removed from Chromium as of 2017/8/31.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The amount of time between request initiation and request completion for
    ERR_ABORTED when the request's scheme is http/s.
  </summary>
</histogram>

<histogram name="Net.RequestTime2.ErrAborted.NetworkContent" units="ms">
  <obsolete>
    Unused, so removed from Chromium as of 2017/8/31.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The amount of time between request initiation and request completion for
    ERR_ABORTED when the requests TotalReceivedBytes() &gt; 0.
  </summary>
</histogram>

<histogram name="Net.RequestTime2.ErrAborted.NoBytesRead" units="ms">
  <obsolete>
    Unused, so removed from Chromium as of 2017/8/31.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The amount of time between request initiation and request completion for
    ERR_ABORTED when the requests TotalReceivedBytes() = 0 and
    received_response_content_length() = 0.
  </summary>
</histogram>

<histogram name="Net.RequestTime2.ErrAborted.NoNetworkContent.CachedContent"
    units="ms">
  <obsolete>
    Unused, so removed from Chromium as of 2017/8/31.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The amount of time between request initiation and request completion for
    ERR_ABORTED when the requests TotalReceivedBytes() = 0 and
    received_response_content_length() &gt; 0.
  </summary>
</histogram>

<histogram name="Net.RequestTime2.ErrAborted.NonHttpScheme" units="ms">
  <obsolete>
    Unused, so removed from Chromium as of 2017/8/31.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The amount of time between request initiation and request completion for
    ERR_ABORTED when the request's scheme is not http/s.
  </summary>
</histogram>

<histogram name="Net.RequestTime2Success.MainFrame" units="ms">
  <obsolete>
    Removed from Chromium as of 2018/7/2.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The amount of time between request initiation and request completion for
    success for main frame resources.
  </summary>
</histogram>

<histogram name="Net.RequestTime2Success.Subresource" units="ms">
  <obsolete>
    Removed from Chromium as of 2018/7/2.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The amount of time between request initiation and request completion for
    success for non-main frame resources.
  </summary>
</histogram>

<histogram name="Net.ResourceDispatcherHost.OutstandingRequests.PerProcess"
    units="requests">
  <obsolete>
    Removed from Chromium as of 2018/7.
  </obsolete>
  <owner>mef@chromium.org</owner>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    The largest number of outstanding requests that are handled by the resource
    dispatcher host for a single process.
  </summary>
</histogram>

<histogram name="Net.ResourceDispatcherHost.OutstandingRequests.Total"
    units="requests">
  <obsolete>
    Removed from Chromium as of 2018/7.
  </obsolete>
  <owner>mef@chromium.org</owner>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    The largest number of outstanding requests that are handled by the resource
    dispatcher host across all processes.
  </summary>
</histogram>

<histogram name="Net.ResourceDispatcherHost.PeakOutstandingRequests"
    units="requests">
  <obsolete>
    Removed from code as of 03/2018.
  </obsolete>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The largest number of outstanding requests handled by the resource
    dispatcher host, during the last sample interval (60 seconds). Not logged if
    there are no outstanding requests in the interval. This metric is temporary
    for the Loading Dispatcher v0 (crbug.com/723233), and will be removed soon.
  </summary>
</histogram>

<histogram name="Net.ResourceDispatcherHost.RequestMode.Get"
    enum="FetchRequestMode" expires_after="M69">
  <obsolete>
    Removed from code as of 11/2018.
  </obsolete>
  <owner>yhirano@chromium.org</owner>
  <owner>toyoshim@chromium.org</owner>
  <summary>
    Records request mode (https://fetch.spec.whatwg.org/#concept-request-mode)
    for HTTP &quot;GET&quot; requests.
  </summary>
</histogram>

<histogram name="Net.ResourceDispatcherHost.RequestMode.Post"
    enum="FetchRequestMode" expires_after="M69">
  <obsolete>
    Removed from code as of 11/2018.
  </obsolete>
  <owner>yhirano@chromium.org</owner>
  <owner>toyoshim@chromium.org</owner>
  <summary>
    Records request mode (https://fetch.spec.whatwg.org/#concept-request-mode)
    for HTTP &quot;POST&quot; requests.
  </summary>
</histogram>

<histogram name="Net.ResourceDispatcherHost.RequestMode.Post.WithPort"
    enum="FetchRequestMode" expires_after="M69">
  <obsolete>
    Removed from code as of 11/2018.
  </obsolete>
  <owner>yhirano@chromium.org</owner>
  <owner>toyoshim@chromium.org</owner>
  <summary>
    Records request mode (https://fetch.spec.whatwg.org/#concept-request-mode)
    for HTTP &quot;POST&quot; requests whose url contains a port.
  </summary>
</histogram>

<histogram name="Net.ResourceLoader.ExpectedContentSizeResult"
    enum="ResourceLoaderExpectedContentSizeResult">
  <obsolete>
    Removed 10/2017.
  </obsolete>
  <owner>maksim.sisov@intel.com</owner>
  <owner>mmenke@chromium.org</owner>
  <summary>
    Records how many times expected content size equals/less/more than size of
    read body/buffer or content size is unkown. Recorded for each resource load.
  </summary>
</histogram>

<histogram name="Net.ResourceLoader.InliningStatus"
    enum="ResourceLoaderInliningStatus">
  <obsolete>
    This experiment was turned down, see https://crbug.com/703188.
  </obsolete>
  <owner>tzik@chromium.org</owner>
  <summary>
    Counts whether the chunk inlining is applicable or not to a resource
    loading. Counts the reason if inapplicable.
  </summary>
</histogram>

<histogram name="Net.ResourceLoader.ReadDeferral" units="ms">
  <owner>clamy@chromium.org</owner>
  <summary>
    When starting a cross-site navigation, the time between reading the headers
    and body of the response.
  </summary>
</histogram>

<histogram name="Net.ResourceLoader.ResponseStartToEnd" units="microseconds">
  <owner>tzik@chromium.org</owner>
  <summary>
    Time from the start to the end of receiving a response body. Recorded for
    each resource load.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Net.ResourceLoader.TimeToURLRequestStart" units="ms">
  <obsolete>
    Removed from Chromium as of 2018/7/2.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The time elapsed from URLRequest creation to when a ResourceLoader actually
    calls Start on it.
  </summary>
</histogram>

<histogram name="Net.ResponseSizeByProcess.Browser" units="KB">
  <obsolete>
    The code to record this histogram was removed November 2017.
  </obsolete>
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    Count of (post-SSL/proxy, pre-filter) kilobytes received per request made by
    the browser process.
  </summary>
</histogram>

<histogram name="Net.ResponseSizeByProcess.Renderer" units="KB">
  <obsolete>
    The code to record this histogram was removed November 2017.
  </obsolete>
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    Count of (post-SSL/proxy, pre-filter) kilobytes received per request made by
    a renderer process.
  </summary>
</histogram>

<histogram name="Net.ResponseSizeByProcess.Unknown" units="KB">
  <obsolete>
    The code to record this histogram was removed November 2017.
  </obsolete>
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    Count of (post-SSL/proxy, pre-filter) kilobytes received per request made by
    a process not covered by one of the other ResponseSizeByProcess histograms.
  </summary>
</histogram>

<histogram name="Net.Socket.IdleSocketFate" enum="IdleSocketFate">
  <obsolete>
    Deprecated as of 9/2017.
  </obsolete>
  <owner>mef@chromium.org</owner>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Whether an idle socket is reused, timed out, or closed to make room for new
    sockets.
  </summary>
</histogram>

<histogram name="Net.Socket.IdleSocketReuseTime" units="seconds">
  <obsolete>
    Deprecated as of 7/2017.
  </obsolete>
  <owner>mmenke@chromium.org</owner>
  <summary>
    Seconds a socket was idle before it was reused. Emitted upon reuse. Does not
    record the times sockets were idle before first use.
  </summary>
</histogram>

<histogram name="Net.Socket.IdleSocketTimeSaving" units="ms">
  <obsolete>
    Deprecated as of 11/2016.
  </obsolete>
  <owner>mef@chromium.org</owner>
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Number of milliseconds an idle socket saved in connection establishment
    because it is reused.
  </summary>
</histogram>

<histogram name="Net.Socket.NumIdleSockets">
  <owner>mmenke@chromium.org</owner>
  <summary>Number of idle sockets when one of them was reused.</summary>
</histogram>

<histogram name="Net.SocketIdleTimeBeforeNextUse_ReusedSocket">
  <obsolete>
    Deprecated as of 03/2015.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The time an already used socket sat idle before being used.</summary>
</histogram>

<histogram name="Net.SocketIdleTimeBeforeNextUse_UnusedSocket">
  <obsolete>
    Deprecated as of 03/2015.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time an unused socket (all HTTP sockets, regardless of any proxy used)
    sat idle before being used.
  </summary>
</histogram>

<histogram name="Net.SocketIdleTimeOnIOError2_ReusedSocket">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time a previously used socket sat idle before encountering a recoverable
    socket IO error (connection abort/reset/close).
  </summary>
</histogram>

<histogram name="Net.SocketIdleTimeOnIOError2_UnusedSocket">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time an unused socket sat idle before encountering a recoverable socket
    IO error (connection abort/reset/close).
  </summary>
</histogram>

<histogram name="Net.SocketInitErrorCodes" enum="NetErrorCodes">
  <obsolete>
    Deprecated as of 03/2015.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Net error codes that socket initializations end with, including net::OK and
    net::ERR_ABORTED.
  </summary>
</histogram>

<histogram name="Net.SocketReceiveBufferUnchangeable" units="Bytes">
  <obsolete>
    Replaced by Net.SocketUnchangeableReceiveBuffer 3/31/2014.
  </obsolete>
  <summary>
    The size of a socket's receive buffer when the attempt to change it via
    setsockopt failed.
  </summary>
</histogram>

<histogram name="Net.SocketRequestTime">
  <obsolete>
    Deprecated as of 03/2015.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time in milliseconds from initial RequestSocket() call until successfully
    acquiring a connected socket.
  </summary>
</histogram>

<histogram name="Net.SocketStream.ConnectionEstablish" units="ms">
  <obsolete>
    Deprecated 2014-10-28. No longer generated. No direct replacement.
  </obsolete>
  <owner>yhirano@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>The time from the connection start to connection establish.</summary>
</histogram>

<histogram name="Net.SocketStream.ConnectionLatency" units="ms">
  <obsolete>
    Deprecated 2014-10-28. No longer generated. No direct replacement.
  </obsolete>
  <owner>yhirano@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>The time waiting to be ready to start connecting.</summary>
</histogram>

<histogram name="Net.SocketStream.ConnectionType"
    enum="SocketStreamConnectionType">
  <obsolete>
    Deprecated 2014-10-28. No longer generated. No direct replacement.
  </obsolete>
  <owner>yhirano@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    Each bucket is the number of connection type of socket stream.
  </summary>
</histogram>

<histogram name="Net.SocketStream.Duration" units="ms">
  <obsolete>
    Deprecated 2014-10-28. No longer generated. Replaced by
    Net.WebSocket.Duration.
  </obsolete>
  <owner>yhirano@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>The time a socket stream was open.</summary>
</histogram>

<histogram name="Net.SocketStream.ProtocolType" enum="SocketStreamProtocolType">
  <obsolete>
    Deprecated 2014-10-28. No longer generated. No direct replacement.
  </obsolete>
  <owner>yhirano@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    Each bucket is the number of protocol type on socket stream.
  </summary>
</histogram>

<histogram name="Net.SocketStream.ReceivedBytes" units="bytes">
  <obsolete>
    Deprecated 2014-10-28. No longer generated. No direct replacement.
  </obsolete>
  <owner>yhirano@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>Number of bytes on a socket stream.</summary>
</histogram>

<histogram name="Net.SocketStream.ReceivedCounts">
  <obsolete>
    Deprecated 2014-10-28. No longer generated. No direct replacement.
  </obsolete>
  <owner>yhirano@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>Number of reads on a socket stream.</summary>
</histogram>

<histogram name="Net.SocketStream.SentBytes" units="bytes">
  <obsolete>
    Deprecated 2014-10-28. No longer generated. No direct replacement.
  </obsolete>
  <owner>yhirano@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>Number of bytes on a socket stream.</summary>
</histogram>

<histogram name="Net.SocketStream.SentCounts">
  <obsolete>
    Deprecated 2014-10-28. No longer generated. No direct replacement.
  </obsolete>
  <owner>yhirano@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>Number of Write on a socket stream.</summary>
</histogram>

<histogram name="Net.SocketType" enum="HttpSocketType">
  <obsolete>
    Deprecated as of 03/2015.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The counts of the type of sockets returned by the socket pools.
  </summary>
</histogram>

<histogram name="Net.SocketUnchangeableReceiveBuffer" units="Bytes">
  <owner>rch@chromium.org</owner>
  <summary>
    The size of a socket's receive buffer when the attempt to change it via
    setsockopt failed.
  </summary>
</histogram>

<histogram name="Net.SocketUnchangeableSendBuffer" units="Bytes">
  <owner>rch@chromium.org</owner>
  <summary>
    The size of a socket's send buffer when the attempt to change it via
    setsockopt failed.
  </summary>
</histogram>

<histogram name="Net.SOCKSSocketIdleTimeBeforeNextUse_ReusedSocket">
  <obsolete>
    see SocketIdleTimeBeforeNextUse_ReusedSocket_SOCK
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time an already used SOCKS socket sat idle before being used.
  </summary>
</histogram>

<histogram name="Net.SOCKSSocketIdleTimeBeforeNextUse_UnusedSocket">
  <obsolete>
    see SocketIdleTimeBeforeNextUse_UnusedSocket_SOCK
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The time an unused SOCKS socket sat idle before being used.</summary>
</histogram>

<histogram name="Net.SOCKSSocketRequestTime" units="ms">
  <obsolete>
    see SocketRequestTime_SOCK
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from initial SOCKSClientSocketPool::RequestSocket() call until
    successfully acquiring a connected SOCKS socket.
  </summary>
</histogram>

<histogram name="Net.SocksSocketRequestTime">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Time it takes to request a new (unused) SOCKS proxy socket.</summary>
</histogram>

<histogram name="Net.SOCKSSocketType" enum="HttpSocketType">
  <obsolete>
    see SocketType_SOCK
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The counts of the type of sockets returned by the SOCKS pool.
  </summary>
</histogram>

<histogram name="Net.SpdyConnectionLatency" units="ms">
  <obsolete>
    Replaced by Net.SpdyConnectionLatency_2 on 2014-10-21.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>Time from when the Connect() starts until it completes.</summary>
</histogram>

<histogram name="Net.SpdyConnectionLatency_2" units="ms">
  <obsolete>
    Removed 2018-02.
  </obsolete>
  <owner>bnc@chromium.org</owner>
  <summary>Time from when the Connect() starts until it completes.</summary>
</histogram>

<histogram name="Net.SpdyFrameStreamAndSessionFlowControlState"
    enum="SpdyFrameFlowControlState">
  <owner>bnc@chromium.org</owner>
  <summary>
    The counts of the flow control state of each frame (with stream and session
    flow control on).
  </summary>
</histogram>

<histogram name="Net.SpdyFrameStreamFlowControlState"
    enum="SpdyFrameFlowControlState">
  <obsolete>
    The last protocol which would trigger this was deprecated in 2014 November.
    This histogram is deprecated in 2016 January.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    The counts of the flow control state of each frame (with stream flow control
    on).
  </summary>
</histogram>

<histogram name="Net.SpdyHeadersCompressionPercentage" units="%">
  <owner>bnc@chromium.org</owner>
  <summary>
    The percent compression achieved when compressing HEADERS frames.
  </summary>
</histogram>

<histogram name="Net.SpdyHpackDecompressionPercentage" units="%">
  <owner>ckrasic@chromium.org</owner>
  <summary>
    The compression percentage in received HPACK compressed header frames.
  </summary>
</histogram>

<histogram name="Net.SpdyHpackEncodedCharacterFrequency" units="ASCII codes">
  <obsolete>
    Obsolete as HTTP/2 standard is finalized.
  </obsolete>
  <owner>bnc@chromium.org</owner>
  <summary>
    Frequencies of characters observed in request and response headers.
    Temporarily being collected to inform the construction of an optimized
    Huffman code for the HTTP/2 specification. Buckets are ASCII codes offset by
    1.
  </summary>
</histogram>

<histogram name="Net.SpdyIPPoolDomainMatch" enum="SpdyIPPoolDomainMatch"
    units="count">
  <owner>bnc@chromium.org</owner>
  <summary>
    Status of checking if a SPDY domain can handle a IP match. If a match is
    found, we successfully used the IP Pooling. If a match is not found, we
    could have used IP Pooling, except the TLS Cert didn't match the IP-pooled
    domain.
  </summary>
</histogram>

<histogram name="Net.SpdyPing.RTT" units="ms">
  <owner>bnc@chromium.org</owner>
  <summary>The RTT for SPDY's PING.</summary>
</histogram>

<histogram name="Net.SpdyPriorityCount">
  <obsolete>
    Removed 2016-05-26.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>The count of streams at each priority over Spdy sessions.</summary>
</histogram>

<histogram name="Net.SpdyPushedStreamFate" enum="SpdyPushedStreamFate">
  <owner>bnc@chromium.org</owner>
  <summary>
    This histogram is recorded exactly once for every PUSH_PROMISE frame
    received on an HTTP/2 connection, and tracks the fate of the pushed stream.
  </summary>
</histogram>

<histogram name="Net.SpdyRecvBytes" units="bytes">
  <owner>bnc@chromium.org</owner>
  <summary>The number of bytes recevied per stream.</summary>
</histogram>

<histogram name="Net.SpdyResponseCode" enum="HttpResponseCode">
  <owner>bnc@chromium.org</owner>
  <summary>
    HTTP status codes received in HTTP/2 HEADERS frames. If a stream contains
    one or more informational (1xx) response preceeding the main response, each
    status code is logged separately.
  </summary>
</histogram>

<histogram name="Net.SpdySendBytes" units="bytes">
  <owner>bnc@chromium.org</owner>
  <summary>The number of bytes sent per stream.</summary>
</histogram>

<histogram name="Net.SpdySession.BytesRead.EOF" units="bytes">
  <obsolete>
    Removed on 2016-10-10.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    Total number of bytes recevied per session before closing session due to
    EOF.
  </summary>
</histogram>

<histogram name="Net.SpdySession.BytesRead.OtherErrors" units="bytes">
  <obsolete>
    Removed on 2016-10-10.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    Total number of bytes recevied per session before closing session due to an
    error during read.
  </summary>
</histogram>

<histogram name="Net.SpdySession.ClosedOnError" enum="NetErrorCodes">
  <owner>rch@chromium.org</owner>
  <summary>
    Net error codes when SpdySession was closed, doesn't inlcuding net::OK.
  </summary>
</histogram>

<histogram name="Net.SpdySession.CreateStreamWithSocketConnected"
    enum="BooleanSuccess">
  <owner>bnc@chromium.org</owner>
  <summary>Socket connected status in SpdySession::CreateStream.</summary>
</histogram>

<histogram name="Net.SpdySession.PushedAndUnclaimedBytes" units="count">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    The number of bytes that is pushed but not used when the session is closed.
  </summary>
</histogram>

<histogram name="Net.SpdySession.PushedBytes" units="count">
  <owner>zhongyi@chromium.org</owner>
  <summary>
    The number of bytes that is pushed when the session is closed.
  </summary>
</histogram>

<histogram name="Net.SpdySession.ServerSupportsWebSocket" units="Boolean">
  <owner>bnc@chromium.org</owner>
  <summary>
    Whether the server has advertised support for WebSockets over HTTP/2.
  </summary>
</histogram>

<histogram name="Net.SpdySessionErrorDetails" enum="SpdyProtocolErrorDetails"
    units="count">
  <obsolete>
    Replaced by SpdySessionErrorDetails2 on 2013-04-19.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    WARNING: r181910 added an enum value in the middle, so don't trust the
    counts for values 9 and above for Chrome builds after that revision.

    The type of SPDY Protocol error encountered.
  </summary>
</histogram>

<histogram name="Net.SpdySessionErrorDetails2" enum="SpdyProtocolErrorDetails2"
    units="count">
  <owner>bnc@chromium.org</owner>
  <summary>The type of SPDY Protocol error encountered.</summary>
</histogram>

<histogram name="Net.SpdySessionErrorDetails_Google"
    enum="SpdyProtocolErrorDetails" units="count">
  <obsolete>
    Replaced by SpdySessionErrorDetails_Google2 on 2013-04-19.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    The type of SPDY Protocol error encountered when talking to a google.com
    server.
  </summary>
</histogram>

<histogram name="Net.SpdySessionErrorDetails_Google2"
    enum="SpdyProtocolErrorDetails2" units="count">
  <owner>bnc@chromium.org</owner>
  <summary>
    WARNING: r181910 added an enum value in the middle, so don't trust the
    counts for values 9 and above for Chrome builds after that revision.

    The type of SPDY Protocol error encountered when talking to a google.com
    server.
  </summary>
</histogram>

<histogram name="Net.SpdySessionGet" enum="SpdySessionGet" units="count">
  <owner>bnc@chromium.org</owner>
  <summary>The type of SPDY Session used when looking up a session.</summary>
</histogram>

<histogram name="Net.SpdySessionGetPeerAddressNotConnected"
    enum="BooleanSuccess">
  <owner>bnc@chromium.org</owner>
  <summary>
    Whether SpdySession::Get{Peer,Local}Address was called when the connection
    had no socket.
  </summary>
</histogram>

<histogram name="Net.SpdySessions_DataReductionProxy"
    enum="BooleanDataReductionProxy">
  <obsolete>
    Deprecated 7/21/2014. No longer tracked.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>bolian@chromium.org</owner>
  <owner>rch@chromium.org</owner>
  <summary>
    The count of SPDY sessions using the data reduction proxy and the count of
    other SPDY sessions.
  </summary>
</histogram>

<histogram name="Net.SpdySessionSocketNotConnectedGetLocalAddress"
    enum="BooleanSuccess">
  <obsolete>
    Removed on 2016-10-10.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    SpdySession::GetLocalAddress returned ERR_SOCKET_NOT_CONNECTED.
  </summary>
</histogram>

<histogram name="Net.SpdySessionSocketNotConnectedGetPeerAddress"
    enum="BooleanSuccess">
  <obsolete>
    Removed on 2016-10-10.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    SpdySession::GetPeerAddress returned ERR_SOCKET_NOT_CONNECTED.
  </summary>
</histogram>

<histogram name="Net.SpdySessionsWithStalls">
  <obsolete>
    Removed on 2016-10-10.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>The count of SPDY Sessions with or without stalls.</summary>
</histogram>

<histogram name="Net.SpdySettingsCwnd" units="packets">
  <obsolete>
    Removed on 2016-10-10.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    The congestion window (in pkts) received at the end of a SpdySession.
  </summary>
</histogram>

<histogram name="Net.SpdySettingsCwndSent" units="packets">
  <obsolete>
    Deprecated 2016 July with removal of SPDY/3.1.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    The congestion window (in pkts) sent at the beginning of a SpdySession.
  </summary>
</histogram>

<histogram name="Net.SpdySettingsReceived" enum="SpdySettingsReceived"
    units="%">
  <obsolete>
    Removed on 2016-10-10.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    Percentage of sessions which received settings from the server.
  </summary>
</histogram>

<histogram name="Net.SpdySettingsRetransRate" units="%">
  <obsolete>
    Removed on 2016-10-10.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    The Download Retransmission Rate (%) received at the end of a SpdySession.
  </summary>
</histogram>

<histogram name="Net.SpdySettingsRTT" units="ms">
  <obsolete>
    Removed on 2016-10-10.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>The RTT received at the end of a SpdySession.</summary>
</histogram>

<histogram name="Net.SpdySettingsSent" enum="SpdySettingsSent" units="%">
  <obsolete>
    Removed on 2016-10-10.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>Percentage of sessions which sent settings to the server.</summary>
</histogram>

<histogram name="Net.SpdyStreamDownloadTime" units="ms">
  <owner>bnc@chromium.org</owner>
  <summary>
    The time between receiving the first chunk and the last chunk of data on a
    Spdy stream.
  </summary>
</histogram>

<histogram name="Net.SpdyStreamsAbandonedPerSession">
  <owner>bnc@chromium.org</owner>
  <summary>
    The number of pushed, but abandoned streams over a single session.
  </summary>
</histogram>

<histogram name="Net.SpdyStreamsPerSession">
  <owner>bnc@chromium.org</owner>
  <summary>The number of streams issued over a single session.</summary>
</histogram>

<histogram name="Net.SpdyStreamsPushedAndClaimedPerSession">
  <owner>bnc@chromium.org</owner>
  <summary>
    The number of pushed, and used streams over a single session.
  </summary>
</histogram>

<histogram name="Net.SpdyStreamsPushedPerSession">
  <owner>bnc@chromium.org</owner>
  <summary>The number of push streams received over a single session.</summary>
</histogram>

<histogram name="Net.SpdyStreamStallsPerSession">
  <obsolete>
    Removed on 2016-10-10.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>The number of stream stalls per session.</summary>
</histogram>

<histogram name="Net.SpdyStreamTime" units="ms">
  <owner>bnc@chromium.org</owner>
  <summary>
    The time of a Spdy stream. Measured from sending the first chunk to
    receiving the last chunk of data.
  </summary>
</histogram>

<histogram name="Net.SpdyStreamTimeToFirstByte" units="ms">
  <owner>bnc@chromium.org</owner>
  <summary>
    The time between sending the request and receiving the first chunk of data
    on a Spdy stream.
  </summary>
</histogram>

<histogram name="Net.SpdySynStreamCompressionPercentage" units="%">
  <obsolete>
    Deprecated on 2016-11-28, because SPDY/3 and, accordingly, SYN_STREAM frames
    are no longer used. Compression values are now calculated slightly
    differently. Replaced by Net.SpdyHeadersCompressionPercentage.
  </obsolete>
  <owner>bnc@chromium.org</owner>
  <summary>
    The percent compression achieved when compression SYN_STREAM frames.
  </summary>
</histogram>

<histogram name="Net.SpdyVersion" enum="ProtocolVersion">
  <obsolete>
    Deprecated on 2014-09-11, because the uploaded values were changing as
    protocols were removed, therefore statistics couldn't be combined across
    different builds. Replaced by Net.SpdyVersion2.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    The SPDY protocol version that is used to talk to SPDY servers.
  </summary>
</histogram>

<histogram name="Net.SpdyVersion2" enum="SpdyProtocolVersion">
  <obsolete>
    Deprecated on 2016-02-01, because the incorrect bucket count caused data
    corruption. Replaced by Net.SpdyVersion3.
  </obsolete>
  <owner>bnc@chromium.org</owner>
  <summary>
    The SPDY protocol version that is used to talk to SPDY servers. Logged every
    time a SPDY session is initialized.
  </summary>
</histogram>

<histogram name="Net.SpdyVersion3" enum="SpdyProtocolVersion">
  <obsolete>
    Deprecated 2016 July with removal of SPDY/3.1.
  </obsolete>
  <owner>bnc@chromium.org</owner>
  <summary>
    The SPDY protocol version that is used to talk to SPDY servers. Logged every
    time a SPDY session is initialized.
  </summary>
</histogram>

<histogram name="Net.SSL_AuthRootConsistency" enum="SSLAuthRootConsistency">
  <obsolete>
    Deprecated 2018-01 with the transition to a unified root list with OS
    fallback.
  </obsolete>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    The results of comparing the built-in list of known Windows roots against
    the CERT_AUTH_ROOT_SHA256_HASH_PROP_ID certificate property. Recorded for
    each certificate verification on Windows.
  </summary>
</histogram>

<histogram name="Net.SSL_CipherSuite" enum="SSLCipherSuite"
    expires_after="never">
<!-- expires-never: Used to keep track of the TLS ecosystem. -->

  <owner>agl@chromium.org</owner>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    The SSL/TLS cipher suite that was negotiated. Recorded for each SSL/TLS
    connection in the socket pool where Connect() succeeds.
  </summary>
</histogram>

<histogram name="Net.SSL_Connection_Error" enum="NetErrorCodes"
    expires_after="never">
<!-- expires-never: Used to keep track of the TLS ecosystem. -->

  <owner>agl@chromium.org</owner>
  <summary>
    Counts of specific error codes returned when opening an SSL connection.
  </summary>
</histogram>

<histogram name="Net.SSL_Connection_Error_FastRadioPadding"
    enum="NetErrorCodes">
  <obsolete>
    Removed 7/21/2015. No longer tracked.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <summary>
    Counts of specific error codes returned when opening an SSL connection for
    an endpoint which is eligible for fastradio padding.
  </summary>
</histogram>

<histogram name="Net.SSL_Connection_Error_Google" enum="NetErrorCodes">
  <obsolete>
    Removed 2018-03-07. No longer tracked.
  </obsolete>
  <owner>svaldez@chromium.org</owner>
  <summary>
    Counts of specific error codes returned when opening an SSL connection for
    google.com and any subdomain of it.
  </summary>
</histogram>

<histogram name="Net.SSL_Connection_Error_TLS13Experiment" enum="NetErrorCodes">
  <owner>svaldez@chromium.org</owner>
  <summary>
    Counts of specific error codes returned when opening an SSL connection for
    an endpoint we are using in the initial TLS 1.3 deployment.
  </summary>
</histogram>

<histogram name="Net.SSL_Connection_Latency" units="ms">
  <obsolete>
    Replaced by Net.SSL_Connection_Latency_2 on 2014-10-21.
  </obsolete>
  <owner>agl@chromium.org</owner>
  <summary>Time from when the Connect() starts until it completes.</summary>
</histogram>

<histogram name="Net.SSL_Connection_Latency_2" units="ms" expires_after="never">
<!-- expires-never: Used to keep track of the TLS ecosystem. -->

  <owner>agl@chromium.org</owner>
  <summary>Time from when the Connect() starts until it completes.</summary>
</histogram>

<histogram name="Net.SSL_Connection_Latency_DataReductionProxy" units="ms">
  <obsolete>
    Deprecated 7/21/2014. No longer tracked.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>bolian@chromium.org</owner>
  <summary>
    Time from when the Connect() starts until it completes when using the data
    reduction proxy. This includes certificate retrieval and verification.
  </summary>
</histogram>

<histogram name="Net.SSL_Connection_Latency_Full_Handshake" units="ms">
  <owner>agl@chromium.org</owner>
  <summary>
    Time from when the Connect() starts until it completes for full handshakes.
  </summary>
</histogram>

<histogram name="Net.SSL_Connection_Latency_Google" units="ms">
  <obsolete>
    Replaced by Net.SSL_Connection_Latency_Google2 on 2014-10-21.
  </obsolete>
  <owner>agl@chromium.org</owner>
  <summary>
    Time from when the Connect() starts until it completes for google.com and
    any subdomain of it.
  </summary>
</histogram>

<histogram name="Net.SSL_Connection_Latency_Google2" units="ms">
  <obsolete>
    Removed 2018-03-07. No longer tracked.
  </obsolete>
  <owner>agl@chromium.org</owner>
  <summary>
    Time from when the Connect() starts until it completes for google.com and
    any subdomain of it.
  </summary>
</histogram>

<histogram name="Net.SSL_Connection_Latency_Google_Full_Handshake" units="ms">
  <obsolete>
    Removed 2018-03-07. No longer tracked.
  </obsolete>
  <owner>agl@chromium.org</owner>
  <summary>
    Time from when the Connect() starts until it completes for google.com and
    any subdomain of it for full handshakes.
  </summary>
</histogram>

<histogram name="Net.SSL_Connection_Latency_Google_No_Revocation_Checking"
    units="ms">
  <obsolete>
    Removed in 2011.
  </obsolete>
  <owner>agl@chromium.org</owner>
  <summary>
    Time from when the Connect() starts until it completes for google.com and
    any subdomain of it. This only includes users in a 50% field trial that
    disables revocation checking for certificate pinned sites.
  </summary>
</histogram>

<histogram name="Net.SSL_Connection_Latency_Google_Resume_Handshake" units="ms">
  <obsolete>
    Removed 2018-03-07. No longer tracked.
  </obsolete>
  <owner>agl@chromium.org</owner>
  <summary>
    Time from when the Connect() starts until it completes for google.com and
    any subdomain of it for resumption handshakes.
  </summary>
</histogram>

<histogram name="Net.SSL_Connection_Latency_Google_Revocation_Checking"
    units="ms">
  <obsolete>
    Removed in 2011.
  </obsolete>
  <owner>agl@chromium.org</owner>
  <summary>
    Time from when the Connect() starts until it completes for google.com and
    any subdomain of it. This only includes users not in a 50% field trail that
    disables revocation for certificate pinned sites.
  </summary>
</histogram>

<histogram
    name="Net.SSL_Connection_Latency_PostQuantumSupported_Full_Handshake"
    units="ms">
  <obsolete>
    Deprecated as of 2016-12-01.
  </obsolete>
  <owner>mab@chromium.org</owner>
  <summary>
    Time from when the Connect() starts until it completes (full handshakes
    only), for a set of domains that we expect to always offer the experimental
    post-quantum (CECPQ1) ciphersuites.
  </summary>
</histogram>

<histogram name="Net.SSL_Connection_Latency_PQPadding" units="ms">
  <obsolete>
    Deprecated as of 2018-07-06.
  </obsolete>
  <owner>agl@chromium.org</owner>
  <summary>
    Time from when the Connect() starts until it completes for any server that
    echos a dummy post-quantum padding extension.
  </summary>
</histogram>

<histogram name="Net.SSL_Connection_Latency_Resume_Handshake" units="ms">
  <owner>agl@chromium.org</owner>
  <summary>
    Time from when the Connect() starts until it completes for resumption
    handshakes.
  </summary>
</histogram>

<histogram name="Net.SSL_Connection_Latency_TLS13Experiment" units="ms">
  <owner>svaldez@chromium.org</owner>
  <summary>
    Time from when the Connect() starts until it completes for a set of domains
    that we are using in the initial TLS 1.3 deployment.
  </summary>
</histogram>

<histogram name="Net.SSL_Connection_PostQuantum_Negotiated"
    enum="BooleanSupported">
  <obsolete>
    Deprecated as of 2016-12-01.
  </obsolete>
  <owner>mab@chromium.org</owner>
  <summary>
    For only browsers in the post-quantum (CECPQ1) ciphersuite experiment,
    counts the full TLS handshakes where CECPQ1 was, or was not, negotiated on
    hosts where we expect it to be negotiated.
  </summary>
</histogram>

<histogram name="Net.SSL_EVCertificateCTCompliance"
    enum="CTRequirementCompliance">
  <obsolete>
    Deprecated as of 01/2016.
  </obsolete>
  <owner>eranm@chromium.org</owner>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    The state of compliance with Certificate Transparency presence requirements
    for each EV certificate. An EV certificate could be non-compliant (in which
    case it loses the EV status), comply through inclusion in the EV whitelist
    or have the required number of Signed Certificate Timestamps. This metric
    will gauge adoption rate of Certificate Transparency and will help identify
    when the EV whitelist is no longer needed. Emitted during every SSL
    connection establishment, but only if the client is checking compliance with
    Certificate Transparency requirements (currently guarded by a Finch
    experiment).
  </summary>
</histogram>

<histogram name="Net.SSL_EVCertificateInWhitelist" enum="Boolean">
  <obsolete>
    Removed 06/2017 with the deprecation of the EV certificate whitelist after
    all certificates expired.
  </obsolete>
  <owner>eranm@chromium.org</owner>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    Whether an EV certificate is present in the Certificate Transparency
    whitelist. Emitted once for every EV certificate encountered (during SSL
    connection establishment), but only if the client has a valid whitelist.
  </summary>
</histogram>

<histogram name="Net.SSL_EVCTCompliance" enum="EVCTCompliance">
  <obsolete>
    Removed 06/2017 with the deprecation of distinct EV and !EV CT policies.
  </obsolete>
  <owner>eranm@chromium.org</owner>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    The state of compliance with Certificate Transparency presence requirements
    for each EV certificate. An EV certificate could be non-compliant (in which
    case it loses the EV status), comply through inclusion in the EV whitelist
    or comply with the CT certificate policy. This metric will gauge adoption
    rate of Certificate Transparency and will help identify when the EV
    whitelist is no longer needed. Emitted during every SSL connection
    establishment.
  </summary>
</histogram>

<histogram name="Net.SSL_EVWhitelistValidityForNonCompliantCert"
    enum="EVWhitelistStatus">
  <obsolete>
    Removed 06/2017 with the deprecation of the EV certificate whitelist after
    all certificates expired.
  </obsolete>
  <owner>eranm@chromium.org</owner>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    Whether the client holds a valid EV Certificates whitelist or not. Only
    emitted when an EV cert that is not compliant with the Certificate
    Transparency requirement is encountered. This histogram is intended to be
    short-lived and help determine if EV certificates are considered
    non-compliant because they are not whitelisted or if the client does not
    hold a valid instance of the whitelist.
  </summary>
</histogram>

<histogram name="Net.SSL_KeyExchange.DHE">
  <obsolete>
    Removed September 2016.
  </obsolete>
  <owner>sigbjorn@opera.com</owner>
  <owner>agl@chromium.org</owner>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    Bit strength of the key exchange for DHE. Recorded for each SSL/TLS
    connection in the socket pool where Connect() succeeds.
  </summary>
</histogram>

<histogram name="Net.SSL_KeyExchange.ECDHE" enum="ECDHECurves"
    expires_after="never">
<!-- expires-never: Used to keep track of the TLS ecosystem. -->

  <owner>sigbjorn@opera.com</owner>
  <owner>agl@chromium.org</owner>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    The curve used for key exchange for ECDHE. Recorded for each SSL/TLS
    connection in the socket pool where Connect() succeeds.
  </summary>
</histogram>

<histogram name="Net.SSL_KeyExchange.RSA">
  <obsolete>
    Removed May 2016.
  </obsolete>
  <owner>sigbjorn@opera.com</owner>
  <owner>agl@chromium.org</owner>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    Bit strength of the key exchange for RSA. Recorded for each SSL/TLS
    connection in the socket pool where Connect() succeeds. See |SSL_SESSION|'s
    key_exchange_info for more information.
  </summary>
</histogram>

<histogram name="Net.SSLCertBlacklisted">
  <obsolete>
    Removed on 01/2016. Only ever measured blacklisted Comodo serials, not any
    of the other blacklisted certificates and keys.
  </obsolete>
  <owner>agl@chromium.org</owner>
  <summary>
    Counts the number of times that users have hit blacklisted certificates. The
    indexes match up to the indexes in
    net/base/x509_certificate.cc:IsBlacklisted. The details of the certificates
    in question is confidential.
  </summary>
</histogram>

<histogram name="Net.SSLCertVerificationTime" units="ms">
  <owner>rsleevi@chromium.org</owner>
  <summary>Time to complete a certificate verification (success case).</summary>
</histogram>

<histogram name="Net.SSLCertVerificationTimeError" units="ms">
  <owner>rsleevi@chromium.org</owner>
  <summary>Time to complete a certificate verification (error case).</summary>
</histogram>

<histogram name="Net.SSLDraftDowngradeTLS13Experiment" enum="BooleanDowngrade">
  <obsolete>
    Removed in 08/2017.
  </obsolete>
  <owner>davidben@chromium.org</owner>
  <summary>
    For each HTTPS connection to the TLS 1.3 experiment server set, whether the
    TLS 1.3 anti-downgrade mechanism would have fired. This is to measure the
    effects of non-compliant middleboxes on this otherwise safe security
    feature. The numbers are only valid while the TLS 1.3 experiment set deploys
    a TLS 1.3 draft version compatible with the corresponding Chrome version and
    implement the our draft anti-downgrade signal. See
    https://crbug.com/boringssl/226.
  </summary>
</histogram>

<histogram name="Net.SSLFallbackErrorCode" enum="NetErrorCodes">
  <obsolete>
    Removed June 2016.
  </obsolete>
  <owner>davidben@chromium.org</owner>
  <summary>
    For each successful HTTPS request which used the TLS version fallback, the
    error code of the last failed attempt.
  </summary>
</histogram>

<histogram name="Net.SSLFallbackFailureState" enum="SSLFailureState">
  <obsolete>
    Removed June 2016.
  </obsolete>
  <owner>davidben@chromium.org</owner>
  <summary>
    For each successful HTTPS request which used the TLS version fallback, the
    type of handshake failure of the last failed attempt.
  </summary>
</histogram>

<histogram name="Net.SSLHostInfoDNSLookup" units="ms">
  <obsolete>
    Removed in 2011.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Time to complete a DNS lookup for a DNS CAA record.</summary>
</histogram>

<histogram name="Net.SSLHostInfoDNSLookupDelayMs" units="ms">
  <obsolete>
    Removed in 2011.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time that we would have wasted had we waited for a CAA lookup in order to
    validate a certificate.
  </summary>
</histogram>

<histogram name="Net.SSLHostInfoVerificationTimeMs" units="ms">
  <obsolete>
    Removed in 2012.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Time to complete a speculative certificate verification.</summary>
</histogram>

<histogram name="Net.SSLNegotiatedAlpnProtocol"
    enum="SSLNegotiatedAlpnProtocol">
  <owner>bnc@chromium.org</owner>
  <summary>
    For each TLS handshake, whether ALPN was negotiated; and if so, the
    negotiated protocol.
  </summary>
</histogram>

<histogram name="Net.SSLProtocolErrorCipher" enum="SSLCipherSuite">
  <obsolete>
    Removed in March 2016.
  </obsolete>
  <owner>davidben@chromium.org</owner>
  <summary>
    The cipher suite used when the corresponding operation on an SSLClientSocket
    fails with ERR_SSL_PROTOCOL_ERROR. This histogram will be removed when
    https://crbug.com/593963 is resolved.
  </summary>
</histogram>

<histogram name="Net.SSLProtocolErrorReason" enum="BoringSSLReasonCode">
  <obsolete>
    Removed in March 2016.
  </obsolete>
  <owner>davidben@chromium.org</owner>
  <summary>
    The internal, version-specific BoringSSL error reason reported when the
    corresponding operation on an SSLClientSocket fails with
    ERR_SSL_PROTOCOL_ERROR. This histogram will be removed when
    https://crbug.com/593963 is resolved.
  </summary>
</histogram>

<histogram name="Net.SSLProtocolNegotiation" enum="SSLProtocolNegotiation">
  <obsolete>
    Superseded by Net.SSLNegotiatedAlpnProtocol in 2016 August.
  </obsolete>
  <owner>bnc@chromium.org</owner>
  <summary>
    TLS extension used to negotiate protocol (ALPN or NPN); in case of NPN,
    whether the protocol is indeed supported by both the client and the server
    or is a fallback because of no overlap; and the negotiated protocol itself.
  </summary>
</histogram>

<histogram name="Net.SSLRecordSizeRead" units="bytes">
  <obsolete>
    Removed in January 2018.
  </obsolete>
  <owner>davidben@chromium.org</owner>
  <owner>svaldez@chromium.org</owner>
  <summary>
    The number of bytes, excluding the record header, of each TLS record read.
  </summary>
</histogram>

<histogram name="Net.SSLRSAKeyUsage.KnownRoot" enum="RSAKeyUsage">
  <owner>davidben@chromium.org</owner>
  <summary>
    For each TLS connection which uses a known root, an RSA key, and TLS 1.2 or
    below, what the result of checking the RSA key usage would have been.
  </summary>
</histogram>

<histogram name="Net.SSLRSAKeyUsage.UnknownRoot" enum="RSAKeyUsage">
  <owner>davidben@chromium.org</owner>
  <summary>
    For each TLS connection which uses a unknown root, an RSA key, and TLS 1.2
    or below, what the result of checking the RSA key usage would have been.
  </summary>
</histogram>

<histogram name="Net.SSLSecureRenegotiation" enum="BooleanSecure">
  <owner>davidben@chromium.org</owner>
  <summary>
    For each attempted SSL renegotiation (non-initial handshake), whether the
    server supported the renegotiation_info extension (RFC 5746).
  </summary>
</histogram>

<histogram name="Net.SSLServerKeyExchangeHash" enum="SSLHashAlgorithm">
  <obsolete>
    Replaced by Net.SSLSignatureAlgorithm.
  </obsolete>
  <owner>davidben@chromium.org</owner>
  <summary>
    For each SSL connection with a full handshake using a DHE- or ECDHE-based
    key exchange, the hash function used in the ServerKeyExchange signature.
  </summary>
</histogram>

<histogram name="Net.SSLSessionConcurrentLookupCount">
  <obsolete>
    Removed on 2017-10-02.
  </obsolete>
  <owner>nharper@chromium.org</owner>
  <summary>
    For each SSL connection where we resume a session and negotiate HTTP/2, the
    simulated minimum number of sessions retained per host it would have
    required with TLS 1.3 single-use sessions. See https://crbug.com/631988.
  </summary>
</histogram>

<histogram name="Net.SSLSessionVersionMatch" enum="BooleanMatched">
  <obsolete>
    Removed on 2015-11-10.
  </obsolete>
  <owner>davidben@chromium.org</owner>
  <summary>
    For each SSL connection that resumed a session, whether the session was
    resumed at the same version it was established at. This is only recorded in
    BoringSSL ports.
  </summary>
</histogram>

<histogram name="Net.SSLSignatureAlgorithm" enum="SSLSignatureAlgorithm">
  <owner>davidben@chromium.org</owner>
  <summary>
    For each SSL connection with a full handshake using a DHE- or ECDHE-based
    key exchange, the signature algorithm used to authenticate the peer. In TLS
    1.2, this is the signature on the ServerKeyExchange message. (Note: Although
    the ECDSA values specify a curve, the curve is only enforced in TLS 1.3.)
  </summary>
</histogram>

<histogram name="Net.SSLTLS13Downgrade" enum="BooleanDowngrade"
    expires_after="2019-06-30">
  <owner>svaldez@chromium.org</owner>
  <owner>davidben@chromium.org</owner>
  <summary>
    For each HTTPS connection, whether the TLS 1.3 anti-downgrade mechanism
    would have fired. This is only recorded if enforcement has been disabled and
    includes samples from non-1.3 servers. See https://crbug.com/boringssl/226.
  </summary>
</histogram>

<histogram name="Net.SSLTLS13DowngradeTLS13Experiment" enum="BooleanDowngrade"
    expires_after="2019-06-30">
  <owner>svaldez@chromium.org</owner>
  <owner>davidben@chromium.org</owner>
  <summary>
    For each HTTPS connection to the TLS 1.3 experiment server set, whether the
    TLS 1.3 anti-downgrade mechanism would have fired. This is only recorded if
    enforcement has been disabled and is only valid while the TLS 1.3 experiment
    set deploys the final TLS 1.3 version. See https://crbug.com/boringssl/226.
  </summary>
</histogram>

<histogram name="Net.SSLTLS13DowngradeType" enum="TLS13DowngradeType"
    expires_after="2019-06-30">
  <owner>svaldez@chromium.org</owner>
  <owner>davidben@chromium.org</owner>
  <summary>
    For each HTTPS connection that triggered the TLS 1.3 anti-downgrade
    mechanism, the key exchange and whether the root was known.
  </summary>
</histogram>

<histogram name="Net.SSLTLS13DowngradeTypeTLS13Experiment"
    enum="TLS13DowngradeType" expires_after="2019-06-30">
  <owner>svaldez@chromium.org</owner>
  <owner>davidben@chromium.org</owner>
  <summary>
    For each HTTPS connection to the TLS 1.3 experiment server set that
    triggered the TLS 1.3 anti-downgrade mechanism, the key exchange and whether
    the root was known.
  </summary>
</histogram>

<histogram name="Net.SSLv3FallbackToRenegoPatchedServer"
    enum="TLSRenegotiationPatched">
  <obsolete>
    Removed on 2014-08-20.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of times that we have performed SSLv3 fallback and found a TLS
    renegotiation patched server.
  </summary>
</histogram>

<histogram name="Net.SSLVerificationMerged">
  <obsolete>
    Removed in 2012.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Was a speculative certificate verification used?</summary>
</histogram>

<histogram name="Net.SSLVerificationMergedMsSaved" units="ms">
  <obsolete>
    Removed in 2012.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Time saved by a speculative certificate vertification.</summary>
</histogram>

<histogram name="Net.SSLVersion" enum="SSLOrQUICVersion" expires_after="never">
<!-- expires-never: Used to keep track of the TLS ecosystem. -->

  <owner>davidben@chromium.org</owner>
  <summary>
    The SSL/TLS version that was negotiated. Recorded for each SSL/TLS
    connection in the socket pool where Connect() succeeds.
  </summary>
</histogram>

<histogram name="Net.SSLVersionInterferenceDetails_TLS13Experiment"
    enum="SSLVersionInterferenceDetails">
  <obsolete>
    Removed April 2018.
  </obsolete>
  <owner>davidben@chromium.org</owner>
  <owner>svaldez@chromium.org</owner>
  <summary>
    For each detected SSL version interference against a server in the initial
    TLS 1.3 deployment, details on how the initial connection failed.
  </summary>
</histogram>

<histogram name="Net.SSLVersionInterferenceError" enum="NetErrorCodes">
  <owner>davidben@chromium.org</owner>
  <summary>
    For each detected SSL version interference, what network error the original
    failed connection reported.
  </summary>
</histogram>

<histogram name="Net.SSLVersionInterferenceProbeTrigger" enum="NetErrorCodes">
  <owner>davidben@chromium.org</owner>
  <summary>
    For each SSL version interference probe, what network error triggered it.
    Probes are only triggered for a small set of network errors.
  </summary>
</histogram>

<histogram name="Net.SuccessfulResolutionWithValidDNSName" enum="Boolean">
  <obsolete>
    Removed in 07/2017.
  </obsolete>
  <owner>palmer@chromium.org</owner>
  <summary>
    True if a DNS name contains only characters for which
    |net::IsValidLabelCharacter| returns true. Used to see if we can deprecate
    and remove support for arbitrary bytes in DNS names. This histogram is
    recorded after DNS resolution has completed successfully.
  </summary>
</histogram>

<histogram name="Net.TCP_Connection_Idle_Sockets">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Number of idle sockets when the Connect() succeeded.</summary>
</histogram>

<histogram name="Net.TCP_Connection_Latency" units="ms">
  <owner>mmenke@chromium.org</owner>
  <summary>
    Time from when the Connect() starts until it completes. Only times under 10
    minutes are logged.
  </summary>
</histogram>

<histogram name="Net.TCP_Connection_Latency_IPv4_No_Race" units="ms">
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time from when the Connect() starts until it completes when the network
    address only contains IPv4 addresses. Only times under 10 minutes are
    logged.
  </summary>
</histogram>

<histogram name="Net.TCP_Connection_Latency_IPv4_Wins_Race" units="ms">
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time from when the Connect() starts until it completes when the IPv4
    fallback connection won the race against IPv6. Only times under 10 minutes
    are logged.
  </summary>
</histogram>

<histogram name="Net.TCP_Connection_Latency_IPv6_Raceable" units="ms">
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time from when the Connect() starts until it completes when we race an IPv6
    connection against an IPv4 connection with a 300ms delay. Only times under
    10 minutes are logged.
  </summary>
</histogram>

<histogram name="Net.TCP_Connection_Latency_IPv6_Solo" units="ms">
  <owner>mgersh@chromium.org</owner>
  <summary>
    Time from when the Connect() starts until it completes when the network
    address only contains IPv6 addresses. Only times under 10 minutes are
    logged.
  </summary>
</histogram>

<histogram name="Net.TcpFastOpenSocketConnection" enum="TcpSocketStatus">
  <obsolete>
    Deprecated 02/2019, as fast open support has been removed.
  </obsolete>
  <owner>jri@chromium.org</owner>
  <summary>
    For sockets for which a TCP Fast Open protocol might be used, the result of
    trying to use it.
  </summary>
</histogram>

<histogram name="Net.TCPForSOCKSSocketIdleTimeBeforeNextUse_ReusedSocket">
  <obsolete>
    see SocketIdleTimeBeforeNextUse_ReusedSocket_TCPforSOCKS
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time an already used TCP socket sat idle before being used for a SOCKS
    request.
  </summary>
</histogram>

<histogram name="Net.TCPForSOCKSSocketIdleTimeBeforeNextUse_UnusedSocket">
  <obsolete>
    see SocketIdleTimeBeforeNextUse_UnusedSocket_TCPforSOCKS
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time an unused TCP socket sat idle before being used for a SOCKS
    request.
  </summary>
</histogram>

<histogram name="Net.TCPForSOCKSSocketRequestTime" units="ms">
  <obsolete>
    see SocketRequestTime_TCPforSOCKS
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from initial SOCKSClientSocketPool::RequestSocket() call until
    successfully acquiring a connected TCP socket.
  </summary>
</histogram>

<histogram name="Net.TCPForSOCKSSocketType" enum="HttpSocketType">
  <obsolete>
    see SocketType_TCPforSOCKS
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The counts of the type of sockets returned by the TCP pool used by the SOCKS
    pool.
  </summary>
</histogram>

<histogram name="Net.TcpRtt.AtDisconnect" units="ms">
  <owner>bmcquade@chromium.org</owner>
  <summary>
    The kernel's estimated TCP round trip time. Recorded for each TCP socket, at
    the time it is disconnected.
  </summary>
</histogram>

<histogram name="Net.TCPSocketType" enum="HttpSocketType">
  <obsolete>
    Was only used for HTTP[S] connections, renamed to Net.HTTPSocketType.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The counts of the type of TCP socket returned.</summary>
</histogram>

<histogram name="Net.ThreadHopResourceThrottleTime" units="ms">
  <obsolete>
    Experiment complete, code removed.
  </obsolete>
  <owner>davidben@chromium.org</owner>
  <summary>
    The time it took to do an IO to UI round-trip in the
    ThreadHopResourceThrottle. This is part of an experiment to determine the
    feasibility to moving some high-level resource loading checks to the UI
    thread.
  </summary>
</histogram>

<histogram name="Net.TokenBinding.HeaderCreationTime" units="ms">
  <owner>nharper@chromium.org</owner>
  <summary>Time spent creating a Token-Binding header.</summary>
</histogram>

<histogram name="Net.TokenBinding.KeyMatch" enum="TokenBinding.KeyMatch">
  <owner>nharper@chromium.org</owner>
  <summary>
    Logs on each request that is sent on a connection where Channel ID was sent
    whether the key that would be used for Token Binding matches the key used
    for Channel ID.
  </summary>
</histogram>

<histogram name="Net.TokenBinding.StoreEphemerality"
    enum="TokenBinding.StoreEphemerality">
  <owner>nharper@chromium.org</owner>
  <summary>
    For each request to accounts.google.com on a connection where Channel ID was
    sent, this logs whether the Cookie store and the Channel ID store were
    ephemeral or persistent.
  </summary>
</histogram>

<histogram name="Net.TokenBinding.Support" enum="TokenBinding.Support">
  <owner>nharper@chromium.org</owner>
  <summary>
    The number of secure HTTP requests broken down by support for Token Binding,
    indicating if Token Binding was negotiated and supported by both client and
    server, or why it wasn't if not.
  </summary>
</histogram>

<histogram name="Net.Transaction_Bandwidth" units="KB/s">
  <obsolete>
    Discontinued as of 4/12/09
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Effective bandwidth in KByte/Second of transactions logged to
    Transaction_Latency histogram. Note that only samples durations greater than
    zero ms, and less than 1 hour are tallied into this ratio.
  </summary>
</histogram>

<histogram name="Net.Transaction_Connected" units="ms">
  <obsolete>
    Deprecated as of 11/2014.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from the when the network transaction is requested, until the first
    byte of the header is received.
  </summary>
</histogram>

<histogram name="Net.Transaction_Connected_New" units="ms">
  <obsolete>
    Replaced by Net.Transaction_Connected_New_b.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    When a new connection is established, the time from the when the network
    transaction is requested, until the first byte of the header is received.
    Only items under 10 minutes are logged.
  </summary>
</histogram>

<histogram name="Net.Transaction_Connected_New_b" units="ms">
  <obsolete>
    Deprecated as of 11/2014.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    When a new connection is established, the time from the when the network
    transaction is requested, until the first byte of the header is received.
  </summary>
</histogram>

<histogram name="Net.Transaction_Connected_Under_10" units="ms">
  <obsolete>
    Replaced by Net.Transaction_Connected.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from the when the network transaction is requested, until the first
    byte of the header is received. Only items under 10 minutes are logged.
  </summary>
</histogram>

<histogram name="Net.Transaction_Latency" units="ms">
  <obsolete>
    Replaced by Net.Transaction_Latency_b.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from first byte sent until last byte received by the new network stack.
    Only items under 1 hour are logged.
  </summary>
</histogram>

<histogram name="Net.Transaction_Latency_b" units="ms">
  <obsolete>
    Deprecated as of 11/2014.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from first byte sent until last byte received by the new network stack.
  </summary>
</histogram>

<histogram name="Net.Transaction_Latency_Total" units="ms">
  <obsolete>
    Deprecated as of 11/2014.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from when a network transaction is requested until last byte received
    by the new network stack.
  </summary>
</histogram>

<histogram name="Net.Transaction_Latency_Total_New_Connection" units="ms">
  <obsolete>
    Deprecated as of 11/2014.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    When an existing TCP/IP connection is NOT reused, the time from when a
    network transaction is requested until last byte received by the new network
    stack.
  </summary>
</histogram>

<histogram name="Net.Transaction_Latency_Total_New_Connection_Under_10"
    units="ms">
  <obsolete>
    Replaced by Net.Transaction_Latency_Total_New_Connection.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    When an existing TCP/IP connection is NOT reused, the time from when a
    network transaction is requested until last byte received by the new network
    stack. Only items under 10 minutes are logged.
  </summary>
</histogram>

<histogram name="Net.Transaction_Latency_Total_Under_10" units="ms">
  <obsolete>
    Replaced by Net.Transaction_Latency_Total.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from when a network transaction is requested until last byte received
    by the new network stack. Only items under 10 minutes are logged.
  </summary>
</histogram>

<histogram name="Net.Transaction_Latency_Under_10" units="ms">
  <obsolete>
    Replaced by Net.Transaction_Latency.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from first byte sent until last byte received by the new network stack.
    Only items under 10 minutes are logged.
  </summary>
</histogram>

<histogram name="Net.Transaction_Latency_WinHTTP" units="ms">
  <obsolete>
    Deprecated a long time ago.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from first byte sent until last byte received with old WinHTTP network
    stack. Only items under 1 hour are logged.
  </summary>
</histogram>

<histogram name="Net.TransportSocketIdleTimeBeforeNextUse_ReusedSocket">
  <obsolete/>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time an already used TCP socket sat idle before being used (either for
    direct or non-socks use).
  </summary>
</histogram>

<histogram name="Net.TransportSocketIdleTimeBeforeNextUse_UnusedSocket">
  <obsolete/>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time an unused TCP socket sat idle before being used (either for direct
    or non-socks use).
  </summary>
</histogram>

<histogram name="Net.TransportSocketRequestTime" units="ms">
  <obsolete/>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from initial ClientSocketPool::RequestSocket() call until successfully
    acquiring a connected socket (either for direct or non-socks use).
  </summary>
</histogram>

<histogram name="Net.TransportSocketType" enum="HttpSocketType">
  <obsolete/>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The counts of the type of sockets returned by the TCP pool (either for
    direct or non-socks use).
  </summary>
</histogram>

<histogram name="Net.UdpSocketBindErrorFromPosix" units="PosixError">
  <obsolete>
    Deprecated as of 10/2017.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Posix error code from call to bind() UDP socket.</summary>
</histogram>

<histogram name="Net.UdpSocketBindErrorFromWinOS" units="WinError">
  <obsolete>
    Deprecated as of 10/2017.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Windows error code from call to bind() UDP socket.</summary>
</histogram>

<histogram name="Net.UdpSocketRandomBindErrorCode" enum="NetErrorCodes">
  <owner>mgersh@chromium.org</owner>
  <summary>Chromium error code from call to RandomBind() UDP socket.</summary>
</histogram>

<histogram name="Net.UDPSocketWinClose" units="ms">
  <owner>rch@chromium.org</owner>
  <summary>The time spent in closesocket call in UDPSocketWin::Close.</summary>
</histogram>

<histogram name="Net.URLRequest.ReferrerPolicyHeaderPresentOnRedirect"
    enum="BooleanPresent">
  <owner>estark@chromium.org</owner>
  <summary>
    Records the usage of the Referrer-Policy header on redirect responses. This
    histogram is recorded on each HTTP redirect response, with the value true if
    a Referrer-Policy header was present and false otherwise.
  </summary>
</histogram>

<histogram name="Net.URLRequest_SetReferrer_IsEmptyOrValid" enum="Boolean">
  <obsolete>
    Deprecated 6/23/2014. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>True if a URLRequest's referrer is empty or valid when set.</summary>
</histogram>

<histogram name="Net.URLRequestContext.OutstandingRequests" units="count">
  <obsolete>
    Deprecated 1/1/2018. No longer tracked.
  </obsolete>
  <summary>
    Indicates the number of URLRequests that are handed out by a
    URLRequestContext and are not yet destroyed.
  </summary>
</histogram>

<histogram name="Net.URLRequestContext.OutstandingRequests.Type"
    enum="URLRequestAnnotationType">
  <obsolete>
    Deprecated 1/1/2018. No longer tracked.
  </obsolete>
  <summary>
    Records the annotation type of the URLRequest that is handed out by a
    URLRequestContext when Net.URLRequestContext.OutstandingRequests is
    recorded.
  </summary>
</histogram>

<histogram name="Net.ValidDNSName" enum="Boolean">
  <obsolete>
    Deprecated 07/2017, not necessary to determine deprecation for invalid DNS
    names.
  </obsolete>
  <owner>palmer@chromium.org</owner>
  <summary>
    True if a DNS name contains only characters for which
    |net::IsValidLabelCharacter| returns true. Used to see if we can deprecate
    and remove support for arbitrary bytes in DNS names. This histogram is
    recorded when converting dotted DNS names into DNS query form, in
    preparation for issuing a DNS request.
  </summary>
</histogram>

<histogram name="Net.WebSocket.DataUse.Downstream" units="bytes">
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the downstream data use of WebSockets. Logged on every read
    operation in the WebSocket.
  </summary>
</histogram>

<histogram name="Net.WebSocket.DataUse.Upstream" units="bytes">
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the upstream data use of WebSockets. Logged on every write operation
    in the WebSocket.
  </summary>
</histogram>

<histogram name="Net.WebSocket.DeflateMode"
    enum="WebSocketNewPerMessageDeflateContextTakeoverMode">
  <owner>yhirano@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    Count the number of WebSockets that accepted permessage-deflate extension
    for each context take over mode. Used by the new Chromium-based WebSocket
    implementation.
  </summary>
</histogram>

<histogram name="Net.WebSocket.Duration" units="ms">
  <owner>yhirano@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    The time from a WebSocket is successfully opened until it's closed. Used to
    study how WebSockets are used.
  </summary>
</histogram>

<histogram name="Net.WebSocket.ErrorCodes" enum="NetErrorCodes">
  <owner>yhirano@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    Positive net error codes that WebSockets end with, including OK and ABORTED.
  </summary>
</histogram>

<histogram name="Net.WebSocket.HandshakeResult"
    enum="WebSocketNewHandshakeResult">
  <obsolete>
    Deprecated 03/2018, replaced by Net.WebSocket.HandshakeResult2.
  </obsolete>
  <owner>yhirano@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    Results of WebSocket handshakes. Use this histogram as a baseline for
    investigating feature usage counters.
  </summary>
</histogram>

<histogram name="Net.WebSocket.HandshakeResult2"
    enum="WebSocketHandshakeResult2">
  <owner>yhirano@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <owner>bnc@chromium.org</owner>
  <summary>
    Results of WebSocket handshakes, including information whether the handshake
    happened over HTTP/2. Use this histogram as a baseline for investigating
    feature usage counters.
  </summary>
</histogram>

<histogram name="Net.WebSocket.ResponseCode" enum="HttpResponseCode">
  <owner>yhirano@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>All HTTP status codes seen during WebSocket handshakes.</summary>
</histogram>

<histogram name="Net.Wifi.InterfaceCount">
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>
    The number of Wi-fi adapters on the computer. Because the histogram is
    logged each time Chrome performs a Wi-fi scan, it's better to see results in
    the &quot;user count&quot; view.
  </summary>
</histogram>

<histogram name="Net.Wifi.LbsLatency" units="ms">
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>The time that a request to Location Based Services takes.</summary>
</histogram>

<histogram name="Net.Wifi.ScanLatency" units="ms">
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>The time that a Wi-fi scan takes.</summary>
</histogram>

<histogram name="Net.WpadQuickCheckFailure" units="ms"
    expires_after="2018-08-30">
  <obsolete>
    Deprecated 02/2019.
  </obsolete>
  <owner>eroman@chromium.org</owner>
  <summary>
    Duration of time that a failing WPAD QuickCheck takes. WPAD QuickCheck does
    a name lookup for &quot;wpad&quot; and times out quickly to fail fast when
    there's no WPAD server on the network.
  </summary>
</histogram>

<histogram name="Net.WpadQuickCheckSuccess" units="ms"
    expires_after="2018-08-30">
  <obsolete>
    Deprecated 02/2019.
  </obsolete>
  <owner>eroman@chromium.org</owner>
  <summary>
    Duration of time that a successful WPAD QuickCheck takes. WPAD QuickCheck
    does a name lookup for &quot;wpad&quot; and times out quickly to fail fast
    when there's no WPAD server on the network.
  </summary>
</histogram>

<histogram name="NetConnectivity.Pipeline.0.NetworkError" enum="NetErrorCodes">
  <obsolete>
    Deprecated 05/2014, related field trial already long expired.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The network error, if any, of the first pipeline connectivity request.
  </summary>
</histogram>

<histogram name="NetConnectivity.Pipeline.0.ResponseCode">
  <obsolete>
    Deprecated 05/2014, related field trial already long expired.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The HTTP response code, if any, of the first pipeline connectivity response.
  </summary>
</histogram>

<histogram name="NetConnectivity.Pipeline.0.Status" enum="HttpPipelineStatus">
  <obsolete>
    Deprecated 05/2014, related field trial already long expired.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The result of the first pipeline connectivity request.</summary>
</histogram>

<histogram name="NetConnectivity.Pipeline.1.NetworkError" enum="NetErrorCodes">
  <obsolete>
    Deprecated 05/2014, related field trial already long expired.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The network error, if any, of the second pipeline connectivity request.
  </summary>
</histogram>

<histogram name="NetConnectivity.Pipeline.1.ResponseCode">
  <obsolete>
    Deprecated 05/2014, related field trial already long expired.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The HTTP response code, if any, of the second pipeline connectivity
    response.
  </summary>
</histogram>

<histogram name="NetConnectivity.Pipeline.1.Status" enum="HttpPipelineStatus">
  <obsolete>
    Deprecated 05/2014, related field trial already long expired.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The result of the second pipeline connectivity request.</summary>
</histogram>

<histogram name="NetConnectivity.Pipeline.2.NetworkError" enum="NetErrorCodes">
  <obsolete>
    Deprecated 05/2014, related field trial already long expired.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The network error, if any, of the third pipeline connectivity request.
  </summary>
</histogram>

<histogram name="NetConnectivity.Pipeline.2.ResponseCode">
  <obsolete>
    Deprecated 05/2014, related field trial already long expired.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The HTTP response code, if any, of the third pipeline connectivity response.
  </summary>
</histogram>

<histogram name="NetConnectivity.Pipeline.2.Status" enum="HttpPipelineStatus">
  <obsolete>
    Deprecated 05/2014, related field trial already long expired.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The result of the third pipeline connectivity request.</summary>
</histogram>

<histogram name="NetConnectivity.Pipeline.3.NetworkError" enum="NetErrorCodes">
  <obsolete>
    Deprecated 05/2014, related field trial already long expired.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The network error, if any, of the fourth pipeline connectivity request.
  </summary>
</histogram>

<histogram name="NetConnectivity.Pipeline.3.ResponseCode">
  <obsolete>
    Deprecated 05/2014, related field trial already long expired.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The HTTP response code, if any, of the fourth pipeline connectivity
    response.
  </summary>
</histogram>

<histogram name="NetConnectivity.Pipeline.3.Status" enum="HttpPipelineStatus">
  <obsolete>
    Deprecated 05/2014, related field trial already long expired.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The result of the fourth pipeline connectivity request.</summary>
</histogram>

<histogram name="NetConnectivity.Pipeline.4.NetworkError" enum="NetErrorCodes">
  <obsolete>
    Deprecated 05/2014, related field trial already long expired.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The network error, if any, of the fifth pipeline connectivity request.
  </summary>
</histogram>

<histogram name="NetConnectivity.Pipeline.4.ResponseCode">
  <obsolete>
    Deprecated 05/2014, related field trial already long expired.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The HTTP response code, if any, of the fifth pipeline connectivity response.
  </summary>
</histogram>

<histogram name="NetConnectivity.Pipeline.4.Status" enum="HttpPipelineStatus">
  <obsolete>
    Deprecated 05/2014, related field trial already long expired.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The result of the fifth pipeline connectivity request.</summary>
</histogram>

<histogram name="NetConnectivity.Pipeline.5.NetworkError" enum="NetErrorCodes">
  <obsolete>
    Deprecated 05/2014, related field trial already long expired.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The network error, if any, of the stats pipeline connectivity request.
  </summary>
</histogram>

<histogram name="NetConnectivity.Pipeline.5.ResponseCode">
  <obsolete>
    Deprecated 05/2014, related field trial already long expired.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The HTTP response code, if any, of the stats pipeline connectivity response.
  </summary>
</histogram>

<histogram name="NetConnectivity.Pipeline.5.Status" enum="HttpPipelineStatus">
  <obsolete>
    Deprecated 05/2014, related field trial already long expired.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The result of the stats pipeline connectivity request.</summary>
</histogram>

<histogram name="NetConnectivity.Pipeline.AllHTTP11" enum="BooleanSuccess">
  <obsolete>
    Deprecated 05/2014, related field trial already long expired.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    True if all requests received by the pipelining test server were HTTP/1.1.
  </summary>
</histogram>

<histogram name="NetConnectivity.Pipeline.CanarySuccess" enum="BooleanSuccess">
  <obsolete>
    Deprecated 05/2014, related field trial already long expired.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    True if the non-pipelined canary request sent immediately before the
    pipelining test requests succeeded. Note that if this fails, the rest of the
    NetConnectivity.Pipeline.* stats are not collected.
  </summary>
</histogram>

<histogram name="NetConnectivity.Pipeline.Depth">
  <obsolete>
    Deprecated 05/2014, related field trial already long expired.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The maximum depth of pipelined requests received by the test server.
  </summary>
</histogram>

<histogram name="NetConnectivity.Pipeline.Success" enum="BooleanSuccess">
  <obsolete>
    Deprecated 05/2014, related field trial already long expired.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>True if the entire pipeline connectivity trial passed.</summary>
</histogram>

<histogram name="NetConnectivity.Sent21">
  <obsolete>
    Deprecated 6/25/2012. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    In this experiment, 21 packets were sent to Google via UDP at port 6121 as
    rapidly as possible, just after successfully sending an UMA upload. Each
    packet was numbered, as was its ACK sent back by Google. If no packets (of
    the 21) were ever ACKed, then the port is assumed to be blocked, and no data
    is recorded in this histogram. If the port is not blocked, then this
    histogram shows the number of echo responses received from the first
  </summary>
</histogram>

<histogram name="NetConnectivity.Sent21.AckReceivedForNthPacket">
  <obsolete>
    Deprecated 6/25/2012. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    In this experiment, 21 packets were sent to Google via UDP at port 6121 as
    rapidly as possible, just after successfully sending an UMA upload. Each
    packet was numbered, as was its ACK sent back by Google. This histogram
    records, for each packet number, how often we received an ACK for that
    packet.
  </summary>
</histogram>

<histogram name="NetConnectivity.Sent21.GotAnAck" enum="BooleanSuccess">
  <obsolete>
    Deprecated 6/25/2012. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    In this experiment, 21 packets were sent to Google via UDP at port 6121 as
    rapidly as possible, just after successfully sending an UMA upload. If no
    packets (of the 21) were ever ACKed, then the port is assumed to be blocked.
    The histogram shows if we ever got an ACK for a packet in our series of 21.
  </summary>
</histogram>

<histogram name="NetConnectivity.TCP.Fail.100B.RTT" units="ms">
  <obsolete>
    Deprecated 4/2012. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The RTT for echoing 100 bytes of TCP data unsuccessfully.</summary>
</histogram>

<histogram name="NetConnectivity.TCP.Fail.1k.RTT" units="ms">
  <obsolete>
    Deprecated 4/2012. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The RTT for echoing 1K bytes of TCP data successfully.</summary>
</histogram>

<histogram name="NetConnectivity.TCP.Status"
    enum="NetConnectivityProtocolStatus">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Status for TCP protocol for echoing</summary>
</histogram>

<histogram name="NetConnectivity.TCP.Status.100B" enum="NetConnectivityStatus">
  <obsolete>
    Deprecated 4/2012. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Status for echoing 100 bytes of TCP data.</summary>
</histogram>

<histogram name="NetConnectivity.TCP.Status.1K" enum="NetConnectivityStatus">
  <obsolete>
    Deprecated 4/2012. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Status for echoing 1K bytes of TCP data.</summary>
</histogram>

<histogram name="NetConnectivity.TCP.Success" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The RTT for TCP protocol for echoing</summary>
</histogram>

<histogram name="NetConnectivity.TCP.Success.100B.RTT" units="ms">
  <obsolete>
    Deprecated 4/2012. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The RTT for echoing 100 bytes of TCP data successfully.</summary>
</histogram>

<histogram name="NetConnectivity.TCP.Success.1K.RTT" units="ms">
  <obsolete>
    Deprecated 4/2012. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The RTT for echoing 1K bytes of TCP data successfully.</summary>
</histogram>

<histogram name="NetConnectivity.UDP.Fail.100B.RTT" units="ms">
  <obsolete>
    Deprecated 4/2012. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The RTT for echoing 100 bytes of UDP data unsuccessfully.</summary>
</histogram>

<histogram name="NetConnectivity.UDP.Fail.1k.RTT" units="ms">
  <obsolete>
    Deprecated 4/2012. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The RTT for echoing 1K bytes of UDP data successfully.</summary>
</histogram>

<histogram name="NetConnectivity.UDP.PacketLoss">
  <obsolete>
    Deprecated 6/25/2012. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome sends 4 UDP packets in a row to test to see if there is a
    probabalistic dependency in packet loss for consecutive packets. We record a
    bit vector of packets received, where the least significant bit is a 1 if
    the first packet was received, etc. For example, if packets 1 and 3 are
    received, but packets 2 and 4 are lost, then we'd record a sample of binary
    0101B, or 5.
  </summary>
</histogram>

<histogram name="NetConnectivity.UDP.PacketLoss6">
  <obsolete>
    Deprecated 6/25/2012. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome sends 6 UDP packets in a row to test to see if there is a
    probabalistic dependency in packet loss for consecutive packets. We record a
    bit vector of packets received, where the least significant bit is a 1 if
    the first packet was received, etc. For example, if all packets other than
    packet 2 and 4 are responded to, then we'd have a sample (in binary) of
    110101B, or 53.
  </summary>
</histogram>

<histogram name="NetConnectivity.UDP.Status"
    enum="NetConnectivityProtocolStatus">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Status for UDP protocol for echoing</summary>
</histogram>

<histogram name="NetConnectivity.UDP.Status.100B" enum="NetConnectivityStatus">
  <obsolete>
    Deprecated 4/2012. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Status for echoing 100 bytes of UDP data.</summary>
</histogram>

<histogram name="NetConnectivity.UDP.Status.1K" enum="NetConnectivityStatus">
  <obsolete>
    Deprecated 4/2012. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Status for echoing 1K bytes of UDP data.</summary>
</histogram>

<histogram name="NetConnectivity.UDP.Success" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The RTT for UDP protocol for echoing</summary>
</histogram>

<histogram name="NetConnectivity.UDP.Success.100B.RTT" units="ms">
  <obsolete>
    Deprecated 4/2012. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The RTT for echoing 100 bytes of UDP data successfully.</summary>
</histogram>

<histogram name="NetConnectivity.UDP.Success.1K.RTT" units="ms">
  <obsolete>
    Deprecated 4/2012. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The RTT for echoing 1k bytes of UDP data successfully.</summary>
</histogram>

<histogram name="NetConnectivity2.Send6.PacketsSent">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    This histogram records how many packets (out of 6 attempted) were sent via
    UDP as rapidly as possible, just after successfully sending an UMA upload.
  </summary>
</histogram>

<histogram name="NetConnectivity2.Send6.SeriesAcked">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome sends 6 UDP packets in a row to test to see if there is a
    probabalistic dependency in packet loss for consecutive packets. We record a
    bit vector of packets received, where the least significant bit is a 1 if
    the first packet was received, etc. For example, if all packets other than
    packet 2 and 4 are responded to, then we'd have a sample (in binary) of
    110101B, or 53.
  </summary>
</histogram>

<histogram name="NetConnectivity2.Sent21">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    In this experiment, 21 packets were sent to Google via UDP as rapidly as
    possible, just after successfully sending an UMA upload. Each packet was
    numbered, as was its ACK sent back by Google. If no packets (of the 21) were
    ever ACKed, then the port is assumed to be blocked, and no data is recorded
    in this histogram. If the port is not blocked, then this histogram shows the
    number of echo responses received from the first
  </summary>
</histogram>

<histogram name="NetConnectivity2.Sent21.AckReceivedForNthPacket">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    In this experiment, 21 packets were sent to Google via UDP as rapidly as
    possible, just after successfully sending an UMA upload. Each packet was
    numbered, as was its ACK sent back by Google. This histogram records, for
    each packet number, how often we received an ACK for that packet.
  </summary>
</histogram>

<histogram name="NetConnectivity2.Sent21.GotAnAck" enum="BooleanSuccess">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    In this experiment, 21 packets were sent to Google via UDP as rapidly as
    possible, just after successfully sending an UMA upload. If no packets (of
    the 21) were ever ACKed, then the port is assumed to be blocked. The
    histogram shows if we ever got an ACK for a packet in our series of 21.
  </summary>
</histogram>

<histogram name="NetConnectivity2.Sent21.PacketsSent">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    This histogram records how many packets (out of 21 attempted) were sent via
    UDP as rapidly as possible, just after successfully sending an UMA upload.
  </summary>
</histogram>

<histogram name="NetConnectivity3">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    In this experiment, 21 packets were sent to Google via UDP on port 443 or
    6121.
  </summary>
</histogram>

<histogram name="NetConnectivity3.NonPacedPacket.Sent21.443.100B.PacketDelay"
    units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity3.NonPacedPacket.Sent21.443.1200B.PacketDelay"
    units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity3.NonPacedPacket.Sent21.443.500B.PacketDelay"
    units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity3.NonPacedPacket.Sent21.6121.100B.PacketDelay"
    units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity3.NonPacedPacket.Sent21.6121.1200B.PacketDelay"
    units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity3.NonPacedPacket.Sent21.6121.500B.PacketDelay"
    units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity3.NonPacedPacket.Sent21.GotAnAck"
    enum="BooleanSuccess">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity3.NonPacedPacket.Sent21.Success.RTT" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity3.PacedPacket.Sent21.443.100B.PacketDelay"
    units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity3.PacedPacket.Sent21.443.1200B.PacketDelay"
    units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity3.PacedPacket.Sent21.443.500B.PacketDelay"
    units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity3.PacedPacket.Sent21.6121.100B.PacketDelay"
    units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity3.PacedPacket.Sent21.6121.1200B.PacketDelay"
    units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity3.PacedPacket.Sent21.6121.500B.PacketDelay"
    units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity3.PacedPacket.Sent21.GotAnAck"
    enum="BooleanSuccess">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity3.PacedPacket.Sent21.Success.RTT" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity3.StartPacket.Send6.PacketsSent">
  <obsolete>
    Deprecated 9/2012. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    This histogram records how many packets (out of 6 attempted) were sent via
    UDP as rapidly as possible, just after successfully sending an UMA upload.
  </summary>
</histogram>

<histogram name="NetConnectivity3.StartPacket.Sent21.443.100B.PacketDelay"
    units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity3.StartPacket.Sent21.443.1200B.PacketDelay"
    units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity3.StartPacket.Sent21.443.500B.PacketDelay"
    units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity3.StartPacket.Sent21.6121.100B.PacketDelay"
    units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity3.StartPacket.Sent21.6121.1200B.PacketDelay"
    units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity3.StartPacket.Sent21.6121.500B.PacketDelay"
    units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity3.StartPacket.Sent21.GotAnAck"
    enum="BooleanSuccess">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity3.StartPacket.Sent21.Success.RTT" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="NetConnectivity4">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    In this experiment, a few packets were sent from Google to clients via UDP
    on port 443 or 80 to perform net connectivity test.
  </summary>
</histogram>

<histogram name="NetConnectivity5">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    In this experiment, a few packets were sent from Google to clients via UDP
    on port 443 or 80 to perform net connectivity test.
  </summary>
</histogram>

<histogram name="NetConnectivity5.TestFailed.WritePending"
    enum="BooleanSuccess">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Next NetConnectivity5 experiment weren't started because there is an
    outstading pending write.
  </summary>
</histogram>

<histogram name="Network.3G.Gobi.Activation" units="ms">
  <owner>benchan@chromium.org</owner>
  <summary>The time the Gobi modem takes to complete activation.</summary>
</histogram>

<histogram name="Network.3G.Gobi.Connect" units="ms" expires_after="2019-12-31">
  <owner>benchan@chromium.org</owner>
  <summary>
    The time the Gobi modem takes to connect to the cellular network.
  </summary>
</histogram>

<histogram name="Network.3G.Gobi.Disconnect" units="ms"
    expires_after="2019-12-31">
  <owner>benchan@chromium.org</owner>
  <summary>
    The time the Gobi modem takes to disconnect from the cellular network.
  </summary>
</histogram>

<histogram name="Network.3G.Gobi.FirmwareDownload.Attempts">
  <owner>benchan@chromium.org</owner>
  <summary>Number of attempts taken to install Gobi firmware.</summary>
</histogram>

<histogram name="Network.3G.Gobi.FirmwareDownload.Time" units="ms">
  <owner>benchan@chromium.org</owner>
  <summary>The time it takes to install Gobi firmware.</summary>
</histogram>

<histogram name="Network.3G.Gobi.Registration" units="ms"
    expires_after="2019-12-31">
  <owner>benchan@chromium.org</owner>
  <summary>
    The time the Gobi modem takes to register on the cellular network.
  </summary>
</histogram>

<histogram name="Network.3G.Gobi.SetPower" enum="Network3GGobiError"
    expires_after="2019-12-31">
  <owner>benchan@chromium.org</owner>
  <summary>Errors experienced during Gobi device powerup.</summary>
</histogram>

<histogram name="Network.Cellular.TimeOnline" units="seconds">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome OS network metric sampling the time spent using Cellular to transport
    data. These data are mostly useful when summed and compared to TimeOnline
    for other network technologies (e.g. WiFi vs Cellular).
  </summary>
</histogram>

<histogram name="Network.Cellular.TimeToConfig" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome OS network performance metric sampling the time to join a 3G/Cellular
    network and configure Layer 3 state.
  </summary>
</histogram>

<histogram name="Network.Cellular.TimeToOnline" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome OS network performance metric sampling the time to determine that a
    3G/Cellular network is online after configuring Layer 3 state.
  </summary>
</histogram>

<histogram name="Network.Cellular.TimeToPortal" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome OS network performance metric sampling the time to determine that a
    3G/Cellular network is in a captive portal after configuring Layer 3 state.
  </summary>
</histogram>

<histogram name="Network.Cellular.UsageRequestStatus"
    enum="NetworkCellularUsageRequestStatus">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Chrome OS cellular usage API request status codes.</summary>
</histogram>

<histogram name="Network.Ethernet.TimeOnline" units="seconds">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome OS network metric sampling the time spent using Ethernet to transport
    data. These data are mostly useful when summed and compared to TimeOnline
    for other network technologies (e.g. WiFi vs Cellular).
  </summary>
</histogram>

<histogram name="Network.Ethernet.TimeToConfig" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome OS network performance metric sampling the time to join a wired
    Ethernet network and configure Layer 3 state (typically acquire a DHCP
    lease).
  </summary>
</histogram>

<histogram name="Network.Ethernet.TimeToOnline" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome OS network performance metric sampling the time to determine that an
    Ethernet network is online after configuring Layer 3 state.
  </summary>
</histogram>

<histogram name="Network.Ethernet.TimeToPortal" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome OS network performance metric sampling the time to determine that an
    Ethernet network is in a captive portal after configuring Layer 3 state.
  </summary>
</histogram>

<histogram name="Network.MigrationNssToPem"
    enum="MigrationNssToPemNetworkTypes">
  <obsolete>
    Deprecated 8/2015.
  </obsolete>
  <owner>cschuet@chromium.org</owner>
  <summary>
    Chrome OS metric counting the number of network configurations that
    contained a NSS nickname identifying a CA certificate, which triggered the
    migration to PEM encoding. This metric doesn't consider whether the
    migration was successful but once a migration was successful the nickname is
    removed.
  </summary>
</histogram>

<histogram name="Network.ServiceErrors" enum="NetworkServiceError">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Chrome OS connection manager service errors seen.</summary>
</histogram>

<histogram name="Network.Shill.Cellular.3GPPRegistrationDelayedDrop"
    enum="NetworkCellular3GPPRegistrationDelayedDrop">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the number of cellular network
    flakes. A network flake occurs when the signal strength goes below detection
    level for a short duration.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.AutoConnectTotalTime" units="ms">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the total amount of time spent
    from the start of the first auto-connect request until when the cellular
    modem successfully connects to the network.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.AutoConnectTries">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the number of auto-connect
    tries that were attempted before the cellular modem successfully connected
    to the network.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.DevicePresenceStatus"
    enum="BooleanPresent">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network metric that tracks the presence of a Cellular device in
    the system. A sample is emitted once every 3 minutes.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.DHCPOptionFailureDetected"
    enum="NetworkDHCPOptionFailure">
  <obsolete>
    Deprecated 5/2014, and replaced by Network.Shill.DHCPOptionFailureDetected.
  </obsolete>
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network metric that tracks the number of DHCP option failures
    encountered by Shill. This indicates that Shill is using minimal DHCP
    options due to suspected MTU issues on the return path from the DHCP server
    back to the client.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.Disconnect"
    enum="NetworkDisconnectType">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network usage metric that tracks whether the cellular network was
    disconnected due to an error or was explicitly disconnected by the user.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.Drop" enum="NetworkCellularTechnology">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS cellular network metric that tracks the number of drops based on
    the network technology.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.ExpiredLeaseLengthSeconds"
    units="seconds">
  <obsolete>
    Deprecated since Chrome OS build 10010.0.0 and superceded by
    Network.Shill.Cellular.ExpiredLeaseLengthSeconds2 due to change in number of
    buckets (crosreview.com/557297, crosreview.com/703679).
  </obsolete>
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric that tracks the length of a lease for a
    cellular network at the time it expired without the DHCP client being able
    to renew it.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.ExpiredLeaseLengthSeconds2"
    units="seconds">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric that tracks the length of a lease for a
    cellular network at the time it expired without the DHCP client being able
    to renew it.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.IPv6ConnectivityStatus"
    enum="IPv6ConnectivityStatus">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network metric that tracks the presence of complete IPv6
    configuration at the time when cellular connection is established.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.NetworkConnectionIPType"
    enum="NetworkConnectionIPType">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network metric that tracks the types of IP configuration used for
    establishing cellular connections.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.OutOfCreditsReason"
    enum="NetworkCellularOutOfCreditsReason">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS cellular network metric that tracks the number of out-of-credits
    detected based on the cause that triggered the out-of-credits.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.PortalAttempts">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the number of portal detection
    attempts per pass for a cellular network. This includes failure, timeout and
    successful attempts.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.PortalAttemptsToOnline">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the total number of portal
    detection attempts performed for a cellular network between the Connected
    and Online state. This includes failure, timeout and successful attempts.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.PortalResult"
    enum="NetworkPortalResult">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the result of portal detections
    for a cellular network.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.SignalStrengthBeforeDrop">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network metric sampling the signal strength (0-100) of the
    cellular modem before it dropped from the network.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.TimeOnline" units="seconds">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network metric sampling the time spent using cellular to transport
    data. These data are mostly useful when summed and compared to TimeOnline
    for other network technologies (e.g. WiFi vs Cellular).
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.TimeToConfig" units="ms">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to join a cellular
    network and configure Layer 3 state.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.TimeToConnect" units="ms">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to connect a cellular
    modem.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.TimeToDisable" units="ms">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to disable a cellular
    modem.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.TimeToEnable" units="ms">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to enable a cellular
    modem.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.TimeToInitialize" units="ms">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to initialize a
    cellular modem.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.TimeToOnline" units="ms">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to determine that a
    cellular network is online after configuring Layer 3 state.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.TimeToPortal" units="ms">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to determine that a
    cellular network is in a captive portal after configuring Layer 3 state.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.TimeToScan" units="ms">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to scan a cellular
    network and register a modem.
  </summary>
</histogram>

<histogram name="Network.Shill.ConnectionDiagnosticsIssue"
    enum="ConnectionDiagnosticsIssue">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network metric that tracks the connectivity issue diagnosed by the
    ConnectionDiagnostics class in Shill. This metric is logged each time a
    ConnectionDiagnostics object completes its diagnostics actions and reports
    the results to its caller.
  </summary>
</histogram>

<histogram name="Network.Shill.CorruptedProfile" enum="NetworkCorruptedProfile">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS cellular network metric that tracks the number of corrupted
    profiles encountered by Shill.
  </summary>
</histogram>

<histogram name="Network.Shill.CumulativeTimeOnline" units="seconds">
  <owner>kirtika@chromium.org</owner>
  <owner>semenzato@chromium.org</owner>
  <summary>
    Chrome OS device time on line in the previous 24-hour sample period.
    &quot;On line&quot; means shill believes the device is on the internet. The
    shill state is sampled every 5 minutes. The start of each 24-hour period is
    the end of the previous period, unless the device is inactive at that time
    (suspended or off), in which case it is the time of the next
    resume/power-on.
  </summary>
</histogram>

<histogram name="Network.Shill.DailyChosenFractionOnline.Cellular" units="%">
  <owner>benchan@chromium.org</owner>
  <owner>kirtika@chromium.org</owner>
  <owner>semenzato@chromium.org</owner>
  <summary>
    Chrome OS fraction of daily cumulative time on a cellular connection when
    both cellular and WiFi adaptors are available. Each sample is the ratio of
    the corresponding DailyChosenTimeOnLine.{Cellular,Any} samples. Reported
    only when both a cellular and a WiFi adaptor are present (independently of
    whether they would both be able to connect).
  </summary>
</histogram>

<histogram name="Network.Shill.DailyChosenFractionOnline.Wifi" units="%">
  <owner>benchan@chromium.org</owner>
  <owner>kirtika@chromium.org</owner>
  <owner>semenzato@chromium.org</owner>
  <summary>
    Chrome OS fraction of daily cumulative time on a WiFi connection when both
    cellular and WiFi adaptors are available. Each sample is the ratio of the
    corresponding DailyChosenTimeOnLine.{Cellular,Any} samples. Reported only
    when both a cellular and a WiFi adaptor are present (independently of
    whether they would both be able to connect).
  </summary>
</histogram>

<histogram name="Network.Shill.DailyChosenTimeOnline.Any" units="seconds">
  <owner>benchan@chromium.org</owner>
  <owner>kirtika@chromium.org</owner>
  <owner>semenzato@chromium.org</owner>
  <summary>
    Chrome OS daily cumulative time on line when both cellular and WiFi adaptors
    are available. Reported only when both kinds of adaptor are present
    (independently of whether they would both be able to connect). Each sample
    contains the total on-line time in the 24-hour slot following the previous
    sample. The time granularity is 5 minutes.
  </summary>
</histogram>

<histogram name="Network.Shill.DailyChosenTimeOnline.Cellular" units="seconds">
  <owner>benchan@chromium.org</owner>
  <owner>kirtika@chromium.org</owner>
  <owner>semenzato@chromium.org</owner>
  <summary>
    Chrome OS daily cumulative time on a cellular connection when both cellular
    and WiFi adaptors are available. Reported only when both kinds of adaptor
    are present (independently of whether they would both be able to connect).
    Each sample contains the total on-line time in the 24-hour slot following
    the previous sample. The time granularity is 5 minutes.
  </summary>
</histogram>

<histogram name="Network.Shill.DailyChosenTimeOnline.Wifi" units="seconds">
  <owner>benchan@chromium.org</owner>
  <owner>kirtika@chromium.org</owner>
  <owner>semenzato@chromium.org</owner>
  <summary>
    Chrome OS daily cumulative time on a WiFi connection when both cellular and
    WiFi adaptors are available. Reported only when both kinds of adaptor are
    present (independently of whether they would both be able to connect). Each
    sample contains the total on-line time in the 24-hour slot following the
    previous sample. The time granularity is 5 minutes.
  </summary>
</histogram>

<histogram name="Network.Shill.DarkResumeActionResult"
    enum="ShillSuspendTerminationDarkResumeActionResult">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the number of dark resume
    actions that successfully complete or fail when shill suspends.
  </summary>
</histogram>

<histogram name="Network.Shill.DarkResumeActionsTimeTaken" units="ms">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the time in milliseconds it
    takes dark resume actions to complete when shill suspends.
  </summary>
</histogram>

<histogram name="Network.Shill.DarkResumeActionTime" units="ms">
  <obsolete>
    Deprecated 01/2015. Migrated to Network.Shill.DarkResumeActionsTimeTaken.
  </obsolete>
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the time in milliseconds it
    takes dark resume actions to complete when shill suspends.
  </summary>
</histogram>

<histogram name="Network.Shill.DarkResumeScanNumRetries">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network metric sampling the number of times a dark resume scan is
    retried in a single dark resume.
  </summary>
</histogram>

<histogram name="Network.Shill.DarkResumeScanRetryResult"
    enum="DarkResumeScanRetryResult">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network metric that tracks whether dark resume scan retries led to
    the system suspending from dark resume in a connected state. This metric is
    only recorded in dark resumes when at least one dark resume scan retry was
    launched.
  </summary>
</histogram>

<histogram name="Network.Shill.DeviceConnectionStatus" enum="ConnectionStatus">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric that tracks the connection status of
    the device. A sample is emitted once every 3 minutes.
  </summary>
</histogram>

<histogram name="Network.Shill.DeviceRemovedEvent" enum="DeviceTechnologyType">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network metric that tracks the network device removed events for
    each device type.
  </summary>
</histogram>

<histogram name="Network.Shill.DHCPClientMTUValue" units="bytes">
  <owner>pstew@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the MTU value proposed by the
    DHCP server. A sample is emitted each time the DHCP client completes
    negotiation with a server.
  </summary>
</histogram>

<histogram name="Network.Shill.DHCPClientStatus" enum="NetworkDhcpClientStatus">
  <owner>pstew@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the current state of the DHCP
    client. A sample is emitted each time the DHCP client state changes.
  </summary>
</histogram>

<histogram name="Network.Shill.DHCPOptionFailureDetected"
    enum="NetworkTechnology">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network metric that tracks the number of DHCP option failures
    encountered by Shill for each network technology. This indicates that Shill
    is using minimal DHCP options due to suspected MTU issues on the return path
    from the DHCP server back to the client.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.DevicePresenceStatus"
    enum="BooleanPresent">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network metric that tracks the presence of an Ethernet device in
    the system. A sample is emitted once every 3 minutes.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.DHCPOptionFailureDetected"
    enum="NetworkDHCPOptionFailure">
  <obsolete>
    Deprecated 5/2014, and replaced by Network.Shill.DHCPOptionFailureDetected.
  </obsolete>
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network metric that tracks the number of DHCP option failures
    encountered by Shill. This indicates that Shill is using minimal DHCP
    options due to suspected MTU issues on the return path from the DHCP server
    back to the client.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.Disconnect"
    enum="NetworkDisconnectType">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network usage metric that tracks whether the Ethernet network was
    disconnected due to an error or was explicitly disconnected by the user.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.ExpiredLeaseLengthSeconds"
    units="seconds">
  <obsolete>
    Deprecated since Chrome OS build 10010.0.0 and superceded by
    Network.Shill.Ethernet.ExpiredLeaseLengthSeconds2 due to change in number of
    buckets (crosreview.com/557297, crosreview.com/703679).
  </obsolete>
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric that tracks the length of a lease for
    an Ethernet network at the time it expired without the DHCP client being
    able to renew it.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.ExpiredLeaseLengthSeconds2"
    units="seconds">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric that tracks the length of a lease for
    an Ethernet network at the time it expired without the DHCP client being
    able to renew it.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.LinkMonitorBroadcastErrorsAtFailure">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric that tracks the number of LinkMonitor
    broadcast errors that were accrued on an Ethernet network at the time that
    the link was declaired to be failed.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.LinkMonitorFailure"
    enum="LinkMonitorFailureType">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS metric that signals the type of failure the LinkMonitor
    encountered which caused it to stop monitoring an Ethernet network.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.LinkMonitorResponseTimeSample"
    units="ms">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric that tracks the number of milliseconds
    between an ARP request and a received reply on an Ethernet network.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.LinkMonitorSecondsToFailure"
    units="seconds">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric that tracks the number of seconds from
    the start of the LinkMonitor until failure on an Ethernet network.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.LinkMonitorUnicastErrorsAtFailure">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric that tracks the number of LinkMonitor
    unicast errors that were accrued on an Ethernet network at the time that the
    link was declaired to be failed.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.PortalAttempts">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the number of portal detection
    attempts per pass for an Ethernet network. This includes failure, timeout
    and successful attempts.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.PortalAttemptsToOnline">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the total number of portal
    detection attempts performed for an Ethernet network between the Connected
    and Online state. This includes failure, timeout and successful attempts.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.PortalResult"
    enum="NetworkPortalResult">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the result of portal detections
    for an Ethernet network.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.TimeOnline" units="seconds">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network metric sampling the time spent using Ethernet to transport
    data. These data are mostly useful when summed and compared to TimeOnline
    for other network technologies (e.g. WiFi vs Cellular).
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.TimeToConfig" units="ms">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to join a wired
    Ethernet network and configure Layer 3 state (typically acquire a DHCP
    lease).
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.TimeToInitialize" units="ms">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to initialize an
    Ethernet device.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.TimeToOnline" units="ms">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to determine that an
    Ethernet network is online after configuring Layer 3 state.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.TimeToPortal" units="ms">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to determine that an
    Ethernet network is in a captive portal after configuring Layer 3 state.
  </summary>
</histogram>

<histogram name="Network.Shill.MonthlyChosenFractionOnline.Cellular" units="%">
  <owner>benchan@chromium.org</owner>
  <owner>kirtika@chromium.org</owner>
  <owner>semenzato@chromium.org</owner>
  <summary>
    Chrome OS fraction of monthly cumulative time on a cellular connection when
    both cellular and WiFi adaptors are available. Each sample is the ratio of
    the corresponding MonthlyChosenTimeOnLine.{Cellular,Any} samples. Reported
    only when both a cellular and a WiFi adaptor are present (independently of
    whether they would both be able to connect).
  </summary>
</histogram>

<histogram name="Network.Shill.MonthlyChosenFractionOnline.Wifi" units="%">
  <owner>benchan@chromium.org</owner>
  <owner>kirtika@chromium.org</owner>
  <owner>semenzato@chromium.org</owner>
  <summary>
    Chrome OS fraction of monthly cumulative time on a WiFi connection when both
    cellular and WiFi adaptors are available. Each sample is the ratio of the
    corresponding MonthlyChosenTimeOnLine.{Cellular,Any} samples. Reported only
    when both a cellular and a WiFi adaptor are present (independently of
    whether they would both be able to connect).
  </summary>
</histogram>

<histogram name="Network.Shill.MonthlyChosenTimeOnline.Any" units="seconds">
  <owner>benchan@chromium.org</owner>
  <owner>kirtika@chromium.org</owner>
  <owner>semenzato@chromium.org</owner>
  <summary>
    Chrome OS monthly cumulative time on line when both cellular and WiFi
    adaptors are available. Reported only when both kinds of adaptor are present
    (independently of whether they would both be able to connect). Each sample
    contains the total on-line time in the 30-day slot following the previous
    sample. The time granularity is 5 minutes.
  </summary>
</histogram>

<histogram name="Network.Shill.MonthlyChosenTimeOnline.Cellular"
    units="seconds">
  <owner>benchan@chromium.org</owner>
  <owner>kirtika@chromium.org</owner>
  <owner>semenzato@chromium.org</owner>
  <summary>
    Chrome OS monthly cumulative time on a cellular connection when both
    cellular and WiFi adaptors are available. Reported only when both kinds of
    adaptor are present (independently of whether they would both be able to
    connect). Each sample contains the total on-line time in the 30-day slot
    following the previous sample. The time granularity is 5 minutes.
  </summary>
</histogram>

<histogram name="Network.Shill.MonthlyChosenTimeOnline.Wifi" units="seconds">
  <owner>benchan@chromium.org</owner>
  <owner>kirtika@chromium.org</owner>
  <owner>semenzato@chromium.org</owner>
  <summary>
    Chrome OS monthly cumulative time on a WiFi connection when both cellular
    and WiFi adaptors are available. Reported only when both kinds of adaptor
    are present (independently of whether they would both be able to connect).
    Each sample contains the total on-line time in the 30-day slot following the
    previous sample. The time granularity is 5 minutes.
  </summary>
</histogram>

<histogram name="Network.Shill.PortalDetectionMultiProbeResult"
    enum="PortalDetectionMultiProbeResult" expires_after="2019-12-31">
  <owner>matthewmwang@chromium.org</owner>
  <summary>
    Chrome OS network metric recording portal detection results of both the HTTP
    and HTTPS probes. This is recorded every time a portal detection trial
    finishes.
  </summary>
</histogram>

<histogram name="Network.Shill.PPPMTUValue" units="bytes">
  <owner>gdk@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the MTU value provided by the
    upstream PPP peer. A sample is emitted each time the client successfully
    negotiates an MTU value via PPP.
  </summary>
</histogram>

<histogram name="Network.Shill.SandboxingEnabled" enum="Boolean">
  <owner>mortonm@chromium.org</owner>
  <summary>
    Chrome OS metric signifying whether a system is running shill in a sandbox
    or not. This is controlled through a VariationsService flag, but requires
    1-2 reboots to take affect. This metric will help us ensure that shill is
    being run with sandboxing enabled/disabled at the proportion that we expect.
  </summary>
</histogram>

<histogram name="Network.Shill.ServiceErrors" enum="NetworkServiceError">
  <owner>benchan@chromium.org</owner>
  <summary>Chrome OS connection manager service errors seen.</summary>
</histogram>

<histogram name="Network.Shill.ServicesOnSameNetwork">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network metric sampling the number of services that are connected
    to the currently connected network.
  </summary>
</histogram>

<histogram name="Network.Shill.SuspendActionResult"
    enum="ShillSuspendTerminationDarkResumeActionResult">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the number of suspend actions
    that successfully complete or fail when shill suspends.
  </summary>
</histogram>

<histogram name="Network.Shill.SuspendActionsTimeTaken" units="ms">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the time in milliseconds it
    takes suspend actions to complete when shill suspends.
  </summary>
</histogram>

<histogram name="Network.Shill.SuspendActionTime" units="ms">
  <obsolete>
    Deprecated 01/2015. Migrated to Network.Shill.SuspendActionsTimeTaken.
  </obsolete>
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the time in milliseconds it
    takes suspend actions to complete when shill suspends.
  </summary>
</histogram>

<histogram name="Network.Shill.TerminationActionResult"
    enum="ShillSuspendTerminationDarkResumeActionResult">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the number of termination
    actions that successfully complete or fail when shill terminates. Previously
    deprecated in 10/2012 and brought back in 10/2014.
  </summary>
</histogram>

<histogram name="Network.Shill.TerminationActionResult.OnSuspend"
    enum="ShillSuspendTerminationDarkResumeActionResult">
  <obsolete>
    Deprecated 10/2014. Migrated to Network.Shill.SuspendActionResult.
  </obsolete>
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the number of termination
    actions that successfully complete or fail when shill suspends.
  </summary>
</histogram>

<histogram name="Network.Shill.TerminationActionResult.OnTerminate"
    enum="ShillSuspendTerminationDarkResumeActionResult">
  <obsolete>
    Deprecated 10/2014. Migrated to Network.Shill.TerminationActionResult.
  </obsolete>
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the number of termination
    actions that successfully complete or fail when shill terminates.
  </summary>
</histogram>

<histogram name="Network.Shill.TerminationActionsTimeTaken" units="ms">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the time in milliseconds it
    takes termination actions to complete when shill terminates.
  </summary>
</histogram>

<histogram name="Network.Shill.TerminationActionTime" units="ms">
  <obsolete>
    Deprecated 01/2015. Migrated to Network.Shill.TerminationActionsTimeTaken.
  </obsolete>
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the time in milliseconds it
    takes termination actions to complete when shill terminates.
  </summary>
</histogram>

<histogram name="Network.Shill.TerminationActionTime.OnSuspend" units="ms">
  <obsolete>
    Deprecated 10/2014. Migrated to Network.Shill.SuspendActionTime.
  </obsolete>
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the time in milliseconds it
    takes termination actions to complete when shill suspends.
  </summary>
</histogram>

<histogram name="Network.Shill.TerminationActionTime.OnTerminate" units="ms">
  <obsolete>
    Deprecated 10/2014. Migrated to Network.Shill.TerminationActionTime.
  </obsolete>
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the time in milliseconds it
    takes termination actions to complete when shill terminates.
  </summary>
</histogram>

<histogram name="Network.Shill.TimeToDrop" units="seconds">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network stability metric sampling the time in seconds between the
    networking going online to going offline. Offline events due to device
    shutdown or suspend are ignored (along with the online time before that
    offline event).
  </summary>
</histogram>

<histogram name="Network.Shill.UserInitiatedEvents" enum="UserInitiatedEvent">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network metric that tracks the number of user-initiated events.
  </summary>
</histogram>

<histogram name="Network.Shill.Vpn.Driver" enum="VPNDriver">
  <owner>cernekee@chromium.org</owner>
  <summary>
    Chrome OS network usage metric sampled on each successful VPN connection
    that tracks the VPN connection type.
  </summary>
</histogram>

<histogram name="Network.Shill.Vpn.RemoteAuthenticationType"
    enum="VPNRemoteAuthenticationType">
  <owner>cernekee@chromium.org</owner>
  <summary>
    Chrome OS network usage metric sampled on each successful VPN connection
    that tracks the remote authentication method.
  </summary>
</histogram>

<histogram name="Network.Shill.Vpn.TimeOnline" units="ms">
  <owner>cernekee@chromium.org</owner>
  <summary>
    Chrome OS network metric sampling the time spent using VPN to transport
    data. These data are mostly useful when summed and compared to TimeOnline
    for other network technologies (e.g. WiFi vs Cellular). A sample is emitted
    every time the system transitions from primary connectivity through a VPN to
    some other type of connectivity. The value of the sample is the time delta
    in seconds from the instant the system transitioned to VPN connectivity.
  </summary>
</histogram>

<histogram name="Network.Shill.Vpn.TimeToConfig" units="ms">
  <owner>cernekee@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to configure Layer 3
    state on a VPN network (typically acquire a DHCP lease).
  </summary>
</histogram>

<histogram name="Network.Shill.Vpn.TimeToOnline" units="ms">
  <owner>cernekee@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to determine that a
    WiMax network is online after configuring Layer 3 state.
  </summary>
</histogram>

<histogram name="Network.Shill.Vpn.UserAuthenticationType"
    enum="VPNUserAuthenticationType">
  <owner>cernekee@chromium.org</owner>
  <summary>
    Chrome OS network usage metric sampled on each successful VPN connection
    that tracks the user authentication method.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.Ap80211kSupport" enum="WiFiAp80211kSupport">
  <owner>matthewmwang@chromium.org</owner>
  <summary>
    Chrome OS network metric sampling the number of Wireless Access Points that
    support the 802.11k standard, sampled on successful connections to an AP.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.Ap80211rSupport" enum="WiFiAp80211rSupport">
  <owner>matthewmwang@chromium.org</owner>
  <summary>
    Chrome OS network metric sampling the number of Wireless Access Points that
    support the 802.11r standard, sampled on successful connections to an AP.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.Ap80211vBSSMaxIdlePeriodSupport"
    enum="WiFiAp80211vBSSMaxIdlePeriodSupport">
  <owner>matthewmwang@chromium.org</owner>
  <summary>
    Chrome OS network metric sampling the number of Wireless Access Points that
    support the 802.11v BSS Max Idle Period feature, sampled on successful
    connections to an AP.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.Ap80211vBSSTransitionSupport"
    enum="WiFiAp80211vBSSTransitionSupport">
  <owner>matthewmwang@chromium.org</owner>
  <summary>
    Chrome OS network metric sampling the number of Wireless Access Points that
    support the 802.11v BSS Transition feature, sampled on successful
    connections to an AP.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.Ap80211vDMSSupport"
    enum="WiFiAp80211vDMSSupport">
  <owner>matthewmwang@chromium.org</owner>
  <summary>
    Chrome OS network metric sampling the number of Wireless Access Points that
    support the 802.11v DMS feature, sampled on successful connections to an AP.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.ApChannelSwitch" enum="WiFiApChannelSwitch">
  <owner>matthewmwang@chromium.org</owner>
  <summary>
    Chrome OS network usage metric sampled when an AP switches channels. Shows
    the old frequency band and the new frequency band.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.ApDisconnectReason" enum="WiFiReasonCode">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network usage metric. Reason code reported when the AP disconnects
    a WiFi connection.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.ApDisconnectType" enum="WiFiStatusType">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network usage metric. Broad category of reason AP disconnected a
    WiFi connection.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.ApMode" enum="WiFiApMode">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network usage metric. The AP mode setting for each successful WiFi
    connection.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.AssocFailureType" enum="WiFiStatusCode">
  <owner>akhouderchah@chromium.org</owner>
  <summary>
    Chrome OS network usage metric. Status code reported when an 802.11
    association fails. Note that not all disconnects are caused by an assoc
    failure, and so this metric shold not be correlated with the DisconnectType
    metrics.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.AuthFailureType" enum="WiFiStatusCode">
  <owner>akhouderchah@chromium.org</owner>
  <summary>
    Chrome OS network usage metric. Status code reported when an 802.11
    authentication fails. Note that not all disconnects are caused by an auth
    failure, and so this metric should not be correlated with the DisconnectType
    metrics.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.AutoConnectableServices">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network metric sampling the number of wifi services available for
    auto-connect when auto-connect is initiated for wifi device.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.AvailableBSSesAtConnect">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network metric sampling the number of BSSes (endpoints) available
    for the currently connecting wifi service.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.BSSTransitionManagementSupport"
    enum="WiFiBSSTransitionManagementSupport">
  <owner>matthewmwang@chromium.org</owner>
  <summary>
    Chrome OS network metric recording BSS Transition Management statuses. This
    is recorded every time a BSS Transition Management request is received from
    a wireless access point.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.Channel" enum="NetworkChannelType">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network usage metric. The channel used for each successful WiFi
    connection.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.ClientDisconnectReason"
    enum="WiFiReasonCode">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network usage metric. Reason code reported when the client
    disconnects a WiFi connection.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.ClientDisconnectType" enum="WiFiStatusType">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network usage metric. Broad category of reason client disconnected
    a WiFi connection.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.DarkResumeUnmatchedScanResultsReceived"
    enum="DarkResumeUnmatchedScanResultReceived">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network metric that tracks whether any unmatched scan results are
    received during dark resume cycles. An unmatched scan result is a set of
    scan results received by shill in response to a scan request that was not
    sent directly by shill in the same dark resume cycle.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.DarkResumeWakeReason"
    enum="DarkResumeWakeReason">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network metric that tracks the wake reason for dark resume.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.DevicePresenceStatus" enum="BooleanPresent">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network metric that tracks the presence of a WiFi device in the
    system. A sample is emitted once every 3 minutes.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.DHCPOptionFailureDetected"
    enum="NetworkDHCPOptionFailure">
  <obsolete>
    Deprecated 5/2014, and replaced by Network.Shill.DHCPOptionFailureDetected.
  </obsolete>
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network metric that tracks the number of DHCP option failures
    encountered by Shill. This indicates that Shill is using minimal DHCP
    options due to suspected MTU issues on the return path from the DHCP server
    back to the client.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.Disconnect" enum="NetworkDisconnectType">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network usage metric that tracks whether an 802.11 wireless
    network was disconnected due to an error or was explicitly disconnected by
    the user.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.EapInnerProtocol" enum="EAPInnerProtocol">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network usage metric sampled on each successful 802.1x wireless
    connection that tracks the configured inner authentication method.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.EapOuterProtocol" enum="EAPOuterProtocol">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network usage metric sampled on each successful 802.1x wireless
    connection that tracks the configured outer authentication method.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.ExpiredLeaseLengthSeconds" units="seconds">
  <obsolete>
    Deprecated since Chrome OS build 10010.0.0 and superceded by
    Network.Shill.Wifi.ExpiredLeaseLengthSeconds2 due to change in number of
    buckets (crosreview.com/557297, crosreview.com/703679).
  </obsolete>
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network performance metric that tracks the length of a lease for a
    WiFi network at the time it expired without the DHCP client being able to
    renew it.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.ExpiredLeaseLengthSeconds2" units="seconds">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network performance metric that tracks the length of a lease for a
    WiFi network at the time it expired without the DHCP client being able to
    renew it.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.FallbackDNSTestResult"
    enum="FallbackDNSTestResult">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network performance metric that tracks the result of the fallback
    DNS test. The fallback DNS test is performed when portal detection failed
    due to DNS failure.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.FrequenciesConnectedEver">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS metric sampling the number of different frequencies (i.e.
    channels) on which a device has connected to a WiFi network. This value is
    sampled every time a WiFi connection is established
    (WPASupplicant::kInterfaceStateCompleted). Note that the word
    &quot;Ever&quot; in the metric name is misleading. Chrome OS actually ages
    out historical information, currently after 3 weeks.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.IPv6ConnectivityStatus"
    enum="IPv6ConnectivityStatus">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network metric that tracks the presence of complete IPv6
    configuration at the time when WiFi connection is established.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.LinkMonitorBroadcastErrorsAtFailure">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network performance metric that tracks the number of LinkMonitor
    broadcast errors that were accrued on an 802.11 wireiless network at the
    time that the link was declaired to be failed.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.LinkMonitorFailure"
    enum="LinkMonitorFailureType">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS metric that signals the type of failure the LinkMonitor
    encountered which caused it to stop monitoring an 802.11 wireless network.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.LinkMonitorResponseTimeSample" units="ms">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network performance metric that tracks the number of milliseconds
    between an ARP request and a received reply on an 802.11 wireless network.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.LinkMonitorSecondsToFailure"
    units="seconds">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network performance metric that tracks the number of seconds from
    the start of the LinkMonitor until failure on an 802.11 wireless network.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.LinkMonitorUnicastErrorsAtFailure">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network performance metric that tracks the number of LinkMonitor
    unicast errors that were accrued on an 802.11 wireless network at the time
    that the link was declaired to be failed.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.NetworkConnectionIPType"
    enum="NetworkConnectionIPType">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network metric that tracks the types of IP configuration used for
    establishing WiFi connections.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.NetworkProblemDetected"
    enum="NetworkProblemType">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network performance metric that tracks the network problems
    encountered by TrafficMonitor after WiFi connection is established.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.PhyMode" enum="NetworkPhyModeType">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network usage metric. The channel type used for each successful
    WiFi connection.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.PortalAttempts">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the number of portal detection
    attempts per pass for an 802.11 wireless network. This includes failure,
    timeout and successful attempts.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.PortalAttemptsToOnline">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the total number of portal
    detection attempts performed for an 802.11 wireless network between the
    Connected and Online state. This includes failure, timeout and successful
    attempts.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.PortalResult" enum="NetworkPortalResult">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the result of portal detections
    for an 802.11 wireless network.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.RememberedNetworkCount">
  <owner>pstew@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the number of 802.11 wireless
    networks known by the connection manager at the time a configuration profile
    has been loaded. A configuration profile is loaded at each system startup,
    and when a user logs in.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.RememberedSystemNetworkCount">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network metric sampling the number of 802.11 wireless networks
    configured from the system configuration profile. This metric is sampled
    each time a user configuration profile is loaded, such as when a user logs
    in.

    It might be surprising to have a system configuration profile metric sampled
    when a user configuration profile is loaded. But this ensures that we have
    equal numbers of samples for system and user configuration profiles.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.RememberedUserNetworkCount">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network metric sampling the number of 802.11 wireless networks
    configured from a user configuration profile. This metric is sampled each
    time a user configuration profile is loaded, such as when a user logs in.
  </summary>
</histogram>

<histogram base="true" name="Network.Shill.WiFi.RoamComplete"
    enum="WiFiRoamComplete">
<!-- Name completed by histogram_suffixes name="RoamSecurityType" -->

  <owner>matthewmwang@chromium.org</owner>
  <summary>
    Chrome OS network metric recording roam successes or failures. This is
    recorded every time a client succeeds or fails to roam from one wireless
    access point to another.
  </summary>
</histogram>

<histogram base="true" name="Network.Shill.WiFi.RoamTime" units="ms">
<!-- Name completed by histogram_suffixes name="RoamSecurityType" -->

  <owner>matthewmwang@chromium.org</owner>
  <summary>
    Chrome OS network metric recording roam time in milliseconds. This is
    recorded every time a successful roam from one wireless access point to
    another occurs.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.ScanResult" enum="WiFiScanResult">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network usage metric describing, for a WiFi scan attempt, what
    scan method is used and whether it ends in a connection.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.ScanTimeInEbusy" units="ms">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network usage metric describing, for a WiFi scan attempt, how many
    milliseconds were spent waiting to talk to the kernel/drivers.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.Security" enum="NetworkSecurityType">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network usage metric. The security setting for each successful
    WiFi connection.
  </summary>
</histogram>

<histogram base="true" name="Network.Shill.WiFi.SessionLength" units="ms">
<!-- Name completed by histogram_suffixes name="RoamSecurityType" -->

  <owner>matthewmwang@chromium.org</owner>
  <summary>
    Chrome OS network metric recording session length in milliseconds. This is
    recorded every time an uninterrupted session with a wireless access point is
    terminated.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.SignalAtDisconnect" units="negative dBm">
  <owner>silberst@google.com</owner>
  <summary>
    Chrome OS network metric indicating the negative of the dBm received signal
    strength recorded at the time of a WiFi disconnect.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.SignalStrength" units="negative dBm">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network metric indicating the negative of the dBm received signal
    strength recorded at the time a successful WiFi connection started.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.StoppedTxQueueLength" units="frames">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network metric indicating the maximal length of any stopped
    mac80211 transmit queue. The metric is reported when a queue-status check
    determines that at least one transmit queue is stopped, and has more than a
    threshold number of frames queued.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.StoppedTxQueueReason"
    enum="NetworkQueueStopReason">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network metric indicating the reason that mac80211 transmit queues
    were stopped. The metric is reported when a queue-status check determines
    that at least one queue is stopped, and has more than a threshold number of
    frames queued.

    One measurement is reported per stop reason, per queue-status check. Reasons
    that apply to multiple queues are reported only once per queue-status check.
    Reasons that only apply to queues that have a below-threshold number of
    frames are skipped.

    Note that, because we may report multiple stop reasons for a single
    queue-status check, this histogram is not suitable for determining the
    number of times a queue-status check found that the queues were stopped. To
    determine that number, use the count of
    Network.Shill.WiFi.StoppedTxQueueLength reports.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.SupplicantAttempts" units="attempts"
    expires_after="2019-12-31">
  <owner>briannorris@chromium.org</owner>
  <owner>kirtika@chromium.org</owner>
  <owner>chromeos-kernel-wifi@google.com</owner>
  <summary>
    Number of attempts required for a WiFi device to be established with WPA
    supplicant (shill retries on failure). This metric is reported either on
    success, reporting the number of attempts performed; or after repeated
    failures (currently 6), we give up and report an artificial maximum (10).

    Thus, a value of 10 means we aborted after repeated failures. Values of 1 to
    6 represent successful connections on the first to sixth try. Values of 7 to
    9 (which should not occur) represent successful connections after seven or
    more attempts (success reports are capped at 9).
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.SuspendDurationWoWOffConnected"
    units="seconds">
  <owner>semenzato@chromium.org</owner>
  <owner>kirtika@chromium.org</owner>
  <summary>
    Time spent in suspended state, on a resume, for the case when wake on wifi
    is disabled (WoWOff), and after resume, the NIC is found to be already
    connected.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.SuspendDurationWoWOffDisconnected"
    units="seconds">
  <owner>semenzato@chromium.org</owner>
  <owner>kirtika@chromium.org</owner>
  <summary>
    Time spent in suspended state, on a resume, for the case when wake on wifi
    is enabled (WoWOff), and after resume, the NIC is found to be disconnected.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.SuspendDurationWoWOnConnected"
    units="seconds">
  <owner>semenzato@chromium.org</owner>
  <owner>kirtika@chromium.org</owner>
  <summary>
    Time spent in suspended state, on a resume, for the case when wake on wifi
    is enabled (WoWOn), and after resume, the NIC is found to be already
    connected.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.SuspendDurationWoWOnDisconnected"
    units="seconds">
  <owner>semenzato@chromium.org</owner>
  <owner>kirtika@chromium.org</owner>
  <summary>
    Time spent in suspended state, on a resume, for the case when wake on wifi
    is enabled (WoWOn), and after resume, the NIC is found to be disconnected.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.TimeOnline" units="seconds">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network metric sampling the time spent using WiFi to transport
    data. These data are mostly useful when summed and compared to TimeOnline
    for other network technologies (e.g. WiFi vs Cellular).
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.TimeResumeToReady" units="ms">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time from the resume event
    to the time when an 802.11 wireless network has configured its Layer 3
    state.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.TimeToConfig" units="ms">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to configure Layer 3
    state on an 802.11 wireless network (typically acquire a DHCP lease).
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.TimeToConnect" units="ms">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to connect to a WiFi
    Basic Service Set (which consists of the access point and associated
    stations on a particular WiFi channel for a specific network).
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.TimeToInitialize" units="ms">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to initialize an
    802.11 wireless device.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.TimeToJoin" units="ms">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to join (associate
    plus authenticate) an 802.11 wireless network.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.TimeToOnline" units="ms">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to determine that an
    802.11 wireless network is online after configuring Layer 3 state.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.TimeToPortal" units="ms">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to determine that an
    802.11 wireless network is in a captive portal after configuring Layer 3
    state.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.TimeToScan" units="ms">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to scan WiFi until a
    connection is found.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.TimeToScanAndConnect" units="ms">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time between the beginning
    of a WiFi scan (if the scan includes both a progressive scan and a full
    scan, the TimeToScanAndConnect starts with the first scan of the series) and
    the completion of a successful connection.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.TransmitBitrateMbps" units="Mbps">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network performance metric that tracks the transmit bitrate in
    Mbps for the wifi device when it is connected to a network. The bitrate is
    reported once every minute after the wifi connection is established.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.UnreliableLinkSignalStrength">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network metric sampling the signal strength (0-100) of the wifi
    network when it becomes unreliable (experiencing multiple link failures in a
    short period of time).
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.UserInitiatedConnectionFailureReason"
    enum="ConnectionFailureReason">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network performance metric that tracks the reasons of failed
    user-initiated WiFi connection attempts. The result of the user-initiated
    WiFi connection attempts are being tracked by
    Network.Shill.WiFi.UserInitiatedConnectionResult.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.UserInitiatedConnectionResult"
    enum="ConnectionResult">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network performance metric that tracks the result of
    user-initiated WiFi connection attempts.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.VerifyWakeOnWiFiSettingsResult"
    enum="VerifyWakeOnWiFiSettingsResult">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network diagnostic metric sampling the number of times NIC wake on
    WiFi settings verification succeeds or fails in shill. This metric is
    recorded every time wake on WiFi settings are requested and verified after
    the NIC is programmed with wake on WiFi settings.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.WakeOnWiFiFeaturesEnabledState"
    enum="WakeOnWiFiFeaturesEnabledState">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network usage metric that tracks the wake on WiFi features that
    are enabled in shill. Recorded once every 10 minutes.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.WakeOnWiFiThrottled"
    enum="WakeOnWiFiThrottled">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network metric that tracks whether wake on WiFi was disabled
    during a period of system suspension because of too many dark resume wakes.
    This metric is only recorded for system suspends where wake on WiFi
    functionality has been programmed into the NIC.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.WakeReasonReceivedBeforeOnDarkResume"
    enum="WakeReasonReceivedBeforeOnDarkResume">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network metric that tracks whether a wake reason was received
    during dark resume before executing WakeOnWiFi::OnDarkResume.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.WiFiConnectionStatusAfterWake"
    enum="WiFiConnectionStatusAfterWake">
  <owner>kirtika@chromium.org</owner>
  <summary>
    Chrome OS network usage metric that tracks the WiFi connection status after
    waking from suspend, both when wake on WiFi is enabled and disabled.
    Recorded 1 second after waking from suspend.
  </summary>
</histogram>

<histogram name="Network.Shill.Wimax.DevicePresenceStatus"
    enum="BooleanPresent">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network metric that tracks the presence of a WiMax device in the
    system. A sample is emitted once every 3 minutes.
  </summary>
</histogram>

<histogram name="Network.Shill.Wimax.DHCPOptionFailureDetected"
    enum="NetworkDHCPOptionFailure">
  <obsolete>
    Deprecated 5/2014, and replaced by Network.Shill.DHCPOptionFailureDetected.
  </obsolete>
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network metric that tracks the number of DHCP option failures
    encountered by Shill. This indicates that Shill is using minimal DHCP
    options due to suspected MTU issues on the return path from the DHCP server
    back to the client.
  </summary>
</histogram>

<histogram name="Network.Shill.Wimax.ExpiredLeaseLengthSeconds" units="seconds">
  <obsolete>
    Deprecated since Chrome OS build 10010.0.0 and superceded by
    Network.Shill.Wimax.ExpiredLeaseLengthSeconds2 due to change in number of
    buckets (crosreview.com/557297, crosreview.com/703679).
  </obsolete>
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric that tracks the length of a lease for a
    WiMax network at the time it expired without the DHCP client being able to
    renew it.
  </summary>
</histogram>

<histogram name="Network.Shill.Wimax.ExpiredLeaseLengthSeconds2"
    units="seconds">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric that tracks the length of a lease for a
    WiMax network at the time it expired without the DHCP client being able to
    renew it.
  </summary>
</histogram>

<histogram name="Network.Shill.Wimax.TimeToConfig" units="ms"
    expires_after="2019-12-31">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to configure Layer 3
    state on a WiMax network (typically acquire a DHCP lease).
  </summary>
</histogram>

<histogram name="Network.Shill.Wimax.TimeToInitialize" units="ms"
    expires_after="2019-12-31">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to initialize a WiMax
    device.
  </summary>
</histogram>

<histogram name="Network.Shill.Wimax.TimeToOnline" units="ms"
    expires_after="2019-12-31">
  <owner>benchan@chromium.org</owner>
  <summary>
    Chrome OS network performance metric sampling the time to determine that a
    WiMax network is online after configuring Layer 3 state.
  </summary>
</histogram>

<histogram name="Network.TimeToConfig.Cellular" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome OS network performance metric sampling the time to join a 3G/Cellular
    network and configure Layer 3 state. Note this metric is deprecated; see
    Network.Cellular.TimeToConfig.
  </summary>
</histogram>

<histogram name="Network.TimeToConfig.Ethernet" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome OS network performance metric sampling the time to join a wired
    Ethernet network and configure Layer 3 state (typically acquire a DHCP
    lease). Note this metric is deprecated; see Network.Ethernet.TimeToConfig.
  </summary>
</histogram>

<histogram name="Network.TimeToConfig.Wifi" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome OS network performance metric sampling the time to configure Layer 3
    state on an 802.11 wireless network (typically acquire a DHCP lease). Note
    this metric is deprecated; see Network.Wifi.TimeToConfig.
  </summary>
</histogram>

<histogram name="Network.TimeToDrop" units="seconds">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome OS network stability metric sampling the time in seconds between the
    networking going online to going offline. Offline events due to device
    shutdown or suspend are ignored (along with the online time before that
    offline event).
  </summary>
</histogram>

<histogram name="Network.TimeToJoin.Wifi" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome OS network performance metric sampling the time to join (associate
    plus authenticate) an 802.11 wireless network. Note this metric is
    deprecated; see Network.Wifi.TimeToJoin.
  </summary>
</histogram>

<histogram name="Network.URLLoader.BodyReadFromNetBeforePaused" units="bytes">
  <owner>yzshen@chromium.org</owner>
  <summary>
    How much, in bytes, of the response body has been read from network by a
    URLLoader before it pauses reading, when it receives a
    PauseReadingBodyFromNet() call. If there are multiple calls to
    PauseReadingBodyFromNet(), only a single value is recorded for the last
    call. This histogram is recorded by URLLoader implementations that fetch
    from network. When SafeBrowsing indicates that a resource may be unsafe and
    therefore a more time-consuming check is required to classify it, reading
    response body from network is paused in order to reduce the chance of
    writing unsafe contents into cache. This histogram is useful to evaluate how
    much data is cached during this window.
  </summary>
</histogram>

<histogram name="Network.Wifi.AuthMode" enum="NetworkAuthModeType">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome OS network performance metric sampling the time to configure Layer 3
    state on an 802.11 wireless network (typically acquire a DHCP lease).
  </summary>
</histogram>

<histogram name="Network.Wifi.BitRate" units="bps">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Network metric reporting the download speed test results run at setup time.
    Recorded at least once per day.
  </summary>
</histogram>

<histogram name="Network.Wifi.Channel" enum="NetworkChannelType">
  <owner>cast-analytics@google.com</owner>
  <summary>
    Chrome OS network usage metric. The channel used for each successful WiFi
    connection.
  </summary>
</histogram>

<histogram name="Network.Wifi.PhyMode" enum="NetworkPhyModeType">
  <owner>cast-analytics@google.com</owner>
  <summary>
    Chrome OS network usage metric. The channel type used for each successful
    WiFi connection.
  </summary>
</histogram>

<histogram name="Network.Wifi.RoundTripTime" units="ms">
  <owner>cast-analytics@google.com</owner>
  <summary>
    Network metric reporting the average round trip time to the WiFi gateway.
    Recorded at least once per day.
  </summary>
</histogram>

<histogram name="Network.Wifi.Security" enum="NetworkSecurityType">
  <owner>cast-analytics@google.com</owner>
  <summary>
    Chrome OS network usage metric. The security setting for each successful
    WiFi connection.
  </summary>
</histogram>

<histogram name="Network.Wifi.TimeOnline" units="seconds">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome OS network metric sampling the time spent using WiFi to transport
    data. These data are mostly useful when summed and compared to TimeOnline
    for other network technologies (e.g. WiFi vs Cellular).
  </summary>
</histogram>

<histogram name="Network.Wifi.TimeResumeToReady" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome OS network performance metric sampling the time from the resume event
    to the time when an 802.11 wireless network has configured its Layer 3
    state.
  </summary>
</histogram>

<histogram name="Network.Wifi.TimeToConfig" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome OS network performance metric sampling the time to configure Layer 3
    state on an 802.11 wireless network (typically acquire a DHCP lease).
  </summary>
</histogram>

<histogram name="Network.Wifi.TimeToJoin" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome OS network performance metric sampling the time to join (associate
    plus authenticate) an 802.11 wireless network.
  </summary>
</histogram>

<histogram name="Network.Wifi.TimeToOnline" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome OS network performance metric sampling the time to determine that an
    802.11 wireless network is online after configuring Layer 3 state.
  </summary>
</histogram>

<histogram name="Network.Wifi.TimeToPortal" units="ms">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome OS network performance metric sampling the time to determine that an
    802.11 wireless network is in a captive portal after configuring Layer 3
    state.
  </summary>
</histogram>

<histogram name="Networks.RememberedShared">
  <owner>stevenjb@chromium.org</owner>
  <summary>
    Number of shared remembered (preferred) networks on Chrome OS. Updated any
    time the network list changes.
  </summary>
</histogram>

<histogram name="Networks.RememberedUnshared">
  <owner>stevenjb@chromium.org</owner>
  <summary>
    Number of private remembered (preferred) networks on Chrome OS. Updated any
    time the network list changes.
  </summary>
</histogram>

<histogram name="Networks.Visible">
  <owner>stevenjb@chromium.org</owner>
  <summary>
    Number of visible (in-range) networks on Chrome OS. Updated any time the
    network list changes.
  </summary>
</histogram>

<histogram name="NetworkService.ShutdownTime" units="ms">
  <owner>jam@chromium.org</owner>
  <summary>
    How long the browser waits for the network process to exit at shutdown.
  </summary>
</histogram>

<histogram
    name="NetworkService.URLLoader.RequestInitiatorOriginLockCompatibility"
    enum="RequestInitiatorOriginLockCompatibility" expires_after="2019-06-30">
  <owner>creis@chromium.org</owner>
  <owner>jam@chromium.org</owner>
  <owner>lukasza@chromium.org</owner>
  <summary>
    Whether the request origin (i.e.
    network::ResourceRequest::request_initiator) matches the origin that the
    browser process expected when creating the URLLoaderFactory (i.e. whether it
    matches URLLoaderFactoryParams::request_initiator_site_lock).

    Recorded when a request is started (i.e. at the time of constructing
    network::URLLoader).
  </summary>
</histogram>

<histogram
    name="NetworkService.URLLoaderFactory.OriginHeaderSameAsRequestOrigin"
    enum="BooleanOriginHeaderSameAsRequestOrigin" expires_after="2019-06-30">
  <owner>jam@chromium.org</owner>
  <owner>juncai@chromium.org</owner>
  <owner>mmenke@chromium.org</owner>
  <summary>
    Whether the Origin header is the same as the request origin in the
    URLLoaderFactory when it creates a URLLoader.
  </summary>
</histogram>

<histogram name="NetworkTimeTracker.ClockDivergence.Negative" units="seconds">
  <owner>estark@chromium.org</owner>
  <owner>mab@chromium.org</owner>
  <summary>
    NetworkTimeTracker observes a tick clock and a wall clock to determine
    whether a timestamp retrieved from the network in the past can be used to
    compute a current timestamp. When the tick clock and wall clock diverge from
    each other, the NetworkTimeTracker must discard the network timestamp
    because it has no way to compute a reliable current timestamp. Whenever the
    NetworkTimeTracker discards a network timestamp due to the tick and wall
    clocks diverging, this histogram records the difference of the tick clock's
    delta minus the wall clock's delta since the network timestamp was
    retrieved. For cases where the the tick clock delta is bigger than the wall
    clock delta, see NetworkTimeTracker.ClockDivergence.Positive.
  </summary>
</histogram>

<histogram name="NetworkTimeTracker.ClockDivergence.Positive" units="seconds">
  <owner>estark@chromium.org</owner>
  <owner>mab@chromium.org</owner>
  <summary>
    NetworkTimeTracker observes a tick clock and a wall clock to determine
    whether a timestamp retrieved from the network in the past can be used to
    compute a current timestamp. When the tick clock and wall clock diverge from
    each other, the NetworkTimeTracker must discard the network timestamp
    because it has no way to compute a reliable current timestamp. Whenever the
    NetworkTimeTracker discards a network timestamp due to the tick and wall
    clocks diverging, this histogram records the difference of the tick clock's
    delta minus the wall clock's delta since the network timestamp was
    retrieved. For cases where the the wall clock delta is bigger than the tick
    clock delta, see NetworkTimeTracker.ClockDivergence.Negative.
  </summary>
</histogram>

<histogram name="NetworkTimeTracker.TimeBetweenFetches" units="ms">
  <owner>estark@chromium.org</owner>
  <owner>mab@chromium.org</owner>
  <summary>
    NetworkTimeTracker makes periodic queries to obtain a secure timestamp over
    the network. This histogram records the delta between each secure timestamp
    and the previous one, to measure how often time queries are made. The first
    time query is not recorded, because there is no previous query from which to
    compute a delta.
  </summary>
</histogram>

<histogram name="NetworkTimeTracker.TimeQueryLatency" units="ms">
  <owner>estark@chromium.org</owner>
  <owner>mab@chromium.org</owner>
  <summary>
    NetworkTimeTracker makes periodic queries to obtain a secure timestamp over
    the network. This histogram records the latency of each time query.
  </summary>
</histogram>

<histogram name="NetworkTimeTracker.UpdateTimeFetchAttempted">
  <obsolete>
    Deprecated 08/2016 because it does not provide additional information beyond
    NetworkTimeTracker.UpdateTimeFetchFailed and
    NetworkTimeTracker.UpdateTimeFetchValid.
  </obsolete>
  <owner>estark@chromium.org</owner>
  <owner>mab@chromium.org</owner>
  <summary>
    NetworkTimeTracker makes periodic queries to obtain a secure timestamp over
    the network. This histogram increments whenever such a query is attempted.
  </summary>
</histogram>

<histogram name="NetworkTimeTracker.UpdateTimeFetchFailed" enum="NetErrorCodes">
  <owner>estark@chromium.org</owner>
  <owner>mab@chromium.org</owner>
  <summary>
    NetworkTimeTracker makes periodic queries to obtain a secure timestamp over
    the network. This histogram records the request's net error code whenever a
    secure timestamp fetch results in a network error or a non-200 HTTP status
    code.
  </summary>
</histogram>

<histogram name="NetworkTimeTracker.UpdateTimeFetchValid" enum="BooleanValid">
  <owner>estark@chromium.org</owner>
  <owner>mab@chromium.org</owner>
  <summary>
    NetworkTimeTracker makes periodic queries to obtain a secure timestamp over
    the network. Whenever one of these requests results in a successful 200
    status code, this histogram records true if the response parsed and
    validated successfully, and false otherwise.
  </summary>
</histogram>

<histogram name="NetworkTimeTracker.WallClockRanBackwards" units="seconds">
  <owner>estark@chromium.org</owner>
  <owner>mab@chromium.org</owner>
  <summary>
    NetworkTimeTracker observes a tick clock and a wall clock to determine
    whether a timestamp retrieved from the network in the past can be used to
    compute a current timestamp. When the NetworkTimeTracker observes that the
    wall clock ran backwards, the NetworkTimeTracker must discard the network
    timestamp because it has no way to compute a reliable current timestamp.
    Whenever the NetworkTimeTracker discards a network timestamp due to the wall
    clock running backwards, this histogram records the magnitude of the
    difference of the current wall clock time minus the wall clock time when the
    network timestamp was retrieved.
  </summary>
</histogram>

<histogram name="NewTabPage.ActionAndroid" enum="NewTabPageActionAndroid">
  <obsolete>
    Deprecated as of 01/2017. Replaced by NewTabPage.ActionAndroid2.
  </obsolete>
  <owner>newt@chromium.org</owner>
  <summary>
    Actions taken by users from the new tab page on Android. These actions may
    navigate away from the NTP (e.g. searching in the omnibox or opening a
    bookmark), but can also happen without navigating away from the NTP (e.g.
    opening a bookmark in a new tab).
  </summary>
</histogram>

<histogram name="NewTabPage.ActionAndroid2" enum="NewTabPageActionAndroid2">
  <owner>finkm@chromium.org</owner>
  <summary>
    Actions taken from the new tab page on Android. These actions may navigate
    away from the NTP (e.g. searching in the omnibox or opening a bookmark), but
    can also happen without navigating away from the NTP (e.g. opening a content
    suggestion in a new tab).
  </summary>
</histogram>

<histogram name="NewTabPage.ActioniOS" enum="NewTabPageActioniOS">
  <owner>justincohen@chromium.org</owner>
  <summary>
    Actions taken by users from the new tab page on iOS. These actions may
    navigate away from the NTP (e.g. searching in the omnibox or opening a
    bookmark), but can also happen without navigating away from the NTP (e.g.
    opening a bookmark in a new tab).
  </summary>
</histogram>

<histogram name="NewTabPage.AnimatedLogoDownloadTime" units="ms">
  <owner>treib@chromium.org</owner>
  <summary>
    The amount of time it takes to download the animated logo. Android only.
  </summary>
</histogram>

<histogram name="NewTabPage.AppsPageDragSource" enum="AppsPageDragSource"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Histogram for the source of app page drags. For any succesful drop onto an
    apps pane of the NTP, this logs where the drag originated.
  </summary>
</histogram>

<histogram name="NewTabPage.BackgroundService.Albums.RequestLatency" units="ms">
  <obsolete>
    Deprecated 02/2019 with the removal of the associated service integration.
  </obsolete>
  <owner>ramyan@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <summary>
    The time it took until a request from the New Tab Page for Google Photos
    albums was served.
  </summary>
</histogram>

<histogram name="NewTabPage.BackgroundService.Collections.RequestLatency"
    units="ms" expires_after="M90">
  <owner>ramyan@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <summary>
    The time it took until a request from the New Tab Page for Backdrop
    Collections was served.
  </summary>
</histogram>

<histogram name="NewTabPage.BackgroundService.Images.RequestLatency" units="ms"
    expires_after="M90">
  <owner>ramyan@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <summary>
    The time it took until a request from the New Tab Page for Backdrop Images
    was served.
  </summary>
</histogram>

<histogram name="NewTabPage.BackgroundService.Photos.RequestLatency" units="ms">
  <obsolete>
    Deprecated 02/2019 with the removal of the associated service integration.
  </obsolete>
  <owner>ramyan@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <summary>
    The time it took until a request from the New Tab Page for Google Photos (in
    a specific album) was served.
  </summary>
</histogram>

<histogram name="NewTabPage.BookmarkActionAndroid"
    enum="NewTabPageBookmarkActionAndroid">
  <obsolete>
    Deprecated on M33 with the change to native NTP.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Actions taken by users on partner bookmarks (editing / renaming) on the NTP
    on Android.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.ArticleFaviconFetchResult"
    enum="FaviconFetchResult">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Android: Result of fetching a favicon for an article suggestion on the New
    Tab Page.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.ArticleFaviconFetchTime"
    units="ms">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Android: Time it takes to fetch a favicon for an article suggestion on the
    New Tab Page.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.ArticlesListVisible"
    enum="BooleanVisible">
  <owner>huayinz@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Android: Whether article suggestions on New Tab Page are set visible by user
    on startup and when the visibility is changed.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.BackgroundFetchTrigger"
    enum="BackgroundFetchTrigger">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Android: The type of trigger that caused a background fetch of NTP content
    suggestions from a suggestion server. Every background fetch is recorded.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.BreakingNews.MessageReceived"
    enum="ContentSuggestionsBreakingNewsMessageContainsNews">
  <obsolete>
    Deprecated in October 2017 (M64) and replaced by
    NewTabPage.ContentSuggestions.BreakingNews.ReceivedMessageAction, when
    adding support for push-to-refresh messages.
  </obsolete>
  <owner>vitaliii@chromium.org</owner>
  <summary>
    Android: Number of received messages and whether they contain pushed news. A
    message contains pushed news if the payload key exists in the message. The
    payload content is not checked at all (e.g. it may be empty). Recorded when
    a message is received.
  </summary>
</histogram>

<histogram
    name="NewTabPage.ContentSuggestions.BreakingNews.ReceivedMessageAction"
    enum="ContentSuggestionsBreakingNewsMessageAction">
  <owner>mamir@chromium.org</owner>
  <summary>
    Android: Action of a received message. An action can be either push-by-value
    or push-to-refresh. A message with a missing or invalid action is recorded
    as well. Recorded when a message is received.
  </summary>
</histogram>

<histogram
    name="NewTabPage.ContentSuggestions.BreakingNews.SubscriptionRequestStatus"
    enum="ContentSuggestionsStatusCode">
  <owner>vitaliii@chromium.org</owner>
  <summary>
    Android: The result of a subscription request for breaking news at the
    content suggestions server. Recorded when a request finishes. Analogous to
    NewTabPage.ContentSuggestions.BreakingNews.UnsubscriptionRequestStatus.
  </summary>
</histogram>

<histogram
    name="NewTabPage.ContentSuggestions.BreakingNews.TimeSinceLastTokenValidation"
    units="ms">
  <owner>vitaliii@chromium.org</owner>
  <summary>
    Android: Time between a token validation and the last successful token
    retrieval from InstanceID. Recorded when InstanceID answers our token
    request for a validation either with a token or an error. If the token was
    never received before the validation, the metric is not recorded.
  </summary>
</histogram>

<histogram
    name="NewTabPage.ContentSuggestions.BreakingNews.TokenRetrievalResult"
    enum="InstanceIDResult">
  <owner>vitaliii@chromium.org</owner>
  <summary>
    Android: The result of our inquiry to InstanceID to receive the current
    token. Recorded when InstanceID replies to our inquiry for a token
    (including for a validation).
  </summary>
</histogram>

<histogram
    name="NewTabPage.ContentSuggestions.BreakingNews.UnsubscriptionRequestStatus"
    enum="ContentSuggestionsStatusCode">
  <owner>vitaliii@chromium.org</owner>
  <summary>
    Android: The result of an unsubscription request for breaking news at the
    content suggestions server. Recorded when a request finishes. Analogous to
    NewTabPage.ContentSuggestions.BreakingNews.SubscriptionRequestStatus.
  </summary>
</histogram>

<histogram
    name="NewTabPage.ContentSuggestions.BreakingNews.WasTokenValidBeforeValidation"
    enum="ContentSuggestionsBreakingNewsTokenValidationOutcome">
  <owner>vitaliii@chromium.org</owner>
  <summary>
    Android: Whether a token validation detected an invalid token. This is
    recorded only for validations where no error occured and the token was
    actually retrieved.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.CategoryDismissed"
    enum="ContentSuggestionsCategory">
  <owner>treib@chromium.org</owner>
  <summary>
    Android: A category of content suggestions that was dismissed (by swiping
    away its empty state card).
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.CountOnNtpOpened">
  <obsolete>
    Deprecated in July 2017. This metric was replaced by
    CountOnNtpOpenedIfVisible. Initially the metric was not recorded properly if
    any category was not visible. This was fixed in
    https://codereview.chromium.org/2874213002/, however, not visible categories
    still were polluting the metric (they were recorded as showing 0
    suggestions).
  </obsolete>
  <owner>treib@chromium.org</owner>
  <summary>
    Android: The number of suggestion cards that were available at the time an
    NTP was opened.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.CountOnNtpOpenedIfVisible">
  <owner>vitaliii@chromium.org</owner>
  <summary>
    Android: The number of suggestion cards that were available at the time an
    NTP was opened. Only visible categories (i.e. which can be seen by the user
    on this NTP) are recorded, including empty ones.
  </summary>
</histogram>

<histogram
    name="NewTabPage.ContentSuggestions.CountOnNtpOpenedIfVisible.Articles.Prefetched.Offline">
  <obsolete>
    Deprecated in October 2017 (M63) and replaced by
    CountOnNtpOpenedIfVisible.Articles.Prefetched.Offline2, because
    underreported. UI checked whether a URL is prefetched asynchronously. As a
    result, there was a race condition and this metric could be reported before
    all URLs are checked.
  </obsolete>
  <owner>vitaliii@chromium.org</owner>
  <summary>
    Android: The number of prefetched suggestion cards that were available in
    Articles category if it was visible at the time an NTP was opened and the
    user was offline. Analogous to
    NewTabPage.ContentSuggestions.CountOnNtpOpenedIfVisible.
  </summary>
</histogram>

<histogram
    name="NewTabPage.ContentSuggestions.CountOnNtpOpenedIfVisible.Articles.Prefetched.Offline2"
    units="suggestions">
  <owner>vitaliii@chromium.org</owner>
  <summary>
    Android: The number of prefetched suggestion cards that were available in
    Articles category if it was visible at the time an NTP was opened and the
    user was offline. Analogous to
    NewTabPage.ContentSuggestions.CountOnNtpOpenedIfVisible, except that this
    metric is reported after all URL prefetched asynchronous checks finish.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.DismissedUnvisited"
    units="index">
  <owner>treib@chromium.org</owner>
  <summary>
    Android: The position of a suggestion card on the NTP that is dismissed,
    typically by swiping it away. The suggestion had a URL that was NOT visited
    before. We track the position the card had in the list when it was first
    seen by the user. This tracked position can be different from the position
    observed by the user, e.g. when the user dismissed some suggestions from the
    list or requested more that got inserted in the middle of the feed.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.DismissedVisited" units="index">
  <owner>treib@chromium.org</owner>
  <summary>
    Android: The position of a suggestion card on the NTP that is dismissed,
    typically by swiping it away. The suggestion had a URL that was visited
    before. We track the position the card had in the list when it was first
    seen by the user. This tracked position can be different from the position
    observed by the user, e.g. when the user dismissed some suggestions from the
    list or requested more that got inserted in the middle of the feed.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.MenuOpened" units="index">
  <owner>treib@chromium.org</owner>
  <summary>
    Android: The position of a suggestion card whose long-press menu was opened,
    analogous to NewTabPage.ContentSuggestions.Opened.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.MenuOpenedAge" units="ms">
  <owner>treib@chromium.org</owner>
  <summary>
    Android: The age of a suggestion card on the NTP whose long-press menu was
    opened, analogous to NewTabPage.ContentSuggestions.OpenedAge.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.MenuOpenedScore" units="score">
  <obsolete>
    Replaced by NewTabPage.ContentSuggestions.MenuOpenedScoreNormalized.
  </obsolete>
  <owner>treib@chromium.org</owner>
  <summary>
    Android: The relevance score of a suggestion card on the NTP whose
    long-press menu was opened, analogous to
    NewTabPage.ContentSuggestions.OpenedScore.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.MenuOpenedScoreNormalized"
    enum="NormalizedScore">
  <owner>tschumann@chromium.org</owner>
  <summary>
    Android: The relevance score of a suggestion card on the NTP whose
    long-press menu was opened, analogous to
    NewTabPage.ContentSuggestions.OpenedScoreNormalized. Scores (which are
    typically floats within (0,1]) get reported as discrete integers within
    [1,10]. For instance, the discrete value 1 represents score values from
    (0.0, 0.1]. The discrete value 11 is the overflow bucket for unexpectedly
    high scores.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.MoreButtonClicked" units="index">
  <owner>treib@chromium.org</owner>
  <summary>
    Android: The position of a &quot;More&quot; suggestion card that was clicked
    on the NTP. A card is considered shown when at least 2/3 of its height is
    visible on the screen. We track the position the card had in the list when
    it was first seen by the user. This tracked position can be different from
    the position observed by the user, e.g. when the user dismissed some
    suggestions from the list or requested more that got inserted in the middle
    of the feed.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.MoreButtonShown" units="index">
  <owner>treib@chromium.org</owner>
  <summary>
    Android: The position of a &quot;More&quot; suggestion card that was shown
    on the NTP. A card is considered shown when at least 2/3 of its height is
    visible on the screen. For each card, at most one impression is recorded per
    NTP instance. We track the position the card had in the list when it was
    first seen by the user. This tracked position can be different from the
    position observed by the user, e.g. when the user dismissed some suggestions
    from the list or requested more that got inserted in the middle of the feed.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.MovedUpCategoryNewIndex"
    units="index">
  <owner>vitaliii@chromium.org</owner>
  <summary>
    Android: The new index of a category on the NTP after it has been moved up
    due to a click. The index of a category, which has been overtaken, is not
    recorded here. This tracked index can be different from the position
    observed by the user, e.g. empty categories are not shown. This metric
    ignores all other order changes (e.g. dismissing a category or clearing
    history).
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.Notifications.Actions"
    enum="ContentSuggestionsNotificationsAction">
  <owner>zea@chromium.org</owner>
  <summary>
    Android: The number of actions taken on displayed notifications, either
    user-initiated (tapping to open or swiping to dismiss), or automatic (hiding
    due to a change in circumstances).
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.Notifications.AutoOptOuts"
    enum="ContentSuggestionsNotificationsOptOut">
  <owner>zea@chromium.org</owner>
  <summary>
    Android: The number of times a user opted out, keyed by method: IMPLICIT
    (user ignored enough notifications consecutively that we think they're not
    interested), or EXPLICIT (via explicit setting).
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.Notifications.Impressions"
    enum="ContentSuggestionsNotificationsImpression">
  <owner>zea@chromium.org</owner>
  <summary>
    Android: The number of notifications that were shown, keyed by category. One
    bucket counts the server-provided ARTICLES category; the other counts
    everything else.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.OpenDisposition"
    enum="WindowOpenDisposition">
  <owner>treib@chromium.org</owner>
  <summary>
    Android: How an article linked from a suggestion card on the NTP was opened
    (e.g. plain click, open in new tab, open in incognito).
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.Opened" units="index">
  <owner>treib@chromium.org</owner>
  <summary>
    Android: The position of the suggestion card on the NTP, that is clicked
    through to the host website of the content. We track the position the card
    had in the list when it was first seen by the user. This tracked position
    can be different from the position observed by the user, e.g. when the user
    dismissed some suggestions from the list or requested more that got inserted
    in the middle of the feed.
  </summary>
</histogram>

<histogram
    name="NewTabPage.ContentSuggestions.Opened.Articles.Prefetched.Offline"
    units="index">
  <owner>vitaliii@chromium.org</owner>
  <summary>
    Android: The position of the prefetched suggestion card on the NTP, that is
    clicked through to the host website of the content, when the user is
    offline. Analogous to NewTabPage.ContentSuggestions.Opened. That is we track
    the position the card had in the list when it was first seen by the user.
    This tracked position can be different from the position observed by the
    user, e.g. when the user dismissed some suggestions from the list or
    requested more that got inserted in the middle of the feed.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.OpenedAge" units="ms">
  <owner>treib@chromium.org</owner>
  <summary>
    Android: The age of a suggestion card on the NTP that is clicked through to
    the host website of the content. The age is measured from the moment the
    content has been published.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.OpenedCategoryIndex"
    units="index">
  <owner>vitaliii@chromium.org</owner>
  <summary>
    Android: The index of a category on the NTP, whose suggestion card is
    clicked through to the host website of the content. This tracked index can
    be different from the position observed by the user, e.g. for the user a
    category may be at the top of the NTP, but with index 1, because they
    dismissed the one that was previously at the top.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.OpenedScore" units="score">
  <obsolete>
    Replaced by NewTabPage.ContentSuggestions.OpenedScoreNormalized.
  </obsolete>
  <owner>treib@chromium.org</owner>
  <summary>
    Android: The score of a suggestion card on the NTP that is clicked through
    to the host website of the content. The recorded score is from the moment
    the suggestion was fetched, it could have changed since.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.OpenedScoreNormalized"
    enum="NormalizedScore">
  <owner>tschumann@chromium.org</owner>
  <summary>
    Android: The score of a suggestion card on the NTP that is clicked through
    to the host website of the content. The recorded score is from the moment
    the suggestion was fetched, it could have changed since. Scores (which are
    typically floats within (0,1]) get reported as discrete integers within
    [1,10]. For instance, the discrete value 1 represents score values from
    (0.0, 0.1]. The discrete value 11 is the overflow bucket for unexpectedly
    high scores.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.Preferences.RemoteSuggestions"
    enum="BooleanEnabled">
  <owner>fgorski@chromium.org</owner>
  <owner>finkm@chromium.org</owner>
  <owner>google-on-content-chrome@google.com</owner>
  <summary>
    Whether content suggestions from the remote service are enabled. It is
    recored at startup. Note: This histogram is not specific to the New Tab
    Page.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.SectionCountOnNtpOpened"
    units="sections">
  <owner>vitaliii@chromium.org</owner>
  <summary>
    Android: The number of suggestion sections that were shown at the time an
    NTP was opened. All shown sections (including empty ones) are counted.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.Shown" units="index">
  <owner>treib@chromium.org</owner>
  <summary>
    Android: The position of a suggestion card that was shown on the NTP. A card
    is considered shown when at least 2/3 of its height is visible on the
    screen. For each card, at most one impression is recorded per NTP instance.
    We track the position the card had in the list when it was first seen by the
    user. This tracked position can be different from the position observed by
    the user, e.g. when the user dismissed some suggestions from the list or
    requested more that got inserted in the middle of the feed.
  </summary>
</histogram>

<histogram
    name="NewTabPage.ContentSuggestions.Shown.Articles.Prefetched.Offline"
    units="index">
  <obsolete>
    Deprecated in October 2017 (M63) and replaced by
    Shown.Articles.Prefetched.Offline2, because underreported. UI checked
    whether a URL is prefetched asynchronously. As a result, there was a race
    condition and for suggestions immediately visible on the suggestions surface
    this metric could be reported before their URLs are actually checked.
  </obsolete>
  <owner>vitaliii@chromium.org</owner>
  <summary>
    Android: The position of a prefetched suggestion card that was shown on the
    NTP when offline. Analogous to NewTabPage.ContentSuggestions.Shown. That is
    a card is considered shown when at least 2/3 of its height is visible on the
    screen. For each card, at most one impression is recorded per NTP instance.
    We track the position the card had in the list when it was first seen by the
    user. This tracked position can be different from the position observed by
    the user, e.g. when the user dismissed some suggestions from the list or
    requested more that got inserted in the middle of the feed.
  </summary>
</histogram>

<histogram
    name="NewTabPage.ContentSuggestions.Shown.Articles.Prefetched.Offline2"
    units="index">
  <owner>vitaliii@chromium.org</owner>
  <summary>
    Android: The position of a prefetched suggestion card that was shown on the
    NTP when offline. Analogous to NewTabPage.ContentSuggestions.Shown. That is
    a card is considered shown when at least 2/3 of its height is visible on the
    screen. For each card, at most one impression is recorded per NTP instance.
    We track the position the card had in the list when it was first seen by the
    user. This tracked position can be different from the position observed by
    the user, e.g. when the user dismissed some suggestions from the list or
    requested more that got inserted in the middle of the feed. This metric is
    reported not immediately after the impression, but once the request to
    Offline Page model to check the URL finishes.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.ShownAge" units="ms">
  <owner>treib@chromium.org</owner>
  <summary>
    Android: The age of a suggestion card that was shown on the NTP. A card is
    considered shown when at least 2/3 of its height is visible on the screen.
    For each card, at most one impression is recorded per NTP instance.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.ShownScore" units="score">
  <obsolete>
    Replaced by NewTabPage.ContentSuggestions.ShownScoreNormalized.
  </obsolete>
  <owner>treib@chromium.org</owner>
  <summary>
    Android: The score of a suggestion card that was shown on the NTP. A card is
    considered shown when at least 2/3 of its height is visible on the screen.
    For each card, at most one impression is recorded per NTP instance.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.ShownScoreNormalized"
    enum="NormalizedScore">
  <owner>tschumann@chromium.org</owner>
  <summary>
    Android: The score of a suggestion card that was shown on the NTP. A card is
    considered shown when at least 2/3 of its height is visible on the screen.
    For each card, at most one impression is recorded per NTP instance. Scores
    (which are typically floats within (0,1]) get reported as discrete integers
    within [1,10]. For instance, the discrete value 1 represents score values
    from (0.0, 0.1]. The discrete value 11 is the overflow bucket for
    unexpectedly high scores.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.TimeSinceLastBackgroundFetch"
    units="ms">
  <obsolete>
    Replaced by NewTabPage.ContentSuggestions.TimeSinceSuggestionFetched.
  </obsolete>
  <owner>markusheintz@chromium.org</owner>
  <summary>
    Android: The time since the last successful background fetch of remote
    content suggestions. Recorded when the user looks at content suggestions on
    the NTP.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.TimeSinceSuggestionFetched"
    units="ms">
  <owner>markusheintz@chromium.org</owner>
  <summary>
    Android: The time since the displayed content suggestions was fetched.
    Recorded when the user looks at content suggestions on the NTP. The metric
    is only recorded for suggestions of the Articles for you section.
  </summary>
</histogram>

<histogram base="true"
    name="NewTabPage.ContentSuggestions.TimeUntilFirstShownTrigger" units="ms">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Android: The time since the last fetch, recorded upon the first on-shown
    fetch trigger. The first on-shown trigger does not necessarily cause a fetch
    (if it comes before the end of the respective scheduling interval). This
    metric is recorded at most once after each fetch (and additionaly at most
    once after each startup of Chrome before the next fetch). This is used to
    understand how changing scheduling intervals will impact traffic of
    background fetches.
  </summary>
</histogram>

<histogram base="true"
    name="NewTabPage.ContentSuggestions.TimeUntilFirstSoftTrigger" units="ms">
  <obsolete>
    Deprecated as of July 2017, in favor of
    NewTabPage.ContentSuggestions.TimeUntilFirstShownTrigger and
    NewTabPage.ContentSuggestions.TimeUntilFirstStartupTrigger.
  </obsolete>
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Android: The time since the last fetch, recorded upon the first soft fetch
    trigger. The first soft trigger does not necessarily cause a fetch (if it
    comes before the end of the respective scheduling interval). This metric is
    recorded at most once after each fetch (and additionaly at most once after
    each startup of Chrome before the next fetch). This is used to understand
    how changing scheduling intervals will impact traffic of background fetches.
  </summary>
</histogram>

<histogram base="true"
    name="NewTabPage.ContentSuggestions.TimeUntilFirstStartupTrigger"
    units="ms">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Android: The time since the last fetch, recorded upon the first startup
    fetch trigger. The first startup trigger does not necessarily cause a fetch
    (if it comes before the end of the respective scheduling interval). This
    metric is recorded at most once after each fetch (and additionaly at most
    once after each startup of Chrome before the next fetch). This is used to
    understand how changing scheduling intervals will impact traffic of
    background fetches.
  </summary>
</histogram>

<histogram base="true"
    name="NewTabPage.ContentSuggestions.TimeUntilPersistentFetch" units="ms">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Android: The time since the last fetch, recorded upon a persistent fetch.
    This is used to understand what are the real persistent fetching intervals
    in the wild.
  </summary>
</histogram>

<histogram base="true" name="NewTabPage.ContentSuggestions.TimeUntilSoftFetch"
    units="ms">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Android: The time since the last fetch, recorded upon a soft fetch. This is
    used to understand what are the real soft fetching intervals in the wild.
  </summary>
</histogram>

<histogram base="true"
    name="NewTabPage.ContentSuggestions.TimeUntilStartupFetch" units="ms">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Android: The time since the last fetch, recorded upon a startup fetch. This
    is used to understand what are the real soft fetching intervals in the wild.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.UIUpdateResult"
    enum="ContentSuggestionsUIUpdateResult">
  <obsolete>
    Replaced by NewTabPage.ContentSuggestions.UIUpdateResult2 in January 2017.
  </obsolete>
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Android: The result of updating the list of content suggestions in the UI.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.UIUpdateResult2"
    enum="ContentSuggestionsUIUpdateResult2">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Android: The result of updating the list of content suggestions in one UI
    section.
  </summary>
</histogram>

<histogram
    name="NewTabPage.ContentSuggestions.UIUpdateSuccessNumberOfSuggestionsSeen"
    units="suggestions">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Android: The number of content suggestions that have been seen by the user
    in the UI section before the section was successfully updated. The seen
    suggestions were not removed in the update so that we do not change visible
    parts of the UI. This histogram is only recorded when the UIUpdateResult2 is
    &quot;Success (some suggestions replaced)&quot;.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.UsageTimeLocal">
  <owner>markusheintz@chromium.org</owner>
  <summary>
    Android: The time of day (in the local timezone) when the user used content
    suggestions. Recorded for example when the user scrolls to the articles
    suggestions or opens an article suggestions.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.VisitDuration" units="ms">
  <owner>treib@chromium.org</owner>
  <summary>
    Android: Time spent reading the page linked by an opened suggestion card.
    Exit conditions include the tab not being in the foreground or starting a
    new navigation.
  </summary>
</histogram>

<histogram name="NewTabPage.CustomizationAvailability.Backgrounds"
    enum="NTPBackgroundCustomizationAvailability" expires_after="M90">
  <owner>ramyan@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <summary>
    The availability of New Tab Page background customization features on
    Desktop, based on feature flags or other configuration settings; logged per
    NTP load.
  </summary>
</histogram>

<histogram name="NewTabPage.CustomizationAvailability.Shortcuts"
    enum="NTPShortcutCustomizationAvailability" expires_after="M90">
  <owner>ramyan@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <summary>
    The availability of New Tab Page shortcut customization features on Desktop,
    based on feature flags or other configuration settings; logged per NTP load.
  </summary>
</histogram>

<histogram name="NewTabPage.CustomizeAction" enum="NTPCustomizeAction"
    expires_after="M90">
  <owner>ramyan@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <summary>
    Customization actions performed by the user on the New Tab Page; logged as
    each interaction occurs. This may indicate popularity of a particular
    customization type.
  </summary>
</histogram>

<histogram name="NewTabPage.CustomizeChromeBackgroundAction"
    enum="NTPCustomizeChromeBackgroundAction" expires_after="M90">
  <owner>ramyan@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <summary>
    Captures the actions performed when configuring a 'Chrome background' image
    on the New Tab Page. Since most actions are sequential, this may indicate
    steps in the configuration process where users drop off.
  </summary>
</histogram>

<histogram name="NewTabPage.Customized" enum="NTPCustomizedFeatures"
    expires_after="M90">
  <owner>ramyan@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <summary>
    The New Tab Page features that have been customized by the user; logged per
    NTP load.
  </summary>
</histogram>

<histogram name="NewTabPage.CustomizeLocalImageBackgroundAction"
    enum="NTPCustomizeLocalImageBackgroundAction" expires_after="M90">
  <owner>ramyan@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <summary>
    Captures the actions performed when uploading a local image as the
    background on the New Tab Page. Since most actions are sequential, this may
    indicate steps in the configuration process where users drop off.
  </summary>
</histogram>

<histogram name="NewTabPage.CustomizeShortcutAction"
    enum="NTPCustomizeShortcutAction" expires_after="M90">
  <owner>ramyan@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <summary>
    Captures the actions performed when configuring shortcuts on the New Tab
    Page.
  </summary>
</histogram>

<histogram name="NewTabPage.DefaultPageType" enum="NtpPaneType">
  <obsolete>
    Deprecated 2016-02.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The default pane when the NTP is first opened.</summary>
</histogram>

<histogram name="NewTabPage.Feed.ImageFetchResult" enum="FeedImageFetchResult">
  <obsolete>
    Deprecated in favor of ContentSuggestions.Feed.Image.FetchResult.
  </obsolete>
  <owner>wylieb@chromium.org</owner>
  <summary>
    Android: Represents success/failure of Feed image loading. Recorded upon
    each individual image retrieved from the feed_image_cache.
  </summary>
</histogram>

<histogram name="NewTabPage.Feed.ImageLoadFromCacheTime" units="ms">
  <obsolete>
    Deprecated in favor of ContentSuggestions.Feed.Image.LoadFromCacheTime.
  </obsolete>
  <owner>wylieb@chromium.org</owner>
  <summary>
    Android: The time it takes for Feed to load an image from the cache.
  </summary>
</histogram>

<histogram name="NewTabPage.Feed.ImageLoadFromNetworkTime" units="ms">
  <obsolete>
    Deprecated in favor of ContentSuggestions.Feed.Image.LoadFromNetworkTime.
  </obsolete>
  <owner>wylieb@chromium.org</owner>
  <summary>
    Android: The time it takes for Feed to load an image from the network.
  </summary>
</histogram>

<histogram name="NewTabPage.HoverTimeClicked">
  <obsolete>
    Deprecated 2016-02 (and not recorded for some time before that).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Histogram of the time, in milliseconds, users have the cursor over a most
    visited thumbnail before clicking.
  </summary>
</histogram>

<histogram name="NewTabPage.HoverTimeNotClicked">
  <obsolete>
    Deprecated 2016-02 (and not recorded for some time before that).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Histogram of the time, in milliseconds, users have the cursor over a most
    visited thumbnail before moving it away from the thumbnail without clicking.
  </summary>
</histogram>

<histogram name="NewTabPage.IconsColor">
  <obsolete>
    Deprecated 2017-04, replaced by NewTabPage.TileType and
    NewTabPage.SuggestionsImpression.IconsColor.
  </obsolete>
  <owner>newt@chromium.org</owner>
  <summary>
    The number of most visited tiles on the new tab page that are displayed
    using a fallback color (as opposed to having an icon, or simply being gray).
    Android only.
  </summary>
</histogram>

<histogram name="NewTabPage.IconsGray">
  <obsolete>
    Deprecated 2017-04, replaced by NewTabPage.TileType and
    NewTabPage.SuggestionsImpression.IconsGray.
  </obsolete>
  <owner>newt@chromium.org</owner>
  <summary>
    The number of most visited tiles on the new tab page that are displayed as
    gray (as opposed to having an icon, or a fallback color). Android only.
  </summary>
</histogram>

<histogram name="NewTabPage.IconsReal">
  <obsolete>
    Deprecated 2017-04, replaced by NewTabPage.TileType and
    NewTabPage.SuggestionsImpression.IconsReal.
  </obsolete>
  <owner>newt@chromium.org</owner>
  <summary>
    The number of most visited tiles on the new tab page that are displayed with
    the site's icon (as opposed using a fallback color or just gray). Android
    only.
  </summary>
</histogram>

<histogram name="NewTabPage.Interests.ImageDownloadSuccess"
    enum="BooleanSuccess">
  <obsolete>
    Deprecated 2017-05 (and not recorded for some time before that).
  </obsolete>
  <owner>knn@chromium.org</owner>
  <summary>
    Android: Whether an attempt to download the image for an interest was
    successful.
  </summary>
</histogram>

<histogram name="NewTabPage.Interests.InterestsFetchSuccess"
    enum="BooleanSuccess">
  <obsolete>
    Deprecated 2017-05 (and not recorded for some time before that).
  </obsolete>
  <owner>knn@chromium.org</owner>
  <summary>
    Android: Whether an attempt to fetch the interests for a user was
    successful.
  </summary>
</histogram>

<histogram name="NewTabPage.Interests.NumInterests" units="interests">
  <obsolete>
    Deprecated 2017-05 (and not recorded for some time before that).
  </obsolete>
  <owner>knn@chromium.org</owner>
  <summary>
    Android: The number of interests fetched for a user to display on the NTP.
  </summary>
</histogram>

<histogram name="NewTabPage.Languages.UILanguageRatioInTwoTopLanguages"
    units="%">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Android: Percentage of how much in browsing is the UI language of Chrome
    used compared to overall use of the two top languages that are reported to
    Chrome content suggestion server.
  </summary>
</histogram>

<histogram name="NewTabPage.Layout" enum="NTPLayout">
  <obsolete>
    Deprecated 2018-04 with full launch of NTP condensed layout.
  </obsolete>
  <owner>peconn@chromium.org</owner>
  <summary>
    Android: A histogram detailing how the NewTabPageLayout is laid out on the
    device (eg, whether it fits fully above the fold or not). This is logged
    once per NewTabPageLayout creation (so once per NTP).
  </summary>
</histogram>

<histogram name="NewTabPage.LoadTime" units="ms" expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->

  <owner>treib@chromium.org</owner>
  <summary>
    Histogram of the time, in milliseconds, it took for the NTP to load all of
    its tiles since navigation start.
  </summary>
</histogram>

<histogram name="NewTabPage.LoadType" enum="NTPLoadType">
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>
    Android: the type of load for the NTP, such as cold or warm start. It's a
    warm start if the native library is already loaded and initialized at the
    time the activity is created. This might happen if for example a service was
    already running.
  </summary>
</histogram>

<histogram name="NewTabPage.LogoClick" enum="NewTabPageLogoClick">
  <owner>kmilka@chromium.org</owner>
  <owner>ramyan@chromium.org</owner>
  <summary>
    The number of clicks on the static/call-to-action/animated logo on the NTP.
  </summary>
</histogram>

<histogram name="NewTabPage.LogoDownloadOutcome"
    enum="NewTabPageLogoDownloadOutcome">
  <owner>kmilka@chromium.org</owner>
  <owner>ramyan@chromium.org</owner>
  <summary>
    Outcome of downloading search provider's logos. It measures whether
    download/parsing is successful, revalidation and parsing work properly, etc.
  </summary>
</histogram>

<histogram name="NewTabPage.LogoDownloadTime" units="ms">
  <owner>kmilka@chromium.org</owner>
  <owner>ramyan@chromium.org</owner>
  <summary>
    The amount of time it took to download the static logo. This includes
    requests where there was no logo, or where an existing logo was revalidated
    (so no new image data was downloaded), but it does not include failed
    requests.
  </summary>
</histogram>

<histogram name="NewTabPage.LogoImageDownloaded" enum="BooleanFromHTTPCache">
  <owner>kmilka@chromium.org</owner>
  <owner>ramyan@chromium.org</owner>
  <summary>
    A logo image (static or CTA) was downloaded. Recorded only when the image
    was downloaded and decoded without errors.
  </summary>
</histogram>

<histogram name="NewTabPage.LogoShown" enum="NewTabPageLogoShown">
  <owner>kmilka@chromium.org</owner>
  <owner>ramyan@chromium.org</owner>
  <summary>
    The number of static logos and animated logos shown to users. Note that the
    base version of this histogram is recorded both for logos from the cache and
    for fresh logos, so it can be recorded twice per NTP impression.
  </summary>
</histogram>

<histogram name="NewTabPage.LogoShownTime" units="ms">
  <obsolete>
    Deprecated 2017-08 because it was only recorded for cached logos. Replaced
    by LogoShownTime2.
  </obsolete>
  <owner>treib@chromium.org</owner>
  <summary>
    The amount of time between opening an NTP and the logo appearing. Only
    recorded when there is a logo, and only recorded once per NTP. Android only.
  </summary>
</histogram>

<histogram name="NewTabPage.LogoShownTime2" units="ms">
  <owner>kmilka@chromium.org</owner>
  <owner>ramyan@chromium.org</owner>
  <summary>
    The amount of time between opening an NTP and the logo appearing. Only
    recorded when there is a logo, and only recorded once per NTP.
  </summary>
</histogram>

<histogram name="NewTabPage.MobileIsUserOnline" enum="Boolean">
  <owner>fserb@chromium.org</owner>
  <owner>zmin@chromium.org</owner>
  <summary>
    Record the network status when a new tab page is opened. True if user is
    online and false for offline.
  </summary>
</histogram>

<histogram name="NewTabPage.MobilePromo" enum="NewTabPageMobilePromo">
  <obsolete>
    Deprecated on M33 with the change to native NTP.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Android: Tallies counts for how the user interacted with the NTP promo page.
  </summary>
</histogram>

<histogram name="NewTabPage.MostVisited" enum="MostVisitedTileIndex">
  <owner>justincohen@chromium.org</owner>
  <owner>mastiz@chromium.org</owner>
  <owner>treib@chromium.org</owner>
  <summary>
    Histogram for user clicks of the most visited tile. The value is equal to
    the index of the tile.
  </summary>
</histogram>

<histogram name="NewTabPage.MostVisitedAction" enum="NtpFollowAction">
  <obsolete>
    Deprecated 2016-02 (and not recorded for some time before that).
  </obsolete>
  <owner>justincohen@chromium.org</owner>
  <owner>newt@chromium.org</owner>
  <summary>
    Action taken by the user on the Most Visited NTP pane. If the user switches
    panes during this use of the NTP, this action is sometimes not recorded. Ask
    mpearson@ for details.
  </summary>
</histogram>

<histogram name="NewTabPage.MostVisitedAge" units="seconds">
  <owner>mastiz@chromium.org</owner>
  <summary>
    The age of the data at click time, that is, the elapsed time since the
    suggestion was generated by a ranking algorithm.
  </summary>
</histogram>

<histogram name="NewTabPage.MostVisitedScheme" enum="NtpMostVisitedScheme">
  <obsolete>
    Deprecated 2016-05.
  </obsolete>
  <owner>treib@chromium.org</owner>
  <summary>
    The schemes of URLs of most visited thumbnails that the user clicked on.
  </summary>
</histogram>

<histogram name="NewTabPage.MostVisitedTilePlacementExperiment"
    enum="NtpTileExperimentActions">
  <obsolete>
    Deprecated 2016-02 (and not recorded for some time before that).
  </obsolete>
  <owner>justincohen@chromium.org</owner>
  <owner>newt@chromium.org</owner>
  <summary>
    Records anomalous events for the Most Visited Tile Placement experiment,
    where it is unable to operate as expected. These are recorded during New Tab
    Page load time, once for every NTP.
  </summary>
</histogram>

<histogram name="NewTabPage.MostVisitedTime" units="ms">
  <owner>treib@chromium.org</owner>
  <summary>
    The time from the New Tab page being shown until the user to clicked on a
    most visited tile. Only recorded if the user clicked on a tile, as opposed
    to e.g. searching via the omnibox. Only measured on Android.
  </summary>
</histogram>

<histogram name="NewTabPage.NonVisibleScreenshots">
  <obsolete>
    Deprecated 2016-02 (and not recorded for some time before that).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of screenshots that were cached for the non-visible but ranked
    suggestions on the Suggested NTP pane.
  </summary>
</histogram>

<histogram name="NewTabPage.NonVisibleSuggestedSiteRank">
  <obsolete>
    Deprecated 2016-02 (and not recorded for some time before that).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Given that the user has typed a URL, and given that that specific URL was
    ranked but not visible on the Suggested pane of the NTP, this is the rank
    that the Suggested pane had for that URL.
  </summary>
</histogram>

<histogram name="NewTabPage.NumberOfExternalTileFallbacks">
  <obsolete>
    Deprecated 2016-07.
  </obsolete>
  <summary>
    The number of tiles for which we relied on external tiles as a fallback
    because a local screenshot was not available to be used as a thumbnail.
    External tiles are those for which the visuals are handled by the page
    itself, not by the iframe. Recorded before reloading the suggestions,
    navigating to a URL, switching tabs, changing the active window, or closing
    the tab/shutting down Chrome.
  </summary>
</histogram>

<histogram name="NewTabPage.NumberOfExternalTiles">
  <obsolete>
    Deprecated 2016-07.
  </obsolete>
  <summary>
    The number of external tiles that are displayed on the NTP. External tiles
    are those for which the visuals are handled by the page itself, not by the
    iframe. Recorded before reloading the suggestions, navigating to a URL,
    switching tabs, changing the active window or closing the tab/shutting down
    Chrome.
  </summary>
</histogram>

<histogram name="NewTabPage.NumberOfGrayTileFallbacks">
  <obsolete>
    Deprecated 2016-07.
  </obsolete>
  <summary>
    The number of tiles for which we displayed a gray tile with the domain name
    as a fallback because a local screenshot was not available to be used as a
    thumbnail. Recorded before reloading the suggestions, navigating to a URL,
    switching tabs, changing the active window or closing the tab/shutting down
    Chrome.
  </summary>
</histogram>

<histogram name="NewTabPage.NumberOfGrayTiles">
  <obsolete>
    Deprecated 2016-07.
  </obsolete>
  <summary>
    The number of tiles for which no thumbnail was specified, but a domain was
    so we displayed a gray tile with the domain name in it. Recorded before
    reloading the suggestions, navigating to a URL, switching tabs, changing the
    active window or closing the tab/shutting down Chrome.
  </summary>
</histogram>

<histogram name="NewTabPage.NumberOfMouseOvers">
  <obsolete>
    Deprecated 2016-07.
  </obsolete>
  <summary>
    The total number of times the user hovered the mouse over Most Visited tile
    or title elements before changing focus away from the NTP, be it by
    navigating to a URL, switching tabs, changing the active window or closing
    the tab/shutting down Chrome.
  </summary>
</histogram>

<histogram name="NewTabPage.NumberOfThumbnailAttempts">
  <obsolete>
    Deprecated 01/2014. Replaced by NewTabPage.NumberOfThumbnailTiles.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of tiles for which we attempted to use a local screenshot as a
    thumbnail. Recorded before reloading the suggestions, navigating to a URL,
    switching tabs, changing the active window or closing the tab/shutting down
    Chrome.
  </summary>
</histogram>

<histogram name="NewTabPage.NumberOfThumbnailErrors">
  <obsolete>
    Deprecated 2016-07.
  </obsolete>
  <summary>
    The number of thumbnails for which a local screenshot was not available so
    we were not able to display them on the Most Visited section of the NTP.
    Recorded before reloading the suggestions, navigating to a URL, switching
    tabs, changing the active window or closing the tab/shutting down Chrome.
  </summary>
</histogram>

<histogram name="NewTabPage.NumberOfThumbnailTiles">
  <obsolete>
    Deprecated 2016-07.
  </obsolete>
  <summary>
    The number of tiles for which we attempted to use a local screenshot as a
    thumbnail. Recorded before reloading the suggestions, navigating to a URL,
    switching tabs, changing the active window or closing the tab/shutting down
    Chrome.
  </summary>
</histogram>

<histogram name="NewTabPage.NumberOfTiles">
  <owner>treib@chromium.org</owner>
  <summary>
    The number of tiles that are on the NTP, no matter if they are thumbnails,
    gray tiles, or external tiles. Recorded before reloading the suggestions,
    navigating to a URL, switching tabs, changing the active window or closing
    the tab/shutting down Chrome. The sum of this histogram does not have to
    equal to the total count of tile impressions (such as the total count in
    NewTabPage.TileType). The reason is that not all tiles have to be impressed
    initially (e.g., the second row of tiles may be initially out of sight on
    iOS).
  </summary>
</histogram>

<histogram name="NewTabPage.OfflineUrlsLoadTime" units="ms">
  <owner>dewittj@chromium.org</owner>
  <summary>
    The amount of time spent waiting for the offline page model to return which
    New Tab Page URLs are available offline.
  </summary>
</histogram>

<histogram name="NewTabPage.OneGoogleBar.RequestLatency" units="ms">
  <owner>kmilka@chromium.org</owner>
  <owner>ramyan@chromium.org</owner>
  <summary>
    The time it took until a request from the New Tab page for the OneGoogleBar
    script was served. Recorded only on the local NTP.
  </summary>
</histogram>

<histogram name="NewTabPage.OneGoogleBar.ShownTime" units="ms">
  <owner>kmilka@chromium.org</owner>
  <owner>ramyan@chromium.org</owner>
  <summary>
    Histogram of the time, in milliseconds since navigation start, it took until
    the OneGoogleBar showed up on the NTP. Recorded only on the local NTP.
  </summary>
</histogram>

<histogram name="NewTabPage.OtherSessionsMenu" enum="OtherSessionsActions">
  <obsolete>
    Deprecated 05/2015. Feature was removed.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Histogram for usage of the menu on the NTP that allows the user to access
    tabs from other devices.
  </summary>
</histogram>

<histogram name="NewTabPage.PreviousSelectedPageType" enum="NtpPaneType">
  <obsolete>
    Deprecated 2016-02.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The pane that had been previously selected when the user switches panes in
    the NTP.
  </summary>
</histogram>

<histogram name="NewTabPage.Promo.Bubble" enum="NtpPromoAction">
  <obsolete>
    Deprecated 2016-02 (and not recorded for some time before that).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Histogram for NTP bubble promo activity.</summary>
</histogram>

<histogram name="NewTabPage.Promo.Notification" enum="NtpPromoAction">
  <obsolete>
    Deprecated 2016-02 (and not recorded for some time before that).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Histogram for NTP notification promo activity.</summary>
</histogram>

<histogram name="NewTabPage.Promos.RequestLatency" units="ms"
    expires_after="M76">
  <owner>kmilka@chromium.org</owner>
  <owner>ramyan@chromium.org</owner>
  <summary>
    The time it took until a request from the New Tab page for the middle slot
    promo script was served. Recorded only on the local NTP.
  </summary>
</histogram>

<histogram name="NewTabPage.RecentTabsPage.TimeVisibleAndroid" units="ms">
  <owner>pkotwicz@chromium.org</owner>
  <summary>
    Records the amount of time that the &quot;Recent Tabs&quot; page is visible
    and Chrome is in the foreground on Android. The metric is recorded whenever
    the &quot;Recent Tabs&quot; page moves out of the foreground. The metric is
    recorded when the &quot;Recent Tabs&quot; page is closed, when the user
    switches from the &quot;Recent Tabs&quot; page to a different tab and when
    Chrome is backgrounded.
  </summary>
</histogram>

<histogram name="NewTabPage.RequestThrottler.PerDay" units="requests">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Records how many background requests of the given type the browser tried to
    perform each day where the type is specified by the _suffix of the
    histogram. The histogram is emitted only after midnight of the given day
    passes - right before the first following request (which can be several days
    later if the user does not use Chrome in the meantime). The histogram counts
    requests with both QUOTA_GRANTED and QUOTA_EXCEEDED status, i.e. the count
    can easily exceed the daily quota.
  </summary>
</histogram>

<histogram name="NewTabPage.RequestThrottler.PerDayInteractive"
    units="requests">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Records how many interactive requests of the given type the browser tried to
    perform each day where the type is specified by the _suffix of the
    histogram. The histogram is emitted only after midnight of the given day
    passes - right before the first following request (which can be several days
    later if the user does not use Chrome in the meantime). The histogram counts
    requests with both QUOTA_GRANTED and QUOTA_EXCEEDED status, i.e. the count
    can easily exceed the daily quota.
  </summary>
</histogram>

<histogram name="NewTabPage.RequestThrottler.RequestStatus"
    enum="NtpRequestThrottlerStatus">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Records the status w.r.t. the quota for all requests of the given type. The
    type of request is specified by the _suffix of the histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.SearchAvailableLoadTime.ColdStart" units="ms">
  <obsolete>
    Deprecated February 2017.
  </obsolete>
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>
    The time until the search box became available on the NTP in a cold start.
    It's a cold start if the native library is not already loaded and
    initialized at the time the activity is created. Only measured on Android.
  </summary>
</histogram>

<histogram name="NewTabPage.SearchAvailableLoadTime.WarmStart" units="ms">
  <obsolete>
    Deprecated February 2017.
  </obsolete>
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>
    The time until the search box became available on the NTP in a warm start.
    It's a warm start if the native library is already loaded and initialized at
    the time the activity is created. This might happen if for example a service
    was already running. Only measured on Android.
  </summary>
</histogram>

<histogram name="NewTabPage.SearchAvailableLoadTime2.ColdStart" units="ms">
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>
    The time until the search box became available on the NTP in a cold start.
    It's a cold start if the native library is not already loaded and
    initialized at the time the activity is created. Only measured on Android.
  </summary>
</histogram>

<histogram name="NewTabPage.SearchAvailableLoadTime2.WarmStart" units="ms">
  <owner>mvanouwerkerk@chromium.org</owner>
  <summary>
    The time until the search box became available on the NTP in a warm start.
    It's a warm start if the native library is already loaded and initialized at
    the time the activity is created. This might happen if for example a service
    was already running. Only measured on Android.
  </summary>
</histogram>

<histogram name="NewTabPage.SearchSuggestions.RequestLatency" units="ms"
    expires_after="M76">
  <owner>kmilka@chromium.org</owner>
  <owner>ramyan@chromium.org</owner>
  <summary>
    The time it took until a request from the New Tab page for the search
    suggestions script was served. Recorded only on the local NTP.
  </summary>
</histogram>

<histogram name="NewTabPage.SearchSuggestions.RequestStatus"
    enum="NTPSearchSuggestionsRequestStatus" expires_after="M76">
  <owner>kmilka@chromium.org</owner>
  <owner>ramyan@chromium.org</owner>
  <summary>
    Whether a request was made for search suggestions on NTP load; and if a
    request was not made, the reason why.
  </summary>
</histogram>

<histogram name="NewTabPage.SearchURLs.Total">
  <obsolete>
    Deprecated 2016-02 (and not recorded for some time before that).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>TBD.</summary>
</histogram>

<histogram name="NewTabPage.SelectedPageType" enum="NtpPaneType">
  <obsolete>
    Deprecated 2016-02.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The pane selected when the user switches panes in the NTP.</summary>
</histogram>

<histogram name="NewTabPage.SessionRestore">
  <obsolete>
    Deprecated 2016-02 (and not recorded for some time before that).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Histogram for user clicks of the Recently Closed items. The value is the
    recency of the entry being restored (0 is most recent).
  </summary>
</histogram>

<histogram name="NewTabPage.SingleSessionPageSwitches">
  <obsolete>
    Deprecated 2016-02 (and not recorded for some time before that).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Histogram to track how many times a user switched pages in a single NTP
    session.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.CardClicked">
  <obsolete>
    Replaced by NewTabPage.ContentSuggestions.Opened.
  </obsolete>
  <owner>knn@chromium.org</owner>
  <summary>
    Android: The position of the snippets card on the NTP, that is clicked
    through to the host website of the content. We track the position the
    snippet had in the list when NTP was loaded. This tracked position is thus
    different from the position observed by the user whenever before scrolling
    down to the given snippet, the user discards some snippets in the top of the
    list.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.CardClickedAge" units="ms">
  <obsolete>
    Replaced by NewTabPage.ContentSuggestions.OpenedAge.
  </obsolete>
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Android: The age of the snippets card on the NTP, that is clicked through to
    the host website of the content. The age is measured from the moment the
    content has been published. In each &quot;_x_y&quot; suffix of the
    histogram, only snippets on positions \gt;=x and \lt;=y are tracked. We
    track the position the snippet had in the list when NTP was loaded. This
    tracked position is thus different from the position observed by the user
    whenever before scrolling down to the given snippet, the user discards some
    snippets in the top of the list.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.CardClickedScore" units="score">
  <obsolete>
    Deprecated as of 6/2016
  </obsolete>
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Android: The score of the snippets card on the NTP, that is clicked through
    to the host website of the content. The recorded score is from the moment
    the snippet was fetched, it could have changed since. In each &quot;_x&quot;
    suffix of the histogram, only snippets on positions \lt;=x are tracked. We
    track the position the snippet had in the list when NTP was loaded. This
    tracked position is thus different from the position observed by the user
    whenever before scrolling down to the given snippet, the user discards some
    snippets in the top of the list.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.CardClickedScoreNew" units="score">
  <obsolete>
    Replaced by NewTabPage.ContentSuggestions.OpenedScore.
  </obsolete>
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Android: The score of the snippets card on the NTP, that is clicked through
    to the host website of the content. The recorded score is from the moment
    the snippet was fetched, it could have changed since. In each &quot;_x&quot;
    suffix of the histogram, only snippets on positions \lt;=x are tracked. We
    track the position the snippet had in the list when NTP was loaded. This
    tracked position is thus different from the position observed by the user
    whenever before scrolling down to the given snippet, the user discards some
    snippets in the top of the list. In contrast to CardClickedScore, this
    histogram has a proper maximal value of 100 000.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.CardExpanded">
  <obsolete>
    Deprecated as of 4/2016
  </obsolete>
  <owner>knn@chromium.org</owner>
  <summary>
    Android: The position of the snippets card on the NTP, that is expanded to
    reveal more content.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.CardHidden">
  <obsolete>
    Deprecated as of 4/2016
  </obsolete>
  <owner>knn@chromium.org</owner>
  <summary>
    Android: The position of the snippets card on the NTP, for which the
    expanded content was minimized/hidden.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.CardLongPressed" units="index">
  <obsolete>
    Replaced by NewTabPage.ContentSuggestions.MenuOpened.
  </obsolete>
  <owner>peconn@chromium.org</owner>
  <summary>
    Android: The position of a snippet card when it is long pressed, analagous
    to NewTabPage.Snippets.CardClicked.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.CardLongPressedAge" units="ms">
  <obsolete>
    Replaced by NewTabPage.ContentSuggestions.MenuOpenedAge.
  </obsolete>
  <owner>peconn@chromium.org</owner>
  <summary>
    Android: The time difference between when a snippet card is long pressed and
    when its content was published. Analagous to
    NewTabPage.Snippets.CardClickedAge.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.CardLongPressedScoreNew" units="score">
  <obsolete>
    Replaced by NewTabPage.ContentSuggestions.MenuOpenedScore.
  </obsolete>
  <owner>peconn@chromium.org</owner>
  <summary>
    Android: The relevance score of an interest card that is long pressed,
    analagous to NewTabPage.Snippets.CardClickedScoreNew.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.CardShown">
  <obsolete>
    Replaced by NewTabPage.ContentSuggestions.Shown.
  </obsolete>
  <owner>knn@chromium.org</owner>
  <summary>
    Android: The position of the snippets card that is shown on the NTP. Each
    snippet (its position) is recorded whenever at least 2/3 of its height
    becomes visible by scrolling through the NTP. Each snippet is recorded at
    most once for a given instance of NTP and a given data set of snippets that
    is shown. We track the position the snippet had in the list when NTP was
    loaded. This tracked position is thus different from the position observed
    by the user whenever before scrolling down to the given snippet, the user
    discards some snippets in the top of the list. Previously (in the code
    before 2016/05/27), this histogram was recorded each time a snippet became
    visible (e.g. by scrolling up and down) at least by 1px; the first snippet
    was thus recorded even without scrolling down.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.CardShownAge" units="ms">
  <obsolete>
    Replaced by NewTabPage.ContentSuggestions.ShownAge.
  </obsolete>
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Android: The age of the snippets card that is shown on the NTP. Each snippet
    (its age) is recorded whenever at least 2/3 of its height becomes visible by
    scrolling through the NTP. Each snippet is recorded at most once for a given
    instance of NTP and a given data set of snippets that is shown. The age is
    measured from the moment the content has been published. In each
    &quot;_x_y&quot; suffix of the histogram, only snippets on positions \gt;=x
    and \lt;=y are tracked. By this, we mean the position the snippet had in the
    list when NTP was loaded. This tracked position is thus different from the
    position observed by the user whenever before scrolling down to the given
    snippet, the user discards some snippets in the top of the list.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.CardShownScore" units="score">
  <obsolete>
    Deprecated as of 6/2016
  </obsolete>
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Android: The score of the snippets card that is shown on the NTP. Each
    snippet (its score) is recorded whenever at least 2/3 of its height becomes
    visible by scrolling through the NTP. Each snippet is recorded at most once
    for a given instance of NTP and a given data set of snippets that is shown.
    The recorded score is from the moment the snippet was fetched, it could have
    changed since. In each &quot;_x&quot; suffix of the histogram, only snippets
    on positions \lt;=x are tracked. By this, we mean the position the snippet
    had in the list when NTP was loaded. This tracked position is thus different
    from the position observed by the user whenever before scrolling down to the
    given snippet, the user discards some snippets in the top of the list.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.CardShownScoreNew" units="score">
  <obsolete>
    Replaced by NewTabPage.ContentSuggestions.ShownScore.
  </obsolete>
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Android: The score of the snippets card that is shown on the NTP. Each
    snippet (its score) is recorded whenever at least 2/3 of its height becomes
    visible by scrolling through the NTP. Each snippet is recorded at most once
    for a given instance of NTP and a given data set of snippets that is shown.
    The recorded score is from the moment the snippet was fetched, it could have
    changed since. In each &quot;_x&quot; suffix of the histogram, only snippets
    on positions \lt;=x are tracked. By this, we mean the position the snippet
    had in the list when NTP was loaded. This tracked position is thus different
    from the position observed by the user whenever before scrolling down to the
    given snippet, the user discards some snippets in the top of the list. In
    contrast to CardShownScore, this histogram has a proper maximal value of 100
    000.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.DatabaseLoadTime" units="ms">
  <owner>treib@chromium.org</owner>
  <summary>
    Android: The time it took to load the database of persisted content
    suggestions. Recorded only when the database is loaded successfully.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.EnteredState" enum="NTPSnippetsState">
  <owner>treib@chromium.org</owner>
  <summary>
    Android: The state of the RemoteSuggestionsProvider. Recorded when the state
    changes, typically once at startup and rarely afterwards, e.g. on database
    errors.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.FetchHttpResponseOrErrorCode"
    enum="CombinedHttpResponseAndNetErrorCode">
  <owner>mastiz@chromium.org</owner>
  <summary>
    Response or error codes encountered when attempting to fetch snippets.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.FetchResult" enum="NtpSnippetsFetchResult">
  <owner>mastiz@chromium.org</owner>
  <summary>
    Result of attempting a fetch, logged once per issued trigger.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.FetchTime" units="ms">
  <owner>mastiz@chromium.org</owner>
  <summary>
    Time spent fetching snippets. Only recorded for fetch attempts that resulted
    in an actual network request.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.FetchTimeLocal" units="minutes">
  <owner>finkm@chromium.org</owner>
  <summary>
    Records the time of the day in minutes when a snippets background fetch was
    initiated. Counts minutes since midnight UTC.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.FetchTimeUTC" units="minutes">
  <owner>finkm@chromium.org</owner>
  <summary>
    Records the time of the day in minutes when a snippets background fetch was
    initiated. Counts minutes since midnight local time.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.IncompleteSnippetsAfterFetch"
    enum="Boolean">
  <owner>maybelle@chromium.org</owner>
  <summary>
    Whether we discarded any of the snippets after fetching them due to having
    incomplete metadata.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.Interactions" enum="SnippetsInteractions">
  <obsolete>
    Removed 2016-10.
  </obsolete>
  <owner>knn@chromium.org</owner>
  <summary>
    Android: A histogram giving an overall summary of important events like
    impressions, scroll events, clicks etc.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.NumArticles" units="articles">
  <owner>treib@chromium.org</owner>
  <summary>
    Android: The number of snippet articles available to show on the NTP, logged
    once every time the list is updated.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.NumArticlesFetched" units="articles">
  <owner>mastiz@chromium.org</owner>
  <summary>
    Android: The number of valid snippet articles fetched from the server,
    logged every time a fetch finishes successfully.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.NumArticlesOnScrolledBelowTheFoldOnce"
    units="articles">
  <obsolete>
    Removed 2016-10.
  </obsolete>
  <owner>mastiz@chromium.org</owner>
  <summary>
    Android: The number of snippet articles available to the user in the UI,
    logged when the user scrolls below the fold (at max once per NTP load).
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.NumArticlesZeroDueToDiscarded"
    units="articles">
  <owner>mastiz@chromium.org</owner>
  <summary>
    Android: The number of snippet articles discarded by the user, logged every
    time the list is updated resulting in an empty list (all articles
    discarded).
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.NumIncompleteSnippets" units="snippets">
  <owner>treib@chromium.org</owner>
  <summary>
    The number of snippets that we discard per fetch due to having incomplete
    data.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.OpenMethod" enum="SnippetOpenMethod">
  <obsolete>
    Replaced by NewTabPage.ContentSuggestions.OpenDisposition.
  </obsolete>
  <owner>peconn@chromium.org</owner>
  <summary>
    Android: A histogram detailing how the articles linked from snippets are
    opened (eg, plain click, open in new tab, open in incognito).
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.VisitDuration" units="ms">
  <obsolete>
    Replaced by NewTabPage.ContentSuggestions.VisitDuration.
  </obsolete>
  <owner>mastiz@chromium.org</owner>
  <summary>
    Android: Time spent reading the page linked by an opened (clicked) snippet
    card. Exit conditions include the tab not being in the foreground or
    starting a new navigation.
  </summary>
</histogram>

<histogram name="NewTabPage.SuggestedSite">
  <obsolete>
    Deprecated 2016-02 (and not recorded for some time before that).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Histogram for user clicks of the suggested site thumbnails. The value is
    equal to the index of the thumbnail.
  </summary>
</histogram>

<histogram name="NewTabPage.SuggestedSitesAction" enum="NtpFollowAction">
  <obsolete>
    Deprecated 2016-02 (and not recorded for some time before that).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Action taken by the user on the Suggested Sites NTP pane.</summary>
</histogram>

<histogram name="NewTabPage.SuggestedSitesLoadTime">
  <obsolete>
    Deprecated 2016-02 (and not recorded for some time before that).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Time to load the Suggested Sites NTP pane, in milliseconds.</summary>
</histogram>

<histogram name="NewTabPage.SuggestedSitesViewTime">
  <obsolete>
    Deprecated 2016-02 (and not recorded for some time before that).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Time spent on the Suggested Sites NTP pane, in seconds.</summary>
</histogram>

<histogram name="NewTabPage.SuggestionsImpression" enum="MostVisitedTileIndex">
  <owner>treib@chromium.org</owner>
  <summary>
    Histogram for impressions on the various most visited tiles. The value is
    equal to the index of the thumbnail.
  </summary>
</histogram>

<histogram name="NewTabPage.SuggestionsImpressionAge" units="seconds">
  <owner>mastiz@chromium.org</owner>
  <summary>
    The age of the data at impression time, that is, the elapsed time since the
    suggestion was generated by a ranking algorithm.
  </summary>
</histogram>

<histogram name="NewTabPage.SuggestionsType" enum="NtpSuggestionsType">
  <obsolete>
    Deprecated 2016-07.
  </obsolete>
  <summary>
    Indicate, for each impression of the New Tab Page, whether the suggestions
    were obtained from the client or server. Recorded before changing focus away
    from the NTP, be it by navigating to a URL, switching tabs, changing the
    active window or closing the tab/shutting down Chrome.
  </summary>
</histogram>

<histogram name="NewTabPage.ThumbnailErrorRate">
  <obsolete>
    Deprecated 01/2014. Replaced by NewTabPage.NumberOfThumbnailAttempts and
    NewTabPage.NumberOfThumbnailErrors.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The percentage of errors per attempts to load image thumbnails on the New
    Tab Page. When an error occurs, a grey tile is shown instead of a thumbnail
    image. We measure the rate instead of the number of errors because multiple
    attempts are made to load images at different times during the NTP's
    lifetime. Each NTP session's error rate is logged after the user navigates
    to a new URL from that NTP.
  </summary>
</histogram>

<histogram name="NewTabPage.ThumbnailFallbackRate" units="%">
  <obsolete>
    Deprecated 01/2014. Replaced by NewTabPage.NumberOfGrayTileFallbacks and
    NewTabPage.NumberOfExternalFallbacks.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The percentage of times most visited tiles use the fallback thumbnail. Only
    requests that actually specify a fallback thumbnail are considered here. We
    measure the rate instead of the number of errors because multiple attempts
    are made to load thumbnails at different times during the NTP's lifetime.
    Each NTP session's error rate is logged after the user navigates to a new
    URL from that NTP.
  </summary>
</histogram>

<histogram name="NewTabPage.TileFaviconFetchStatus.Server"
    enum="GoogleFaviconServerRequestStatus">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Mobile only. The result of fetching a favicon for a tile on the New Tab
    Page. This is recorded for each gray MostVisited tile on the New Tab Page
    once per impression of the tile.
  </summary>
</histogram>

<histogram name="NewTabPage.TileFaviconFetchSuccess.Popular"
    enum="BooleanSuccess">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Mobile only. The result of fetching a favicon for a tile on the New Tab
    Page. This is recorded for each gray PopularSites tile on the New Tab Page
    once per updating the set of tiles (notably upon each NTP impression).
  </summary>
</histogram>

<histogram name="NewTabPage.TileFaviconFetchSuccess.Server"
    enum="BooleanSuccess">
  <obsolete>
    Deprecated 06/2017. Replaced by NewTabPage.TileFaviconFetchStatus.Server.
  </obsolete>
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Mobile only. The result of fetching a favicon for a tile on the New Tab
    Page. This is recorded for each gray MostVisited tile on the New Tab Page
    once per lifetime of Chrome (there as an in-memory cache of failed
    requests).
  </summary>
</histogram>

<histogram name="NewTabPage.TileFaviconType" enum="FaviconType">
  <owner>mastiz@chromium.org</owner>
  <summary>
    The favicon type that was chosen to represent a most visited tile displayed
    on the new tab page, logged at impression time. Note that these values don't
    involve an actual icon being displayed because a scrabble time might have
    been displayed instead (see NewTabPage.TileType).
  </summary>
</histogram>

<histogram name="NewTabPage.TileFaviconTypeClicked" enum="FaviconType">
  <owner>mastiz@chromium.org</owner>
  <summary>
    The favicon type that was chosen to represent a most visited tile displayed
    on the new tab page, logged when a tile is clicked. Note that these values
    don't involve an actual icon being displayed (see
    NewTabPage.TileTypeClicked).
  </summary>
</histogram>

<histogram name="NewTabPage.TileOfflineAvailable" enum="MostVisitedTileIndex">
  <owner>treib@chromium.org</owner>
  <summary>
    The number of times a tile was available offline, per tile index - compare
    to the NewTabPage.SuggestionsImpression.* histograms. This is recorded when
    the NTP finishes loading. Only measured on Android.
  </summary>
</histogram>

<histogram name="NewTabPage.TilesReceivedTime" units="ms">
  <owner>treib@chromium.org</owner>
  <summary>
    Histogram of the time, in milliseconds since navigation start, it took for
    the NTP most visited iframe to receive the data for all of its tiles. This
    does not include actually loading the DOM elements for the tiles, in
    particular the thumbnail images; see NewTabPage.LoadTime for that.
  </summary>
</histogram>

<histogram name="NewTabPage.TileTitle" enum="NTPTileTitleSource">
  <owner>fhorschig@chromium.org</owner>
  <summary>
    Records the source of the title for each most visited tiled displayed when
    an NTP is opened, e.g. a short_name from a manifest, or the page title.
  </summary>
</histogram>

<histogram name="NewTabPage.TileTitleClicked" enum="NTPTileTitleSource">
  <owner>fhorschig@chromium.org</owner>
  <summary>
    Records the source for the name a most visited tile showed when the user
    clicked it, e.g. a URL, or the page title.
  </summary>
</histogram>

<histogram name="NewTabPage.TileType" enum="NTPTileVisualType">
  <owner>mastiz@chromium.org</owner>
  <summary>
    The visual type of each most visited tile displayed on the new tab page,
    e.g. actual thumbnail or placeholder thumbnail. This is recorded for each
    most visited item when the NTP is opened.
  </summary>
</histogram>

<histogram name="NewTabPage.TileTypeClicked" enum="NTPTileVisualType">
  <owner>mastiz@chromium.org</owner>
  <summary>
    The visual type of the most visited item that the user clicked on, e.g.
    actual thumbnail or placeholder thumbnail.
  </summary>
</histogram>

<histogram name="NewTabPage.TimeSpent" units="ms">
  <owner>twellington@chromium.org</owner>
  <summary>
    The time spent on the new tab page as measured from when it was loaded or
    last brought to the foreground until it was navigated away from or hidden.
    Only measured on Android.
  </summary>
</histogram>

<histogram name="NewTabPage.TimeToFirstDraw" units="ms">
  <obsolete>
    Deprecated 01/2019, replaced by NewTabPage.TimeToFirstDraw2 when a bug in
    how this was calculated was fixed.
  </obsolete>
  <owner>skym@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The time from when a new tab page is created until the first pre-draw call
    on the main UI containing the search provider logo (if available), fake
    search box, most visited tiles, etc. More specifically, this is the time
    between NewTabPage's constructor and the first pre-draw pass on
    NewTabPageLayout.
  </summary>
</histogram>

<histogram name="NewTabPage.TimeToFirstDraw2" units="ms">
  <owner>skym@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The time from when a new tab page is created until the first pre-draw call
    on the root view containing the search provider logo (if available), fake
    search box, most visited tiles, articles etc. More specifically, this is the
    time between NewTabPage's constructor and the first pre-draw pass on this
    root view. This typically means that the fixed UI elements are shown to the
    user, but the articles below are not filled in yet.
  </summary>
</histogram>

<histogram name="NewTabPage.URLState" enum="NewTabURLState">
  <owner>treib@chromium.org</owner>
  <summary>
    Records the status of the New Tab page URL when an NTP is opened.
  </summary>
</histogram>

<histogram name="NewTabPage.UserClassifier.AverageHoursToOpenNTP" units="hours">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Android: The estimated average number of hours between two successive times
    when a new tab page is opened. Recorded after each opening of a NTP (and
    after updating the model used for the estimate).
  </summary>
</histogram>

<histogram name="NewTabPage.UserClassifier.AverageHoursToShowSuggestions"
    units="hours">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Android: The estimated average number of hours between two successive times
    when the list of content suggestions on a new tab page is shown (i.e. when
    the user scrolls below the fold). Recorded after each time the suggestions
    are shown (and after updating the model used for the estimate).
  </summary>
</histogram>

<histogram name="NewTabPage.UserClassifier.AverageHoursToUseSuggestions"
    units="hours">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Android: The estimated average number of hours between two successive times
    when the user opens a content suggestion or clicks on the &quot;More&quot;
    button. Recorded after each time a suggestion or a More button is clicked
    (and after updating the model used for the estimate).
  </summary>
</histogram>

<histogram name="NewTabPage.VisibleScreenshots">
  <obsolete>
    Deprecated 2016-02 (and not recorded for some time before that).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of screenshots that were cached for the visible suggestions on
    the Suggested NTP pane.
  </summary>
</histogram>

<histogram name="NewTabPage.VisibleSuggestedSiteRank">
  <obsolete>
    Deprecated 2016-02 (and not recorded for some time before that).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Given that the user has typed a URL, and given that that specific URL was
    visible on the Suggested pane of the NTP, this is the rank that the
    Suggested pane had for that URL.
  </summary>
</histogram>

<histogram name="NewTabPage.VoiceActions" enum="NewTabPageVoiceAction">
  <owner>kmilka@chromium.org</owner>
  <owner>ramyan@chromium.org</owner>
  <summary>
    Actions taken by users of Voice Search on the local New Tab Page on Desktop.
    These actions may navigate away from the NTP (e.g. submitting a speech
    query), but can also happen without navigating away from the NTP (e.g.
    initiating or retrying Voice Search).
  </summary>
</histogram>

<histogram name="NewTabPage.VoiceErrors" enum="NewTabPageVoiceError">
  <owner>kmilka@chromium.org</owner>
  <owner>ramyan@chromium.org</owner>
  <summary>
    Errors that occur during Voice Search use on the local New Tab Page on
    Desktop. These may be user-induced (e.g. the user's utterance could not be
    recognized - no match), or resulting from external circumstances (e.g.
    offline, lack of microphone permission).
  </summary>
</histogram>

<histogram name="Notifications.Actions" enum="NotificationActionType">
  <owner>dewittj@chromium.org</owner>
  <summary>
    The actions taken on notifications, recorded every time they happen. This
    histogram will record every single event that happens separately.
  </summary>
</histogram>

<histogram name="Notifications.Android.JobStartDelay" units="ms">
  <owner>peter@chromium.org</owner>
  <summary>
    Records the delay between scheduling a job with the JobScheduler (with a
    desired latency of 0ms, in response to a notification click) and receiving
    the onStartJob callback. Only measured on Android N and above.
  </summary>
</histogram>

<histogram name="Notifications.Android.SitesChannel" enum="BooleanUsage">
  <owner>peter@chromium.org</owner>
  <summary>
    Recorded when the Sites channel (which we hope to deprecate) is used as a
    fallback, when a site-specific notification channel is expected to exist but
    does not. Note, we only log when the sites channel is *used*, not when it is
    not used.
  </summary>
</histogram>

<histogram name="Notifications.AppNotificationStatus"
    enum="NotificationAppStatus">
  <owner>peter@chromium.org</owner>
  <summary>
    Records whether notifications are enabled for Chrome, as the Android app,
    for each Web Notification that is being shown to the user.
  </summary>
</histogram>

<histogram name="Notifications.AuthorDataSize" units="bytes"
    expires_after="2018-08-30">
  <owner>peter@chromium.org</owner>
  <summary>
    The size, in bytes, of the author-provided data associated with a Web
    Notification. Recorded when a persistent Web Notification is being shown by
    the developer.
  </summary>
</histogram>

<histogram name="Notifications.AuthorDataSizeKB" units="KB">
  <obsolete>
    Replaced by Notifications.AuthorDataSize in February 2016.
  </obsolete>
  <owner>peter@chromium.org</owner>
  <summary>
    The size, in kilobytes, of the author-provided data associated with a Web
    Notification. Recorded when a persistent Web Notification is being shown by
    the developer.
  </summary>
</histogram>

<histogram name="Notifications.Database.DeleteBeforeWriteResult"
    enum="NotificationDatabaseStatus">
  <owner>peter@chromium.org</owner>
  <summary>
    Records the result status codes of deleting notification data from the Web
    Notification database that share their tag (replacement identifier) with a
    notification that's about to be shown.
  </summary>
</histogram>

<histogram name="Notifications.Database.DeleteResult"
    enum="NotificationDatabaseStatus">
  <owner>peter@chromium.org</owner>
  <summary>
    Records the result status codes of deleting notification data from the Web
    Notification database.
  </summary>
</histogram>

<histogram name="Notifications.Database.DeleteServiceWorkerRegistrationResult"
    enum="NotificationDatabaseStatus">
  <owner>peter@chromium.org</owner>
  <summary>
    Records the result status codes of deleting all notification data associated
    with a Service Worker registration ID.
  </summary>
</histogram>

<histogram name="Notifications.Database.DestroyResult"
    enum="NotificationDatabaseStatus">
  <owner>peter@chromium.org</owner>
  <summary>
    Records the result status codes of destroying the Web Notification database
    altogether.
  </summary>
</histogram>

<histogram name="Notifications.Database.OpenAfterCorruptionResult"
    enum="NotificationDatabaseStatus">
  <owner>peter@chromium.org</owner>
  <summary>
    Records the result status codes of opening the Web Notification database
    after it has been destroyed in response to data corruption.
  </summary>
</histogram>

<histogram name="Notifications.Database.OpenResult"
    enum="NotificationDatabaseStatus">
  <owner>peter@chromium.org</owner>
  <summary>
    Records the result status codes of opening the Web Notification database.
  </summary>
</histogram>

<histogram name="Notifications.Database.ReadForServiceWorkerResult"
    enum="NotificationDatabaseStatus">
  <owner>peter@chromium.org</owner>
  <summary>
    Records the result status codes of reading data of all notifications
    associated with a Service Worker from the Web Notification database.
  </summary>
</histogram>

<histogram name="Notifications.Database.ReadResult"
    enum="NotificationDatabaseStatus">
  <owner>peter@chromium.org</owner>
  <summary>
    Records the result status codes of reading data of a single notification
    from the Web Notification database.
  </summary>
</histogram>

<histogram name="Notifications.Database.WriteResult"
    enum="NotificationDatabaseStatus">
  <owner>peter@chromium.org</owner>
  <summary>
    Records the result status codes of writing data for a notification to the
    Web Notification database.
  </summary>
</histogram>

<histogram name="Notifications.DifferentRequestingEmbeddingOrigins"
    enum="Boolean">
  <obsolete>
    Deprecated July 2015. No longer tracked since M42.
  </obsolete>
  <owner>peter@chromium.org</owner>
  <summary>
    Records if the requesting and embedding origins are different when
    requesting permission to display Web Notifications.
  </summary>
</histogram>

<histogram name="Notifications.Display" enum="NotifierType">
  <obsolete>
    Deprecated October 2017 (fullscreen notifications feature enabled by
    default).
  </obsolete>
  <owner>bmalcolm@chromium.org</owner>
  <summary>
    Counts the number of times a notification was shown for the various types of
    sources. The suffix distinguishes between the window state of the app or
    webpage that sent the notification. This will be used to determine whether a
    legacy mode is required when we allow apps or webpages to display
    notifications over fullscreen content in the future.
  </summary>
</histogram>

<histogram name="Notifications.ExtensionNotificationActionCount"
    units="buttons">
  <owner>dewittj@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    The number of action buttons the developer provided for a notification
    created using the extensions notification API. Logged when creating the
    notification.
  </summary>
</histogram>

<histogram name="Notifications.ExtensionNotificationIdLength"
    units="characters">
  <owner>peter@chromium.org</owner>
  <summary>
    The length, in characters, of the id given to an extension notification.
    These can be automatically generated, in which case they will be either 36
    bytes (GUID) or 16 bytes (random data) in length, or provided by the
    developer. Measured when the notification is being displayed through the
    chrome.notifications.create() extension API.
  </summary>
</histogram>

<histogram name="Notifications.ExtensionNotificationType"
    enum="ExtensionNotificationType">
  <owner>dewittj@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    The type of a notification created using the extensions notification API.
    Logged when creating the notification.
  </summary>
</histogram>

<histogram base="true" name="Notifications.Freedesktop.Capabilities"
    enum="BooleanSupported">
<!-- Name completed by histogram_suffixes name="FreedesktopNotificationCapabilitiesId" -->

  <owner>thomasanderson@chromium.org</owner>
  <summary>
    Whether the notification server supports the capability in question. (Linux
    only) Logged when the proxy to /org/Freedesktop/Notifications is set up
    successfully, which happens at most once on startup.
  </summary>
</histogram>

<histogram name="Notifications.Icon.FileSize" units="bytes">
  <obsolete>
    Deprecated Nov 2016 in favor of Notifications.LoadFileSize.*
  </obsolete>
  <owner>peter@chromium.org</owner>
  <summary>The number of bytes loaded for a Web Notification icon.</summary>
</histogram>

<histogram name="Notifications.Icon.LoadFailTime" units="ms">
  <obsolete>
    Deprecated Nov 2016 in favor of Notifications.LoadFailTime.*
  </obsolete>
  <owner>peter@chromium.org</owner>
  <summary>
    The number of milliseconds it took to fail loading an icon for a Web
    Notification.
  </summary>
</histogram>

<histogram name="Notifications.Icon.LoadFinishTime" units="ms">
  <obsolete>
    Deprecated Nov 2016 in favor of Notifications.LoadFinishTime.*
  </obsolete>
  <owner>peter@chromium.org</owner>
  <summary>
    The number of milliseconds it took to finish successfully loading an icon
    for a Web Notification.
  </summary>
</histogram>

<histogram name="Notifications.Icon.ScaleDownTime" units="ms">
  <obsolete>
    Deprecated Nov 2016 in favor of Notifications.LoadScaleDownTime.*
  </obsolete>
  <owner>peter@chromium.org</owner>
  <summary>
    The number of milliseconds it took to scale down an icon for a Web
    Notification.
  </summary>
</histogram>

<histogram name="Notifications.Linux.BridgeInitializationStatus"
    enum="LinuxNotificationBridgeStatusCode">
  <owner>thomasanderson@chromium.org</owner>
  <summary>
    The status code for initializing NotificationPlatformBridgeLinux. (Linux
    only) Logged on each start up.
  </summary>
</histogram>

<histogram name="Notifications.LoadFailTime" units="ms">
<!-- Name completed by histogram_suffixes name="NotificationImageTypes" -->

  <owner>peter@chromium.org</owner>
  <summary>
    The number of milliseconds it took to fail loading an icon/image for a Web
    Notification.
  </summary>
</histogram>

<histogram name="Notifications.LoadFileSize" units="bytes">
<!-- Name completed by histogram_suffixes name="NotificationImageTypes" -->

  <owner>peter@chromium.org</owner>
  <summary>
    The number of bytes loaded for a Web Notification icon/image.
  </summary>
</histogram>

<histogram name="Notifications.LoadFinishTime" units="ms">
<!-- Name completed by histogram_suffixes name="NotificationImageTypes" -->

  <owner>peter@chromium.org</owner>
  <summary>
    The number of milliseconds it took to finish successfully loading an
    icon/image for a Web Notification.
  </summary>
</histogram>

<histogram name="Notifications.LoadScaleDownTime" units="ms">
<!-- Name completed by histogram_suffixes name="NotificationImageTypes" -->

  <owner>peter@chromium.org</owner>
  <summary>
    The number of milliseconds it took to scale down an icon/image for a Web
    Notification.
  </summary>
</histogram>

<histogram name="Notifications.NotificationHelper.ComServerModuleStatus"
    enum="NotificationHelperComServerModuleStatus">
  <owner>finnur@chromium.org</owner>
  <summary>
    The execute status of a ComServerModule class instance. Logged whenever a
    notification_helper process is launched by Windows.
  </summary>
</histogram>

<histogram
    name="Notifications.NotificationHelper.NotificationActivatorPrimaryStatus"
    enum="NotificationHelperNotificationActivatorPrimaryStatus">
  <owner>chengx@chromium.org</owner>
  <owner>finnur@chromium.org</owner>
  <summary>
    The primary execute status of NotificationActivator::Activate. Logged
    whenever a notification_helper process is launched by Windows.
  </summary>
</histogram>

<histogram
    name="Notifications.NotificationHelper.NotificationActivatorSecondaryStatus"
    enum="NotificationHelperNotificationActivatorSecondaryStatus">
  <owner>chengx@chromium.org</owner>
  <owner>finnur@chromium.org</owner>
  <summary>
    The secondary execute status of NotificationActivator::Activate. Logged
    whenever a notification_helper process is launched by Windows.
  </summary>
</histogram>

<histogram name="Notifications.NotificationHelper.NotificationActivatorStatus"
    enum="NotificationHelperNotificationActivatorStatus">
  <obsolete>
    Deprecated 06/2018. Replaced by NotificationActivatorPrimaryStatus and
    NotificationActivatorSecondaryStatus.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>
    The execute status of NotificationActivator::Activate. Logged whenever a
    notification_helper process is launched by Windows.
  </summary>
</histogram>

<histogram name="Notifications.NotificationHelper.ServerRuntime" units="ms">
  <owner>finnur@chromium.org</owner>
  <summary>
    The runtime of the notification_helper server process. This process is
    created when a notification is activated from the Windows Action Center.
    Once created, this process does some COM class registration work, so that
    Windows can call certain APIs to handle the notification activation. Upon
    finishing the API calls, Windows signals this process to exit.
  </summary>
</histogram>

<histogram name="Notifications.NotifierType" enum="NotifierType">
  <owner>tetsui@chromium.org</owner>
  <summary>
    The number of times a notification was added for the various types of
    sources.
  </summary>
</histogram>

<histogram name="Notifications.PerNotificationActions"
    enum="NotificationActionType">
  <owner>dewittj@chromium.org</owner>
  <summary>
    The actions taken on notifications, recorded once per notification, when it
    is closed. This differs from the Notifications.Actions histogram in that
    multiple events of the same type on a single notification will only record a
    single UMA event.
  </summary>
</histogram>

<histogram name="Notifications.PersistentNotificationActionCount"
    units="buttons">
  <owner>peter@chromium.org</owner>
  <summary>
    The number of action buttons the developer provided for a persistent Web
    Notification. Logged whenever showNotification is called.
  </summary>
</histogram>

<histogram name="Notifications.PersistentNotificationDataDeleted"
    enum="BooleanSuccess">
  <obsolete>
    Deprecated 01/2016, no longer used.
  </obsolete>
  <owner>peter@chromium.org</owner>
  <owner>deepak.m1@samsung.com</owner>
  <summary>
    Recorded when the data associated with a persistent Web Notification gets
    deleted. The value will be true if data deletion succeeded, and false if
    there was an error.
  </summary>
</histogram>

<histogram name="Notifications.PersistentWebNotificationClickResult"
    enum="PlatformNotificationStatus">
  <owner>peter@chromium.org</owner>
  <owner>deepak.m1@samsumg.com</owner>
  <summary>
    Recorded delivery status for persistent notification clicks to a Service
    Worker when handling a click on a persistent WebNotification has finished.
  </summary>
</histogram>

<histogram name="Notifications.PersistentWebNotificationCloseResult"
    enum="PlatformNotificationStatus">
  <owner>peter@chromium.org</owner>
  <owner>nsatragno@chromium.org</owner>
  <summary>
    Records delivery status for persistent notification close events sent to a
    Service Worker when the event has been handled.
  </summary>
</histogram>

<histogram name="Notifications.UsingNativeNotificationCenter"
    enum="BooleanNativeNotifications">
  <owner>thomasanderson@chromium.org</owner>
  <summary>
    Indicates if Chrome is using system notifications or the Chrome notification
    center. Logged on each start up.
  </summary>
</histogram>

<histogram name="Notifications.Windows.ActivationStatus"
    enum="WindowsNotificationActivationStatus">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <owner>chengx@chromium.org</owner>
  <summary>
    The status of Activation requests in NotificationPlatformBridgeWin (Windows
    only). Logged whenever an activation from a notification occurs.
  </summary>
</histogram>

<histogram name="Notifications.Windows.CloseStatus"
    enum="WindowsNotificationCloseStatus">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    The status of Close requests in NotificationPlatformBridgeWin (Windows
    only). Logged whenever a notification is closed.
  </summary>
</histogram>

<histogram name="Notifications.Windows.CreateToastManagerErrorCode"
    enum="Hresult">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    The HRESULT returned by the Windows Action Center, when trying to create a
    toast manager fails. This provides a more detailed error in the cases the
    histogram Notifications.Windows.DisplayStatus reported
    CREATE_TOAST_NOTIFIER_WITH_ID_FAILED.
  </summary>
</histogram>

<histogram name="Notifications.Windows.DisplayFailure" enum="Hresult">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    The HRESULT returned by the Windows Action Center, when showing a
    notification fails.
  </summary>
</histogram>

<histogram name="Notifications.Windows.DisplayStatus"
    enum="WindowsNotificationDisplayStatus">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    The status of Display requests in NotificationPlatformBridgeWin (Windows
    only). Logged whenever a notification is displayed. For a more detailed
    error about CREATE_TOAST_NOTIFIER_WITH_ID_FAILED and SHOWING_TOAST_FAILED,
    see Notification.Windows histograms CreateToastManagerErrorCode and
    ShowFailedErrorCode (respectively).
  </summary>
</histogram>

<histogram name="Notifications.Windows.GetDisplayedLaunchIdStatus"
    enum="WindowsNotificationGetDisplayedLaunchIdStatus">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    The status of decoding launch ids while processing a GetDisplayed requests
    in NotificationPlatformBridgeWin (Windows only). Logged whenever a request
    to retrieve all displayed notifications comes in.
  </summary>
</histogram>

<histogram name="Notifications.Windows.GetDisplayedStatus"
    enum="WindowsNotificationGetDisplayedStatus">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    The status of GetDisplayedStatus requests in NotificationPlatformBridgeWin
    (Windows only). Logged whenever a request to retrieve all displayed
    notifications comes in.
  </summary>
</histogram>

<histogram name="Notifications.Windows.GetNotificationLaunchIdStatus"
    enum="WindowsNotificationGetNotificationLaunchIdStatus">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    The status of GetNotificationLaunchId requests in
    NotificationPlatformBridgeWin (Windows only). Logged whenever a request to
    decode the GetNotificationLaunchId comes in.
  </summary>
</histogram>

<histogram name="Notifications.Windows.GetSettingPolicy"
    enum="WindowsNotificationGetSettingPolicy">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    The policy value provided by get_Setting in NotificationPlatformBridgeWin
    (Windows only). Logged whenever a request to show a notification comes in.
  </summary>
</histogram>

<histogram name="Notifications.Windows.GetSettingStatus"
    enum="WindowsNotificationGetSettingStatus">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    The return value of get_Setting calls in NotificationPlatformBridgeWin
    (Windows only). Logged whenever a request to show a notification comes in.
  </summary>
</histogram>

<histogram name="Notifications.Windows.HandleEventStatus"
    enum="WindowsNotificationHandleEventStatus">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    The status of HandleEvent requests in NotificationPlatformBridgeWin (Windows
    only). Logged whenever a notification event is being handled.
  </summary>
</histogram>

<histogram name="Notifications.Windows.HistoryStatus"
    enum="WindowsNotificationHistoryStatus">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    The status of History requests in NotificationPlatformBridgeWin (Windows
    only). Logged whenever history is requested for notifications.
  </summary>
</histogram>

<histogram name="Notifications.Windows.ImageRetainerDestructionTime" units="ms">
  <obsolete>
    Obsolete 10/2018 as we no long record this metric.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Amount of time taken to destroy a NotificationImageRetainer object when the
    image directory is valid.
  </summary>
</histogram>

<histogram name="Notifications.Windows.ImageRetainerInitializationTime"
    units="ms">
  <obsolete>
    Obsolete 10/2018 as we no long record this metric.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Amount of time taken to initialize the image retainer directory.
  </summary>
</histogram>

<histogram name="Notifications.Windows.LaunchIdDecodeStatus"
    enum="WindowsNotificationLaunchIdDecodeStatus">
  <owner>chengx@chromium.org</owner>
  <owner>finnur@chromium.org</owner>
  <summary>
    Used to indicate the status of decoding an input launch id string (Windows
    only). Logged whenever a notification event is being handled.
  </summary>
</histogram>

<histogram name="Notifications.Windows.OnDismissedStatus"
    enum="WindowsNotificationOnDismissedStatus">
  <owner>chengx@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    The status of OnDismissed requests in NotificationPlatformBridgeWin (Windows
    only). Logged whenever a dismiss event is handled.
  </summary>
</histogram>

<histogram name="Notifications.Windows.OnFailedStatus"
    enum="WindowsNotificationOnFailedStatus">
  <owner>chengx@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    The status of OnFailed requests in NotificationPlatformBridgeWin (Windows
    only). Logged whenever a failed event is handled.
  </summary>
</histogram>

<histogram name="Notifications.Windows.SetReadyCallbackStatus"
    enum="WindowsNotificationSetReadyCallbackStatus">
  <obsolete>
    Replaced with Notifications.Windows.SetReadyCallbackStatus2 which is not
    skewed.
  </obsolete>
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    The status of SetReadyCallback requests in NotificationPlatformBridgeWin
    (Windows only). Logged once at startup.
  </summary>
</histogram>

<histogram name="Notifications.Windows.SetReadyCallbackStatus2"
    enum="WindowsNotificationSetReadyCallbackStatus2">
  <owner>chengx@chromium.org</owner>
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    The status of SetReadyCallback requests in NotificationPlatformBridgeWin
    (Windows only). Logged once at startup.
  </summary>
</histogram>

<histogram name="Notifications.Windows.ShowFailedErrorCode" enum="Hresult">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    The HRESULT returned by the Windows Action Center, when trying to create a
    toast manager fails. This provides a more detailed error in the cases the
    histogram Notifications.Windows.DisplayStatus reported SHOWING_TOAST_FAILED.
  </summary>
</histogram>

<histogram name="Notifications.Windows.StartMenuShortcutStatus"
    enum="WindowsNotificationStartMenuShortcutStatus">
  <owner>chengx@chromium.org</owner>
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Used to indicate the status of start menu shortcut (Windows only). Logged
    whenever a notification display attempt is made.
  </summary>
</histogram>

<histogram name="Notifications.Windows.StartMenuShortStatus"
    enum="WindowsNotificationStartMenuShortStatus">
  <obsolete>
    Deprecated 06/2018. Replaced with
    Notifications.Windows.StartMenuShortcutStatus where typo is fixed.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Used to indicate the status of start menu shortcut (Windows only). Logged
    whenever a notification display attempt is made.
  </summary>
</histogram>

<histogram name="Notifications.Windows.ToastActivatorCLSIDMismatchReason"
    enum="WindowsToastActivatorCLSIDMismatchReason" expires_after="2018-12-30">
  <obsolete>
    Deprecated 12/2018 as this is no longer needed.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Used to indicate the reason why toast activator CLSID in shortcut is
    different from the one retrieved from the installer (Windows only). Logged
    whenever this mismatch is detected during a notification display attempt.
  </summary>
</histogram>

<histogram name="Notifications.Windows.UserManagerShowupStatus"
    enum="WindowsNotificationUserManagerShowupStatus">
  <obsolete>
    Deprecated 05/2018 as this is no longer needed.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Used to indicate the code path where the user profile manager shows up
    during startup (Windows only). Logged whenever a notification event is being
    handled.
  </summary>
</histogram>

<histogram name="Notifications.XPCConnectionEvent" enum="XPCConnectionEvent">
  <owner>beverloo@chromium.org</owner>
  <owner>rsesek@chromium.org</owner>
  <summary>
    Mac only. Records the different events of a Notification XPC connection.
    These are recorded by monitoring the different error callbacks provided by
    the XPC connection object.
  </summary>
</histogram>

<histogram name="NQE.Accuracy.DownstreamThroughputKbps.EstimatedObservedDiff"
    units="kbps">
  <obsolete>
    Obsoleted in Jan 2019
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the difference between the estimated downstream throughput (in
    kilobits per second) and the observed downstream throughput (in kilobits per
    second). Downstream throughput estimated by the network quality estimator at
    the time of navigation start is compared with the downstream throughput
    observed during the specified time interval following the start of the
    navigation.
  </summary>
</histogram>

<histogram name="NQE.Accuracy.EffectiveConnectionType.EstimatedObservedDiff"
    units="Effective connection type">
  <obsolete>
    Obsoleted in Jan 2019
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the difference between the estimated effective connection type and
    the observed effective connection type. Effective connection type is
    estimated by the network quality estimator at the time of navigation start
    is compared with the effective connection type observed during the specified
    time interval following the start of the navigation.
  </summary>
</histogram>

<histogram name="NQE.Accuracy.HttpRTT.EstimatedObservedDiff" units="ms">
  <obsolete>
    Obsoleted in Jan 2019
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the difference between the estimated HTTP RTT and the observed HTTP
    RTT. HTTP RTT estimated by the network quality estimator at the time of
    navigation start is compared with the HTTP RTT observed during the specified
    time interval following the start of the navigation.
  </summary>
</histogram>

<histogram name="NQE.Accuracy.TransportRTT.EstimatedObservedDiff" units="ms">
  <obsolete>
    Obsoleted in Jan 2019
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the difference between the estimated transport RTT and the observed
    transport RTT. Transport RTT estimated by the network quality estimator at
    the time of navigation start is compared with the transport RTT observed
    during the specified time interval following the start of the navigation.
  </summary>
</histogram>

<histogram name="NQE.BDPComputationKbps.OnECTComputation" units="Kbps">
  <obsolete>
    Obsoleted in October 2018
  </obsolete>
  <owner>devdeepray@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The value of the downstream throughput used to compute the bandwidth delay
    product. The 80th percentile throughput observation is used to calculate the
    bandwidth delay product. This gets recorded everytime the BDP is computed.
  </summary>
</histogram>

<histogram name="NQE.BDPComputationTransportRTT.OnECTComputation" units="ms">
  <obsolete>
    Obsoleted in October 2018
  </obsolete>
  <owner>devdeepray@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    The value of the TransportRTT used to compute the bandwidth delay product.
    The 20th percentile TransportRTT observation is used to calculate the
    bandwidth delay product. This gets recorded everytime the BDP is computed.
  </summary>
</histogram>

<histogram name="NQE.BDPKbits.OnECTComputation" units="kbits">
  <obsolete>
    Obsoleted in October 2018
  </obsolete>
  <owner>devdeepray@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    An estimate of the bandwidth delay product which is computed on main-frame
    requests. It is calculated using the 80th percentile throughput and 20th
    percentile TransportRTT values whenever |ComputeEffectiveConnectionType| is
    called and the throughput and TransportRTT estimates are available.
  </summary>
</histogram>

<histogram name="NQE.CachedNetworkQualityAvailable" enum="BooleanAvailable">
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records if the cached network quality (from memory or from a persistent
    source) was available. Recorded right after connection change event.
  </summary>
</histogram>

<histogram name="NQE.CellularSignalStrength.AtECTComputation"
    units="Signal Strength Level" expires_after="2019-12-01">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Cellular signal strength level reported by the device at the time of ECT
    computation. Recorded only on cellular networks, and only when the value is
    available. The value ranges between 0 and 4 (both inclusive).
  </summary>
</histogram>

<histogram name="NQE.CellularSignalStrength.ECTReduction"
    units="ECT level reduction" expires_after="2019-12-01">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Number of buckets by which effective connection type was reduced or capped
    due to low cellular signal strength. Recorded only on cellular networks, and
    only when the value of the effective connection typed is capped.
  </summary>
</histogram>

<histogram name="NQE.CellularSignalStrength.LevelAvailable"
    enum="BooleanAvailable">
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Whether the signal strength for the cellular network was available or not.
    Recorded right before a connection change event. Recorded only on cellular
    connections on Android platform.
  </summary>
</histogram>

<histogram name="NQE.CellularSignalStrength.LevelDifference"
    units="Signal Strength Level">
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Difference between the minimum and the maximum received signal strength
    since the last connection change event. Recorded only on cellular
    connections on Android platform when the cellular signal strength was
    available. Recorded right before a connection change event.
  </summary>
</histogram>

<histogram name="NQE.CellularSignalStrengthAvailable" enum="BooleanAvailable">
  <obsolete>
    Replaced by NQE.CellularSignalStrength.LevelAvailable in June 2017.
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Whether the signal strength for the cellular network was available or not.
    Recorded right before a connection change event. Recorded only on cellular
    connections on Android platform.
  </summary>
</histogram>

<histogram name="NQE.CellularSignalStrengthDifference" units="dBm">
  <obsolete>
    Replaced by NQE.CellularSignalStrength.LevelDifference in June 2017.
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Difference between the minimum and the maximum received signal strength
    since the last connection change event. Recorded only on cellular
    connections on Android platform when the cellular signal strength was
    available. Recorded right before a connection change event.
  </summary>
</histogram>

<histogram name="NQE.ContentObserver.NetworkQualityMeaningfullyChanged"
    enum="BooleanChanged">
  <owner>tbansal@chromium.org</owner>
  <summary>
    This metric is recorded when the network quality change notification is
    received by content and before the network quality change is notified to the
    renderers. Records true if the notified network quality change is
    meaningfully different from the last network quality notified to the
    renderers.
  </summary>
</histogram>

<histogram name="NQE.Correlation.ResourceLoadTime.0Kb_128Kb">
  <obsolete>
    Obsoleted in December 2017.
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records estimated network quality (estimated RTT, estimated downlink
    bandwidth), resource load size, and the resource load time in a single UMA
    sample. This metric is recorded randomly when a resource load finishes. Each
    sample in this sparse histogram consists of multiple metrics (each occupying
    few bits in the sample). The data in the histogram would be analyzed using
    custom scripts. A sample is recorded only when the resource size is between
    0 Kilobits (inclusive) and 128 Kilobits (exclusive).
  </summary>
</histogram>

<histogram name="NQE.DifferenceRTTActualAndEstimated" units="ms">
  <obsolete>
    Replaced in June 2016 by NQE.Accuracy.HttpRTT.* metrics.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Difference between the actual RTT observation and the estimated RTT. This
    metric is recorded on every request when the actual observation is higher
    than the estimated value.
  </summary>
</histogram>

<histogram name="NQE.DifferenceRTTEstimatedAndActual" units="ms">
  <obsolete>
    Replaced in June 2016 by NQE.Accuracy.HttpRTT.* metrics.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Difference between the estimated RTT and the actual RTT observation. This
    metric is recorded on every request when the estimated value is higher than
    the actual observation.
  </summary>
</histogram>

<histogram name="NQE.EffectiveConnectionType.OnECTComputation"
    enum="NQEEffectiveConnectionType">
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Effective connection type estimated by the network quality estimator.
    Recorded every time the effective connection type is computed.
  </summary>
</histogram>

<histogram name="NQE.EndToEndRTT.OnECTComputation" units="ms">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Rough estimate of the computed end-to-end round trip time. Recorded by the
    network quality estimator every time the effective connection type is
    computed.
  </summary>
</histogram>

<histogram name="NQE.EstimateAvailable.MainFrame" enum="Boolean">
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    This histogram records whether the estimate of the network quality metric
    was available or not. Recorded at every main frame request.
  </summary>
</histogram>

<histogram name="NQE.ExternalEstimateProvider.DownlinkBandwidth" units="Kbps">
  <obsolete>
    Obsoleted in February 2018.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Records the estimate of the downlink bandwidth (in Kbps) provided by the
    external estimate provided. Recorded every time the external estimate
    provider provides a valid downlink bandwidth estimate to the network quality
    estimator.
  </summary>
</histogram>

<histogram name="NQE.ExternalEstimateProvider.RTT" units="ms">
  <obsolete>
    Obsoleted in February 2018.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Records the estimate of the RTT provided by the external estimate provided.
    Recorded every time the external estimate provider provides a valid RTT
    estimate to the network quality estimator.
  </summary>
</histogram>

<histogram
    name="NQE.ExternalEstimateProvider.RTT.Accuracy.EstimatedObservedDiff"
    units="ms">
  <obsolete>
    Obsoleted in February 2018.
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the difference between the HTTP RTT estimated by the external
    estimate provider and the observed HTTP RTT. The HTTP RTT estimated by the
    external estimate provider at the time of navigation start is compared with
    the HTTP RTT observed during the specified time interval following the start
    of the navigation.
  </summary>
</histogram>

<histogram name="NQE.ExternalEstimateProviderStatus"
    enum="NQEExternalEstimateProviderStatus">
  <obsolete>
    Obsoleted in February 2018.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Records the interaction (availability and query count) of Network Quality
    Estimator with external estimates provider. Logged on network change events,
    everytime external estimate provider is queried for an updated estimate, and
    when it proactively notifies that an updated estimate is available.
  </summary>
</histogram>

<histogram name="NQE.FastestRTT" units="ms">
  <obsolete>
    Obsoleted in August 2017
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Rough estimate of the fastest round-trip-time, before a connectivity change
    is detected.

    This metric is recorded when a connectivity change is detected. This will
    miss data from users whose connection type never changes and will be biased
    to users whose connection type changes frequently.
  </summary>
</histogram>

<histogram name="NQE.Kbps.ObservationSource" enum="NQEObservationSource">
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Number of Kbps observations indexed by the source of the observation.
    Recorded by the network quality estimator every time a new observation is
    made or synthesized.
  </summary>
</histogram>

<histogram name="NQE.Kbps.OnECTComputation" units="Kbps">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Rough estimate of the downstream peak throughput (in kilobits per second).
    Recorded by the network quality estimator every time the effective
    connection type is computed.
  </summary>
</histogram>

<histogram name="NQE.Kbps.RawObservation" units="Kbps">
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Downstream throughput observation received or synthesized by network quality
    estimator. Observations from different sources are recorded in separate
    histograms.
  </summary>
</histogram>

<histogram name="NQE.MainFrame.EffectiveConnectionType"
    enum="NQEEffectiveConnectionType">
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Effective connection type estimated by network quality estimator. Suffixed
    with the connection type reported by the operating system.

    This metric is recorded on main-frame requests.
  </summary>
</histogram>

<histogram name="NQE.MainFrame.Kbps" units="Kbps">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Rough estimate of the downstream peak throughput at different percentiles.

    This metric is recorded on main-frame requests.
  </summary>
</histogram>

<histogram name="NQE.MainFrame.RTT" units="ms">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Rough estimate of the computed round trip time at the URLRequest layer at
    different percentiles.

    This metric is recorded on main-frame requests.
  </summary>
</histogram>

<histogram name="NQE.MainFrame.TransportRTT" units="ms">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Rough estimate of the computed round trip time at the transport layer at
    different percentiles.

    This metric is recorded on main-frame requests.
  </summary>
</histogram>

<histogram name="NQE.NetworkIdAvailable" enum="BooleanAvailable">
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Whether the NetworkID (SSID of the Wi-Fi network, or the MCC/MNC operator of
    the cellular network) was available or not. Recorded only on Wi-Fi and
    cellular networks. Recorded right after the connection type changes.
  </summary>
</histogram>

<histogram name="NQE.PeakKbps" units="Kbps">
  <obsolete>
    Obsoleted in August 2017
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Rough estimate of downstream peak throughput, before a connectivity change
    is detected.

    This metric is recorded when a connectivity change is detected. This will
    miss data from users whose connection type never changes and will be biased
    to users whose connection type changes frequently.
  </summary>
</histogram>

<histogram name="NQE.Prefs.ReadCount" units="count">
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Number of times the network quality prefs were read by the network quality
    estimator.
  </summary>
</histogram>

<histogram name="NQE.Prefs.ReadSize" units="count">
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Count of the number of network IDs in the prefs read by the network quality
    estimator.
  </summary>
</histogram>

<histogram name="NQE.Prefs.WriteCount" units="count">
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Number of times the network quality prefs were written by the network
    quality estimator.
  </summary>
</histogram>

<histogram name="NQE.RatioEstimatedToActualRTT" units="100 times">
  <obsolete>
    Replaced in June 2016 by NQE.Accuracy.HttpRTT.* metrics.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Ratio of the estimated RTT to the actual RTT observation multiplied by 100.
  </summary>
</histogram>

<histogram name="NQE.RenderThreadNotified" enum="BooleanHit">
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Count of the number of times renderers were notified of the changes in the
    network quality estimator. This metric makes sense to compare in frequency
    relative to other events like the number of page loads or the number of
    renderers seen. It is expected that we will see at least 1 notification per
    renderer (on average), and less than 100.
  </summary>
</histogram>

<histogram name="NQE.RTT" units="ms">
  <obsolete>
    Deprecated 01/2018.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Rough estimate of the computed round trip time at the URLRequest layer at
    different percentiles.

    This metric is recorded immediately after a connectivity change is detected.
    The metric name is suffixed with the connection type before the connectivity
    change was detected. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NQE.RTT.HangingRequest" units="ms">
  <obsolete>
    Obsoleted in Feb 2019.
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <summary>
    HTTP RTT observation received by the network quality estimator. Recorded
    when the request is detected as hanging.
  </summary>
</histogram>

<histogram name="NQE.RTT.NotAHangingRequest.EndToEndRTT" units="ms">
  <obsolete>
    Obsoleted in Feb 2019.
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <summary>
    HTTP RTT observation received by the network quality estimator. Recorded at
    the beginning of a request if the request is detected as not hanging because
    the observed HTTP RTT was comparable to the end to end RTT estimate.
  </summary>
</histogram>

<histogram name="NQE.RTT.NotAHangingRequest.HttpRTT" units="ms">
  <obsolete>
    Obsoleted in Feb 2019.
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <summary>
    HTTP RTT observation received by the network quality estimator. Recorded
    when the request is detected as not hanging because it was comparable to the
    HTTP RTT estimate.
  </summary>
</histogram>

<histogram name="NQE.RTT.NotAHangingRequest.MinHttpBound" units="ms">
  <obsolete>
    Obsoleted in Feb 2019.
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <summary>
    HTTP RTT observation received by the network quality estimator. Recorded
    when the request is detected as not hanging because the RTT value was lower
    than the minimum threshold RTT needed to be categorized as a hanging
    request.
  </summary>
</histogram>

<histogram name="NQE.RTT.NotAHangingRequest.TransportRTT" units="ms">
  <obsolete>
    Obsoleted in Feb 2019.
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <summary>
    HTTP RTT observation received by the network quality estimator. Recorded
    when the request is detected as not hanging because it was comparable to the
    transport RTT estimate.
  </summary>
</histogram>

<histogram name="NQE.RTT.ObservationSource" enum="NQEObservationSource">
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Number of RTT observations indexed by the source of the observation.
    Recorded by the network quality estimator every time a new observation is
    made or synthesized.
  </summary>
</histogram>

<histogram name="NQE.RTT.OnECTComputation" units="ms">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Rough estimate of the round trip time at the URLRequest layer. Recorded by
    the network quality estimator every time the effective connection type is
    computed.
  </summary>
</histogram>

<histogram name="NQE.RTT.RawObservation" units="ms">
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    RTT observation received or synthesized by network quality estimator.
    Observations from different sources are recorded in separate histograms.
  </summary>
</histogram>

<histogram name="NQE.RTTObservations" units="ms">
  <obsolete>
    Replaced in May 2016 by NQE.MainFrame.RTT.* metrics.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    RTT observations at the URLRequest layer made by network quality estimator,
    recorded on every request.
  </summary>
</histogram>

<histogram name="NQE.ThroughputAnalyzer.HangingRequests.Erased" units="count">
  <obsolete>
    Obsoleted in Feb 2019.
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Count of the requests that were marked as hanging by the heuristic algorithm
    in the throughput analyzer in the network quality estimator. A sample is
    recorded everytime the heuristic algorithm is run.
  </summary>
</histogram>

<histogram name="NQE.ThroughputAnalyzer.HangingRequests.NotErased"
    units="count">
  <obsolete>
    Obsoleted in Feb 2019.
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Count of the requests that were not marked as hanging by the heuristic
    algorithm in the throughput analyzer in the network quality estimator. A
    sample is recorded everytime the heuristic algorithm is run.
  </summary>
</histogram>

<histogram name="NQE.ThroughputObservation.Hanging" units="Kbps">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Throughput observation made by network quality estimator, and eventually
    discarded because the window (over which the througput was computed) was
    detected as hanging.
  </summary>
</histogram>

<histogram name="NQE.ThroughputObservation.NotHanging" units="Kbps">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Throughput observation made by network quality estimator, and used when the
    window (over which the througput was computed) was detected as not hanging.
  </summary>
</histogram>

<histogram name="NQE.TransportRTT" units="ms">
  <obsolete>
    Deprecated 01/2018.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Rough estimate of the computed round trip time at the transport layer at
    different percentiles.

    This metric is recorded immediately after a connectivity change is detected.
    The metric name is suffixed with the connection type before the connectivity
    change was detected. This will miss data from users whose connection type
    never changes and will be biased to users whose connection type changes
    frequently.
  </summary>
</histogram>

<histogram name="NQE.TransportRTT.OnECTComputation" units="ms">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Rough estimate of the computed round trip time at the transport layer.
    Recorded by the network quality estimator every time the effective
    connection type is computed.
  </summary>
</histogram>

<histogram name="NQE.UnweightedAverage.Accuracy.HttpRTT.EstimatedObservedDiff"
    units="ms">
  <obsolete>
    Obsoleted in August 2017.
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the difference between the estimated HTTP RTT and the observed HTTP
    RTT. HTTP RTT estimated by the network quality estimator at the time of
    navigation start is compared with the HTTP RTT observed during the specified
    time interval following the start of the navigation. Both the estimated and
    the observed RTT are computed using average algorithm that assigns equal
    weight to all observations.
  </summary>
</histogram>

<histogram name="NQE.UnweightedAverage.MainFrame.RTT" units="ms">
  <obsolete>
    Obsoleted in August 2017.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Rough estimate of the computed round trip time at the URLRequest layer
    computed using average algorithm that assigns equal weight to all
    observations.

    This metric is recorded on main-frame requests.
  </summary>
</histogram>

<histogram name="NQE.WeightedAverage.Accuracy.HttpRTT.EstimatedObservedDiff"
    units="ms">
  <obsolete>
    Obsoleted in August 2017.
  </obsolete>
  <owner>tbansal@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Records the difference between the estimated HTTP RTT and the observed HTTP
    RTT. HTTP RTT estimated by the network quality estimator at the time of
    navigation start is compared with the HTTP RTT observed during the specified
    time interval following the start of the navigation. Both the estimated and
    the observed RTT are computed using weighted average algorithm.
  </summary>
</histogram>

<histogram name="NQE.WeightedAverage.MainFrame.RTT" units="ms">
  <obsolete>
    Obsoleted in August 2017.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    Rough estimate of the computed round trip time at the URLRequest layer
    computed using weighted average algorithm.

    This metric is recorded on main-frame requests.
  </summary>
</histogram>

<histogram name="ntp.searchurls.total">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>TBD</summary>
</histogram>

<histogram name="NtpHandler.AttachShownPageType" enum="NtpPaneType">
  <obsolete>
    Deprecated 10/2011. No longer tracked, replaced with
    NewTabPage.DefaultPageType
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The default pane when the NTP is first opened.</summary>
</histogram>

<histogram name="NtpHandler.SelectedShownPageType" enum="NtpPaneType">
  <obsolete>
    Deprecated 10/2011. No longer tracked, replaced with
    NewTabPage.SelectedPageType
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The pane selected when the user switches panes in the NTP.</summary>
</histogram>

<histogram name="OAuth2Login.AccountRevoked.IsEmailId" enum="Boolean">
  <obsolete>
    Long removed.
  </obsolete>
  <owner>knn@chromium.org</owner>
  <summary>
    This histogram records whether the account ID is actually an email if we
    detect an account that has an account ID but not email.
  </summary>
</histogram>

<histogram name="OAuth2Login.AccountRevoked.MigrationState"
    enum="OAuth2LoginAccountRevokedMigrationState">
  <obsolete>
    Long removed.
  </obsolete>
  <owner>knn@chromium.org</owner>
  <summary>
    This histogram records the account ID migration status from email to GAIA ID
    if we detect an account that has an account ID but not email.
  </summary>
</histogram>

<histogram name="OAuth2Login.GetOAuth2AccessTokenFailure"
    enum="GoogleServiceAuthError">
  <owner>tbarzic@chromium.org</owner>
  <summary>
    Failure reason of final OAuth2 access token retrieval call during Chrome OS
    login.
  </summary>
</histogram>

<histogram name="OAuth2Login.GetOAuth2AccessTokenRetry"
    enum="GoogleServiceAuthError">
  <owner>tbarzic@chromium.org</owner>
  <summary>
    Retry reason of failed OAuth2 access token retrieval call during Chrome OS
    login.
  </summary>
</histogram>

<histogram name="OAuth2Login.ListAccountsFailure" enum="GoogleServiceAuthError">
  <obsolete>
    Deprecated 2015-05-22. Replaced by Signin.ListAccountsFailure.
  </obsolete>
  <owner>zelidrag@chromium.org</owner>
  <summary>
    Failure reason of final ListAccounts call failure during Chrome OS login.
    This data is now included in Signin.ListAccountsFailure.
  </summary>
</histogram>

<histogram name="OAuth2Login.ListAccountsRetry" enum="GoogleServiceAuthError">
  <obsolete>
    Deprecated 2015-05-22. Replaced by Signin.ListAccountsRetry.
  </obsolete>
  <owner>zelidrag@chromium.org</owner>
  <summary>
    Retry reason of failed ListAccounts call during Chrome OS login. This data
    is now included in Signin.ListAccountsRetry.
  </summary>
</histogram>

<histogram name="OAuth2Login.MergeSessionFailure" enum="GoogleServiceAuthError">
  <owner>tbarzic@chromium.org</owner>
  <summary>
    Failure reason of MergeSession call during Chrome OS login, Chrome Signin or
    account addition. On all OSes as of M44 (previously CrOS only).
  </summary>
</histogram>

<histogram name="OAuth2Login.MergeSessionRetry" enum="GoogleServiceAuthError">
  <owner>tbarzic@chromium.org</owner>
  <summary>
    Retry reason of failed MergeSession call during Chrome OS login, Chrome
    Signin or account addition. On all OSes as of M44 (previously CrOS only).
  </summary>
</histogram>

<histogram name="OAuth2Login.OAuthLoginGaiaCredFailure"
    enum="GoogleServiceAuthError">
  <owner>tbarzic@chromium.org</owner>
  <summary>
    Failure reason of final OAuthLogin (with SID+LSID) call during Chrome OS
    login.
  </summary>
</histogram>

<histogram name="OAuth2Login.OAuthLoginGaiaCredRetry"
    enum="GoogleServiceAuthError">
  <owner>tbarzic@chromium.org</owner>
  <summary>
    Retry reason of failed OAuthLogin (with SID+LSID) call during Chrome OS
    login.
  </summary>
</histogram>

<histogram name="OAuth2Login.OAuthLoginUberTokenFailure"
    enum="GoogleServiceAuthError">
  <obsolete>
    Deprecated 2015-05-22
  </obsolete>
  <owner>zelidrag@chromium.org</owner>
  <summary>
    Failure reason of final OAuthLogin (with uber token) call during Chrome OS
    login. This data is now (M44+) included in Signin.UberTokenFailure.
  </summary>
</histogram>

<histogram name="OAuth2Login.OAuthLoginUberTokenRetry"
    enum="GoogleServiceAuthError">
  <obsolete>
    Deprecated 2015-05-22
  </obsolete>
  <owner>zelidrag@chromium.org</owner>
  <summary>
    Retry reason of failed OAuthLogin (with uber token) call during Chrome OS
    login. This data is now (M44+) included in Signin.UberTokenRetry.
  </summary>
</histogram>

<histogram name="OAuth2Login.PostMergeVerification"
    enum="PostMergeVerificationOutcome">
  <owner>tbarzic@chromium.org</owner>
  <summary>
    Outcome of Chrome OS GAIA cookie post-merge session verification process. It
    measures how often /MergeSession request collided with browser session
    restore process resulting in partially authenticated primary GAIA session.
  </summary>
</histogram>

<histogram name="OAuth2Login.PreMergeVerification"
    enum="PostMergeVerificationOutcome">
  <owner>tbarzic@chromium.org</owner>
  <summary>
    Outcome of Chrome OS GAIA cookie pre-merge session verification process. It
    measures how often we need to perform /MergeSession request to
    re-authenticated exisitng user with GAIA.
  </summary>
</histogram>

<histogram name="OAuth2Login.SeedState" enum="OAuth2LoginSeedState">
  <obsolete>
    Long removed.
  </obsolete>
  <owner>knn@chromium.org</owner>
  <summary>
    Only applicable on M47 on Android. Measure the frequency of a suppressed
    error state when the account is not seeded.
  </summary>
</histogram>

<histogram name="OAuth2Login.SessionRestore" enum="GaiaSessionRestoreOutcome">
  <owner>tbarzic@chromium.org</owner>
  <summary>Outcome of Chrome OS GAIA cookie session restore process.</summary>
</histogram>

<histogram name="OAuth2Login.SessionRestoreTimeToFailure" units="ms">
  <owner>tbarzic@chromium.org</owner>
  <summary>How long it takes for the session restore to fail.</summary>
</histogram>

<histogram name="OAuth2Login.SessionRestoreTimeToSuccess" units="ms">
  <owner>tbarzic@chromium.org</owner>
  <summary>
    How long it takes for the session restore to finish succeessfully.
  </summary>
</histogram>

<histogram name="OccludedWindowMouseEvents" units="events"
    expires_after="2019-12-01">
  <owner>davidbienvenu@chromium.org</owner>
  <owner>fdoray@chromium.org</owner>
  <summary>
    Incremented each time a mouse event is handled by a window that is marked as
    occluded. This number should be 0 or very close to 0. It should be much less
    than the number of times a window is mark occluded -
    WindowOcclusionChanged.Occluded.
  </summary>
</histogram>

<histogram name="OfflineIndicator.CTR" enum="OfflineIndicatorCTREvent"
    expires_after="2019-06-30">
  <owner>dimich@chromium.org</owner>
  <owner>jianli@chromium.org</owner>
  <summary>
    Records events related to click through rate (CTR) calculation for Offline
    Indicator UI. The CTR can be calculated by computing Clicked/Displayed.
  </summary>
</histogram>

<histogram base="true" name="OfflinePages.AccessCount">
  <owner>jianli@chromium.org</owner>
  <summary>
    Number of accesses to the offline page since its creation. This is reported
    when the offline page was deleted.
  </summary>
</histogram>

<histogram name="OfflinePages.AccessEntryPoint"
    enum="OfflinePagesAccessEntryPoint">
  <owner>jianli@chromium.org</owner>
  <summary>
    Logs the UI location from which an offline page was launched.
  </summary>
</histogram>

<histogram name="OfflinePages.AccessPageCount"
    enum="OfflinePagesNamespaceEnumeration">
  <owner>dimich@chromium.org</owner>
  <summary>
    Counts the number of times an offline page is accessed. Events are reported
    per offline pages namespace.
  </summary>
</histogram>

<histogram name="OfflinePages.AggregatedRequestResult"
    enum="OfflinePagesAggregatedRequestResult">
  <obsolete>
    Deprecated 2016-10, and replaced by OfflinePages.AggregatedRequestResult2.
  </obsolete>
  <owner>dimich@chromium.org</owner>
  <owner>jianli@chromium.org</owner>
  <summary>Result of servicing requests that may contain offline page.</summary>
</histogram>

<histogram name="OfflinePages.AggregatedRequestResult2"
    enum="OfflinePagesAggregatedRequestResult">
  <owner>dimich@chromium.org</owner>
  <owner>jianli@chromium.org</owner>
  <summary>Result of servicing requests that may contain offline page.</summary>
</histogram>

<histogram base="true"
    name="OfflinePages.ArchiveManager.ArchiveDirsCreationResult"
    enum="PlatformFileError">
  <obsolete>
    Deprecated 2017-10, and replaced by
    OfflinePages.ArchiveManager.ArchiveDirsCreationResult2 with suffixes for
    temporary and persistent pages.
  </obsolete>
  <owner>dimich@chromium.org</owner>
  <summary>
    This is recorded every time the archive directory is being created. It
    doesn't include the case which the archive directory exists.
  </summary>
</histogram>

<histogram name="OfflinePages.ArchiveManager.ArchiveDirsCreationResult2"
    enum="PlatformFileError">
  <owner>dimich@chromium.org</owner>
  <summary>
    This is recorded every time the archive directory is being created. It
    doesn't include the case which the archive directory exists. It has suffixes
    indicating results for temporary or persistent archives directories.
  </summary>
</histogram>

<histogram name="OfflinePages.AutoFetch.CompleteNotificationAction"
    enum="OfflinePagesAutoFetchNotificationAction" expires_after="2019-08-30">
  <owner>harringtond@google.com</owner>
  <owner>carlosk@chromium.org</owner>
  <summary>
    This is recorded every time the auto-fetch complete notification is shown or
    interacted with.
  </summary>
</histogram>

<histogram name="OfflinePages.AutoFetch.InProgressNotificationAction"
    enum="OfflinePagesAutoFetchNotificationAction" expires_after="2019-08-30">
  <owner>harringtond@google.com</owner>
  <owner>carlosk@chromium.org</owner>
  <summary>
    This is recorded every time the auto-fetch in-progress notification is shown
    or interacted with.
  </summary>
</histogram>

<histogram name="OfflinePages.Background.BackgroundLoadingFailedCode"
    enum="NetErrorCodes">
  <owner>chili@chromium.org</owner>
  <summary>The error codes that caused a page load failure.</summary>
</histogram>

<histogram name="OfflinePages.Background.CctApiDisableStatus"
    enum="OfflinePagesCctApiPrerenderAllowedStatus">
  <owner>petewil@chromium.org</owner>
  <summary>
    Reason for the Chrome Custom Tabs API prerender call to be ignored.

    There are several causes for the Chrome Custom Tabs API calls to be ignored,
    this tracks the potential causes so we can see how often the prerenderer
    doesn't prerender due to these being switched off. Since this is checked
    elsewhere (CCTAPI), this only catches the user switching off the third party
    cookies or navigation prediction after the CCT API has checked.
  </summary>
</histogram>

<histogram
    name="OfflinePages.Background.EffectiveConnectionType.OffliningStartType"
    enum="NQEEffectiveConnectionType">
  <owner>petewil@chromium.org</owner>
  <summary>
    Effective connection type at the start of an offlining attempt for an
    attempt that eventually failed.

    This metric is recorded for RequestCoordinator::SavePageLater API calls.
  </summary>
</histogram>

<histogram name="OfflinePages.Background.EffectiveConnectionType.PauseRequests"
    enum="NQEEffectiveConnectionType">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Effective connection type when pausing one or more background loads is
    requested.

    This metric is recorded for RequestCoordinator::PauseRequests API calls.
  </summary>
</histogram>

<histogram
    name="OfflinePages.Background.EffectiveConnectionType.RemoveRequests"
    enum="NQEEffectiveConnectionType">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Effective connection type when removing one or more background loads is
    requested.

    This metric is recorded for RequestCoordinator::RemoveRequests API calls.
  </summary>
</histogram>

<histogram
    name="OfflinePages.Background.EffectiveConnectionType.ResumeRequests"
    enum="NQEEffectiveConnectionType">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Effective connection type when resuming one or more background loads is
    requested.

    This metric is recorded for RequestCoordinator::ResumeRequests API calls.
  </summary>
</histogram>

<histogram name="OfflinePages.Background.EffectiveConnectionType.SavePageLater"
    enum="NQEEffectiveConnectionType">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Effective connection type when a background load is requested.

    This metric is recorded for RequestCoordinator::SavePageLater API calls.
  </summary>
</histogram>

<histogram name="OfflinePages.Background.FinalSavePageResult"
    enum="OfflinePagesBackgroundSavePageResult">
  <owner>chili@chromium.org</owner>
  <summary>
    Status code of background offlining requests at the final step.
  </summary>
</histogram>

<histogram name="OfflinePages.Background.ImmediateStart.AvailableRequestCount">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Number of queued background load requests available for processing when
    processing starts immediately (vs. scheduled). This is for non-svelte
    devices (where svelte is determined by base::SysInfo::IsLowEnd()).
  </summary>
</histogram>

<histogram
    name="OfflinePages.Background.ImmediateStart.AvailableRequestCount.Svelte">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Number of queued background load requests available for processing when
    processing starts immediately (vs. scheduled). This is for svelte devices
    (where svelte is determined by base::SysInfo::IsLowEnd()).
  </summary>
</histogram>

<histogram
    name="OfflinePages.Background.ImmediateStart.UnavailableRequestCount">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Number of queued background load requests unavailable for processing when
    processing starts immediately (vs. scheduled). This is for non-svelte
    devices (where svelte is determined by base::SysInfo::IsLowEnd()).
  </summary>
</histogram>

<histogram
    name="OfflinePages.Background.ImmediateStart.UnavailableRequestCount.Svelte">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Number of queued background load requests unavailable for processing when
    processing starts immediately (vs. scheduled). This is for svelte devices
    (where svelte is determined by base::SysInfo::IsLowEnd()).
  </summary>
</histogram>

<histogram name="OfflinePages.Background.ImmediateStartStatus"
    enum="OfflinePagesBackgroundImmediateStartStatus">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Status of attempt to immediately start offlining a page in the background
    while application is still concurrently using the foreground. This may be
    attempted when an web page download is initially requested or resumed.
  </summary>
</histogram>

<histogram name="OfflinePages.Background.LoadingErrorStatusCode"
    enum="CombinedHttpResponseAndNetErrorCode">
  <owner>chili@chromium.org</owner>
  <summary>
    The combined http and net error codes that caused a page load failure.
  </summary>
</histogram>

<histogram name="OfflinePages.Background.OfflinerRequestStatus"
    enum="OfflinePagesBackgroundOfflinerRequestStatus">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Status code of background offlining (loading and saving) requests.
  </summary>
</histogram>

<histogram name="OfflinePages.Background.OffliningPreviewStatus"
    enum="BooleanEnabled">
  <owner>petewil@chromium.org</owner>
  <summary>
    Whether any previews were selected for a page we were asked to make
    available offline.
  </summary>
</histogram>

<histogram name="OfflinePages.Background.RequestFailure.StartedAttemptCount">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Number of started attempts by failed background load requests.
  </summary>
</histogram>

<histogram name="OfflinePages.Background.RequestSuccess.StartedAttemptCount">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Number of started attempts by successful background load requests.
  </summary>
</histogram>

<histogram name="OfflinePages.Background.ResourceCompletion.Css"
    enum="BooleanEnabled">
  <owner>petewil@chromium.org</owner>
  <summary>
    True if all requested CSS was loaded when a background page loaded.
  </summary>
</histogram>

<histogram name="OfflinePages.Background.ResourceCompletion.Image"
    enum="BooleanEnabled">
  <owner>petewil@chromium.org</owner>
  <summary>
    True if all requested images were loaded when a background page loaded.
  </summary>
</histogram>

<histogram name="OfflinePages.Background.ResourceCompletion.Xhr"
    enum="BooleanEnabled">
  <owner>petewil@chromium.org</owner>
  <summary>
    True if all requested XHRs were completed when a background page loaded.
  </summary>
</histogram>

<histogram name="OfflinePages.Background.SavePageFromCCT">
  <owner>chili@chromium.org</owner>
  <summary>Whether the save page result came from chrome custom tabs.</summary>
</histogram>

<histogram name="OfflinePages.Background.ScheduledStart.AvailableRequestCount">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Number of queued background load requests available for processing when
    background scheduled processing starts. This is for non-svelte devices
    (where svelte is determined by base::SysInfo::IsLowEnd()).
  </summary>
</histogram>

<histogram
    name="OfflinePages.Background.ScheduledStart.AvailableRequestCount.Svelte">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Number of queued background load requests available for processing when
    background scheduled processing starts. This is for svelte devices (where
    svelte is determined by base::SysInfo::IsLowEnd()).
  </summary>
</histogram>

<histogram
    name="OfflinePages.Background.ScheduledStart.UnavailableRequestCount">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Number of queued background load requests unavailable for processing when
    background scheduled processing starts. This is for non-svelte devices
    (where svelte is determined by base::SysInfo::IsLowEnd()).
  </summary>
</histogram>

<histogram
    name="OfflinePages.Background.ScheduledStart.UnavailableRequestCount.Svelte">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Number of queued background load requests unavailable for processing when
    background scheduled processing starts. This is for svelte devices (where
    svelte is determined by base::SysInfo::IsLowEnd()).
  </summary>
</histogram>

<histogram name="OfflinePages.Background.TimeToCanceled" units="seconds">
  <owner>dougarnett@chromium.org</owner>
  <summary>Time from background request until it was canceled.</summary>
</histogram>

<histogram name="OfflinePages.Background.TimeToSaved" units="seconds">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Time from background request until it was successfully saved.
  </summary>
</histogram>

<histogram name="OfflinePages.Background.TimeToStart" units="ms">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Time from background request until processing it was first started. This is
    for non-svelte devices.
  </summary>
</histogram>

<histogram name="OfflinePages.Background.TimeToStart.Svelte" units="ms">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Time from background request until processing it was first started on svelte
    device. Svelte is determined by base::SysInfo::IsLowEnd().
  </summary>
</histogram>

<histogram name="OfflinePages.Background.UnsupportedScheme.ConnectionType"
    enum="NetworkConnectionType">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Connection type when prerenderer reports Unsupported Scheme error.

    To give insight about Unsupported Scheme errors that may be due to lost
    network connection (as data URL used for rendering an error page will
    manifest as an Unsupported Scheme error by the prerenderer).
  </summary>
</histogram>

<histogram name="OfflinePages.BatchDelete.Count">
  <obsolete>
    Deprecated 2/2018. No longer used.
  </obsolete>
  <owner>jianli@chromium.org</owner>
  <summary>Number of offline pages that are deleted in a batch.</summary>
</histogram>

<histogram name="OfflinePages.BatchDelete.TotalPageSize" units="KB">
  <owner>jianli@chromium.org</owner>
  <summary>
    Total size, in kilobytes, of all offline pages that are deleted in a batch.
  </summary>
</histogram>

<histogram name="OfflinePages.CanSaveRecentPage" enum="Boolean"
    expires_after="2019-05-31">
  <owner>carlosk@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>
    Reports whether a web page complies with all requirements for it to be
    allowed to be saved as an offline page. This is reported only on Android,
    after a successful main frame navigation is finished.
  </summary>
</histogram>

<histogram name="OfflinePages.CleanupThumbnails.Count" units="thumbnails">
  <owner>harringtond@chromium.org</owner>
  <summary>Number of thumbnails removed by the thumbnail cleanup task.</summary>
</histogram>

<histogram name="OfflinePages.ClearAllStatus" enum="OfflinePagesClearAllStatus">
  <obsolete>
    Deprecated 3/2016, and replaced by OfflinePages.ClearAllStatus2.
  </obsolete>
  <owner>jianli@chromium.org</owner>
  <summary>Status code of wiping out the offline page data.</summary>
</histogram>

<histogram name="OfflinePages.ClearAllStatus2"
    enum="OfflinePagesClearAllStatus">
  <owner>jianli@chromium.org</owner>
  <summary>Status code of wiping out the offline page data.</summary>
</histogram>

<histogram name="OfflinePages.ClearStorageBatchSize" units="pages">
  <obsolete>
    Deprecated as of Jan 2018, replaced by
    OfflinePages.ClearTemporaryPages.BatchSize.
  </obsolete>
  <owner>dimich@chromium.org</owner>
  <summary>
    Number of pages deleted in a batch during one clear-storage request.
  </summary>
</histogram>

<histogram name="OfflinePages.ClearStoragePreRunUsage" units="bytes">
  <obsolete>
    Deprecated in Oct 2017 and replaced by OfflinePages.ClearStoragePreRunUsage2
    as it was reporting data in bytes instead of the expected MiB.
  </obsolete>
  <owner>petewil@chromium.org</owner>
  <summary>
    The total storage size used by all offline pages from a specific client
    namespace.
  </summary>
</histogram>

<histogram name="OfflinePages.ClearStoragePreRunUsage2" units="KiB">
  <owner>carlosk@chromium.org</owner>
  <summary>
    The total disk storage size used by all offline pages from a specific client
    namespace.
  </summary>
</histogram>

<histogram name="OfflinePages.ClearStorageResult"
    enum="OfflinePagesClearStorageResult">
  <obsolete>
    Deprecated as of Jan 2018, replaced by
    OfflinePages.ClearTemporaryPages.Result.
  </obsolete>
  <owner>dimich@chromium.org</owner>
  <summary>Result of asking storage manager to clear storage.</summary>
</histogram>

<histogram name="OfflinePages.ClearTemporaryPages.BatchSize" units="pages">
  <owner>dimich@chromium.org</owner>
  <summary>
    Number of pages deleted in a batch in one clear storage task.
  </summary>
</histogram>

<histogram name="OfflinePages.ClearTemporaryPages.Result"
    enum="OfflinePagesClearStorageResult">
  <owner>romax@chromium.org</owner>
  <summary>
    Result of clearing temporary pages to release storage space.
  </summary>
</histogram>

<histogram name="OfflinePages.ClearTemporaryPages.TimeSinceCreation"
    units="minutes">
  <owner>carlosk@chromium.org</owner>
  <summary>
    When a temporary page is deleted due to storage pressure, reports the time
    since its creation. This metric should be useful to track the occurrence of
    &quot;content thrashing&quot;, when automatically created temporary pages
    are forcing the deletion of recently saved temporary pages.
  </summary>
</histogram>

<histogram name="OfflinePages.Consistency.DeleteOrphanedArchivesResult"
    enum="BooleanSuccess">
  <obsolete>
    Deprecated 12/2017, replaced by
    OfflinePages.ConsistencyCheck.Temporary.Result and
    OfflinePages.ConsistencyCheck.Persistent.Result.
  </obsolete>
  <owner>romax@chromium.org</owner>
  <summary>
    Whether an attempt to delete archive files without metadata was successful.
  </summary>
</histogram>

<histogram name="OfflinePages.Consistency.DeletePagesMissingArchiveFileResult"
    enum="OfflinePagesDeletePageResult">
  <obsolete>
    Deprecated 12/2017, replaced by
    OfflinePages.ConsistencyCheck.Temporary.Result and
    OfflinePages.ConsistencyCheck.Persistent.Result.
  </obsolete>
  <owner>romax@chromium.org</owner>
  <summary>
    Whether an attempt to delete pages without archives was successful.
  </summary>
</histogram>

<histogram name="OfflinePages.Consistency.ExpirePagesMissingArchiveFileResult"
    enum="BooleanSuccess">
  <obsolete>
    Deprecated 11/2016, replaced by
    OfflinePages.Consistency.DeletePagesMissingArchiveFileResult.
  </obsolete>
  <owner>romax@chromium.org</owner>
  <summary>
    Whether an attempt to expire pages without archives was successful.
  </summary>
</histogram>

<histogram name="OfflinePages.Consistency.OrphanedArchivesCount">
  <obsolete>
    Deprecated 12/2017, replaced by
    OfflinePages.ConsistencyCheck.Temporary.PagesMissingDbEntryCount and
    OfflinePages.ConsistencyCheck.Persistent.PagesMissingDbEntryCount.
  </obsolete>
  <owner>romax@chromium.org</owner>
  <summary>
    Number of archives without metadata entry when checking consistency.
  </summary>
</histogram>

<histogram name="OfflinePages.Consistency.PagesMissingArchiveFileCount">
  <obsolete>
    Deprecated 12/2017, replaced by
    OfflinePages.ConsistencyCheck.Temporary.PagesMissingArchiveFileCount and
    OfflinePages.ConsistencyCheck.Persistent.PagesMissingArchiveFileCount.
  </obsolete>
  <owner>romax@chromium.org</owner>
  <summary>
    Number of offline pages without archive file when checking consistency.
  </summary>
</histogram>

<histogram name="OfflinePages.ConsistencyCheck.Legacy.DeletedHeadlessFileCount"
    units="files">
  <owner>dimich@chromium.org</owner>
  <summary>
    Number of files which are deleted during legacy dir clearing since they have
    no associated DB entry and live in private directory.
  </summary>
</histogram>

<histogram name="OfflinePages.ConsistencyCheck.Persistent.ExpiredEntryCount"
    units="entries">
  <owner>dimich@chromium.org</owner>
  <summary>
    Number of DB entries (in persistent namespaces) that have been missing their
    files for longer than 365 days, and deleted during maintenance task.
  </summary>
</histogram>

<histogram name="OfflinePages.ConsistencyCheck.Persistent.MissingFileCount"
    units="files">
  <owner>dimich@chromium.org</owner>
  <summary>
    Number of files that are found missing during maintenance task, which is
    also the number of DB entries that are updated with valid file missing time.
  </summary>
</histogram>

<histogram
    name="OfflinePages.ConsistencyCheck.Persistent.PagesMissingArchiveFileCount"
    units="pages">
  <obsolete>
    Deprecated 04/2018, since saving public offline pages to external download
    directory needs a different consistency check strategy.
  </obsolete>
  <owner>romax@chromium.org</owner>
  <summary>
    Number of persistent offline pages without archive file when checking
    consistency. It will only be reported if the number is larger than 0.
  </summary>
</histogram>

<histogram
    name="OfflinePages.ConsistencyCheck.Persistent.PagesMissingDbEntryCount"
    units="pages">
  <obsolete>
    Deprecated 04/2018, since saving public offline pages to external download
    directory needs a different consistency check strategy.
  </obsolete>
  <owner>romax@chromium.org</owner>
  <summary>
    Number of archives without database entry when checking persistent page
    consistency. It will only be reported if the number is larger than 0.
  </summary>
</histogram>

<histogram name="OfflinePages.ConsistencyCheck.Persistent.ReappearedFileCount"
    units="files">
  <owner>dimich@chromium.org</owner>
  <summary>
    Number of files that were marked as missing reappeared in the file system,
    which is also the number of DB entries that removes file missing time.
  </summary>
</histogram>

<histogram name="OfflinePages.ConsistencyCheck.Persistent.Result"
    enum="OfflinePagesSyncOperationResult">
  <owner>dimich@chromium.org</owner>
  <summary>Result of persistent page consistency check.</summary>
</histogram>

<histogram
    name="OfflinePages.ConsistencyCheck.Temporary.PagesMissingArchiveFileCount"
    units="pages">
  <owner>dimich@chromium.org</owner>
  <summary>
    Number of temporary offline pages without archive file when checking
    consistency. It will only be reported if the number is larger than 0.
  </summary>
</histogram>

<histogram
    name="OfflinePages.ConsistencyCheck.Temporary.PagesMissingDbEntryCount"
    units="pages">
  <owner>dimich@chromium.org</owner>
  <summary>
    Number of archives without database entry when checking temporary page
    consistency. It will only be reported if the number is larger than 0.
  </summary>
</histogram>

<histogram name="OfflinePages.ConsistencyCheck.Temporary.Result"
    enum="OfflinePagesSyncOperationResult">
  <owner>dimich@chromium.org</owner>
  <summary>Result of temporary page consistency check.</summary>
</histogram>

<histogram name="OfflinePages.DeletePage.AccessCount">
  <obsolete>
    Deprecated as of 12/2017. Replaced by OfflinePages.AccessCount.
  </obsolete>
  <owner>jianli@chromium.org</owner>
  <summary>
    Number of accesses to the offline page since its creation. This is reported
    when the offline page was deleted.
  </summary>
</histogram>

<histogram name="OfflinePages.DeletePage.FreeSpaceMB" units="MB">
  <obsolete>
    Deprecated 2/2018. No longer used, duplicate of
    OfflinePages.SavePage.FreeSpaceMB.
  </obsolete>
  <owner>jianli@chromium.org</owner>
  <summary>
    The amount of free space available, in megabytes, on the user's device after
    the page is deleted.

    Note that before M52 this operation was started before delete operation.
  </summary>
</histogram>

<histogram name="OfflinePages.DeletePage.FreeSpacePercentage" units="%">
  <obsolete>
    Deprecated as of 5/2016. Marginal applicability.
  </obsolete>
  <owner>jianli@chromium.org</owner>
  <summary>
    The percentage of free space available on the user's device when the page is
    being deleted.
  </summary>
</histogram>

<histogram name="OfflinePages.DeletePage.LastOpenToCreated" units="minutes">
  <obsolete>
    Deprecated as of 01/2018. Replaced by OfflinePages.PageAccessInterval.
  </obsolete>
  <owner>jianli@chromium.org</owner>
  <summary>
    Length of time between when an offline page was created and was opened last
    time. This is reported when the page was deleted.
  </summary>
</histogram>

<histogram name="OfflinePages.DeletePage.PageSize" units="KB">
  <obsolete>
    Deprecated 2/2018. No longer used, duplicate of OfflinePages.PageSize.
  </obsolete>
  <owner>jianli@chromium.org</owner>
  <summary>Size of the offline page, in kilobytes, that was deleted.</summary>
</histogram>

<histogram name="OfflinePages.DeletePage.TimeSinceLastOpen" units="minutes">
  <obsolete>
    Deprecated as of 01/2018. Replaced by OfflinePages.PageAccessInterval.
  </obsolete>
  <owner>jianli@chromium.org</owner>
  <summary>
    Length of time between when an offline page was last opened and was deleted.
  </summary>
</histogram>

<histogram name="OfflinePages.DeletePage.TotalPageSizeAsPercentageOfFreeSpace"
    units="%">
  <obsolete>
    Deprecated as of 03/2018. Replaced by similar metric
    OfflinePages.StorageInfo.InternalUsagePercentage and
    OfflinePages.StorageInfo.ExternalUsagePercentage.
  </obsolete>
  <owner>fgorski@chromium.org</owner>
  <owner>jianli@chromium.org</owner>
  <summary>
    The percentage of space taken by offline pages from the free space that
    could be available, if the feature was not present. I.e. considering
    situation where the user has: Free Space, Offline content, other apps and
    data. This is a percentage of: Offline content / (Offline content + Free
    Space).

    The value will be recorded after user deletes a single or multiple offline
    pages. In case pages are removed in bulk, this value will be reported once.
    This value is only reported with deleting, as we are trying to infer if lack
    of free space might have caused the user to delete.
  </summary>
</histogram>

<histogram name="OfflinePages.DeletePageCount"
    enum="OfflinePagesNamespaceEnumeration">
  <owner>dimich@chromium.org</owner>
  <summary>
    Counts the number of times an offline page is deleted. Events are reported
    per offline pages namespace.
  </summary>
</histogram>

<histogram name="OfflinePages.DeletePageResult"
    enum="OfflinePagesDeletePageResult">
  <owner>jianli@chromium.org</owner>
  <summary>Result of removing an offline copy for a page.</summary>
</histogram>

<histogram name="OfflinePages.DownloadDeletedPageDuplicateCount" units="pages">
  <obsolete>
    Deprecated 2/2018. No longer used.
  </obsolete>
  <owner>dewittj@chromium.org</owner>
  <owner>dimich@chromium.org</owner>
  <summary>
    The number of downloaded pages with the same URL that exist at the time that
    we delete a downloaded page.
  </summary>
</histogram>

<histogram name="OfflinePages.DownloadRequestTimeSinceDuplicateRequested"
    units="seconds">
  <owner>dewittj@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>
    If at request time there is another request with the same URL, this tracks
    this amount of time between creation of the most recent request and the
    current request.
  </summary>
</histogram>

<histogram name="OfflinePages.DownloadRequestTimeSinceDuplicateSaved"
    units="seconds">
  <owner>dewittj@chromium.org</owner>
  <owner>fgorski@chromium.org</owner>
  <summary>
    If at request time there is another downloaded page with the same URL, this
    tracks this amount of time between creation of the most recent existing page
    and the current request.
  </summary>
</histogram>

<histogram name="OfflinePages.DownloadSavedPageDuplicateCount" units="pages">
  <obsolete>
    Deprecated 2/2018. No longer used.
  </obsolete>
  <owner>dewittj@chromium.org</owner>
  <owner>dimich@chromium.org</owner>
  <summary>
    The number of downloaded pages with the same URL that exist at the time that
    we save a downloaded page.
  </summary>
</histogram>

<histogram name="OfflinePages.DownloadSavedPageTimeSinceDuplicateSaved"
    units="seconds">
  <obsolete>
    Deprecated 2/2018. No longer used.
  </obsolete>
  <owner>dewittj@chromium.org</owner>
  <owner>dimich@chromium.org</owner>
  <summary>
    If at save time there is another downloaded page with the same URL, this
    tracks this amount of time between creation of the most recent existing page
    and the current page.
  </summary>
</histogram>

<histogram name="OfflinePages.DownloadUI.PrefetchedItemHasThumbnail"
    enum="BooleanAvailable">
  <owner>harringtond@chromium.org</owner>
  <summary>
    Whether or not a thumbnail was provided for a prefetched offline article.
    Recorded when the item is shown in Downloads Home.
  </summary>
</histogram>

<histogram name="OfflinePages.Edit.BookmarkUrlChangedForOfflinePage"
    enum="BooleanMatched">
  <obsolete>
    Deprecated 5/2016. Offline pages no longer depend on bookmarks UI.
  </obsolete>
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Whether a user-edited bookmark URL had a saved offline page.
  </summary>
</histogram>

<histogram name="OfflinePages.ExpirePage.BatchSize">
  <obsolete>
    Deprecated 11/2016. Offline pages no longer use two-step expiration.
  </obsolete>
  <owner>romax@chromium.org</owner>
  <summary>Number of pages that are expired in a batch.</summary>
</histogram>

<histogram name="OfflinePages.ExpirePage.PageLifetime" units="minutes">
  <obsolete>
    Deprecated 11/2016. Offline pages no longer use two-step expiration.
  </obsolete>
  <owner>romax@chromium.org</owner>
  <summary>
    Length of time between when an offline page was created and was expired.
  </summary>
</histogram>

<histogram name="OfflinePages.ExpirePage.StoreUpdateResult"
    enum="BooleanSuccess">
  <obsolete>
    Deprecated 11/2016. Offline pages no longer use two-step expiration.
  </obsolete>
  <owner>romax@chromium.org</owner>
  <summary>Result of updating expired page in store.</summary>
</histogram>

<histogram name="OfflinePages.ExpirePage.TimeSinceLastAccess" units="minutes">
  <obsolete>
    Deprecated 11/2016. Offline pages no longer use two-step expiration.
  </obsolete>
  <owner>romax@chromium.org</owner>
  <summary>
    Length of time between when an offline page was last opened and was expired.
  </summary>
</histogram>

<histogram name="OfflinePages.Filter.OnlineWhenEntering" enum="Boolean">
  <obsolete>
    Deprecated 5/2016. Offline pages no longer depend on bookmarks UI.
  </obsolete>
  <owner>fgorski@chromium.org</owner>
  <owner>jianli@chromium.org</owner>
  <summary>
    Whether user is connected when entering the filter with offline only
    content.
  </summary>
</histogram>

<histogram name="OfflinePages.Filter.OnlineWhenLeaving" enum="Boolean">
  <obsolete>
    Deprecated 5/2016. Offline pages no longer depend on bookmarks UI.
  </obsolete>
  <owner>fgorski@chromium.org</owner>
  <owner>jianli@chromium.org</owner>
  <summary>
    Whether user is connected when leaving the filter with offline only content.
  </summary>
</histogram>

<histogram name="OfflinePages.FirstOpenSinceCreated" units="minutes">
  <obsolete>
    Deprecated 2/2018. Merged to OfflinePages.PageAccessInterval.
  </obsolete>
  <owner>jianli@chromium.org</owner>
  <summary>
    The time elapsed between creation of the offline page and the first time it
    was opened.
  </summary>
</histogram>

<histogram name="OfflinePages.IncognitoSave" enum="Boolean">
  <obsolete>
    Deprecated 5/2016. Not longer needed.
  </obsolete>
  <owner>jianli@chromium.org</owner>
  <summary>
    Whether the page that was being saved offline was in incognito mode.
  </summary>
</histogram>

<histogram name="OfflinePages.LastN.IsSavingSamePage"
    enum="OfflinePagesLastNIsSavingSamePageEnum" expires_after="2019-05-31">
  <owner>carlosk@chromium.org</owner>
  <summary>
    Upon starting saving a new last_n offline page snapshot, report if that is
    being done for a page that is new (a navigation happened) or for one that
    has been previously saved in the same session (no navigation happened). This
    metric will assist in determining if there is the need to better track
    actual content changes in pages saved more than once by last_n.
  </summary>
</histogram>

<histogram name="OfflinePages.LaunchLocation" enum="StarsLaunchLocation">
  <obsolete>
    Deprecated 5/2016. Offline pages no longer depend on bookmarks UI.
  </obsolete>
  <owner>fgorski@chromium.org</owner>
  <owner>jianli@chromium.org</owner>
  <summary>Logs a UI location from which an offline page is launched.</summary>
</histogram>

<histogram name="OfflinePages.LoadStatus" enum="OfflinePagesLoadStatus">
  <owner>jianli@chromium.org</owner>
  <summary>
    Status code of loading from the offline pages metadata store.
  </summary>
</histogram>

<histogram name="OfflinePages.LoadSuccess" enum="BooleanSuccess">
  <obsolete>
    Deprecated 10/2015, and replaced by OfflinePages.LoadStatus.
  </obsolete>
  <owner>jianli@chromium.org</owner>
  <summary>
    Whether an attempt to load the offline pages metadata store was successful.
  </summary>
</histogram>

<histogram base="true" name="OfflinePages.MhtmlLoadResult"
    enum="MhtmlLoadResult" expires_after="2019-06-30">
  <owner>iwells@chromium.org</owner>
  <owner>carlosk@chromium.org</owner>
  <summary>
    Result of an attempt to load an MHTML archive to display a trusted offline
    page, recorded per offline namespace by OfflinePageTabHelper after renderer
    attempts to load the archive.
  </summary>
</histogram>

<histogram name="OfflinePages.MhtmlLoadResultUntrusted" enum="MhtmlLoadResult"
    expires_after="2019-06-30">
  <owner>iwells@chromium.org</owner>
  <owner>carlosk@chromium.org</owner>
  <summary>
    Result of an attempt to load an MHTML archive to display an untrusted
    offline page, recorded by OfflinePageTabHelper after the renderer attempts
    to load the archive.
  </summary>
</histogram>

<histogram name="OfflinePages.Model.ArchiveDirCreationTime" units="ms">
  <obsolete>
    Deprecated 2/2018. No longer used.
  </obsolete>
  <owner>dewittj@chromium.org</owner>
  <owner>jianli@chromium.org</owner>
  <summary>
    The amount of time to create the offline pages archive directory.
  </summary>
</histogram>

<histogram name="OfflinePages.Model.ConstructionToLoadedEventTime" units="ms">
  <owner>dewittj@chromium.org</owner>
  <owner>jianli@chromium.org</owner>
  <summary>
    The amount of time to create the offline pages archive directory and load
    the offline page model.
  </summary>
</histogram>

<histogram name="OfflinePages.Model.FinalLoadSuccessful" enum="Boolean">
  <obsolete>
    Deprecated 2/2018. No longer used.
  </obsolete>
  <owner>dimich@chromium.org</owner>
  <summary>
    Whether the metadata database was successfully loaded, after possibly
    several retries.
  </summary>
</histogram>

<histogram name="OfflinePages.Model.InitAttemptsSpent" units="attempts">
  <obsolete>
    Deprecated 2/2018. No longer used.
  </obsolete>
  <owner>dimich@chromium.org</owner>
  <summary>
    The count of attempts spent to open the metadata database. In the best case,
    it's 1. There is a small upper limit. This is recorded only at success.
    Failures are counted by OfflinePages.Model.FinalLoadSuccessful.
  </summary>
</histogram>

<histogram name="OfflinePages.OfflinePageCount">
  <obsolete>
    Deprecated 5/2016. This was the dup of OfflinePages.SavedPageCount.
  </obsolete>
  <owner>fgorski@chromium.org</owner>
  <owner>jianli@chromium.org</owner>
  <summary>Number of offline pages the user has. Android only.</summary>
</histogram>

<histogram name="OfflinePages.OfflineUsage" enum="OfflinePagesOfflineUsage">
  <owner>dimich@chromium.org</owner>
  <summary>
    Counts user-days when Chrome was used in specific ways regarding navigation
    to online and offline content. Buckets are mutually exclusive so that only
    one bucket is incremented per reported day. This metric is not recorded to
    UMA immediately due to potential data loss while offline. So day counters
    are persisted to prefs and reported to the histogram only when the next UMA
    data upload is likely to succeed. For more details see:
    https://goo.gl/GJXwFe.
  </summary>
</histogram>

<histogram name="OfflinePages.OfflineUsage.NotOfflineResilient"
    enum="OfflinePagesOfflineUsage" expires_after="2019-05-31">
  <owner>carlosk@chromium.org</owner>
  <owner>dimich@chromium.org</owner>
  <summary>
    Counts user-days when Chrome was used in specific ways regarding navigation
    to online and offline content. Buckets are mutually exclusive so that only
    one bucket is incremented per reported day.

    This metric is a mirror of OfflinePages.OfflineUsage but it doesn't use any
    of the offline resilient mechanisms that one has. Ideally both should report
    exactly the same values but it is expected this one will lose more samples.
  </summary>
</histogram>

<histogram name="OfflinePages.OnlineOnOpen" enum="Boolean">
  <obsolete>
    Deprecated 5/2016. Offline pages no longer depend on bookmarks UI.
  </obsolete>
  <owner>jianli@chromium.org</owner>
  <summary>
    Whether the user was online when a saved page with offline copy was opened.
  </summary>
</histogram>

<histogram name="OfflinePages.OpenSinceLastOpen" units="minutes">
  <obsolete>
    Deprecated 2/2018. Merged to OfflinePages.PageAccessInterval.
  </obsolete>
  <owner>jianli@chromium.org</owner>
  <summary>Length of time between two consecutive opens.</summary>
</histogram>

<histogram base="true" name="OfflinePages.PageAccessInterval" units="minutes">
  <owner>dimich@chromium.org</owner>
  <summary>
    Length of time between accesses to an offline page. This is the same time
    period used for expiring temporary pages. This metric is recorded when an
    offline page is accessed.
  </summary>
</histogram>

<histogram base="true" name="OfflinePages.PageLifetime" units="minutes">
  <owner>jianli@chromium.org</owner>
  <summary>
    Length of time between when an offline page was created and was removed.
  </summary>
</histogram>

<histogram base="true" name="OfflinePages.PageSize" units="KB">
  <owner>jianli@chromium.org</owner>
  <summary>Size of the saved copy of an offline page.</summary>
</histogram>

<histogram name="OfflinePages.PageSizeOnAccess.Offline" units="KiB">
  <owner>carlosk@chromium.org</owner>
  <summary>
    Records the archive size of an offline page loaded during a navigation that
    took place while the device was considered to be offline or with poor
    connectivity.
  </summary>
</histogram>

<histogram name="OfflinePages.PageSizeOnAccess.Online" units="KiB">
  <owner>carlosk@chromium.org</owner>
  <summary>
    Records the archive size of an offline page loaded during a navigation that
    took place while the device was considered to be online.
  </summary>
</histogram>

<histogram name="OfflinePages.PrefetchEnabled" enum="BooleanEnabled">
  <owner>dimich@chromium.org</owner>
  <summary>
    Counts user-days when candidate articles were suggested to the Offline
    Prefetch pipeline while it was enabled. This metric is not recorded to UMA
    immediately due to potential data loss while offline. So day counters are
    persisted to prefs and reported to the histogram only when the next UMA data
    upload is likely to succeed. For more details see: https://goo.gl/GJXwFe.
  </summary>
</histogram>

<histogram name="OfflinePages.Prefetching.ActionAttempts" units="attempts">
  <owner>dewittj@chromium.org</owner>
  <summary>
    Number of attempts to perform a specific retriable pipeline action for each
    finished prefetch item.
  </summary>
</histogram>

<histogram name="OfflinePages.Prefetching.ActionRetryAttempts" units="attempts">
  <obsolete>
    Deprecated 9/2017. Replaced by OfflinePages.Prefetching.ActionAttempts
  </obsolete>
  <owner>carlosk@chromium.org</owner>
  <summary>
    Number of attempts to perform a specific retriable pipeline action for each
    finished prefetch item.
  </summary>
</histogram>

<histogram name="OfflinePages.Prefetching.DownloadedArchiveSizeVsExpected"
    enum="OfflinePrefetchArchiveActualSizeVsExpected">
  <obsolete>
    Deprecated 8/2018.
  </obsolete>
  <owner>carlosk@chromium.org</owner>
  <summary>
    Reports differences between the expected size of a prefetch archive -- as
    reported by the service -- and the actual downloaded file size.
  </summary>
</histogram>

<histogram name="OfflinePages.Prefetching.DownloadedFileSize" units="KiB">
  <owner>carlosk@chromium.org</owner>
  <summary>
    Actual size of archive file successfully downloaded by offline page
    prefetching.
  </summary>
</histogram>

<histogram name="OfflinePages.Prefetching.DownloadExpectedFileSize" units="KiB">
  <owner>carlosk@chromium.org</owner>
  <summary>
    Expected download size of archive file, after gzip content encoding, that
    started being downloaded by offline page prefetching. Sizes reported in this
    metric are less than the sizes reported in DownloadedFileSize due to content
    gzip encoding.
  </summary>
</histogram>

<histogram name="OfflinePages.Prefetching.DownloadFinishedUpdate"
    enum="OfflinePrefetchDownloadFinishedOutcome">
  <owner>carlosk@chromium.org</owner>
  <summary>
    Reports the possible outcomes of an archive download finishing and its
    respective prefetch item being updated in the store. Downloads are expected
    to succeed or fail but a respective item should always exist and be updated.
    The &quot;item not found&quot; cases are exceptions.
  </summary>
</histogram>

<histogram name="OfflinePages.Prefetching.FetchThumbnail.Complete"
    enum="OfflinePagesThumbnailFetchStatus" expires_after="2018-11-30">
  <obsolete>
    Deprecated as of 5/2018. Replaced with
    OfflinePages.Prefetching.FetchThumbnail.Complete2.
  </obsolete>
  <owner>harringtond@chromium.org</owner>
  <summary>
    Records the final status of attempts to fetch thumbnails for prefetched
    offline pages.
  </summary>
</histogram>

<histogram name="OfflinePages.Prefetching.FetchThumbnail.Complete2"
    enum="OfflinePagesThumbnailFetchStatus" expires_after="2019-05-30">
  <obsolete>
    Deprecated as of 2/2019.
  </obsolete>
  <owner>harringtond@chromium.org</owner>
  <owner>carlosk@chromium.org</owner>
  <summary>
    Records the final status of attempts to fetch thumbnails for prefetched
    offline pages. The 1st attempt takes place right after the prefetch item was
    sent to the cloud service as part of a request for the creation of its
    offline snapshot. The 2nd attempt occurs right after the offline snapshot
    was successfully downloaded by the client.
  </summary>
</histogram>

<histogram name="OfflinePages.Prefetching.FetchThumbnail.Start" enum="Boolean">
  <obsolete>
    Deprecated as of 2/2019.
  </obsolete>
  <owner>harringtond@chromium.org</owner>
  <summary>Reports each time a thumbnail fetch is attempted.</summary>
</histogram>

<histogram name="OfflinePages.Prefetching.FinishedItemErrorCode"
    enum="OfflinePrefetchItemErrorCode">
  <owner>carlosk@chromium.org</owner>
  <summary>
    Error code representing the reason why each offline prefetch item was
    finalized.
  </summary>
</histogram>

<histogram name="OfflinePages.Prefetching.ItemLifetime" units="seconds">
  <owner>carlosk@chromium.org</owner>
  <summary>
    The lifetime of an offline prefetch item, from creation until
    &quot;zombie-fication&quot; (after metrics collection).
  </summary>
</histogram>

<histogram name="OfflinePages.Prefetching.NotificationAction"
    enum="OfflinePagePrefetchNotificationAction">
  <owner>dewittj@chromium.org</owner>
  <summary>
    Actions taken with respect to the offline prefetch notification, includes
    show attempts to calculate CTR.
  </summary>
</histogram>

<histogram name="OfflinePages.Prefetching.OfflinePageImportResult"
    enum="OfflinePrefetchPageImportResult">
  <owner>carlosk@chromium.org</owner>
  <summary>
    Final result of an attempt to import a prefetched article into the Offline
    Pages system.
  </summary>
</histogram>

<histogram name="OfflinePages.Prefetching.ServiceGetOperationStatus"
    enum="OfflinePrefetchRequestStatus">
  <owner>petewil@chromium.org</owner>
  <summary>
    Status returned by a request to the Offline Page Service's GetOperation
    method.
  </summary>
</histogram>

<histogram name="OfflinePages.Prefetching.ServiceGetPageBundleStatus"
    enum="OfflinePrefetchRequestStatus">
  <owner>petewil@chromium.org</owner>
  <summary>
    Status returned by a request to the Offline Page Service's GetPageBundle
    method.
  </summary>
</histogram>

<histogram name="OfflinePages.Prefetching.StateCounts"
    enum="OfflinePrefetchItemState">
  <owner>petewil@chromium.org</owner>
  <summary>
    A prefetch item was seen in this state when starting the background task.
  </summary>
</histogram>

<histogram name="OfflinePages.Prefetching.StuckItemState"
    enum="OfflinePrefetchItemState">
  <owner>petewil@chromium.org</owner>
  <summary>
    A prefetch item was found in this state after more than 7 days since its
    creation, time enough for it to have been finalized by the pipeline.
  </summary>
</histogram>

<histogram name="OfflinePages.Prefetching.UniqueUrlsAddedCount" units="urls">
  <owner>dewittj@chromium.org</owner>
  <summary>
    When receiving suggestions in the prefetch pipeline, emits the number of new
    suggestions added to the database. If there is an error, nothing is emitted.
  </summary>
</histogram>

<histogram name="OfflinePages.PrefetchStore.StoreEvent"
    enum="OfflinePagesStoreEvent">
  <owner>fgorski@chromium.org</owner>
  <summary>
    Counts when the offline pages prefetch store is opened or closed.
  </summary>
</histogram>

<histogram name="OfflinePages.PrefetchStore.TimeFromCloseToOpen" units="ms">
  <owner>fgorski@chromium.org</owner>
  <summary>
    Tracks the time between store closing and reopening again within a session.
    The store is meant to close itself after a period of inactivity. We are
    trying to assess how much time the store is unloaded from memory vs. time it
    is loaded and not used. This event will be reported when the store is opened
    after being closed within the same lifetime of Chrome.
  </summary>
</histogram>

<histogram name="OfflinePages.PrefetchUsage" enum="OfflinePagesPrefetchUsage">
  <owner>dimich@chromium.org</owner>
  <summary>
    Counts user-days categorized by how Offline Prefetch performed and had its
    content accessed by the user. Buckets are mutually exclusive so that only
    one bucket is incremented per reported day. This metric is not recorded to
    UMA immediately due to potential data loss while offline. So day counters
    are persisted to prefs and reported to the histogram only when the next UMA
    data upload is likely to succeed. For more details see:
    https://goo.gl/GJXwFe.
  </summary>
</histogram>

<histogram name="OfflinePages.PublishArchive.CreateDirectoryError"
    enum="PlatformFileError">
  <owner>petewil@chromium.org</owner>
  <summary>
    When publishing an archive, we create the download directory if it doesn't
    already exist. If we get an error, we record it here.
  </summary>
</histogram>

<histogram name="OfflinePages.PublishArchive.MoveFileError"
    enum="PopularOSErrno">
  <owner>petewil@chromium.org</owner>
  <summary>
    When publishing an offline page, the move file step can fail. This returns
    the reason for failure as a linux errno.
  </summary>
</histogram>

<histogram name="OfflinePages.PublishArchive.MoveFileFailureReason"
    enum="OfflinePagesPublishArchiveMoveFileFailureReason">
  <owner>petewil@chromium.org</owner>
  <summary>
    When a move file fails for publishing, what caused the failure.
  </summary>
</histogram>

<histogram name="OfflinePages.PublishArchive.PublishSource"
    enum="OfflinePagesPublishSource">
  <owner>petewil@chromium.org</owner>
  <summary>
    When publishing an offline page, a page might not be found. This returns the
    publishing path that was used (ex: by Guid or by OfflineId).
  </summary>
</histogram>

<histogram name="OfflinePages.PublishPageResult"
    enum="OfflinePagesSavePageResult">
  <owner>petewil@chromium.org</owner>
  <summary>
    Failure attempting to move a file while publishing downloaded page.
  </summary>
</histogram>

<histogram name="OfflinePages.RedirectResult" enum="OfflinePagesRedirectResult">
  <obsolete>
    Deprecated 8/2016. Use OfflinePages.RequestResult instead.
  </obsolete>
  <owner>dimich@chromium.org</owner>
  <summary>
    Result of automatic redirect to offline version of the page or back. Emitted
    exactly once when offline-to-online or online-to-offline redirect is
    determined to be needed and conveys the outcome of redirect.
  </summary>
</histogram>

<histogram name="OfflinePages.RedirectToOfflineCount" units="count">
  <obsolete>
    Deprecated 6/2016. Refactored into OfflinePages.RedirectResult.
  </obsolete>
  <owner>jianli@chromium.org</owner>
  <summary>
    Number of times an offline copy was loaded instead when the user is trying
    to load the online version of a saved page and there is no network
    connection.
  </summary>
</histogram>

<histogram name="OfflinePages.RedirectToOnlineCount" units="count">
  <obsolete>
    Deprecated 6/2016. Refactored into OfflinePages.RedirectResult.
  </obsolete>
  <owner>jianli@chromium.org</owner>
  <summary>
    Number of times an online version was loaded instead when the user is trying
    to load the offline copy of a saved page and there is network connection.
    connection.
  </summary>
</histogram>

<histogram name="OfflinePages.RequestJob.IntentDataChangedAfterValidation"
    enum="BooleanChanged">
  <owner>jianli@chromium.org</owner>
  <summary>
    Records whether the content read from intent URI (file:// or content://)
    changed after the initial validation that was done to route the request when
    the intent was received. This is recorded at the time that Offline Page
    Request Handler tried to read the data, in preparation to show an offline
    page to a user.
  </summary>
</histogram>

<histogram name="OfflinePages.RequestJob.OpenFileErrorCode"
    enum="NetErrorCodes" expires_after="2018-08-30">
  <owner>jianli@chromium.org</owner>
  <summary>
    Positive net error code for opening the underlying file to serve the offline
    page, including net::OK.
  </summary>
</histogram>

<histogram name="OfflinePages.RequestJob.RangeHeader" enum="BooleanExists"
    expires_after="2018-08-30">
  <owner>jianli@chromium.org</owner>
  <summary>
    Track whether the range header is provided when an offline page is served.
  </summary>
</histogram>

<histogram name="OfflinePages.RequestJob.ReadFileErrorCode"
    enum="NetErrorCodes">
  <owner>jianli@chromium.org</owner>
  <summary>
    Positive net error code for the failure to read the underlying file to serve
    the offline page. net::OK is not included.
  </summary>
</histogram>

<histogram name="OfflinePages.RequestJob.SeekFileErrorCode"
    enum="NetErrorCodes">
  <owner>jianli@chromium.org</owner>
  <summary>
    Positive net error code for the failure to seek the underlying file to serve
    the offline page. net::OK is not included.
  </summary>
</histogram>

<histogram name="OfflinePages.SavedPageCount" units="pages">
  <obsolete>
    Deprecated as of 2/2018. Replaced by OfflinePages.SavedPageCountUponQuery.
  </obsolete>
  <owner>jianli@chromium.org</owner>
  <summary>
    Number of saved pages restored from the offline pages metadata store when it
    is logged.
  </summary>
</histogram>

<histogram name="OfflinePages.SavedPageCountUponQuery" units="pages">
  <owner>carlosk@chromium.org</owner>
  <summary>
    Total number of saved offline pages recorded when they are all queried from
    the store. This value is more meaningful when filtered by unique users as
    that eliminates multiple reports from the same Chrome instance.
  </summary>
</histogram>

<histogram base="true" name="OfflinePages.SavePage.AddPageTime" units="ms"
    expires_after="2019-05-31">
  <owner>carlosk@chromium.org</owner>
  <owner>dimich@chromium.org</owner>
  <summary>
    Time taken to successfully create the store metadata entry for an offline
    page archive during the process of saving an offline page.
  </summary>
</histogram>

<histogram base="true" name="OfflinePages.SavePage.ComputeDigestTime"
    units="ms" expires_after="2019-05-31">
  <owner>carlosk@chromium.org</owner>
  <owner>dimich@chromium.org</owner>
  <summary>
    Time taken to successfully compute the digest of an offline page archive
    during the process of saving an offline page.
  </summary>
</histogram>

<histogram base="true" name="OfflinePages.SavePage.CreateArchiveTime"
    units="ms" expires_after="2019-05-31">
  <owner>carlosk@chromium.org</owner>
  <owner>dimich@chromium.org</owner>
  <summary>
    Time taken to successfully create an offline page archive during the process
    of saving an offline page.
  </summary>
</histogram>

<histogram name="OfflinePages.SavePage.FreeSpaceMB" units="MB">
  <obsolete>
    Deprecated as of 03/2018. Replaced by similar metric
    OfflinePages.StorageInfo.InternalFreeSpaceMB.
  </obsolete>
  <owner>jianli@chromium.org</owner>
  <summary>
    The amount of free space available, in megabytes, on the user's device after
    the page is saved.

    Note that before M52 this operation was started before save operation.
  </summary>
</histogram>

<histogram name="OfflinePages.SavePage.FreeSpacePercentage" units="%">
  <obsolete>
    Deprecated as of 5/2016. Marginal applicability.
  </obsolete>
  <owner>jianli@chromium.org</owner>
  <summary>
    The percentage of free space available on the user's device when the page is
    being saved.
  </summary>
</histogram>

<histogram name="OfflinePages.SavePage.PercentLoaded" units="%">
  <owner>twellington@chromium.org</owner>
  <owner>ianwen@chromium.org</owner>
  <summary>
    The percentage of the page load completed when the button to save an offline
    page is pressed.
  </summary>
</histogram>

<histogram base="true" name="OfflinePages.SavePage.PublishArchiveTime"
    units="ms" expires_after="2019-05-31">
  <owner>carlosk@chromium.org</owner>
  <owner>dimich@chromium.org</owner>
  <summary>
    Time taken to successfully move an offline page archive to the public
    downloads folder during the process of saving an offline page.
  </summary>
</histogram>

<histogram name="OfflinePages.SavePageCount"
    enum="OfflinePagesNamespaceEnumeration">
  <owner>dimich@chromium.org</owner>
  <summary>
    Counts the number of times an offline page is saved. Events are reported per
    offline pages namespace.
  </summary>
</histogram>

<histogram base="true" name="OfflinePages.SavePageResult"
    enum="OfflinePagesSavePageResult">
  <owner>jianli@chromium.org</owner>
  <summary>Result of saving an offline copy for a page.</summary>
</histogram>

<histogram base="true" name="OfflinePages.SavePageTime" units="ms">
  <owner>jianli@chromium.org</owner>
  <summary>
    The amount of time taken to save an offline copy for a page.
  </summary>
</histogram>

<histogram name="OfflinePages.SharedPageWasOffline"
    enum="OfflinePagesSharedPageWasOffline">
  <owner>dewittj@chromium.org</owner>
  <summary>Whether a shared page was an offline page or not.</summary>
</histogram>

<histogram name="OfflinePages.Sharing.PublishInternalPageResult"
    enum="OfflinePagesSavePageResult">
  <owner>dimich@chromium.org</owner>
  <summary>
    Result of publishing internal page while sharing. CANCELLED means the page
    to publish isn't found. ALREADY_EXISTS means the page have already been
    published before.
  </summary>
</histogram>

<histogram name="OfflinePages.ShowOfflinePageOnBadNetwork" enum="Boolean">
  <obsolete>
    Deprecated 6/2016. Refactored into OfflinePages.RedirectResult.
  </obsolete>
  <owner>jianli@chromium.org</owner>
  <summary>
    Whether an offline page is shown, instead of error page, when the network is
    disconnected or poor condition.
  </summary>
</histogram>

<histogram name="OfflinePages.SQLStorage.CreateDirectoryResult"
    enum="PlatformFileError">
  <obsolete>
    Removed 3/2019.
  </obsolete>
  <owner>dimich@chromium.org</owner>
  <summary>
    If the directory to store the SQLite database file does not exist, it is
    created. This is recorded every time the database is opened, even if the
    directory already exists, in which case it's reported as FILE_OK.
  </summary>
</histogram>

<histogram name="OfflinePages.SQLStorage.StoreEvent"
    enum="OfflinePagesStoreEvent">
  <owner>fgorski@chromium.org</owner>
  <summary>
    Used as a counter to track different events related to offline page store
    inner working.
  </summary>
</histogram>

<histogram name="OfflinePages.SQLStorage.TimeFromCloseToOpen" units="ms">
  <owner>fgorski@chromium.org</owner>
  <summary>
    Tracks the time between store closing and reopening again. The store is
    meant to close itself after a period of inactivity. We are trying to assess
    how much time the store is unloaded from memory vs. time it is loaded and
    not used. This event will be reported when the store is opened after being
    closed within the same lifetime of Chrome.
  </summary>
</histogram>

<histogram name="OfflinePages.StorageInfo.ExternalArchiveSizeMiB" units="MiB">
  <owner>dimich@chromium.org</owner>
  <summary>
    The storage space used by the archive files of offline pages, including all
    files in public directory with mhtml/mht extensions. Collected after every
    time an offline page is saved successfully.
  </summary>
</histogram>

<histogram name="OfflinePages.StorageInfo.ExternalFreeSpaceMiB" units="MiB">
  <owner>dimich@chromium.org</owner>
  <summary>
    The amount of free space on the external drive (which contains the public
    download directory). Collected after every time an offline page is saved
    successfully.
  </summary>
</histogram>

<histogram name="OfflinePages.StorageInfo.ExternalUsagePercentage" units="%">
  <owner>dimich@chromium.org</owner>
  <summary>
    The percentage of storage space on the external volume (that contains public
    download directory) used by offline pages archives.
  </summary>
</histogram>

<histogram name="OfflinePages.StorageInfo.InternalArchiveSizeMiB" units="MiB">
  <owner>dimich@chromium.org</owner>
  <summary>
    The storage space used by the archive files of offline pages, including the
    files in temporary and private directory. Collected after every time an
    offline page is saved successfully.
  </summary>
</histogram>

<histogram name="OfflinePages.StorageInfo.InternalFreeSpaceMiB" units="MiB">
  <owner>dimich@chromium.org</owner>
  <summary>
    The amount of free space on the internal drive (which contains the app
    directory). Collected after every time an offline page is saved
    successfully.
  </summary>
</histogram>

<histogram name="OfflinePages.StorageInfo.InternalUsagePercentage" units="%">
  <owner>dimich@chromium.org</owner>
  <summary>
    The percentage of storage space on internal volume (that contains the app
    directory) used by offline pages archives.
  </summary>
</histogram>

<histogram name="OfflinePages.TabRestore" enum="OfflinePagesTabRestoreType">
  <owner>carlosk@chromium.org</owner>
  <summary>
    Tracks the reload of contents of an existing tab that is being restored
    either because that tab is being presented for the first time after Chrome
    was restarted or because its contents were discarded. All buckets are
    mutually exclusive (adding up all reported values amounts to the total
    number of tracked tab restores). This metric is focused on last_n offline
    pages and is exclusive to Chrome on Android.
  </summary>
</histogram>

<histogram name="OfflinePages.TotalPageSize" units="MB">
  <obsolete>
    Deprecated as of 03/2018. Replaced by similar metric
    OfflinePages.StorageInfo.TotalArchiveSize.
  </obsolete>
  <owner>fgorski@chromium.org</owner>
  <owner>jianli@chromium.org</owner>
  <summary>
    Total size of all the offline pages saved by the user.

    This value is recorded whenever the number of pages change, meaning after a
    page is added or removed. If pages are removed in bulk, this value will be
    reported only once.
  </summary>
</histogram>

<histogram name="OfflinePages.TotalPageSizePercentage" units="%">
  <obsolete>
    Deprecated as of 5/2016. Marginal applicability.
  </obsolete>
  <owner>fgorski@chromium.org</owner>
  <owner>jianli@chromium.org</owner>
  <summary>
    Total size of all the offline pages saved by the user as a percentage of
    total storage size.

    This value is recorded whenever the number of pages change, meaning after a
    page is added or removed.
  </summary>
</histogram>

<histogram name="OfflinePages.TrustStateOnOpen" enum="OfflinePageTrustedState">
  <owner>jianli@chromium.org</owner>
  <summary>
    The trust state of the offline page. This is recorded when an offline page
    is being opened.
  </summary>
</histogram>

<histogram name="OfflinePages.Wakeup.BatteryPercentage" units="%">
  <owner>petewil@chromium.org</owner>
  <owner>jianli@chromium.org</owner>
  <summary>
    Percentage of battery remaining when the offline page background loading
    task wakes up to check for work.
  </summary>
</histogram>

<histogram name="OfflinePages.Wakeup.ConnectedToPower" enum="BooleanConnected">
  <owner>petewil@chromium.org</owner>
  <owner>jianli@chromium.org</owner>
  <summary>
    Whether the device is plugged in when the offline page background load task
    wakes up to check or work.
  </summary>
</histogram>

<histogram name="OfflinePages.Wakeup.DelayTime" units="ms">
  <owner>petewil@chromium.org</owner>
  <owner>jianli@chromium.org</owner>
  <summary>
    Time delay from a dinosaur page to connection being available.
  </summary>
</histogram>

<histogram name="OfflinePages.Wakeup.NetworkAvailable"
    enum="NetworkConnectionType">
  <owner>petewil@chromium.org</owner>
  <owner>jianli@chromium.org</owner>
  <summary>
    Which network is available (if any) when the offling page background loading
    task wakes up to check for work.
  </summary>
</histogram>

<histogram
    name="OfflinePages.WebsiteSettings.ConnectedWhenOpenOnlineButtonClicked"
    enum="BooleanConnected">
  <owner>fgorski@chromium.org</owner>
  <summary>
    Indicates whether the browser was connected when Open online button was
    clicked on Page Info popup, which causes a reload of an offline page to
    online version.
  </summary>
</histogram>

<histogram name="OfflinePages.WebsiteSettings.OpenOnlineButtonVisible"
    enum="BooleanVisible">
  <owner>fgorski@chromium.org</owner>
  <summary>
    Indicates whether Open online was visible in Page Info popup, when it was
    shown for an offline page. (The button is visible only when Chrome is
    connected when the Page Info popup is opened for offline page.)
  </summary>
</histogram>

<histogram name="OfflinePolicy.SuccessfulResourceLoadPercentage" units="%">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    When a page is loaded in offline mode, the percentage of resources on that
    page that were successfully loaded.
  </summary>
</histogram>

<histogram name="Omnibox.AggressiveHistoryURLProviderFieldTrialBeacon"
    enum="OmniboxAggressiveHistoryURLProviderFieldTrialBeacon">
  <obsolete>
    Aggressive HistoryURL provider field trial deleted in spring 2012.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    A number that indicates what omnibox ranking behavior the user is seeing as
    part of the OmniboxAggressiveHistoryURLProvider field trial
    (OmniboxAggressiveHistoryURLProvider).
  </summary>
</histogram>

<histogram name="Omnibox.AnswerParseSuccess" enum="BooleanSuccess">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    For each answer received in suggest responses, the number that are
    well-formed and contain all the required elements.
  </summary>
</histogram>

<histogram name="Omnibox.AnswerParseType" enum="SuggestionAnswerType">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The number of times each omnibox suggestion answer type (e.g., weather,
    sports score) was received and parsed successfully. Can be normalized with
    the count of emits to Omnibox.SuggestRequest.Success.GoogleResponseTime,
    which counts all successful suggest responses from Google, not just those
    with answers attached. Note that GoogleResponseTime is technically off given
    that it will still count cases where we fail to extract, deserialize, or
    parse the response. But these cases are rare to non-existent.
  </summary>
</histogram>

<histogram name="Omnibox.CharTypedToRepaintLatency" units="ms"
    expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->

  <owner>asvitkine@chromium.org</owner>
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Records the time taken between a keystroke being typed in the omnibox and
    the text being painted. If there are multiple keystrokes before a paint,
    logs the time since the earliest one.

    This duration is composed of three parts:

    a) the time spent processing the initial input event

    b) the time spent for the repaint task to be scheduled on the message loop

    c) the time spent painting the Omnibox

    d) (on views platforms) the time until the pixels are actually composited

    There's a number of breakdown metrics to help diagnose a regression. First,
    Omnibox.CharTypedToRepaintLatency.ToPaint measures the combined time of (a)
    and (b). Omnibox.QueryTime2 is a good proxy for just (a). And there's also
    Omnibox.PaintTime that corresponds to (c). We don't have a direct metric for
    (d), but if neither Omnibox.CharTypedToRepaintLatency.ToPaint nor
    Omnibox.PaintTime regressed, then the regression must be in (d).

    Note: The semantics of this metric on views platforms changed in M62, as
    previously time (d) was not included in the metric.
  </summary>
</histogram>

<histogram name="Omnibox.CharTypedToRepaintLatency.Composited" units="ms">
  <obsolete>
    This became the new implementation of Omnibox.CharTypedToRepaintLatency as
    of 08/2017.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    A refinement of the Omnibox.CharTypedToRepaintLatency metric that attempts
    to more accurately track the latency by measuring until the point when the
    compositor has actually put pixels on the screen. In particular, this will
    capture the time used to also paint the Omnibox result views as a result of
    the character insertion, which is not covered by
    Omnibox.CharTypedToRepaintLatency. If there are multiple keystrokes before a
    paint, logs the time since the earliest one.
  </summary>
</histogram>

<histogram name="Omnibox.CharTypedToRepaintLatency.ToPaint" units="ms">
  <owner>asvitkine@chromium.org</owner>
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Records the time taken between a keystroke being typed in the omnibox and
    the time when we're ready to paint the omnibox. This is a breakdown
    diagnostic metric for Omnibox.CharTypedToRepaintLatency, to help diagnose
    regressions in that metric. See that metric's description for more info.
  </summary>
</histogram>

<histogram name="Omnibox.ClipboardSuggestionShownAge" units="ms">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Recorded every time the omnibox is focussed and a recent URL from the user's
    clipboard is suggested. The value indicates the estimated age of the
    clipboard. (If Chrome observed the clipboard modification, this age is
    exact. If Chrome did not observe the modification, then it's a conservative
    estimate: the last time Chrome observed a clipboard modification, which is
    certainly older than the current clipboard. If Chrome never observed a
    clipboard modification, no clipboard suggestion is shown, meaning this
    histogram will never be emitted to.)

    Intended to be compared with MobileOmnibox.PressedClipboardSuggestionAge.
  </summary>
</histogram>

<histogram name="Omnibox.ClipboardSuggestionShownNumTimes">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Recorded every time the omnibox is focussed and a recent URL from the user's
    clipboard is suggested. The number emitted is the number of times the URL
    has been suggested within the same session including the current time. Thus,
    the third time it is shown, we'll emit a three to this histogram, and this
    histogram will have previously seen emits of one and two. If the clipboard
    content was the same during a previous run of Chrome and this URL was
    suggested during that run, those impressions are not counted. Also, if the
    clipboard content changes during a particular run of Chrome to another URL,
    the omnibox is focused and that URL is suggested, then content changes back
    and Chrome starts suggesting the older URL again, the counts start again
    from scratch. Chrome only remembers the number of times the URL was shown
    consecutively.

    This value is useful to compare with the number of times a clipboard
    suggestion has been shown when it is clicked. This value can be obtained
    from OmniboxEvent records in which the selected suggestion is from Clipboard
    provider. In those cases, look in the Clipboard provider's ProviderInfo
    field for |times_returned_results_in_session|. Note that at the time of this
    writing that OmniboxEvent logs aren't recorded in incognito whereas
    histograms are. Thus, the total counts will not be comparable, though the
    distributions should be.
  </summary>
</histogram>

<histogram name="Omnibox.ClipboardSuggestionShownWithCurrentURL"
    enum="BooleanPresent">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Recorded every time the omnibox is focussed and a recent URL from the user's
    clipboard is suggested. The value indicates whether the current URL was
    shown (which would appear above the clipboard URL suggestion) or was absent
    (which ought to only happen when the omnibox is empty / the user is on the
    NTP).

    On Android, the total count for this histogram can be usefully compared with
    the count of the user action FocusLocation in order to determine the rate at
    which a clipboard URL suggestion is shown in the omnibox. To determine the
    same rate on iOS, one needs to compare this histogram's count with the sum
    of the user actions MobileFocusedOmniboxOnNtp, MobileFocusedFakeboxOnNtp,
    and MobileFocusedOmniboxNotOnNtp.

    Furthermore, on either platform, this histogram's count can be usefully
    compared with the count in the clipboard bucket of the
    Omnibox.SuggestionUsed.Provider histogram to determine the clickthrough rate
    on these suggestions.
  </summary>
</histogram>

<histogram name="Omnibox.CutOrCopyAllText" units="count">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The number of cut or copy commands on all selected text in the omnibox.
    Gathered on desktop platforms (Win, Mac, Linux, Chrome OS).
  </summary>
</histogram>

<histogram name="Omnibox.DocumentSuggest.Requests"
    enum="OmniboxDocumentSuggestRequests">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <owner>skare@chromium.org</owner>
  <summary>
    Counts the number of document suggest requests the omnibox sent, were
    invalidated, and were completed successfully.
  </summary>
</histogram>

<histogram name="Omnibox.DocumentSuggest.ResultCount" units="count"
    expires_after="M77">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <owner>skare@chromium.org</owner>
  <summary>
    Number of results returned in each document suggestion reply. Logged for
    successful requests where the provider returned a parseable result set.
  </summary>
</histogram>

<histogram name="Omnibox.EditUrlSuggestionAction"
    enum="OmniboxEditUrlSuggestionAction">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <owner>mdjones@chromium.org</owner>
  <summary>
    The action performed on the edit-URL omnibox suggestion that contains the
    &quot;what you typed&quot;/current URL. If visible, this is the first
    suggestion.
  </summary>
</histogram>

<histogram name="Omnibox.EnteredKeywordMode" enum="OmniboxEnteredKeywordMode">
  <obsolete>
    Deprecated 10/2018 and replaced with
    &quot;Omnibox.EnteredKeywordMode2&quot;.
  </obsolete>
  <owner>mpearson@chromium.org</owner>
  <summary>
    The number of times users enter keyword hint mode &quot;Search ___
    for:&quot; and how.
  </summary>
</histogram>

<histogram name="Omnibox.EnteredKeywordMode2" enum="OmniboxEnteredKeywordMode2">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The new enumeration of how many times users enter keyword hint mode
    &quot;Search ___ for:&quot; and how. Note that we don't recognize the
    changing of the keyword itself as entering keyword mode, if the user never
    left keyword mode e.g. if the user was arrowing around the suggestions, so
    we'll preserve the original keyword mode entry method in this case.
  </summary>
</histogram>

<histogram name="Omnibox.FocusToEditTime" units="ms">
  <owner>mpearson@chromium.org</owner>
  <summary>
    The length of time between when a user focused on the omnibox and first
    modifies the omnibox.
  </summary>
</histogram>

<histogram name="Omnibox.FocusToOpenTime" units="ms">
  <obsolete>
    Replaced with Omnibox.FocusToOpenTimeAnyPopupState in April 2014.
  </obsolete>
  <owner>mpearson@chromium.org</owner>
  <summary>
    The length of time between when a user focused on the omnibox and opened an
    omnibox match (which could be what they typed or a suggestion).
  </summary>
</histogram>

<histogram name="Omnibox.FocusToOpenTimeAnyPopupState" units="ms">
  <obsolete>
    Replaced with Omnibox.FocusToOpenTimeAnyPopupState2 in August, 2016.
  </obsolete>
  <owner>mpearson@chromium.org</owner>
  <summary>
    The length of time between when a user focused on the omnibox and opened an
    omnibox match (which could be what they typed or a suggestion). This is
    recorded regardless of whether the omnibox dropdown (a.k.a. popup) is open.
  </summary>
</histogram>

<histogram name="Omnibox.FocusToOpenTimeAnyPopupState2" units="ms">
  <obsolete>
    Replaced with Omnibox.FocusToOpenTimeAnyPopupState3 in January, 2017, which
    only differs in the bucketing and range.
  </obsolete>
  <owner>mpearson@chromium.org</owner>
  <summary>
    The length of time between when a user focused on the omnibox and opened an
    omnibox match (which could be what they typed or a suggestion). This is
    recorded regardless of whether the omnibox dropdown (a.k.a. popup) is open.
    It is not recorded if a match is opened without triggering a focus event,
    e.g., when a user drags a URL to the omnibox to navigate.

    To know how common this last condition is, compare the total count of this
    histogram to the total number of omnibox events.
  </summary>
</histogram>

<histogram name="Omnibox.FocusToOpenTimeAnyPopupState3" units="ms">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The length of time between when a user focused on the omnibox and opened an
    omnibox match (which could be what they typed or a suggestion). This is
    recorded regardless of whether the omnibox dropdown (a.k.a. popup) is open.
    It is not recorded if a match is opened without triggering a focus event,
    e.g., when a user drags a URL to the omnibox to navigate.

    To know how common this last condition is, compare the total count of this
    histogram to the total number of omnibox events.
  </summary>
</histogram>

<histogram name="Omnibox.HardwareKeyboardModeEnabled" enum="BooleanEnabled">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <owner>pkl@chromium.org</owner>
  <summary>
    iOS: Records whether a hardware keyboard is used to input text. This is
    recorded each time a UIKeyboardWillChangeFrameNotification is sent while
    editing the omnibox text.
  </summary>
</histogram>

<histogram name="Omnibox.HasLegalDefaultMatchWithoutCompletion" enum="Boolean">
  <obsolete>
    Deprecated 2015-01-27
  </obsolete>
  <owner>mpearson@chromium.org</owner>
  <summary>
    Whether there was at least one legal default match without an
    |inline_autocompletion|. Recorded every time
    AutocompleteResult::SortAndCull() is called, which could happen multiple
    times on each keystroke.
  </summary>
</histogram>

<histogram name="Omnibox.HistoryQuickHistoryIDSetFromWords" units="ms">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Times URLIndexPrivateData::HistoryIDSetFromWords(), which is called by the
    omnibox's HistoryQuick provider.
    URLIndexPrivateData::HistoryIDSetFromWords() can be called multiple times
    per keystroke due to, for example, the cursor being in the middle of the
    input string or SearchProvider's calls to Classify().
  </summary>
</histogram>

<histogram name="Omnibox.InputType" enum="OmniboxInputType">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The kind of input the user provided when using the omnibox to go somewhere.
    The type can be misleading. For example if the user typed 'http:/', it gets
    marked as a query because it cannot be opened as a URL even though the user
    probably wanted and selected a URL from the list of suggestions.
  </summary>
</histogram>

<histogram name="Omnibox.IsPasteAndGo" enum="Boolean">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Whether an omnibox interaction is a paste-and-search/paste-and-go action.
    (This histogram records both of these in the &quot;True&quot; bucket for
    this histogram because both of these are referred to as paste-and-go in the
    code.) These typically involve right-clicking in the omnibox and selecting
    that option from the dropdown.
  </summary>
</histogram>

<histogram name="Omnibox.IsPopupOpen" enum="Boolean">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Whether the omnibox popup (a.k.a. dropdown) is open at the time the user
    used the omnibox to go somewhere. It can be closed if, for instance, the
    user clicked in the omnibox and hit return to reload the same page. Also,
    because paste-and-search/paste-and-go actions ignore the current content of
    the omnibox dropdown (if it is open) when they happen, we pretend the
    dropdown is closed when logging these.
  </summary>
</histogram>

<histogram name="Omnibox.JustDeletedText" enum="Boolean">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Whether the user deleted text immediately before selecting an omnibox
    suggestion. This is usually the result of pressing backspace or delete.
  </summary>
</histogram>

<histogram name="Omnibox.NumEvents" enum="UsedOmnibox">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>The number of times users used the omnibox to go somewhere.</summary>
</histogram>

<histogram name="Omnibox.NumTypedTerms" units="terms">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The number of terms in the text the user entered in the omnibox when they
    used the omnibox to go somewhere. Terms are defined by splitting on
    whitespace. All values larger than 6 are recorded in bucket 6.
  </summary>
</histogram>

<histogram name="Omnibox.PageContext" enum="OmniboxPageContext">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    What the user was viewing when the user used the omnibox to go somewhere.
  </summary>
</histogram>

<histogram name="Omnibox.PaintTime" units="ms">
  <owner>asvitkine@chromium.org</owner>
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Records the time to paint the omnibox contents. This is a subcomponent of
    Omnibox.CharTypedToRepaintLatency. Implemented on desktop platforms.
  </summary>
</histogram>

<histogram name="Omnibox.Paste" units="count">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The number of paste commands on the text in the omnibox. Reported every time
    a paste command is done.
  </summary>
</histogram>

<histogram name="Omnibox.PasteAndGo" units="count" expires_after="2019-07-30">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The number of paste-and-go commands on the text in the omnibox. Reported
    every time a paste-and-go command is done.
  </summary>
</histogram>

<histogram name="Omnibox.PhysicalWebProvider.SuggestionUsedWithoutOmniboxFocus"
    enum="Boolean">
  <obsolete>
    Obsolete 4/2018, Physical Web is disabled (crbug.com/826540).
  </obsolete>
  <owner>cco3@chromium.org</owner>
  <owner>mattreynolds@chromium.org</owner>
  <owner>mmocny@chromium.org</owner>
  <summary>
    Records a boolean value indicating whether the Physical Web provider was
    invoked by focusing the omnibox during the current omnibox session. This is
    unexpected; it's probably a bug somwhere. Recorded when the user selects an
    omnibox suggestion. Does not record when the Physical Web omnibox provider
    is disabled.
  </summary>
</histogram>

<histogram name="Omnibox.PhysicalWebProviderMatches">
  <obsolete>
    Obsolete 4/2018, Physical Web is disabled (crbug.com/826540).
  </obsolete>
  <owner>cco3@chromium.org</owner>
  <owner>mattreynolds@chromium.org</owner>
  <owner>mmocny@chromium.org</owner>
  <summary>
    The number of matches returned by PhysicalWebProvider. Emitted when the
    omnibox is first focused, unless the user is in incognito mode. Capped at
    10.
  </summary>
</histogram>

<histogram name="Omnibox.ProgressBarBreakPointUpdateCount"
    units="break point updates">
  <obsolete>
    Obsolete 05/16/2017. Data is unused (crbug.com/719801).
  </obsolete>
  <owner>kkimlabs@chromium.org</owner>
  <summary>
    The number of progress bar break point updates from page load started to
    page load finished.
  </summary>
</histogram>

<histogram name="Omnibox.ProgressBarUpdateCount" units="frame updates">
  <obsolete>
    Obsolete 05/16/2017. Data is unused (crbug.com/719801).
  </obsolete>
  <owner>kkimlabs@chromium.org</owner>
  <summary>
    The number of progress bar frame updates from page load started to page load
    finished. If there is no animation, this matches
    Omnibox.ProgressBarBreakPointUpdateCount. Note that there can be additional
    updates after page load finished, animating to 100%, but this histogram
    doesn't include them.
  </summary>
</histogram>

<histogram name="Omnibox.ProviderTime" units="ms">
  <obsolete>
    Deprecated 2015-06-12. Replaced by Omnibox.ProviderTime2.
  </obsolete>
  <owner>mpearson@chromium.org</owner>
  <summary>
    The length of time taken by the named provider&quot;s synchronous pass.
  </summary>
</histogram>

<histogram name="Omnibox.ProviderTime2" units="ms">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The length of time taken by the named provider&quot;s synchronous pass.
  </summary>
</histogram>

<histogram name="Omnibox.QueryBookmarksTime">
  <obsolete>
    Deprecated 2012-11-14. Replaced by Omnibox.ProviderTime.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time the HistoryContentProvider takes to perform a bookmark search.
  </summary>
</histogram>

<histogram name="Omnibox.QueryGeolocationAcquisitionTime" units="ms">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <owner>stkhapugin@chromium.org</owner>
  <summary>
    The elapsed time to acquire the location sent in the X-Geo header for an
    Omnibox query.
  </summary>
</histogram>

<histogram name="Omnibox.QueryGeolocationHorizontalAccuracy" units="meters">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <owner>stkhapugin@chromium.org</owner>
  <summary>
    The estimated horizontal accuracy of the location sent in the X-Geo header
    for an Omnibox query.
  </summary>
</histogram>

<histogram name="Omnibox.QueryIosLocationAuthorizationStatus"
    enum="IosLocationAuthorizationStatus">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <owner>kiyun@google.com</owner>
  <summary>
    For iOS, whether the application is authorized to use location services when
    the user enters a search query into the Omnibox.
  </summary>
</histogram>

<histogram name="Omnibox.QueryTime" units="ms">
  <obsolete>
    Deprecated 2015-06-12. Replaced by Omnibox.QueryTime2.
  </obsolete>
  <owner>mpearson@chromium.org</owner>
  <summary>
    Time it takes for the omnibox to become responsive to user input after the
    user has typed N characters. This measures the time it takes to start all
    the asynchronous autocomplete providers (but not wait for them to finish).
  </summary>
</histogram>

<histogram name="Omnibox.QueryTime2" units="ms">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Time it takes for the omnibox to become responsive to user input after the
    user has typed N characters. This measures the time it takes to start all
    autocomplete providers (but not wait for the asynchronous ones to finish).
  </summary>
</histogram>

<histogram name="Omnibox.SaveStateForTabSwitch.UserInputInProgress"
    units="count">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    When a user switches tabs, whether the omnibox had an edit in progress.
  </summary>
</histogram>

<histogram name="Omnibox.SearchEngine" enum="OmniboxSearchEngine">
  <obsolete>
    Made obsolete around Chrome 32. Use Omnibox.SearchEngineType instead.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The id of search engine that was used for search in omnibox. See
    src/chrome/browser/search_engines/template_url_prepopulate_data.cc for more
    info.
  </summary>
</histogram>

<histogram name="Omnibox.SearchEngineType" enum="OmniboxSearchEngineType">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The type of search engine associated with a match opened from the omnibox.
  </summary>
</histogram>

<histogram name="Omnibox.SearchProvider.AddHistoryResultsTime" units="ms">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Time it takes to add all the raw history results to the list of matches.
  </summary>
</histogram>

<histogram name="Omnibox.SearchProvider.ConvertResultsTime" units="ms">
  <obsolete>
    Deleted in August 2018 in M-70.
  </obsolete>
  <owner>mpearson@chromium.org</owner>
  <summary>
    Time it takes to convert all the results to matches and add them to a map,
    to keep the most relevant match for each result.
  </summary>
</histogram>

<histogram
    name="Omnibox.SearchProvider.GetMostRecentKeywordTermsDefaultProviderTime"
    units="ms">
  <obsolete>
    Deleted in August 2018 in M-70.
  </obsolete>
  <owner>mpearson@chromium.org</owner>
  <summary>
    Time it takes for the omnibox to search the previous query history database
    for queries that start with the omnibox text.
  </summary>
</histogram>

<histogram name="Omnibox.SearchProviderMatches">
  <owner>mpearson@chromium.org</owner>
  <summary>
    The number of matches returned by SearchProvider. Emitted on every call to
    SearchProvider::Start(), which effectively means every key stroke in the
    omnibox.
  </summary>
</histogram>

<histogram name="Omnibox.SelectedPosition" units="position">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The index of the item that the user selected in the omnibox popup (a.k.a.
    dropdown) list. 0 means the inline suggestion shown within the omnibox. This
    is also the same suggestion shown as the top item in the dropdown. The
    second item in the dropdown will be recorded as bucket 1. The selected
    position is always set to 0 when the popup is closed at the time of
    navigation or if the user did a paste-and-search or paste-and-go action.
  </summary>
</histogram>

<histogram name="Omnibox.SuggestionUsed.NearbyURLCount" units="URLs">
  <obsolete>
    Deprecated in M58, replaced with
    Omnibox.SuggestionUsed.NearbyURLCount.AtFocus and
    Omnibox.SuggestionUsed.NearbyURLCount.AtMatchCreation.
  </obsolete>
  <summary>
    The number of nearby Physical Web URLs when the user focused the omnibox.
    Recorded when the user accepts an omnibox suggestion, regardless of whether
    the suggestion came from PhysicalWebProvider. Capped at 50.

    In M57, the values recorded by this histogram were determined to be bugged.
    It's believed that it was recording uninitialized values due to a corner
    case on Android that allows an omnibox suggestion to be selected without
    first focusing the omnibox. In addition to the new histograms,
    Omnibox.PhysicalWebProvider.SuggestionUsedWithoutOmniboxFocus was added to
    detect this case. https://crbug.com/691059
  </summary>
</histogram>

<histogram name="Omnibox.SuggestionUsed.NearbyURLCount.AtFocus" units="URLs">
  <obsolete>
    Obsolete 4/2018, Physical Web is disabled (crbug.com/826540).
  </obsolete>
  <owner>cco3@chromium.org</owner>
  <owner>mattreynolds@chromium.org</owner>
  <owner>mmocny@chromium.org</owner>
  <summary>
    The number of nearby Physical Web URLs when Physical Web Provider was last
    focused (i.e., the start of the current session). Recorded when the user
    accepts an omnibox suggestion, regardless of whether the suggestion came
    from PhysicalWebProvider. Capped at 50.

    Does not record if the omnibox was not focused during the current session.
    Omnibox.PhysicalWebProvider.SuggestionUsedWithoutOmniboxFocus records true
    when we hit this case.
  </summary>
</histogram>

<histogram name="Omnibox.SuggestionUsed.NearbyURLCount.AtMatchCreation"
    units="URLs">
  <obsolete>
    Obsolete 4/2018, Physical Web is disabled (crbug.com/826540).
  </obsolete>
  <owner>cco3@chromium.org</owner>
  <owner>mattreynolds@chromium.org</owner>
  <owner>mmocny@chromium.org</owner>
  <summary>
    The number of nearby Physical Web URLs when Physical Web Provider last
    constructed matches. Recorded when the user accepts an omnibox suggestion,
    regardless of whether the suggestion came from PhysicalWebProvider. Capped
    at 50.
  </summary>
</histogram>

<histogram name="Omnibox.SuggestionUsed.OfferedTabMatch" enum="BooleanOffered">
  <owner>krb@chromium.org</owner>
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Measures whether the suggestion that was selected by the user offered a tab
    match. A tab match occurs when the URL specified by the suggestion matches
    the URL navigated to by another tab in the browser, within the margin of our
    URL stripping scheme.

    This metric typically only makes sense with respect to
    Omnibox.SuggestionUsed.OfferedTabMatch. Only recent versions of the browser
    send the metric. Therefore, other metrics may include datapoints not covered
    by this metric (unless one narrows the data by version.)
  </summary>
</histogram>

<histogram name="Omnibox.SuggestionUsed.Provider" enum="OmniboxProviderType">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The provider of the suggestion the user selected when the user used the
    omnibox to go somewhere.
  </summary>
</histogram>

<histogram base="true" name="Omnibox.SuggestionUsed.Provider.ByPageContext"
    enum="OmniboxProviderType">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The provider of the suggestion the user selected when the user used the
    omnibox to go somewhere, only for omnibox interactions that start in the
    specified page context:
  </summary>
</histogram>

<histogram name="Omnibox.SuggestionUsed.ProviderAndResultType"
    enum="OmniboxProviderAndResultType">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The provider and result type of the suggestion the user selected when the
    user used the omnibox to go somewhere.
  </summary>
</histogram>

<histogram base="true"
    name="Omnibox.SuggestionUsed.ProviderAndResultType.ByPageContext"
    enum="OmniboxProviderAndResultType">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The provider and result type of the suggestion the user selected when the
    user used the omnibox to go somewhere, only for omnibox interactions that
    start in the specified page context:
  </summary>
</histogram>

<histogram
    name="Omnibox.SuggestionUsed.Search.Experimental.ForegroundToFirstMeaningfulPaint.Prerender"
    units="ms">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Measures the time from the page first appearing in the foreground to its
    first meaningful paint. Only recorded on navigations that use a prerender
    that is to a search query suggestion selected from the omnibox.
  </summary>
</histogram>

<histogram
    name="Omnibox.SuggestionUsed.Search.Experimental.NavigationToFirstMeaningfulPaint"
    units="ms">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Measures the time from navigation start to first meaningful paint. Only
    recorded for a search query suggestion selected from the omnibox.
  </summary>
</histogram>

<histogram
    name="Omnibox.SuggestionUsed.Search.ForegroundToFirstContentfulPaint.Prerender"
    units="ms">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Measures the time from the page first appearing in the foreground to its
    first contentful paint. Only recorded on navigations that use a prerender
    that is to a search query suggestion selected from the omnibox.
  </summary>
</histogram>

<histogram
    name="Omnibox.SuggestionUsed.Search.NavigationToFirstContentfulPaint"
    units="ms">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Measures the time from navigation start to first contentful paint. Only
    recorded for a search query suggestion selected from the omnibox.
  </summary>
</histogram>

<histogram
    name="Omnibox.SuggestionUsed.Search.NavigationToFirstForeground.Prerender"
    units="ms">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Measures the time from a page being navigated to in prerender to it first
    showing up in foreground. Only recorded on navigations that used a prerender
    that was to a search query suggestion selected from the omnibox. This is
    only recorded on pages that experience a first contentful paint.
  </summary>
</histogram>

<histogram name="Omnibox.SuggestionUsed.SearchVsUrl"
    enum="OmniboxSummarizedResultType">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The rough type of the suggestion the user selected when the user used the
    omnibox to go somewhere.
  </summary>
</histogram>

<histogram base="true" name="Omnibox.SuggestionUsed.SearchVsUrl.ByPageContext"
    enum="OmniboxSummarizedResultType">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The rough type of the suggestion the user selected when the user used the
    omnibox to go somewhere, only for omnibox interactions that start in the
    specified page context:
  </summary>
</histogram>

<histogram name="Omnibox.SuggestionUsed.SelectedTabMatch"
    enum="BooleanSelected">
  <owner>krb@chromium.org</owner>
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Measures whether the suggestion that was selected by the user offered a tab
    match and specifically that the user chose the tab match over normal
    navigation. A tab match occurs when the URL specified by the suggestion
    matches the URL navigated to by another tab in the browser, within the
    margin of our URL stripping scheme. By selecting the tab match, the browser
    simply switches focus to the matching tab.

    This metric typically only makes sense with respect to
    Omnibox.SuggestionUsed.OfferedTabMatch. Only recent versions of the browser
    send the metric. Therefore, other metrics may include datapoints not covered
    by this metric (unless one narrows the data by version.)

    This metric should be stricly less than
    Omnibox.SuggestionUsed.OfferedTabMatch, and is typically used to discover
    the percentage of offered tab matches that the user accepts.
  </summary>
</histogram>

<histogram
    name="Omnibox.SuggestionUsed.URL.Experimental.ForegroundToFirstMeaningfulPaint.Prerender"
    units="ms">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Measures the time from the page first appearing in the foreground to its
    first meaningful paint. Only recorded on navigations that use a prerender
    that is to a URL suggestion selected from the omnibox.
  </summary>
</histogram>

<histogram
    name="Omnibox.SuggestionUsed.URL.Experimental.NavigationToFirstMeaningfulPaint"
    units="ms">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Measures the time from navigation start to first meaningful paint. Only
    recorded for a URL suggestion selected from the omnibox.
  </summary>
</histogram>

<histogram
    name="Omnibox.SuggestionUsed.URL.ForegroundToFirstContentfulPaint.Prerender"
    units="ms">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Measures the time from the page first appearing in the foreground to its
    first contentful paint. Only recorded on navigations that use a prerender
    that is to a URL suggestion selected from the omnibox.
  </summary>
</histogram>

<histogram name="Omnibox.SuggestionUsed.URL.NavigationToFirstContentfulPaint"
    units="ms">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Measures the time from navigation start to first contentful paint. Only
    recorded for a URL suggestion selected from the omnibox.
  </summary>
</histogram>

<histogram
    name="Omnibox.SuggestionUsed.URL.NavigationToFirstForeground.Prerender"
    units="ms">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Measures the time from a page being navigated to in prerender to it first
    showing up in foreground. Only recorded on navigations that used a prerender
    that was to a URL suggestion selected from the omnibox. This is only
    recorded on pages that experience a first contentful paint.
  </summary>
</histogram>

<histogram name="Omnibox.SuggestRequest.Failure.GoogleResponseTime" units="ms">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The time elapsed between the sending of a suggest request to Google until
    the time the request was returned with status==failed. Ignores requests that
    were canceled before being returned.
  </summary>
</histogram>

<histogram name="Omnibox.SuggestRequest.Success.GoogleResponseTime" units="ms">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The time elapsed between the sending of a suggest request to Google until
    the time the request was returned with status==success. Ignores requests
    that were canceled before being returned.
  </summary>
</histogram>

<histogram name="Omnibox.SuggestRequests" enum="OmniboxSuggestRequests">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Counts about the number of suggest requests the omnibox sent, invalidated,
    and replies received.
  </summary>
</histogram>

<histogram base="true" name="Omnibox.TimeUntilFirst" units="ms"
    expires_after="2020-01-01">
  <owner>mdjones@chromium.org</owner>
  <owner>lzbylut@google.com</owner>
  <summary>
    The amount of time that passes in ms between the user focusing the omnibox
    and performing some action on Android. This is only recorded the first time
    the user performs this action per omnibox focus event. Other
    Omnibox.TimeUntilFirst.* events are not recorded past the first event.
  </summary>
</histogram>

<histogram name="Omnibox.TypedLength" units="characters">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The length of the text the user entered in the omnibox when they used the
    omnibox to go somewhere. Switched on March 27 2018 from an bucketing where
    every typed length is emitted exactly (up to 500) to ordinary exponential
    bucketing.
  </summary>
</histogram>

<histogram name="Omnibox.TypingDuration" units="ms">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The amount of time, in milliseconds, since the user first began modifying
    the text in the omnibox until the user used the omnibox to go somewhere. If
    at some point after modifying the text, the user reverted the modifications
    (thus seeing the current web page's URL again), then wrote in the omnibox
    again, this duration starts from the time of the second series of
    modification.
  </summary>
</histogram>

<histogram name="Omnibox.URLNavigationScheme" enum="NavigationScheme">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    The scheme of the destination URL for the selected omnibox suggestion. This
    could be a what-you-typed suggestion (if the user fully typed a URL), an
    inline autocompletion, or something in the dropdown, anything as long as
    it's a URL navigation, not a search query. Excludes omnibox URL navigations
    that are effectively reloads as well as cut-and-pastes of URLs. Also does
    not take into account any redirects that destination URL may do before
    finally serving a page. In other words, it's the scheme of the first request
    in a possible chain.
  </summary>
</histogram>

<histogram name="Omnibox.URLNavigationTimeToRedirectToHTTPS" units="ms">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <owner>cthomp@chromium.org</owner>
  <summary>
    The amount of time, in milliseconds, between the start of a typed URL
    navigation in the omnibox (the user typing a URL to completion, or selecting
    a URL from the inline autocomplete or dropdown) and the start of a redirect
    upgrading the URL to HTTPS. This is only recorded when the upgraded URL is
    the same except for the scheme and the addition/removal of a
    &quot;www.&quot; prefix.

    To calculate the percentage of HTTP URL navigations that have been upgraded
    in this way, divide the count of this histogram by the count for HTTP in
    Omnibox.URLNavigationScheme.
  </summary>
</histogram>

<histogram name="Omnibox.UserTextCleared" enum="OmniboxUserTextCleared">
  <owner>kenjibaheux@chromium.org</owner>
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Counts the number of times that the user text is cleared. IME users are
    sometimes in the situation that IME was unintentionally turned on and failed
    to input latin alphabets (ASCII characters) or the opposite case. In that
    case, users may delete all the text and the user text gets cleared. This
    histogram helps us estimate how often this scenario happens.

    Note that since we don't currently correlate &quot;text cleared&quot; events
    with IME usage, this also captures many other cases where users clear the
    text; though it explicitly doesn't log deleting all the permanent text as
    the first action of an editing sequence (see comments in
    OnAfterPossibleChange()).
  </summary>
</histogram>

<histogram name="Omnibox.WarmupTime" units="ms">
  <owner>etienneb@chromium.org</owner>
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Time it takes for the omnibox to process the first user interaction after
    startup. This measures the time it takes to start all autocomplete providers
    and their initialisation steps. This metric may be recorded twice as there
    is the normal omnibox path and also the &quot;classify text&quot; path to
    the autocomplete system.
  </summary>
</histogram>

<histogram name="Omnibox.ZeroSuggest.Eligible.OnFocus"
    enum="ZeroSuggestEligibleOnFocus">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Whether the user has settings configured so that the current page URL can be
    sent to the suggest server to request contextual suggestions. For example,
    this is only supported for users who have Google as their default search
    engine (unmodified version of Google), have search suggest enabled, are
    signed-in and syncing without a custom passphrase, and don't have an
    incognito window open. There are other criteria too. Recorded on focus in
    the omnibox if there is default search provider and we've constructed a
    suggest URL.

    Some additional guidelines: if an incognito window is open, all focus events
    will go into the &quot;generally ineligible&quot; bucket. Likewise, if the
    current page is a search results page, we don't allow contextual suggestions
    either so focus events on those pages go in the &quot;generally
    ineligible&quot; bucket. The difference between &quot;eligible&quot; and
    &quot;generally eligible but not this time&quot; depends only the properties
    of the current URL.

    Recorded regardless of whether contextual or non-contextual zero suggest is
    currently enabled on the user's platform. However, if zero suggest (in all
    forms) is entirely disabled, the user will be perpetually ineligible.
  </summary>
</histogram>

<histogram name="Omnibox.ZeroSuggest.Eligible.OnProfileOpen"
    enum="BooleanSupported">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <summary>
    Whether the user has settings configured so that the current page URL could
    be sent to the suggest server to request contextual suggestions. For
    example, this is only supported for users who have Google as their default
    search engine (unmodified version of Google), have search suggest enabled,
    and are signed-in and syncing without a custom passphrase. There are other
    criteria too. Recorded on profile open. Note that opening an incognito
    window (if none are currently open under the given profile) counts as
    opening a new profile.

    Some additional guidelines: unlike Omnibox.ZeroSuggest.Eligible.OnFocus,
    because this is recorded on profile open, users cannot be declared
    ineligible because they have an incognito window open (it's impossible to
    have an incognito window open for a given profile at the time of profile
    open) and also cannot be declared ineligible because the user is viewing a
    search results page. (We test this on-profile-open using an arbitrary URL.)

    Recorded regardless of whether contextual or non-contextual zero suggest is
    currently enabled on the user's platform. However, if zero suggest (in all
    forms) is entirely disabled, the user will be perpetually ineligible.
  </summary>
</histogram>

<histogram name="Omnibox.ZeroSuggest.MostVisitedResultsCounterfactual">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <owner>hfung@chromium.org</owner>
  <summary>
    The number of most visited suggestions returned when ZeroSuggest would have
    triggered. The suggestions appear when the user has focused but not modified
    the omnibox.
  </summary>
</histogram>

<histogram name="Omnibox.ZeroSuggestRequests" enum="OmniboxZeroSuggestRequests">
  <owner>mpearson@chromium.org</owner>
  <owner>jdonnelly@chromium.org</owner>
  <owner>hfung@chromium.org</owner>
  <summary>
    Counts about the number of zero suggest requests (requests for suggestions
    when the user has focused but not modified the omnibox) the omnibox sent,
    invalidated, and replies received.
  </summary>
</histogram>

<histogram name="OOBE.BootToSignInCompleted" units="ms">
  <owner>alemate@chromium.org</owner>
  <summary>Time from boot to sign-in completed.</summary>
</histogram>

<histogram name="OOBE.ErrorScreensTime.Enrollment" units="ms">
  <owner>achuith@chromium.org</owner>
  <summary>
    Time spent on error screens during enrollment or autoenrollment.
  </summary>
</histogram>

<histogram name="OOBE.ErrorScreensTime.Signin" units="ms">
  <owner>achuith@chromium.org</owner>
  <summary>Time spent on error screens during signin.</summary>
</histogram>

<histogram name="OOBE.ErrorScreensTime.Supervised" units="ms">
  <owner>achuith@chromium.org</owner>
  <summary>
    Time spent on error screens during supervised user creation.
  </summary>
</histogram>

<histogram name="OOBE.ErrorScreensTime.Update" units="ms">
  <owner>achuith@chromium.org</owner>
  <summary>Time spent on error screens during update.</summary>
</histogram>

<histogram name="OOBE.EULAToSignInTime" units="ms">
  <owner>alemate@chromium.org</owner>
  <summary>
    Time from acceptance of the EULA until the login screen is first displayed.
  </summary>
</histogram>

<histogram name="OOBE.NetworkErrorShown.Enrollment" enum="NetworkErrorType">
  <owner>achuith@google.com</owner>
  <summary>
    Number of times error screen has appeared during enrollment or
    autoenrollment.
  </summary>
</histogram>

<histogram name="OOBE.NetworkErrorShown.Signin" enum="NetworkErrorType">
  <owner>achuith@google.com</owner>
  <summary>Number of times error screen has appeared during signin.</summary>
</histogram>

<histogram name="OOBE.NetworkErrorShown.Supervised" enum="NetworkErrorType">
  <owner>achuith@google.com</owner>
  <summary>
    Number of times error screen has appeared during supervised user creation.
  </summary>
</histogram>

<histogram name="OOBE.NetworkErrorShown.Update" enum="NetworkErrorType">
  <owner>achuith@google.com</owner>
  <summary>Number of times error screen has appeared during update.</summary>
</histogram>

<histogram name="OOBE.RecommendApps.Fetcher.AppCount"
    expires_after="2019-08-30">
  <owner>play-bm-eng@google.com</owner>
  <summary>The number of recommended apps.</summary>
</histogram>

<histogram name="OOBE.RecommendApps.Fetcher.DownloadTime" units="ms"
    expires_after="2019-08-30">
  <owner>play-bm-eng@google.com</owner>
  <summary>The time it takes to fetch the recommended apps.</summary>
</histogram>

<histogram name="OOBE.RecommendApps.Fetcher.ResponseCode"
    enum="HttpResponseCode" expires_after="2019-08-30">
  <owner>chromesky-eng@google.com</owner>
  <summary>The response code of fetching the recommended apps.</summary>
</histogram>

<histogram name="OOBE.RecommendApps.Fetcher.ResponseParseResult"
    enum="RecommendAppsResponseParseResult" expires_after="2019-08-30">
  <owner>chromesky-eng@google.com</owner>
  <summary>The result of parsing the recommend-apps response.</summary>
</histogram>

<histogram name="OOBE.RecommendApps.Fetcher.ResponseSize" units="KB"
    expires_after="2019-08-30">
  <owner>chromesky-eng@google.com</owner>
  <summary>The size of the recommend-apps JSON response.</summary>
</histogram>

<histogram name="OOBE.RecommendApps.Screen.Action"
    enum="RecommendAppsScreenAction" expires_after="2019-08-30">
  <owner>chromesky-eng@google.com</owner>
  <summary>The user action on the recommend apps screen.</summary>
</histogram>

<histogram name="OOBE.RecommendApps.Screen.SelectedAppCount"
    expires_after="2019-08-30">
  <owner>chromesky-eng@google.com</owner>
  <summary>The number of apps user selected.</summary>
</histogram>

<histogram name="OOBE.RecommendApps.Screen.SelectedRecommendedPercentage"
    units="%" expires_after="2019-08-30">
  <owner>chromesky-eng@google.com</owner>
  <summary>The ratio of selected and recommended apps.</summary>
</histogram>

<histogram name="OOBE.RecommendApps.Screen.State"
    enum="RecommendAppsScreenState" expires_after="2019-08-30">
  <owner>chromesky-eng@google.com</owner>
  <summary>Whether the reocmmend apps screen is shown.</summary>
</histogram>

<histogram name="OOBE.StepCompletionTime" units="ms">
  <owner>alemate@chromium.org</owner>
  <summary>Time spent on specific OOBE screen.</summary>
</histogram>

<histogram name="OptimizationGuide.ProcessHintsResult"
    enum="OptimizationGuideProcessHintsResult">
  <owner>dougarnett@chromium.org</owner>
  <owner>sophiechang@chromium.org</owner>
  <summary>
    Whether processing the hints succeeded or failed at a particular step.
    Recorded when the OptimizationGuideService receives a notification to
    process hints.
  </summary>
</histogram>

<histogram name="OriginChip.Pressed">
  <obsolete>
    Deprecated with CL 731423002. OriginChip has been removed.
  </obsolete>
  <owner>gbillock@chromium.org</owner>
  <summary>The number of clicks on the origin chip.</summary>
</histogram>

<histogram name="OriginTrials.FeatureEnabled" enum="OriginTrialEnableResult">
  <obsolete>
    Obsolete as of Chrome 54. Sort of replaced by OriginTrials.ValidationResult.
  </obsolete>
  <owner>chasej@chromium.org</owner>
  <owner>iclelland@chromium.org</owner>
  <summary>
    Counts the results of origin trial checks to enable experimental features.
    The result for each feature check is counted at most once per execution
    context (e.g. page, worker).
  </summary>
</histogram>

<histogram name="OriginTrials.FeatureEnabled.MessageGenerated"
    enum="OriginTrialMessageGeneratedResult">
  <obsolete>
    Obsolete as of Chrome 54.
  </obsolete>
  <owner>chasej@chromium.org</owner>
  <owner>iclelland@chromium.org</owner>
  <summary>
    Counts how often an error message is generated for each origin trial check
    to enable an experimental feature.
  </summary>
</histogram>

<histogram name="OriginTrials.ValidationResult" enum="OriginTrialTokenStatus">
  <owner>chasej@chromium.org</owner>
  <owner>iclelland@chromium.org</owner>
  <summary>
    Counts the results of token validation checks to enable experimental
    features. The result for each token validation check is counted once per
    token per execution context (e.g. page, worker).
  </summary>
</histogram>

<histogram name="OSCrypt.EncryptionKeyLookupError">
  <owner>cfroussios@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Error code returned by SecKeychainFindGenericPassword when the encryption
    key is retrieved.
  </summary>
</histogram>

<histogram name="OSCrypt.EncryptionKeyOverwritingPreventions">
  <obsolete>
    Obsolete as of Chrome 72.
  </obsolete>
  <owner>tsabolcec@google.com</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    The number of times that Chrome prevented overwriting the encryption key in
    a row. This metric is logged once on startup.
  </summary>
</histogram>

<histogram name="OSCrypt.FindPasswordAgain" enum="FindPasswordResult">
  <owner>cfroussios@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Result of the second call to SecKeychainFindGenericPassword when the
    encryption key was not found but was expected to be there.
  </summary>
</histogram>

<histogram name="OSCrypt.GetEncryptionKeyAction" enum="GetEncryptionKeyAction">
  <owner>cfroussios@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Action taken when retrieving the encryption key from the Keychain. This
    metric is logged once on startup.
  </summary>
</histogram>

<histogram name="OSX.BluetoothAvailability" enum="BluetoothAvailability"
    expires_after="2018-08-30">
  <obsolete>
    Obsolete as of Chrome 73. This has been replaced by Bluetooth.Availability.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    The availability and capabilities of the Bluetooth driver on OSX devices.
    This metric is logged on startup.
  </summary>
</histogram>

<histogram name="OSX.CatSixtyFour" enum="CatSixtyFour">
  <obsolete>
    Obsolete as of Chrome 43. See OmahaProxy for more relevant statistics.
  </obsolete>
  <owner>mark@chromium.org</owner>
  <summary>The cat's flavor and how many bits there are in it.</summary>
</histogram>

<histogram name="OSX.ExceptionHandlerEvents" enum="OSXExceptionHandlerEvents">
  <owner>mark@chromium.org</owner>
  <summary>Events seen by the OSX NSException swizzle.</summary>
</histogram>

<histogram name="OSX.FastUserSwitch" enum="OSXFastUserSwitchEvent"
    expires_after="2019-12-31">
  <owner>avi@chromium.org</owner>
  <owner>rsesek@chromium.org</owner>
  <owner>mark@chromium.org</owner>
  <summary>Records the Fast User Switching events that occur.</summary>
</histogram>

<histogram name="OSX.Fullscreen.Enter" enum="OSXFullscreenParameters">
  <obsolete>
    Deprecated as of Chrome 40. See OSX.Fullscreen.Enter.Style,
    OSX.Fullscreen.Enter.WindowLocation and
    OSX.Settings.ScreensHaveSeparateSpaces.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    This event is recorded each time a user triggers fullscreen for a browser
    window. The value's bits reflect different parameters. Bit 0: Fullscreen
    entry mechanism (AppKit vs Immersive). Bit 1: Whether the window was on the
    primary screen (Primary vs. Secondary). Bit 2: Whether displays have
    separate spaces options is enabled (Seperate vs Shared). Bit 3: Whether
    there are multiple screens.
  </summary>
</histogram>

<histogram name="OSX.Fullscreen.Enter.Source" enum="OSXFullscreenSource">
  <owner>spqchan@chromium.org</owner>
  <summary>
    This event is recorded each time a user triggers fullscreen for a browser
    window. It indicates if the fullscreen is triggered for the browser or the
    tab content.
  </summary>
</histogram>

<histogram name="OSX.Fullscreen.Enter.Style" enum="OSXFullscreenStyle"
    expires_after="2018-08-30">
  <owner>erikchen@chromium.org</owner>
  <summary>
    This event is recorded each time a user triggers fullscreen for a browser
    window. It indicates the mechanism (immersive vs. AppKit) and the type of
    AppKit Fullscreen (Presentation Mode vs. Canonical Fullscreen).
  </summary>
</histogram>

<histogram name="OSX.Fullscreen.Enter.WindowLocation"
    enum="OSXFullscreenWindowLocation" expires_after="2018-08-30">
  <owner>erikchen@chromium.org</owner>
  <summary>
    This event is recorded each time a user triggers fullscreen for a browser
    window. It indicates the screen in which the window was fullscreened, and
    the number of screens available.
  </summary>
</histogram>

<histogram name="OSX.Fullscreen.ToolbarStyle" enum="OSXFullscreenToolbarStyle">
  <obsolete>
    Deprecated as of 11/2018.
  </obsolete>
  <owner>spqchan@chromium.org</owner>
  <summary>
    This event is recorded each time a user triggers fullscreen and when the
    fullscreen toolbar is updated with a new style.
  </summary>
</histogram>

<histogram name="OSX.Handoff.Origin" enum="OSXHandoffOrigin"
    expires_after="2018-08-30">
  <owner>erikchen@chromium.org</owner>
  <summary>
    This event is recorded each time a Handoff is received by Chrome on OSX. The
    enumeration indicates the source of the Handoff.
  </summary>
</histogram>

<histogram name="OSX.InstallationFilesystem" enum="OSXFilesystem"
    expires_after="2019-12-31">
  <owner>avi@chromium.org</owner>
  <owner>rsesek@chromium.org</owner>
  <owner>mark@chromium.org</owner>
  <summary>Records the filesystem type that the app lives on.</summary>
</histogram>

<histogram name="OSX.KeychainReauthorizeIfNeeded" units="count">
  <owner>kerrnel@chromium.org</owner>
  <owner>mark@chromium.org</owner>
  <summary>
    The number of previous times that the keychain reauthorization did not
    complete, when run during the main browser launch.
  </summary>
</histogram>

<histogram name="OSX.KeychainReauthorizeIfNeededAtUpdate" units="count">
  <owner>kerrnel@chromium.org</owner>
  <owner>mark@chromium.org</owner>
  <summary>
    The number of previous times that the keychain reauthorization did not
    complete, when run at update time.
  </summary>
</histogram>

<histogram name="OSX.KeychainReauthorizeIfNeededAtUpdateSuccess" units="count">
  <owner>kerrnel@chromium.org</owner>
  <owner>mark@chromium.org</owner>
  <summary>
    How many times the keychain reauthorization ran before finally succeeding,
    when run at update time.
  </summary>
</histogram>

<histogram name="OSX.KeychainReauthorizeIfNeededSuccess" units="count">
  <owner>kerrnel@chromium.org</owner>
  <owner>mark@chromium.org</owner>
  <summary>
    How many times the keychain reauthorization ran before finally succeeding,
    when run during the main browser launch.
  </summary>
</histogram>

<histogram name="OSX.NativeShare" units="BooleanSuccess">
  <owner>lgrey@chromium.org</owner>
  <summary>
    Whether the user successfully shared via a native sharing extensions after
    selecting it from the share menu. False can indicate failure or
    user-initiated cancellation.
  </summary>
</histogram>

<histogram base="true" name="OSX.OtherInstances" expires_after="2019-12-31">
  <owner>avi@chromium.org</owner>
  <owner>rsesek@chromium.org</owner>
  <owner>mark@chromium.org</owner>
  <summary>
    Records how many other instances of this binary are running at startup.
  </summary>
</histogram>

<histogram name="OSX.RendererHost.SurfaceWaitTime" units="ms">
  <obsolete>
    Deprecated as of 11/2015.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    This event records the amount of time that the browser process main thread
    blocks, waiting for a frame with the right dimensions to arrive from the gpu
    process.
  </summary>
</histogram>

<histogram name="OSX.Settings.ScreensHaveSeparateSpaces"
    enum="OSXScreensHaveSeparateSpaces">
  <owner>erikchen@chromium.org</owner>
  <summary>
    The configuration of the setting &quot;Screens Have Separate Spaces&quot;
    available in OSX 10.9+.
  </summary>
</histogram>

<histogram name="OSX.SharedMemory.Mechanism" enum="OSXSharedMemoryMechanism">
  <obsolete>
    Deprecated as of Chrome 51 since Mach has become the default mechanism.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    A histogram entry is emitted each time a base::SharedMemory object is
    constructed. The value of the entry indicates the mechanism used to back the
    shared memory region.
  </summary>
</histogram>

<histogram name="OSX.StagingDirectoryLocation" enum="OSXStagingDirectoryStep">
  <obsolete>
    Deprecated as of 02/2019 in favor of StagingDirectoryLocation2.
  </obsolete>
  <owner>avi@chromium.org</owner>
  <owner>rsesek@chromium.org</owner>
  <owner>mark@chromium.org</owner>
  <summary>Records first staging directory location that works.</summary>
</histogram>

<histogram name="OSX.StagingDirectoryLocation2" enum="OSXStagingDirectoryStep"
    expires_after="2019-12-31">
  <owner>avi@chromium.org</owner>
  <owner>rsesek@chromium.org</owner>
  <owner>mark@chromium.org</owner>
  <summary>
    Records, during Chrome startup, the first staging directory location that
    works. This is for the change to the updating system.
  </summary>
</histogram>

<histogram name="OSX.SystemHotkeyMap.LoadSuccess" enum="BooleanSuccess"
    expires_after="2018-08-30">
  <owner>erikchen@chromium.org</owner>
  <summary>
    Whether an attempt to load the system hotkeys on a Mac was successful.
  </summary>
</histogram>

<histogram name="OutdatedUpgradeBubble.NumLaterPerEnableAU">
  <owner>mad@chromium.org</owner>
  <summary>
    Counts the number of times the user clicked on the later button of the
    outdated upgrade bubble, before clicking on the enable updates button in the
    same Chrome session.
  </summary>
</histogram>

<histogram name="OutdatedUpgradeBubble.NumLaterPerReinstall">
  <owner>mad@chromium.org</owner>
  <summary>
    Counts the number of times the user clicked on the later button of the
    outdated upgrade bubble, before clicking on the reinstall button in the same
    Chrome session.
  </summary>
</histogram>

<histogram name="OutOfProcessHeapProfiling.ProfiledProcess.Type"
    enum="OutOfProcessHeapProfilingProcessType">
  <owner>erikchen@chromium.org</owner>
  <summary>
    One metric is emitted every 24-hours after Chrome is launched for every
    process that is being profiled. The timer is reset if Chrome exits.
  </summary>
</histogram>

<histogram name="OutOfProcessHeapProfiling.ProfilingMode"
    enum="OutOfProcessHeapProfilingMode">
  <owner>erikchen@chromium.org</owner>
  <summary>
    One metric is emitted every 24-hours after Chrome is launched for every
    Chrome instance that is using out of process heap profiling. The timer is
    reset if Chrome exits.
  </summary>
</histogram>

<histogram name="OutOfProcessHeapProfiling.RecordTrace.Success"
    enum="BooleanSuccess">
  <owner>erikchen@chromium.org</owner>
  <summary>
    The metric is emitted each time Chrome attempts to record a memory-infra
    trace to upload an out-of-process heap-profiling memory dump.
  </summary>
</histogram>

<histogram name="OutOfProcessHeapProfiling.UploadTrace.Size" units="bytes">
  <owner>erikchen@chromium.org</owner>
  <summary>
    The metric is emitted each time Chrome uploads a trace. It reflects the
    uncompressed size of the trace.
  </summary>
</histogram>

<histogram name="OutOfProcessHeapProfiling.UploadTrace.Success"
    enum="BooleanSuccess">
  <owner>erikchen@chromium.org</owner>
  <summary>
    The metric is emitted each time Chrome uploads a trace. It reflects whether
    the upload was successful.
  </summary>
</histogram>

<histogram name="Overscroll.Cancelled" enum="NavigationDirection">
  <obsolete>
    Deprecated as of Chrome 59 in favour of Overscroll.Cancelled3.
  </obsolete>
  <owner>rbyers@chromium.org</owner>
  <owner>nzolghadr@chromium.org</owner>
  <summary>
    Overscroll gestures that were aborted before they were completed.
  </summary>
</histogram>

<histogram name="Overscroll.Cancelled3" enum="OverscrollNavigationType">
  <owner>nzolghadr@chromium.org</owner>
  <summary>
    Overscroll gestures that were aborted before they were completed.
  </summary>
</histogram>

<histogram name="Overscroll.Completed" enum="OverscrollMode">
  <obsolete>
    Deprecated as of Chrome 44 in favour of Overscroll.Cancelled and
    Overscroll.Navigated2.
  </obsolete>
  <owner>rbyers@chromium.org</owner>
  <owner>mfomitchev@chromium.org</owner>
  <summary>Completed overscroll gestures.</summary>
  <details>
    An overscroll gesture starts when user scrolls past the edge of the web page
    and continues scrolling in the same direction. An overscroll gesture is
    completed when user stops scrolling (e.g. by lifting the fingers from the
    touchscreen or touchpad).
  </details>
</histogram>

<histogram name="Overscroll.Navigated" enum="OverscrollMode">
  <obsolete>
    Deprecated as of Chrome 44 to switch to NavigationDirection enum.
  </obsolete>
  <owner>rbyers@chromium.org</owner>
  <owner>mfomitchev@chromium.org</owner>
  <summary>
    Navigations that were triggered due to completed overscroll gesture. Note
    that not all completed overscroll gestures trigger a navigation.
  </summary>
</histogram>

<histogram name="Overscroll.Navigated2" enum="NavigationDirection">
  <obsolete>
    Deprecated as of Chrome 59 in favour of Overscroll.Navigated3.
  </obsolete>
  <owner>rbyers@chromium.org</owner>
  <owner>mfomitchev@chromium.org</owner>
  <summary>
    Navigations that were triggered due to completed overscroll gesture. Note
    that not all completed overscroll gestures trigger a navigation.
  </summary>
</histogram>

<histogram name="Overscroll.Navigated3" enum="OverscrollNavigationType">
  <owner>nzolghadr@chromium.org</owner>
  <summary>
    Navigations that were triggered due to completed overscroll gesture. Note
    that not all completed overscroll gestures trigger a navigation.
  </summary>
</histogram>

<histogram name="Overscroll.Started" enum="OverscrollMode">
  <obsolete>
    Deprecated as of Chrome 44 to switch to NavigationDirection enum.
  </obsolete>
  <owner>rbyers@chromium.org</owner>
  <owner>mfomitchev@chromium.org</owner>
  <summary>
    Overscroll gestures initiated by the user. Note that not all overcroll
    gestures started are completed (e.g. the overscroll gesture is aborted if
    user clicks or presses a key during the gesture).
  </summary>
</histogram>

<histogram name="Overscroll.Started2" enum="NavigationDirection">
  <obsolete>
    Deprecated as of Chrome 59 in favour of Overscroll.Started3.
  </obsolete>
  <owner>rbyers@chromium.org</owner>
  <owner>mfomitchev@chromium.org</owner>
  <summary>
    Overscroll gestures initiated by the user. Note that not all overscroll
    gestures started are completed (e.g. the overscroll gesture is aborted if
    user clicks or presses a key during the gesture).
  </summary>
</histogram>

<histogram name="Overscroll.Started3" enum="OverscrollNavigationType">
  <owner>nzolghadr@chromium.org</owner>
  <summary>
    Overscroll gestures initiated by the user. Note that not all overscroll
    gestures started are completed (e.g. the overscroll gesture is aborted if
    user clicks or presses a key during the gesture).
  </summary>
</histogram>

<histogram name="Ozone.TouchNoiseFilter.FarApartTapDistance"
    units="squared pixels">
  <owner>pkotwicz@google.com</owner>
  <summary>
    The squared distance between taps which occur in quick succession. Only
    reported when the taps are far apart and touch noise filtering is enabled.
  </summary>
</histogram>

<histogram name="Ozone.TouchNoiseFilter.HorizontallyAlignedDistance"
    units="pixels">
  <owner>pkotwicz@google.com</owner>
  <summary>
    The horizontal distance from a &quot;touch press&quot; to the closest other
    touch. Only reported if there are two or more fingers onscreen and touch
    noise filtering is enabled.
  </summary>
</histogram>

<histogram name="Ozone.TouchNoiseFilter.TimeSinceLastNoiseOccurrence"
    units="ms">
  <owner>pkotwicz@google.com</owner>
  <summary>
    The amount of time between noisy touches. The amount of time since Chrome
    startup is recorded for the first noisy touch after startup.
  </summary>
</histogram>

<histogram name="Ozone.TouchNoiseFilter.TouchesAtSinglePositionDuration"
    units="ms">
  <owner>pkotwicz@google.com</owner>
  <summary>
    The time between taps which occur in quick succession at the same screen
    location. Only reported when touch noise filtering is enabled.
  </summary>
</histogram>

<histogram name="P2P.Client.Canceled.WaitingTimeSeconds" units="seconds">
  <owner>ahassani@chromium.org</owner>
  <summary>
    The wall-clock time spent until a lookup was canceled. This is reported
    every time p2p is used to find a candidate but the request was canceled.
  </summary>
</histogram>

<histogram name="P2P.Client.Found.CandidateCount" units="count">
  <owner>ahassani@chromium.org</owner>
  <summary>
    The number of candidates on the LAN, i.e. the number of peers on the LAN
    offering at least N bytes of the requested file X. This is reported after
    examining responses from all peers on the LAN and picking a candidate.
  </summary>
</histogram>

<histogram name="P2P.Client.Found.ConnectionCount" units="count">
  <owner>ahassani@chromium.org</owner>
  <summary>
    The number of p2p downloads of the peer that the returned URL points to.
    This is reported after examining responses from all peers on the LAN and
    picking a candidate.
  </summary>
</histogram>

<histogram name="P2P.Client.Found.WaitingTimeSeconds" units="seconds">
  <owner>ahassani@chromium.org</owner>
  <summary>
    The wall-clock time spent waiting for the LAN-wide number of p2p downloads
    (i.e. the sum of p2p downloads from each peer on the LAN) to drop below the
    threshold. This is reported after examining responses from all peers on the
    LAN and picking a candidate.
  </summary>
</histogram>

<histogram name="P2P.Client.LookupResult" enum="P2PLookupResult">
  <owner>ahassani@chromium.org</owner>
  <summary>
    The result of the lookup. Possible values include &quot;Found&quot; (if a
    candidate - i.e. a peer offering at least N bytes of file X - was chosen),
    &quot;Not Found&quot; (if no candidate could be found), &quot;Vanished&quot;
    (if a candidate was found but vanished while waiting in line),
    &quot;Canceled&quot; (if a candidate was found but the request was canceled
    while waiting in line), and &quot;Filtered&quot; (if it was detected that
    mDNS was filtered). This is reported after examining responses from all
    peers on the LAN when p2p is used to find a candidate.
  </summary>
</histogram>

<histogram name="P2P.Client.NumPeers" units="count">
  <owner>ahassani@chromium.org</owner>
  <summary>
    The number of peers implementing p2p file sharing on the network. This is
    reported every time p2p is used to look up a resource on a network where
    mDNS is not filtered.
  </summary>
</histogram>

<histogram name="P2P.Client.Vanished.WaitingTimeSeconds" units="seconds">
  <owner>ahassani@chromium.org</owner>
  <summary>
    The wall-clock time spent waiting for one or more candidates (i.e. peers
    offering at least N bytes of file X) that all vanished before the LAN-wide
    number of p2p downloads dropped below the threshold. This is reported every
    time candidates were found using p2p but then vanished.
  </summary>
</histogram>

<histogram name="P2P.Server.ClientCount" units="count">
  <owner>ahassani@chromium.org</owner>
  <summary>
    The number of currently connected HTTP clients. This is reported every time
    a HTTP client connects.
  </summary>
</histogram>

<histogram name="P2P.Server.ContentServedInterruptedMB" units="MB">
  <owner>ahassani@chromium.org</owner>
  <summary>
    Number of megabytes (1,000,000 bytes) served from the device (via HTTP)
    where the client disconnects prematurely. This is reported every time a file
    is served and the client disconnects before receiving all data.
  </summary>
</histogram>

<histogram name="P2P.Server.ContentServedSuccessfullyMB" units="MB">
  <owner>ahassani@chromium.org</owner>
  <summary>
    Number of megabytes (1,000,000 bytes) served from the device (via HTTP).
    This is reported every time a file have been served successfully.
  </summary>
</histogram>

<histogram name="P2P.Server.DownloadSpeedKBps" units="kB/s">
  <owner>ahassani@chromium.org</owner>
  <summary>
    The average speed at which the download was served at, in kB/s. This is
    reported every time a file have been served successfully.
  </summary>
</histogram>

<histogram name="P2P.Server.FileCount" units="count">
  <owner>ahassani@chromium.org</owner>
  <summary>
    The number of files available via p2p. This is reported every time a file is
    added or removed to the /var/cache/p2p directory.
  </summary>
</histogram>

<histogram name="P2P.Server.RangeBeginPercentage" units="%">
  <owner>ahassani@chromium.org</owner>
  <summary>
    When a client resumes a download, the HTTP request includes range specifier
    to skip the bytes it already has. This metric conveys this as a percentage
    of the file size. This is reported every time a file is served, even if the
    request does not include a range specifier (in which case 0 is reported).
  </summary>
</histogram>

<histogram name="P2P.Server.RequestResult" enum="P2PServerResult">
  <owner>ahassani@chromium.org</owner>
  <summary>
    The result of the HTTP request. Possible values include &quot;Response
    Sent&quot; (the resource was found and the response was successfully sent),
    &quot;Response Interrupted&quot; (the resource was found but the client
    disconnected), &quot;Malformed&quot; (the request was malformed), &quot;Not
    Found&quot; (the request was for a resource that was not found), and
    &quot;Index&quot; (the request was for the '/' or '/index.html' resource).
    This is reported for every HTTP request handled.
  </summary>
</histogram>

<histogram name="PageActionController.ExtensionsWithPageActions">
  <owner>finnur@chromium.org</owner>
  <summary>
    The number of Extensions that have Page Actions. Measured once per startup
    per profile.
  </summary>
</histogram>

<histogram name="PageImportanceSignals.HadFormInteraction.OnCommitLoad"
    enum="HadFormInteraction">
  <owner>kouhei@chromium.org</owner>
  <summary>
    Number of pages that had any HTML form interaction before next page load.
  </summary>
</histogram>

<histogram base="true" name="PageLoad.AbortTiming.Background" units="ms">
  <obsolete>
    Deprecated in favor of PageLoad.Experimental.AbortTiming equivalent.
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    This metric is still experimental and not yet ready to be relied upon.
    Measures the time from navigation start to the time the page load was
    aborted due to being backgrounded.
  </summary>
</histogram>

<histogram base="true" name="PageLoad.AbortTiming.ClientRedirect" units="ms">
  <obsolete>
    Deprecated in favor of PageLoad.Experimental.AbortTiming equivalent.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    This metric is still experimental and not yet ready to be relied upon.
    Measures the time from navigation start to the time the page load was
    aborted by a client side redirect (Javascript navigation).
  </summary>
</histogram>

<histogram base="true" name="PageLoad.AbortTiming.Close" units="ms">
  <obsolete>
    Deprecated in favor of PageLoad.Experimental.AbortTiming equivalent.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    This metric is still experimental and not yet ready to be relied upon.
    Measures the time from navigation start to the time the page load was
    aborted by the user closing the tab or browser.
  </summary>
</histogram>

<histogram base="true" name="PageLoad.AbortTiming.ForwardBackNavigation"
    units="ms">
  <obsolete>
    Deprecated in favor of PageLoad.Experimental.AbortTiming equivalent.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    This metric is still experimental and not yet ready to be relied upon.
    Measures the time from navigation start to the time the page load was
    aborted by a forward or back navigation.
  </summary>
</histogram>

<histogram base="true" name="PageLoad.AbortTiming.NewNavigation" units="ms">
  <obsolete>
    Deprecated in favor of PageLoad.Experimental.AbortTiming equivalent.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    This metric is still experimental and not yet ready to be relied upon.
    Measures the time from navigation start to the time the page load was
    aborted by a new navigation.
  </summary>
</histogram>

<histogram base="true" name="PageLoad.AbortTiming.Other" units="ms">
  <obsolete>
    Deprecated in favor of PageLoad.Experimental.AbortTiming equivalent.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    This metric is still experimental and not yet ready to be relied upon.
    Measures the time from navigation start to the time the page load was
    aborted. The abort cause is unknown.
  </summary>
</histogram>

<histogram base="true" name="PageLoad.AbortTiming.Reload" units="ms">
  <obsolete>
    Deprecated in favor of PageLoad.Experimental.AbortTiming equivalent.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    This metric is still experimental and not yet ready to be relied upon.
    Measures the time from navigation start to the time the page load was
    aborted by a reload.
  </summary>
</histogram>

<histogram base="true" name="PageLoad.AbortTiming.Stop" units="ms">
  <obsolete>
    Deprecated in favor of PageLoad.Experimental.AbortTiming equivalent.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    This metric is still experimental and not yet ready to be relied upon.
    Measures the time from navigation start to the time the page load was
    aborted by the user pressing stop.
  </summary>
</histogram>

<histogram name="PageLoad.AbortTiming.UnknownNavigation" units="ms">
  <obsolete>
    We now have sufficient infrastructure to always characterize aborts that
    resulted in new navigations.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    This metric is still experimental and not yet ready to be relied upon.
    Measures the time from navigation start to the time the page load was
    aborted by a navigation with unknown transition type.
  </summary>
</histogram>

<histogram base="true" name="PageLoad.Bytes" expires_after="2020-01-05">
  <owner>jkarlin@chromium.org</owner>
  <owner>johnidel@chromium.org</owner>
  <summary>
    Only recorded if the page has at least one identified ad frame. Recorded in
    PageLoadMetrics when the page is destroyed. Bytes include all bytes used by
    the network to load a resource and response body bytes for cached resources.
    An ad frame consists of the identified ad frame and all of its children
    (which may also be ads, but are counted as part of the ancestor ad frame).
    Includes resources that did not finish loading.
  </summary>
</histogram>

<histogram name="PageLoad.Bytes.AdFrames.Aggregate.Network" units="KB">
  <obsolete>
    Deprecated 01/19. Replaced with
    PageLoad.Cients.Ads.Bytes.AdFrames.Aggregate.Network.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The size (in KB) of the resources loaded for all of the ad frames on the
    page that loaded over the network.

    Only recorded if the page has at least one identified ad frame. Bytes are
    measured as over-the-wire (e.g., compressed) response body KBs and do not
    include header bytes. An ad frame consists of the identified ad frame and
    all of its children (which may also be ads, but are counted as part of the
    ancestor ad frame).
  </summary>
</histogram>

<histogram name="PageLoad.Bytes.AdFrames.Aggregate.PercentNetwork" units="%">
  <obsolete>
    Deprecated 01/19. Replaced with
    PageLoad.Cients.Ads.Bytes.AdFrames.Aggregate.PercentNetwork.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The percentage of bytes loaded for all ad frames that were loaded over the
    network.

    Only recorded if the page has at least one identified ad frame. Bytes are
    measured as over-the-wire (e.g., compressed) response body KBs and do not
    include header bytes. An ad frame consists of the identified ad frame and
    all of its children (which may also be ads, but are counted as part of the
    ancestor ad frame).
  </summary>
</histogram>

<histogram name="PageLoad.Bytes.AdFrames.Aggregate.Total" units="KB">
  <obsolete>
    Deprecated 01/19. Replaced with
    PageLoad.Cients.Ads.Bytes.AdFrames.Aggregate.Total.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The size (in KB) of the resources loaded for all of the ad frames on the
    page.

    Only recorded if the page has at least one identified ad frame. Bytes are
    measured as over-the-wire (e.g., compressed) response body KBs and do not
    include header bytes. An ad frame consists of the identified ad frame and
    all of its children (which may also be ads, but are counted as part of the
    ancestor ad frame).
  </summary>
</histogram>

<histogram name="PageLoad.Bytes.AdFrames.PerFrame.Network" units="KB">
  <obsolete>
    Deprecated 01/19. Replaced with
    PageLoad.Cients.Ads.Bytes.AdFrames.PerFrame.Network.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The size (in KB) of the resources loaded for an ad frame from the network.

    Only recorded if the page has at least one identified ad frame. Bytes are
    measured as over-the-wire (e.g., compressed) response body KBs and do not
    include header bytes. An ad frame consists of the identified ad frame and
    all of its children (which may also be ads, but are counted as part of the
    ancestor ad frame).
  </summary>
</histogram>

<histogram name="PageLoad.Bytes.AdFrames.PerFrame.PercentNetwork" units="%">
  <obsolete>
    Deprecated 01/19. Replaced with
    PageLoad.Cients.Ads.Bytes.AdFrames.PerFrame.PercentNetwork.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The percentage of bytes loaded for a single ad frame that were loaded over
    the network.

    Only recorded if the page has at least one identified ad frame. Bytes are
    measured as over-the-wire (e.g., compressed) response body KBs and do not
    include header bytes. An ad frame consists of the identified ad frame and
    all of its children (which may also be ads, but are counted as part of the
    ancestor ad frame).
  </summary>
</histogram>

<histogram name="PageLoad.Bytes.AdFrames.PerFrame.Total" units="KB">
  <obsolete>
    Deprecated 01/19. Replaced with
    PageLoad.Cients.Ads.Bytes.AdFrames.PerFrame.Total.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The size (in KB) of the resources loaded for an ad frame.

    Only recorded if the page has at least one identified ad frame. Bytes are
    measured as over-the-wire (e.g., compressed) response body KBs and do not
    include header bytes. An ad frame consists of the identified ad frame and
    all of its children (which may also be ads, but are counted as part of the
    ancestor ad frame).
  </summary>
</histogram>

<histogram name="PageLoad.Bytes.FullPage.Network" units="KB">
  <obsolete>
    Deprecated 01/19. Replaced with PageLoad.Cients.Ads.Bytes.FullPage.Network.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The size (in KB) of all of the page's resources that loaded over the
    network.

    Only recorded if the page has at least one identified ad frame. Bytes are
    measured as over-the-wire (e.g., compressed) response body KBs and do not
    include header bytes.
  </summary>
</histogram>

<histogram name="PageLoad.Bytes.FullPage.Network.PercentAds" units="%">
  <obsolete>
    Deprecated 01/19. Replaced with
    PageLoad.Cients.Ads.Bytes.FullPage.Network.PercentAds.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The percentage of bytes loaded for the page (from the network) that came
    from resource loads in ad frames (from the network).

    Only recorded if the page has at least one identified ad frame. Bytes are
    measured as over-the-wire (e.g., compressed) response body KBs and do not
    include header bytes. An ad frame consists of the identified ad frame and
    all of its children (which may also be ads, but are counted as part of the
    ancestor ad frame).
  </summary>
</histogram>

<histogram name="PageLoad.Bytes.FullPage.Total" units="KB">
  <obsolete>
    Deprecated 01/19. Replaced with PageLoad.Cients.Ads.Bytes.FullPage.Total.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The size (in KB) of all of the page's resources.

    Only recorded if the page has at least one identified ad frame. Bytes are
    measured as over-the-wire (e.g., compressed) response body KBs and do not
    include header bytes.
  </summary>
</histogram>

<histogram name="PageLoad.Bytes.FullPage.Total.PercentAds" units="%">
  <obsolete>
    Deprecated 01/19. Replaced with
    PageLoad.Cients.Ads.Bytes.FullPage.Total.PercentAds.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The percentage of bytes loaded for the page that came from resource loads in
    ad frames.

    Only recorded if the page has at least one identified ad frame. Bytes are
    measured as over-the-wire (e.g., compressed) response body KBs and do not
    include header bytes. An ad frame consists of the identified ad frame and
    all of its children (which may also be ads, but are counted as part of the
    ancestor ad frame).
  </summary>
</histogram>

<histogram name="PageLoad.Bytes.NonAdFrames.Aggregate.Total" units="KB">
  <obsolete>
    Deprecated 01/19. Replaced with
    PageLoad.Cients.Ads.Bytes.NonAdFrames.Aggregate.Total.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The size (in KB) of all of the page's resources except for those loaded in
    ad frames.

    Only recorded if the page has at least one identified ad frame. Bytes are
    measured as over-the-wire (e.g., compressed) response body KBs and do not
    include header bytes. An ad frame consists of the identified ad frame and
    all of its children (which may also be ads, but are counted as part of the
    ancestor ad frame).
  </summary>
</histogram>

<histogram name="PageLoad.Clients.Ads.All.Navigations.AdFrameRenavigatedToAd"
    enum="DidNavigateToAd">
  <obsolete>
    Deprecated In July 2018, metric was buggy for subresource filter ads.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    When a frame that is (or previously was) an ad frame renavigates, record
    whether it renavigated to an ad frame or a non-ad frame.

    An ad frame consists of the identified ad frame and all of its children. Its
    children (which may also be ads) are not counted when they renavigate.

    This metric is recorded as the event happens. Note that this is unlike most
    other Clients.Ads metrics, which are recorded when the page load is
    complete.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.Ads.All.Navigations.NonAdFrameRenavigatedToAd"
    enum="DidNavigateToAd">
  <obsolete>
    Deprecated In July 2018.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    When a frame that has never been part of an ad frame renavigates, record
    whether it renavigated to an ad frame or a non-ad frame.

    This metric is recorded as the event happens. Note that this is unlike most
    other Clients.Ads metrics, which are recorded when the page load is
    complete.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.Ads.All.ParentExistsForSubFrame"
    enum="ParentFrameKnown">
  <obsolete>
    Deprecated in September 2018. At deprecation, 98.12% of parent frames were
    known.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Records whether or not a parent frame is found for a subframe that finishes
    navigating.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.Ads.All.ResourceTypeWhenNoFrameFound"
    enum="ContentResourceType2">
  <obsolete>
    Deprecated in September 2018. At time of deprecation: Subframe 80%, Script
    6.5%, Images 10%, and XHR was 3%.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Records the content::ResourceType when a resource finishes loading but the
    ads metrics aren't aware of a committed frame for the resource.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.Ads.FrameCounts.AdFrames.PerFrame.Visibility"
    enum="AdFrameVisibility" expires_after="2020-01-23">
  <obsolete>
    Deprecated 01/19.
  </obsolete>
  <owner>johnidel@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Whether or not the ad frame had a display: none style set, meaning it was
    not visible to the user. Only recorded for ad frames with non-zero total
    bytes. Recorded when the page is destroyed or navigated.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.Ads.Google.FrameCounts.MainFrameParent.AdFrames"
    units="Frames">
  <obsolete>
    Deprecated In May 2017.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The number of frames (with parent frame of main frame) that are on the page
    identified as Google Ad Frames.

    Only recorded if the page has at least one identified ad frame. Child frames
    of an ad frame are not included in the count.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.Ads.Google.FrameCounts.MainFrameParent.PercentAdFrames"
    units="%">
  <obsolete>
    Deprecated In May 2017.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The percentage of frames (with parent frame of main frame) on the page that
    are identified as Google Ad Frames.

    Only recorded if the page has at least one identified ad frame. An ad frame
    consists of the identified ad frame and all of its children (which may also
    be ads, but are counted as part of the ancestor ad frame).
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.Ads.Google.FrameCounts.MainFrameParent.TotalFrames"
    units="Frames">
  <obsolete>
    Deprecated In May 2017.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The number of frames (with parent frame of main frame) on the page.

    Only recorded if the page has at least one identified ad frame.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.Ads.Google.Navigations.AdFrameRenavigatedToAd"
    enum="DidNavigateToAd">
  <obsolete>
    Deprecated In July 2017. Use
    PageLoad.Clients.Ads.All.Navigations.AdFrameRenavigatedToAd instead.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    When a frame that is (or previously was) an ad frame renavigates, record
    whether it renavigated to an ad frame or a non-ad frame.

    An ad frame consists of the identified ad frame and all of its children. Its
    children (which may also be ads) are not counted when they renavigate.

    This metric is recorded as the event happens. Note that this is unlike most
    other Clients.Ads metrics, which are recorded when the page load is
    complete.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.Ads.Google.Navigations.NonAdFrameRenavigatedToAd"
    enum="DidNavigateToAd">
  <obsolete>
    Deprecated In July 2017. Use
    PageLoad.Clients.Ads.All.Navigations.NonAdFrameRenavigatedToAd instead.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    When a frame that has never been part of an ad frame renavigates, record
    whether it renavigated to an ad frame or a non-ad frame.

    This metric is recorded as the event happens. Note that this is unlike most
    other Clients.Ads metrics, which are recorded when the page load is
    complete.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.Ads.Google.ParentExistsForSubFrame"
    enum="ParentFrameKnown">
  <obsolete>
    Deprecated In July 2017. Use
    PageLoad.Clients.Ads.All.ParentExistsForSubFrame instead.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Records whether or not a parent frame is found for a subframe that finishes
    navigating.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.Ads.Google.ResourceTypeWhenNoFrameFound"
    enum="ContentResourceType2">
  <obsolete>
    Deprecated In July 2017. Use
    PageLoad.Clients.Ads.All.ResourceTypeWhenNoFrameFound instead.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Records the content::ResourceType when a resource finishes loading but the
    ads metrics aren't aware of a committed frame for the resource.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.Ads.Resources.Bytes.Ads" units="KB"
    expires_after="2019-09-05">
  <owner>jkarlin@chromium.org</owner>
  <owner>johnidel@chromium.org</owner>
  <summary>
    Total number of network bytes that went towards loading ad resources for a
    single page over it's entire lifetime. This includes resources that did not
    finish or were canceled. Only recorded for pages with non-zero ad bytes.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.Ads.Resources.Bytes.TopLevelAds" units="KB"
    expires_after="2019-09-05">
  <obsolete>
    Deprecated 02/2019. Replaced with
    PageLoad.Clients.Ads.Bytes.MainFrame.Ads.Network.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <owner>johnidel@chromium.org</owner>
  <summary>
    Total number of network bytes that were used to load top-level ad resources
    on the page. This includes resources that did not finish or were canceled.
    Only recorded for pages with non-zero ad bytes.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.Ads.Resources.Bytes.Total" units="KB"
    expires_after="2019-09-05">
  <obsolete>
    Deprecated 01/19. Replaced with PageLoad.Clients.Ads.Bytes.FullPage.Network.
  </obsolete>
  <owner>jkarlin@chromium.org</owner>
  <owner>johnidel@chromium.org</owner>
  <summary>
    Total number of network bytes that were used to load resources on the page.
    This includes resources that did not finish loading or were canceled. Only
    recorded for pages with non-zero ad bytes.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.Ads.Resources.Bytes.Unfinished" units="KB"
    expires_after="2019-09-05">
  <owner>jkarlin@chromium.org</owner>
  <owner>johnidel@chromium.org</owner>
  <summary>
    Total number of network bytes that were used to load resources that did not
    finish loading on the page (e.g. ongoing video). This includes resource
    loads that were canceled or resource loads that were ongoing when the page
    was destroyed. Only recorded for pages with non-zero ad bytes.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.AMP.Experimental.PageTiming.InputToNavigation.Subframe"
    units="ms">
  <owner>bmcquade@chromium.org</owner>
  <summary>
    The time from the user input that triggers the top-level navigation for an
    AMP document to the time that the navigation for the AMP document is
    initiated in the AMP frame. This gives insight into how often AMP documents
    are navigated to via same document navigations without being prerendered.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.AMP.Experimental.PageTiming.MainFrameToSubFrameNavigationDelta.Subframe"
    units="ms">
  <owner>bmcquade@chromium.org</owner>
  <summary>
    The time from the main frame navigation to the subsequent subframe
    navigation for the AMP document. Only recorded for non-same-page
    navigations.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.AMP.Experimental.PageTiming.NavigationToInput.Subframe"
    units="ms">
  <owner>bmcquade@chromium.org</owner>
  <summary>
    The time from navigation in the AMP frame to the user input that triggers
    the top-level navigation for that AMP document. This gives insight into the
    delta between when an AMP frame is prerendered and when it is actually
    displayed for same document navigations.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.AMP.InteractiveTiming.FirstInputDelay3.Subframe"
    units="ms">
  <owner>bmcquade@chromium.org</owner>
  <summary>
    Measures First Input Delay, the duration between the hardware timestamp and
    the start of event processing on the main thread for the first meaningful
    input per navigation, in an AMP subframe document. Recorded on first page
    interaction. See https://goo.gl/tr1oTZ for a detailed explanation. Excludes
    scrolls. Only same-document navigations are included.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.AMP.InteractiveTiming.FirstInputDelay3.Subframe.FullNavigation"
    units="ms">
  <owner>bmcquade@chromium.org</owner>
  <summary>
    Measures First Input Delay, the duration between the hardware timestamp and
    the start of event processing on the main thread for the first meaningful
    input per navigation, in an AMP subframe document. Recorded on first page
    interaction. See https://goo.gl/tr1oTZ for a detailed explanation. Excludes
    scrolls. Only non-same-document navigations are included.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.AMP.PaintTiming.InputToFirstContentfulPaint.Subframe"
    units="ms">
  <owner>bmcquade@chromium.org</owner>
  <summary>
    The time from user input to first &quot;contentful&quot; paint in an AMP
    subframe document. Will be zero or near-zero in cases where the AMP subframe
    document was prerendered. Only same-document navigations are included.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.AMP.PaintTiming.InputToFirstContentfulPaint.Subframe.FullNavigation"
    units="ms">
  <owner>bmcquade@chromium.org</owner>
  <summary>
    The time from user input to first &quot;contentful&quot; paint in an AMP
    subframe document. Only non-same-document navigations are included.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.AMP.PaintTiming.InputToLargestContentPaint.Subframe"
    units="ms">
  <owner>bmcquade@chromium.org</owner>
  <summary>
    The time from user input to largest &quot;contentful&quot; paint in an AMP
    subframe document. Only same-document navigations are included.

    Excludes any content painted after user input. The value is recorded at the
    end of each page load unless there is an abort or user input before text or
    image paint. See http://bit.ly/fcp_plus_plus for details.

    Will be zero or near-zero in cases where the AMP subframe document was
    prerendered.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.AMP.PaintTiming.InputToLargestContentPaint.Subframe.FullNavigation"
    units="ms">
  <owner>bmcquade@chromium.org</owner>
  <summary>
    The time from user input to largest &quot;contentful&quot; paint in an AMP
    subframe document. Only non-same-document navigations are included.

    Excludes any content painted after user input. The value is recorded at the
    end of each page load unless there is an abort or user input before text or
    image paint. See http://bit.ly/fcp_plus_plus for details.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.AMP.SameDocumentView"
    enum="PageLoadMetricsAMPViewType">
  <owner>bmcquade@chromium.org</owner>
  <summary>Count of same document page views for AMP pages.</summary>
</histogram>

<histogram
    name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.CompressionRatio"
    units="%">
  <obsolete>
    Deprecated 10/2018
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>ryansturm@chromium.org</owner>
  <summary>
    100 times the ratio of network bytes received to network bytes the user
    would have seen without data reduction proxy (not including headers) in a
    page load that had its main resource loaded through data reduction proxy.
    Recorded as a percent if the data reduction proxy saved the user data.
    Recorded per page load when the user navigates away, hides the tab, or
    backgrounds the app.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.CompressionRatio2"
    units="%">
  <owner>bengr@chromium.org</owner>
  <owner>ryansturm@chromium.org</owner>
  <summary>
    100 times the ratio of network bytes received to network bytes the user
    would have seen without data reduction proxy (not including headers) in a
    page load that had its main resource loaded through data reduction proxy.
    Recorded as a percent if the data reduction proxy saved the user data.
    Recorded per page load when the user navigates away, hides the tab, or
    backgrounds the app.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.Inflation"
    units="KB">
  <obsolete>
    Deprecated 10/2018
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The number of network kilobytes (not including headers) that the data
    reduction proxy inflated for the user in a page load that had its main
    resource was loaded through data reduction proxy. Recorded per page load
    when the user navigates away, hides the tab, or backgrounds the app.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.Inflation2"
    units="KB">
  <owner>bengr@chromium.org</owner>
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The number of network kilobytes (not including headers) that the data
    reduction proxy inflated for the user in a page load that had its main
    resource was loaded through data reduction proxy. Recorded per page load
    when the user navigates away, hides the tab, or backgrounds the app.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.InflationPercent"
    units="%">
  <obsolete>
    Deprecated 10/2018
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The inflation in network kilobytes (not including headers) the user saw due
    to using data reduction proxy in a page load that had its main resource was
    loaded through data reduction proxy. Recorded as a percent when the user saw
    inflated data. Recorded per page load when the user navigates away, hides
    the tab, or backgrounds the app.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.InflationPercent2"
    units="%">
  <owner>bengr@chromium.org</owner>
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The inflation in network kilobytes (not including headers) the user saw due
    to using data reduction proxy in a page load that had its main resource was
    loaded through data reduction proxy. Recorded as a percent when the user saw
    inflated data. Recorded per page load when the user navigates away, hides
    the tab, or backgrounds the app.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.NonProxied"
    units="KB">
  <obsolete>
    Deprecated 10/2018
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The number of network kilobytes that were not fetched through the data
    reduction proxy (not including headers) in a page load that had its main
    resource was loaded through data reduction proxy. Recorded per page load
    when the user navigates away, hides the tab, or backgrounds the app.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.NonProxied2"
    units="KB">
  <owner>bengr@chromium.org</owner>
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The number of network kilobytes that were not fetched through the data
    reduction proxy (not including headers) in a page load that had its main
    resource was loaded through data reduction proxy. Recorded per page load
    when the user navigates away, hides the tab, or backgrounds the app.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.Original"
    units="KB">
  <obsolete>
    Deprecated 10/2018
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The number of network kilobytes (not including headers) that the user would
    have seen without using data reduction proxy in a page load that had its
    main resource was loaded through data reduction proxy. Recorded per page
    load when the user navigates away, hides the tab, or backgrounds the app.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.Original2"
    units="KB">
  <owner>bengr@chromium.org</owner>
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The number of network kilobytes (not including headers) that the user would
    have seen without using data reduction proxy in a page load that had its
    main resource was loaded through data reduction proxy. Recorded per page
    load when the user navigates away, hides the tab, or backgrounds the app.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.PercentProxied"
    units="%">
  <obsolete>
    Deprecated 10/2018
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The percent of network kilobytes (not including headers) in a page load that
    went through data reduction proxy when the main resource was loaded through
    data reduction proxy. Recorded per page load when the user navigates away,
    hides the tab, or backgrounds the app.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.PercentProxied2"
    units="%">
  <owner>bengr@chromium.org</owner>
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The percent of network kilobytes (not including headers) in a page load that
    went through data reduction proxy when the main resource was loaded through
    data reduction proxy. Recorded per page load when the user navigates away,
    hides the tab, or backgrounds the app.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.Proxied"
    units="KB">
  <obsolete>
    Deprecated 10/2018
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The number of network kilobytes that were fetched through the data reduction
    proxy (not including headers) in a page load that had its main resource was
    loaded through data reduction proxy. Recorded per page load when the user
    navigates away, hides the tab, or backgrounds the app.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.Proxied2"
    units="KB">
  <owner>bengr@chromium.org</owner>
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The number of network kilobytes that were fetched through the data reduction
    proxy (not including headers) in a page load that had its main resource was
    loaded through data reduction proxy. Recorded per page load when the user
    navigates away, hides the tab, or backgrounds the app.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.Savings"
    units="KB">
  <obsolete>
    Deprecated 10/2018
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The number of network kilobytes (not including headers) that the data
    reduction proxy saved the user in a page load that had its main resource was
    loaded through data reduction proxy. Recorded per page load when the user
    navigates away, hides the tab, or backgrounds the app.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.Savings2"
    units="KB">
  <owner>bengr@chromium.org</owner>
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The number of network kilobytes (not including headers) that the data
    reduction proxy saved the user in a page load that had its main resource was
    loaded through data reduction proxy. Recorded per page load when the user
    navigates away, hides the tab, or backgrounds the app.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.DataReductionProxy.Experimental.CompletedResources.Network.PercentProxied"
    units="%">
  <obsolete>
    Deprecated 10/2018
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The percent of completed resources loaded from network in a page load that
    use data reduction proxy when the main resource was loaded through data
    reduction proxy. Recorded per page load when the user navigates away, hides
    the tab, or backgrounds the app.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.DataReductionProxy.Experimental.CompletedResources.Network2"
    units="%">
  <owner>bengr@chromium.org</owner>
  <owner>ryansturm@chromium.org</owner>
  <summary>
    Records info about the completed resources loaded from network in a page
    load that use data reduction proxy when the main resource was loaded through
    data reduction proxy. Recorded per page load when the user navigates away,
    hides the tab, or backgrounds the app. The number of proxies, non-proxied,
    percent of proxied are recorded as suffixes.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.DelayNavigation.Delay.Actual" units="ms">
  <obsolete>
    Deprecated March 2018
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    The actual delay added to page loads by DelayNavigationThrottle, for page
    loads that started in the foreground and reached first paint in the
    foreground.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.DelayNavigation.Delay.Delta" units="ms">
  <obsolete>
    Deprecated March 2018
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    The absolute delta between the specified and actual delays added to main
    frame navigations by DelayNavigationThrottle, for page loads that started in
    the foreground and reached first paint in the foreground.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.DelayNavigation.Delay.Specified" units="ms">
  <obsolete>
    Deprecated March 2018
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    The specified delay added to main frame navigations by
    DelayNavigationThrottle, for page loads that started in the foreground and
    reached first paint in the foreground.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.DocWrite.Block.Count" enum="Boolean">
  <owner>bmcquade@chromium.org</owner>
  <summary>
    Counts the number of pages where a script loaded via document.write could
    have been blocked.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.DocWrite.Block.DocumentWriteLoadingBehavior"
    enum="DocumentWriteLoadingBehavior">
  <owner>shivanisha@chromium.org</owner>
  <owner>bmcquade@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    This metric measures the counts of pages for various loading behaviors of
    document.written scripts.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.DocWrite.Block.ReloadCount">
  <owner>shivanisha@chromium.org</owner>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    This metric measures reloads in pages that have synchronous, cross-origin
    document.written scripts that could be blocked if document.write script
    blocking feature is enabled.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.GoogleCaptcha.Events"
    enum="GoogleCaptchaEvent">
  <obsolete>
    Deprecated May 2018
  </obsolete>
  <owner>mdw@chromium.org</owner>
  <summary>Events related to Google CAPTCHA pages being seen by users.</summary>
</histogram>

<histogram name="PageLoad.Clients.LoFi.Experimental.Bytes.Network.LoFi"
    units="KB">
  <owner>bengr@chromium.org</owner>
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The number of network kilobytes (not including headers) that LoFi resources
    used in a page load that had at least one LoFi resource. Recorded per page
    load when the user navigates away, hides the tab, or backgrounds the app.
  </summary>
</histogram>

<histogram
    name="PageLoad.Clients.LoFi.Experimental.CompletedResources.Network.LoFi"
    units="KB">
  <owner>bengr@chromium.org</owner>
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The number of network LoFi resources in a page load that had at least one
    LoFi resource. Recorded per page load when the user navigates away, hides
    the tab, or backgrounds the app.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.MultiTabLoading.NumTabsWithInflightLoad"
    units="tabs">
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Records the number of tabs with inflight loading activities. Recorded when a
    new page load starts.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.Scheme.HTTP.PaintTiming.UnderStat"
    enum="PageLoadTimingUnderStat">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Records if the time from navigation to first contentful paint was less than
    the specified threshold. Also, records the total number of first contentful
    paints. For a single first contentful paint event, data may be recorded in
    multiple buckets. Recorded at the time when first contentful paint happens.
    Recorded only for page loads that have scheme http://.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.Scheme.HTTPS.PaintTiming.UnderStat"
    enum="PageLoadTimingUnderStat">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Records if the time from navigation to first contentful paint was less than
    the specified threshold. Also, records the total number of first contentful
    paints. For a single first contentful paint event, data may be recorded in
    multiple buckets. Recorded at the time when first contentful paint happens.
    Recorded only for page loads that have scheme https://.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.ServiceWorker.PageTransition"
    enum="CorePageTransition">
  <obsolete>
    Deprecated June 2018 (M69) in favor of
    PageLoad.Clients.ServiceWorker2.PageTransition.
  </obsolete>
  <owner>falken@chromium.org</owner>
  <summary>
    The core transition type for main frame page loads controlled by a service
    worker.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.ServiceWorker2.PageTransition"
    enum="CorePageTransition">
  <owner>falken@chromium.org</owner>
  <summary>
    The core transition type for main frame page loads controlled by a service
    worker that has a fetch event handler.
  </summary>
</histogram>

<histogram base="true"
    name="PageLoad.Clients.StaleWhileRevalidate.PaintTiming.FirstContentfulPaint"
    units="ms" expires_after="M75">
  <owner>dtapuska@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <summary>
    Measures the time from navigation start to first contentful paint. Recorded
    for pages that contain a resource that may benefit from stale while
    revalidate.
  </summary>
</histogram>

<histogram base="true"
    name="PageLoad.Clients.StaleWhileRevalidate.PaintTiming.ParseToFirstContentfulPaint"
    units="ms" expires_after="M75">
  <owner>dtapuska@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <summary>
    Measures the time from parse start to first contentful paint. Recorded for
    pages that contain a resource that may benefit from stale while revalidate.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.SubresourceFilter.ActivationDecision"
    enum="SubresourceFilterActivationDecision">
  <obsolete>
    Deprecated May 2018 (M68) in favor of
    SubresourceFilter.PageLoad.ActivationDecision
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    Records the policy decision to activate subresource filtering for a page
    load. 'Activated' indicates that subresource filtering was activated. All
    other reasons indicate that subresource filtering was not activated. Page
    loads where subresource filtering was activated ('Activated') and at least
    one subresource matched the subresource filter are counted in
    PageLoad.Clients.SubresourceFilter.Count.
  </summary>
</histogram>

<histogram name="PageLoad.Clients.SubresourceFilter.Count" enum="Boolean">
  <obsolete>
    Deprecated May 2018 (M68) in favor of
    SubresourceFilter.PageLoad.NumSubresourceLoads.MatchedRules (e.g. by looking
    at 0 and non-zero buckets).
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    Records 'true' for page loads where the subresource filter matched a
    subresource loaded by the page. Includes dryrun matches. To compute the
    percentage of total page loads affected by subresource filtering, divide by
    the sum of counts for (PageLoad.ParseTiming.NavigationToParseStart +
    PageLoad.ParseTiming.NavigationToParseStart.Background).
  </summary>
</histogram>

<histogram name="PageLoad.CSSTiming.Parse.BeforeFirstContentfulPaint"
    units="ms">
  <obsolete>
    Deprecated in May 2018 (M69).
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The time spent parsing author style sheets before the first contentful
    paint.
  </summary>
</histogram>

<histogram name="PageLoad.CSSTiming.ParseAndUpdate.BeforeFirstContentfulPaint"
    units="ms">
  <obsolete>
    Deprecated in May 2018 (M69).
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The sum of CSSTiming.Update and CSSTiming.Parse variants for this page load.
  </summary>
</histogram>

<histogram name="PageLoad.CSSTiming.Update.BeforeFirstContentfulPaint"
    units="ms">
  <obsolete>
    Deprecated in May 2018 (M69).
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The time spent in Document::updateStyle before the first contentful paint.
  </summary>
</histogram>

<histogram
    name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"
    units="ms">
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    DOMContentLoaded event is fired, for main frame documents.
  </summary>
</histogram>

<histogram name="PageLoad.DocumentTiming.NavigationToFirstLayout" units="ms">
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    first layout is performed, for main frame documents.
  </summary>
</histogram>

<histogram name="PageLoad.DocumentTiming.NavigationToLoadEventFired" units="ms">
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    load event is fired, for main frame documents.
  </summary>
</histogram>

<histogram name="PageLoad.EventCounts" enum="PageLoadEvent">
  <obsolete>
    deprecated in favor of PageLoad.Events.*
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    Captures counts of various page load events. These are enumerated in the
    enum page_load_metrics::PageLoadEvent, and include events like 'page load
    aborted before first layout'
  </summary>
</histogram>

<histogram name="PageLoad.Events.Committed" enum="CommittedLoadEvent">
  <obsolete>
    Deprecated in favor of PageLoad.Timing2.NavigationToCommit and
    PageLoad.AbortTiming.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    Captures counts of load events post-commit, on relevant page loads (i.e.
    http/https, not same-page, not an error page). These events include aborts
    before first layout and successful first layouts. Note that the event
    'Committed load started' when segmented by background/foreground specifies
    whether the eventually committed load started in the background or
    foreground, not whether we backgrounded before the actual commit event. This
    is because we don't have all the data to filter relevant page loads on
    provisional loads.
  </summary>
</histogram>

<histogram name="PageLoad.Events.InternalError" enum="InternalErrorLoadEvent">
  <obsolete>
    Deprecated in favor of PageLoad.Internal.ErrorCode.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    Counts of various internal error conditions in the page_load_metrics system.
  </summary>
</histogram>

<histogram name="PageLoad.Events.Provisional" enum="ProvisionalLoadEvent">
  <obsolete>
    Deprecated Feb 2016 in favor of PageLoad.AbortTiming and
    PageLoad.Timing2.NavigationToFailedProvisionalLoad. Note that the
    corresponding background enumerations are no longer being tracked in the
    timing histograms.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    Captures counts of provisional load events. These include aborted, failed,
    and successful (committed) provisional loads.
  </summary>
</histogram>

<histogram base="true" name="PageLoad.Experimental.AbortTiming.Background"
    units="ms">
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    This metric is still experimental and not yet ready to be relied upon.
    Measures the time from navigation start to the time the page load was
    aborted due to being backgrounded.
  </summary>
</histogram>

<histogram base="true" name="PageLoad.Experimental.AbortTiming.ClientRedirect"
    units="ms">
  <obsolete>
    Deprecated in favor of PageLoad.Internal.ClientRedirect.*.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    This metric is still experimental and not yet ready to be relied upon.
    Measures the time from navigation start to the time the page load was
    aborted by a client side redirect (Javascript navigation).
  </summary>
</histogram>

<histogram base="true" name="PageLoad.Experimental.AbortTiming.Close"
    units="ms">
  <owner>csharrison@chromium.org</owner>
  <summary>
    This metric is still experimental and not yet ready to be relied upon.
    Measures the time from navigation start to the time the page load was
    aborted by the user closing the tab or browser.
  </summary>
</histogram>

<histogram base="true"
    name="PageLoad.Experimental.AbortTiming.ForwardBackNavigation" units="ms">
  <owner>csharrison@chromium.org</owner>
  <summary>
    This metric is still experimental and not yet ready to be relied upon.
    Measures the time from navigation start to the time the page load was
    aborted by a forward or back navigation.
  </summary>
</histogram>

<histogram base="true" name="PageLoad.Experimental.AbortTiming.NewNavigation"
    units="ms">
  <owner>csharrison@chromium.org</owner>
  <summary>
    This metric is still experimental and not yet ready to be relied upon.
    Measures the time from navigation start to the time the page load was
    aborted by a new navigation.
  </summary>
</histogram>

<histogram base="true" name="PageLoad.Experimental.AbortTiming.Other"
    units="ms">
  <owner>csharrison@chromium.org</owner>
  <summary>
    This metric is still experimental and not yet ready to be relied upon.
    Measures the time from navigation start to the time the page load was
    aborted. The abort cause is unknown.
  </summary>
</histogram>

<histogram base="true" name="PageLoad.Experimental.AbortTiming.Reload"
    units="ms">
  <owner>csharrison@chromium.org</owner>
  <summary>
    This metric is still experimental and not yet ready to be relied upon.
    Measures the time from navigation start to the time the page load was
    aborted by a reload.
  </summary>
</histogram>

<histogram base="true" name="PageLoad.Experimental.AbortTiming.Stop" units="ms">
  <owner>csharrison@chromium.org</owner>
  <summary>
    This metric is still experimental and not yet ready to be relied upon.
    Measures the time from navigation start to the time the page load was
    aborted by the user pressing stop.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.Bytes.Cache" units="KB">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The number of prefiltered (e.g., compressed) response body KiloBytes loaded
    from the cache via the browser process for a page load. Recorded when the
    page load is terminated. Only recorded for complete resources.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.Bytes.Network" units="KB">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The number of prefiltered (e.g., compressed) response body KiloBytes loaded
    over the network via the browser process for a page load. Does not include
    any header or overhead bytes. Recorded when the page load is terminated.
    Only recorded for complete resources.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.Bytes.NetworkIncludingHeaders"
    units="KB">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The number of prefiltered (e.g., compressed) KiloBytes loaded over the
    network via the browser process for a page load. This includes network
    headers/overhead. Recorded when the page load is terminated. Recorded for
    incomplete resources.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.Bytes.Total" units="KB">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The number of prefiltered (e.g., compressed) response body KiloBytes loaded
    via the browser process for a page load. Does not include any header or
    overhead bytes. Recorded when the page load is terminated. Only recorded for
    complete resources.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.Cache.RequestPercent.ParseStop"
    units="%">
  <obsolete>
    Removed Jan 2018
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The percent of resources loaded from cache for the given page load. Recorded
    at the end of HTML parsing.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.Cache.TotalRequests.ParseStop"
    units="requests">
  <obsolete>
    Removed Jan 2018
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The number of resources a given page finished loading from cache at parse
    stop.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.CompletedResources.Cache"
    units="resources">
  <owner>csharrison@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The number of completed resources loaded from the cache via the browser
    process for a page load. Recorded when the page load is terminated.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.CompletedResources.Network"
    units="resources">
  <owner>csharrison@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The number of completed resources loaded from the network via the browser
    process for a page load. Recorded when the page load is terminated.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.CompletedResources.Total"
    units="resources">
  <owner>csharrison@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The total number of completed resources loaded via the browser process for a
    page load. Recorded when the page load is terminated.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.InputTiming.InputToNavigationStart"
    units="ms" expires_after="2019-08-22">
  <owner>sullivan@chromium.org</owner>
  <owner>tdresser@chromium.org</owner>
  <summary>
    The time between the OS-level input event that initiated a navigation, and
    the navigation actually starting.
  </summary>
</histogram>

<histogram
    name="PageLoad.Experimental.InputTiming.InputToNavigationStart.Background"
    units="ms" expires_after="2019-08-22">
  <owner>sullivan@chromium.org</owner>
  <owner>tdresser@chromium.org</owner>
  <summary>
    The time between the OS-level input event that initiated a navigation, and
    the navigation actually starting, for background loads.
  </summary>
</histogram>

<histogram
    name="PageLoad.Experimental.InputTiming.InputToNavigationStart.FromLinkClick"
    units="ms" expires_after="2019-08-22">
  <owner>sullivan@chromium.org</owner>
  <owner>tdresser@chromium.org</owner>
  <summary>
    The time between the OS-level click/tap event and navigation start, for
    clicks on links in the renderer.
  </summary>
</histogram>

<histogram
    name="PageLoad.Experimental.InputTiming.InputToNavigationStart.FromOmnibox"
    units="ms" expires_after="2019-08-22">
  <owner>sullivan@chromium.org</owner>
  <owner>tdresser@chromium.org</owner>
  <summary>
    The time between the OS-level keypress/tap event in the omnibox and
    navigation start, for navigations from the omnibox.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.LayoutStability.JankScore"
    units="scorex10">
  <owner>skobes@chromium.org</owner>
  <summary>
    Measures the amount of layout jank (bit.ly/lsm-explainer) that has occurred
    during the session.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.NavigationToInteractive" units="ms">
  <owner>dproy@chromium.org</owner>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Measures Time to Interactive, a metric based on main thread and network
    heuristics to approximate the point in time when the page feels interactive
    to the user. See https://goo.gl/TFw6xz for detailed explanation. This
    histogram uses First Meaningful Paint as the lower bound for quiescent
    windows.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.PageTiming.FirstPaintToFirstBackground"
    units="ms">
  <obsolete>
    Deprecated in favor of PageLoad.PageTiming.ForegroundDuration.AfterPaint.
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    Measures the total time the page load was active after first paint, up until
    being backgrounded, prior to the page load terminating. Recorded only for
    page loads that started in the foreground.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.PageTiming.FirstPaintToPageEnd"
    units="ms">
  <obsolete>
    Deprecated in favor of PageLoad.PageTiming.ForegroundDuration.AfterPaint.
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    Measures the total time the page load was active after first paint, for page
    loads that spend the entire time in the foreground.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.PageTiming.NavigationToFirstBackground"
    units="ms">
  <obsolete>
    Deprecated in favor of PageLoad.PageTiming.ForegroundDuration.
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    Measures the total time the page load was active, up until being
    backgrounded, for page loads that started in the foreground.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.PageTiming.NavigationToPageEnd"
    units="ms">
  <obsolete>
    Deprecated in favor of PageLoad.PageTiming.ForegroundDuration.
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    Measures the total time the page load was active, for page loads that spend
    the entire time in the foreground.
  </summary>
</histogram>

<histogram
    name="PageLoad.Experimental.PaintTiming.FirstMeaningfulPaintSignalStatus"
    enum="FirstMeaningfulPaintSignalStatus">
  <obsolete>
    Deprecated in favor of
    PageLoad.Experimental.PaintTiming.FirstMeaningfulPaintSignalStatus2.
  </obsolete>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Whether the user had any interaction on the page (except mouse move) after
    first paint, and whether the user left the page before network stable or
    not.
  </summary>
</histogram>

<histogram
    name="PageLoad.Experimental.PaintTiming.FirstMeaningfulPaintSignalStatus2"
    enum="FirstMeaningfulPaintSignalStatus">
  <obsolete>
    Deprecated as of 05/17/2017.
  </obsolete>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Whether the user had any interaction on the page (except mouse move) after
    first paint, and whether the user left the page before network stable or
    not. Not logged if page load was aborted before first paint.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.PaintTiming.FirstMeaningfulPaintStatus"
    enum="FirstMeaningfulPaintStatus">
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Records whether the First Meaningful Paint metric was reported for the page
    load, or why it wasn't if not. See http://bit.ly/ttfmp-doc for the
    definition of First Meaningful Paint.
  </summary>
</histogram>

<histogram
    name="PageLoad.Experimental.PaintTiming.FirstMeaningfulPaintToNetworkStable"
    units="ms">
  <obsolete>
    Deprecated as of 05/17/2017.
  </obsolete>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Measures the time between when the first meaningful paint
    (http://bit.ly/ttfmp-doc) was computed to have happened, and when we
    actually logged the metric.

    This metric is useful in helping us tweak when FirstMeaningfulPaintDetector
    should stop observing layout operations.
  </summary>
</histogram>

<histogram
    name="PageLoad.Experimental.PaintTiming.ForegroundToFirstMeaningfulPaint"
    units="ms">
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Measures the time from a background tab being switched to the foreground to
    the time the first meaningful paint is performed, for main frame documents.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.PaintTiming.InputToFirstContentfulPaint"
    units="ms" expires_after="2019-08-22">
  <owner>sullivan@chromium.org</owner>
  <summary>
    The time between the OS-level input event that initiated a navigation, and
    the first contentful paint of the page that was loaded in the navigation.
  </summary>
</histogram>

<histogram
    name="PageLoad.Experimental.PaintTiming.InputToFirstContentfulPaint.Background"
    units="ms" expires_after="2019-08-22">
  <owner>sullivan@chromium.org</owner>
  <summary>
    The time between the OS-level input event that initiated a navigation, and
    the first contentful paint of the page that was loaded in the navigation,
    for background loads.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.PaintTiming.InputToFirstPaint"
    units="ms" expires_after="2019-08-22">
  <owner>sullivan@chromium.org</owner>
  <summary>
    The time between the OS-level input event that initiated a navigation, and
    the first paint of the page that was loaded in the navigation.
  </summary>
</histogram>

<histogram
    name="PageLoad.Experimental.PaintTiming.InputToFirstPaint.Background"
    units="ms" expires_after="2019-08-22">
  <owner>sullivan@chromium.org</owner>
  <summary>
    The time between the OS-level input event that initiated a navigation, and
    the first paint of the page that was loaded in the navigation, for
    background loads.
  </summary>
</histogram>

<histogram
    name="PageLoad.Experimental.PaintTiming.LargestContentPaint.AllFrames.ContentType"
    enum="LargestContentType" expires_after="2019-04-23">
  <owner>maxlg@chromium.org</owner>
  <owner>npm@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    Measures whether the largest content paint, whose timestamp is measured by
    PageLoad.Experimental.PaintTiming.NavigationToLargestContentPaintAllFrames,
    comes from text or image. This value is recorded whenever
    PageLoad.Experimental.PaintTiming.NavigationToLargestContentPaintAllFrames
    is recorded.
  </summary>
</histogram>

<histogram
    name="PageLoad.Experimental.PaintTiming.LargestContentPaint.ContentType"
    enum="LargestContentType" expires_after="2019-04-23">
  <owner>maxlg@chromium.org</owner>
  <owner>npm@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    Measures whether the largest content paint, whose timestamp is measured by
    PageLoad.Experimental.PaintTiming.NavigationToLargestContentPaint, comes
    from text or image. This value is recorded whenever
    PageLoad.Experimental.PaintTiming.NavigationToLargestContentPaint is
    recorded.
  </summary>
</histogram>

<histogram
    name="PageLoad.Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"
    units="ms">
  <owner>ksakamoto@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the first
    meaningful paint (http://bit.ly/ttfmp-doc), for main frame documents.

    Do not modify this metric in any way without contacting
    speed-metrics-dev@chromium.org.
  </summary>
</histogram>

<histogram
    name="PageLoad.Experimental.PaintTiming.NavigationToLargestContentPaint"
    units="ms" expires_after="2019-04-23">
  <owner>maxlg@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    largest content (text or image) is first painted, for main frame documents.
    Excludes any content painted after user input. The value is recorded at the
    end of each page load unless there is an abort or user input before text or
    image paint. See http://bit.ly/fcp_plus_plus for details.
  </summary>
</histogram>

<histogram
    name="PageLoad.Experimental.PaintTiming.NavigationToLargestContentPaintAllFrames"
    units="ms" expires_after="2019-04-23">
  <owner>maxlg@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    largest content (text or image) is first painted, for main frame documents.
    Excludes any content painted after user input. The value is recorded at the
    end of each page load unless there is an abort or user input before text or
    image paint. Compared with NavigationToLargestContentPaint, this is the
    aggregate results from all frames, while NavigationToLargestContentPaint is
    only for main frame. See http://bit.ly/fcp_plus_plus for details.
  </summary>
</histogram>

<histogram
    name="PageLoad.Experimental.PaintTiming.NavigationToLargestImagePaint"
    units="ms" expires_after="2019-04-23">
  <owner>maxlg@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    largest image is first painted after fully loaded, for main frame documents.
    The value is recorded at the end of each page load. See
    http://bit.ly/fcp_plus_plus for details.
  </summary>
</histogram>

<histogram
    name="PageLoad.Experimental.PaintTiming.NavigationToLargestTextPaint"
    units="ms" expires_after="2019-04-23">
  <owner>maxlg@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    largest text is first painted, for main frame documents. The value is
    recorded at the end of each page load. See http://bit.ly/fcp_plus_plus for
    details.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.PaintTiming.NavigationToLastImagePaint"
    units="ms" expires_after="2019-04-23">
  <owner>maxlg@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    last image is first painted after fully loaded, for main frame documents.
    The value is recorded at the end of each page load. See
    http://bit.ly/fcp_plus_plus for details.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.PaintTiming.NavigationToLastTextPaint"
    units="ms" expires_after="2019-04-23">
  <owner>maxlg@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    last text is first painted, for main frame documents. The value is recorded
    at the end of each page load. The value is recorded at the end of each page
    load. See http://bit.ly/fcp_plus_plus for details.
  </summary>
</histogram>

<histogram
    name="PageLoad.Experimental.PaintTiming.ParseStartToFirstMeaningfulPaint"
    units="ms">
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Measures the time from when the HTML parser started, to the first meaningful
    paint (http://bit.ly/ttfmp-doc), for main frame documents.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.ParseDuration.CachedPercent.0-50"
    units="ms">
  <obsolete>
    Removed Jan 2018
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The parse duration of the page load where 0-50% of all subresources (loaded
    during parsing) were served from the HTTP cache (including 304s).
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.ParseDuration.CachedPercent.51-100"
    units="ms">
  <obsolete>
    Removed Jan 2018
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The parse duration of the page load where 51-100% of all subresources
    (loaded during parsing) were served from the HTTP cache (including 304s).
  </summary>
</histogram>

<histogram
    name="PageLoad.Experimental.Renderer.FirstMeaningfulPaintDetector.FirstMeaningfulPaintOrdering"
    enum="FirstMeaningfulPaintOrdering">
  <obsolete>
    Renamed to
    PageLoad.Internal.Renderer.FirstMeaningfulPaintDetector.FirstMeaningfulPaintOrdering
  </obsolete>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Whether the two variants of First Meaningful Paint reported different
    values, and if so, which one was reported first.
  </summary>
</histogram>

<histogram
    name="PageLoad.Experimental.Renderer.FirstMeaningfulPaintDetector.HadNetworkQuiet"
    enum="NetworkQuietStatus">
  <obsolete>
    Renamed to
    PageLoad.Internal.Renderer.FirstMeaningfulPaintDetector.HadNetworkQuiet
  </obsolete>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Recorded when the page load reached network 0-quiet (no active network
    connection for 0.5 seconds), or network 2-quiet (no more than 2 active
    network connections for 2 seconds).
    PageLoad.Experimental.PaintTiming.FirstMeaningfulPaintSignalStatus2
    histogram gives the fraction of page loads that had network 2-quiet, so it
    can be used as a baseline.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.TimeToInteractiveStatus"
    enum="TimeToInteractiveStatus">
  <owner>tdresser@chromium.org</owner>
  <owner>dproy@chromium.org</owner>
  <summary>
    Records whether the Time To Interactive metric was reported for the page
    load, or why it wasn't if not. See https://goo.gl/TFw6xz for definition of
    Time to Interactive.
  </summary>
</histogram>

<histogram name="PageLoad.Experimental.TotalRequests.ParseStop"
    units="requests">
  <obsolete>
    Removed Jan 2018
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The number of resources a given page finished loading at parse stop.
  </summary>
</histogram>

<histogram name="PageLoad.FrameCounts.AdFrames.PerFrame.CrossOrigin"
    enum="CrossOriginAd">
  <obsolete>
    Removed April 2018, replaced by OriginStatus.
  </obsolete>
  <owner>ericrobinson@chromium.org</owner>
  <summary>
    For each identified ad frame, whether the origin of the ad matches the
    origin of the main frame.

    An ad frame consists of the identified ad frame and all of its children
    (which may also be ads, but are counted as part of the ancestor ad frame).
    Frames of zero bytes (e.g., never had a document or their document was
    doc.written and no sub-resources were loaded) are not counted.
  </summary>
</histogram>

<histogram name="PageLoad.FrameCounts.AdFrames.PerFrame.OriginStatus"
    enum="CrossOriginAdStatus">
  <owner>ericrobinson@chromium.org</owner>
  <summary>
    For each identified ad frame, whether the origin of the ad matches the
    origin of the main frame, differs from the origin of the main frame, or is
    indeterminable.

    An ad frame consists of the identified ad frame and all of its children
    (which may also be ads, but are counted as part of the ancestor ad frame).
    Frames of zero bytes (e.g., never had a document or their document was
    doc.written and no sub-resources were loaded) are not counted.
  </summary>
</histogram>

<histogram base="true"
    name="PageLoad.FrameCounts.AdFrames.PerFrame.SizeIntervention"
    enum="AdFrameSizeInterventionStatus" expires_after="2020-01-29">
  <owner>johnidel@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Whether or not the ad frame would have triggered the Adframe size
    intervention. This is determined by checking if a frame does not have a user
    gesture when its size exceeds 1050 kilobytes. Only recorded for ad frames
    with non-zero total bytes. Recorded for each frame when the page is
    destroyed or navigated.
  </summary>
</histogram>

<histogram base="true"
    name="PageLoad.FrameCounts.AdFrames.PerFrame.SizeIntervention.MediaStatus"
    enum="AdFrameMediaStatus" expires_after="2020-02-22">
  <owner>johnidel@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Whether or not the ad frame that would have triggered the Adframe size
    intervention had media playing at any point in its lifetime. An adframe will
    trigger the intervention if it does not have a user gesture when its size
    exceeds 1050 kilobytes. Recorded for each offending frame when the page is
    destroyed or navigated.
  </summary>
</histogram>

<histogram base="true"
    name="PageLoad.FrameCounts.AdFrames.PerFrame.SmallestDimension"
    units="pixels" expires_after="2020-01-30">
  <owner>johnidel@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The smallest dimension of a root ad frame in pixels. Only recorded for ad
    frames with non-zero total bytes. Recorded when the page is destroyed or
    navigated. Display none iframes will not always update their size because
    they lack a content view. This uses the last size of frame before it was set
    to display: none.
  </summary>
</histogram>

<histogram base="true"
    name="PageLoad.FrameCounts.AdFrames.PerFrame.SqrtNumberOfPixels"
    units="pixels" expires_after="2020-01-30">
  <owner>johnidel@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The square root of the area of a root adframe in pixels. Only recorded for
    ad frames with non-zero total bytes. Recorded when the page is destroyed or
    navigated. Display none iframes will not always update their size because
    they lack a content view. This uses the last size of frame before it was set
    to display: none.
  </summary>
</histogram>

<histogram name="PageLoad.FrameCounts.AdFrames.PerFrame.UserActivation"
    enum="AdUserActivationStatus" expires_after="2020-01-17">
  <owner>johnidel@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    For each identified ad frame, whether the sticky user activation bit was
    ever set on the frame. Recorded for each ad frame when the page is destroyed
    or navigated away from, including ad frames that no longer exist.

    An ad frame consists of the identified ad frame and all of its children
    (which may also be ads, but are counted as part of the ancestor ad frame).
    Frames of zero bytes (e.g., never had a document or their document was
    doc.written and no sub-resources were loaded) are not counted.
  </summary>
</histogram>

<histogram name="PageLoad.FrameCounts.AnyParentFrame.AdFrames"
    units="Ad frames">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The number of frames on the page that have loaded more than 0 bytes of
    content.

    For pages with zero ad frames, the other PageLoad.Clients.Ads metrics are
    not recorded unless otherwise specified.

    Child frames of an ad frame are not included in the count.
  </summary>
</histogram>

<histogram name="PageLoad.InputTiming.NavigationToFirstNonScroll.AfterPaint"
    units="ms">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Measures the time to first non-scroll input after the first paint.
  </summary>
</histogram>

<histogram name="PageLoad.InputTiming.NavigationToFirstScroll.AfterPaint"
    units="ms">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Measures the time to first scroll input after the first paint.
  </summary>
</histogram>

<histogram name="PageLoad.InteractiveTiming.FirstInputDelay" units="ms">
  <obsolete>
    Removed on January 2019 in favor of
    PageLoad.InteractiveTiming.FirstInputDelay2 which correctly excludes some
    scrolling cases that were previously not excluded from this metric.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    Measures First Input Delay, the duration between the hardware timestamp and
    the start of event processing on the main thread for the first meaningful
    input per navigation. See https://goo.gl/tr1oTZ for a detailed explanation.
    In ms.

    Do not modify this metric in any way without contacting
    speed-metrics-dev@chromium.org.
  </summary>
</histogram>

<histogram name="PageLoad.InteractiveTiming.FirstInputDelay2" units="ms"
    expires_after="2020-01-23">
  <obsolete>
    Removed on February 2019 in favor of
    PageLoad.InteractiveTiming.FirstInputDelay3 which brings the metric more in
    line with the EventTiming API.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    Measures First Input Delay, the duration between the hardware timestamp and
    the start of event processing on the main thread for the first meaningful
    input per navigation. Recorded on first page interaction. See
    https://goo.gl/tr1oTZ for a detailed explanation. Excludes scrolls.

    Do not modify this metric in any way without contacting
    speed-metrics-dev@chromium.org.
  </summary>
</histogram>

<histogram name="PageLoad.InteractiveTiming.FirstInputDelay3" units="ms"
    expires_after="2020-02-23">
  <owner>tdresser@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    Measures First Input Delay, the duration between the hardware timestamp and
    the start of event processing on the main thread for the first meaningful
    input per navigation. Recorded on first page interaction. See
    https://goo.gl/tr1oTZ for a detailed explanation. Excludes scrolls.

    Do not modify this metric in any way without contacting
    speed-metrics-dev@chromium.org.
  </summary>
</histogram>

<histogram name="PageLoad.InteractiveTiming.FirstInputTimestamp" units="ms">
  <obsolete>
    Removed on January 2019 in favor of
    PageLoad.InteractiveTiming.FirstInputTimestamp2 which correctly excludes
    some scrolling cases that were previously not excluded from this metric.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    The duration between navigation start and the hardware timestamp of the
    first meaningful input per navigation. See https://goo.gl/tr1oTZ for a
    detailed explanation. In ms.
  </summary>
</histogram>

<histogram name="PageLoad.InteractiveTiming.FirstInputTimestamp2" units="ms"
    expires_after="2020-01-23">
  <obsolete>
    Removed on February 2019 in favor of
    PageLoad.InteractiveTiming.FirstInputTimestamp3 which brings the metric more
    in line with the EventTiming API.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    The duration between navigation start and the hardware timestamp of the
    first meaningful input per navigation. Recorded on first page interaction.
    See https://goo.gl/tr1oTZ for a detailed explanation. Excludes scrolls.
  </summary>
</histogram>

<histogram name="PageLoad.InteractiveTiming.FirstInputTimestamp3" units="ms"
    expires_after="2020-02-23">
  <owner>tdresser@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    The duration between navigation start and the hardware timestamp of the
    first meaningful input per navigation. Recorded on first page interaction.
    See https://goo.gl/tr1oTZ for a detailed explanation. Excludes scrolls.
  </summary>
</histogram>

<histogram name="PageLoad.InteractiveTiming.InputDelay" units="ms">
  <obsolete>
    Removed on January 2019 in favor of PageLoad.InteractiveTiming.InputDelay2
    which correctly excludes some scrolling cases that were previously not
    excluded from this metric.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    The duration between the hardware timestamp and the start of event
    processing on the main thread for a meaningful input. In ms.

    Do not modify this metric in any way without contacting
    speed-metrics-dev@chromium.org.
  </summary>
</histogram>

<histogram name="PageLoad.InteractiveTiming.InputDelay2" units="ms"
    expires_after="2020-01-23">
  <obsolete>
    Removed on February 2019 in favor of PageLoad.InteractiveTiming.InputDelay3
    which brings the metric more in line with the EventTiming API.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    The duration between the hardware timestamp and the start of event
    processing on the main thread for a meaningful input. Excludes scrolls.

    Do not modify this metric in any way without contacting
    speed-metrics-dev@chromium.org.
  </summary>
</histogram>

<histogram name="PageLoad.InteractiveTiming.InputDelay3" units="ms"
    expires_after="2020-02-23">
  <owner>tdresser@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    The duration between the hardware timestamp and the start of event
    processing on the main thread for a meaningful input. Excludes scrolls.

    Do not modify this metric in any way without contacting
    speed-metrics-dev@chromium.org.
  </summary>
</histogram>

<histogram name="PageLoad.InteractiveTiming.InputTimestamp" units="ms">
  <obsolete>
    Removed on January 2019 in favor of
    PageLoad.InteractiveTiming.InputTimestamp2 which correctly excludes some
    scrolling cases that were previously not excluded from this metric.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    The duration between navigation start and the hardware timestamp of a
    meaningful input. In ms.
  </summary>
</histogram>

<histogram name="PageLoad.InteractiveTiming.InputTimestamp2" units="ms"
    expires_after="2020-01-23">
  <obsolete>
    Removed on February 2019 in favor of
    PageLoad.InteractiveTiming.InputTimestamp3 which brings the metric more in
    line with the EventTiming API.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    The duration between navigation start and the hardware timestamp of a
    meaningful input. Excludes scrolls.
  </summary>
</histogram>

<histogram name="PageLoad.InteractiveTiming.InputTimestamp3" units="ms"
    expires_after="2020-02-23">
  <owner>tdresser@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    The duration between navigation start and the hardware timestamp of a
    meaningful input. Excludes scrolls.
  </summary>
</histogram>

<histogram name="PageLoad.InteractiveTiming.LongestInputDelay" units="ms">
  <obsolete>
    Removed on January 2019 in favor of
    PageLoad.InteractiveTiming.LongestInputDelay2 which correctly excludes some
    scrolling cases that were previously not excluded from this metric.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Measures longest Input Delay, the longest duration between the hardware
    timestamp and the start of event processing on the main thread for the
    meaningful input per navigation. In ms.
  </summary>
</histogram>

<histogram name="PageLoad.InteractiveTiming.LongestInputDelay2" units="ms"
    expires_after="2020-01-23">
  <obsolete>
    Removed on February 2019 in favor of
    PageLoad.InteractiveTiming.LongestInputDelay3 which brings the metric more
    in line with the EventTiming API.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    Measures longest Input Delay, the longest duration between the hardware
    timestamp and the start of event processing on the main thread for the
    meaningful input per navigation. Excludes scrolls.
  </summary>
</histogram>

<histogram name="PageLoad.InteractiveTiming.LongestInputDelay3" units="ms"
    expires_after="2020-01-23">
  <owner>tdresser@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    Measures longest Input Delay, the longest duration between the hardware
    timestamp and the start of event processing on the main thread for the
    meaningful input per navigation. Excludes scrolls.
  </summary>
</histogram>

<histogram name="PageLoad.InteractiveTiming.LongestInputTimestamp" units="ms">
  <obsolete>
    Removed on January 2019 in favor of
    PageLoad.InteractiveTiming.LongestInputTimestamp2 which correctly excludes
    some scrolling cases that were previously not excluded from this metric.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    The duration between navigation start and the hardware timestamp of the
    meaningful input with longest queuing delay per navigation. In ms.
  </summary>
</histogram>

<histogram name="PageLoad.InteractiveTiming.LongestInputTimestamp2" units="ms"
    expires_after="2020-01-23">
  <obsolete>
    Removed on February 2019 in favor of
    PageLoad.InteractiveTiming.LongestInputTimestamp3 which brings the metric
    more in line with the EventTiming API.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    The duration between navigation start and the hardware timestamp of the
    meaningful input with longest queuing delay per navigation. Excludes
    scrolls.
  </summary>
</histogram>

<histogram name="PageLoad.InteractiveTiming.LongestInputTimestamp3" units="ms"
    expires_after="2020-02-23">
  <owner>tdresser@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    The duration between navigation start and the hardware timestamp of the
    meaningful input with longest queuing delay per navigation. Excludes
    scrolls.
  </summary>
</histogram>

<histogram name="PageLoad.Internal.ClientRedirect.FirstPaintToNavigation"
    units="ms">
  <owner>bmcquade@chromium.org</owner>
  <summary>
    The delay between first paint and a client-side redirect navigation, for
    pages that reported a first paint. This metric is only intended to help in
    choosing a heuristic delay to distinguish between client-side redirects and
    other client initiated navigations, and will be deprecated in M54. Please
    contact bmcquade@chromium.org before using this metric.
  </summary>
</histogram>

<histogram name="PageLoad.Internal.ClientRedirect.NavigationWithoutPaint"
    enum="Boolean">
  <owner>bmcquade@chromium.org</owner>
  <summary>
    Counts how often a client-side redirect was initiated from a page that did
    not report a first paint. This metric is only intended to help in choosing a
    heuristic delay to distinguish between client-side redirects and other
    client initiated navigations, and will be deprecated in M54. Please contact
    bmcquade@chromium.org before using this metric.
  </summary>
</histogram>

<histogram name="PageLoad.Internal.ClientRedirectDelayAfterPaint" units="ms">
  <obsolete>
    Deprecated in favor of
    PageLoad.Internal.ClientRedirect.FirstPaintToNavigation and
    PageLoad.Internal.ClientRedirect.NavigationWithoutPaint.
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    The delay between first paint and a client-side redirection. This metric is
    only intended to help in choosing a heuristic delay to distinguish between
    client-side redirects and other client initiated navigations, and will be
    deprecated in M54. Please contact bmcquade@chromium.org before using this
    metric.
  </summary>
</histogram>

<histogram name="PageLoad.Internal.CommitToComplete.NoTimingIPCs" units="ms">
  <obsolete>
    Deprecated on 10/14/2016. No longer needed.
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    The delay between commit and completion, for page loads that did not receive
    any timing IPCs. This metric is only intended to help understand the cases
    where committed page loads don't receive timing IPCs. Please contact
    bmcquade@chromium.org before using this metric.
  </summary>
</histogram>

<histogram name="PageLoad.Internal.ErrorCode" enum="InternalErrorLoadEvent">
  <owner>csharrison@chromium.org</owner>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    Counts of various internal error conditions in the page_load_metrics system.
  </summary>
</histogram>

<histogram name="PageLoad.Internal.InteractiveToInteractiveDetection"
    units="ms">
  <owner>dproy@chromium.org</owner>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Measures time delta between Time to Interactive and when we can detect TTI.
    TTI cannot be detected in real time - we have to wait sufficiently long to
    determine main thread and network quiescence. See https://goo.gl/TFw6xz for
    detailed explanation of Time to Interactive. This histogram uses First
    Meaningful Paint as the lower bound for quiescent windows.
  </summary>
</histogram>

<histogram name="PageLoad.Internal.NavigationStartedInForeground"
    enum="BooleanForeground">
  <owner>bmcquade@chromium.org</owner>
  <summary>Whether a navigation started in the foreground.</summary>
</histogram>

<histogram name="PageLoad.Internal.OutOfOrderInterFrameTiming" units="ms">
  <owner>bmcquade@chromium.org</owner>
  <summary>
    The difference in magnitude between existing and updated timing, for
    inter-frame timings that are received out of order. Page load metrics
    observes timing updates in all frames on a page. It's possible for timings
    in different frames to arrive out of order. This metric tracks how often
    this happens, along with the magnitude of the difference.
  </summary>
</histogram>

<histogram name="PageLoad.Internal.PageLoadCompleted.AfterAppBackground"
    enum="BooleanStartedCompleted">
  <owner>bmcquade@chromium.org</owner>
  <summary>
    Whether a page load completed after the app entered the background. We log a
    'Started' value for each PageLoadTracker that is active when the app enters
    the background, and a 'Completed' value for each of those PageLoadTrackers
    that successfully runs its destructor. This helps to understand how many
    trackers are destroyed while the app is in the background before they are
    able to run their destructor. This metric is only intended to help in
    understanding how often app background leads to data loss, and will be
    deprecated in a subsequent release. Please contact bmcquade@chromium.org
    before using this metric.
  </summary>
</histogram>

<histogram name="PageLoad.Internal.PageLoadTimingStatus"
    enum="PageLoadTimingStatus">
  <owner>bmcquade@chromium.org</owner>
  <summary>
    The status of PageLoadTiming structs received from the render process over
    IPC.
  </summary>
</histogram>

<histogram
    name="PageLoad.Internal.PaintTiming.HadUserInputBeforeFirstMeaningfulPaint"
    enum="HadUserInput">
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Whether the user had any interaction on the page before
    FirstMeaningfulPaint. Recorded when the page load reaches network idle.
  </summary>
</histogram>

<histogram
    name="PageLoad.Internal.PaintTiming.NavigationToFirstContentfulPaint.InitiatingProcess"
    enum="ProcessType2" expires_after="2019-06-30">
  <owner>sullivan@chromium.org</owner>
  <summary>
    Breakdown of NavigationToFirstContentfulPaint counts by process that
    initiated the navigation (this will only be renderer or browser).
  </summary>
</histogram>

<histogram name="PageLoad.Internal.Prerender" enum="BooleanHit">
  <owner>bmcquade@chromium.org</owner>
  <summary>
    Counts the number of prerender navigations. Only logs true values.
  </summary>
</histogram>

<histogram name="PageLoad.Internal.ProvisionalAbortChainSize.ForwardBack"
    units="length" expires_after="2018-08-30">
  <owner>csharrison@chromium.org</owner>
  <summary>
    This histogram counts the number of provisional loads aborted by other
    navigations, until a final forward back navigation commits.
  </summary>
</histogram>

<histogram name="PageLoad.Internal.ProvisionalAbortChainSize.NewNavigation"
    units="length">
  <owner>csharrison@chromium.org</owner>
  <summary>
    This histogram counts the number of provisional loads aborted by new
    navigations, until a final new navigation commits.
  </summary>
</histogram>

<histogram name="PageLoad.Internal.ProvisionalAbortChainSize.NoCommit"
    units="length" expires_after="2018-08-30">
  <owner>csharrison@chromium.org</owner>
  <summary>
    This histogram counts the number of provisional loads aborted by new
    navigations. In this case the chain never ends with a commit. This is logged
    on the next abort signal comes in (e.g. tab close or new navigation).
  </summary>
</histogram>

<histogram name="PageLoad.Internal.ProvisionalAbortChainSize.Reload"
    units="length" expires_after="2018-08-30">
  <owner>csharrison@chromium.org</owner>
  <summary>
    This histogram counts the number of provisional loads aborted by other
    navigations, until a final reload navigation commits.
  </summary>
</histogram>

<histogram name="PageLoad.Internal.ProvisionalAbortChainSize.SameURL"
    units="length" expires_after="2018-08-30">
  <owner>csharrison@chromium.org</owner>
  <summary>
    This histogram counts the number of consecutive provisional loads aborted by
    other navigations with the same url (before redirects). It's logged when a
    provisional abort does not share a URL, or when a load finally commits. Note
    that we don't log chains of length 0.
  </summary>
</histogram>

<histogram
    name="PageLoad.Internal.Renderer.FirstMeaningfulPaintDetector.FirstMeaningfulPaintOrdering"
    enum="FirstMeaningfulPaintOrdering">
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Whether the two variants of First Meaningful Paint reported different
    values, and if so, which one was reported first.
  </summary>
</histogram>

<histogram
    name="PageLoad.Internal.Renderer.FirstMeaningfulPaintDetector.HadNetworkQuiet"
    enum="NetworkQuietStatus">
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Recorded when the page load reached network 0-quiet (no active network
    connection for 0.5 seconds), or network 2-quiet (no more than 2 active
    network connections for 2 seconds).
    PageLoad.Experimental.PaintTiming.FirstMeaningfulPaintSignalStatus2
    histogram gives the fraction of page loads that had network 2-quiet, so it
    can be used as a baseline.
  </summary>
</histogram>

<histogram name="PageLoad.Internal.Renderer.PaintTiming.SwapResult"
    enum="SwapResult">
  <owner>panicker@chromium.org</owner>
  <summary>
    For first paint, first contentful paint, first meaningful paint, first text
    paint, and first image paint, we use the swap timestamp of the corresponding
    paint, which is the timestamp the CC SwapPromise was positively fulfilled
    (i.e. DidSwap() was invoked). If the swap did not occur (DidNotSwap() was
    invoked), we use the timestamp when the swap promise fails. However, in the
    future we may stop reporting timestamps for certain failure reasons. This
    metric records whether or not the swap occurred, and the reason for failure
    if it failed. The distribution of this metric will help determine the effect
    of not reporting timestamps in certain cases.
  </summary>
</histogram>

<histogram name="PageLoad.Internal.Renderer.PaintTiming.SwapTimeDelta"
    units="ms">
  <obsolete>
    deprecated May 2018: The swap-timestamp comes from a different process, and
    comparing that with the paint-time (which is from the local process) does
    not produce a reliable metric.
  </obsolete>
  <owner>panicker@chromium.org</owner>
  <summary>
    Records the delta between the renderer timestamp and swap timestamp for
    first paint, first contentful paint, first meaningful paint, first text
    paint, and first image paint. The renderer timestamp is recorded on the
    Paint path, while the swap timestamp is the result of a CC SwapPromise
    (queued on the Paint path) either being successfully fulfilled, or broken in
    cases where the swap did not occur. As we switch to using the swap
    timestamps in place of their renderer counterparts, this metric allows us to
    see the discrepancies between the two timestamps.
  </summary>
</histogram>

<histogram name="PageLoad.Internal.Renderer.PresentationTime.DeltaFromSwapTime"
    units="ms">
  <owner>sadrul@chromium.org</owner>
  <summary>
    'Swap time' is the timestamp of the renderer submitting a CompositorFrame,
    and 'Presentation time' is the timestamp of the frame becoming visible on
    screen. This metric measures the duration between the swap-time and the
    presentation-time. This is recorded only if a valid presentation-timestamp
    is available. See PageLoad.Internal.Renderer.PresentationTime.Valid for how
    often the presentation-timestamp is valid. This is reported only for
    compositor-frames that report a paint-timing metric (e.g.
    FirstContentfulPaint etc.), and after that frame has been displayed on
    screen.
  </summary>
</histogram>

<histogram name="PageLoad.Internal.Renderer.PresentationTime.Valid"
    enum="Boolean">
  <owner>sadrul@chromium.org</owner>
  <summary>
    This boolean keeps track of whether a valid presentation-timestamp was
    received or not. This is reported only for compositor-frames that report a
    paint-timing metric (e.g. FirstContentfulPaint etc.), and after that frame
    has been displayed on screen.
  </summary>
</histogram>

<histogram name="PageLoad.Navigation.RedirectChainLength" units="urls">
  <owner>csharrison@chromium.org</owner>
  <summary>
    The number of URLs in the redirect chain for this navigation. This excludes
    the first URL.
  </summary>
</histogram>

<histogram name="PageLoad.PageTiming.ForegroundDuration" units="ms">
  <owner>bmcquade@chromium.org</owner>
  <summary>
    For page loads that start in the foreground, measures the duration of time
    until one of the following events occurs: the load of the main resource
    fails, the page load is stopped, the tab hosting the page is closed, the
    render process hosting the page goes away, a new navigation which later
    commits is initiated in the same tab, or the tab hosting the page is
    backgrounded. This metric has a very long tail, for pages that spend a long
    period of time in the foreground. As such, use of the mean or tail values
    are not recommended.
  </summary>
</histogram>

<histogram
    name="PageLoad.PageTiming.ForegroundDuration.PageEndReason.ForwardBackNavigation.UserGesture"
    units="ms">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The time since navigation start before the user presses the back button on a
    page. Only measures page loads that remained in foreground and were created
    by user gesture inside the renderer (as opposed to browser UX gestures).
  </summary>
</histogram>

<histogram name="PageLoad.PageTiming.NavigationToFailedProvisionalLoad"
    units="ms">
  <owner>bmcquade@chromium.org</owner>
  <owner>shivanisha@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    provisional load failed. Only measures provisional loads that failed in the
    foreground.
  </summary>
</histogram>

<histogram name="PageLoad.PageTiming.NavigationToFirstForeground" units="ms">
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    user first foregrounds an initially backgrounded tab. Only measures
    navigations that started in the background.
  </summary>
</histogram>

<histogram name="PageLoad.PaintTiming.ForegroundToFirstContentfulPaint"
    units="ms" expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->

  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    Measures the time from a background tab being switched to the foreground to
    the time the first contentful paint is performed, for main frame documents.
  </summary>
</histogram>

<histogram name="PageLoad.PaintTiming.ForegroundToFirstPaint" units="ms"
    expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->

  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    Measures the time from a background tab being switched to the foreground to
    the time the first paint is performed, for main frame documents.
  </summary>
</histogram>

<histogram name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"
    units="ms" expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->

  <owner>ksakamoto@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    The time from navigation start to first &quot;contentful&quot; paint.

    Do not modify this metric in any way without contacting
    speed-metrics-dev@chromium.org.
  </summary>
</histogram>

<histogram name="PageLoad.PaintTiming.NavigationToFirstImagePaint" units="ms"
    expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->

  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    first image is painted, for main frame documents. For images that render
    progressively, this is recorded as soon as any image pixels have been drawn.
  </summary>
</histogram>

<histogram name="PageLoad.PaintTiming.NavigationToFirstPaint" units="ms"
    expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->

  <owner>ksakamoto@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    first paint is performed, for main frame documents.

    Do not modify this metric in any way without contacting
    speed-metrics-dev@chromium.org.
  </summary>
</histogram>

<histogram name="PageLoad.PaintTiming.NavigationToFirstTextPaint" units="ms">
  <obsolete>
    Discontinued Nov 2018 because data is no longer being used.
  </obsolete>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    first non-blank text is painted, for main frame documents.
  </summary>
</histogram>

<histogram name="PageLoad.PaintTiming.ParseStartToFirstContentfulPaint"
    units="ms" expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->

  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    Measures the time from when the HTML parser started, to when the page first
    paints content.
  </summary>
</histogram>

<histogram name="PageLoad.ParseTiming.NavigationToParseStart" units="ms">
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    parser started, for main frame documents.
  </summary>
</histogram>

<histogram name="PageLoad.ParseTiming.ParseBlockedOnScriptExecution" units="ms">
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time that the HTML parser spent blocked on the execution of
    scripts, for main frame documents that finished parsing.
  </summary>
</histogram>

<histogram
    name="PageLoad.ParseTiming.ParseBlockedOnScriptExecutionFromDocumentWrite"
    units="ms">
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time that the HTML parser spent blocked on the execution of
    scripts inserted from document.write, for main frame documents that finished
    parsing.
  </summary>
</histogram>

<histogram name="PageLoad.ParseTiming.ParseBlockedOnScriptLoad" units="ms">
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time that the HTML parser spent blocked on the load of scripts,
    for main frame documents that finished parsing.
  </summary>
</histogram>

<histogram
    name="PageLoad.ParseTiming.ParseBlockedOnScriptLoadFromDocumentWrite"
    units="ms">
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time that the HTML parser spent blocked on the load of scripts
    inserted from document.write, for main frame documents that finished
    parsing.
  </summary>
</histogram>

<histogram name="PageLoad.ParseTiming.ParseDuration" units="ms">
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time that the HTML parser was active, for main frame documents
    that finished parsing.
  </summary>
</histogram>

<histogram name="PageLoad.Timing.NavigationToDOMContentLoadedEventFired"
    units="ms">
  <obsolete>
    deprecated in favor of PageLoad.Timing2.*
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    DOMContentLoaded event is fired, for main frame documents.
  </summary>
</histogram>

<histogram name="PageLoad.Timing.NavigationToFirstLayout" units="ms">
  <obsolete>
    deprecated in favor of PageLoad.Timing2.*
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    first layout is performed, for main frame documents.
  </summary>
</histogram>

<histogram name="PageLoad.Timing.NavigationToLoadEventFired" units="ms">
  <obsolete>
    deprecated in favor of PageLoad.Timing2.*
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    load event is fired, for main frame documents.
  </summary>
</histogram>

<histogram name="PageLoad.Timing2.DOMLoadingToDOMContentLoadedEventFired"
    units="ms">
  <obsolete>
    deprecated in favor of PageLoad.DocumentTiming.ParseDuration
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time from when DOM loading occurs (the time that HTML parsing
    begins) to the time the DOMContentLoaded event is fired, for main frame
    documents. This is equivalent to the time that the HTML document resource
    was being parsed.
  </summary>
</histogram>

<histogram name="PageLoad.Timing2.DOMLoadingToFirstContentfulPaint" units="ms">
  <obsolete>
    deprecated in favor of PageLoad.PaintTiming.ParseStartToFirstContentfulPaint
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time from when DOM loading occurs (the time that HTML parsing
    begins) to first &quot;contentful&quot; paint.
  </summary>
</histogram>

<histogram name="PageLoad.Timing2.ForegroundToFirstPaint" units="ms">
  <obsolete>
    deprecated in favor of PageLoad.PaintTiming.ForegroundToFirstPaint
  </obsolete>
  <owner>pkotwicz@chromium.org</owner>
  <summary>
    Measures the time from a background tab being switched to the foreground to
    the time the first paint is performed, for main frame documents.
  </summary>
</histogram>

<histogram name="PageLoad.Timing2.NavigationToCommit" units="ms">
  <obsolete>
    Deprecated in favor of PageLoad.ParseTiming.NavigationToParseStart
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    navigation committed, for main frame documents.
  </summary>
</histogram>

<histogram name="PageLoad.Timing2.NavigationToDOMContentLoadedEventFired"
    units="ms">
  <obsolete>
    deprecated in favor of
    PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    DOMContentLoaded event is fired, for main frame documents. This metric is
    being phased out in favor of the PageLoad.DocumentTiming equivalent and will
    be deprecated in M54.
  </summary>
</histogram>

<histogram name="PageLoad.Timing2.NavigationToFailedProvisionalLoad" units="ms">
  <obsolete>
    deprecated in favor of PageLoad.PageTiming.NavigationToFailedProvisionalLoad
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <owner>shivanisha@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    provisional load failed. Only measures provisional loads that failed in the
    foreground.
  </summary>
</histogram>

<histogram name="PageLoad.Timing2.NavigationToFirstBackground" units="ms">
  <obsolete>
    deprecated in favor of PageLoad.AbortTiming.Background.*
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    user first backgrounds the tab. Only measures navigations that started in
    the foreground.
  </summary>
</histogram>

<histogram name="PageLoad.Timing2.NavigationToFirstContentfulPaint" units="ms">
  <obsolete>
    deprecated in favor of PageLoad.PaintTiming.NavigationToFirstContentfulPaint
  </obsolete>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The time from navigation start to first &quot;contentful&quot; paint. This
    metric is being phased out in favor of the PageLoad.PaintTiming equivalent
    and will be deprecated in M54.
  </summary>
</histogram>

<histogram name="PageLoad.Timing2.NavigationToFirstForeground" units="ms">
  <obsolete>
    deprecated in favor of PageLoad.PageTiming.NavigationToFirstForeground
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    user first foregrounds an initially backgrounded tab. Only measures
    navigations that started in the background.
  </summary>
</histogram>

<histogram name="PageLoad.Timing2.NavigationToFirstImagePaint" units="ms">
  <obsolete>
    deprecated in favor of PageLoad.PaintTiming.NavigationToFirstImagePaint
  </obsolete>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    first image is painted, for main frame documents. For images that render
    progressively, this is recorded as soon as any image pixels have been drawn.
    This metric is being phased out in favor of the PageLoad.PaintTiming
    equivalent and will be deprecated in M54.
  </summary>
</histogram>

<histogram name="PageLoad.Timing2.NavigationToFirstLayout" units="ms">
  <obsolete>
    deprecated in favor of PageLoad.DocumentTiming.NavigationToFirstLayout
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    first layout is performed, for main frame documents. This metric is being
    phased out in favor of the PageLoad.DocumentTiming equivalent and will be
    deprecated in M54.
  </summary>
</histogram>

<histogram name="PageLoad.Timing2.NavigationToFirstPaint" units="ms">
  <obsolete>
    deprecated in favor of PageLoad.PaintTiming.NavigationToFirstPaint
  </obsolete>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    first paint is performed, for main frame documents. This metric is being
    phased out in favor of the PageLoad.PaintTiming equivalent and will be
    deprecated in M54.
  </summary>
</histogram>

<histogram name="PageLoad.Timing2.NavigationToFirstTextPaint" units="ms">
  <obsolete>
    deprecated in favor of PageLoad.PaintTiming.NavigationToFirstTextPaint
  </obsolete>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    first non-blank text is painted, for main frame documents. This metric is
    being phased out in favor of the PageLoad.PaintTiming equivalent and will be
    deprecated in M54.
  </summary>
</histogram>

<histogram name="PageLoad.Timing2.NavigationToLoadEventFired" units="ms">
  <obsolete>
    deprecated in favor of PageLoad.DocumentTiming.NavigationToLoadEventFired
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    load event is fired, for main frame documents. This metric is being phased
    out in favor of the PageLoad.DocumentTiming equivalent and will be
    deprecated in M54.
  </summary>
</histogram>

<histogram name="PageLoad.Timing2.ParseBlockedOnScriptLoad" units="ms">
  <obsolete>
    deprecated in favor of PageLoad.ParseTiming.ParseBlockedOnScriptLoad
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time that the HTML parser spent blocked on the load of scripts,
    for main frame documents that started parsing.
  </summary>
</histogram>

<histogram name="PageLoad.Timing2.ParseBlockedOnScriptLoad.ParseComplete"
    units="ms">
  <obsolete>
    deprecated in favor of PageLoad.ParseTiming.ParseBlockedOnScriptLoad
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time that the HTML parser spent blocked on the load of scripts,
    for main frame documents that finished parsing. This metric is being phased
    out in favor of the PageLoad.ParseTiming equivalent and will be deprecated
    in M54.
  </summary>
</histogram>

<histogram name="PageLoad.Timing2.ParseBlockedOnScriptLoadFromDocumentWrite"
    units="ms">
  <obsolete>
    deprecated in favor of
    PageLoad.ParseTiming.ParseBlockedOnScriptLoadFromDocumentWrite
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time that the HTML parser spent blocked on the load of scripts
    inserted from document.write, for main frame documents that started parsing.
  </summary>
</histogram>

<histogram
    name="PageLoad.Timing2.ParseBlockedOnScriptLoadFromDocumentWrite.ParseComplete"
    units="ms">
  <obsolete>
    deprecated in favor of
    PageLoad.ParseTiming.ParseBlockedOnScriptLoadFromDocumentWrite
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time that the HTML parser spent blocked on the load of scripts
    inserted from document.write, for main frame documents that finished
    parsing. This metric is being phased out in favor of the
    PageLoad.ParseTiming equivalent and will be deprecated in M54.
  </summary>
</histogram>

<histogram name="PageLoad.Timing2.ParseDuration" units="ms">
  <obsolete>
    deprecated in favor of PageLoad.ParseTiming.ParseDuration
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time that the HTML parser was active, for main frame documents
    that finished parsing. This metric is being phased out in favor of the
    PageLoad.ParseTiming equivalent and will be deprecated in M54.
  </summary>
</histogram>

<histogram name="PageLoad.Timing2.ParseStartToFirstContentfulPaint" units="ms">
  <obsolete>
    deprecated in favor of PageLoad.PaintTiming.ParseStartToFirstContentfulPaint
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time from when the HTML parser started, to when the page first
    paints content. This metric is being phased out in favor of the
    PageLoad.PaintTiming equivalent and will be deprecated in M54.
  </summary>
</histogram>

<histogram name="PageScheduler.PageLifecycleStateTransition"
    enum="PageLifecycleStateTransition">
  <owner>panicker@chromium.org</owner>
  <summary>
    Tracks the transitions of the page between the various PageLifecycleStates:
    active, hidden/backgrounded, hidden/foregrounded, and frozen. A page is
    considered active if is visible. A page is considered backgrounded if not
    visible and not currently providing a useful service, such as playing audio.
    A page is considered foregrounded if it is not backgrounded. A page can be
    frozen due to being hidden/backgrounded for a specified amount of time, or
    frozen due to critical resources.
  </summary>
</histogram>

<histogram
    name="PageSerialization.MhtmlGeneration.BrowserWaitForRendererTime.FrameTree"
    units="ms">
  <owner>carlosk@chromium.org</owner>
  <summary>
    Total time the browser process waited for all render processes to save their
    respective frames while saving a page into MHTML.
  </summary>
</histogram>

<histogram
    name="PageSerialization.MhtmlGeneration.BrowserWaitForRendererTime.SingleFrame"
    units="ms">
  <owner>carlosk@chromium.org</owner>
  <summary>
    Time the browser process waited on a single frame to be saved by a render
    processes while saving a page into MHTML.
  </summary>
</histogram>

<histogram name="PageSerialization.MhtmlGeneration.EncodingTime.SingleFrame"
    units="microseconds">
  <owner>carlosk@chromium.org</owner>
  <summary>
    Time taken to encode into MTHML the fully serialized contents of a frame.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="PageSerialization.MhtmlGeneration.FinalSaveStatus"
    enum="MhtmlGenerationFinalSaveStatus">
  <owner>carlosk@chromium.org</owner>
  <summary>Final status of the MHTML save operation for a page.</summary>
</histogram>

<histogram name="PageSerialization.MhtmlGeneration.FullPageSavingTime"
    units="ms">
  <owner>carlosk@chromium.org</owner>
  <summary>Time taken to save a page into an MHTML file.</summary>
</histogram>

<histogram name="PageSerialization.MhtmlGeneration.PopupOverlaySkipped"
    enum="BooleanSkipped" expires_after="2018-08-30">
  <owner>jianli@chromium.org</owner>
  <summary>
    Recorded when the popup overlays are removed from MHTML serialization.
  </summary>
</histogram>

<histogram
    name="PageSerialization.MhtmlGeneration.RendererMainThreadTime.FrameTree"
    units="ms">
  <owner>carlosk@chromium.org</owner>
  <summary>
    Time spent by the main threads of all involved render processes while saving
    the frame tree of a page to MHTML.
  </summary>
</histogram>

<histogram
    name="PageSerialization.MhtmlGeneration.RendererMainThreadTime.SingleFrame"
    units="ms">
  <owner>carlosk@chromium.org</owner>
  <summary>
    Time spent by the renderer main thread while saving one frame of a page to
    MHTML.
  </summary>
</histogram>

<histogram
    name="PageSerialization.MhtmlGeneration.RendererMainThreadTime.SlowestFrame"
    units="ms">
  <owner>carlosk@chromium.org</owner>
  <summary>
    The longest time taken by the main thread of a render processes to save one
    frame of a page being saved to MHTML. In other words this is the maximum
    value reported in
    PageSerialization.MhtmlGeneration.RendererMainThreadTime.SingleFrame for one
    page save operation.
  </summary>
</histogram>

<histogram
    name="PageSerialization.MhtmlGeneration.SerializationTime.SingleFrame"
    units="microseconds">
  <owner>carlosk@chromium.org</owner>
  <summary>
    Time taken to fully serialize the contents of a frame, including HTML and
    CSS and image resources.
  </summary>
</histogram>

<histogram name="PageSerialization.MhtmlGeneration.WriteToDiskTime.SingleFrame"
    units="ms">
  <owner>carlosk@chromium.org</owner>
  <summary>
    Time spent writing a frame's encoded MHTML data to the file on disk.
  </summary>
</histogram>

<histogram name="PageSerialization.MhtmlLoading.LoadResult"
    enum="MhtmlLoadResult">
  <owner>iwells@chromium.org</owner>
  <owner>carlosk@chromium.org</owner>
  <summary>Reports the result of an attempt to load an MHTML archive.</summary>
</histogram>

<histogram name="PageSerialization.ProblemDetection.LoadedCSSPercentage"
    units="%">
  <owner>dimich@chromium.org</owner>
  <summary>
    Percentage of loaded CSS elements in the main frame at the time of
    serialization.
  </summary>
</histogram>

<histogram name="PageSerialization.ProblemDetection.LoadedImagePercentage"
    units="%">
  <owner>dimich@chromium.org</owner>
  <summary>
    Percentage of loaded images in the main frame at the time of serialization.
  </summary>
</histogram>

<histogram name="PageSerialization.ProblemDetection.TotalCSSCount">
  <owner>dimich@chromium.org</owner>
  <summary>
    Total number of CSS elements in the main frame for serialization.
  </summary>
</histogram>

<histogram name="PageSerialization.ProblemDetection.TotalImageCount">
  <owner>dimich@chromium.org</owner>
  <summary>Total number of images in the main frame for serialization.</summary>
</histogram>

<histogram name="PageSerialization.SerializationTime.CSSElement"
    units="microseconds">
  <owner>carlosk@chromium.org</owner>
  <summary>
    Time spent serializing a CSS element (including embedded &quot;sub&quot;-CSS
    and images).

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="PageSerialization.SerializationTime.Html" units="microseconds">
  <owner>carlosk@chromium.org</owner>
  <summary>
    Time taken to generate HTML data from a frame's DOM and serialize it
    (without sub-resources like CSS and images).

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="PageSerialization.SerializationTime.ImageElement"
    units="microseconds">
  <owner>carlosk@chromium.org</owner>
  <summary>
    Time spent serializing an image element.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Parser.AppendBytesDelay" units="ms">
  <obsolete>
    Deprecated Aug 2017
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The delay from when bytes are received on the main thread to when the
    BackgroundHTMLParser starts tokenizing them. Always a shorter time than the
    time emitted to Parser.PreloadTokenizeDelay.
  </summary>
</histogram>

<histogram name="Parser.ChunkEnqueueTime" units="ms">
  <obsolete>
    Deprecated May 2017
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The time it takes to enqueue a ParsedChunk onto the shared parser queue.
  </summary>
</histogram>

<histogram name="Parser.DiscardedTokenCount" units="tokens"
    expires_after="2018-08-30">
  <owner>csharrison@chromium.org</owner>
  <summary>
    The number of speculative tokens discarded by the parser when a rewind is
    needed.
  </summary>
</histogram>

<histogram name="Parser.PeakPendingChunkCount" units="chunks">
  <obsolete>
    Deprecated Aug 2017
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The maximum number of pending Chunks in the ParsedChunkQueue after the
    parser is detached.
  </summary>
</histogram>

<histogram name="Parser.PeakPendingTokenCount" units="tokens">
  <obsolete>
    Deprecated Aug 2017
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The maximum number of pending tokens in the ParsedChunkQueue after the
    parser is detached.
  </summary>
</histogram>

<histogram name="Parser.PreloadTokenizeDelay" units="ms">
  <obsolete>
    Deprecated May 2017
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The delay from when bytes are received on the main thread to when they are
    tokenized and preloads are sent back to the main parser. Always a greater
    time than the time emitted to Parser.AppendBytesDelay.
  </summary>
</histogram>

<histogram name="PartitionAlloc.CommittedSize" units="MB">
  <owner>haraken@chromium.org</owner>
  <summary>
    The committed memory size in PartitionAlloc. The value is reported when we
    see the highest memory usage we've ever seen in the renderer process.
  </summary>
</histogram>

<histogram name="PartnerBookmark.Count" units="bookmarks">
  <obsolete>
    Deprecated 2017-12 by PartnerBookmark.Count2.
  </obsolete>
  <owner>wychen@chromium.org</owner>
  <summary>
    The number of partner bookmark entries. Note that zero would be
    under-represented because reading is throttled if the last result is zero.
    Logged when using the bookmark, not skipped (PartnerBookmark.Skipped ==
    False), and at most once per cold start. Note that the distribution is
    weighted by bookmark usage.
  </summary>
</histogram>

<histogram name="PartnerBookmark.Count2" units="bookmarks">
  <owner>wychen@chromium.org</owner>
  <summary>
    The number of partner bookmark entries. Logged when using the bookmark, and
    at most once per cold start. Note that the distribution is weighted by
    bookmark usage.
  </summary>
</histogram>

<histogram name="PartnerBookmark.FaviconThrottleFetchResult"
    enum="PartnerBookmark.FaviconFetchResult">
  <owner>tedchoc@chromium.org</owner>
  <owner>wychen@chromium.org</owner>
  <summary>
    The response we got back from our favicon fetching throttler, once for each
    bookmark at each cold start. Only recorded on Android.
  </summary>
</histogram>

<histogram name="PartnerBookmark.LoadingTime" units="ms">
  <owner>wychen@chromium.org</owner>
  <summary>
    The time spent on loading partner bookmarks, from kickOffReading() to
    bookmarkModelLoaded() callback.
  </summary>
</histogram>

<histogram name="PartnerBookmark.Null" enum="BooleanNull">
  <obsolete>
    No longer recorded as of Apr 2018
  </obsolete>
  <owner>wychen@chromium.org</owner>
  <summary>
    Whether there's no partner bookmark provider. By default, the system image
    contains a dummy partner bookmarks provider that provides zero entries.
    Logged when using the bookmark, not skipped (PartnerBookmark.Skipped ==
    False), and at most once per cold start.
  </summary>
</histogram>

<histogram name="PartnerBookmark.Skipped" enum="BooleanSkipped">
  <obsolete>
    No longer recorded as of Apr 2018
  </obsolete>
  <owner>wychen@chromium.org</owner>
  <summary>
    Whether reading of partner bookmark is skipped. Logged when using the
    bookmark, and at most once per cold start.
  </summary>
</histogram>

<histogram name="PartnerBookmark.TimeSinceLastEmptyRead" units="ms">
  <obsolete>
    Deprecated 2017-12. Use PartnerBookmark.TimeSinceLastEmptyRead2.
  </obsolete>
  <owner>wychen@chromium.org</owner>
  <summary>
    When trying to load the partner bookmarks, if no partner bookmark is read
    last time, record the time elapsed since then. It is recorded no matter
    whether loading would be skipped.
  </summary>
</histogram>

<histogram name="PartnerBookmark.TimeSinceLastEmptyRead2" units="seconds">
  <obsolete>
    No longer recorded as of Apr 2018
  </obsolete>
  <owner>wychen@chromium.org</owner>
  <summary>
    When trying to load the partner bookmarks, if no partner bookmark is read
    last time, record the time elapsed since then. It is recorded no matter
    whether loading would be skipped.
  </summary>
</histogram>

<histogram name="PartnerBookmarksFaviconThrottle.NumEntries" units="entries">
  <owner>tedchoc@chromium.org</owner>
  <owner>wychen@chromium.org</owner>
  <summary>
    Number of elements read from the partner bookmarks favicon cache, recorded
    once per cold start when reading partner bookmarks. Only recorded on
    Android.
  </summary>
</histogram>

<histogram name="PasswordBubble.DisplayDisposition"
    enum="PasswordBubbleDisplayDisposition">
  <owner>vasilii@chromium.org</owner>
  <summary>
    When the password management bubble opened, what state was it in?
  </summary>
</histogram>

<histogram name="PasswordGeneration.Event" enum="PasswordGenerationEvent">
  <owner>dvadym@chromium.org</owner>
  <owner>kolos@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Measures the frequency of various password generation events.

    Note that this histogram is logged from the renderer process, and
    consequently the numbers should not be directly compared to the other
    PasswordGeneration.* histograms, which are logged from the browser process.
    Histograms logged in different processes are lost at different rates, which
    introduces systematic bias between histograms logged in the renderer process
    vs. those logged in the browser process.
  </summary>
</histogram>

<histogram name="PasswordGeneration.GeneratedPasswordWasEdited"
    enum="BooleanGeneratedPasswordWasEdited">
  <owner>kolos@chromium.org</owner>
  <summary>
    Measures the frequency of user editing of generated passwords. Uploaded once
    per generated password save. Applicable to automatic and manual generations.
  </summary>
</histogram>

<histogram name="PasswordGeneration.IsTriggeredManually"
    enum="BooleanIsGenerationTriggeredManually">
  <owner>kolos@chromium.org</owner>
  <summary>
    Measures the frequency of manually triggered password generations.
  </summary>
</histogram>

<histogram name="PasswordGeneration.SubmissionAvailableEvent"
    enum="PasswordSubmissionEvent">
  <owner>dvadym@chromium.org</owner>
  <owner>kolos@chromium.org</owner>
  <summary>
    Measures the frequency of submission events for passwords that could have
    been generated, but the user didn't choose to use the feature. This is to
    compare with PasswordGeneration.SubmssionEvent.
  </summary>
</histogram>

<histogram name="PasswordGeneration.SubmissionEvent"
    enum="PasswordSubmissionEvent">
  <owner>dvadym@chromium.org</owner>
  <owner>kolos@chromium.org</owner>
  <summary>
    Measures the frequency of submission events for generated passwords. This is
    similar to PasswordManager.ActionsTakenWithPsl but only tracks events which
    are interesting for generated passwords.
  </summary>
</histogram>

<histogram name="PasswordGeneration.UploadStarted" enum="Boolean">
  <owner>dvadym@chromium.org</owner>
  <owner>kolos@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    The number of times that we try to upload a form that we believe should
    trigger password generation. False means that something about the form would
    not allow us to try upload (not an Autofillable field, uploading disabled,
    Autofill servers in backoff, etc.). True does not mean that the upload
    actually completed successfully, just that it was started.
  </summary>
</histogram>

<histogram name="PasswordGeneration.UserDecision"
    enum="PasswordGenerationUserEvent">
  <owner>ioanap@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Records user-triggered events related to a generated password. Only the last
    occurring event is logged. The recording takes place when the password form
    is destroyed.
  </summary>
</histogram>

<histogram name="PasswordGeneration.UserEvent"
    enum="PasswordGenerationUserEvent">
  <obsolete>
    Deprecated 10/2018 in favor of PasswordGeneration.UserDecision.
  </obsolete>
  <owner>ioanap@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Records user-triggered events related to a generated password. Each event is
    logged at most once per lifetime of the generated password.
  </summary>
</histogram>

<histogram name="PasswordHash.CreateTime">
  <owner>mlerman@chromium.org</owner>
  <summary>
    Time required to create the local hash of the user's GAIA password.
  </summary>
</histogram>

<histogram name="PasswordManager.AbleToSavePasswordsOnSuccessfulLogin"
    enum="BooleanSuccess">
  <owner>vasilii@chromium.org</owner>
  <summary>
    Records attempts to prompt user to save a password when password store is
    not ready for saving passwords. Recorded once per form submission.
  </summary>
</histogram>

<histogram name="PasswordManager.AboutBlankPasswordSubmission"
    enum="BooleanMainFrame">
  <owner>alexmos@chromium.org</owner>
  <owner>battre@chromium.org</owner>
  <summary>
    Records attempts to submit a password on a form in an about:blank frame,
    indicating whether this attempt is for a main frame or subframe. Recorded
    once per form submission.
  </summary>
</histogram>

<histogram name="PasswordManager.AcceptedSaveUpdateSubmissionIndicatorEvent"
    enum="SubmissionIndicatorEvent">
  <owner>dvadym@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    The type of event that the Password Manager used for detecting a password
    form submission when saving or updating a password. Recorded each time a
    user accepts a password save/update prompt.
  </summary>
</histogram>

<histogram name="PasswordManager.AccessPasswordInSettings"
    enum="AccessPasswordInSettingsEvent">
  <owner>jdoerrie@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Recorded whenever the user accesses the passwords in the settings page.
  </summary>
</histogram>

<histogram name="PasswordManager.AccountChooserDialog"
    enum="AccountChooserDismissalReason">
  <obsolete>
    Deprecated as of Chrome 56. See the histograms for one and more accounts.
  </obsolete>
  <owner>vasilii@chromium.org</owner>
  <summary>The dismissal reason of the account chooser.</summary>
</histogram>

<histogram name="PasswordManager.AccountChooserDialogAccounts" units="accounts">
  <owner>vasilii@chromium.org</owner>
  <summary>The number of accounts displayed in the account chooser.</summary>
</histogram>

<histogram name="PasswordManager.AccountChooserDialogEmptyAvatars"
    units="avatars">
  <owner>vasilii@chromium.org</owner>
  <summary>
    The count of the placeholder avatars shown in the account chooser.
  </summary>
</histogram>

<histogram name="PasswordManager.AccountChooserDialogMultipleAccounts"
    enum="AccountChooserDismissalReason">
  <owner>vasilii@chromium.org</owner>
  <summary>
    The dismissal reason of the account chooser with multiple accounts.
  </summary>
</histogram>

<histogram name="PasswordManager.AccountChooserDialogOneAccount"
    enum="AccountChooserDismissalReason">
  <owner>vasilii@chromium.org</owner>
  <summary>
    The dismissal reason of the account chooser with one account.
  </summary>
</histogram>

<histogram name="PasswordManager.AccountChooserDialogUsability"
    enum="AccountChooserUsabilityState">
  <owner>vasilii@chromium.org</owner>
  <summary>
    Whether the account chooser includes an empty username or any duplicates
  </summary>
</histogram>

<histogram name="PasswordManager.AccountsPerSite">
  <owner>dvadym@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    The number of accounts stored per site in the password manager (one event
    per site)
  </summary>
</histogram>

<histogram name="PasswordManager.AccountsReusingPassword" units="accounts">
  <owner>dvadym@chromium.org</owner>
  <owner>engedy@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Records, for each account, the number of other accounts (across all sites
    and usernames) that reuse the same password. Only non-blacklisted,
    HTML-form-based accounts are considered.

    For each account, samples will only be recorded into the histograms that
    have the first suffix corresponding to whether that account was saved on a
    secure website or not. The second suffix is used to further categorize the
    other accounts that reuse the same password based on how they relate to the
    account in question, and whether they are secure. The number of other
    accounts in each category will be reported into histogram with the
    respective second suffixes.

    Metrics are collected once per browser start-up. In case of multiple
    profiles, the counts are for the profile for which a WebContents is first
    created.
  </summary>
</histogram>

<histogram name="PasswordManager.ActionsTaken"
    enum="PasswordManagerActionsTaken">
  <obsolete>
    Deprecated as of Chrome 32. See PasswordManagerActionsTakenWithPsl
  </obsolete>
  <summary>
    Stats documenting how we handle every form containing a password, bucketed
    by the actions taken.
  </summary>
</histogram>

<histogram name="PasswordManager.ActionsTakenOnNonSecureForm"
    enum="PasswordManagerActionsTakenV3">
  <owner>estark@chromium.org</owner>
  <summary>
    Stats documenting how we handle every form containing a password on a
    non-secure page, bucketed by the actions taken.
  </summary>
</histogram>

<histogram name="PasswordManager.ActionsTakenV3"
    enum="PasswordManagerActionsTakenV3">
  <owner>dvadym@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Stats documenting how we handle every form containing a password, bucketed
    by the actions taken.
  </summary>
</histogram>

<histogram name="PasswordManager.ActionsTakenWithPsl"
    enum="PasswordManagerActionsTakenWithPsl">
  <obsolete>
    Deprecated as of 3/18/2014. See PasswordManagerActionsTakenV3.
  </obsolete>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Stats documenting how we handle every form containing a password, bucketed
    by the actions taken.
  </summary>
</histogram>

<histogram name="PasswordManager.AffiliationBackend.FetchSize" units="facets">
  <owner>engedy@chromium.org</owner>
  <summary>
    The number of facets for which affiliation information was requested in a
    network fetch. Recorded for each network fetch.
  </summary>
</histogram>

<histogram name="PasswordManager.AffiliationBackend.FirstFetchDelay" units="ms">
  <owner>engedy@chromium.org</owner>
  <summary>
    The time elapsed between creation of the AffiliationBackend and the first
    time it needed to issue a network fetch.
  </summary>
</histogram>

<histogram name="PasswordManager.AffiliationBackend.SubsequentFetchDelay"
    units="ms">
  <owner>engedy@chromium.org</owner>
  <summary>
    The elapsed time between subsequent network fetches. Recorded whenever the
    AffiliationBackend initiated a network fetch, regardless of success or
    failure.
  </summary>
</histogram>

<histogram name="PasswordManager.AffiliationDummyData.RequestResultCount"
    units="results">
  <owner>engedy@chromium.org</owner>
  <summary>
    The number of facets affiliated with a dummy Web facet, according to the
    affiliation information retrieved from the cache. Recorded for each dummy
    Web facet, once shortly after start-up, and then periodically every hour;
    but only if getting affiliations succeeded for the Web facet.
  </summary>
</histogram>

<histogram name="PasswordManager.AffiliationDummyData.RequestSuccess"
    enum="BooleanSuccess">
  <owner>engedy@chromium.org</owner>
  <summary>
    Whether or not affiliations of a dummy Web facet could be successfully
    retrieved from the cache. Recorded for each dummy Web facet, once shortly
    after start-up, and then periodically every hour.
  </summary>
</histogram>

<histogram name="PasswordManager.AffiliationFetcher.FetchErrorCode"
    enum="NetErrorCodes">
  <owner>engedy@chromium.org</owner>
  <summary>
    The network error code, as reported by the underlying URLFetcher. Recorded
    only for each network fetch that failed due to network/server errors.
  </summary>
</histogram>

<histogram name="PasswordManager.AffiliationFetcher.FetchHttpResponseCode"
    enum="HttpResponseCode">
  <owner>engedy@chromium.org</owner>
  <summary>
    The HTTP response code, as reported by the underlying URLFetcher. Recorded
    only for each network fetch that failed due to network/server errors.
  </summary>
</histogram>

<histogram name="PasswordManager.AffiliationFetcher.FetchResult"
    enum="AffiliationFetchResult">
  <owner>engedy@chromium.org</owner>
  <summary>
    Whether the network fetch succeeded, failed due to network/server errors, or
    contained malformed data. Recorded for each network fetch.
  </summary>
</histogram>

<histogram name="PasswordManager.AllowToCollectURLBubble.UIDismissalReason"
    enum="PasswordManagerAllowToCollectURLBubble.UIDismissalReason">
  <obsolete>
    The bubble isn't shown anymore. Become obsolete in Feb. 2015.
  </obsolete>
  <owner>melandory@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>Why was &quot;Allow to collect URL?&quot; bubble closed?</summary>
</histogram>

<histogram name="PasswordManager.Android.ExportPasswordsProgressBarUsage"
    enum="PasswordManagerAndroidExportPasswordsProgressBarUsage">
  <owner>fhorschig@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Records what happened to the progress bar during exporting passwords when
    its dismissal was requested.
  </summary>
</histogram>

<histogram name="PasswordManager.Android.PasswordCredentialEntry"
    enum="PasswordManagerAndroidPasswordEntryActions">
  <owner>fhorschig@chromium.org</owner>
  <owner>jdoerrie@chromium.org</owner>
  <summary>
    Records the action taken with a password credential entry on Android.
  </summary>
</histogram>

<histogram name="PasswordManager.Android.PasswordCredentialEntry.Password"
    enum="PasswordManagerAndroidPasswordActions">
  <owner>fhorschig@chromium.org</owner>
  <owner>jdoerrie@chromium.org</owner>
  <summary>
    Records the action taken with a password of a password credential entry on
    Android.
  </summary>
</histogram>

<histogram name="PasswordManager.Android.PasswordCredentialEntry.Username"
    enum="PasswordManagerAndroidUsernameActions">
  <owner>fhorschig@chromium.org</owner>
  <owner>jdoerrie@chromium.org</owner>
  <summary>
    Records the action taken with a username of a password credential entry on
    Android.
  </summary>
</histogram>

<histogram name="PasswordManager.Android.PasswordCredentialEntry.Website"
    enum="PasswordManagerAndroidWebsiteActions">
  <owner>fhorschig@chromium.org</owner>
  <owner>jdoerrie@chromium.org</owner>
  <summary>
    Records the action taken with a website of a password credential entry on
    Android.
  </summary>
</histogram>

<histogram name="PasswordManager.Android.PasswordExceptionEntry"
    enum="PasswordManagerAndroidPasswordEntryActions">
  <owner>fhorschig@chromium.org</owner>
  <owner>jdoerrie@chromium.org</owner>
  <summary>
    Records the action taken with a password exception entry on Android.
  </summary>
</histogram>

<histogram name="PasswordManager.Android.PasswordExceptionEntry.Website"
    enum="PasswordManagerAndroidWebsiteActions">
  <owner>fhorschig@chromium.org</owner>
  <owner>jdoerrie@chromium.org</owner>
  <summary>
    Records the action taken with a website of a password exception entry on
    Android.
  </summary>
</histogram>

<histogram name="PasswordManager.Android.PasswordSearchTriggered"
    enum="Boolean">
  <owner>fhorschig@chromium.org</owner>
  <summary>
    Records whether a user triggered the search function while visiting the
    password preferences page on Android.
  </summary>
</histogram>

<histogram name="PasswordManager.AutocompletePopupSuppressedByGeneration"
    enum="BooleanSuppressed">
  <obsolete>
    Removed February 2019.
  </obsolete>
  <owner>gcasto@chromium.org</owner>
  <summary>
    If the password manager UI was suppressed because generation UI was already
    being displayed for the same field.
  </summary>
</histogram>

<histogram name="PasswordManager.AutoSigninFirstRunDialog"
    enum="AutoSigninFirstRun">
  <owner>vasilii@chromium.org</owner>
  <summary>
    The dismissal reason of the auto-signin first run experience.
  </summary>
</histogram>

<histogram name="PasswordManager.BlacklistedDuplicates"
    units="duplicated forms" expires_after="M73">
  <obsolete>
    Corresponding clean-up logic got introduced in M70 and has run its course.
  </obsolete>
  <owner>jdoerrie@chromium.org</owner>
  <summary>
    The number of duplicates forms from the password store. Recorded once for
    the profile on startup.
  </summary>
</histogram>

<histogram name="PasswordManager.BlacklistedSites">
  <owner>jdoerrie@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    The total number of sites that the user has blacklisted. Recorded by
    iterating over stored passwords once per run of Chrome.
  </summary>
</histogram>

<histogram
    name="PasswordManager.BlacklistedSites.NeedRemoveBlacklistDuplicates"
    enum="BooleanNeedsDeDuplication" expires_after="M73">
  <obsolete>
    Corresponding clean-up logic got introduced in M70 and has run its course.
  </obsolete>
  <owner>jdoerrie@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Records once on startup whether the blacklisted sites in the password store
    need to be cleared of duplications.
  </summary>
</histogram>

<histogram name="PasswordManager.BlacklistedSites.NeedToBeCleaned"
    enum="BooleanNeedsClearing">
  <obsolete>
    Deprecated August 2018.
  </obsolete>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Records once on startup whether the blacklisted sites in the password store
    need to be updated to remove username/password. Can be removed around Chrome
    M69 (https://crbug.com/817754).
  </summary>
</histogram>

<histogram name="PasswordManager.BlacklistedSites.PreventedAddingDuplicates"
    enum="BooleanAddingBlacklistedDuplicatesPrevented" expires_after="M75">
  <owner>jdoerrie@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Boolean indicating whether adding a blacklist entry was prevented due to an
    already existing entry. Recorded after every blacklist site submission.
  </summary>
</histogram>

<histogram name="PasswordManager.ButtonTitlePerformance.HasFormTag"
    expires_after="2019-07-01">
  <owner>kolos@chromium.org</owner>
  <summary>
    The time (ms) it takes to infer button titles within a form tag.
  </summary>
</histogram>

<histogram name="PasswordManager.ButtonTitlePerformance.NoFormTag"
    expires_after="2019-07-01">
  <owner>kolos@chromium.org</owner>
  <summary>
    The time (ms) it takes to infer button titles outside of form tags.
  </summary>
</histogram>

<histogram name="PasswordManager.CertificateErrorsWhileSeeingForms"
    enum="PasswordCertificateError">
  <owner>battre@chromium.org</owner>
  <owner>dvadym@chromium.org</owner>
  <summary>
    When the password manager sees new forms on the page, it records in this
    histogram whether there were any SSL certificate errors. The presence of SSL
    errors likely means that the password manger will stop working, so the
    reporting is done at the last point when password manager is still
    guaranteed to be active. Some particular errors are distinguished, with the
    rest being reported in a catch-all bucket.
  </summary>
</histogram>

<histogram name="PasswordManager.CleanedUpPasswords">
  <owner>vasilii@chromium.org</owner>
  <summary>
    Collects positive number of undecryptable passwords that were successfully
    deleted when syncing was enabled. Called for sync user for each profile if
    there is at least one password deleted when merging logins from Sync and
    local database.
  </summary>
</histogram>

<histogram name="PasswordManager.DeleteCorruptedPasswordsResult"
    enum="DeleteCorruptedPasswordsResult">
  <owner>vasilii@chromium.org</owner>
  <summary>
    Records the result of removing passwords that cannot be decrypted when
    retrieving passwords from LoginDatabase. Called for Mac users for each
    profile.
  </summary>
</histogram>

<histogram name="PasswordManager.DeleteUndecryptableLoginsReturnValue"
    enum="DeleteCorruptedPasswordsResult">
  <owner>vasilii@chromium.org</owner>
  <summary>
    Records the return value of the DeleteUndecryptableLogins method in the
    LoginDatabase class. Called for sync user and for each profile when merging
    logins from Sync and local database.
  </summary>
</histogram>

<histogram name="PasswordManager.DynamicFormChanges" expires_after="M75">
  <owner>battre@chromium.org</owner>
  <owner>dvadym@chromium.org</owner>
  <summary>
    Records a bitmask of password form changes after the first time this form is
    seen by Password Manager. Recorded once per a form when the form is removed
    from DOM. Bit 0 - changes in number of fields, bit 1 - changes in fields
    renderer ids, bit 2 - changes in autocomplete attributes, bit 3 - changes in
    form control types.
  </summary>
</histogram>

<histogram name="PasswordManager.EditsInSaveBubble"
    enum="PasswordManagerEditsInSaveBubbleEnum">
  <owner>battre@chromium.org</owner>
  <summary>
    Indication whether users change the credentials (username and password) in
    the save bubble of the password manager, considering only cases where the
    user saves a new credential or updates a credential.
  </summary>
</histogram>

<histogram name="PasswordManager.EmptyUsernames.CountInDatabase">
  <owner>vasilii@chromium.org</owner>
  <summary>
    Number of password forms with empty username in the Login Database. This is
    recorded on startup.
  </summary>
</histogram>

<histogram
    name="PasswordManager.EmptyUsernames.FormWithoutUsernameFieldIsPasswordChangeForm"
    enum="PasswordManagerEmptyUsernamePasswordChangeForm">
  <owner>msramek@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    When parsing a password form, and no username field is detected, whether
    this was a password change form.
  </summary>
</histogram>

<histogram name="PasswordManager.EmptyUsernames.OfferedToSave"
    enum="PasswordManagerShowEmptyUsername">
  <owner>vasilii@chromium.org</owner>
  <summary>
    When offering to save a password, whether the username is empty.
  </summary>
</histogram>

<histogram name="PasswordManager.EmptyUsernames.ParsedUsernameField"
    enum="PasswordManagerEmptyUsernameField">
  <owner>vasilii@chromium.org</owner>
  <summary>
    When parsing a password form, whether a username field is detected.
  </summary>
</histogram>

<histogram name="PasswordManager.EmptyUsernames.PasswordFieldCount">
  <obsolete>
    Deprecated as of 09/2018. The investigation this metric was supporting has
    been concluded in 2016.
  </obsolete>
  <owner>msramek@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    The number of password fields for password forms that do not have a username
    field. This is recorded every time such a password form is successfully
    parsed. Note that the parsing is attempted when the form is encountered (i.e
    when the document is loaded) and also when it is submitted.
  </summary>
</histogram>

<histogram name="PasswordManager.EmptyUsernames.TextAndPasswordFieldCount">
  <obsolete>
    Deprecated as of 09/2018. The investigation this metric was supporting has
    been concluded in 2016.
  </obsolete>
  <owner>msramek@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    The total number of text and password fields for password forms that do not
    have a username field. This is recorded every time such a password form is
    successfully parsed. Note that the parsing is attempted when the form is
    encountered (i.e when the document is loaded) and also when it is submitted.
  </summary>
</histogram>

<histogram name="PasswordManager.EmptyUsernames.WithoutCorrespondingNonempty">
  <owner>msramek@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Number of password forms with empty username in the Login Database for which
    there is not another password form from the same realm with a nonempty
    username. In other words, number of password forms with empty username which
    we do not suspect to be reauthentication forms.
  </summary>
</histogram>

<histogram name="PasswordManager.Enabled" enum="BooleanEnabled">
  <owner>dvadym@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Indicates whether the password manager is enabled when a tab is opened. This
    includes prerendered tabs.
  </summary>
</histogram>

<histogram name="PasswordManager.ExportedPasswordsPerUserInCSV">
  <owner>cfroussios@chromium.org</owner>
  <owner>ioanap@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>The number of passwords exported in CSV format per user.</summary>
</histogram>

<histogram name="PasswordManager.ExportPasswordsToCSVResult"
    enum="ExportPasswordsResult">
  <owner>cfroussios@chromium.org</owner>
  <owner>ioanap@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>The success or error type of exporting passwords into CSV.</summary>
</histogram>

<histogram name="PasswordManager.FilledCredentialWasFromAndroidApp"
    enum="PasswordManagerFilledAndroidCredentials">
  <owner>msramek@chromium.org</owner>
  <owner>engedy@chromium.org</owner>
  <summary>
    When a credential is filled, whether it comes from an Android app.
  </summary>
</histogram>

<histogram name="PasswordManager.FillingAssistance"
    enum="PasswordManagerFillingAssistance" expires_after="2020-02-01">
  <owner>dvadym@chromium.org</owner>
  <owner>battre@chromium.org</owner>
  <summary>
    This metric records the user experience with regards to passwords filling.
    It is only recorded on password form submissions that are considered to be
    successful.

    The first 4 buckets (0..3) are ranging from the best filling behavior
    (automatic filling on page load without user interaction necessary) to the
    worst (the user had to manually type a password that was already saved).

    The following buckets (4..5) indicate cases when it was impossible to fill
    credentials because unknown credentials were submitted, meaning that the
    submitted password was not saved before.

    The last bucket (6) corresponds to the strange cases, where the submitted
    form has neither user input nor autofilled data in password fields. This
    might indicate third-party password manager use, or might be a
    measurement/submission classification error.
  </summary>
</histogram>

<histogram name="PasswordManager.FillSuggestionsIncludeAndroidAppCredentials"
    enum="PasswordManagerOfferedAndroidCredentials">
  <owner>msramek@chromium.org</owner>
  <owner>engedy@chromium.org</owner>
  <summary>
    When offering to fill the username and password, whether at least one of the
    credentials in the dropdown comes from an Android app.
  </summary>
</histogram>

<histogram name="PasswordManager.FirstRendererFillingResult"
    enum="PasswordManagerFirstRendererFillingResult" expires_after="M76">
  <owner>battre@chromium.org</owner>
  <owner>dvadym@chromium.org</owner>
  <summary>
    Records whether the PasswordAutofillAgent in the renderer manages to fill
    credentials as instructed by the browser or records a failure reason
    otherwise. Only the outcome of the first attempt to fill is recorded.

    This is replicated as PasswordForm.Fill.FirstFillingResultInRenderer in UKM.
  </summary>
</histogram>

<histogram name="PasswordManager.FirstWaitForUsernameReason"
    enum="PasswordManagerFirstWaitForUsernameReason" expires_after="M76">
  <owner>battre@chromium.org</owner>
  <owner>dvadym@chromium.org</owner>
  <summary>
    This metric records why the browser instructs the renderer not to fill the
    credentials on page load but to wait for the user to confirm the credential
    to be filled. Only the value of the first decision to fill is recorded.

    This is replicated as PasswordForm.Fill.FirstWaitForUsernameReason in UKM.
  </summary>
</histogram>

<histogram name="PasswordManager.FormDataDeserializationStatus"
    enum="FormDataDeserializationStatus">
  <owner>gcasto@chromium.org</owner>
  <owner>dvadym@chromium.org</owner>
  <summary>
    The success or failure of deserializing saved FormData. Failure either
    indicates corrupted data or the presence of bugs in the serialization or
    deserialization code.
  </summary>
</histogram>

<histogram name="PasswordManager.GeneratedFormHasNoFormManager"
    enum="BooleanFormManager">
  <owner>dvadym@chromium.org</owner>
  <owner>kolos@chromium.org</owner>
  <owner>deepak.m1@samsung.com</owner>
  <summary>
    When the generation state of a password was changed, records whether an
    existing form corresponding to the password was found.
  </summary>
</histogram>

<histogram name="PasswordManager.GetMediated" enum="CredentialManagerGetResult">
  <obsolete>
    Deprecated as of 05/2017. This metric has been replaced by
    PasswordManager.MediationOptional.
  </obsolete>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Tracks result of navigator.credentials.get() with unmediated=false. That is
    the result of account chooser.
  </summary>
</histogram>

<histogram name="PasswordManager.GetUnmediated"
    enum="CredentialManagerGetResult">
  <obsolete>
    Deprecated as of 05/2017. This metric has been replaced by
    PasswordManager.MediationSilent.
  </obsolete>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Tracks result of navigator.credentials.get() with unmediated=true. That is
    the result of auto sign-in.
  </summary>
</histogram>

<histogram name="PasswordManager.GooglePasswordManager.NavigationResult"
    enum="GooglePasswordManagerNavigationResult" expires_after="2019-12-31">
  <owner>jdoerrie@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    The result of an attempted navigation to the Google Password Manager.
    Recorded when a signed-in and password syncing user navigates to
    https://passwords.google.com by clicking a link.
  </summary>
</histogram>

<histogram name="PasswordManager.GooglePasswordManager.TimeToFailure"
    expires_after="2019-12-31">
  <owner>jdoerrie@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    The time it took for a failed navigation to the Google Password Manager.
    Recorded when a signed-in and password syncing user navigates to
    https://passwords.google.com by clicking a link and the navigation fails
    before timing out.
  </summary>
</histogram>

<histogram name="PasswordManager.GooglePasswordManager.TimeToSuccess"
    expires_after="2019-12-31">
  <owner>jdoerrie@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    The time it took for a successful navigation to the Google Password Manager.
    Recorded when a signed-in and password syncing user navigates to
    https://passwords.google.com by clicking a link and the navigation succeeds
    before timing out.
  </summary>
</histogram>

<histogram name="PasswordManager.HttpCredentials"
    enum="PasswordManagerHttpCredentialType">
  <owner>jdoerrie@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Breakdown of HTTP credentials with regard to the existence of a HTTPS
    credential with the same username and whether the corresponding website has
    HSTS enabled. Recorded once for each HTTP credential of the profile on
    startup.
  </summary>
</histogram>

<histogram name="PasswordManager.HttpCredentialsWithConflictingHttpsCredential"
    units="saved credentials" expires_after="M72">
  <obsolete>
    Deprecated as of M72. Superseded by PasswordManager.HttpCredentials.
  </obsolete>
  <owner>gemene@google.com</owner>
  <owner>jdoerrie@chromium.org</owner>
  <summary>
    Number of HTTP credentials, with HSTS enabled as given in the histogram
    suffix, for which a conflicting (i.e.same host and username, but different
    password) HTTPS credential exists. Recorded once for the profile on startup.
  </summary>
</histogram>

<histogram name="PasswordManager.HttpCredentialsWithEquivalentHttpsCredential"
    units="saved credentials" expires_after="M72">
  <obsolete>
    Deprecated as of M72. Superseded by PasswordManager.HttpCredentials.
  </obsolete>
  <owner>gemene@google.com</owner>
  <owner>jdoerrie@chromium.org</owner>
  <summary>
    Number of HTTP credentials, with HSTS enabled as given in the histogram
    suffix, for which an equivalent (i.e. same host, username and password)
    HTTPS credential exists. Recorded once for the profile on startup.
  </summary>
</histogram>

<histogram name="PasswordManager.HttpCredentialsWithoutMatchingHttpsCredential"
    units="saved credentials" expires_after="M72">
  <obsolete>
    Deprecated as of M72. Superseded by PasswordManager.HttpCredentials.
  </obsolete>
  <owner>gemene@google.com</owner>
  <owner>jdoerrie@chromium.org</owner>
  <summary>
    Number of HTTP credential, with HSTS enabled as given in the histogram
    suffix, for which no HTTPS credential for the same username exists. Recorded
    once for the profile on startup.
  </summary>
</histogram>

<histogram name="PasswordManager.HttpPasswordMigrationCount"
    units="saved credentials">
  <owner>vasilii@chromium.org</owner>
  <summary>
    Number of HTTP saved passwords that were migrated to HTTPS. Recorded on
    HTTPS password form load when there are no credentials saved.
  </summary>
</histogram>

<histogram name="PasswordManager.HttpPasswordMigrationMode"
    enum="HttpPasswordMigrationMode">
  <owner>jdoerrie@chromium.org</owner>
  <summary>
    The mode of migration applied to HTTP passwords migrating to HTTPS. Recorded
    on HTTPS password form load when there are no credentials saved.
  </summary>
</histogram>

<histogram name="PasswordManager.IE7LookupResult" enum="IE7LookupResultStatus">
  <obsolete>
    Deprecated as of 07/2018. This metric was deleted at
    https://chromium-review.googlesource.com/c/chromium/src/+/1131495.
  </obsolete>
  <summary>
    The result of importing passwords stored in IE7 into Chrome's password
    store.
  </summary>
</histogram>

<histogram name="PasswordManager.ImportedPasswordsPerUserInCSV">
  <owner>vasilii@chromium.org</owner>
  <summary>The number of passwords imported in CSV format per user</summary>
</histogram>

<histogram name="PasswordManager.ImportPasswordFromCSVResult"
    enum="PasswordImportFromCSVResult">
  <owner>vasilii@chromium.org</owner>
  <summary>
    The response code of successful or failed password import attempt from a CSV
    file.
  </summary>
</histogram>

<histogram name="PasswordManager.InaccessiblePasswords" units="saved passwords">
  <owner>vasilii@chromium.org</owner>
  <summary>
    The number of saved passwords in the store that could not be decrypted.
    Recorded once for the profile on startup.
  </summary>
</histogram>

<histogram name="PasswordManager.InfoBarResponse" enum="InfoBarResponse">
  <obsolete>
    Deprecated as of 03/2016. This metric has been replaced by
    PasswordManager.UIDismissalReason.
  </obsolete>
  <summary>
    The distribution of responses to the &quot;Do you want Chrome to remember
    this password&quot;? info bar prompt.
  </summary>
</histogram>

<histogram name="PasswordManager.InvalidtHttpsCredentialsNeedToBeCleared"
    enum="BooleanNeedsClearing" expires_after="M73">
  <obsolete>
    Corresponding clean-up logic got introduced in M71 and has run its course.
  </obsolete>
  <owner>jdoerrie@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Records once on startup whether forms with wrong signon_realm created by
    HTTP to HTTPS migration need to be removed. See https://crbug.com/881731 for
    more details.
  </summary>
</histogram>

<histogram name="PasswordManager.IsSyncPasswordHashSaved"
    enum="IsSyncPasswordHashSaved" expires_after="2019-10-05">
  <owner>dvadym@chromium.org</owner>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    This metric reports whether a sync password hash is saved. Recorded shortly
    after Chrome startup.
  </summary>
</histogram>

<histogram
    name="PasswordManager.IsSyncPasswordHashSavedForAdvancedProtectionUser"
    enum="IsSyncPasswordHashSaved" expires_after="2019-10-05">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    This metric is recorded shortly after Chrome Startup, only for Advanced
    Protection users. This is a subset of
    PasswordManager.IsSyncPasswordHashSaved.
  </summary>
</histogram>

<histogram
    name="PasswordManager.KeychainMigration.NumChromeOwnedInaccessiblePasswords">
  <obsolete>
    Deprecated as of 09/2016.
  </obsolete>
  <owner>vasilii@chromium.org</owner>
  <summary>
    After migration from the Mac Keychain fails, records the number of passwords
    in the Keychain owned by Chrome but not accessible by it.
  </summary>
</histogram>

<histogram name="PasswordManager.KeychainMigration.NumFailedPasswords">
  <owner>vasilii@chromium.org</owner>
  <summary>
    After migration from the Mac Keychain fails, records the number of passwords
    in the Chrome Password Manager database for which the corresponding values
    in the Keychain are not accessible by Chrome.
  </summary>
</histogram>

<histogram name="PasswordManager.KeychainMigration.NumPasswordsOnFailure">
  <owner>vasilii@chromium.org</owner>
  <summary>
    After migration from the Mac Keychain fails, records the number of passwords
    in the Chrome Password Manager database to be migrated. As there is no
    partial migration, it's the total number of passwords in the DB.
  </summary>
</histogram>

<histogram name="PasswordManager.KeychainMigration.Status"
    enum="KeychainMigrationStatus">
  <owner>vasilii@chromium.org</owner>
  <summary>
    The status of passwords migration from the Keychain. It's recorded shortly
    after startup.
  </summary>
</histogram>

<histogram name="PasswordManager.KWalletDeserializationStatus"
    enum="BooleanSuccess">
  <owner>gcasto@chromium.org</owner>
  <owner>dvadym@chromium.org</owner>
  <summary>
    The success or failure of deserializing PasswordForms in KWallet. Failure
    either indicates corrupted data or the presense of bugs in the
    deserialization code.
  </summary>
</histogram>

<histogram name="PasswordManager.LinuxBackendMigration.Adoption"
    enum="LinuxPasswordsMigrationToEncryptionStatus" expires_after="2019-06-01">
  <owner>cfroussios@chromium.org</owner>
  <summary>
    Whether the password store has been migrated to an encrypted login database.
    This is recorded on startup, before any migration attempts.
  </summary>
</histogram>

<histogram name="PasswordManager.LinuxBackendMigration.AttemptResult"
    enum="LinuxPasswordsMigrationToEncryptionStatus" expires_after="2019-06-01">
  <owner>cfroussios@chromium.org</owner>
  <summary>
    Whether the password store has been migrated to an encrypted login database.
    This is recorded at the end of a migration attempt.
  </summary>
</histogram>

<histogram name="PasswordManager.LinuxBackendMigration.TimeIntoEncrypted"
    expires_after="2019-06-01">
  <owner>cfroussios@chromium.org</owner>
  <summary>
    The time it took to read credentials from the native backend and write them
    into the encrypted login database. This is logged once per migration
    (normally once per client), at the end of copying into the database. The
    migration is triggered on the first operation to the password store.
  </summary>
</histogram>

<histogram name="PasswordManager.LinuxBackendMigration.TimeIntoNative"
    expires_after="2019-06-01">
  <owner>cfroussios@chromium.org</owner>
  <summary>
    The time it took to read credentials from the unencrypted login database and
    insert them into the native backend. This is logged once per migration
    (normally once per client), at the end of copying into the backend. The
    migration is triggered on the first operation to the password store.
  </summary>
</histogram>

<histogram name="PasswordManager.LinuxBackendStatistics">
  <owner>cfroussios@chromium.org</owner>
  <owner>dvadym@chromium.org</owner>
  <summary>
    Information about usage of password storage backends on Linux. It also
    includes whether a command line flag for a specific backend is given.
  </summary>
</histogram>

<histogram name="PasswordManager.LoginDatabaseFailedVersion">
  <owner>vasilii@chromium.org</owner>
  <summary>
    The version of LoginDatabase if the migration to a new one failed.
  </summary>
</histogram>

<histogram name="PasswordManager.LoginDatabaseInit"
    enum="LoginDatabaseInitError">
  <owner>vasilii@chromium.org</owner>
  <summary>An error on LoginDatabase initialization.</summary>
</histogram>

<histogram name="PasswordManager.ManagePasswordsReferrer"
    enum="ManagePasswordsReferrer">
  <owner>jdoerrie@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Referrer of a navigation to the &quot;Manage Passwords&quot; page. Recorded
    when the user attempts to see their list of passwords, either via native or
    Web UI.
  </summary>
</histogram>

<histogram name="PasswordManager.ManagePasswordsReferrerSignedInAndSyncing"
    enum="ManagePasswordsReferrer">
  <owner>ioanap@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Referrer of a navigation to the &quot;Manage Passwords&quot; page. Recorded
    only for signed in users syncing passwords without a custom passprase, when
    the user attempts to see their list of passwords.
  </summary>
</histogram>

<histogram name="PasswordManager.MediationOptional"
    enum="CredentialManagerGetResult">
  <owner>jdoerrie@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Tracks result of navigator.credentials.get() with
    mediation=&quot;optional&quot;. That is the result of account chooser.
  </summary>
</histogram>

<histogram name="PasswordManager.MediationRequired"
    enum="CredentialManagerGetResult">
  <owner>jdoerrie@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Tracks result of navigator.credentials.get() with
    mediation=&quot;required&quot;. That is the result of forced account
    chooser.
  </summary>
</histogram>

<histogram name="PasswordManager.MediationSilent"
    enum="CredentialManagerGetResult">
  <owner>jdoerrie@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Tracks result of navigator.credentials.get() with
    mediation=&quot;silent&quot;. That is the result of auto sign-in.
  </summary>
</histogram>

<histogram name="PasswordManager.MultiAccountPasswordUpdateAction"
    enum="MultiAccountUpdateBubbleUserAction">
  <obsolete>
    Deprecated 03/2018 in favor of PasswordManager.UpdateUIDismissalReason.
  </obsolete>
  <owner>dvadym@chromium.org</owner>
  <summary>
    A user action when a password update bubble with multiple accounts is shown.
  </summary>
</histogram>

<histogram name="PasswordManager.NewlySavedPasswordIsGenerated"
    enum="BooleanNewlySavedPasswordIsGenerated">
  <owner>nepper@chromium.org</owner>
  <owner>battre@chromium.org</owner>
  <owner>kolos@chromium.org</owner>
  <summary>
    For a newly saved password, whether the password was generated by Chrome or
    typed manually by the user.
  </summary>
</histogram>

<histogram name="PasswordManager.NumPasswordsDeletedByBulkDelete">
  <owner>vasilii@chromium.org</owner>
  <summary>
    Number of passwords deleted when the user chooses to clear passwords via the
    clear browsing data UI.
  </summary>
</histogram>

<histogram name="PasswordManager.NumPasswordsDeletedDuringRollback">
  <owner>vasilii@chromium.org</owner>
  <summary>
    Number of passwords deleted when browsing data is cleared during rollback.
  </summary>
</histogram>

<histogram name="PasswordManager.NumPasswordsDeletedWhenBlacklisting">
  <obsolete>
    Deprecated as of 08/2015.
  </obsolete>
  <summary>
    When the user chooses to never remember passwords for a form, we remove all
    previously saved credentials for that form. This is the count of those
    credentials.
  </summary>
</histogram>

<histogram name="PasswordManager.NumPasswordsNotShown">
  <owner>dvadym@chromium.org</owner>
  <summary>
    The password manager only shows those credentials that are considered the
    best match for a particular form. This stat keep track of the credentials
    that were not as good of a match and were suppressed.
  </summary>
</histogram>

<histogram name="PasswordManager.OsPasswordStatus"
    enum="PasswordManagerOsPasswordStatus">
  <owner>battre@chromium.org</owner>
  <owner>wfh@chromium.org</owner>
  <summary>
    Indicates whether the user's OS password is blank or not at browser startup.
  </summary>
</histogram>

<histogram name="PasswordManager.OtherPossibleUsernamesUsage"
    enum="OtherPossibleUsernamesUsage">
  <owner>dvadym@chromium.org</owner>
  <summary>
    Breakdown of how other possible usernames are displayed. Recorded every time
    we autofill a password form.
  </summary>
</histogram>

<histogram name="PasswordManager.PasswordDropdownItemSelected"
    enum="PasswordDropdownSelectedOption" expires_after="2019-07-01">
  <owner>dvadym@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Logs the type of the suggestion in the password dropdown when selected.
  </summary>
</histogram>

<histogram name="PasswordManager.PasswordDropdownShown"
    enum="PasswordDropdownState" expires_after="2019-07-01">
  <owner>dvadym@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>Logs the state of the password dropdown when it's shown.</summary>
</histogram>

<histogram name="PasswordManager.PasswordReuse.MainFrameMatchCsdWhitelist"
    enum="Boolean">
  <obsolete>
    Deprecated as of May 17 2017. Replaced by
    PasswordProtection.RequestOutcome.ProtectedPasswordEntry.
  </obsolete>
  <owner>dvadym@chromium.org</owner>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    A password reuse is an event when the user typed a string that is equal to a
    saved password on another domain, and this saved password is called reused
    password.

    This metric shows whether a password reuse happens on a page whose main
    frame url matches CSD whitelist.
  </summary>
</histogram>

<histogram name="PasswordManager.PasswordReuse.NumberOfMatches"
    units="credentials">
  <owner>dvadym@chromium.org</owner>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    This metric shows how many saved credentials (num unique registry-controlled
    domains) have password that's equal to the reused password.

    Before M63 this logged a &quot;0&quot; for sync-reuse.

    A &quot;password reuse&quot; is when the user typed a string that is equal
    to a saved password on another domain or is equal to the sync password on a
    non google-login domain.
  </summary>
</histogram>

<histogram name="PasswordManager.PasswordReuse.PasswordFieldDetected"
    enum="PasswordReusePasswordFieldDetected">
  <owner>dvadym@chromium.org</owner>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    This metric reports whether a password field had been detected on a page
    when a password reuse happened.

    A &quot;password reuse&quot; is when the user typed a string that is equal
    to a saved password on another domain or is equal to the sync password on a
    non google-login domain.


  </summary>
</histogram>

<histogram name="PasswordManager.PasswordReuse.PasswordLength"
    units="characters">
  <owner>dvadym@chromium.org</owner>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    This metric shows the length of the reused password.

    Change in M63: If multiple passwords are matched simultaneously, this logs
    the length of the longest password. Also, before M63, a &quot;0&quot; was
    logged for sync-reuse.

    A &quot;password reuse&quot; is when the user typed a string that is equal
    to a saved password on another domain or is equal to the sync password on a
    non google-login domain.


  </summary>
</histogram>

<histogram name="PasswordManager.PasswordReuse.TotalPasswords"
    units="credentials">
  <owner>dvadym@chromium.org</owner>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    This metric shows how many credentials are stored in Password Manager when a
    password reuse happened. This counts unique registry-controlled domains with
    passwords saved.

    A &quot;password reuse&quot; is when the user typed a string that is equal
    to a saved password on another domain or is equal to the sync password on a
    non google-login domain.

    During M61/M62 this metric logged a &quot;1&quot; for every sync-reuse. It
    was fixed in M63 such that it logs actual Password Manager credential count.
  </summary>
</histogram>

<histogram name="PasswordManager.PasswordSavedWithManualFallback"
    enum="BooleanPasswordSavedWithFallback">
  <owner>kolos@chromium.org</owner>
  <summary>
    Measures whether users save passwords with automatic prompt or manual
    fallback.
  </summary>
</histogram>

<histogram name="PasswordManager.PasswordStoreInitResult" enum="BooleanSuccess">
  <owner>vasilii@chromium.org</owner>
  <summary>
    Success rate of initialization of password store. Recorded for every user
    once on the Chrome profile startup.
  </summary>
</histogram>

<histogram name="PasswordManager.PasswordSyncState" enum="PasswordSyncState">
  <owner>gcasto@chromium.org</owner>
  <owner>rouslan@chromium.org</owner>
  <summary>
    Whether the passwords are syncing and, if not, then what's causing sync
    failures. Recorded after the first sync attempt either succeeds or fails.
  </summary>
</histogram>

<histogram name="PasswordManager.PasswordUpdatedWithManualFallback"
    enum="BooleanPasswordSavedWithFallback">
  <obsolete>
    Deprecated as of 05/2018.
  </obsolete>
  <owner>kolos@chromium.org</owner>
  <summary>
    Measures whether users update passwords with automatic prompt or manual
    fallback.
  </summary>
</histogram>

<histogram name="PasswordManager.PrefilledUsernameFillOutcome"
    enum="PrefilledUsernameFillOutcome">
  <owner>ioanap@chromium.org</owner>
  <summary>
    Records successful fills of prefilled username values known as placeholders
    and unsuccessful fills that were blocked because the prefilled value was not
    identified as a placeholder. Recorded once per PasswordAutofillAgent
    instance, when attempting to fill a password form that contains a username
    value which was prepopulated by the website.
  </summary>
</histogram>

<histogram name="PasswordManager.ProvisionalSaveFailure"
    enum="ProvisionalSaveFailure">
  <owner>dvadym@chromium.org</owner>
  <summary>
    Breakdown of cases where a password is submitted, but we don't even try and
    save it. Recorded for every password form submit.
  </summary>
</histogram>

<histogram name="PasswordManager.PslDomainMatchTriggering"
    enum="PasswordManagerPslDomainMatchTriggering">
  <owner>dvadym@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Breakdown on trigger rate of providing a password form autofill entry based
    on matching stored information using the public suffix list (PSL) for
    possible matches. In addition, this metric also counts cases where a
    existing federated entry was successfully matched via PSL. For example, this
    includes cases where an existing federated credential for
    https://example.com was used for https://subdomain.example.com.
  </summary>
</histogram>

<histogram name="PasswordManager.QueryingSuppressedAccountsFinished"
    enum="Boolean">
  <owner>engedy@chromium.org</owner>
  <summary>
    Records, for each password form seen by the password manager, whether the
    PasswordStore responded quickly enough so that
    PasswordManager.SuppressedAccount histogram samples could be computed.
  </summary>
</histogram>

<histogram name="PasswordManager.ReauthToAccessPasswordInSettings"
    enum="ReauthToAccessPasswordInSettingsEvent">
  <owner>vasilii@chromium.org</owner>
  <summary>
    Recorded whenever the user interacts with reauthentication in order to
    access the passwords in settings, or when such reauthentication is skipped
    for a well-defined reason.
  </summary>
</histogram>

<histogram name="PasswordManager.RemovedCorruptedPasswords">
  <owner>vasilii@chromium.org</owner>
  <summary>
    Collects positive number of inaccessible passwords that were successfully
    deleted when retrieving them from the database. Recorded for Mac users.
  </summary>
</histogram>

<histogram name="PasswordManager.RequirementsSpecFetcher.HttpResponseCode"
    enum="HttpResponseCode">
  <owner>battre@chromium.org</owner>
  <summary>
    HTTP response code of fetching a password requirements file.
  </summary>
</histogram>

<histogram name="PasswordManager.RequirementsSpecFetcher.NetErrorCode"
    enum="NetErrorCodes">
  <owner>battre@chromium.org</owner>
  <summary>
    Network error code of fetching a password requirements file.
  </summary>
</histogram>

<histogram name="PasswordManager.RequirementsSpecFetcher.NetworkDuration"
    units="ms">
  <owner>battre@chromium.org</owner>
  <summary>
    Time until the lookup for a password requirements file completed (or was
    aborted).
  </summary>
</histogram>

<histogram name="PasswordManager.RequirementsSpecFetcher.Result"
    enum="PasswordRequirementsFetcherResult">
  <owner>battre@chromium.org</owner>
  <summary>
    Result of fetching requirements for password during password generation.
  </summary>
</histogram>

<histogram name="PasswordManager.ReusedPasswordType" enum="ReusedPasswordType">
  <owner>dvadym@chromium.org</owner>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the type of password (e.g saved password, sync password, enterprise
    password etc) reused by the user. This is logged when a password reuse
    happens.
  </summary>
</histogram>

<histogram name="PasswordManager.SavedEnterprisePasswordHashCount">
  <owner>dvadym@chromium.org</owner>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the number of enterprise password hashes that have been saved for
    password reuse detection. This is logged during the initialization of
    PasswordStore class.
  </summary>
</histogram>

<histogram name="PasswordManager.SavedGaiaPasswordHashCount" units="count">
  <owner>dvadym@chromium.org</owner>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the number of Gaia password hashes that have been saved for password
    reuse detection. This is logged during the initialization of PasswordStore
    class.
  </summary>
</histogram>

<histogram name="PasswordManager.SavePasswordPromptDisappearedQuickly"
    enum="Boolean">
  <obsolete>
    Deprecated as of 03/2016.
  </obsolete>
  <summary>
    Indicates whether the save password prompt disappeared in less than one
    second. This most likely indicates that the prompt was dismissed
    automatically, e.g. due to a page navigation, before the user was able to
    respond to the infobar.
  </summary>
</histogram>

<histogram name="PasswordManager.SavePasswordPromptDisplayed" enum="Boolean">
  <obsolete>
    Deprecated as of 03/2016.
  </obsolete>
  <summary>Indicates whether the save password prompt was displayed.</summary>
</histogram>

<histogram name="PasswordManager.SavePasswordPromptResponse"
    enum="SavePasswordPromptResponseType">
  <obsolete>
    Deprecated as of 03/2016.
  </obsolete>
  <summary>
    Breakdown of which response the user selected from the save password prompt.
  </summary>
</histogram>

<histogram name="PasswordManager.SaveUIDismissalReason"
    enum="PasswordManagerUIDismissalReason">
  <owner>vasilii@chromium.org</owner>
  <summary>Why was the save password UI (bubble or infobar) closed?</summary>
</histogram>

<histogram name="PasswordManager.SendPasswordFormToBrowserProcess"
    enum="SendPasswordFormToBrowserProcess" expires_after="M74">
  <owner>dvadym@chromium.org</owner>
  <owner>miniailau@google.com</owner>
  <summary>
    Measures sending/not sending password forms to the browser process by
    PasswordAutofillAgent::SendPasswordForms.
  </summary>
</histogram>

<histogram name="PasswordManager.SettingsReconciliation.InitialAndFinalValues"
    enum="PasswordManagerPreferencesInitialAndFinalValues">
  <obsolete>
    Deprecated 06/2017
  </obsolete>
  <owner>engedy@chromium.org</owner>
  <owner>melandory@chromium.org</owner>
  <summary>
    Tracks the pair of initial values and pair of final values for the legacy
    preference for controlling the Chrome Password Manager and the new
    preference for controlling Smart Lock on Android. A single sample is
    recorded after sync has merged last snapshot and finished initialization for
    sync users, and on profile initialization for non-sync users.
  </summary>
</histogram>

<histogram name="PasswordManager.SettingsReconciliation.InitialValues"
    enum="PasswordManagerPreferencesInitialValues">
  <obsolete>
    Deprecated 06/2017
  </obsolete>
  <owner>engedy@chromium.org</owner>
  <owner>melandory@chromium.org</owner>
  <summary>
    Tracks the pair of initial values for both for the legacy preference for
    controlling the Chrome Password Manager and new preference for controlling
    Smart Lock on Android. Sample is recorded on every profile initialization
    before reconciliation logic is taken place, e.g. when user logs in to
    browser, on a startup of a browser.
  </summary>
</histogram>

<histogram
    name="PasswordManager.ShouldBlockPasswordForSameOriginButDifferentScheme"
    enum="BooleanBlocked">
  <owner>jdoerrie@chromium.org</owner>
  <summary>
    This metric is recorded every time Chrome detects a password form
    submission. The credential might be proposed to be saved, or it might be
    blocked. It is blocked if the previously detected password form submission
    was successful, and the current submission is from a URL with the same
    origin, but a different and insecure scheme. That is, if the previously
    provisionally saved credential is for https://example.com, a new credential
    for http://example.com would be blocked. More details can be found in the
    doc associated with http://crbug.com/571580.
  </summary>
</histogram>

<histogram name="PasswordManager.ShouldShowAutoSignInFirstRunExperience"
    enum="BooleanPending">
  <owner>vasilii@chromium.org</owner>
  <summary>
    Records if the user still has to click through the first run experience to
    benefit from auto sign-in behavior. Recorded on every start-up.
  </summary>
</histogram>

<histogram name="PasswordManager.ShouldShowPromptComparison"
    enum="ShouldShowPromptResults" expires_after="M70">
  <obsolete>
    Deprecated 08/2018 because the decision this should have helped with is now
    moot. See https://crbug.com/871509#c3.
  </obsolete>
  <owner>dvadym@chromium.org</owner>
  <summary>
    Records results of the new and the old algorithm for detecting whether to
    show a password prompt to the user. Recorded on each password form
    successful submission.
  </summary>
</histogram>

<histogram name="PasswordManager.ShowAllSavedPasswordsAcceptedContext"
    enum="ShowAllSavedPasswordsContext">
  <owner>jdoerrie@chromium.org</owner>
  <owner>melandory@chromium.org</owner>
  <summary>
    Recorded when the &quot;Show all saved passwords&quot; fallback is accepted.
  </summary>
</histogram>

<histogram name="PasswordManager.ShowAllSavedPasswordsShownContext"
    enum="ShowAllSavedPasswordsContext">
  <owner>jdoerrie@chromium.org</owner>
  <owner>melandory@chromium.org</owner>
  <summary>
    Recorded when the &quot;Show all saved passwords&quot; fallback is shown.
  </summary>
</histogram>

<histogram name="PasswordManager.ShowedFormNotSecureWarningOnCurrentNavigation"
    enum="BooleanShown">
  <obsolete>
    Deprecated 05/2018 because the feature never launched.
  </obsolete>
  <owner>estark@chromium.org</owner>
  <summary>
    Recorded (at most once per main-frame navigation) when a password form shows
    a warning that the form is not secure.
  </summary>
</histogram>

<histogram name="PasswordManager.SignInPromo"
    enum="PasswordBubbleSignInPromoDismissalReason">
  <owner>vasilii@chromium.org</owner>
  <summary>
    User action on the Chrome Sync promo that appears in the password bubble.
    The promo offers to sign in to Chrome.
  </summary>
</histogram>

<histogram name="PasswordManager.SignInPromoCountTilClick">
  <obsolete>
    Deprecated as of 12/16/16. New statistic is
    PasswordManager.SignInPromoCountTil*.
  </obsolete>
  <owner>vasilii@chromium.org</owner>
  <summary>
    The number of times the Sign In promo in the password bubble was shown
    before user clicked on it.
  </summary>
</histogram>

<histogram name="PasswordManager.SignInPromoCountTilNoThanks">
  <owner>vasilii@chromium.org</owner>
  <summary>
    The number of times the Sign In promo in the password bubble was shown
    before user clicked on &quot;No thanks&quot;.
  </summary>
</histogram>

<histogram name="PasswordManager.SignInPromoCountTilSignIn">
  <owner>vasilii@chromium.org</owner>
  <summary>
    The number of times the Sign In promo in the password bubble was shown
    before user clicked on &quot;Sign in&quot;.
  </summary>
</histogram>

<histogram name="PasswordManager.SignInPromoDismissalCount">
  <owner>vasilii@chromium.org</owner>
  <summary>
    The number of times the Sign In promo in the password bubble was implcitly
    dismissed. Recorded each time the promo is implicitly dismissed.
  </summary>
</histogram>

<histogram name="PasswordManager.StorePasswordImportedFromCSVResult"
    enum="BooleanSuccess">
  <obsolete>
    Deprecated as of 14 September 2017, due to being no longer useful.
  </obsolete>
  <owner>xunlu@chromium.org</owner>
  <summary>
    Whether password manager stored passwords imported from CSV file
    successfully.
  </summary>
</histogram>

<histogram name="PasswordManager.StorePerformance.AddLogin"
    expires_after="2019-06-01">
  <owner>cfroussios@chromium.org</owner>
  <owner>dvadym@chromium.org</owner>
  <summary>
    The time (ms) it takes for the synchronous part of the AddLogin on the
    PasswordStore to complete.
  </summary>
</histogram>

<histogram name="PasswordManager.StorePerformance.GetLogin"
    expires_after="2019-06-01">
  <owner>cfroussios@chromium.org</owner>
  <owner>dvadym@chromium.org</owner>
  <summary>
    The time (ms) it takes for the synchronous part of the GetLogin on the
    PasswordStore to complete.
  </summary>
</histogram>

<histogram name="PasswordManager.StorePerformance.GetLogins"
    expires_after="2019-06-01">
  <owner>cfroussios@chromium.org</owner>
  <owner>dvadym@chromium.org</owner>
  <summary>
    The time (ms) it takes for the synchronous part of the GetLogins on the
    PasswordStore to complete.
  </summary>
</histogram>

<histogram name="PasswordManager.StorePerformance.RemoveLogin"
    expires_after="2019-06-01">
  <owner>cfroussios@chromium.org</owner>
  <owner>dvadym@chromium.org</owner>
  <summary>
    The time (ms) it takes for the synchronous part of the RemoveLogin on the
    PasswordStore to complete.
  </summary>
</histogram>

<histogram name="PasswordManager.StorePerformance.UpdateLogin"
    expires_after="2019-06-01">
  <owner>cfroussios@chromium.org</owner>
  <owner>dvadym@chromium.org</owner>
  <summary>
    The time (ms) it takes for the synchronous part of the UpdateLogin on the
    PasswordStore to complete.
  </summary>
</histogram>

<histogram name="PasswordManager.StoreReadyWhenWiping" enum="Boolean">
  <obsolete>
    Deprecated since August 28, 2018, due to removing the corresponding feature.
  </obsolete>
  <summary>
    When the user logs in with their sync credential, PasswordManager checks if
    there are any outdated copies of it in the password store, in order to purge
    them. This histogram records whether password store data are ready during
    this check.
  </summary>
</histogram>

<histogram name="PasswordManager.SubmitNavigatesToDifferentDomain"
    enum="PostSubmitNavigation">
  <owner>dvadym@chromium.org</owner>
  <summary>
    Indicates whether submitting a password login form changes the registry
    controlled domain of the main frame.
  </summary>
</histogram>

<histogram name="PasswordManager.SubmittedFormFrame"
    enum="SubmittedPasswordFormFrame">
  <owner>dvadym@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Records a frame type (eg. main frame, iframe with the same url as the main
    frame) of a submitted password form.
  </summary>
</histogram>

<histogram name="PasswordManager.SubmittedFormType" enum="PasswordFormType">
  <owner>dvadym@chromium.org</owner>
  <owner>kolos@chromium.org</owner>
  <summary>
    The type (e.g. signup, login, change password) of all submitted password
    forms. This is logged on form submission, but doesn't require that the
    password manager saves.
  </summary>
</histogram>

<histogram name="PasswordManager.SubmittedNonSecureFormType"
    enum="PasswordFormType">
  <owner>estark@chromium.org</owner>
  <summary>
    The type (e.g. signup, login, change password) of all submitted password
    forms on non-secure pages. This is logged on form submission, but doesn't
    require that the password manager saves.
  </summary>
</histogram>

<histogram name="PasswordManager.SuccessfulLoginHappened"
    enum="BooleanSuccessfulLoginHappenedOnHttps" expires_after="M78">
  <owner>nepper@chromium.org</owner>
  <owner>battre@chromium.org</owner>
  <owner>kolos@chromium.org</owner>
  <summary>
    For a successful login, whether the origin is HTTPS or HTTP. A succesful
    login is detected by local heuristics. The heuristics can misclassify
    whether a login succeeded, so this is an approximation.
  </summary>
</histogram>

<histogram name="PasswordManager.SuccessfulSubmissionIndicatorEvent"
    enum="SubmissionIndicatorEvent">
  <owner>dvadym@chromium.org</owner>
  <owner>engedy@chromium.org</owner>
  <summary>
    The type of event that the Password Manager used for detecting a password
    form submission. Recorded for each successful password form submission.
  </summary>
</histogram>

<histogram name="PasswordManager.SuggestionClicked"
    enum="PasswordSuggestionType">
  <owner>vasilii@chromium.org</owner>
  <summary>
    The type of password suggestion on iOS displayed in the keyboard accessory.
    Recorded for each tap on the suggestion.
  </summary>
</histogram>

<histogram name="PasswordManager.SuggestionShown" enum="PasswordSuggestionType">
  <owner>vasilii@chromium.org</owner>
  <summary>
    The type of password suggestions on iOS displayed in the keyboard accessory.
    Recorded each time the password suggestion is shown.
  </summary>
</histogram>

<histogram name="PasswordManager.SuppressedAccount"
    enum="PasswordManagerSuppressedAccountCrossActionsTaken">
  <owner>engedy@chromium.org</owner>
  <summary>
    Records, for each password form seen by the password manager, whether there
    were `suppressed` credentials, meaning stored credentials that were not
    filled because they were for an origin that was similar to, but not exactly
    (or PSL) matching the origin of the observed form (see the suffix
    description for the possible classes of such near-matches). If there were
    such credentials, the histogram also records whether the username and
    password of such suppressed credentials matched those submitted.
  </summary>
</histogram>

<histogram name="PasswordManager.SyncCredentialFiltered"
    enum="CredentialFilteredType">
  <obsolete>
    Password manager no longer supports this behavior and the code that could
    generate values in this histogram is gone as of M74.
  </obsolete>
  <owner>battre@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    This histogram is reported for those forms on accounts.google.com, on which
    Chrome is forced by Finch/flags during autofilling to remove sync
    credentials from password store results. It reports true if sync credentials
    were indeed removed from the store results, and false if there were no sync
    credentials in the results to begin with.
  </summary>
</histogram>

<histogram name="PasswordManager.SyncingAccountState"
    enum="PasswordManagerSyncingAccountState">
  <owner>battre@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Information about the user's current sync status crossed with whether their
    synced password is saved.
  </summary>
</histogram>

<histogram name="PasswordManager.SyncPasswordHashChange"
    enum="SyncPasswordHashChange">
  <owner>dvadym@chromium.org</owner>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    This metric reports a type of a sync password hash change event. Recorded
    when a sync password hash is saved or cleared.
  </summary>
</histogram>

<histogram name="PasswordManager.TimeBetweenStoreAndServer" units="ms"
    expires_after="2019-05-01">
  <owner>battre@chromium.org</owner>
  <owner>dvadym@chromium.org</owner>
  <summary>
    The time between receiving saved credentials from the password store and
    predictions from the Autofill server. Recorded each time when predictions
    for a form are received.
  </summary>
</histogram>

<histogram name="PasswordManager.TimeReadingExportedPasswords" units="ms">
  <owner>battre@chromium.org</owner>
  <owner>cfroussios@chromium.org</owner>
  <owner>ioanap@chromium.org</owner>
  <summary>
    The time it takes to fetch and serialise the passwords for export.
  </summary>
</histogram>

<histogram name="PasswordManager.TimesGeneratedPasswordUsed">
  <obsolete>
    Deprecated as of 11/11/14. New statistic is
    PasswordManager.TimesPasswordUsed.AutoGenerated.
  </obsolete>
  <summary>
    The number of times each generated password has been used to log in.
    Recorded by iterating over stored passwords once per run. This information
    is persisted and synced.
  </summary>
</histogram>

<histogram name="PasswordManager.TimesPasswordUsed">
  <owner>battre@chromium.org</owner>
  <owner>dvadym@chromium.org</owner>
  <summary>
    The number of times each saved password has been used to log in. Does not
    include generated passwords. Recorded by iterating over stored passwords
    once per run. This information is persisted and synced.
  </summary>
</histogram>

<histogram base="true" name="PasswordManager.TotalAccounts">
  <owner>battre@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    The number of accounts stored in the password manager (across all sites),
    split by whether created by the user or generated by Chrome, and further by
    whether the user used sync with custom passphrase or not.
  </summary>
</histogram>

<histogram base="true" name="PasswordManager.TotalAccountsHiRes.WithScheme"
    units="accounts">
  <owner>engedy@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    The number of accounts stored in the password manager (across all sites) for
    origins with the scheme (e.g., HTTP, HTTPS, FTP) as given in the histogram
    suffix. For each scheme, the count is recorded once per browser start-up.
    (In case of multiple profiles, the counts are for the profile that first has
    a WebContents created.)
  </summary>
</histogram>

<histogram name="PasswordManager.UIDismissalReason"
    enum="PasswordManagerUIDismissalReason">
  <owner>vasilii@chromium.org</owner>
  <summary>
    Why was the password manager's UI (bubble or infobar) closed? Save and
    update UI are tracked separately.
  </summary>
</histogram>

<histogram name="PasswordManager.UpdatePasswordSubmissionEvent"
    enum="UpdatePasswordSubmissionEvent">
  <obsolete>
    Deprecated 03/2018 in favor of PasswordManager.UpdateUIDismissalReason.
  </obsolete>
  <owner>dvadym@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    The password submission event happened when the user changes their password
    on a website, say foo.com or types new password on a sign-in form for saved
    credential (which might mean that the password was changed in a different
    browser). The later case called password overriding. This histogram measures
    whether the user has any passwords saved in the Chrome password manager for
    foo.com or the password was overriden on sign-in form, and what action the
    user performed on the offered bubble. It's recorded when the bubble is
    closed.
  </summary>
</histogram>

<histogram name="PasswordManager.UpdateUIDismissalReason"
    enum="PasswordManagerUIDismissalReason">
  <owner>vasilii@chromium.org</owner>
  <summary>Why was the update password UI (bubble or infobar) closed?</summary>
</histogram>

<histogram name="PasswordManager.UsernameCorrectionFound"
    enum="BooleanUsernameCorrectionVote">
  <owner>kolos@chromium.org</owner>
  <summary>
    Chrome saves locally all fields a user typed on a sign-up form. If Chrome
    saved an incorrect username and the user changes the username on a sign-in
    form to a value of another field from the sign-up form, then Chrome uploads
    a username correction vote which points to the correct username field. This
    histogram measures how many correction votes are uploaded.
  </summary>
</histogram>

<histogram name="PasswordManager.UsernameDetectionMethod"
    enum="UsernameDetectionMethod">
  <owner>kolos@chromium.org</owner>
  <summary>
    Measures what method was used for username field detection in the renderer
    code. The metric may be recorded several times for page visit because it is
    recorded at every PasswordForm creation. If a site changes HTML attributes
    of fields or server-side predictions is received, different values can be
    recorded for the same form. If an outcome of HTML classifier or a
    server-side prediction coincides with the outcome of base heuristic, the
    metric points to base heuristic method.
  </summary>
</histogram>

<histogram name="PasswordManager.UserStoredPasswordWithInvalidSSLCert"
    enum="Boolean">
  <obsolete>
    Deprecated 07/2016 because this information is no longer stored in
    PasswordForm. See also http://crbug.com/413020.
  </obsolete>
  <owner>xunlu@chromium.org</owner>
  <owner>gcasto@chromium.org</owner>
  <summary>
    Whether saved password for HTTPS site had a valid SSL cert when the password
    was saved.
  </summary>
</histogram>

<histogram name="PasswordProtection.ChromeSettingsAction"
    enum="PasswordProtectionWarningAction">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records how a user interacts with the chrome://settings page that displays
    the password protection warning. Logged when the page is shown and when the
    user chooses to change their password on the page.
  </summary>
</histogram>

<histogram
    name="PasswordProtection.GaiaPasswordReusesBeforeGaiaPasswordChanged"
    units="reuses">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The number of Gaia password reuse warnings shown to user before user changes
    their password. Logged when we see that user has changed their Gaia
    password. The number of reuses will be reset to zero if current session of
    browser process ends. This count doesn't include the reuses that user marked
    as legitimate.
  </summary>
</histogram>

<histogram name="PasswordProtection.InterstitialAction"
    enum="PasswordProtectionWarningAction">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records how a user interacts with the password protection interstitial
    (a.k.a chrome://reset-password page). Logged when the interstitial is shown
    and when the user chooses to change their password.
  </summary>
</histogram>

<histogram name="PasswordProtection.InterstitialActionByUserNavigation"
    enum="PasswordProtectionWarningAction">
  <obsolete>
    Removed 2019-01 due to lack of usage. https://crbug.com/915894
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    When user manually navigates to chrome://reset-password page, records how
    this user interacts with this page. Logged when the interstitial is shown
    and when the user chooses to change their password.
  </summary>
</histogram>

<histogram name="PasswordProtection.InterstitialString"
    enum="PasswordProtectionInterstitialStringType">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the type of strings shown to the user on chrome://reset-password
    page. Logged when the interstitial in initialized.
  </summary>
</histogram>

<histogram name="PasswordProtection.ModalWarningDialogAction"
    enum="PasswordProtectionWarningAction">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records how a user interacts with the password protection modal warning
    dialog. Logged when the dialog is shown and when the user chooses to change
    their password, ignore warning, or navigate away.
  </summary>
</histogram>

<histogram base="true"
    name="PasswordProtection.NumberOfCachedVerdictBeforeShutdown" units="count">
  <obsolete>
    Deprecated since 07/2018 due to lack of usage.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Number of password protection verdicts stored in content settings of a
    profile before this profile is destructed.
  </summary>
</histogram>

<histogram
    name="PasswordProtection.NumberOfVerdictsMigratedDuringInitialization"
    units="verdicts">
  <obsolete>
    Deprecated in M71+.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    We start changing the way of caching password protection verdicts in M69.
    This histogram counts the number of verdicts migrated to the new way during
    initialization of PasswordProtectionService. It helps determine when we can
    remove migration code.
  </summary>
</histogram>

<histogram name="PasswordProtection.PageInfoAction"
    enum="PasswordProtectionWarningAction">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records how a user interacts with page info bubble that displays the
    password protection warning. Logged when such page info bubble is shown and
    when the user chooses to change their password, ignore warning, or mark site
    as legitimate via buttons on the page info bubble.
  </summary>
</histogram>

<histogram name="PasswordProtection.PageZoomFactor">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Reports the zoom factor for a login page, when the protected password is
    entered.
  </summary>
</histogram>

<histogram base="true" name="PasswordProtection.PasswordAlertModeOutcome"
    enum="PasswordProtectionRequestOutcome">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the outcome of the password alert mode, indicating if password alert
    warning is shown successfully or if it is skipped for some reason.
  </summary>
</histogram>

<histogram name="PasswordProtection.PasswordProtectionResponseOrErrorCode"
    enum="CombinedHttpResponseAndNetErrorCode">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Response or error codes for PasswordProtectionRequest. Logged after chrome
    receives response of PasswordProtectionRequest from Safe Browsing service.
  </summary>
</histogram>

<histogram name="PasswordProtection.PasswordReuseEventVerdict"
    enum="PasswordProtectionVerdict">
  <obsolete>
    Deprecated since May 12 2017. Replaced by
    PasswordProtection.Verdict.ProtectedPasswordEntry.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Verdict types returned by Safe Browsing server for password reuse events.
  </summary>
</histogram>

<histogram name="PasswordProtection.PasswordReuseSyncAccountType"
    enum="PasswordProtectionSyncAccountType">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    When password protection service detects a reuse of Chrome sync password,
    record the type of Chrome sync account on which the reuse happens (e.g.
    @gmail.com, @googlemail.com, or other dasher account).
  </summary>
</histogram>

<histogram name="PasswordProtection.ReferrerChainSize" units="referrers"
    expires_after="M71">
  <obsolete>
    Deprecated September 18 2018. This wasn't being used, and can be recreated
    on the backend if needed.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The referrer chain size of a password protection request. This is recorded
    when Chrome receives a verdict for this request.
  </summary>
</histogram>

<histogram name="PasswordProtection.RequestNetworkDuration" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The time it takes for PasswordProtectionService request. It is not recorded
    for requests that were canceled.
  </summary>
</histogram>

<histogram base="true" name="PasswordProtection.RequestOutcome"
    enum="PasswordProtectionRequestOutcome">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the outcome of the password protection request, indicating if
    request is sent out successfully or if it is skipped or canceled for some
    reason.
  </summary>
</histogram>

<histogram name="PasswordProtection.UnfamiliarLoginPageVerdict"
    enum="PasswordProtectionVerdict">
  <obsolete>
    Deprecated since May 12 2017. Replaced by
    PasswordProtection.Verdict.PasswordFieldOnFocus.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Verdict types returned by Safe Browsing server for unfamiliar login pages.
  </summary>
</histogram>

<histogram name="PasswordProtection.UserClickedThroughSafeBrowsingInterstitial"
    enum="BooleanClickedThroughSBInterstitial">
  <obsolete>
    Deprecated since 07/2018 due to lack of usage.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Whether the user has clicked through the Safe Browsing interstitial before
    the password protection ping is triggered on the same page. Logged right
    before password protection ping is sent.
  </summary>
</histogram>

<histogram name="PasswordProtection.Verdict" enum="PasswordProtectionVerdict">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Verdict types returned by Safe Browsing server for a password protection
    request. Request can be triggered when user focuses on a password field or
    enters a protected password.
  </summary>
</histogram>

<histogram name="PasswordProtection.VisualFeatureExtractionDuration" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The time it takes to extract the visual features of a login page before
    sending a PasswordProtectionRequest. Logged every time visual features are
    extracted (when an SBER user sends an On Focus ping).
  </summary>
</histogram>

<histogram
    name="PaymentRequest.CanMakePayment.NotUsed.WithShowEffectOnCompletion"
    enum="PaymentRequestFlowCompletionStatus">
  <obsolete>
    M62+ Part of PaymentRequest.Events
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <summary>
    Whether the flow was completed when CanMakePayment was not called by the
    merchant.
  </summary>
</histogram>

<histogram name="PaymentRequest.CanMakePayment.Usage"
    enum="CanMakePaymentUsage">
  <obsolete>
    M62+ Part of PaymentRequest.Events
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <summary>
    Whether the merchant used the CanMakePayment method during a Payment
    Request.
  </summary>
</histogram>

<histogram name="PaymentRequest.CanMakePayment.Used.EffectOnShow"
    enum="PaymentRequestCanMakePaymentEffectOnShow">
  <obsolete>
    M62+ Part of PaymentRequest.Events
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <summary>
    The effect of the CanMakePayment return value on whether Show was called.
  </summary>
</histogram>

<histogram
    name="PaymentRequest.CanMakePayment.Used.FalseWithShowEffectOnCompletion"
    enum="PaymentRequestFlowCompletionStatus">
  <obsolete>
    M62+ Part of PaymentRequest.Events
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <summary>
    Whether the flow was completed when CanMakePayment was called by the
    merchant and returned false.
  </summary>
</histogram>

<histogram
    name="PaymentRequest.CanMakePayment.Used.TrueWithShowEffectOnCompletion"
    enum="PaymentRequestFlowCompletionStatus">
  <obsolete>
    M62+ Part of PaymentRequest.Events
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <summary>
    Whether the flow was completed when CanMakePayment was called by the
    merchant and returned true.
  </summary>
</histogram>

<histogram name="PaymentRequest.CheckoutFunnel.Aborted"
    enum="PaymentRequestAbortReason">
  <owner>sebsg@chromium.org</owner>
  <summary>The reason that lead to an abort of the Payment Request.</summary>
</histogram>

<histogram name="PaymentRequest.CheckoutFunnel.Completed" enum="BooleanHit">
  <obsolete>
    M62+ Part of PaymentRequest.Events
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <summary>When the merchant has processed the user's Payment Request.</summary>
</histogram>

<histogram name="PaymentRequest.CheckoutFunnel.Initiated" enum="BooleanHit">
  <obsolete>
    M62+ Part of PaymentRequest.Events
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <summary>When a Payment Request gets initiated by the user.</summary>
</histogram>

<histogram name="PaymentRequest.CheckoutFunnel.NoShow"
    enum="PaymentRequestNoShowReason">
  <owner>sebsg@chromium.org</owner>
  <summary>
    The reason that leads to the Payment Request not being shown to the user.
  </summary>
</histogram>

<histogram name="PaymentRequest.CheckoutFunnel.PayClicked" enum="BooleanHit">
  <obsolete>
    M62+ Part of PaymentRequest.Events
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <summary>
    When the user clicks the &quot;pay&quot; button in the Payment Request UI.
  </summary>
</histogram>

<histogram name="PaymentRequest.CheckoutFunnel.ReceivedInstrumentDetails"
    enum="BooleanHit">
  <obsolete>
    M62+ Part of PaymentRequest.Events
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <summary>
    When the browser retrieves the instrument details from the payment app to
    complete a purchase.
  </summary>
</histogram>

<histogram name="PaymentRequest.CheckoutFunnel.Shown" enum="BooleanHit">
  <obsolete>
    M62+ Part of PaymentRequest.Events
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <summary>
    When the Payment Request UI gets shown after initialization.
  </summary>
</histogram>

<histogram name="PaymentRequest.CheckoutFunnel.SkippedShow"
    enum="BooleanSkipped">
  <obsolete>
    M62+ Part of PaymentRequest.Events
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <summary>
    When the Payment Request UI gets skipped to go directly to the payment app.
  </summary>
</histogram>

<histogram name="PaymentRequest.Events" units="bitfield value">
  <owner>sebsg@chromium.org</owner>
  <summary>
    A bitfield representing the different events that happened during the
    Payment Request.
  </summary>
</histogram>

<histogram name="PaymentRequest.NumberOfSelectionAdds">
  <owner>sebsg@chromium.org</owner>
  <summary>
    The number of times the user added an entry during a Payment Request.
  </summary>
</histogram>

<histogram name="PaymentRequest.NumberOfSelectionChanges">
  <owner>sebsg@chromium.org</owner>
  <summary>
    The number of times the user changed an entry during a Payment Request.
  </summary>
</histogram>

<histogram name="PaymentRequest.NumberOfSelectionEdits">
  <owner>sebsg@chromium.org</owner>
  <summary>
    The number of times the user edited an entry during a Payment Request.
  </summary>
</histogram>

<histogram name="PaymentRequest.NumberOfSuggestionsShown">
  <owner>sebsg@chromium.org</owner>
  <summary>
    The number of suggestions shown to the user during a payment request.
  </summary>
</histogram>

<histogram name="PaymentRequest.RequestedInformation"
    enum="PaymentRequestRequestedInformation">
  <obsolete>
    M62+ Included in PaymentRequest.Events
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <summary>
    Tracks what user information is required by merchants to complete a Payment
    Request.
  </summary>
</histogram>

<histogram name="PaymentRequest.SelectedPaymentMethod"
    enum="PaymentRequestPaymentMethods">
  <obsolete>
    M62+ Included in PaymentRequest.Events
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <summary>
    Tracks what payment method was used to complete a transaction in Payment
    Request.
  </summary>
</histogram>

<histogram
    name="PaymentRequest.UserDidNotHaveCompleteSuggestionsForEverything.EffectOnCompletion"
    enum="PaymentRequestFlowCompletionStatus">
  <obsolete>
    M62+ Part of PaymentRequest.Events
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <summary>
    Whether the flow was completed when the user did not have a complete
    suggestion offered for each requested information.
  </summary>
</histogram>

<histogram
    name="PaymentRequest.UserDidNotHaveInitialFormOfPayment.EffectOnCompletion"
    enum="PaymentRequestFlowCompletionStatus">
  <obsolete>
    Replaced by PaymentRequest.NumberOfSuggestionsShown.PaymentMethod on July
    19th 2017.
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <summary>
    Whether the flow was completed when the user did not have a a form of
    payment on file when the Payment Request was shown.
  </summary>
</histogram>

<histogram
    name="PaymentRequest.UserDidNotHaveSuggestionsForEverything.EffectOnCompletion"
    enum="PaymentRequestFlowCompletionStatus">
  <obsolete>
    M62+ Part of PaymentRequest.Events
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <summary>
    Whether the flow was completed when the user did not have suggestions
    offered for each requested information.
  </summary>
</histogram>

<histogram
    name="PaymentRequest.UserHadCompleteSuggestionsForEverything.EffectOnCompletion"
    enum="PaymentRequestFlowCompletionStatus">
  <obsolete>
    M62+ Part of PaymentRequest.Events
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <summary>
    Whether the flow was completed when the user had at least one complete
    suggestion offered for each requested information.
  </summary>
</histogram>

<histogram name="PaymentRequest.UserHadInitialFormOfPayment.EffectOnCompletion"
    enum="PaymentRequestFlowCompletionStatus">
  <obsolete>
    Replaced by PaymentRequest.NumberOfSuggestionsShown.PaymentMethod on July
    19th 2017.
  </obsolete>
  <owner>sebsg@chromium.org</owner>
  <summary>
    Whether the flow was completed when the user had a form of payment on file
    when the Payment Request was shown.
  </summary>
</histogram>

<histogram
    name="PaymentRequest.UserHadSuggestionsForEverything.EffectOnCompletion"
    enum="PaymentRequestFlowCompletionStatus">
  <owner>sebsg@chromium.org</owner>
  <summary>
    Whether the flow was completed when the user had suggestions offered for
    each requested information.
  </summary>
</histogram>

<histogram name="PDF.Actions" enum="ChromePDFViewerActions">
  <owner>hnakashima@chromium.org</owner>
  <summary>
    Tracks user actions in the PDF viewer. Logged when the document is opened
    and when one of the relevant user actions is taken, such as opening the
    bookmarks bar or setting the zoom mode to fit-to-page. The enum values that
    are named &quot;First&quot; are logged only once per document, so that we
    can measure in what percentage of documents a given action was performed at
    least once.
  </summary>
</histogram>

<histogram name="PDF.AnnotationType" enum="ChromePDFViewerAnnotationType">
  <owner>hnakashima@chromium.org</owner>
  <summary>
    Tracks documents opened in the PDF viewer that displayed one or more pages
    with the given annotation type.
  </summary>
</histogram>

<histogram name="PDF.DocumentFeature" enum="PDFFeatures">
  <owner>dbeam@chromium.org</owner>
  <summary>
    Tracks which features are used by documents opened in the PDF viewer, logged
    when the document finishes loading.
  </summary>
</histogram>

<histogram name="PDF.FileSizeInKB" units="KB">
  <owner>thestig@chromium.org</owner>
  <summary>The size of PDF documents opened in the PDF viewer.</summary>
</histogram>

<histogram name="PDF.FormType" enum="PDFFormTypes">
  <owner>rharrison@chromium.org</owner>
  <summary>
    Tracks what types of forms are present in PDF document, logged when the
    document finishes loading.
  </summary>
</histogram>

<histogram name="PDF.HasAttachment" enum="Boolean">
  <owner>hnakashima@chromium.org</owner>
  <summary>
    Measures if PDFs opened in the PDF viewer have attachments. This is logged
    whenever a document is opened in the PDF viewer.
  </summary>
</histogram>

<histogram name="PDF.IsFontSubstituted" enum="Boolean">
  <owner>npm@chromium.org</owner>
  <summary>
    Measures if PDFs opened in the PDF viewer require fonts to be substituted.
    This is logged whenever a document is opened in the PDF viewer.
  </summary>
</histogram>

<histogram name="PDF.IsLinearized" enum="Boolean">
  <owner>hnakashima@chromium.org</owner>
  <summary>
    Measures if PDFs opened in the PDF viewer are Linearized PDFs. This is
    logged whenever a document is opened in the PDF viewer.
  </summary>
</histogram>

<histogram name="PDF.IsTagged" enum="BooleanIsTagged">
  <owner>hnakashima@chromium.org</owner>
  <summary>
    Tracks documents opened in the PDF viewer that are Tagged PDFs.
  </summary>
</histogram>

<histogram name="PDF.LoadStatus" enum="ChromePDFViewerLoadStatus">
  <owner>tommycli@chromium.org</owner>
  <summary>
    Tracks what happens when Chrome tries to load a PDF. This metric tracks all
    cases, but is focused on measuring failed PDF embeds, which occur if the
    user is on Android, or if PDF plugin is disabled.
  </summary>
</histogram>

<histogram name="PDF.PageCount" units="pages">
  <owner>hnakashima@chromium.org</owner>
  <summary>
    Tracks the number of pages in PDF documents opened in the PDF viewer.
  </summary>
</histogram>

<histogram name="Pepper.BrokerAction" enum="PepperBrokerAction">
  <owner>raymes@chromium.org</owner>
  <summary>
    Counts various actions related to the Pepper Broker interface.
  </summary>
</histogram>

<histogram name="Pepper.Graphics3DHasShareGroup" units="BooleanShareGroup">
  <owner>jbauman@chromium.org</owner>
  <summary>
    True if a non-flash Pepper Graphics3D context has a share group.
  </summary>
</histogram>

<histogram name="Pepper.InterfaceUsed" enum="PepperInterface">
  <owner>bbudge@chromium.org</owner>
  <owner>raymes@chromium.org</owner>
  <summary>
    The number of out-of-process plugin processes that have loaded a particular
    PPB interface version.
  </summary>
</histogram>

<histogram name="Pepper.PluginContextSecurity.TCPConnect" enum="BooleanSecure">
  <owner>raymes@chromium.org</owner>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    Whether a Pepper TCP connect attempt comes from a plugin in a secure or an
    insecure origin.
  </summary>
</histogram>

<histogram name="Pepper.PluginContextSecurity.UDPBind" enum="BooleanSecure">
  <owner>raymes@chromium.org</owner>
  <owner>rsleevi@chromium.org</owner>
  <summary>
    Whether a Pepper UDP bind attempt comes from a plugin in a secure or an
    insecure origin.
  </summary>
</histogram>

<histogram name="Pepper.SecureOrigin.MediaStreamRequest" enum="BooleanSecure">
  <obsolete>
    Deprecated as of 8/2017.
  </obsolete>
  <owner>raymes@chromium.org</owner>
  <summary>
    Whether a Pepper media stream request (mic/cam access) comes from a plugin
    in a secure or an insecure origin.
  </summary>
</histogram>

<histogram name="Performance.MeasureParameter.EndMark"
    enum="PerformanceMeasureParameterType" expires_after="2019-06-01">
  <owner>maxlg@chromium.org</owner>
  <summary>
    The count of possible incoming values to the endMark parameter in
    performance.measure(). The purpose is to investigate how much the change of
    API of User Timing L3 will impact the real world use cases. This histogram
    was deprecated in 05/2018 and re-reenabled in 11/2018. The re-enabled
    histogram adds the counting of undefined, null, number and unprovided, to
    the original navigation-timing names, object and string. This value is
    recorded at each call to performance.measure().
  </summary>
</histogram>

<histogram name="Performance.MeasureParameter.StartMark"
    enum="PerformanceMeasureParameterType" expires_after="2019-06-01">
  <owner>maxlg@chromium.org</owner>
  <summary>
    The count of possible incoming values to the startMark parameter in
    performance.measure(). The purpose is to investigate how much the change of
    API of User Timing L3 will impact the real world use cases. This histogram
    was deprecated in 05/2018 and re-reenabled in 11/2018. The re-enabled
    histogram adds the counting of undefined, null, number and unprovided, to
    the original navigation-timing names, object and string. This value is
    recorded at each call to performance.measure().
  </summary>
</histogram>

<histogram name="PerformanceMonitor.AverageCPU" units="PercentCPUUsage">
  <owner>oysteine@chromium.org</owner>
  <summary>
    Average CPU utilization of a process, read out at each two-minute interval.
    The utilization is in the 0-100% range per CPU, which is then summed up.
    I.e. a quadcore system fully loaded would read as 400%.
  </summary>
</histogram>

<histogram name="PerformanceMonitor.AverageDisk" units="BytesPerSecond">
  <owner>etienneb@chromium.org</owner>
  <owner>oysteine@chromium.org</owner>
  <summary>
    Average disk utilization of a process, recorded at every two-minute
    interval. The amount of data transferred (Total I/O bytes per second) for a
    given process.
  </summary>
</histogram>

<histogram name="PerformanceMonitor.HighCPU" enum="BooleanHit">
  <owner>oysteine@chromium.org</owner>
  <summary>
    The number of times a process has continuously stayed above a certain
    threshold of CPU utilization over a certain time period (currently set to
    two minutes).
  </summary>
</histogram>

<histogram name="PerformanceMonitor.IdleWakeups" units="WakeupsPerSecond">
  <owner>lgrey@chromium.org</owner>
  <summary>
    The average CPU idle wakeups per second, sampled every two minutes.
  </summary>
</histogram>

<histogram name="PerformanceMonitor.PackageExitIdleWakeups"
    units="WakeupsPerSecond">
  <owner>lgrey@chromium.org</owner>
  <summary>
    (Mac only) The average package exit idle wakeups per second, 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.
  </summary>
</histogram>

<histogram name="PerformanceMonitor.SystemMonitor.DiskIdleTime" units="%"
    expires_after="2019-07-01">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    Average percentage of time during which the disk has been idle, logged at
    regular intervals. If the system has multiple disks then this is the average
    value for all of them. Windows only.
  </summary>
</histogram>

<histogram name="PerformanceMonitor.SystemMonitor.FreePhysMemory" units="MB"
    expires_after="2019-07-01">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The amount of free physical memory available, logged at regular intervals.
    Windows only.
  </summary>
</histogram>

<histogram name="Permissions.Action" enum="PermissionAction">
  <owner>dominickn@chromium.org</owner>
  <owner>engedy@chromium.org</owner>
  <owner>hkamila@chromium.org</owner>
  <owner>mlamouri@chromium.org</owner>
  <summary>
    Tracks whether a permission was granted, rejected, etc. The suffix of the
    histogram indicates which particular permission.
  </summary>
</histogram>

<histogram name="Permissions.Action.InsecureOrigin" enum="PermissionAction">
  <owner>dominickn@chromium.org</owner>
  <owner>engedy@chromium.org</owner>
  <owner>hkamila@chromium.org</owner>
  <owner>mlamouri@chromium.org</owner>
  <summary>
    Tracks whether a permission was granted, rejected, etc on an insecure
    origin. The suffix of the histogram indicates which particular permission.
  </summary>
</histogram>

<histogram name="Permissions.Action.SecureOrigin" enum="PermissionAction">
  <owner>dominickn@chromium.org</owner>
  <owner>engedy@chromium.org</owner>
  <owner>hkamila@chromium.org</owner>
  <owner>mlamouri@chromium.org</owner>
  <summary>
    Tracks whether a permission was granted, rejected, etc on a secure origin.
    The suffix of the histogram indicates which particular permission.
  </summary>
</histogram>

<histogram name="Permissions.AutoBlocker.EmbargoPromptSuppression"
    enum="PermissionEmbargoStatus">
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    For every permission request that would show a prompt to the user, this
    metric tracks whether the request is suppressed by embargo (and the source
    of that embargo), or whether there is no embargo and the prompt is shown.
    This is the proportion of permission prompts that the user would have seen
    that have been blocked due to embargo.

    If the (origin, permission) pair was previously placed under embargo, no
    prompt is displayed and the reason for embargo is recorded. Otherwise, the
    prompt is shown and a no embargo reason is recorded.
  </summary>
</histogram>

<histogram name="Permissions.AutoBlocker.EmbargoStatus"
    enum="PermissionEmbargoStatus">
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    Tracks the reason that an (origin, permission) pair has been placed under
    embargo (blocked from making requests for that permission for a period of
    time). This is triggered when a permission is placed under embargo for
    blacklisting (once Safe Browsing has returned a result), when a permission
    prompt has been shown and it is placed under embargo for repeated
    dismissals, or when a permission prompt is shown and not embargoed.
  </summary>
</histogram>

<histogram name="Permissions.AutoBlocker.SafeBrowsingResponse"
    enum="SafeBrowsingResponse">
  <obsolete>
    Permission blacklisting was removed in M67.
  </obsolete>
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    Tracks the response (if received) from Safe Browsing when the API blacklist
    is queried for an (origin, permission) pair. The response could be that the
    origin was blacklisted, not blacklisted, or Safe Browsing timed out before a
    response was received.
  </summary>
</histogram>

<histogram name="Permissions.AutoBlocker.SafeBrowsingResponseTime" units="ms">
  <obsolete>
    Permission blacklisting was removed in M67.
  </obsolete>
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    Records the elapsed time between the client sending a request to Safe
    Browsing and receiving a result, or the maximum wait time is exceeded and
    Safe Browsing is deemed to have timed out.
  </summary>
</histogram>

<histogram name="Permissions.BatteryLevel.Accepted.Geolocation" units="%">
  <owner>timloh@chromium.org</owner>
  <summary>
    Battery percentage when a geolocation permission prompt was accepted on
    Android.
  </summary>
</histogram>

<histogram name="Permissions.BatteryLevel.Accepted.LocationSettingsDialog"
    units="%">
  <owner>timloh@chromium.org</owner>
  <summary>
    Battery percentage when a location settings dialog was accepted.
  </summary>
</histogram>

<histogram name="Permissions.BatteryLevel.Denied.Geolocation" units="%">
  <owner>timloh@chromium.org</owner>
  <summary>
    Battery percentage when a geolocation permission prompt was denied on
    Android.
  </summary>
</histogram>

<histogram name="Permissions.BatteryLevel.Denied.LocationSettingsDialog"
    units="%">
  <owner>timloh@chromium.org</owner>
  <summary>
    Battery percentage when a location settings dialog was denied.
  </summary>
</histogram>

<histogram name="Permissions.BatteryLevel.Dismissed.Geolocation" units="%">
  <owner>timloh@chromium.org</owner>
  <summary>
    Battery percentage when a geolocation permission prompt was dismissed on
    Android.
  </summary>
</histogram>

<histogram name="Permissions.Engagement.Accepted" units="%">
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <owner>timloh@chromium.org</owner>
  <summary>
    Tracks the engagement score for sites where permission prompts are accepted.
  </summary>
</histogram>

<histogram name="Permissions.Engagement.Denied" units="%">
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <owner>timloh@chromium.org</owner>
  <summary>
    Tracks the engagement score for sites where permission prompts are denied.
  </summary>
</histogram>

<histogram name="Permissions.Engagement.Dismissed" units="%">
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <owner>timloh@chromium.org</owner>
  <summary>
    Tracks the engagement score for sites where permission prompts are
    dismissed.
  </summary>
</histogram>

<histogram name="Permissions.Engagement.Ignored" units="%">
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <owner>timloh@chromium.org</owner>
  <summary>
    Tracks the engagement score for sites where permission prompts are ignored.
  </summary>
</histogram>

<histogram name="Permissions.Prompt.Accepted" enum="PermissionRequestType">
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    Tracks the permission bubbles (merged and non-merged) that are accepted.
    Merged bubbles are considered accepted if all permissions are allowed.
  </summary>
</histogram>

<histogram name="Permissions.Prompt.Accepted.Persisted" enum="BooleanPersisted">
  <obsolete>
    Persist toggle experiments ran from M56 to M59.
  </obsolete>
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    For each granted permission prompt displayed with a persistence toggle
    (remember my decision), records whether the persistence toggle was enabled
    (persist) or not enabled (don't persist).
  </summary>
</histogram>

<histogram name="Permissions.Prompt.Accepted.PriorDismissCount">
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    This metric, recorded at the time of a permission prompt accept, records the
    total number of prompt dismissal events for this origin since the last time
    the user cleared their history or site data and prior to the accept. The
    suffix of the histogram indicates which particular permission.
  </summary>
</histogram>

<histogram name="Permissions.Prompt.Accepted.PriorIgnoreCount">
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    This metric, recorded at the time of a permission prompt accept, records the
    total number of prompt ignore events for this origin since the last time the
    user cleared their history or site data and prior to the accept. The suffix
    of the histogram indicates which particular permission.
  </summary>
</histogram>

<histogram name="Permissions.Prompt.Denied" enum="PermissionRequestType">
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    Tracks the permission bubbles (merged and non-merged) that are denied.
    Merged bubbles are considered denied if any permission is denied.
  </summary>
</histogram>

<histogram name="Permissions.Prompt.Denied.Persisted" enum="BooleanPersisted">
  <obsolete>
    Persist toggle experiments ran from M56 to M59.
  </obsolete>
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    For each denied permission prompt displayed with a persistence toggle
    (remember my decision), records whether the persistence toggle was enabled
    (persist) or not enabled (don't persist).
  </summary>
</histogram>

<histogram name="Permissions.Prompt.Denied.PriorDismissCount">
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    This metric, recorded at the time of a permission prompt deny, records the
    total number of prompt dismissal events for this origin since the last time
    the user cleared their history or site data and prior to the accept. The
    suffix of the histogram indicates which particular permission.
  </summary>
</histogram>

<histogram name="Permissions.Prompt.Denied.PriorIgnoreCount">
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    This metric, recorded at the time of a permission prompt deny, records the
    total number of prompt ignore events for this origin since the last time the
    user cleared their history or site data and prior to the accept. The suffix
    of the histogram indicates which particular permission.
  </summary>
</histogram>

<histogram name="Permissions.Prompt.DismissCount">
  <obsolete>
    Renamed to Permissions.Prompt.Dismissed.PriorDismissCount on 17 August 2016.
  </obsolete>
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    This metric, recorded at the time of a permission prompt dismissal, records
    the total number of prompt dismissal events for this origin since the last
    time the user cleared their history or site data, inclusive of the current
    dismissal. Every event in a bucket larger than 1 in this histogram will also
    have an event in each smaller bucket. The suffix of the histogram indicates
    which particular permission.
  </summary>
</histogram>

<histogram name="Permissions.Prompt.Dismissed.PriorDismissCount">
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    This metric, recorded at the time of a permission prompt dismiss, records
    the total number of prompt dismissal events for this origin since the last
    time the user cleared their history or site data and prior to the dismiss.
    The suffix of the histogram indicates which particular permission.
  </summary>
</histogram>

<histogram name="Permissions.Prompt.Dismissed.PriorIgnoreCount">
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    This metric, recorded at the time of a permission prompt dismiss, records
    the total number of prompt ignore events for this origin since the last time
    the user cleared their history or site data and prior to the dismiss. The
    suffix of the histogram indicates which particular permission.
  </summary>
</histogram>

<histogram name="Permissions.Prompt.IgnoreCount">
  <obsolete>
    Renamed to Permissions.Prompt.Dismissed.PriorDismissCount on 17 August 2016.
  </obsolete>
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    This metric, recorded at the time of a permission prompt ignore, records the
    total number of prompt ignore events for this origin since the last time the
    user cleared their history or site data, inclusive of the current ignore.
    Every event in a bucket larger than 1 in this histogram will also have an
    event in each smaller bucket. The suffix of the histogram indicates which
    particular permission.
  </summary>
</histogram>

<histogram name="Permissions.Prompt.Ignored.PriorDismissCount">
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    This metric, recorded at the time of a permission prompt ignore, records the
    total number of prompt dismissal events for this origin since the last time
    the user cleared their history or site data and prior to the ignore. The
    suffix of the histogram indicates which particular permission.
  </summary>
</histogram>

<histogram name="Permissions.Prompt.Ignored.PriorIgnoreCount">
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    This metric, recorded at the time of a permission prompt ignore, records the
    total number of prompt ignore events for this origin since the last time the
    user cleared their history or site data and prior to the ignore. The suffix
    of the histogram indicates which particular permission.
  </summary>
</histogram>

<histogram name="Permissions.Prompt.MergedBubbleAccepted"
    enum="PermissionRequestType">
  <obsolete>
    Redundant since M61 (bug 728483) as we now only merge Mic+Camera. The same
    counts are available in Permissions.Prompt.Accepted.
  </obsolete>
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    Tracks acceptance of permission bubble request types that have been merged
    into coalesced bubbles.
  </summary>
</histogram>

<histogram name="Permissions.Prompt.MergedBubbleDenied"
    enum="PermissionRequestType">
  <obsolete>
    Redundant since M61 (bug 728483) as we now only merge Mic+Camera. The same
    counts are available in Permissions.Prompt.Denied.
  </obsolete>
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    Tracks denial of permission bubble request types that have been merged into
    coalesced bubbles.
  </summary>
</histogram>

<histogram name="Permissions.Prompt.MergedBubbleTypes"
    enum="PermissionRequestType">
  <obsolete>
    Redundant since M61 (bug 728483) as we now only merge Mic+Camera. The same
    counts are available in Permissions.Prompt.Shown.
  </obsolete>
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    Tracks the permission bubble request types that are being merged into
    coalesced bubbles.
  </summary>
</histogram>

<histogram name="Permissions.Prompt.RequestsPerPrompt">
  <obsolete>
    Redundant since M61 (bug 728483) as we now only merge Mic+Camera. The same
    counts are available in Permissions.Prompt.Shown.
  </obsolete>
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    How many permission requests each permissions prompt shown to the user
    contains.
  </summary>
</histogram>

<histogram name="Permissions.Prompt.Shown" enum="PermissionRequestType">
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    Tracks how many times permission prompts are shown to users.
  </summary>
</histogram>

<histogram name="Permissions.Requested.CrossOrigin" enum="PermissionStatus">
  <obsolete>
    Deprecated 02/2017, no longer used
  </obsolete>
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <owner>keenanb@google.com</owner>
  <owner>jww@chromium.org</owner>
  <summary>
    The embedder's permission setting at the time of a cross-origin iframe
    permission request for a given permission type. See the corresponding
    histogram suffixes.

    A request is when a website makes a permission request and the user has the
    permission set to prompt (i.e. not blocked or allowed).

    Note this is probably not the metric you want - it does not correspond to
    the total number of times websites request a permission. Also, because
    specific permissions have code that can automatically block or grant
    permissions based on things like incognito, installed extensions etc., this
    does also not correspond to the number of times users are prompted to allow
    permissions.

    See https://crbug.com/638076 for more details.
  </summary>
</histogram>

<histogram name="Permissions.Requested.SameOrigin" enum="PermissionType">
  <obsolete>
    Deprecated 02/2017, no longer used
  </obsolete>
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <owner>keenanb@google.com</owner>
  <owner>jww@chromium.org</owner>
  <summary>
    The permission type (geolocation, and such) of a same-origin permission
    request.

    A request is when a website makes a permission request and the user has the
    permission set to prompt (i.e. not blocked or allowed).

    Note this is probably not the metric you want - it does not correspond to
    the total number of times websites request a permission. Also, because
    specific permissions have code that can automatically block or grant
    permissions based on things like incognito, installed extensions etc., this
    does also not correspond to the number of times users are prompted to allow
    permissions.

    See https://crbug.com/638076 for more details.
  </summary>
</histogram>

<histogram name="PhysicalWeb.ActivityReferral"
    enum="PhysicalWebActivityReferer">
  <obsolete>
    Obsolete 4/2018, Physical Web is disabled (crbug.com/826540).
  </obsolete>
  <owner>cco3@chromium.org</owner>
  <owner>mattreynolds@chromium.org</owner>
  <owner>mmocny@chromium.org</owner>
  <summary>
    Referer used by user to reach the main Physical Web Activity.
  </summary>
</histogram>

<histogram name="PhysicalWeb.InitialState.IosChrome"
    enum="PhysicalWebInitialStateIosChrome">
  <obsolete>
    Obsolete 4/2018, Physical Web is disabled (crbug.com/826540).
  </obsolete>
  <owner>cco3@chromium.org</owner>
  <owner>mattreynolds@chromium.org</owner>
  <owner>mmocny@chromium.org</owner>
  <summary>Initial state of the Physical Web in Chrome for iOS.</summary>
</histogram>

<histogram name="PhysicalWeb.ReferralDelay.OptInNotification" units="ms">
  <obsolete>
    Deprecated 01/2017, no longer used
  </obsolete>
  <owner>cco3@chromium.org</owner>
  <owner>mattreynolds@chromium.org</owner>
  <owner>mmocny@chromium.org</owner>
  <summary>
    Time between the most recent opt in notification update and when the user
    arrives at the ListUrlsActivity.
  </summary>
</histogram>

<histogram name="PhysicalWeb.ReferralDelay.StandardNotification" units="ms">
  <obsolete>
    Deprecated 01/2017, no longer used
  </obsolete>
  <owner>cco3@chromium.org</owner>
  <owner>mattreynolds@chromium.org</owner>
  <owner>mmocny@chromium.org</owner>
  <summary>
    Time between the most recent standard notification update and when the user
    arrives at the ListUrlsActivity.
  </summary>
</histogram>

<histogram name="PhysicalWeb.ResolveTime.Background" units="ms">
  <obsolete>
    Obsolete 4/2018, Physical Web is disabled (crbug.com/826540).
  </obsolete>
  <owner>cco3@chromium.org</owner>
  <owner>mattreynolds@chromium.org</owner>
  <owner>mmocny@chromium.org</owner>
  <summary>
    Round trip time to the metadata server for a Physical Web URL resolution
    which the client requests during a background scan.
  </summary>
</histogram>

<histogram name="PhysicalWeb.ResolveTime.Foreground" units="ms">
  <obsolete>
    Obsolete 4/2018, Physical Web is disabled (crbug.com/826540).
  </obsolete>
  <owner>cco3@chromium.org</owner>
  <owner>mattreynolds@chromium.org</owner>
  <owner>mmocny@chromium.org</owner>
  <summary>
    Round trip time to the metadata server for a Physical Web URL resolution
    which the client requests during a foreground scan, that is not explicitly
    requested via a refresh.
  </summary>
</histogram>

<histogram name="PhysicalWeb.ResolveTime.Refresh" units="ms">
  <obsolete>
    Obsolete 4/2018, Physical Web is disabled (crbug.com/826540).
  </obsolete>
  <owner>cco3@chromium.org</owner>
  <owner>mattreynolds@chromium.org</owner>
  <owner>mmocny@chromium.org</owner>
  <summary>
    Round trip time to the metadata server for a Physical Web URL resolution
    which the client requests during a foreground scan, that is explicitly
    requested via a refresh.
  </summary>
</histogram>

<histogram name="PhysicalWeb.RoundTripTimeMilliseconds" units="ms">
  <obsolete>
    Obsolete 4/2018, Physical Web is disabled (crbug.com/826540).
  </obsolete>
  <owner>olivierrobin@chromium.org</owner>
  <summary>Round trip time to the metadata server for Physical web.</summary>
</histogram>

<histogram name="PhysicalWeb.State.Bluetooth" enum="BluetoothStatus">
  <obsolete>
    Obsolete 4/2018, Physical Web is disabled (crbug.com/826540).
  </obsolete>
  <owner>cco3@chromium.org</owner>
  <owner>mattreynolds@chromium.org</owner>
  <owner>mmocny@chromium.org</owner>
  <summary>Whether bluetooth is on, off, or unknown.</summary>
</histogram>

<histogram name="PhysicalWeb.State.DataConnectionActive" enum="BooleanActive">
  <obsolete>
    Obsolete 4/2018, Physical Web is disabled (crbug.com/826540).
  </obsolete>
  <owner>cco3@chromium.org</owner>
  <owner>mattreynolds@chromium.org</owner>
  <owner>mmocny@chromium.org</owner>
  <summary>Whether the data connection is active.</summary>
</histogram>

<histogram name="PhysicalWeb.State.LocationPermission" enum="BooleanAccepted">
  <obsolete>
    Obsolete 4/2018, Physical Web is disabled (crbug.com/826540).
  </obsolete>
  <owner>cco3@chromium.org</owner>
  <owner>mattreynolds@chromium.org</owner>
  <owner>mmocny@chromium.org</owner>
  <summary>Whether location permission has been accepted.</summary>
</histogram>

<histogram name="PhysicalWeb.State.LocationServices" enum="BooleanEnabled">
  <obsolete>
    Obsolete 4/2018, Physical Web is disabled (crbug.com/826540).
  </obsolete>
  <owner>cco3@chromium.org</owner>
  <owner>mattreynolds@chromium.org</owner>
  <owner>mmocny@chromium.org</owner>
  <summary>Whether location services are enabled.</summary>
</histogram>

<histogram name="PhysicalWeb.State.Preference"
    enum="PhysicalWebPreferenceStatus">
  <obsolete>
    Obsolete 4/2018, Physical Web is disabled (crbug.com/826540).
  </obsolete>
  <owner>cco3@chromium.org</owner>
  <owner>mattreynolds@chromium.org</owner>
  <owner>mmocny@chromium.org</owner>
  <summary>
    Whether the preference is on, off, or if the user is in an onboarding state
    when Chrome first starts up.
  </summary>
</histogram>

<histogram name="PhysicalWeb.TotalUrls.OnInitialDisplay" units="urls">
  <obsolete>
    Obsolete 4/2018, Physical Web is disabled (crbug.com/826540).
  </obsolete>
  <owner>cco3@chromium.org</owner>
  <owner>mattreynolds@chromium.org</owner>
  <owner>mmocny@chromium.org</owner>
  <summary>
    The number of URLs displayed to a user when a list of nearby URLs is first
    displayed.
  </summary>
</histogram>

<histogram name="PhysicalWeb.TotalUrls.OnRefresh" units="urls">
  <obsolete>
    Obsolete 4/2018, Physical Web is disabled (crbug.com/826540).
  </obsolete>
  <owner>cco3@chromium.org</owner>
  <owner>mattreynolds@chromium.org</owner>
  <owner>mmocny@chromium.org</owner>
  <summary>
    The number of URLs displayed to a user when a list of nearby URLs is
    displayed after refreshing.
  </summary>
</histogram>

<histogram name="PhysicalWeb.WebUI.ListViewUrlPosition" units="selections">
  <obsolete>
    Obsolete 4/2018, Physical Web is disabled (crbug.com/826540).
  </obsolete>
  <owner>cco3@chromium.org</owner>
  <owner>mattreynolds@chromium.org</owner>
  <owner>mmocny@chromium.org</owner>
  <summary>
    Count of how many times the user selected a nearby URL at the specified
    index in the Physical Web WebUI list view (zero-based). Capped at 50.
  </summary>
</histogram>

<histogram name="PictureInPictureWindow.ButtonPressed"
    enum="OverlayWindowControl">
  <owner>fbeaufort@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records Picture-in-Picture window control buttons pressed by user (basically
    everything except user tap gestures).
  </summary>
</histogram>

<histogram name="PictureInPictureWindow.TapGesture" enum="OverlayWindowControl">
  <owner>fbeaufort@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records Picture-in-Picture window control user tap gestures.
  </summary>
</histogram>

<histogram name="Platform.AnyCrashesDaily" units="count per day">
  <owner>semenzato@chromium.org</owner>
  <owner>bsimonnet@chromium.org</owner>
  <summary>
    Count of crashes (user, kernel, and unclean shutdowns) during the previous
    day, or the most recent day the device was in use. Reported at most once a
    day.
  </summary>
</histogram>

<histogram name="Platform.AnyCrashesWeekly" units="count per week">
  <owner>semenzato@chromium.org</owner>
  <owner>bsimonnet@chromium.org</owner>
  <summary>
    Count of crashes (user, kernel, and unclean shutdowns) during the previous
    epoch-week, or the most recent epoch-week the device was in use. Reported at
    most once a week. Epoch-weeks divide the time in 7-day intervals starting at
    the UNIX epoch.
  </summary>
</histogram>

<histogram name="Platform.AsvGroup" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome OS (ARM Chromebooks using Exynos 5250 only) Adaptive Support Voltage
    Group, recorded once per bootup. Indicates which &quot;bin&quot; the SoC is
    part of, which sets the voltage that different rails on the system will run
    at. The values 0-11 are valid. A value of 12 indicates an error parsing
    dmesg and should be investigated. See also Platform.LotIdEnum.
  </summary>
</histogram>

<histogram name="Platform.BatteryAbsent" enum="BooleanAbsent">
  <owner>cernekee@chromium.org</owner>
  <summary>
    Indicates whether the kernel's ACPI Smart Battery System driver logged an
    error trying to find the battery on boot.
  </summary>
</histogram>

<histogram name="Platform.BootMode.DevSwitch"
    enum="Platform.BootMode.SwitchStatus">
  <owner>mnissler@chromium.org</owner>
  <summary>
    Indicates the status of the developer switch on Chrome OS hardware. The
    developer switch allows users to run their own code on the device.
  </summary>
</histogram>

<histogram name="Platform.BootMode.FirmwareWriteProtect"
    enum="Platform.BootMode.FirmwareWriteProtect">
  <owner>mnissler@chromium.org</owner>
  <summary>
    On Chrome OS hardware, indicates whether flash write protection is enabled
    for the firmware indicated by the histogram suffix.
  </summary>
</histogram>

<histogram name="Platform.BootMode.WriteProtectSwitch"
    enum="Platform.BootMode.SwitchStatus">
  <owner>mnissler@chromium.org</owner>
  <summary>
    Indicates the status of the hardware write protect switch on Chrome OS
    hardware. The write protect switch protects firmware from being rewritten.
  </summary>
</histogram>

<histogram name="Platform.BootSectorsRead">
  <owner>sonnyrao@chromium.org</owner>
  <summary>
    Chrome OS number of disk sectors read at boot from kernel start to
    login-prompt-ready.
  </summary>
</histogram>

<histogram name="Platform.BootSectorsWritten">
  <owner>sonnyrao@chromium.org</owner>
  <summary>
    Chrome OS number of disk sectors written at boot from kernel start to
    login-prompt-ready.
  </summary>
</histogram>

<histogram name="Platform.Cast.MeminfoMemAvailable">
  <obsolete>
    Removed 11/2018 in favor of Platform.Cast.MeminfoMemAvailable2 with a larger
    range.
  </obsolete>
  <owner>halliwell@chromium.org</owner>
  <summary>
    /proc/meminfo's 'MemAvailable' in Mbytes. Collected on Cast devices with
    kernel version 3.14 and above and capped at 500.
  </summary>
</histogram>

<histogram name="Platform.Cast.MeminfoMemAvailable2" units="MiB"
    expires_after="2019-11-30">
  <owner>halliwell@chromium.org</owner>
  <summary>
    /proc/meminfo's 'MemAvailable' in MiB. Collected every 5s on Cast devices
    with kernel version 3.14 and above and capped at 2000.
  </summary>
</histogram>

<histogram name="Platform.Cast.MeminfoMemFreeDerived">
  <obsolete>
    Removed 11/2018 in favor of Platform.Cast.MeminfoMemFreeDerived2 with a
    larger range.
  </obsolete>
  <owner>halliwell@chromium.org</owner>
  <summary>
    free + buffers + cache memory in Mbytes on Cast devices, capped at 500.
  </summary>
</histogram>

<histogram name="Platform.Cast.MeminfoMemFreeDerived2" units="MiB"
    expires_after="2019-11-30">
  <owner>halliwell@chromium.org</owner>
  <summary>
    Collect free + buffers + cache memory in MiB every 5s on Cast devices,
    capped at 2000.
  </summary>
</histogram>

<histogram name="Platform.CompressedSwapSize" units="MB">
  <owner>sonnyrao@chromium.org</owner>
  <summary>
    Chrome OS size of allocated swap area in megabytes (before compression)
  </summary>
</histogram>

<histogram name="Platform.CpuFrequencyThermalScaling" units="%">
  <owner>sonnyrao@chromium.org</owner>
  <summary>
    CPU frequency as percent of the baseline frequency, sampled every 30s. This
    may be throttled down from 100% due to power dissipation issues (too high
    temperature). It may also be throttled up (turbo), but the kernel does not
    report the actual turbo frequency, so we put such samples in the 101%
    bucket.
  </summary>
</histogram>

<histogram name="Platform.CpuUsage" units="%">
  <owner>sonnyrao@chromium.org</owner>
  <owner>cast-analytics@google.com</owner>
  <summary>
    Peak total (single core) CPU usage for the last sample interval. The sample
    interval may vary from seconds to several minutes.
  </summary>
</histogram>

<histogram name="Platform.Cr50.BoardIdFlags" enum="Cr50BoardIdFlags">
  <owner>vbendeb@chromium.org</owner>
  <summary>
    A sparse histogram of values of Board ID flags programmed in H1 devices in
    the field. Board ID flags is a 32 bit field, and while there only are a few
    expected values, conceivably any bit combination could be encountered.
  </summary>
</histogram>

<histogram name="Platform.Cr50.BoardIdOfRlzMismatch" enum="Cr50CrosRlzCodes">
  <owner>vbendeb@chromium.org</owner>
  <summary>
    A sparse histogram of values indexed by 4 byte Board ID code programmed in
    H1 reported by devices where there is a mismatch between the RLZ code and
    the Board ID value programmed in the H1.
  </summary>
</histogram>

<histogram name="Platform.Cr50.MatchingBoardId" enum="Cr50CrosRlzCodes">
  <owner>vbendeb@chromium.org</owner>
  <summary>
    A sparse histogram of values indexed by 4 byte Board ID code programmed in
    H1, reported by devices where there is no mismatch between the RLZ code and
    the Board ID value.
  </summary>
</histogram>

<histogram name="Platform.Cr50.RlzOfBoardIdMismatch" enum="Cr50CrosRlzCodes">
  <owner>vbendeb@chromium.org</owner>
  <summary>
    A sparse histogram of values indexed by 4 byte RLZ code reported by devices
    where there is a mismatch between the RLZ code and the Board ID value
    programmed in the H1. Since RLZ code could be misprogrammed, a sparse
    histogram is used to allow keeping track of outliers.
  </summary>
</histogram>

<histogram name="Platform.CrOSEvent" enum="CrosEventEnum">
  <owner>semenzato@chromium.org</owner>
  <owner>jwerner@chromium.org</owner>
  <owner>vapier@chromium.org</owner>
  <summary>
    Generic event of interest from Chrome OS. Intended mainly to help assess the
    frequency of rare error conditions.
  </summary>
</histogram>

<histogram name="Platform.Crouton.Started" enum="Platform.Crouton.Started">
  <owner>drinkcat@chromium.org</owner>
  <summary>
    Detects presence of /run/crouton, indicating that crouton has been started
    since the previous boot. Value 0/&quot;Total count&quot; is reported on
    boot, 1/&quot;Started&quot; is reported after the file presence is detected
    (checked periodically).
  </summary>
</histogram>

<histogram name="Platform.CumulativeCpuTime" units="seconds">
  <owner>semenzato@chromium.org</owner>
  <owner>bsimonnet@chromium.org</owner>
  <summary>
    Total CPU time accumulated since the last version update. Reported at most
    once a day.
  </summary>
</histogram>

<histogram name="Platform.CumulativeUseTime" units="seconds">
  <owner>semenzato@chromium.org</owner>
  <owner>bsimonnet@chromium.org</owner>
  <summary>
    Total use time (device ON and not asleep) since last version update.
    Reported at most once a day.
  </summary>
</histogram>

<histogram name="Platform.DailyUseTime" units="seconds">
  <owner>semenzato@chromium.org</owner>
  <owner>bsimonnet@chromium.org</owner>
  <summary>
    Total use time (device ON and not asleep) in the previous day, or the most
    recent day the device was in use. Reported at most once a day.
  </summary>
</histogram>

<histogram name="Platform.DetachableBase.ActivePercent" units="%">
  <owner>kitching@google.com</owner>
  <summary>
    Ratio of time a detachable base keyboard is active, i.e. when the USB
    interface is not auto-suspended. Reported every 30 seconds when the base is
    connected.
  </summary>
</histogram>

<histogram name="Platform.DetachableBase.AttachedOnBoot" enum="BooleanAttached">
  <owner>kitching@google.com</owner>
  <summary>
    For devices with a detachable base: whether or not the base is connected on
    boot. Recorded by upstart task on boot.
  </summary>
</histogram>

<histogram name="Platform.DetachableBase.PairResult"
    enum="DetachableBasePairResult">
  <owner>kitching@google.com</owner>
  <summary>Result of a detachable base pair operation.</summary>
</histogram>

<histogram name="Platform.DetachableBase.PendingRWUpdate"
    enum="DetachableBasePendingRWUpdate">
  <owner>kitching@google.com</owner>
  <summary>
    Detachable base firmware updates can be configured to only occur on boot. In
    this mode, any update will be considered &quot;pending&quot; until the
    system is rebooted, at which point the update may take place. Every time a
    detachable base is connected to the system, a metric representing the
    pending update status is recorded. Its possible values are as follows: (0)
    communication error; (1) no update available; (2) critical update available;
    or (3) non-critical update available. The definition of &quot;critical&quot;
    is up to the software performing updates, and would typically be used in the
    case of a security issue, or broken functionality in a previous firmware
    version.
  </summary>
</histogram>

<histogram name="Platform.DetachableBase.ROUpdateResult"
    enum="DetachableBaseROUpdateResult">
  <owner>kitching@google.com</owner>
  <summary>Result of a detachable base RO firmware update.</summary>
</histogram>

<histogram name="Platform.DetachableBase.RWUpdateResult"
    enum="DetachableBaseRWUpdateResult">
  <owner>kitching@google.com</owner>
  <summary>Result of a detachable base RW firmware update.</summary>
</histogram>

<histogram name="Platform.DiskUsage.Cache_Avg" units="KB">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Average size of user's Cache directory. Logged once a day, if disk usage is
    high.
  </summary>
</histogram>

<histogram name="Platform.DiskUsage.Cache_Max" units="KB">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Maximum size of user's Cache directory. Logged once a day, if disk usage is
    high.
  </summary>
</histogram>

<histogram name="Platform.DiskUsage.Downloads_Avg" units="KB">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Average size of user's Cache directory. Logged once a day, if disk usage is
    high.
  </summary>
</histogram>

<histogram name="Platform.DiskUsage.Downloads_Max" units="KB">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Maximum size of user's Cache directory. Logged once a day, if disk usage is
    high.
  </summary>
</histogram>

<histogram name="Platform.DiskUsage.GCache_Avg" units="KB">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Average size of user's GCache directory. Logged once a day, if disk usage is
    high.
  </summary>
</histogram>

<histogram name="Platform.DiskUsage.GCache_Max" units="KB">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Maximum size of user's GCache directory. Logged once a day, if disk usage is
    high.
  </summary>
</histogram>

<histogram name="Platform.DiskUsage.LeastUsedAccountDays" units="days">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Days since the least frequently used account signed in. Logged once a day,
    if disk usage is high.
  </summary>
</histogram>

<histogram name="Platform.DiskUsage.NumUserHomeDirectories"
    units="home directories">
  <owner>achuith@chromium.org</owner>
  <owner>tls@chromium.org</owner>
  <summary>
    Number of users home directories on the device. Logged once a day.
  </summary>
</histogram>

<histogram name="Platform.DiskUsage.OldestUserOnDevice">
  <owner>achuith@chromium.org</owner>
  <owner>omrilio@chromium.org</owner>
  <summary>
    Days since last login of the least recently user on device. Logged once a
    day, if disk usage is high.
  </summary>
</histogram>

<histogram name="Platform.DiskUsage.UsersOnDevice">
  <owner>achuith@chromium.org</owner>
  <owner>omrilio@chromium.org</owner>
  <summary>
    Number of user home dirs on device. Logged once a day, if disk usage is
    high.
  </summary>
</histogram>

<histogram name="Platform.DiskUsageChronos" units="KB">
  <owner>keescook@google.com</owner>
  <summary>
    Chrome OS KB in use in the /home/chronos filesystem tree. Logged once a day
    during log file cleanup.
  </summary>
</histogram>

<histogram name="Platform.DiskUsageVar" units="KB">
  <owner>keescook@google.com</owner>
  <summary>
    Chrome OS KB in use in the /var filesystem tree. Logged once a day during
    log file cleanup.
  </summary>
</histogram>

<histogram name="Platform.Emmc.LifeUsed" enum="EmmcLifeUsed">
  <owner>gwendal@google.com</owner>
  <summary>
    eMMC [5.0] Device life time estimation for flash. This field provides an
    estimated indication about the device life time that is reflected by the
    averaged wear out of memory of a given type relative to its maximum
    estimated lifetime.
  </summary>
</histogram>

<histogram name="Platform.FileSystem.ErrorCount">
  <owner>gwendal@google.com</owner>
  <summary>
    Number of file system errors, as reported by dumpe2fs &quot;FS Error
    count&quot; field. Reported once per boot.
  </summary>
</histogram>

<histogram name="Platform.FileSystem.FsckNeeded" enum="Boolean">
  <owner>gwendal@google.com</owner>
  <summary>
    True when kernel reports that the file system needs deep recovery. File
    system has corruption the kernel can not fix by itself. Reported once per
    boot.
  </summary>
</histogram>

<histogram name="Platform.FileSystem.RecoveryNeeded" enum="Boolean">
  <owner>gwendal@google.com</owner>
  <summary>
    True when kernel reports that the file system needed recovery at boot. It
    indicates the filesytem was not properly unmounted, but was recovered.
    Reported once per boot.
  </summary>
</histogram>

<histogram name="Platform.IntelMaxMicroArchitecture"
    enum="IntelMaxMicroArchitecture">
  <owner>fbarchard@chromium.org</owner>
  <summary>
    The maximum supported micro-architecture on an Intel platform. This value is
    logged at program start time.
  </summary>
</histogram>

<histogram name="Platform.KernelCrashesDaily" units="count per day">
  <owner>semenzato@chromium.org</owner>
  <owner>bsimonnet@chromium.org</owner>
  <summary>
    Count of kernel crashes during the previous day, or the most recent day the
    device was in use. Reported at most once a day.
  </summary>
</histogram>

<histogram name="Platform.KernelCrashesPerActiveYear" units="count per year">
  <owner>semenzato@chromium.org</owner>
  <owner>bsimonnet@chromium.org</owner>
  <summary>
    Count of kernel crashes since the last OS update, normalized as number of
    crashes per year of active use (active use = device is ON and not asleep).
    Reported daily.
  </summary>
</histogram>

<histogram name="Platform.KernelCrashesPerCpuYear" units="count per CPU year">
  <owner>semenzato@chromium.org</owner>
  <owner>bsimonnet@chromium.org</owner>
  <summary>
    Count of kernel crashes since the last OS update, normalized as number
    crashes per year of CPU time. Reported daily.
  </summary>
</histogram>

<histogram name="Platform.KernelCrashesSinceUpdate" units="count">
  <owner>semenzato@chromium.org</owner>
  <owner>bsimonnet@chromium.org</owner>
  <summary>
    Count of kernel crashes since the last OS update, reported daily.
  </summary>
</histogram>

<histogram name="Platform.KernelCrashesWeekly" units="count per week">
  <owner>semenzato@chromium.org</owner>
  <owner>bsimonnet@chromium.org</owner>
  <summary>
    Count of kernel crashes during the previous epoch-week, or the most recent
    epoch-week the device was in use. Reported at most once a week. Epoch-weeks
    divide the time in 7-day intervals starting at the UNIX epoch.
  </summary>
</histogram>

<histogram name="Platform.KernelCrashInterval" units="seconds">
  <owner>semenzato@chromium.org</owner>
  <owner>bsimonnet@chromium.org</owner>
  <summary>
    Time elapsed between the last two kernel crashes. Sent after every kernel
    crash.
  </summary>
</histogram>

<histogram name="Platform.KernelWarningHashes" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The 32-bit hash of a kernel warning. This is the hash of the
    &quot;file:line&quot; string corresponding to the location of the warning,
    for instance: &quot;/mnt/host/source/src/third_party/kernel/files/drivers
    /gpu/drm/i915/intel_dp.c:351&quot; (ignore spurious spaces). The hash is
    produced by this code: while (*string) hash = (hash &lt;&lt; 5) + hash +
    *string++; Separately each warning is also collected (with its hash) via the
    crash reporter, but only its first occurrence in each boot session.
  </summary>
</histogram>

<histogram name="Platform.LogicalCpuCount">
  <owner>sonnyrao@chromium.org</owner>
  <summary>
    Number of logical processors. This includes Hyperthreaded cores.
  </summary>
</histogram>

<histogram name="Platform.LotIdEnum" enum="Exynos5250LotIdEnum"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Chrome OS (ARM Chromebooks using Exynos 5250 only) indication about whether
    we're part of a special lot ID. Special lot IDs are groups of chips that
    have special case handling in the kernel for the Adaptive Support Voltage
    code (the normal logic doesn't work). See also Platform.AsvGroup. Note that
    fused devices are never part of a special lot (currently) and only some
    unfused lots are &quot;special&quot;.
  </summary>
</histogram>

<histogram name="Platform.Mem" units="%">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <owner>sonnyrao@chromium.org</owner>
  <owner>semenzato@chromium.org</owner>
  <summary>
    Various memory usage % of total memory on Chrome OS devices (snapshotted
    every 30s).
  </summary>
</histogram>

<histogram name="Platform.Meminfo" units="KB">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <owner>sonnyrao@chromium.org</owner>
  <owner>semenzato@chromium.org</owner>
  <summary>
    Various memory usage amount on Chrome OS devices (snapshotted every 30s).
  </summary>
</histogram>

<histogram name="Platform.MemoryBandwidth.ReadWrite" units="MB/s">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <owner>cast-analytics@google.com</owner>
  <summary>
    Peak memory bandwith (read and write) usage during the last sample interval.
    The sample interval may vary from seconds to several minutes.
  </summary>
</histogram>

<histogram name="Platform.MemuseAnon0">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Chrome OS total anonymous memory (active + inactive) as % of total memory 1
    minute after boot.
  </summary>
</histogram>

<histogram name="Platform.MemuseAnon1">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Chrome OS total anonymous memory (active + inactive) as % of total memory 5
    minutes after boot.
  </summary>
</histogram>

<histogram name="Platform.MemuseAnon2">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Chrome OS total anonymous memory (active + inactive) as % of total memory 30
    minutes after boot.
  </summary>
</histogram>

<histogram name="Platform.MemuseAnon3">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Chrome OS total anonymous memory (active + inactive) as % of total memory
    150 minutes after boot.
  </summary>
</histogram>

<histogram name="Platform.MemuseAnon4">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Chrome OS total anonymous memory (active + inactive) as % of total memory
    750 minutes after boot.
  </summary>
</histogram>

<histogram name="Platform.MountEncrypted.EncryptedFsType"
    enum="MountEncryptedEncryptedFsType">
  <owner>gwendal@chromium.org</owner>
  <owner>sarthakkukreti@chromium.org</owner>
  <summary>
    Type of encrypted mount used for the encrypted stateful file system on
    Chrome OS.
  </summary>
</histogram>

<histogram name="Platform.MountEncrypted.EncryptionKeyStatus"
    enum="MountEncryptedEncryptionKeyStatus">
  <owner>apronin@chromium.org</owner>
  <owner>mnissler@chromium.org</owner>
  <summary>
    File system encryption key status for the encrypted stateful file system on
    Chrome OS. The encryption key is the one that is used by the kernel to
    protect actual file contents on disk.
  </summary>
</histogram>

<histogram name="Platform.MountEncrypted.SystemKeyStatus"
    enum="MountEncryptedSystemKeyStatus">
  <owner>apronin@chromium.org</owner>
  <owner>mnissler@chromium.org</owner>
  <summary>
    Type/Origin of the system key used for the encrypted stateful file system on
    Chrome OS. This key is used to wrap the actual file system encryption key.
  </summary>
</histogram>

<histogram name="Platform.PageFaultsLong" units="page faults/second">
  <owner>sonnyrao@chromium.org</owner>
  <summary>
    Page faults per second averaged over 30s interval, sampled continuously.
  </summary>
</histogram>

<histogram name="Platform.PageFaultsShort" units="page faults/second">
  <owner>sonnyrao@chromium.org</owner>
  <summary>
    Page faults per second averaged over 1s interval, sampled every 30s.
  </summary>
</histogram>

<histogram name="Platform.ReadSectorsLong">
  <owner>gwendal@google.com</owner>
  <summary>
    Number of disk sectors per second read by Chrome OS in a long interval
    (currently 30s)
  </summary>
</histogram>

<histogram name="Platform.ReadSectorsShort">
  <owner>gwendal@google.com</owner>
  <summary>
    Number of disk sectors per second read by Chrome OS in a short interval
    (currently 1s, sampled every 30s)
  </summary>
</histogram>

<histogram name="Platform.ServiceFailureHashes">
  <owner>ddavenport@chromium.org</owner>
  <summary>
    The 32-bit hash of the name of the service that failed. The name of the
    service is hashed using the same algorithm as used for the hashes in
    Platform.KernelWarningHashes. The first instance of each service failure is
    also collected separately via the crash reporter.
  </summary>
</histogram>

<histogram name="Platform.SmartTransferErrors">
  <owner>gwendal@google.com</owner>
  <summary>Disk communication errors (SMART 199), sent at boot.</summary>
</histogram>

<histogram name="Platform.SmartUncorrectableErrors">
  <owner>gwendal@google.com</owner>
  <summary>Uncorrectable disk errors (SMART 187), sent at boot.</summary>
</histogram>

<histogram name="Platform.SpringChargerType">
  <owner>vpalatin@google.com</owner>
  <summary>
    USB device ID of the charger plugged into a Spring device (if any), sent
    once a minute. The Device ID is composed from the following 4 8-bit
    registers of the TSU6721 chip: ADC (07h), Device Type 3 (15h), Device Type 2
    (0Bh), Device Type 1 (0Ah). Device Type 1/2/3 is a bitmap and most of bits
    are mutually exclusive (excepted VBUS debounce). ADC is the 5-bit value of
    the ID pin, but for most types (as in Device Type), there are only one or
    two possible ID pin connections/values. The datasheet can be found here:
    http://www.ti.com/lit/ds/symlink/tsu6721.pdf.

    Note that different brand/models of the charger can have the same ID.
  </summary>
</histogram>

<histogram name="Platform.StatefulUsage" units="%">
  <owner>achuith@chromium.org</owner>
  <owner>omrilio@chromium.org</owner>
  <summary>Chrome OS stateful partition usage level.</summary>
</histogram>

<histogram name="Platform.Storage.Flash.BadBlocks">
  <owner>dehrenberg@chromium.org</owner>
  <owner>cast-analytics@google.com</owner>
  <summary>
    The number of blocks marked bad in an MTD partition. This is relevant for
    devices with raw NAND flash, such as Chromecast. Sampled once daily, if the
    Chromecast is on for any significant length of time in the day.
  </summary>
</histogram>

<histogram name="Platform.Storage.Nvme.PercentageUsed" units="%">
  <owner>asavery@chromium.org</owner>
  <owner>gwendal@chromium.org</owner>
  <summary>
    Vendor specific estimate of the percentage of NVM subsystem life used based
    on the actual usage and the manufacturer's prediction of NVM life. A value
    of 100 indicates the estimated endurance has been consumed, but may not
    indicate a failure. Values can exceed 100, with percentages greater than 254
    represented as 255.
  </summary>
</histogram>

<histogram name="Platform.Storage.Ufs.LifeUsed" enum="EmmcLifeUsed">
  <owner>asavery@chromium.org</owner>
  <owner>gwendal@chromium.org</owner>
  <summary>
    UFS Device life time estimation. This field provides an indication of the
    device life time based on the amount of performed program/erase cycles. The
    calculation is vendor specific.
  </summary>
</histogram>

<histogram name="Platform.SwapInLong" units="pages/second">
  <owner>sonnyrao@chromium.org</owner>
  <summary>
    Average pages/second swapped IN over a 30s interval, sampled every 30s.
  </summary>
</histogram>

<histogram name="Platform.SwapInShort" units="pages/second">
  <owner>sonnyrao@chromium.org</owner>
  <summary>
    Average pages/second swapped IN over a 1s interval, sampled every 30s.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Cpu.Swap0.Time1" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Cpu.Swap0.Time2" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Cpu.Swap0.Time3" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Cpu.Swap0.Time4" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Cpu.Swap1.Time1" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Cpu.Swap1.Time2" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Cpu.Swap1.Time3" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Cpu.Swap1.Time4" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Cpu.Swap2.Time1" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Cpu.Swap2.Time2" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Cpu.Swap2.Time3" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Cpu.Swap2.Time4" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Cpu.Swap3.Time1" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Cpu.Swap3.Time2" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Cpu.Swap3.Time3" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Cpu.Swap3.Time4" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Faults.Swap0.Time1"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Faults.Swap0.Time2"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Faults.Swap0.Time3"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Faults.Swap0.Time4"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Faults.Swap1.Time1"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Faults.Swap1.Time2"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Faults.Swap1.Time3"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Faults.Swap1.Time4"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Faults.Swap2.Time1"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Faults.Swap2.Time2"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Faults.Swap2.Time3"
    units="page faults/second">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Faults.Swap2.Time4"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Faults.Swap3.Time1"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Faults.Swap3.Time2"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Faults.Swap3.Time3"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.Scroll.Faults.Swap3.Time4"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    scroll event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Cpu.Swap0.Time1" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a tab
    switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Cpu.Swap0.Time2" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a tab
    switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Cpu.Swap0.Time3" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a tab
    switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Cpu.Swap0.Time4" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a tab
    switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Cpu.Swap1.Time1" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a tab
    switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Cpu.Swap1.Time2" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a tab
    switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Cpu.Swap1.Time3" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a tab
    switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Cpu.Swap1.Time4" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a tab
    switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Cpu.Swap2.Time1" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a tab
    switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Cpu.Swap2.Time2" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a tab
    switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Cpu.Swap2.Time3" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a tab
    switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Cpu.Swap2.Time4" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a tab
    switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Cpu.Swap3.Time1" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a tab
    switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Cpu.Swap3.Time2" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a tab
    switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Cpu.Swap3.Time3" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a tab
    switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Cpu.Swap3.Time4" units="%">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    CPU utilization for the specified swap group and time interval after a tab
    switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Faults.Swap0.Time1"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    tab switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Faults.Swap0.Time2"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    tab switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Faults.Swap0.Time3"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    tab switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Faults.Swap0.Time4"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    tab switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Faults.Swap1.Time1"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    tab switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Faults.Swap1.Time2"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    tab switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Faults.Swap1.Time3"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    tab switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Faults.Swap1.Time4"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    tab switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Faults.Swap2.Time1"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    tab switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Faults.Swap2.Time2"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    tab switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Faults.Swap2.Time3"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    tab switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Faults.Swap2.Time4"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    tab switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Faults.Swap3.Time1"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    tab switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Faults.Swap3.Time2"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    tab switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Faults.Swap3.Time3"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    tab switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapJank.TabSwitch.Faults.Swap3.Time4"
    units="page faults/second">
  <obsolete>
    Deprecated 9/2013 when the SwapJank64vs32Parrot experiment ended.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Page faults/second for the specified swap group and time interval after a
    tab switch event. See src/chrome/browser/chromeos/swap_metrics.cc.
  </summary>
</histogram>

<histogram name="Platform.SwapOutLong" units="pages/second">
  <owner>sonnyrao@chromium.org</owner>
  <summary>
    Average pages/second swapped OUT over a 30s interval, sampled every 30s.
  </summary>
</histogram>

<histogram name="Platform.SwapOutShort" units="pages/second">
  <owner>sonnyrao@chromium.org</owner>
  <summary>
    Average pages/second swapped OUT over a 1s interval, sampled every 30s.
  </summary>
</histogram>

<histogram name="Platform.Temperature.Sensor00" units="Celsius">
  <owner>fletcherw@chromium.org</owner>
  <summary>
    Temperature reading from EC temperature sensor 0 (TSR0) taken every 30s.

    This metric is specific to Chrome OS
  </summary>
</histogram>

<histogram name="Platform.Temperature.Sensor00.WhileSuspended" units="Celsius"
    expires_after="2019-06-01">
  <owner>fletcherw@chromium.org</owner>
  <summary>
    Temperature reading from EC temperature sensor 0 (TSR0) taken after resume
    from sufficiently long suspend.

    This metric is specific to Chrome OS
  </summary>
</histogram>

<histogram name="Platform.Temperature.Sensor01" units="Celsius">
  <owner>fletcherw@chromium.org</owner>
  <summary>
    Temperature reading from EC temperature sensor 1 (TSR1) taken every 30s.

    This metric is specific to Chrome OS
  </summary>
</histogram>

<histogram name="Platform.Temperature.Sensor01.WhileSuspended" units="Celsius"
    expires_after="2019-06-01">
  <owner>fletcherw@chromium.org</owner>
  <summary>
    Temperature reading from EC temperature sensor 1 (TSR1) taken after resume
    from sufficiently long suspend.

    This metric is specific to Chrome OS
  </summary>
</histogram>

<histogram name="Platform.Temperature.Sensor02" units="Celsius">
  <owner>fletcherw@chromium.org</owner>
  <summary>
    Temperature reading from EC temperature sensor 2 (TSR2) taken every 30s.

    This metric is specific to Chrome OS
  </summary>
</histogram>

<histogram name="Platform.Temperature.Sensor02.WhileSuspended" units="Celsius"
    expires_after="2019-06-01">
  <owner>fletcherw@chromium.org</owner>
  <summary>
    Temperature reading from EC temperature sensor 2 (TSR2) taken after resume
    from sufficiently long suspend.

    This metric is specific to Chrome OS
  </summary>
</histogram>

<histogram name="Platform.Temperature.Sensor03" units="Celsius"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Temperature reading at sensor 3 (I2C_PCH-Object) taken every 30s.
  </summary>
</histogram>

<histogram name="Platform.Temperature.Sensor04" units="Celsius"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Temperature reading at sensor 4 (I2C_DDR-Die) taken every 30s.
  </summary>
</histogram>

<histogram name="Platform.Temperature.Sensor05" units="Celsius"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Temperature reading at sensor 5 (I2C_DDR-Object) taken every 30s.
  </summary>
</histogram>

<histogram name="Platform.Temperature.Sensor06" units="Celsius"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Temperature reading at sensor 6 (Charger-Die), taken every 30s.
  </summary>
</histogram>

<histogram name="Platform.Temperature.Sensor07" units="Celsius"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Temperature reading at sensor 7 (Charger-Object) taken every 30s.
  </summary>
</histogram>

<histogram name="Platform.Temperature.Sensor08" units="Celsius"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Temperature reading at sensor 8 (ECInternal) taken every 30s.
  </summary>
</histogram>

<histogram name="Platform.Temperature.Sensor09" units="Celsius"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Temperature reading at sensor 9 (PECI) taken every 30s.</summary>
</histogram>

<histogram name="Platform.Thermal.Temperature.Cpu.0" units="Celsius">
  <owner>mka@chromium.org</owner>
  <summary>
    Temperature reading at sensor 0 of the CPU collected every few seconds (may
    vary between devices).

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="Platform.Thermal.Temperature.Cpu.0.WhileSuspended"
    units="Celsius" expires_after="2019-06-01">
  <owner>fletcherw@chromium.org</owner>
  <summary>
    Temperature reading at sensor 0 of the CPU collected when resuming from a
    sufficiently long suspend.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="Platform.Thermal.Temperature.Wifi0" units="Celsius">
  <owner>mka@chromium.org</owner>
  <summary>
    Temperature reading at wireless interface 0 collected every few seconds (may
    vary between devices).

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="Platform.Thermal.Temperature.Wifi1" units="Celsius">
  <owner>mka@chromium.org</owner>
  <summary>
    Temperature reading at wireless interface 1 collected every few seconds (may
    vary between devices).

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="Platform.Thermal.Temperature.Wifi2" units="Celsius">
  <owner>mka@chromium.org</owner>
  <summary>
    Temperature reading at wireless interface 2 collected every few seconds (may
    vary between devices).

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="Platform.Thermal.Zone.Cpu.States" units="Thermal state">
  <owner>mka@chromium.org</owner>
  <summary>
    State of the thermal zone of the CPU collected every second. State depends
    on device, higher state corresponds to a higher temperature.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="Platform.Thermal.Zone.Wifi0.States" units="Thermal state">
  <owner>mka@chromium.org</owner>
  <summary>
    State of the thermal zone of wireless interface 0 collected every second.
    State depends on device, higher state corresponds to a higher temperature.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="Platform.Thermal.Zone.Wifi1.States" units="Thermal state">
  <owner>mka@chromium.org</owner>
  <summary>
    State of the thermal zone of wireless interface 1 collected every second.
    State depends on device, higher state corresponds to a higher temperature.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="Platform.Thermal.Zone.Wifi2.States" units="Thermal state">
  <owner>mka@chromium.org</owner>
  <summary>
    State of the thermal zone of wireless interface 2 collected every second.
    State depends on device, higher state corresponds to a higher temperature.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="Platform.TPM.AuthErrorCode" enum="TPMResultCodeEnum">
  <owner>semenzato@chromium.org</owner>
  <summary>
    Each sample is the result code of a TPM authorized command issued through
    tcsd. Success is 0. For the other error codes, see
    /usr/include/tss/tpm_error.h.
  </summary>
</histogram>

<histogram name="Platform.TPM.DictionaryAttackCounter">
  <owner>apronin@chromium.org</owner>
  <owner>cros-hwsec@chromium.org</owner>
  <summary>
    Each sample is the value of the TPM dictionary attack counter reported at
    boot and hourly while running. Any non-zero value is unexpected.
  </summary>
</histogram>

<histogram name="Platform.TPM.DictionaryAttackResetStatus"
    enum="CrosTPMDictionaryAttackResetStatusEnum">
  <owner>apronin@chromium.org</owner>
  <owner>cros-hwsec@chromium.org</owner>
  <summary>
    Each sample is the status of an hourly attempt to reset the TPM dictionary
    attack counter.
  </summary>
</histogram>

<histogram name="Platform.TPM.ErrorCode" enum="TPMResultCodeEnum">
  <owner>semenzato@chromium.org</owner>
  <summary>
    Each sample is the result code of a TPM command issued through tcsd. Success
    is 0. For the other error codes, see /usr/include/tss/tpm_error.h.
  </summary>
</histogram>

<histogram name="Platform.TPM.FirmwareUpdate.Attempts" units="attempts">
  <owner>mnissler@chromium.org</owner>
  <summary>
    Number of attempts until a successful TPM firmware update. This is the total
    sum of attempts, i.e. number of failed attempts + 1 for the final successful
    attempt. Note that we're not in a position to report UMA after failed
    attempts, so this will only be reported by devices that eventually see a
    successful attempt.
  </summary>
</histogram>

<histogram name="Platform.TPM.FirmwareUpdate.Result"
    enum="TPMFirmwareUpdateResult">
  <owner>mnissler@chromium.org</owner>
  <summary>Status of a complete TPM firmware update attempt.</summary>
</histogram>

<histogram name="Platform.TPM.FirmwareUpdate.Status"
    enum="TPMFirmwareUpdateStatus">
  <owner>mnissler@chromium.org</owner>
  <summary>Exit status of the TPM firmware updater script.</summary>
</histogram>

<histogram name="Platform.TPM.HardwareAlerts" enum="PlatformTPMHardwareAlerts">
  <owner>anatol@google.com</owner>
  <summary>
    Trusted Platform Module hardware alerts that signal about the chip abnormal
    situation.
  </summary>
</histogram>

<histogram name="Platform.TPM.VersionFingerprint" enum="TPMVersionFingerprint">
  <owner>mnissler@chromium.org</owner>
  <summary>
    Indicates a fingerprint of hardware + firmware versions for the TPM chip
    present in a Chrome OS device.
  </summary>
</histogram>

<histogram name="Platform.TPMForcedReboot" units="reboots">
  <owner>apronin@chromium.org</owner>
  <owner>cros-hwsec@chromium.org</owner>
  <summary>
    Each sample is the number of consecutive reboots performed while attempting
    to clear a TPM (Trusted Platform Module) error.
  </summary>
</histogram>

<histogram name="Platform.Tps65090Retries">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Retries needed to enable a FET on tps65090 (AKA tpschrome). Tps65090 is a
    power management unit (PMU) used on many ARM Chromebooks. Until version ES7
    was rolled into production we would sometimes run into a problem where FET1
    (the FET used to switch on and off the backlight) wouldn't turn on properly.
    This problem was especially prevalent when the voltage was high (like when
    the device was plugged into the wall). Retrying by turning the FET off and
    on again is nearly always effective, so the kernel will retry up to 5 times
    (currently) and will also log the fact that it needed to retry. On newest
    kernels (kernel 3.8 and up) a kernel warning will be logged with WARN_ON if
    the FET still failed to turn on after 5 tries. Refer to the kernel warning
    reports to find that information. For more details about this bug refer to
    http://crbug.com/338657 and http://crosbug.com/p/16009. Note that we log
    retries on all 7 FETs even though we've only ever seen failures of FET1.
  </summary>
</histogram>

<histogram name="Platform.UncleanShutdownsDaily" units="count per day">
  <owner>semenzato@chromium.org</owner>
  <owner>bsimonnet@chromium.org</owner>
  <summary>
    Count of crashes (unclean shutdown) during the previous day, or the most
    recent day the device was in use. Reported at most once a day.
  </summary>
</histogram>

<histogram name="Platform.UserCrashesDaily" units="count per day">
  <owner>semenzato@chromium.org</owner>
  <owner>bsimonnet@chromium.org</owner>
  <summary>
    Count of crashes (user) during the previous day, or the most recent day the
    device was in use. Reported at most once a day.
  </summary>
</histogram>

<histogram name="Platform.Vpd.UnknownKeys">
  <owner>tnagel@chromium.org</owner>
  <summary>
    Number of unknown RW_VPD entries on Chrome OS, sent once per boot.
  </summary>
</histogram>

<histogram name="Platform.WiFiDeviceCount" units="wifi devices">
  <owner>cernekee@chromium.org</owner>
  <owner>semenzato@chromium.org</owner>
  <summary>
    Sample collected 10s after boot, showing how many WiFi interfaces are
    present.
  </summary>
</histogram>

<histogram name="Platform.WiFiDisapppearedFromPCI" expires_after="2019-12-31">
  <owner>rajatja@chromium.org</owner>
  <owner>kirtika@chromium.org</owner>
  <owner>chromeos-kernel-wifi@google.com</owner>
  <summary>
    Logged (with a constant value of 1) if a WiFi device experienced a PCI
    failure such that it is being removed from the system. Typically, Chrome OS
    will follow such a removal with an attempt to rescan the bus and recover
    device functionality. See also Platform.WiFiStatusAfterForcedPCIRescan for
    the result of such attempts.
  </summary>
</histogram>

<histogram name="Platform.WiFiStatusAfterForcedPCIRescan" enum="WiFiPCIStatus">
  <owner>rajatja@chromium.org</owner>
  <owner>kirtika@chromium.org</owner>
  <summary>
    Shows the WiFi status after the PCI bus is rescanned to recover WiFi. The UI
    depends on shill noticing that wlan0 is back up, so the only happy case is
    one where shill recognizes wlan0 after the rescan completes.
  </summary>
</histogram>

<histogram name="Platform.WriteSectorsLong">
  <owner>gwendal@google.com</owner>
  <summary>
    Number of disk sectors per second written by Chrome OS in a long interval
    (currently 30s)
  </summary>
</histogram>

<histogram name="Platform.WriteSectorsShort">
  <owner>gwendal@google.com</owner>
  <summary>
    Number of disk sectors per second written by Chrome OS in a short interval
    (currently 1s, sampled every 30s)
  </summary>
</histogram>

<histogram name="Platform.ZramCompressedSize" units="MB">
  <owner>semenzato@google.com</owner>
  <summary>
    Compressed swap size in megabytes. This is the actual amount of RAM used by
    the system to compress memory (i.e. after compression). Snapshot every 30s.
  </summary>
</histogram>

<histogram name="Platform.ZramCompressionRatioPercent" units="%">
  <owner>semenzato@google.com</owner>
  <summary>
    The ratio of compressed memory (zram) before and after compression when the
    denominator at least 1 MB. Ratios of interest are between 1 and 6 (typically
    between 2 and 3), and we express them as a percentage (between 100% and
    600%). The size of memory before compression includes zero-filled pages.
    Values close to 100% indicate low compression effectiveness. Snapshot every
    30s.
  </summary>
</histogram>

<histogram name="Platform.ZramIncompressiblePages" units="pages"
    expires_after="2020-03-06">
  <owner>asavery@chromium.org</owner>
  <owner>gwendal@chromium.org</owner>
  <summary>
    Number of incompressible pages stored in zram. A large number suggests lower
    compression effectiveness. Snapshot every 30s.
  </summary>
</histogram>

<histogram name="Platform.ZramIncompressibleRatioPercent.PostCompression"
    units="%" expires_after="2020-03-06">
  <owner>asavery@chromium.org</owner>
  <owner>gwendal@chromium.org</owner>
  <summary>
    The fraction of compressed memory that consists of incompressible pages. We
    express this as a percentage (between 0% and 100%). Values close to 100%
    mean we are not able to effectively benefit from compression. Snapshot every
    30s.
  </summary>
</histogram>

<histogram name="Platform.ZramIncompressibleRatioPercent.PreCompression"
    units="%" expires_after="2020-03-06">
  <owner>asavery@chromium.org</owner>
  <owner>gwendal@chromium.org</owner>
  <summary>
    The fraction of the uncompressed memory size that consists of incompressible
    pages. We express this as a percentage (between 0% and 100%). Values close
    to 100% mean we are not able to effectively benefit from compression.
    Snapshot every 30s.
  </summary>
</histogram>

<histogram name="Platform.ZramSavings" units="MB">
  <owner>semenzato@google.com</owner>
  <summary>
    RAM savings in megabytes from using memory compression. This is the
    difference between the RAM size before and after compression. Snapshot every
    30s.
  </summary>
</histogram>

<histogram name="Platform.ZramZeroPages" units="pages">
  <owner>semenzato@google.com</owner>
  <summary>
    Number of zero-filled pages that the OS is compressing. A large number
    suggests wasteful allocation. Snapshot every 30s.
  </summary>
</histogram>

<histogram name="Platform.ZramZeroRatioPercent" units="%">
  <owner>semenzato@google.com</owner>
  <summary>
    The fraction of compressed memory that consists of zero-filled pages.
    Snapshot every 30s.
  </summary>
</histogram>

<histogram name="PlatformFile.FlushTime" units="ms">
  <obsolete>
    Deprecated as of 2016-07 because the histogram's purpose of adding colour to
    the description of File::Flush() has been fulfilled.
  </obsolete>
  <owner>tnagel@chromium.org</owner>
  <summary>The time it takes to run File::Flush().</summary>
</histogram>

<histogram name="PlatformFile.UnknownCreateFileErrors" units="code">
  <obsolete>
    Deprecated as of 2013-05, replaced by
    PlatformFile.UnknownCreateFileErrorsWin in chrome 29.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Errors returned by CreateFile on windows that PlatformFileError doesn't yet
    support.
  </summary>
</histogram>

<histogram name="PlatformFile.UnknownErrors.Posix" enum="PopularOSErrno">
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Errors returned by CreateFile on POSIX that PlatformFileError doesn't yet
    support.
  </summary>
</histogram>

<histogram name="PlatformFile.UnknownErrors.Windows" enum="WinGetLastError">
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Errors returned by CreateFile on Windows that PlatformFileError doesn't yet
    support.
  </summary>
</histogram>

<histogram name="PLT.Abandoned" enum="Abandoned">
  <obsolete>
    Deprecated as of 2014-06.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Distribution of actual finished pages, vs abandoned pages, where we needed
    to declare a finish time prematurely since the page was being closed
    (exited).
  </summary>
</histogram>

<histogram name="PLT.Abandoned.NoProxy.http" enum="Abandoned">
  <obsolete>
    Deprecated as of 2014-06.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.Abandoned.NoProxy.https" enum="Abandoned">
  <obsolete>
    Deprecated as of 2014-06.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.Abandoned.Proxy.http" enum="Abandoned">
  <obsolete>
    Deprecated as of 2014-06.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.Abandoned.Proxy.https" enum="Abandoned">
  <obsolete>
    Deprecated as of 2014-06.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.Abandoned_ExtensionAdblock" enum="Abandoned">
  <obsolete>
    Deprecated 6/2014. Replaced by Abandoned_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.Abandoned_ExtensionAdblockPlus" enum="Abandoned">
  <obsolete>
    Deprecated 6/2014. Replaced by Abandoned_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.Abandoned_ExtensionWebRequest" enum="Abandoned">
  <obsolete>
    Deprecated as of 2014-06.
  </obsolete>
  <summary>
    The PLT.Abandoned histogram for pages loaded after WebRequest API was used.
  </summary>
</histogram>

<histogram name="PLT.Abandoned_ExtensionWebRequestAdblock" enum="Abandoned">
  <obsolete>
    Deprecated 6/2014. Replaced by Abandoned_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.Abandoned_ExtensionWebRequestAdblockPlus" enum="Abandoned">
  <obsolete>
    Deprecated 6/2014. Replaced by Abandoned_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.Abandoned_ExtensionWebRequestOther" enum="Abandoned">
  <obsolete>
    Deprecated 6/2014. Replaced by Abandoned_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.Abandoned_SpdyProxy" enum="Abandoned">
  <obsolete>
    Deprecated as of 2014-06.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.AbandonType" enum="AbandonType">
  <obsolete>
    Deprecated as of 2014-06.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Diagnose why a page load was considered abandoned.</summary>
</histogram>

<histogram name="PLT.BeginToCommit" units="ms">
  <obsolete>
    Use PageLoad.Timing2.NavigationToCommit instead.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from &quot;begin&quot; to &quot;commit.&quot; &quot;Begin&quot;==
    &quot;request&quot; if user requested, and &quot;start&quot; otherwise.
    &quot;Request&quot;== time when user requested document. &quot;Start&quot;==
    time when renderer requested load of document, after any unload of last
    document. &quot;Commit&quot;== time when renderer got first byte of
    document.
  </summary>
</histogram>

<histogram name="PLT.BeginToFinish" units="ms">
  <obsolete>
    Use PageLoad.DocumentTiming.NavigationToLoadEventFired instead.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>TBD</summary>
</histogram>

<histogram name="PLT.BeginToFinish_AfterPreconnectRequest" units="ms">
  <obsolete>
    Deprecated as of http://crrev.com/392823002
  </obsolete>
  <owner>kouhei@chromium.org</owner>
  <summary>
    PLT.BeginToFinish, but for pages requested just after a new preconnect
    request.
  </summary>
</histogram>

<histogram name="PLT.BeginToFinish_ContentPrefetcher" units="ms">
  <obsolete>
    No longer needed.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    PLT.BeginToFinish, but for pages which contained prefetch links.
  </summary>
</histogram>

<histogram name="PLT.BeginToFinish_ContentPrefetcherReferrer" units="ms">
  <obsolete>
    No longer needed.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    PLT.BeginToFinish, but for pages which were referred to by pages which
    contained prefetch links.
  </summary>
</histogram>

<histogram name="PLT.BeginToFinish_LinkLoadNormal_ExtensionAdblock" units="ms">
  <obsolete>
    Deprecated 6/2014. Replaced by
    BeginToFinish_LinkLoadNormal_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.BeginToFinish_LinkLoadNormal_ExtensionAdblockPlus"
    units="ms">
  <obsolete>
    Deprecated 6/2014. Replaced by
    BeginToFinish_LinkLoadNormal_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.BeginToFinish_LinkLoadNormal_ExtensionWebRequest"
    units="ms">
  <obsolete>
    No longer needed.
  </obsolete>
  <summary>
    The PLT.BeginToFinish histogram for pages loaded by following a link, after
    WebRequest API was used.
  </summary>
</histogram>

<histogram name="PLT.BeginToFinish_LinkLoadNormal_ExtensionWebRequestAdblock"
    units="ms">
  <obsolete>
    Deprecated 6/2014. Replaced by
    BeginToFinish_LinkLoadNormal_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram
    name="PLT.BeginToFinish_LinkLoadNormal_ExtensionWebRequestAdblockPlus"
    units="ms">
  <obsolete>
    Deprecated 6/2014. Replaced by
    BeginToFinish_LinkLoadNormal_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.BeginToFinish_LinkLoadNormal_ExtensionWebRequestOther"
    units="ms">
  <obsolete>
    Deprecated 6/2014. Replaced by
    BeginToFinish_LinkLoadNormal_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.BeginToFinish_LinkLoadReload_ExtensionAdblock" units="ms">
  <obsolete>
    Deprecated 6/2014. Replaced by
    BeginToFinish_LinkLoadReload_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.BeginToFinish_LinkLoadReload_ExtensionAdblockPlus"
    units="ms">
  <obsolete>
    Deprecated 6/2014. Replaced by
    BeginToFinish_LinkLoadReload_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.BeginToFinish_LinkLoadReload_ExtensionWebRequest"
    units="ms">
  <obsolete>
    No longer needed.
  </obsolete>
  <summary>
    The PLT.BeginToFinish histogram for pages reloaded by JavaScript or by
    following a link, after WebRequest API was used.
  </summary>
</histogram>

<histogram name="PLT.BeginToFinish_LinkLoadReload_ExtensionWebRequestAdblock"
    units="ms">
  <obsolete>
    Deprecated 6/2014. Replaced by
    BeginToFinish_LinkLoadReload_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram
    name="PLT.BeginToFinish_LinkLoadReload_ExtensionWebRequestAdblockPlus"
    units="ms">
  <obsolete>
    Deprecated 6/2014. Replaced by
    BeginToFinish_LinkLoadReload_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.BeginToFinish_LinkLoadReload_ExtensionWebRequestOther"
    units="ms">
  <obsolete>
    Deprecated 6/2014. Replaced by
    BeginToFinish_LinkLoadReload_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.BeginToFinish_LinkLoadStaleOk_ExtensionAdblock" units="ms">
  <obsolete>
    Deprecated 6/2014. Replaced by
    BeginToFinish_LinkLoadStaleOk_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.BeginToFinish_LinkLoadStaleOk_ExtensionAdblockPlus"
    units="ms">
  <obsolete>
    Deprecated 6/2014. Replaced by
    BeginToFinish_LinkLoadStaleOk_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.BeginToFinish_LinkLoadStaleOk_ExtensionWebRequest"
    units="ms">
  <obsolete>
    No longer needed.
  </obsolete>
  <summary>
    The PLT.BeginToFinish histogram for pages loads initiated by back/forward
    buttons, or by a change of encoding, after WebRequest API was used.
  </summary>
</histogram>

<histogram name="PLT.BeginToFinish_LinkLoadStaleOk_ExtensionWebRequestAdblock"
    units="ms">
  <obsolete>
    Deprecated 6/2014. Replaced by
    BeginToFinish_LinkLoadStaleOk_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram
    name="PLT.BeginToFinish_LinkLoadStaleOk_ExtensionWebRequestAdblockPlus"
    units="ms">
  <obsolete>
    Deprecated 6/2014. Replaced by
    BeginToFinish_LinkLoadStaleOk_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.BeginToFinish_LinkLoadStaleOk_ExtensionWebRequestOther"
    units="ms">
  <obsolete>
    Deprecated 6/2014. Replaced by
    BeginToFinish_LinkLoadStaleOk_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.BeginToFinish_NormalLoad_ExtensionAdblock" units="ms">
  <obsolete>
    Deprecated 6/2014. Replaced by BeginToFinish_NormalLoad_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.BeginToFinish_NormalLoad_ExtensionAdblockPlus" units="ms">
  <obsolete>
    Deprecated 6/2014. Replaced by BeginToFinish_NormalLoad_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.BeginToFinish_NormalLoad_ExtensionWebRequest" units="ms">
  <obsolete>
    No longer needed.
  </obsolete>
  <summary>
    The PLT.BeginToFinish histogram for pages loaded by entering a URL or a
    search query into Omnibox, after WebRequest API was used.
  </summary>
</histogram>

<histogram name="PLT.BeginToFinish_NormalLoad_ExtensionWebRequestAdblock"
    units="ms">
  <obsolete>
    Deprecated 6/2014. Replaced by BeginToFinish_NormalLoad_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.BeginToFinish_NormalLoad_ExtensionWebRequestAdblockPlus"
    units="ms">
  <obsolete>
    Deprecated 6/2014. Replaced by BeginToFinish_NormalLoad_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.BeginToFinish_NormalLoad_ExtensionWebRequestOther"
    units="ms">
  <obsolete>
    Deprecated 6/2014. Replaced by BeginToFinish_NormalLoad_ExtensionWebRequest.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary/>
</histogram>

<histogram name="PLT.BeginToFinish_SpdyProxy" units="ms">
  <obsolete>
    Use PLT.PT_BeginToFinish_DataReductionProxy instead.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>PLT.BeginToFinish, but for pages fetched over a SPDY proxy.</summary>
</histogram>

<histogram name="PLT.BeginToFinishDoc">
  <obsolete>
    Use PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired instead.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>TBD</summary>
</histogram>

<histogram name="PLT.BeginToFinishDoc_AfterPreconnectRequest" units="ms">
  <obsolete>
    Deprecated as of http://crrev.com/392823002
  </obsolete>
  <owner>kouhei@chromium.org</owner>
  <summary>
    PLT.BeginToFinishDoc, but for pages requested just after a new preconnect
    request.
  </summary>
</histogram>

<histogram name="PLT.BeginToFinishDoc_ContentPrefetcher" units="ms">
  <obsolete>
    No longer needed.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    PLT.BeginToFinishDoc, but for pages which contained prefetch links.
  </summary>
</histogram>

<histogram name="PLT.BeginToFinishDoc_ContentPrefetcherReferrer" units="ms">
  <obsolete>
    No longer needed.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    PLT.BeginToFinishDoc, but for pages which were referred to by pages which
    contained prefetch links.
  </summary>
</histogram>

<histogram name="PLT.BeginToFinishDoc_SpdyProxy" units="ms">
  <obsolete>
    Use PLT.PT_BeginToFinishDoc_DataReductionProxy instead.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    PLT.BeginToFinshDoc, but for pages fetched over a SPDY proxy.
  </summary>
</histogram>

<histogram name="PLT.BeginToFirstPaint" units="ms">
  <obsolete>
    Use PageLoad.PaintTiming.NavigationToFirstContentfulPaint instead.
  </obsolete>
  <owner>pmeenan@chromium.org</owner>
  <summary>
    Time from &quot;begin&quot; to &quot;first paint.&quot; &quot;Begin&quot;==
    &quot;request&quot; if user requested, and &quot;start&quot; otherwise.
    &quot;Request&quot;== time when user requested document. &quot;Start&quot;==
    time when renderer requested load of document, after any unload of last
    document. &quot;First paint&quot;== time when first paint operation was
    performed.
  </summary>
</histogram>

<histogram name="PLT.BeginToFirstPaint_Negative" units="ms">
  <obsolete>
    No longer needed.
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    Magnitude and difference between begin and first paint, when first_paint
    precedes begin. This is a temporary metric used to better understand the
    root cause of http://crbug.com/125273.
  </summary>
</histogram>

<histogram name="PLT.BeginToFirstPaintAfterLoad" units="ms">
  <obsolete>
    The first paint after load is not useful for most documents. Consider using
    PageLoad.PaintTiming.NavigationToFirstContentfulPaint instead.
  </obsolete>
  <owner>pmeenan@chromium.org</owner>
  <summary>
    Time from &quot;big&quot; to &quot;first paint after load.&quot;
    &quot;Begin&quot;== &quot;request&quot; if user requested, and
    &quot;start&quot; otherwise. &quot;Request&quot;== time when user requested
    document. &quot;Start&quot;== time when renderer requested load of document,
    after any unload of last document. &quot;First paint after load&quot;== time
    after onload() when first paint operation is performed.
  </summary>
</histogram>

<histogram name="PLT.CommitToFinish" units="ms">
  <obsolete>
    Use PageLoad.DocumentTiming.NavigationToLoadEventFired instead.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from &quot;commit&quot; to &quot;finish.&quot; &quot;Commit&quot;==
    time when renderer got first byte of document. &quot;Finish&quot;==after
    onload() and all resources are loaded.
  </summary>
</histogram>

<histogram name="PLT.CommitToFinishDoc" units="ms">
  <obsolete>
    Use PageLoad.ParseTiming.ParseDuration instead.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from &quot;commit&quot; to &quot;finish doc.&quot; &quot;Commit&quot;==
    time when renderer got first byte of document. &quot;Finish doc&quot; ==
    main document loaded, before onload(). &quot;Finish&quot;==after onload()
    and all resources are loaded.
  </summary>
</histogram>

<histogram name="PLT.CommitToFirstPaint" units="ms">
  <obsolete>
    Use PageLoad.PaintTiming.ParseStartToFirstContentfulPaint instead.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from &quot;commit&quot; to &quot;first paint.&quot;
    &quot;Commit&quot;== time when renderer got first byte of document.
    &quot;First paint&quot;== time when first paint operation was performed.
  </summary>
</histogram>

<histogram name="PLT.CommitToFirstPaintAfterLoad" units="ms">
  <obsolete>
    The first paint after load is not useful for most documents. Consider using
    PageLoad.PaintTiming.ParseStartToFirstContentfulPaint instead.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from &quot;commit&quot; to &quot;first paint after load.&quot;
    &quot;Commit&quot;== time when renderer got first byte of document.
    &quot;First paint after load&quot;== time after onload() when first paint
    operation is performed.
  </summary>
</histogram>

<histogram name="PLT.FinishDocToFinish" units="ms">
  <obsolete>
    No longer needed.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from &quot;finish doc&quot; to &quot;finish.&quot; &quot;Finish
    doc&quot;== main document loaded, before onload(). &quot;Finish&quot;==after
    onload() and all resources are loaded.
  </summary>
</histogram>

<histogram name="PLT.FinishToFirstPaintAfterLoad" units="ms">
  <obsolete>
    The first paint after load is not useful for most documents. Consider using
    PageLoad.PaintTiming.NavigationToFirstContentfulPaint instead.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from &quot;finish &quot; to &quot;first paint after load.&quot;
    &quot;Finish&quot;==after onload() and all resources are loaded. &quot;First
    paint after load&quot;== time after onload() when first paint operation is
    performed.
  </summary>
</histogram>

<histogram name="PLT.LoadType" enum="LoadType">
  <obsolete>
    Use PageLoad.PaintTiming.NavigationToFirstContentfulPaint.LoadType.*
    instead.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Probability distribution for enumerated varieties of page loads.
  </summary>
</histogram>

<histogram name="PLT.MissingStart" enum="MissingStartType">
  <obsolete>
    Deprecated as of 2014-06.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Diagnose error conditions in PLT reporting. A start time should always be
    present.
  </summary>
</histogram>

<histogram name="PLT.NavStartToLoadEnd" units="ms">
  <obsolete>
    deprecated 2012-01-19 in favour of PLT.PT_*
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time elapsed between the Navigation Timing metrics navigationStart and
    loadEventEnd. Definitions: http://www.w3.org/TR/navigation-timing/
  </summary>
</histogram>

<histogram name="PLT.NavStartToLoadStart" units="ms">
  <obsolete>
    deprecated 2012-01-19 in favour of PLT.PT_*
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time elapsed between the Navigation Timing metrics navigationStart and
    loadEventStart. Definitions: http://www.w3.org/TR/navigation-timing/
  </summary>
</histogram>

<histogram name="PLT.NT_Connect" units="ms">
  <obsolete>
    Deprecated 09/2016.
  </obsolete>
  <owner>bolian@chromium.org</owner>
  <summary>
    Time from connectStart to connectEnd based on Navigation Timing.
  </summary>
</histogram>

<histogram name="PLT.NT_DelayBeforeConnect" units="ms">
  <obsolete>
    Deprecated as of 7/19/2016.
  </obsolete>
  <owner>bolian@chromium.org</owner>
  <summary>
    Time from domanLookupEnd to connectStart based on Navigation Timing.
  </summary>
</histogram>

<histogram name="PLT.NT_DelayBeforeDomainLookup" units="ms">
  <obsolete>
    Deprecated as of 7/19/2016.
  </obsolete>
  <owner>bolian@chromium.org</owner>
  <summary>
    Time from fetchStart to domainLookupStart based on Navigation Timing.
  </summary>
</histogram>

<histogram name="PLT.NT_DelayBeforeDomLoading" units="ms">
  <obsolete>
    Deprecated as of 7/19/2016. Replaced by
    PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired.
  </obsolete>
  <owner>bolian@chromium.org</owner>
  <summary>
    Time from responseStart to domLoading based on Navigation Timing.
  </summary>
</histogram>

<histogram name="PLT.NT_DelayBeforeFetch" units="ms">
  <obsolete>
    Deprecated as of 7/19/2016.
  </obsolete>
  <owner>bolian@chromium.org</owner>
  <summary>
    Time from navigationStart to fetchStart based on Navigation Timing when no
    redirect.
  </summary>
</histogram>

<histogram name="PLT.NT_DelayBeforeFetchRedirect" units="ms">
  <obsolete>
    Deprecated as of 7/19/2016.
  </obsolete>
  <owner>bolian@chromium.org</owner>
  <summary>
    Time from navigationStart to fetchStart excluding time spent on redirects
    based on Navigation Timing. Only page loads with redirects are considered.
  </summary>
</histogram>

<histogram name="PLT.NT_DelayBeforeLoadEvent" units="ms">
  <obsolete>
    Deprecated as of 7/19/2016. Replaced by
    PageLoad.DocumentTiming.NavigationToLoadEventFired.
  </obsolete>
  <owner>bolian@chromium.org</owner>
  <summary>
    Time from domContentLoadedEventEnd to loadEventStart based on Navigation
    Timing.
  </summary>
</histogram>

<histogram name="PLT.NT_DelayBeforeRequest" units="ms">
  <obsolete>
    Deprecated as of 7/19/2016.
  </obsolete>
  <owner>bolian@chromium.org</owner>
  <summary>
    Time from connectEnd to requestStart based on Navigation Timing.
  </summary>
</histogram>

<histogram name="PLT.NT_DomainLookup" units="ms">
  <obsolete>
    Deprecated 09/2016.
  </obsolete>
  <owner>bolian@chromium.org</owner>
  <summary>
    Time from domainLookupStart to domainLookupEnd based on Navigation Timing.
  </summary>
</histogram>

<histogram name="PLT.NT_DomContentLoaded" units="ms">
  <obsolete>
    Deprecated 09/2016. Use
    PageLoad.Clients.DataReductionProxy.DocumentTiming.NavigationToDOMContentLoadedEventFired
    instead.
  </obsolete>
  <owner>bolian@chromium.org</owner>
  <summary>
    Time from domContentLoadedEventStart to domContentLoadedEventEnd based on
    Navigation Timing.
  </summary>
</histogram>

<histogram name="PLT.NT_DomInteractive" units="ms">
  <obsolete>
    Deprecated 09/2016.
  </obsolete>
  <owner>bolian@chromium.org</owner>
  <summary>
    Time from domInteractive to domContentLoadEventStart based on Navigation
    Timing.
  </summary>
</histogram>

<histogram name="PLT.NT_DomLoading" units="ms">
  <obsolete>
    Deprecated 09/2016.
  </obsolete>
  <owner>bolian@chromium.org</owner>
  <summary>
    Time from domLoading to domInteractive based on Navigation Timing.
  </summary>
</histogram>

<histogram name="PLT.NT_LoadEvent" units="ms">
  <obsolete>
    Deprecated 09/2016. Use
    PageLoad.Clients.DataReductionProxy.DocumentTiming.NavigationToLoadEventFired
    instead.
  </obsolete>
  <owner>bolian@chromium.org</owner>
  <summary>
    Time from loadEventStart to loadEventEnd based on Navigation Timing.
  </summary>
</histogram>

<histogram name="PLT.NT_Redirect" units="ms">
  <obsolete>
    Deprecated as of 7/19/2016.
  </obsolete>
  <owner>bolian@chromium.org</owner>
  <summary>
    Time from redirectStart to redirectEnd based on Navigation Timing when
    redirects exist.
  </summary>
</histogram>

<histogram name="PLT.NT_Request" units="ms">
  <obsolete>
    Deprecated as of 7/19/2016. Replaced by
    PageLoad.ParseTiming.NavigationToParseStart.
  </obsolete>
  <owner>bolian@chromium.org</owner>
  <summary>
    Time from requestStart to responseStart based on Navigation Timing.
  </summary>
</histogram>

<histogram name="PLT.NT_Response" units="ms">
  <obsolete>
    Deprecated as of 7/19/2016. Replaced by PageLoad.ParseTiming.ParseDuration.
  </obsolete>
  <owner>bolian@chromium.org</owner>
  <summary>
    Time from responseStart to responseEnd based on Navigation Timing.
  </summary>
</histogram>

<histogram name="PLT.PageUsed_PrerenderLoad" enum="PageUsed">
  <obsolete>
    Deprecated as of 5/02/2011.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Distribution of discarded and displayed prerendered pages.</summary>
</histogram>

<histogram name="PLT.PerceivedLoadTime" units="ms">
  <obsolete>
    Deprecated as of 5/02/2011, replaced by Prerender.RendererPLT.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Perceived load time of a page. For non-prerendered pages, this is just
    BeginToFinish. For displayed prerendered pages, this is the time from when
    the prerendered page is moved into a TabContents until finish.
    &quot;Finish&quot; == after onload() and all resources are loaded. Note that
    this is 0 if the loading finishes before the page is moved into a
    TabContents.
  </summary>
</histogram>

<histogram name="PLT.PerceivedLoadTime_PrerenderLoad" units="ms">
  <obsolete>
    Deprecated as of 5/02/2011, replaced by
    Prerender.RendererPerceivedPLTMatched.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Perceived load time of a prerendered page that is displayed. This is the
    time from when the prerendered page is moved into a TabContents until
    finish. &quot;Finish&quot; == after onload() and all resources are loaded.
    Note that this is 0 if the loading finishes before the page is moved into a
    TabContents.
  </summary>
</histogram>

<histogram name="PLT.Prerender_TimeUntilDisplay" units="ms">
  <obsolete>
    Deprecated as of 5/02/2011, replaced by Prerender.RendererTimeUntilDisplay.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time elapsed between when the prerendering of a page starts and when the
    page is displayed. Prerendered pages discarded without being displayed are
    excluded from this count.
  </summary>
</histogram>

<histogram name="PLT.PrerenderIdleTime" units="ms">
  <obsolete>
    Deprecated as of 5/02/2011, replaced by Prerender.RendererIdleTime.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    This is the time from when a prerendered page finishes loading to when it is
    displayed. When a page is displayed before it finishes loading, no value is
    recorded in this histogram.
  </summary>
</histogram>

<histogram name="PLT.PT.NavigationStartToFirstLayout" units="ms">
  <obsolete>
    Deprecated. Use PageLoad.Timing2.* instead.
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's navigation start to the time the
    first document layout is performed.
  </summary>
</histogram>

<histogram name="PLT.PT.ResponseStartToFirstLayout" units="ms">
  <obsolete>
    Deprecated. Use PageLoad.Timing2.* instead.
  </obsolete>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    Measures the time from navigation timing's response start to the time the
    first document layout is performed.
  </summary>
</histogram>

<histogram name="PLT.PT_BeginToCommit" units="ms">
  <obsolete>
    Use PageLoad.Timing2.NavigationToCommit instead.
  </obsolete>
  <owner>pmeenan@chromium.org</owner>
  <summary>
    This time is based on the NavigationTiming spec and is a more accurate
    version of PLT.BeginToCommit. Commit: responseStart. Begin: requestStart or
    navigationStart if user-initiated request.
  </summary>
</histogram>

<histogram name="PLT.PT_BeginToCommit_DataReductionProxy" units="ms">
  <obsolete>
    Deprecated 9/2016. Use Use
    PageLoad.Clients.DataReductionProxy.DocumentTiming.NavigationToCommit
    instead.
  </obsolete>
  <owner>pmeenan@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <owner>megjablon@chromium.org</owner>
  <summary>
    This time is based on the PerformanceTiming spec and is a more accurate
    version of PLT.BeginToCommit. Commit: responseStart. Begin: requestStart or
    navigationStart if user-initiated request. Only page loads through the data
    reduction proxy are considered.
  </summary>
</histogram>

<histogram name="PLT.PT_BeginToFinish" units="ms">
  <obsolete>
    Use PageLoad.DocumentTiming.NavigationToLoadEventFired instead.
  </obsolete>
  <owner>pmeenan@chromium.org</owner>
  <summary>
    This time is based on the NavigationTiming spec and is a more accurate
    version of PLT.BeginToFinish. Finish: loadEventEnd. Begin: requestStart or
    navigationStart if user-initiated request.
  </summary>
</histogram>

<histogram name="PLT.PT_BeginToFinish_DataReductionProxy" units="ms">
  <obsolete>
    Deprecated 9/2016. Use Use
    PageLoad.Clients.DataReductionProxy.DocumentTiming.NavigationToLoadEventFired
    instead.
  </obsolete>
  <owner>pmeenan@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <owner>megjablon@chromium.org</owner>
  <summary>
    This time is based on the PerformanceTiming spec and is a more accurate
    version of PLT.BeginToFinish_SpdyProxy. Finish: loadEventEnd. Begin:
    requestStart or navigationStart if user-initiated request. Only page loads
    through the data reduction proxy are considered.
  </summary>
</histogram>

<histogram name="PLT.PT_BeginToFinishDoc" units="ms">
  <obsolete>
    Use PageLoad.DocumentTiming.NavigationToLoadEventFired instead.
  </obsolete>
  <owner>pmeenan@chromium.org</owner>
  <summary>
    This time is based on the NavigationTiming spec and is a more accurate
    version of PLT.BeginToFinishDoc. FinishDoc: loadEventStart. Begin:
    requestStart or navigationStart if user-initiated request.
  </summary>
</histogram>

<histogram name="PLT.PT_BeginToFinishDoc_DataReductionProxy" units="ms">
  <obsolete>
    Deprecated 09/2016. Use
    PageLoad.Clients.DataReductionProxy.DocumentTiming.NavigationToLoadEventFired
    instead.
  </obsolete>
  <owner>pmeenan@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <owner>megjablon@chromium.org</owner>
  <summary>
    This time is based on the PerformanceTiming spec and is a more accurate
    version of PLT.BeginToFinishDoc_SpdyProxy. FinishDoc: loadEventStart. Begin:
    requestStart or navigationStart if user-initiated request. Only page loads
    through the data reduction proxy are considered.
  </summary>
</histogram>

<histogram name="PLT.PT_CommitToFinish" units="ms">
  <obsolete>
    Use PageLoad.DocumentTiming.NavigationToLoadEventFired instead.
  </obsolete>
  <owner>pmeenan@chromium.org</owner>
  <summary>
    This time is based on the NavigationTiming spec and is a more accurate
    version of PLT.CommitToFinish. Commit: responseStart. Finish: loadEventEnd.
  </summary>
</histogram>

<histogram name="PLT.PT_CommitToFinish_DataReductionProxy" units="ms">
  <obsolete>
    Deprecated 09/2016. Use
    PageLoad.Clients.DataReductionProxy.DocumentTiming.NavigationToLoadEventFired
    instead.
  </obsolete>
  <owner>pmeenan@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <owner>megjablon@chromium.org</owner>
  <summary>
    This time is based on the PerformanceTiming spec and is a more accurate
    version of PLT.CommitToFinish. Commit: responseStart. Finish: loadEventEnd.
    Only page loads through the data reduction proxy are considered.
  </summary>
</histogram>

<histogram name="PLT.PT_CommitToFinishDoc" units="ms">
  <obsolete>
    Use PageLoad.DocumentTiming.NavigationToLoadEventFired instead.
  </obsolete>
  <owner>pmeenan@chromium.org</owner>
  <summary>
    This time is based on the NavigationTiming spec and is a more accurate
    version of PLT.CommitToFinishDoc. Commit: responseStart. FinishDoc:
    loadEventStart.
  </summary>
</histogram>

<histogram name="PLT.PT_CommitToFinishDoc_DataReductionProxy" units="ms">
  <obsolete>
    Deprecated 09/2016. Use
    PageLoad.Clients.DataReductionProxy.DocumentTiming.NavigationToLoadEventFired
    instead.
  </obsolete>
  <owner>pmeenan@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <owner>megjablon@chromium.org</owner>
  <summary>
    This time is based on the PerformanceTiming spec and is a more accurate
    version of PLT.CommitToFinishDoc. Commit: responseStart. FinishDoc:
    loadEventStart. Only page loads through the data reduction proxy are
    considered.
  </summary>
</histogram>

<histogram name="PLT.PT_FinishDocToFinish" units="ms">
  <obsolete>
    No longer needed.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    This time is based on the NavigationTiming spec and is a more accurate
    version of PLT.FinishDocToFinish. Finish: loadEventEnd. FinishDoc:
    loadEventStart.
  </summary>
</histogram>

<histogram name="PLT.PT_FinishDocToFinish_DataReductionProxy" units="ms">
  <obsolete>
    Deprecated 09/2016.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>megjablon@chromium.org</owner>
  <summary>
    This time is based on the PerformanceTiming spec and is a more accurate
    version of PLT.FinishDocToFinish. Finish: loadEventEnd. FinishDoc:
    loadEventStart. Only page loads through the data reduction proxy are
    considered.
  </summary>
</histogram>

<histogram name="PLT.PT_RequestToCommit" units="ms">
  <obsolete>
    Use PageLoad.Timing2.NavigationToCommit instead.
  </obsolete>
  <owner>pmeenan@chromium.org</owner>
  <summary>
    This time is based on the NavigationTiming spec and measures the time until
    the renderer got first byte of document. Commit: time when renderer got
    first byte of document. Request: navigationStart.
  </summary>
</histogram>

<histogram name="PLT.PT_RequestToDomContentLoaded" units="ms">
  <obsolete>
    Use PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired instead.
  </obsolete>
  <owner>pmeenan@chromium.org</owner>
  <summary>
    This time is based on the NavigationTiming spec and measures the time until
    the beginning of the DOMContentLoaded event. DOMContentLoaded:
    domContentLoadedEventStart. Request: navigationStart.
  </summary>
</histogram>

<histogram name="PLT.PT_RequestToFinish" units="ms">
  <obsolete>
    Use PageLoad.DocumentTiming.NavigationToLoadEventFired instead.
  </obsolete>
  <owner>pmeenan@chromium.org</owner>
  <summary>
    This time is based on the NavigationTiming spec and is a more accurate
    version of PLT.RequestToFinish. Finish: loadEventEnd. Request:
    navigationStart.
  </summary>
</histogram>

<histogram name="PLT.PT_RequestToFinish_DataReductionProxy" units="ms">
  <obsolete>
    Deprecated 09/2016. Use
    PageLoad.Clients.DataReductionProxy.DocumentTiming.NavigationToLoadEventFired
    instead.
  </obsolete>
  <owner>pmeenan@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <owner>megjablon@chromium.org</owner>
  <summary>
    This time is based on the PerformanceTiming spec and is a more accurate
    version of PLT.RequestToFinish. Finish: loadEventEnd. Request:
    navigationStart. Only page loads through the data reduction proxy are
    considered.
  </summary>
</histogram>

<histogram name="PLT.PT_RequestToFinishDoc" units="ms">
  <obsolete>
    Use PageLoad.DocumentTiming.NavigationToLoadEventFired instead.
  </obsolete>
  <owner>pmeenan@chromium.org</owner>
  <summary>
    This time is based on the NavigationTiming spec and measures the page load
    time until the beginning of the load event. Finish: loadEventStart. Request:
    navigationStart.
  </summary>
</histogram>

<histogram name="PLT.PT_RequestToStart" units="ms">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    This time is based on the NavigationTiming spec and is a more accurate
    version of PLT.RequestToStart. Start: requestStart. Request:
    navigationStart.
  </summary>
</histogram>

<histogram name="PLT.PT_RequestToStart_DataReductionProxy" units="ms">
  <obsolete>
    Deprecated 09/2016.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>megjablon@chromium.org</owner>
  <summary>
    This time is based on the PerformanceTiming spec and is a more accurate
    version of PLT.RequestToStart. Start: requestStart. Request:
    navigationStart. Only page loads through the data reduction proxy are
    considered.
  </summary>
</histogram>

<histogram name="PLT.PT_StartToCommit" units="ms">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    This time is based on the NavigationTiming spec and is a more accurate
    version of PLT.StartToCommit. Start: requestStart. Commit: responseStart.
  </summary>
</histogram>

<histogram name="PLT.PT_StartToCommit_DataReductionProxy" units="ms">
  <obsolete>
    Deprecated 09/2016.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>megjablon@chromium.org</owner>
  <summary>
    This time is based on the PerformanceTiming spec and is a more accurate
    version of PLT.StartToCommit. Start: requestStart. Commit: responseStart.
    Only page loads through the data reduction proxy are considered.
  </summary>
</histogram>

<histogram name="PLT.PT_StartToFinish" units="ms">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    This time is based on the NavigationTiming spec and is a more accurate
    version of PLT.StartToFinish. Start: requestStart. Finish: loadEventEnd.
  </summary>
</histogram>

<histogram name="PLT.PT_StartToFinish_DataReductionProxy" units="ms">
  <obsolete>
    Deprecated 09/2016.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>megjablon@chromium.org</owner>
  <summary>
    This time is based on the PerformanceTiming spec and is a more accurate
    version of PLT.StartToFinish. Start: requestStart. Finish: loadEventEnd.
    Only page loads through the data reduction proxy are considered.
  </summary>
</histogram>

<histogram name="PLT.RequestToFinish" units="ms">
  <obsolete>
    Use PageLoad.DocumentTiming.NavigationToLoadEventFired instead.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from &quot;request&quot; to &quot;finish.&quot; &quot;Request&quot; ==
    time when user requested document. &quot;Finish&quot; == after onload() and
    all resources are loaded.
  </summary>
</histogram>

<histogram name="PLT.RequestToStart" units="ms">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from &quot;request&quot; to &quot;start.&quot; &quot;Request&quot;==
    time when user requested document. &quot;Start&quot;== time when renderer
    requested load of document, after any unload of last document.
  </summary>
</histogram>

<histogram name="PLT.StartToCommit" units="ms">
  <obsolete>
    Use PageLoad.Timing2.NavigationToCommit instead.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from &quot;start&quot; to &quot;commit.&quot; &quot;Start&quot;== time
    when renderer requested load of document, after any unload of last document.
    &quot;Commit&quot;== time when renderer got first byte of document.
  </summary>
</histogram>

<histogram name="PLT.StartToFinish" units="ms">
  <obsolete>
    Use PageLoad.DocumentTiming.NavigationToLoadEventFired instead.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from &quot;start&quot; to &quot;finish.&quot; &quot;Start&quot;== time
    when renderer requested load of document, after any unload of last document.
    &quot;Finish&quot;==after onload() and all resources are loaded.
  </summary>
</histogram>

<histogram name="PLT.StartToFinish.NoProxy.http">
  <obsolete>
    Deprecated as of 07/2014.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>StartToFinish times when using http and no proxy.</summary>
</histogram>

<histogram name="PLT.StartToFinish.NoProxy.https">
  <obsolete>
    Deprecated as of 07/2014.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>StartToFinish times when using https and no proxy.</summary>
</histogram>

<histogram name="PLT.StartToFinish.Proxy.http">
  <obsolete>
    Deprecated as of 07/2014.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>StartToFinish times when using http over a proxy.</summary>
</histogram>

<histogram name="PLT.StartToFinish.Proxy.https">
  <obsolete>
    Deprecated as of 07/2014.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>StartToFinish times when using https over a proxy.</summary>
</histogram>

<histogram name="PLT.UserTiming_Mark" units="ms">
  <obsolete>
    Deprecated as of 09/2016.
  </obsolete>
  <owner>pmeenan@chromium.org</owner>
  <summary>
    This time is based on the User Timing spec and measures the time from
    Navigation Timing navigationStart until the point where the page called
    performance.mark().
  </summary>
</histogram>

<histogram name="PLT.UserTiming_MeasureDuration" units="ms">
  <obsolete>
    Deprecated as of 09/2016.
  </obsolete>
  <owner>pmeenan@chromium.org</owner>
  <summary>
    This time is based on the User Timing spec and reports the time between two
    arbitrary points defined by the page being loaded and directly matches the
    measurement exposed by performance.measure().
  </summary>
</histogram>

<histogram name="Plugin.AvailabilityStatus.WidevineCdm"
    enum="PluginAvailabilityStatus">
  <obsolete>
    Deprecated as of 01/2017 (M65).
  </obsolete>
  <owner>xhwang@chromium.org</owner>
  <summary>
    The availability status of Widevine CDM. In normal cases, this is reported
    per render process if EME API is used. This is not reported if EME API is
    not used. This could be reported multiple times per render process until
    PLUGIN_AVAILABLE is reported (which should be a rare case).
  </summary>
</histogram>

<histogram name="Plugin.EnabledStatusMigrationDone" enum="Boolean">
  <owner>pastarmovj@chromium.org</owner>
  <owner>tommycli@chromium.org</owner>
  <summary>Tracks whether plugins that were disabled were migrated.</summary>
</histogram>

<histogram name="Plugin.Flash.ClickSize.AspectRatio" units="%">
  <owner>tommycli@chromium.org</owner>
  <summary>
    Aspect ratio of Flash plugins users click at least once. The aspect ratio is
    multiplied by 100 and stored as a rounded integer.
  </summary>
</histogram>

<histogram name="Plugin.Flash.ClickSize.Height" units="pixels">
  <owner>tommycli@chromium.org</owner>
  <summary>Height of Flash plugins users click at least once.</summary>
</histogram>

<histogram name="Plugin.Flash.ClickSize.Width" units="pixels">
  <owner>tommycli@chromium.org</owner>
  <summary>Width of Flash plugins users click at least once.</summary>
</histogram>

<histogram name="Plugin.Flash.Engagement">
  <obsolete>
    Deprecated 12/2017 in Issue 781644 as we no longer use Site Engagement Index
    as a signal for Flash display.
  </obsolete>
  <owner>dominickn@chromium.org</owner>
  <summary>
    The engagement score of origins which have passed through a site engagement
    check to permit or block Flash. Recorded every time the Flash plugin is
    requested with the PreferHtmlOverPlugins feature active.
  </summary>
</histogram>

<histogram name="Plugin.Flash.TinyContentSize" enum="FlashTinyContentSize">
  <owner>tommycli@chromium.org</owner>
  <summary>
    Collects the sizes of all loaded Flash plugin instances. This is for
    determining the prevalence of tiny flash plugin instances.
  </summary>
</histogram>

<histogram name="Plugin.Flash.YouTubeRewrite" enum="YouTubeRewriteStatus">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <summary>
    Records the YouTube Flash embed rewrite status when attempted.
  </summary>
</histogram>

<histogram name="Plugin.FlashNavigateUsage" enum="FlashNavigateUsageType"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Record usage of PPB_Flash.Navigate() Pepper API.</summary>
</histogram>

<histogram name="Plugin.FlashUsage" enum="FlashUsage">
  <owner>yzshen@chromium.org</owner>
  <owner>thestig@chromium.org</owner>
  <summary>Collects Flash usage data.</summary>
</histogram>

<histogram name="Plugin.NpapiRemovalInfobar.Removed.PluginGroup"
    enum="PluginGroup">
  <obsolete>
    Deprecated due to NPAPI removal.
  </obsolete>
  <owner>wfh@chromium.org</owner>
  <summary>
    The plugin group of an NPAPI plugin that is no longer supported. Recorded
    when the NPAPI removal infobar is shown for a plugin which is no longer
    supported.
  </summary>
</histogram>

<histogram name="Plugin.NpapiRemovalInfobar.RemovedSoon.PluginGroup"
    enum="PluginGroup">
  <obsolete>
    Deprecated due to NPAPI removal.
  </obsolete>
  <owner>wfh@chromium.org</owner>
  <summary>
    The plugin group of an NPAPI plugin that will be unsupported soon. Recorded
    when the NPAPI removal infobar is shown after an NPAPI plugin first loads to
    warn the user that NPAPI support for this plugin will be removed soon.
  </summary>
</histogram>

<histogram name="Plugin.NPAPIStatus" enum="NPAPIPluginStatus">
  <obsolete>
    Deprecated due to NPAPI removal.
  </obsolete>
  <owner>wfh@chromium.org</owner>
  <summary>
    Records whether NPAPI plugins are supported by the platform, and if so,
    whether they are enabled or disabled. Recorded once at browser startup.
  </summary>
</histogram>

<histogram name="Plugin.PowerSaver.PeripheralHeuristic"
    enum="PluginPowerSaverPeripheralHeuristicDecision">
  <obsolete>
    Deprecated in favor of Plugin.PowerSaver.PeripheralHeuristicInitialDecision.
  </obsolete>
  <owner>tommycli@chromium.org</owner>
  <summary>
    Records each decision of the Plugin Power Saver peripheral content
    heuristic. This UMA is counted once per peripheral query, and may count a
    single plugin instance multiple times as it is resized.
  </summary>
</histogram>

<histogram name="Plugin.PowerSaver.PeripheralHeuristicInitialDecision"
    enum="PluginPowerSaverPeripheralHeuristicDecision">
  <owner>tommycli@chromium.org</owner>
  <summary>
    Records the initial decision of the Plugin Power Saver peripheral content
    heuristic for each plugin instance. This is recorded once per plugin
    instance.
  </summary>
</histogram>

<histogram name="Plugin.PowerSaver.PosterParamPresence"
    enum="PluginPowerSaverPosterParamPresence">
  <owner>tommycli@chromium.org</owner>
  <summary>
    Record how many plugin object tags use poster param. This is recorded once
    per plugin instance, and is currently restricted to Flash plugin instances.
  </summary>
</histogram>

<histogram name="Plugin.PowerSaver.Unthrottle"
    enum="PluginPowerSaverUnthrottleMethod">
  <owner>tommycli@chromium.org</owner>
  <summary>
    Record how many throttled plugins are unthrottled, and by what method.
  </summary>
</histogram>

<histogram name="Plugin.PpapiBrokerLoadErrorCode" enum="WinGetLastError">
  <owner>xhwang@chromium.org</owner>
  <summary>
    The error code of a PPAPI broker load failure. Only reported on Windows.
  </summary>
</histogram>

<histogram name="Plugin.PpapiBrokerLoadResult" enum="PluginLoadResult">
  <owner>xhwang@chromium.org</owner>
  <summary>The result from an attempt to load a PPAPI broker.</summary>
</histogram>

<histogram name="Plugin.PpapiBrokerLoadTime" units="ms">
  <owner>xhwang@chromium.org</owner>
  <summary>The time spent to load a PPAPI broker.</summary>
</histogram>

<histogram name="Plugin.PpapiPluginLoadErrorCode" enum="WinGetLastError">
  <owner>xhwang@chromium.org</owner>
  <summary>
    The error code of a PPAPI plugin load failure. Only reported on Windows.
  </summary>
</histogram>

<histogram name="Plugin.PpapiPluginLoadResult" enum="PluginLoadResult">
  <owner>xhwang@chromium.org</owner>
  <summary>The result from an attempt to load a PPAPI plugin.</summary>
</histogram>

<histogram name="Plugin.PpapiPluginLoadTime" units="ms">
  <owner>xhwang@chromium.org</owner>
  <summary>The time spent to load a PPAPI plugin.</summary>
</histogram>

<histogram name="Plugin.PpapiSyncIPCTime" units="ms" expires_after="2018-08-30">
  <owner>gab@chromium.org</owner>
  <summary>
    The time it took to complete a synchronous IPC made from the PPAPI process.
  </summary>
</histogram>

<histogram name="Plugin.RequestObjectResult" enum="BooleanSuccess">
  <owner>mlamouri@chromium.org</owner>
  <summary>Result of HTMLPluginElement::requestObject in Blink.</summary>
</histogram>

<histogram name="Plugin.SyncMessageTime" units="ms">
  <obsolete>
    Deprecated due to NPAPI removal.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Roundtrip times for synchronous IPC calls from the renderer to NPAPI plugin
    processes.
  </summary>
</histogram>

<histogram name="PluginFinder.BuiltInPluginList.ErrorCode"
    enum="PluginListError">
  <owner>twellington@chromium.org</owner>
  <owner>wfh@chromium.org</owner>
  <summary>
    Error codes when parsing the built-in plugin list. Logged when the
    PluginFinder singleton is created.
  </summary>
</histogram>

<histogram name="Power.BacklightLevelOnAC" units="%">
  <owner>derat@chromium.org</owner>
  <summary>
    The level of the backlight as a percentage when the user is on AC. Sampled
    every 30 seconds.
  </summary>
</histogram>

<histogram name="Power.BacklightLevelOnBattery" units="%">
  <owner>derat@chromium.org</owner>
  <summary>
    The level of the backlight as a percentage when the user is on battery.
    Sampled every 30 seconds.
  </summary>
</histogram>

<histogram name="Power.BatteryChargeHealth" units="%">
  <owner>derat@chromium.org</owner>
  <summary>
    Chrome OS battery charge health percentage. Sampled once when device starts
    charging.
  </summary>
</histogram>

<histogram name="Power.BatteryDischargePercentPerHour" units="%">
  <obsolete>
    Deprecated 02/2017 in favor of power benchmarks that have less variability
    than data from users' machines.
  </obsolete>
  <owner>jeremy@chromium.org</owner>
  <summary>
    The percentage of battery capacity used per hour relative to a full battery.
    Reported once when the power adaptor is plugged back in after the system is
    on battery power for more than 30 minutes. If at any point the system is
    suspended or all Chrome renderers are closed the measurement is not
    recorded. Anytime the user unplugs the power adaptor, a new measurement will
    begin being recorded. Collection of this histogram only starts after 30
    minutes of uptime at which point the clock starts (assuming the user is on
    battery power at that point). The system will need to remain unplugged for
    at least another 30 minutes in order for any measurement to be recorded.
    Values are normalized to a percent per hour scale. This measurement is tied
    tightly to hardware model/OS and is not comparable across different hardware
    configurations.
  </summary>
</histogram>

<histogram name="Power.BatteryDischargeRate" units="mW">
  <owner>derat@chromium.org</owner>
  <summary>
    Chrome OS battery discharge rate in mW sampled every 30 seconds while the
    device runs on battery.
  </summary>
</histogram>

<histogram name="Power.BatteryDischargeRate_15" units="%">
  <obsolete>
    Deprecated 02/2017 in favor of power benchmarks that have less variability
    than data from users' machines.
  </obsolete>
  <owner>jeremy@chromium.org</owner>
  <summary>
    The percent of depleted battery capacity relative to a full battery over the
    first 15 minutes after battery power collection information starts.
    Collection of this histogram only starts after 30 minutes of uptime at which
    point the clock starts (assuming the user is on battery power at that
    point). The system will need to remain unplugged for at least another 15
    minutes in order for any measurement to be recorded. Values are normalized
    to a percent per hour scale. This measurement is tied tightly to hardware
    model/OS and is not comparable across different hardware configurations.
  </summary>
</histogram>

<histogram name="Power.BatteryDischargeRate_30" units="%">
  <obsolete>
    Deprecated 02/2017 in favor of power benchmarks that have less variability
    than data from users' machines.
  </obsolete>
  <owner>jeremy@chromium.org</owner>
  <summary>
    The percent of depleted battery capacity relative to a full battery over the
    first 30 minutes after battery power collection information starts.
    Collection of this histogram only starts after 30 minutes of uptime at which
    point the clock starts (assuming the user is on battery power at that
    point). The system will need to remain unplugged for at least another 30
    minutes in order for any measurement to be recorded. Values are normalized
    to a percent per hour scale. This measurement is tied tightly to hardware
    model/OS and is not comparable across different hardware configurations.
  </summary>
</histogram>

<histogram name="Power.BatteryDischargeRate_5" units="%">
  <obsolete>
    Deprecated 02/2017 in favor of power benchmarks that have less variability
    than data from users' machines.
  </obsolete>
  <owner>jeremy@chromium.org</owner>
  <summary>
    The percent of depleted battery capacity relative to a full battery over the
    first 5 minutes after battery power collection information starts.
    Collection of this histogram only starts after 30 minutes of uptime at which
    point the clock starts (assuming the user is on battery power at that
    point). The system will need to remain unplugged for at least another 5
    minutes in order for any measurement to be recorded. Values are normalized
    to a percent per hour scale. This measurement is tied tightly to hardware
    model/OS and is not comparable across different hardware configurations.
  </summary>
</histogram>

<histogram name="Power.BatteryDischargeRateWhileSuspended" units="mW">
  <owner>derat@chromium.org</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.BatteryInfoSample" enum="BatteryInfoSampleResult">
  <owner>derat@chromium.org</owner>
  <summary>
    Counts the number of times we have read the battery status from sysfs and if
    it gave us sensible values.
  </summary>
</histogram>

<histogram name="Power.BatteryRemainingAtEndOfSessionOnAC" units="%">
  <owner>derat@chromium.org</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="%">
  <owner>derat@chromium.org</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="%">
  <owner>derat@chromium.org</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="%">
  <owner>derat@chromium.org</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.BatteryRemainingCharge" units="%">
  <obsolete>
    Deprecated as of 03/2012, no longer being generated by powerd.
  </obsolete>
  <owner>derat@chromium.org</owner>
  <summary>
    Chrome OS remaining battery charge as percent of the maximum battery charge
    sampled when the device runs on battery.
  </summary>
</histogram>

<histogram name="Power.BatteryRemainingWhenChargeStarts" units="%">
  <owner>derat@chromium.org</owner>
  <summary>
    Chrome OS remaining battery charge as percent of the maximum battery charge,
    sampled when charging starts.
  </summary>
</histogram>

<histogram name="Power.BatteryTimeToEmpty" units="minutes">
  <obsolete>
    Deprecated as of 03/2012, no longer being generated by powerd.
  </obsolete>
  <owner>derat@chromium.org</owner>
  <summary>
    Chrome OS remaining time to empty battery in minutes sampled when the device
    runs on battery.
  </summary>
</histogram>

<histogram name="Power.BitfixChunks">
  <owner>dianders@chromium.org</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">
  <owner>dianders@chromium.org</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.BrightnessAdjustOnAC" enum="PowerBrightnessAdjust">
  <obsolete>
    Deprecated as of 5/2013. See Accel_BrightnessDown_F6 and
    Accel_BrightnessUp_F7 user actions instead.
  </obsolete>
  <owner>derat@chromium.org</owner>
  <summary>
    Number of times the user has adjusted brightness up and down while running
    on battery power.
  </summary>
</histogram>

<histogram name="Power.BrightnessAdjustOnBattery" enum="PowerBrightnessAdjust">
  <obsolete>
    Deprecated as of 5/2013. See Accel_BrightnessDown_F6 and
    Accel_BrightnessUp_F7 user actions instead.
  </obsolete>
  <owner>derat@chromium.org</owner>
  <summary>
    Number of times the user has adjusted brightness up and down while running
    on AC power.
  </summary>
</histogram>

<histogram name="Power.ChargerType" enum="PowerChargerType">
  <obsolete>
    Deprecated 11/2014 in issue 427057.
  </obsolete>
  <owner>derat@chromium.org</owner>
  <summary>
    External power supply type such as MAINS_CHARGER, USB_CHARGER,
    UNCONFIRMED_SPRING_CHARGER, SAFE_SPRING_CHARGER. A sample is reported each
    time a charger is connected to the device.
  </summary>
</histogram>

<histogram name="Power.ConnectedChargingPorts"
    enum="PowerConnectedChargingPorts">
  <owner>bleung@chromium.org</owner>
  <owner>derat@chromium.org</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.
  </summary>
</histogram>

<histogram name="Power.DarkResumeWakeDurationMs" units="ms">
  <owner>chirantan@chromium.org</owner>
  <owner>abhishekbh@chromium.org</owner>
  <owner>ravisadineni@chromium.org</owner>
  <summary>
    The amount of time a system spent awake every time it woke up in dark
    resume.
  </summary>
</histogram>

<histogram name="Power.DarkResumeWakeDurationMs.Other" units="ms">
  <owner>chirantan@chromium.org</owner>
  <owner>abhishekbh@chromium.org</owner>
  <owner>ravisadineni@chromium.org</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.
  </summary>
</histogram>

<histogram name="Power.DarkResumeWakeDurationMs.WiFi.Disconnect" units="ms">
  <owner>chirantan@chromium.org</owner>
  <owner>abhishekbh@chromium.org</owner>
  <owner>ravisadineni@chromium.org</owner>
  <summary>
    The amount of time a system spent awake every time it woke up in dark resume
    triggered by a WiFi disconnect.
  </summary>
</histogram>

<histogram name="Power.DarkResumeWakeDurationMs.WiFi.Pattern" units="ms">
  <owner>chirantan@chromium.org</owner>
  <owner>abhishekbh@chromium.org</owner>
  <owner>ravisadineni@chromium.org</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.
  </summary>
</histogram>

<histogram name="Power.DarkResumeWakeDurationMs.WiFi.SSID" units="ms">
  <owner>chirantan@chromium.org</owner>
  <owner>abhishekbh@chromium.org</owner>
  <owner>ravisadineni@chromium.org</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.
  </summary>
</histogram>

<histogram name="Power.DarkResumeWakeupsPerHour">
  <owner>chirantan@chromium.org</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.
  </summary>
</histogram>

<histogram name="Power.ExternalBrightnessReadResult"
    enum="ExternalDisplayReceiveResult">
  <owner>derat@chromium.org</owner>
  <summary>
    The result of attempting to read an external display's brightness on Chrome
    OS. A read attempt is made after successfully requesting the brightness (see
    Power.ExternalBrightnessRequestResult).
  </summary>
</histogram>

<histogram name="Power.ExternalBrightnessRequestResult"
    enum="ExternalDisplaySendResult">
  <owner>derat@chromium.org</owner>
  <summary>
    The result of requesting an external display's brightness on Chrome OS. A
    request is sent when the user presses a brightness key and the current
    brightness is not already cached. A successful request is followed shortly
    thereafter by a read attempt (see Power.ExternalBrightnessReadResult).
  </summary>
</histogram>

<histogram name="Power.ExternalBrightnessWriteResult"
    enum="ExternalDisplaySendResult">
  <owner>derat@chromium.org</owner>
  <summary>
    The result of attempting to change an external display's brightness on
    Chrome OS. A request is sent when the user presses a brightness key and the
    current brightness is either already cached or successfully loaded.
  </summary>
</histogram>

<histogram name="Power.ExternalDisplayOpenResult"
    enum="ExternalDisplayOpenResult">
  <owner>derat@chromium.org</owner>
  <summary>
    The result of attempting to open an I2C device to control an external
    display's brightness on Chrome OS. An attempt is made when a display is
    connected to a device that lacks an internal display.
  </summary>
</histogram>

<histogram name="Power.FirmwareResumeTimeOnAC" units="ms">
  <owner>snanda@chromium.org</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">
  <owner>snanda@chromium.org</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.IdleScreenDimCountDaily" units="count">
  <owner>derat@chromium.org</owner>
  <summary>
    Number of times that that the screen has been dimmed in response to user
    inactivity, reported daily. The count is accumulated through the day,
    spanning reboots, and sent once the system clock indicates that a full day
    or more has passed since the last report. If the system is suspended or off
    for more than a day, the current count will be reported immediately the next
    time the system boots, but the skipped days will not be reported. Chrome OS
    only.
  </summary>
</histogram>

<histogram name="Power.IdleScreenOffCountDaily" units="count">
  <owner>derat@chromium.org</owner>
  <summary>
    Number of times that that the screen has been turned off in response to user
    inactivity, reported daily. The count is accumulated through the day,
    spanning reboots, and sent once the system clock indicates that a full day
    or more has passed since the last report. If the system is suspended or off
    for more than a day, the current count will be reported immediately the next
    time the system boots, but the skipped days will not be reported. Chrome OS
    only.
  </summary>
</histogram>

<histogram name="Power.IdleSuspendCountDaily" units="count">
  <owner>derat@chromium.org</owner>
  <summary>
    Number of times that that the system has suspended in response to user
    inactivity, reported daily. The count is accumulated through the day,
    spanning reboots, and sent once the system clock indicates that a full day
    or more has passed since the last report. If the system is suspended or off
    for more than a day, the current count will be reported immediately the next
    time the system boots, but the skipped days will not be reported. Chrome OS
    only.
  </summary>
</histogram>

<histogram name="Power.IdleTimeAfterDimOnAC" units="ms">
  <owner>derat@chromium.org</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">
  <owner>derat@chromium.org</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">
  <owner>derat@chromium.org</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">
  <owner>derat@chromium.org</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">
  <owner>derat@chromium.org</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">
  <owner>derat@chromium.org</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.KernelResumeTimeOnAC" units="ms">
  <owner>snanda@chromium.org</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">
  <owner>snanda@chromium.org</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.
  </summary>
</histogram>

<histogram name="Power.KernelSuspendTimeOnAC" units="ms">
  <owner>snanda@chromium.org</owner>
  <summary>
    The time that the kernel took to suspend-to-RAM the Chrome OS device when
    running on AC.
  </summary>
</histogram>

<histogram name="Power.KernelSuspendTimeOnBattery" units="ms">
  <owner>snanda@chromium.org</owner>
  <summary>
    The time that the kernel took to suspend-to-RAM the Chrome OS device when
    running on battery.
  </summary>
</histogram>

<histogram name="Power.KeyboardBacklightLevel" units="%">
  <owner>derat@chromium.org</owner>
  <summary>
    The level of the keyboard backlight as a percentage. Sampled every 30
    seconds.
  </summary>
</histogram>

<histogram name="Power.LengthOfSession" units="seconds">
  <owner>derat@chromium.org</owner>
  <summary>
    The length of time, in seconds, that a user spent in a single session.
    Values for this metric are clamped to 12 hours, so the last bucket should be
    considered to be including all metrics above 12 hours.
  </summary>
</histogram>

<histogram name="Power.LidClosedSuspendCountDaily" units="count">
  <owner>derat@chromium.org</owner>
  <summary>
    Number of times that that the system has suspended in response to its lid
    being closed, reported daily. The count is accumulated through the day,
    spanning reboots, and sent once the system clock indicates that a full day
    or more has passed since the last report. If the system is suspended or off
    for more than a day, the current count will be reported immediately the next
    time the system boots, but the skipped days will not be reported. Chrome OS
    only.
  </summary>
</histogram>

<histogram base="true" name="Power.Mac" units="mW">
  <owner>sdy@chromium.org</owner>
  <summary>
    Instantaneous power consution in milliwatts, for the system as a whole and
    broken down by component. Only recorded on macOS.
  </summary>
</histogram>

<histogram name="Power.Mac.AppleSMCOpened" enum="BooleanSuccess">
  <owner>sdy@chromium.org</owner>
  <summary>
    When metrics collection started, records true if a handle to the System
    Management Controller (SMC) was successfully opened to monitor power
    consumption, false otherwise. If false, a system API might have changed in a
    new version of macOS, or Chrome might be running in a nonstandard
    environment (VM, hackintosh). Only recorded on macOS.
  </summary>
</histogram>

<histogram name="Power.MetricsDailyEventInterval" enum="DailyEventIntervalType">
  <owner>derat@chromium.org</owner>
  <summary>
    Reasons why power-management-related daily metrics were reported. Chrome OS
    only.
  </summary>
</histogram>

<histogram name="Power.MilliConsumptionPerHourIosOnActive">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The average power consumption, measured in milli-units per hour, when sync
    invalidator listens to on_application_active events. Values for this metric
    are per session, i.e. from battery level at application entering foreground
    to returning to background, and normalized to an hourly average consumption.
    This is an iOS only measurement. Due to how iOS reports battery levels, it
    is likely to see many readings of 0.
  </summary>
</histogram>

<histogram name="Power.MilliConsumptionPerHourOthers">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The average power consumption, measured in milli-units per hour, for other
    sync invalidator methods. Values for this metric are per session, i.e. from
    battery level at application entering foreground to returning to background,
    and normalized to an hourly average consumption. This is an iOS only
    measurement. Due to how iOS reports battery levels, it is likely to see many
    readings of 0.
  </summary>
</histogram>

<histogram name="Power.MilliConsumptionPerHourP2P">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The average power consumption, measured in milli-units per hour, when sync
    invalidator uses peer-to-peer notifications. Values for this metric are per
    session, i.e. from battery level at application entering foreground to
    returning to background, and normalized to an hourly average consumption.
    This is an iOS only measurement. Due to how iOS reports battery levels, it
    is likely to see many readings of 0.
  </summary>
</histogram>

<histogram name="Power.MilliConsumptionPerHourServer">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The average power consumption, measured in milli-units per hour, when sync
    invalidator uses server-based non-blocking invalidator. Values for this
    metric are per session, i.e. from battery level at application entering
    foreground to returning to background, and normalized to an hourly average
    consumption. This is an iOS only measurement. Due to how iOS reports battery
    levels, it is likely to see many readings of 0.
  </summary>
</histogram>

<histogram name="Power.NumberOfAlsAdjustmentsPerSession">
  <owner>derat@chromium.org</owner>
  <summary>
    The number of times that the Automatic Light Sensor (ALS) adjusted the
    brightness during a session. 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.NumberOfSessionsPerCharge">
  <owner>derat@chromium.org</owner>
  <summary>
    The number of user sessions that occured since the last time that the device
    was charged. Values for this metric are clamped at 10k, so the last bucket
    should be considered to include all metrics about 10k.
  </summary>
</histogram>

<histogram name="Power.PowerButtonAcknowledgmentDelay" units="ms">
  <owner>derat@chromium.org</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.PowerButtonDownTime" units="ms">
  <owner>derat@chromium.org</owner>
  <summary>
    The amount of time between the user pressing the power button and releasing
    it on Chrome OS.
  </summary>
</histogram>

<histogram name="Power.PowerButtonMenuAction" enum="PowerButtonMenuActionType">
  <owner>minch@chromium.org</owner>
  <summary>Actions performed while the power button menu is open.</summary>
</histogram>

<histogram name="Power.PowerButtonPressInLaptopMode"
    enum="PowerButtonPressType">
  <owner>minch@chromium.org</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">
  <owner>minch@chromium.org</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">
  <owner>bleung@chromium.org</owner>
  <owner>derat@chromium.org</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.
  </summary>
</histogram>

<histogram name="Power.PowerSupplyMaxVoltage" units="V">
  <owner>bleung@chromium.org</owner>
  <owner>derat@chromium.org</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.
  </summary>
</histogram>

<histogram name="Power.PowerSupplyType" enum="PowerSupplyType">
  <owner>bleung@chromium.org</owner>
  <owner>derat@chromium.org</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.
  </summary>
</histogram>

<histogram name="Power.RetrySuspendCount">
  <obsolete>
    Deprecated Feb 2014 by Power.SuspendAttemptsBeforeCancel and
    Power.SuspendAttemptsBeforeSuccess.
  </obsolete>
  <owner>derat@chromium.org</owner>
  <summary>
    The number of times Chrome OS retried suspend due to previous failure.
  </summary>
</histogram>

<histogram name="Power.ShutdownReason" enum="ShutdownReason">
  <owner>derat@chromium.org</owner>
  <summary>
    The reason for the Chrome OS power manager shutting down or rebooting the
    system.
  </summary>
</histogram>

<histogram name="Power.SuspendAttempt" enum="SuspendAttempt">
  <owner>derat@chromium.org</owner>
  <owner>snanda@chromium.org</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">
  <owner>derat@chromium.org</owner>
  <owner>snanda@chromium.org</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.
  </summary>
</histogram>

<histogram name="Power.SuspendAttemptsBeforeSuccess">
  <owner>derat@chromium.org</owner>
  <owner>snanda@chromium.org</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.
  </summary>
</histogram>

<histogram name="Power.SuspendResult" enum="SuspendResult">
  <owner>derat@chromium.org</owner>
  <owner>snanda@chromium.org</owner>
  <summary>
    The results of suspend attempts on Chrome OS. Samples are reported after
    each attempt.
  </summary>
</histogram>

<histogram name="Power.SuspendStatus" enum="SuspendStatus">
  <obsolete>
    Deprecated Jan 2014 by Power.SuspendAttempt and Power.SuspendResult.
  </obsolete>
  <owner>derat@chromium.org</owner>
  <summary>Chrome OS suspend status.</summary>
</histogram>

<histogram name="Power.ThermalAbortedFanTurnOn" units="%">
  <obsolete>
    No longer sent.
  </obsolete>
  <owner>derat@chromium.org</owner>
  <summary>
    The percentage of aborted fan attempts out of total fan attempts per
    session, where an abort is due to hysteresis. This value is computed from
    boot and sent when powerd starts and then every 15 minutes afterwards.
  </summary>
</histogram>

<histogram name="Power.ThermalMultipleFanTurnOn" units="%">
  <obsolete>
    No longer sent.
  </obsolete>
  <owner>derat@chromium.org</owner>
  <summary>
    The percentage of fan trip point passes that are more than one trip point.
    This value is computed from boot and sent when powerd starts and then every
    15 minutes afterwards.
  </summary>
</histogram>

<histogram name="Power.TimeInSuspendAtBoot" units="minutes">
  <owner>derat@chromium.org</owner>
  <owner>snanda@chromium.org</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">
  <owner>derat@chromium.org</owner>
  <owner>snanda@chromium.org</owner>
  <summary>
    Chrome OS time in minutes spent in suspend-to-RAM mode sampled at resume.
  </summary>
</histogram>

<histogram name="Power.UserBrightnessAdjustmentsPerSessionOnAC">
  <owner>derat@chromium.org</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">
  <owner>derat@chromium.org</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="PowerML.DimImminent.Action" enum="PowerMLDimImminentAction">
  <owner>jiameng@chromium.org</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">
  <owner>jiameng@chromium.org</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">
  <owner>jiameng@chromium.org</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">
  <owner>jiameng@chromium.org</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">
  <owner>jiameng@chromium.org</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.SmartDimModel.RequestCanceledDuration" units="ms">
  <owner>amoylan@chromium.org</owner>
  <owner>jiameng@chromium.org</owner>
  <owner>napper@chromium.org</owner>
  <owner>pmalani@chromium.org</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">
  <owner>amoylan@chromium.org</owner>
  <owner>jiameng@chromium.org</owner>
  <owner>napper@chromium.org</owner>
  <owner>pmalani@chromium.org</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">
  <owner>jiameng@chromium.org</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">
  <owner>jiameng@chromium.org</owner>
  <summary>
    The result of parsing the dim threshold parameter value. Only applicable to
    Chrome OS.
  </summary>
</histogram>

<histogram name="Precache.BatteryPercentage.Start" units="%">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>rajendrant@chromium.org</owner>
  <summary>
    The battery level in percentage when the precache task was started.
  </summary>
</histogram>

<histogram name="Precache.BatteryPercentageDiff.End" units="%">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <owner>rajendrant@chromium.org</owner>
  <summary>
    Measures the difference between the battery level percentage when the
    precache task is started and ended. This value indicates the possible
    battery usage due to the precache task. Logged when the precache task ends,
    which could be due to successful completion, time-out, error conditions, max
    download limit exceeded, etc.
  </summary>
</histogram>

<histogram name="Precache.CacheSize.AllEntries" units="KB">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>jamartin@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The size in kilobytes occupied by all the entries existing in the cache at
    the time of the last precache.
  </summary>
</histogram>

<histogram name="Precache.CacheStatus.NonPrefetch" enum="HttpCachePattern">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>jamartin@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Like HttpCache.Pattern but only for requests not made during precaching.
    Logged per-request.
  </summary>
</histogram>

<histogram name="Precache.CacheStatus.NonPrefetch.FromPrecache"
    enum="HttpCachePattern">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>jamartin@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Like Precache.CacheStatus.NonPrefetch but only for requests which having a
    matching URL in the precache. Measures the amount of precache misses due to
    expiration or eviction. Logged per-request.
  </summary>
</histogram>

<histogram name="Precache.CacheStatus.NonPrefetch.NonTopHosts"
    enum="HttpCachePattern">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>twifkak@chromium.org</owner>
  <owner>jamartin@chromium.org</owner>
  <summary>
    Like Precache.CacheStatus.NonPrefetch, but only for requests with a referer
    not in the user's top visited hosts. See History.TopHostsVisitsByRank for
    details on the top hosts computation.
  </summary>
</histogram>

<histogram name="Precache.CacheStatus.NonPrefetch.TopHosts"
    enum="HttpCachePattern">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>twifkak@chromium.org</owner>
  <owner>jamartin@chromium.org</owner>
  <summary>
    Like Precache.CacheStatus.NonPrefetch, but only for requests with a referer
    in the user's top visited hosts. See History.TopHostsVisitsByRank for
    details on the top hosts computation.
  </summary>
</histogram>

<histogram name="Precache.CacheStatus.Prefetch" enum="HttpCachePattern">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>jamartin@chromium.org</owner>
  <owner>twifkak@chromium.org</owner>
  <summary>
    Like HttpCache.Pattern but only for requests made during precaching. Logged
    per-request.
  </summary>
</histogram>

<histogram name="Precache.DownloadedNonPrecache" units="bytes">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <summary>
    The number of bytes that were downloaded over the network for HTTP/HTTPS
    fetches that were not motivated by precaching. Logged per-request.
  </summary>
</histogram>

<histogram name="Precache.DownloadedPrecacheMotivated" units="bytes">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <summary>
    The number of bytes that were downloaded because of precaching. Logged
    per-request.
  </summary>
</histogram>

<histogram name="Precache.Events" enum="PrecacheEvents">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Enumerates the various failure reasons and events of interest for
    precaching. The events are persisted when the native library is not loaded,
    and recorded when the library loads next time.
  </summary>
</histogram>

<histogram name="Precache.Fetch.FailureReasons">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>twifkak@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    A bit vector of reasons why the precache fetch failed to start. Bit values
    are documented in the FailureReason Java enum.
  </summary>
</histogram>

<histogram name="Precache.Fetch.MinWeight" units="thousandths">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>twifkak@chromium.org</owner>
  <summary>
    The minimum resource weight that is fetched in a given precache run.
    Reported if the precache completed successfully or was canceled due to the
    byte cap, but not if it was cancelled due to an ill-formed manifest or
    exceeding the time limit. Reported only if global_ranking is true.
  </summary>
</histogram>

<histogram name="Precache.Fetch.PercentCompleted" units="%">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>twifkak@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The percent of manifests for which all resources have been downloaded.
    Logged per prefetch run.
  </summary>
</histogram>

<histogram name="Precache.Fetch.ResponseBytes" units="bytes">
  <obsolete>
    Deprecated July 29 2015.
  </obsolete>
  <owner>twifkak@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The total number of response bytes received from all prefetch requests,
    including config, manifests, and resources. Logged per prefetch run.
  </summary>
</histogram>

<histogram name="Precache.Fetch.ResponseBytes.Daily" units="bytes">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>twifkak@chromium.org</owner>
  <summary>
    The total number of response bytes in 24 hours received over the network
    from all prefetch requests, including config, manifests, and resources.
    Logged during the next precache run after the 24 hours has elapsed.
  </summary>
</histogram>

<histogram name="Precache.Fetch.ResponseBytes.Network" units="bytes">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>twifkak@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The total number of response bytes received over the network from all
    prefetch requests, including config, manifests, and resources. Logged per
    prefetch run.
  </summary>
</histogram>

<histogram name="Precache.Fetch.ResponseBytes.NetworkWasted" units="bytes">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The total number of response bytes received over the network for a wasted
    resource precache fetch. Logged when a partially downloaded resource
    precache fetch gets cancelled due to per-resource size limit or max precache
    size limit.
  </summary>
</histogram>

<histogram name="Precache.Fetch.ResponseBytes.Total" units="bytes">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>twifkak@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The total number of response bytes contained in all prefetch requests,
    including config, manifests, and resources. Logged per prefetch run.
  </summary>
</histogram>

<histogram name="Precache.Fetch.TimeToComplete" units="ms">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>twifkak@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The time, in milliseconds, to complete a prefetch run. Only applies to
    non-cancelled runs (those for which PercentCompleted is 100).
  </summary>
</histogram>

<histogram name="Precache.Freshness.Prefetch" units="seconds">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>jamartin@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The freshness lifetimes of the resources that were precached from the moment
    they were fetched or revalidated as described in RFC 2616 13.2.4. Logged per
    precache request.
  </summary>
</histogram>

<histogram name="Precache.Latency.NonPrefetch" units="ms">
  <obsolete>
    Deprecated March 7 2017.
  </obsolete>
  <owner>twifkak@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The latency for requests that were not made during precaching. Logged
    per-request.
  </summary>
</histogram>

<histogram name="Precache.Latency.NonPrefetch.NonTopHosts" units="ms">
  <obsolete>
    Deprecated March 7 2017.
  </obsolete>
  <owner>twifkak@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Like Precache.Latency.NonPrefetch, but limited to requests with a referer
    not in the user's top visited hosts. See History.TopHostsVisitsByRank for
    details on the top hosts computation.
  </summary>
</histogram>

<histogram name="Precache.Latency.NonPrefetch.TopHosts" units="ms">
  <obsolete>
    Deprecated March 7 2017.
  </obsolete>
  <owner>twifkak@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    Like Precache.Latency.NonPrefetch, but limited to requests with a referer in
    the user's top visited hosts. See History.TopHostsVisitsByRank for details
    on the top hosts computation.
  </summary>
</histogram>

<histogram name="Precache.Latency.Prefetch" units="ms">
  <obsolete>
    Deprecated March 7 2017.
  </obsolete>
  <owner>twifkak@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The latency for requests that were made during precaching. Logged
    per-request.
  </summary>
</histogram>

<histogram name="Precache.PeriodicTaskInterval" units="minutes">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>rajendrant@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The time between successive precache periodic GCM task invocations. When
    precache task is started, the time interval from previous task invocation is
    logged.
  </summary>
</histogram>

<histogram name="Precache.Saved" units="bytes">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>bengr@chromium.org</owner>
  <summary>
    The number of bytes during user browsing that were served from the cache,
    but would have been downloaded over a network if precaching was disabled.
    Logged per-request.
  </summary>
</histogram>

<histogram name="Precache.Saved.Freshness" units="seconds">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>jamartin@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The freshness lifetimes (RFC 2616 13.2.4) of the resources that were
    precached and later used (and thus served from the cache). This is computed
    at serving time and thus possibly different from the precached value if the
    cache entry was revalidated. Logged per-request but only once per URL and
    precaching cycle (as Precache.Saved).
  </summary>
</histogram>

<histogram name="Precache.TimeSinceLastPrecache" units="seconds">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <owner>jamartin@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The time between the the beginning of the last precache session and each of
    the URL fetches made by the user ever since. Logged per-request.
  </summary>
</histogram>

<histogram name="PrefService.CreateProfilePrefsTime" units="ms">
  <owner>rkaplow@chromium.org</owner>
  <summary>The amount of time that elapsed during CreateProfilePrefs.</summary>
</histogram>

<histogram name="PrefService.NetworkPredictionEnabled" enum="BooleanEnabled">
  <owner>petewil@chromium.org</owner>
  <summary>
    Count events where Network Prediction was enabled or disabled.
  </summary>
</histogram>

<histogram name="PrefService.PersistentLogRecallProtobufs"
    enum="PersistedLogsLogReadStatus">
  <owner>holte@chromium.org</owner>
  <summary>The status when loading PersistedLogs from Prefs.</summary>
</histogram>

<histogram name="PrefService.ReadError" enum="PrefServiceReadError">
  <owner>csharp@chromium.org</owner>
  <summary>
    Enumeration of errors that happened when reading Preferences files.
  </summary>
</histogram>

<histogram name="PreloadScanner.Counts" units="preloads">
  <obsolete>
    Deprecated 5/25/2016 in favor of PreloadScanner.Counts2
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>The number of preloads generated by the preload scanner.</summary>
</histogram>

<histogram name="PreloadScanner.Counts.Miss" units="preloads">
  <obsolete>
    Deprecated 5/25/2016 in favor of PreloadScanner.Counts2.Miss
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The number of unused preloads generated by the preload scanner. Note that
    some link rel preloads are not referenced until after this point, so they
    will be falsely marked as preload misses. These will show up in the Raw
    bucket.
  </summary>
</histogram>

<histogram name="PreloadScanner.Counts2" units="preloads">
  <obsolete>
    Removed Feb 2018, no longer useful.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>The number of preloads generated by the preload scanner.</summary>
</histogram>

<histogram name="PreloadScanner.Counts2.Miss" units="preloads">
  <obsolete>
    Removed Feb 2018, no longer useful.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The number of unused preloads generated by the preload scanner. Note that
    some link rel preloads are not referenced until after this point, so they
    will be falsely marked as preload misses.
  </summary>
</histogram>

<histogram name="PreloadScanner.DocumentWrite.ExecutionTime.Failure" units="ms">
  <obsolete>
    DocumentWriteEvaluator was removed in 07/2017
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Time spent executing a script tag in the blink preload scanner, for the
    purpose of preloading scripts that will be fetched via a call to
    document.write. The execution failed to generate a preload request.
  </summary>
</histogram>

<histogram name="PreloadScanner.DocumentWrite.ExecutionTime.Success" units="ms">
  <obsolete>
    DocumentWriteEvaluator was removed in 07/2017
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Time spent executing a script tag in the blink preload scanner, for the
    purpose of preloading scripts that will be fetched via a call to
    document.write. The execution successfully resulted in a preload request.
  </summary>
</histogram>

<histogram name="PreloadScanner.DocumentWrite.GatedEvaluation"
    enum="DocumentWriteGatedEvaluation">
  <obsolete>
    DocumentWriteEvaluator was removed in 07/2017
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The reason a particular inline script was blocked from evaluation.
  </summary>
</histogram>

<histogram name="PreloadScanner.DocumentWrite.InitializationTime" units="ms">
  <obsolete>
    DocumentWriteEvaluator was removed in 07/2017
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Time spent initializing a new V8 context for the purpose of evaluating it
    and preloading document.written strings.
  </summary>
</histogram>

<histogram name="PreloadScanner.DocumentWrite.ScriptLength" units="characters">
  <obsolete>
    No longer needed
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The length of the inline script that is being considered for document write
    evaluation.
  </summary>
</histogram>

<histogram name="PreloadScanner.ExternalCSS.PreloadCount" units="preloads"
    expires_after="2018-08-30">
  <obsolete>
    Deprecated August 2018
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The number of preloads generated by scanning an external preloaded CSS
    resource. As of 4/25/2016 this only includes @import declarations.
  </summary>
</histogram>

<histogram name="PreloadScanner.ExternalCSS.ScanTime" units="microseconds"
    expires_after="2018-08-30">
  <obsolete>
    Deprecated August 2018
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Microseconds it took to scan the first chunk of external CSS for preloads.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="PreloadScanner.ReferenceTime" units="ms">
  <obsolete>
    Deprecated May 2018
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The time between preload discovery and when the resource is actually
    referenced. This is implemented by marking when a preload is discovered by
    the scanner, and when it has its first ResourceClient added to it. Note that
    for link rel preloads, this tracks the time from scanner discory to DOM
    discovery of the link declaration, not the actual resource.
  </summary>
</histogram>

<histogram name="PreloadScanner.TTFB" units="ms">
  <obsolete>
    Deprecated May 2018
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The time between preload discovery and when the first bytes of the response
    data arrive.
  </summary>
</histogram>

<histogram name="Prerender.AbandonTimeUntilUsed" units="ms">
  <obsolete>
    Deprecated 2017-09 as prerenders can no longer be 'used' (=='swapped-in').
  </obsolete>
  <owner>davidben@chromium.org</owner>
  <owner>pasko@chromium.org</owner>
  <summary>
    Time from when a prerendered page is abandoned to when it is first used due
    to user navigation. If the page is swapped before begin abandoned, a zero is
    recorded.
  </summary>
</histogram>

<histogram name="Prerender.CookieSendType" enum="PrerenderCookieSendType">
  <obsolete>
    Deprecated March 13 2015.
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    Enumeration of what types of cookies were sent for a prerender.
  </summary>
</histogram>

<histogram name="Prerender.CookieStatus" enum="PrerenderCookieStatus">
  <obsolete>
    Deprecated March 13 2015.
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>Enumeration of what cookie actions a prerender caused.</summary>
</histogram>

<histogram name="Prerender.Event" enum="PrerenderEvent">
  <obsolete>
    Deprecated Dec 12 2014.
  </obsolete>
  <summary>
    Enumeration of what events related to prerendering have occurred.
  </summary>
</histogram>

<histogram name="Prerender.Events" enum="PrerenderHoverEvent">
  <obsolete>
    deprecated May 10 2012
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Hover Event counts for prerendering.</summary>
</histogram>

<histogram name="Prerender.FinalStatus" enum="PrerenderFinalStatus">
  <owner>pasko@chromium.org</owner>
  <summary>
    Final status for prerender pages - either success, or why it was canceled.
  </summary>
</histogram>

<histogram name="Prerender.FinalStatusMatchComplete"
    enum="PrerenderFinalStatus">
  <obsolete>
    deprecated 2016-05-12
  </obsolete>
  <summary>
    Final status for prerender pages - either success, or why it was canceled.
    This is for the MatchComplete set of pages (including some pages that were
    not actually prerendered), to match the control group.
  </summary>
</histogram>

<histogram name="Prerender.FractionPixelsFinalAtSwapin">
  <obsolete>
    Deprecated Jan 14 2014.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    For prerenders that are swapped in, the percentage of pixels that is already
    final at swap-in time compared to when the spinner stops.
  </summary>
</histogram>

<histogram name="Prerender.HoverStats_TimeUntilClicked" units="ms">
  <obsolete>
    deprecated May 10 2012
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Duration that a user hovers a link before clicking on it.

    This is recorded for all pages loaded in a session.
  </summary>
</histogram>

<histogram name="Prerender.HoverStats_TimeUntilDiscarded" units="ms">
  <obsolete>
    deprecated May 10 2012
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Duration that the mouse pointer hovers on a link before the mouse pointer
    moves off of it.

    This is recorded for all pages loaded in a session.
  </summary>
</histogram>

<histogram name="Prerender.LocalPredictorEvent"
    enum="PrerenderLocalPredictorEvents">
  <obsolete>
    Deprecated April 2015
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    Enumeration of what events related to the local predictor have occurred
  </summary>
</histogram>

<histogram name="Prerender.LocalPredictorLoggedInLookupTime" units="ms">
  <obsolete>
    Deprecated April 2015
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    Time to perform the LoggedIn Lookup for the local predictor. This operation
    checks whether a user is likely logged into a page that we would like to
    prerender.
  </summary>
</histogram>

<histogram name="Prerender.LocalPredictorPrefetchMatchPLT" units="ms">
  <obsolete>
    Deprecated April 2015
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    The PrerenderLocalPredictor uses local browsing history and the prerender
    service to predict pages likely visited soon. Some of these URLs are
    prefetched. When such prefetched likely next pages are visited, this
    histogram records the PLT for such pages. In particular, this also happens
    if prefetch is actually disabled, allowing (by pivoting on whether or not
    prefetch is enabled) to compare the effect of prefetch on PLT.
  </summary>
</histogram>

<histogram name="Prerender.LocalPredictorServiceLookupTime" units="ms">
  <obsolete>
    Deprecated April 2015
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    Time to perform the Service Lookup for the local predictor. This operation
    queries a Google service to obtain pages to prerender, as well as whether
    prerender candidate pages are likely safe for prerendering.
  </summary>
</histogram>

<histogram name="Prerender.LocalPredictorTimeUntilUsed" units="ms">
  <obsolete>
    Deprecated April 2015
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    Time from when a prerendered page is started to when it is first used due to
    user navigation. If the page is never used, it is not included in this
    histogram. This only refers to prerenders based on the local predictor.
  </summary>
</histogram>

<histogram name="Prerender.LocalPredictorURLLookupTime" units="ms">
  <obsolete>
    Deprecated April 2015
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    Time to perform the URL Lookup for the local predictor. This operation
    retrieves from the user's local browsing history the URLs corresponding to
    URLIDs.
  </summary>
</histogram>

<histogram name="Prerender.LocalVisitCoreTransition" enum="CorePageTransition">
  <obsolete>
    deprecated Nov 16 2012
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The transition type for each new visit as recorded in the local visits
    database.
  </summary>
</histogram>

<histogram name="Prerender.LocalVisitDatabaseSize">
  <obsolete>
    deprecated Nov 16 2012
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Size of the local visits database (number of entries).</summary>
</histogram>

<histogram name="Prerender.LocalVisitEvents" enum="PrerenderLocalVisitEvents">
  <obsolete>
    deprecated Nov 16 2012
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Enumeration of what events related to local visits have occurred
  </summary>
</histogram>

<histogram name="Prerender.ModPagespeedHeader">
  <obsolete>
    Deprecated as of 10/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Previous version of the Prerender.PagespeedHeader.* histograms.
  </summary>
</histogram>

<histogram name="Prerender.NetworkBytes.TotalForProfile" units="bytes">
  <obsolete>
    Deprecated May 13th 2014, use Prerender.NetworkBytesTotalForProfile instead.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Number of bytes transferred on the network for URLRequests (not including
    HTTP/TLS/TCP/IP overhead). Reported on event of a PrerenderContents
    deletion. Includes prerender bytes. Bytes are only counted when prerendering
    is enabled and not in a control group. The sum of the distribution for a
    single user represents all of that user's network transfers for resource for
    that time period while prerendering was enabled.
  </summary>
</histogram>

<histogram name="Prerender.NetworkBytes.Used" units="bytes">
  <obsolete>
    Deprecated May 13th 2014, use Prerender.NetworkBytes.Used instead.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Number of bytes transferred on the network for URLRequests (not including
    HTTP/TLS/TCP/IP overhead) for a prerender that was used (or would have been
    used).
  </summary>
</histogram>

<histogram name="Prerender.NetworkBytes.Wasted" units="bytes">
  <obsolete>
    Deprecated May 13th 2014, use Prerender.NetworkBytes.Wasted instead.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Number of bytes transferred on the network for URLRequests (not including
    HTTP/TLS/TCP/IP overhead) for a prerender that was not used.
  </summary>
</histogram>

<histogram name="Prerender.NetworkBytesTotalForProfile" units="bytes">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Number of bytes transferred on the network for URLRequests (not including
    HTTP/TLS/TCP/IP overhead). Reported on event of a PrerenderContents
    deletion. Includes prerender bytes. Bytes are only counted when prerendering
    is enabled and not in a control group. The sum of the distribution for a
    single user represents all of that user's network transfers for resource for
    that time period while prerendering was enabled.
  </summary>
</histogram>

<histogram name="Prerender.NetworkBytesUsed" units="bytes">
  <obsolete>
    Deprecated 2017-09 as prerenders can no longer be 'used' (=='swapped-in').
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Number of bytes transferred on the network for URLRequests (not including
    HTTP/TLS/TCP/IP overhead) for a prerender that was used (or would have been
    used).
  </summary>
</histogram>

<histogram name="Prerender.NetworkBytesWasted" units="bytes">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Number of bytes transferred on the network for URLRequests (not including
    HTTP/TLS/TCP/IP overhead) for a prerender that was not used. All
    nostate-prefetch bytes are currently counted as wasted because it is hard to
    track byte use in HTTP cache.
  </summary>
</histogram>

<histogram name="Prerender.NoStatePrefetchAge" units="ms">
  <obsolete>
    Deprecated December 28, 2016, use Prerender.PrefetchAge instead.
  </obsolete>
  <owner>droger@chromium.org</owner>
  <owner>mattcary@chromium.org</owner>
  <owner>pasko@chromium.org</owner>
  <summary>Time between the prefetch and the actual load of the page.</summary>
</histogram>

<histogram name="Prerender.NoStatePrefetchMainResourceRedirects"
    units="redirects">
  <owner>droger@chromium.org</owner>
  <owner>mattcary@chromium.org</owner>
  <owner>pasko@chromium.org</owner>
  <summary>
    Length of the redirect chain for main resources loaded by NoStatePrefetch.
    Recorded when the final response in the chain is received.
  </summary>
</histogram>

<histogram name="Prerender.NoStatePrefetchRendererLifetimeExtension" units="ms">
  <owner>jam@chromium.org</owner>
  <summary>
    Time a prefetch renderer is kept alive after parsing to wait for
    subresources to finish loading.
  </summary>
</histogram>

<histogram name="Prerender.NoStatePrefetchRendererParseTime" units="ms">
  <owner>jam@chromium.org</owner>
  <summary>
    Time between prefetch renderer startup and when parsing is complete.
  </summary>
</histogram>

<histogram name="Prerender.NoStatePrefetchResponseTypes"
    enum="NoStatePrefetchResponseType">
  <owner>droger@chromium.org</owner>
  <owner>mattcary@chromium.org</owner>
  <owner>pasko@chromium.org</owner>
  <summary>
    Type of responses received by NoStatePrefetch, distinguishing cacheable
    resources from no-store resources, and main resources from sub-resources.
    Recorded when a response is received, including on each redirect.
  </summary>
</histogram>

<histogram name="Prerender.NoStatePrefetchSubResourceRedirects"
    units="redirects">
  <owner>droger@chromium.org</owner>
  <owner>mattcary@chromium.org</owner>
  <owner>pasko@chromium.org</owner>
  <summary>
    Length of the redirect chain for sub-resources loaded by NoStatePrefetch.
    Recorded when the final response in the chain is received.
  </summary>
</histogram>

<histogram name="Prerender.OmniboxNavigationsCouldPrerender">
  <owner>pasko@chromium.org</owner>
  <summary>
    A boolean that indicates whether the Omnibox navigation being committed
    could have been prerendered by the Omnibox Prerender system. This provides
    an upper bound for Prerender.OmniboxNavigationsUsedPrerenderCount and allows
    the potential for Omnibox Prerendering coverage to be understood. If Omnibox
    Prerendering is disabled, this histogram will register a 'false' entry. The
    total count is the equivalent of the deprecated
    NetworkActionPredictor.NavigationCount histogram.
  </summary>
</histogram>

<histogram name="Prerender.OmniboxNavigationsUsedPrerenderCount">
  <obsolete>
    Deprecated 2017-09 as prerenders can no longer be 'used' (=='swapped-in').
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    The number of navigations that use a prerender initiated from the Omnibox.
    The count is incremented when the Prerendered tab is swapped in if the
    Prerender was initiated by the Omnibox, which obviously requires
    Prerendering from the Omnibox to be enabled.
  </summary>
</histogram>

<histogram name="Prerender.OmniboxPrerenderCount">
  <obsolete>
    Deprecated 2017-09.
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    The number of prerenders initiated from the Omnibox. This is incremented
    when the NetworkActionPredictor suggests Prerendering as an optimal strategy
    given the text the user has entered and the Autocomplete suggestion
    currently selected. It is only incremented if Prerendering from the Omnibox
    is enabled.
  </summary>
</histogram>

<histogram name="Prerender.PagespeedHeader.ServerCounts"
    enum="PagespeedHeaderServerType">
  <obsolete>
    Deprecated April 2018
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    The number of responses received bucketed into the range [0,4]: bucket 0 is
    the total number of responses received; bucket 1 is the number of responses
    received with an X-Mod-Pagespeed header [indicating a mod_pagespeed server];
    bucket 2 is the number of responses received with an X-Page-Speed header and
    a header value in the X-Mod-Pagespeed format (a.b.c.d-e) [indicating an
    ngx_pagespeed server]; bucket 3 is the number of responses received with an
    X-Page-Speed header and a header value in the PageSpeed Service format
    (a_b_c) [indicating a PSS server]; and bucket 4 is the number of responses
    received with an X-Page-Speed header and a header value in neither of the
    preceding formats [indicating some other server; IISpeed is the only known
    one at this stage].
  </summary>
</histogram>

<histogram name="Prerender.PagespeedHeader.VersionCounts"
    enum="PagespeedVersion">
  <obsolete>
    Deprecated April 2018
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    The number of responses received that either have an X-Mod-Pagespeed header
    or have an X-Page-Speed header with a value in the X-Mod-Pagespeed format
    (a.b.c.d-e), bucketed into the range [1,99]: bucket 1 is for header values
    that aren't in the a.b.c.d-e format, the remaining buckets are an encoding
    of the value: 2 + 2 * (max(c, 10) - 10) + (d &gt; 1 ? 1 : 0). The rationale
    is that 'c' is incremented with each new release and 'd' is initially 0 but
    is incremented for each patch to a release.
  </summary>
</histogram>

<histogram name="Prerender.PageviewEvents" enum="PrerenderPageviewEvents">
  <obsolete>
    deprecated Nov 16 2012
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Types of pages rendered.</summary>
</histogram>

<histogram name="Prerender.PageVisitedStatus" enum="Boolean">
  <obsolete>
    deprecated March 30, 2015
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    Indicates whether the user has ever visited (in the past) a URL for which a
    prerender is launched.
  </summary>
</histogram>

<histogram name="Prerender.PerceivedPageLoadTime_Control" units="ms">
  <obsolete>
    Deprecated 03/24/11. Replaced by
    Prerender.PerceivedPLT_ContentPrefetchPrerenderControl.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from when a user navigates to a page to when it loads. Since the pages
    may start loading before the user navigates to it, this does not include any
    portion of load prior to navigation.

    This particular histogram is for all page loads for users who do not have
    prerendering enabled.
  </summary>
</histogram>

<histogram name="Prerender.PerceivedPageLoadTime_PrerenderMatchControl"
    units="ms">
  <obsolete>
    Deprecated 03/24/11. Replaced by
    Prerender.PerceivedPLTMatched_ContentPrefetchPrerenderControl.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from when a user navigates to a page to when it loads. Since the pages
    may start loading before the user navigates to it, this does not include any
    portion of load prior to navigation.

    This particular histogram is only for pages that would have been prerendered
    if the user had prerender enabled.
  </summary>
</histogram>

<histogram name="Prerender.PerceivedPageLoadTime_PrerenderMatchTreatment"
    units="ms">
  <obsolete>
    Deprecated 03/24/11. Replaced by
    Prerender.PerceivedPLTMatched_ContentPrefetchPrerender.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from when a user navigates to a page to when it loads. Since the pages
    may start loading before the user navigates to it, this does not include any
    portion of load prior to navigation.

    This particular histogram is for all prerendered page loads for users who
    have prerender enabled.
  </summary>
</histogram>

<histogram name="Prerender.PerceivedPageLoadTime_Treatment" units="ms">
  <obsolete>
    Deprecated 03/24/11. Replaced by
    Prerender.PerceivedPLT_ContentPrefetchPrerender.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from when a user navigates to a page to when it loads. Since the pages
    may start loading before the user navigates to it, this does not include any
    portion of load prior to navigation.

    This particular histogram is for all page loads for users who have
    prerendering enabled.
  </summary>
</histogram>

<histogram name="Prerender.PerceivedPageLoadTime_WindowControl" units="ms">
  <obsolete>
    Deprecated 03/24/11. Replaced by
    Prerender.PerceivedPLTWindowed_ContentPrefetchPrerenderControl.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from when a user navigates to a page to when it loads. Since the pages
    may start loading before the user navigates to it, this does not include any
    portion of load prior to navigation.

    This particular histogram is for all page loads within 30 seconds after a
    prefetch tag is seen for users who do not have prerendering enabled.
  </summary>
</histogram>

<histogram name="Prerender.PerceivedPageLoadTime_WindowTreatment" units="ms">
  <obsolete>
    Deprecated 03/24/11. Replaced by
    Prerender.PerceivedPLTWindowed_ContentPrefetchPrerender.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from when a user navigates to a page to when it loads. Since the pages
    may start loading before the user navigates to it, this does not include any
    portion of load pre navigation.

    This particular histogram is for all page loads within 30 seconds after a
    prefetch tag is seen for users who have prerendering enabled.
  </summary>
</histogram>

<histogram name="Prerender.PerceivedPLT" units="ms">
  <obsolete>
    Deprecated 2017-03.
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    Time from when a user navigates to a page to when it loads. Since the pages
    may start loading before the user navigates to it, this does not include any
    portion of load prior to navigation.

    This is recorded for all pages loaded in a session.
  </summary>
</histogram>

<histogram name="Prerender.PerceivedPLTFirstAfterMiss" units="ms">
  <obsolete>
    Deprecated 2017-03.
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    Time from when a user navigates to a page to when it loads. Since the pages
    may start loading before the user navigates to it, this does not include any
    portion of load prior to navigation.

    This is recorded for the first page load completing immediately after a
    prerender.
  </summary>
</histogram>

<histogram name="Prerender.PerceivedPLTFirstAfterMissAnyOnly" units="ms">
  <obsolete>
    Deprecated 2017-03.
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    Time from when a user navigates to a page to when it loads. Since the pages
    may start loading before the user navigates to it, this does not include any
    portion of load prior to navigation.

    &quot;FirstAfterMiss&quot; means the first pageload after a prerender miss.
    There are two types: Any, and Non-overlapping. The latter only applies to
    page loads initiated after the prerender. This variable records cases where
    only Any triggered.
  </summary>
</histogram>

<histogram name="Prerender.PerceivedPLTFirstAfterMissBoth" units="ms">
  <obsolete>
    Deprecated 2017-03.
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    Time from when a user navigates to a page to when it loads. Since the pages
    may start loading before the user navigates to it, this does not include any
    portion of load prior to navigation.

    &quot;FirstAfterMiss&quot; means the first pageload after a prerender miss.
    There are two types: Any, and Non-overlapping. The latter only applies to
    page loads initiated after the prerender. This variable records cases where
    both triggered.
  </summary>
</histogram>

<histogram name="Prerender.PerceivedPLTFirstAfterMissNonOverlapping" units="ms">
  <obsolete>
    Deprecated 2017-03.
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    Time from when a user navigates to a page to when it loads. Since the pages
    may start loading before the user navigates to it, this does not include any
    portion of load prior to navigation.

    This is recorded for the first page load completing immediately after a
    prerender, but which has also started after the prerender has been
    initiated.
  </summary>
</histogram>

<histogram name="Prerender.PerceivedPLTFirstAfterMissNonOverlappingOnly"
    units="ms">
  <obsolete>
    Deprecated 2017-03.
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    Time from when a user navigates to a page to when it loads. Since the pages
    may start loading before the user navigates to it, this does not include any
    portion of load prior to navigation.

    &quot;FirstAfterMiss&quot; means the first pageload after a prerender miss.
    There are two types: Any, and Non-overlapping. The latter only applies to
    page loads initiated after the prerender. This variable records cases where
    only Non-overlapping triggered.
  </summary>
</histogram>

<histogram name="Prerender.PerceivedPLTMatched" units="ms">
  <obsolete>
    Deprecated 2017-03.
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    Time from when a user navigates to a page to when it loads. Since the pages
    may start loading before the user navigates to it, this does not include any
    portion of load prior to navigation.

    This is recorded only for prerendered pages, or for pages which would have
    been prerendered in the control case.
  </summary>
</histogram>

<histogram name="Prerender.PerceivedPLTMatchedComplete" units="ms">
  <obsolete>
    Deprecated August 2016
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    Time from when a user navigates to a page to when it loads. Since the pages
    may start loading before the user navigates to it, this does not include any
    portion of load prior to navigation.

    This is recorded only for prerendered pages, or for pages which would have
    been prerendered in the control case.

    In MatchedComplete, the prerender group also contains cancelled prerenders,
    so as to produce a perfect match of page views attributed this group in the
    prerender group with those attributed to this group in the control group.
  </summary>
</histogram>

<histogram name="Prerender.PerceivedPLTWindowed" units="ms">
  <obsolete>
    Deprecated 2017-03.
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    Time from when a user navigates to a page to when it loads. Since the pages
    may start loading before the user navigates to it, this does not include any
    portion of load prior to navigation.

    This is recorded for all page loads which happen within 30 seconds after a
    prefetch tag is observed.
  </summary>
</histogram>

<histogram name="Prerender.PerceivedPLTWindowNotMatched" units="ms">
  <obsolete>
    Deprecated 2017-03.
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    Time from when a user navigates to a page to when it loads. Since the pages
    may start loading before the user navigates to it, this does not include any
    portion of load prior to navigation.

    This is recorded for all page loads which happen within 30 seconds after a
    prefetch tag is observed and which do not correspond to a prerender tag.
  </summary>
</histogram>

<histogram name="Prerender.PerceivedTTFCPRecorded" enum="BooleanRecorded">
  <obsolete>
    Obsoleted in Feb 2019.
  </obsolete>
  <owner>droger@chromium.org</owner>
  <owner>mattcary@chromium.org</owner>
  <owner>pasko@chromium.org</owner>
  <summary>
    Whether the perceived Time to First Contentful Paint (TTFCP) was recorded
    successfully for a prerendered page. Since a prerendered page will start
    loading before a user navigates to it, the perceived TTFCP does not include
    an time prior to the user navigation. If true, there is an associated
    PrefetchTTFCP that records the TTFCP from the swapped-in navigation start.
    If false, no PrefetchTTFCP was recorded.
  </summary>
</histogram>

<histogram name="Prerender.PercentLoadDoneAtSwapin">
  <obsolete>
    Deprecated 2017-09 as prerenders can no longer be 'used' (=='swapped-in').
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    For prerenders that are swapped in, the percentage of the time from load
    start until the onload event fires that has elapsed at the time of the
    swapin.
  </summary>
</histogram>

<histogram name="Prerender.PeriodicCleanupDeleteContentsTime" units="ms">
  <owner>pasko@chromium.org</owner>
  <summary>
    How long the cleanup portion of PrerenderManager::PeriodicCleanup takes, to
    measure jank.
  </summary>
</histogram>

<histogram name="Prerender.PeriodicCleanupResourceCheckTime" units="ms">
  <owner>pasko@chromium.org</owner>
  <summary>
    How long the resource check portion of PrerenderManager::PeriodicCleanup
    takes, to measure jank.
  </summary>
</histogram>

<histogram name="Prerender.PrefetchAge" units="ms">
  <owner>droger@chromium.org</owner>
  <owner>mattcary@chromium.org</owner>
  <owner>pasko@chromium.org</owner>
  <summary>
    Time between a prefetch or effective prefetch and the actual load of the
    page. For NoState prefetch, this is the time of the actual prefetch. For
    prerendering, it is the time that prerender began. For control groups in
    NoState prefetch experiments, it is the time that prefetch would have
    occurred.
  </summary>
</histogram>

<histogram name="Prerender.PrefetchTTFCP" units="ms">
  <owner>droger@chromium.org</owner>
  <owner>mattcary@chromium.org</owner>
  <owner>pasko@chromium.org</owner>
  <summary>
    Time to first contentful paint (TTFCP) for navigations related to prefetch
    (including prerender, no-state prefetch, and associated experiments). This
    measures user-visible TTFCP. For no-state prefetch this is standard
    navigation-to-FCP; for prerender this is the time from navigation start when
    the prerender is swapped in to FCP.
  </summary>
</histogram>

<histogram name="Prerender.PrerenderCountOf3Max">
  <obsolete>
    Deprecated 2017-03.
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    After launching a prerender, how many simultanious prerenders are recorded
    as running, out of a maximum of three.
  </summary>
</histogram>

<histogram name="Prerender.PrerenderLoadedOnFirstNTP" enum="Boolean">
  <owner>justincohen@chromium.org</owner>
  <summary>
    Whether or not a successful prerender happens on a NTP with no history.
  </summary>
</histogram>

<histogram name="Prerender.PrerenderLoadedOnIndex">
  <owner>justincohen@chromium.org</owner>
  <summary>
    The last comitted index before a successful preload is committed. Recorded
    only on iOS.
  </summary>
</histogram>

<histogram name="Prerender.PrerenderNotSwappedInPLT" units="ms">
  <obsolete>
    Deprecated 2017-03.
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    For prerenders that finish loading before they are ever swapped in, their
    page load time until the onload event fires.
  </summary>
</histogram>

<histogram name="Prerender.PrerendersPerSessionCount">
  <owner>pasko@chromium.org</owner>
  <summary>
    The number of sessions that have at least X successful prerenders. Recorded
    only on iOS since 2017-09.
  </summary>
</histogram>

<histogram name="Prerender.PrerenderStartToReleaseContentsTime" units="ms"
    expires_after="2019-12-06">
  <owner>justincohen@chromium.org</owner>
  <summary>
    This is the time from when a prerendered page begins to load to when it is
    swapped in as the main page load. Recorded when the swap occurs, only on
    iOS.
  </summary>
</histogram>

<histogram name="Prerender.RelTypesLinkAdded" enum="PrerenderRelTypes">
  <owner>pasko@chromium.org</owner>
  <summary>
    For each prerender link added to a document, records the rel types present
    on the link element.
  </summary>
</histogram>

<histogram name="Prerender.RelTypesLinkStarted" enum="PrerenderRelTypes">
  <owner>pasko@chromium.org</owner>
  <summary>
    For each prerender in a document which starts prerendering, records the rel
    types present on the link element.
  </summary>
</histogram>

<histogram name="Prerender.RendererIdleTime" units="ms">
  <obsolete>
    deprecated Nov 16 2012
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    This is the time from when a prerendered page finishes loading to when it is
    displayed, as measured by the renderer process. When a page is displayed
    before it finishes loading, no value is recorded in this histogram.
  </summary>
</histogram>

<histogram name="Prerender.RendererPerceivedPLT" units="ms">
  <obsolete>
    deprecated Nov 16 2012
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Perceived load time of a page, as measured by the renderer process. For
    non-prerendered pages, this is just BeginToFinish. For displayed prerendered
    pages, this is the time from when the prerendered page is moved into a
    TabContents until finish. &quot;Finish&quot; == after onload() and all
    resources are loaded. Note that this is 0 if the loading finishes before the
    page is moved into a TabContents.
  </summary>
</histogram>

<histogram name="Prerender.RendererPerceivedPLTMatched" units="ms">
  <obsolete>
    deprecated Nov 16 2012
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Perceived load time of a prerendered page that is displayed, as measured by
    the renderer process. This is the time from when the prerendered page is
    moved into a TabContents until finish. &quot;Finish&quot; == after onload()
    and all resources are loaded. Note that this is 0 if the loading finishes
    before the page is moved into a TabContents.
  </summary>
</histogram>

<histogram name="Prerender.RendererTimeUntilDisplay" units="ms">
  <obsolete>
    deprecated Nov 16 2012
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time elapsed between when the prerendering of a page starts and when the
    page is displayed, as measured by the renderer process. Prerendered pages
    discarded without being displayed are excluded from this count.
  </summary>
</histogram>

<histogram name="Prerender.SchemeCancelReason"
    enum="PrerenderSchemeCancelReason">
  <owner>pasko@chromium.org</owner>
  <summary>
    The detailed reason why a prerender is canceled with
    FINAL_STATUS_UNSUPPORTED_SCHEME
  </summary>
</histogram>

<histogram name="Prerender.Sessions" enum="PrerenderMode">
  <obsolete>
    deprecated Nov 16 2012
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Enumeration of how prerender was used per session.</summary>
</histogram>

<histogram name="Prerender.SessionStorageNamespaceMergeTime" units="ms">
  <obsolete>
    Deprecated Dec 12 2014.
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>Time to perform the session storage namespace merge.</summary>
</histogram>

<histogram name="Prerender.SimulatedLocalBrowsingBaselinePLT" units="ms">
  <obsolete>
    Deprecated April 2015
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    For simulated local browsing prerendering, the baseline PLT of pages without
    any prerendering for pages that would be prerendered.
  </summary>
</histogram>

<histogram name="Prerender.SimulatedLocalBrowsingPLT" units="ms">
  <obsolete>
    Deprecated April 2015
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    For simulated local browsing prerendering, the estimated PLT of pages with
    prerendering enabled for pages that would be prerendered.
  </summary>
</histogram>

<histogram name="Prerender.TabContentsDeleterSuppressedDialog"
    enum="BooleanSuppressed">
  <owner>pasko@chromium.org</owner>
  <summary>
    A boolean that indicates how often we suppress a dialog from a tab when
    swapping it with a prerender.
  </summary>
</histogram>

<histogram name="Prerender.TabContentsDeleterTimeout"
    enum="BooleanCloseTimeout">
  <owner>pasko@chromium.org</owner>
  <summary>
    A boolean that indicates how often we fail to delete an old prerendered tab
    before the timeout.
  </summary>
</histogram>

<histogram name="Prerender.TabHelperEvent" enum="PrerenderTabHelperEvents">
  <obsolete>
    Deprecated April 2015
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    Enumeration of what events related to the TabHelper class have occurred.
  </summary>
</histogram>

<histogram name="Prerender.TimeBetweenPrerenderRequests" units="ms">
  <obsolete>
    Deprecated 2017-09.
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>Time between subsequent prerender requests.</summary>
</histogram>

<histogram name="Prerender.TimeSinceLastRecentVisit" units="ms">
  <obsolete>
    Deprecated 2017-09.
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    The time elapsed between the most recent visit to a URL and when an
    attempted prerender of the same URL is cancelled with
    FINAL_STATUS_RECENTLY_VISITED.
  </summary>
</histogram>

<histogram name="Prerender.TimeToClick" units="ms">
  <obsolete>
    deprecated Nov 16 2012
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Duration that a user hovers a link before clicking on it.</summary>
</histogram>

<histogram name="Prerender.TimeUntilUsed" units="ms">
  <obsolete>
    deprecated Nov 16 2012. See Prerender.TimeUntilUsed2, which has a larger
    range.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time from when a prerendered page is started to when it is first used due to
    user navigation. If the page is never used, it is not included in this
    histogram.
  </summary>
</histogram>

<histogram name="Prerender.TimeUntilUsed2" units="ms">
  <obsolete>
    Deprecated 2017-09 as prerenders can no longer be 'used' (=='swapped-in').
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    Time from when a prerendered page is started to when it is first used due to
    user navigation. If the page is never used, it is not included in this
    histogram.
  </summary>
</histogram>

<histogram name="Previews.CacheControlNoTransform.BlockedPreview"
    enum="PreviewsType">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Blocked previews due to Cache-Control:no-transform directive.
  </summary>
</histogram>

<histogram name="Previews.ContentLength" units="KB">
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The actual data used for a page load using a preview optimization.
  </summary>
</histogram>

<histogram name="Previews.ContextMenuAction.LoFi"
    enum="PreviewsContextMenuActionLoFi">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    User interactions with the Lo-Fi context menu options. These include:

    Displays and clicks on the &quot;Load image&quot; and &quot;Load
    images&quot; context menu options. Count of pages where the user has clicked
    &quot;Load image&quot; at least once.
  </summary>
</histogram>

<histogram name="Previews.DataInflation" units="KB">
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The estimated amount that the content was inflated for a page load using a
    previews optimization. Recorded when a page load using a previews
    optimization inflates the data used.
  </summary>
</histogram>

<histogram name="Previews.DataInflationPercent" units="%">
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The estimated percent of data used that a page load would have otherwise
    cost for a page load using a previews optimization. Recorded when a page
    load using a previews optimization inflates the data used.
  </summary>
</histogram>

<histogram name="Previews.DataSavings" units="KB">
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The estimated data savings for a page load using a previews optimization.
    Recorded when a page load using a previews optimization reduces the data
    used.
  </summary>
</histogram>

<histogram name="Previews.DataSavingsPercent" units="%">
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The estimated percent of data savings for a page load using a previews
    optimization. Recorded when a page load using a previews optimization
    reduces the data used.
  </summary>
</histogram>

<histogram name="Previews.EligibilityReason" enum="PreviewsEligibilityReason">
  <owner>ryansturm@chromium.org</owner>
  <summary>
    When evaluating whether to show a user a preview, the preview might be
    disallowed for various reasons. If the preview is disallowed, then this
    reports the reason for disallowing it. If the preview is allowed, then this
    generally reports &quot;Previews Allowed&quot;. It may instead report
    &quot;Previews Allowed without server rule check&quot; for a preview that
    expects to check server rules but they are not enabled. Recorded throughout
    navigation at the beginning of each navigation, after each redirect, and
    during commit.
  </summary>
</histogram>

<histogram name="Previews.HintCacheLevelDBStore.LoadMetadataResult"
    enum="PreviewsHintCacheLevelDBStoreLoadMetadataResult">
  <owner>jegray@chromium.org</owner>
  <summary>
    Records the result of loading the metadata while initializing the
    HintCacheLevelDBStore.
  </summary>
</histogram>

<histogram name="Previews.HintCacheLevelDBStore.Status"
    enum="PreviewsHintCacheLevelDBStoreStatus">
  <owner>jegray@chromium.org</owner>
  <summary>
    Records each status change within the HintCacheLevelDBStore.
  </summary>
</histogram>

<histogram name="Previews.HintsFetcher.GetHintsRequest.HostCount"
    units="total host count" expires_after="M79">
  <owner>mcrouse@chromium.org</owner>
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Records the number of hosts selected for sending a OnePlatform client hint
    request. This will be captured when any OnePlatform client hint request is
    initiated.
  </summary>
</histogram>

<histogram name="Previews.InfoBarAction" enum="PreviewsInfoBarAction">
  <owner>bengr@chromium.org</owner>
  <owner>tbansal@chromium.org</owner>
  <summary>
    User interactions with the previews &quot;Saved data&quot; infobar. These
    include:

    Displays of the infobar and clicks on the &quot;Load original&quot; link.
    Whether the infobar was dismissed by navigation or the user clicking on
    &quot;X&quot; close button.
  </summary>
</histogram>

<histogram name="Previews.InfoBarTimestamp" enum="PreviewsInfoBarTimestamp">
  <obsolete>
    Replaced by Previews.StalePreviewTimestampShown as of 09/2018.
  </obsolete>
  <owner>megjablon@chromium.org</owner>
  <summary>
    Whether the timestamp for a stale preview was shown on the infobar. If the
    timestamp was not shown, states the reason why.
  </summary>
</histogram>

<histogram name="Previews.LitePageNotificationInfoBar"
    enum="PreviewsLitePageInfoBarAction">
  <owner>robertogden@chromium.org</owner>
  <summary>
    User interactions with the HTTPS Server Previews notification InfoBar.
  </summary>
</histogram>

<histogram name="Previews.OmniboxAction" enum="PreviewsUserOmniboxAction">
  <owner>robertogden@chromium.org</owner>
  <summary>User interactions with the Previews Android Omnibox UI.</summary>
</histogram>

<histogram name="Previews.OmniboxLiteStringShown" enum="BooleanShown"
    expires_after="2019-08-30">
  <owner>robertogden@chromium.org</owner>
  <summary>
    Whether the verbose status string was shown on a Preview page. This is
    recorded on every transition from a non-preview page to a preview page. An
    entry of false means that the Previews Icon appeared without the
    &quot;Lite&quot; string only because there was not enough room to show the
    string.

    Note that it is possible for the Lite string to not be shown on the page
    after true is recorded if the user rotates their device or enters
    multi-window mode while viewing the page, or the converse.
  </summary>
</histogram>

<histogram base="true" name="Previews.OptimizationFilterStatus"
    enum="PreviewsOptimizationFilterStatus">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Status of processing OptimizationFilter configurations for server-provided
    blacklists. Recorded when the PreviewsOptimizationGuide receives a
    notification to process hints.
  </summary>
</histogram>

<histogram name="Previews.OptimizationGuide.HintCache.HasHint.AtCommit"
    enum="NQEEffectiveConnectionType">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Records the effective connection type when the optimization guide hint cache
    has a hint entry for a URL's host at commit time.
  </summary>
</histogram>

<histogram name="Previews.OptimizationGuide.HintCache.HasHint.BeforeCommit"
    enum="NQEEffectiveConnectionType">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Records the effective connection type when the optimization guide hint cache
    has a hint entry for a URL's host before commit time (e.g., at original
    navigation time or redirected navigation time).
  </summary>
</histogram>

<histogram name="Previews.OptimizationGuide.HintCache.HostMatch.AtCommit"
    enum="NQEEffectiveConnectionType">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Records the effective connection type when the optimization guide hint cache
    has a loaded hint entry matching a URL's host at commit time. This is
    recorded regardless of whether an associated preview type is allowed for the
    navigation or not. If no associated preview type is allowed, the hint will
    not be loaded from a backing store, so this will only capture matches for
    in-memory hints.
  </summary>
</histogram>

<histogram name="Previews.OptimizationGuide.HintCache.PageMatch.AtCommit"
    enum="NQEEffectiveConnectionType">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Records the effective connection type when the optimization guide hint cache
    has a loaded page hint for a URL at commit time. This is recorded regardless
    of whether an associated preview type is allowed for the navigation or not.
    If no associated preview type is allowed, the hint will not be loaded from a
    backing store, so this will only capture matches for in-memory hints.
  </summary>
</histogram>

<histogram name="Previews.OptOut.DBRowCount" units="rows">
  <obsolete>
    No longer used as of 06/2018.
  </obsolete>
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The number of rows in the Previews opt out SQLite table at profile startup.
  </summary>
</histogram>

<histogram name="Previews.OptOut.SQLiteLoadError" enum="SqliteErrorCode">
  <obsolete>
    No longer used as of 06/2018.
  </obsolete>
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The SQLite error code that the previews opt out store saw when trying to
    open the SQLite database. This is logged when an unexpected error occurs
    when trying to open the database file.
  </summary>
</histogram>

<histogram name="Previews.OptOut.UserOptedOut" enum="PreviewsUserOptedOut">
  <owner>ryansturm@chromium.org</owner>
  <summary>
    Whether the user chose to reload the original page when shown a preview.
  </summary>
</histogram>

<histogram name="Previews.OriginalContentLength" units="KB">
  <owner>ryansturm@chromium.org</owner>
  <summary>
    The estimated content length of a page load using a preview optimization.
  </summary>
</histogram>

<histogram name="Previews.PageEndReason" enum="PageEndReason">
  <owner>robertogden@chromium.org</owner>
  <summary>Records why the page load ended on a given preview type.</summary>
</histogram>

<histogram name="Previews.ProcessHintsResult" enum="PreviewsProcessHintsResult">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Whether processing the previews hints succeeded and if any previews hints
    were found. Recorded when the PreviewsOptimizationGuide receives a
    notification to process hints.
  </summary>
</histogram>

<histogram name="Previews.ServerLitePage.BlacklistReasons"
    enum="PreviewsServerLitePageBlacklistReason">
  <owner>robertogden@chromium.org</owner>
  <summary>
    The reason that a navigation is blacklisted from loading a server lite page
    preview by a dynamic blacklist. Recorded only after the observed navigation
    has passed static eligibility checks.
  </summary>
</histogram>

<histogram name="Previews.ServerLitePage.HostBlacklistedOnBypass"
    enum="Boolean">
  <owner>robertogden@chromium.org</owner>
  <summary>
    Whether or not the server directed Chrome to blacklist the requested host on
    a bypass response.
  </summary>
</histogram>

<histogram name="Previews.ServerLitePage.HttpOnlyFallbackPenalty" units="ms">
  <obsolete>
    Replaced January 2019 by Previews.ServerLitePage.Penalty.*
  </obsolete>
  <owner>robertogden@chromium.org</owner>
  <summary>
    The time spent on a navigation request that loaded a fallback signal from
    the lite page previews server. This does not include any penalty incurred
    because of network errors.
  </summary>
</histogram>

<histogram name="Previews.ServerLitePage.IneligibleReasons"
    enum="PreviewsServerLitePageIneligibleReason">
  <owner>robertogden@chromium.org</owner>
  <summary>
    The reasons that a navigation is not eligible to be shown a server lite page
    preview by static eligibility checks. Each check is evaluated on every
    observed navigation when the feature is enabled.
  </summary>
</histogram>

<histogram name="Previews.ServerLitePage.NotReportedNavigationRestartPenalty"
    units="ms">
  <obsolete>
    Removed November 2018 when PLM support was reverted.
  </obsolete>
  <owner>robertogden@chromium.org</owner>
  <summary>
    Every time a navigation is restarted on account of this preview we attempt
    to report the cumulative total penalty to page load metrics. This histogram
    tracks penalties that were not successfully reported. The penalty is the
    amount of time between the navigation start of the original (i.e.:
    user-initiated) navigation and the current navigation when this histogram is
    reported. This histogram is reported at the start of every navigation for
    every navigation seen by the Lite Page Redirect Navigation Throttle.
  </summary>
</histogram>

<histogram base="true" name="Previews.ServerLitePage.Penalty" units="ms">
  <owner>robertogden@chromium.org</owner>
  <summary>
    The lost time spent attempting a server lite page via canceling and
    restarting navigations. This value is the difference between the final
    navigation's start time and the start time of the original navigation. This
    metric is recorded everytime the Previews NavigationThrottle acts on a
    response, whether that is from the previews server or a network error.

    This histogram is only recorded in M73 for the non-URLLoader implementation
    of this feature. For M72, refer to
    Previews.ServerLitePage.HttpOnlyFallbackPenalty which records this penalty
    for failure statuses only.
  </summary>
</histogram>

<histogram name="Previews.ServerLitePage.ReportedNavigationRestartPenalty"
    units="ms">
  <obsolete>
    Removed November 2018 when PLM support was reverted.
  </obsolete>
  <owner>robertogden@chromium.org</owner>
  <summary>
    Every time a navigation is restarted on account of this preview we attempt
    to report the cumulative total penalty to page load metrics. This histogram
    tracks penalties that were successfully reported. The penalty is the amount
    of time between the navigation start of the original (i.e.: user-initiated)
    navigation and the current navigation when this histogram is reported. This
    histogram is reported at the start of every navigation for every navigation
    seen by the Lite Page Redirect Navigation Throttle.
  </summary>
</histogram>

<histogram name="Previews.ServerLitePage.ServerResponse"
    enum="PreviewsServerLitePageServerResponse">
  <owner>robertogden@chromium.org</owner>
  <summary>
    The type of response given by the previews server when a server lite page
    preview was triggered.
  </summary>
</histogram>

<histogram name="Previews.ServerLitePage.Triggered" enum="Boolean">
  <owner>robertogden@chromium.org</owner>
  <summary>
    Whether or not the server lite page preview is triggered. Recorded on every
    observed navigation when the feature is enabled.
  </summary>
</histogram>

<histogram name="Previews.ServerLitePage.URLLoader.Attempted"
    enum="BooleanAttempted" expires_after="2019-08-30">
  <owner>ryansturm@chromium.org</owner>
  <summary>
    Whether or not the server lite page preview was attempted during a
    navigation. Recorded when the lite page URLLoader feature is enabled, during
    any leg of the navigation (redirects trigger recording the histogram).
  </summary>
</histogram>

<histogram name="Previews.StalePreviewTimestampShown"
    enum="PreviewsStalePreviewTimestamp">
  <owner>robertogden@chromium.org</owner>
  <summary>
    Whether the timestamp for a stale preview was shown on the UI. If the
    timestamp was not shown, states the reason why.
  </summary>
</histogram>

<histogram name="Previews.Triggered.EffectiveConnectionType"
    enum="NQEEffectiveConnectionType">
  <obsolete>
    Replaced by Previews.Triggered.EffectiveConnectionType2 as of 01/2019.
  </obsolete>
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Records the effective connection type of a navigation that triggers a
    preview. This is captured for slow page preview types - that is, ones that
    support variable thresholds depending on matching a page pattern in the
    optimization guide hints.
  </summary>
</histogram>

<histogram name="Previews.Triggered.EffectiveConnectionType2"
    enum="NQEEffectiveConnectionType">
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Records the effective connection type of a navigation that triggers a
    preview. This is captured at commit time but uses the effective connection
    type from the beginning of the navigation.
  </summary>
</histogram>

<histogram name="PrinterService.PrinterServiceEvent"
    enum="PrinterServiceEventType">
  <owner>avi@chromium.org</owner>
  <summary>
    Count of events in PrinterService on Chrome OS related to USB printers.
  </summary>
</histogram>

<histogram name="Printing.ConversionSize.Emf" units="KB">
  <owner>thestig@chromium.org</owner>
  <summary>
    On Windows, the average size of a printed page after converting to EMF.
  </summary>
</histogram>

<histogram name="Printing.ConversionSize.EmfWithGdiText" units="KB">
  <owner>thestig@chromium.org</owner>
  <summary>
    On Windows, the average size of a printed page after converting to EMF with
    the GDI Text experiment turned on.
  </summary>
</histogram>

<histogram name="Printing.ConversionSize.PostScript2" units="KB">
  <owner>thestig@chromium.org</owner>
  <summary>
    On Windows, the average size of a printed page after converting to level 2
    PostScript.
  </summary>
</histogram>

<histogram name="Printing.ConversionSize.PostScript3" units="KB">
  <owner>thestig@chromium.org</owner>
  <summary>
    On Windows, the average size of a printed page after converting to level 3
    PostScript.
  </summary>
</histogram>

<histogram name="Printing.ConversionSize.Pwg" units="KB">
  <owner>thestig@chromium.org</owner>
  <summary>
    On desktop, the average size of a printed page after converting to PWG
    Raster format.
  </summary>
</histogram>

<histogram name="Printing.CUPS.AddressResolutionResult" enum="BooleanSuccess">
  <owner>skau@chromium.org</owner>
  <summary>
    Records whether resolution of a .local address via mDNS was successful. The
    metric is recorded during attempted setup of a printer discovered via mDNS.
  </summary>
</histogram>

<histogram name="Printing.CUPS.IppAttributesSuccess" enum="BooleanSuccess">
  <owner>skau@chromium.org</owner>
  <summary>
    Record if the request for IPP attributes was successful during printer
    setup. This only occurs for setup attempts of IPP and IPPS printers.
  </summary>
</histogram>

<histogram name="Printing.CUPS.JobDuration.JobCancelled" units="ms">
  <owner>jschettler@chromium.org</owner>
  <summary>
    Records the print job duration of a cancelled print job. Includes time spent
    in a suspended or error state. Only recorded on Chrome OS.
  </summary>
</histogram>

<histogram name="Printing.CUPS.JobDuration.JobDone" units="ms">
  <owner>jschettler@chromium.org</owner>
  <summary>
    Records the print job duration of a done/completed print job. Includes time
    spent in a suspended or error state. Only recorded on Chrome OS.
  </summary>
</histogram>

<histogram name="Printing.CUPS.JobResult" enum="PrintJobResult">
  <owner>skau@chromium.org</owner>
  <summary>
    The final status of every print job that was succesfully queued. Only used
    on Chrome OS.
  </summary>
</histogram>

<histogram name="Printing.CUPS.PpdSource" enum="PpdSource">
  <owner>skau@chromium.org</owner>
  <summary>
    Records the source of PostScript Printer Description files used during
    printer setup. Entries are recorded for every attempted configuration. Only
    recorded on Chrome OS.
  </summary>
</histogram>

<histogram name="Printing.CUPS.PrintDocumentSize" units="KB">
  <owner>jschettler@chromium.org</owner>
  <summary>
    Records the total size of the printed document (PDF) sent to CUPS. Only
    recorded on Chrome OS.
  </summary>
</histogram>

<histogram name="Printing.CUPS.PrinterAdded" enum="PrinterProtocol">
  <owner>skau@chromium.org</owner>
  <summary>
    The protocol for a printer that was added. Used to track printer churn by
    protocol. Only on Chrome OS.
  </summary>
</histogram>

<histogram name="Printing.CUPS.PrinterRemoved" enum="PrinterProtocol">
  <owner>skau@chromium.org</owner>
  <summary>
    The protocol for a printer that was removed. Used to track printer churn by
    protocol. Only on Chrome OS.
  </summary>
</histogram>

<histogram name="Printing.CUPS.PrintersDiscovered" units="printers">
  <owner>skau@chromium.org</owner>
  <summary>
    The number of printers shown in the discovered printers dialog during
    printer set up. Only recorded on Chrome OS.
  </summary>
</histogram>

<histogram name="Printing.CUPS.PrinterSetupResult" enum="PrinterSetupResult">
  <owner>skau@chromium.org</owner>
  <summary>
    The success or error code for the setup of a CUPS printer. Recorded when
    setup is attempted through the settings dialogs. Only recorded on Chrome OS.
  </summary>
</histogram>

<histogram name="Printing.CUPS.PrintJobsQueued" units="count">
  <owner>skau@chromium.org</owner>
  <summary>
    The size of the print queue when a print job is initially queued. When the
    first job is started, a zero is recorded. Only used on Chrome OS.
  </summary>
</histogram>

<histogram name="Printing.CUPS.ProtocolUsed" enum="PrinterProtocol">
  <owner>skau@chromium.org</owner>
  <summary>
    Records the protocol for a selected printer in Chrome OS. Used to track
    usage of the various printer protocols. Since a selection occurs when print
    preview is opened, this will count at least one every time that happens if a
    CUPS printer was selected.
  </summary>
</histogram>

<histogram name="PrintPreview.DestinationAction"
    enum="PrintPreviewPrintDestinationBuckets">
  <owner>avi@chromium.org</owner>
  <summary>
    Actions performed by the user when the print destination search widget is
    shown to the user.
  </summary>
</histogram>

<histogram name="PrintPreview.FontType" enum="PrintPreviewFontTypeType">
  <owner>avi@chromium.org</owner>
  <summary>
    Count of font file formats embeeded in print preview PDFs. These numbers are
    biased by what the platforms supports in terms of detection.
  </summary>
</histogram>

<histogram name="PrintPreview.GcpPromo" enum="PrintPreviewGcpPromoBuckets">
  <obsolete>
    No longer used as of 09/2017.
  </obsolete>
  <owner>avi@chromium.org</owner>
  <summary>
    Actions performed by the user when the Google Cloud Print add-printers
    promotion is shown to the user.
  </summary>
</histogram>

<histogram name="PrintPreview.InitialDisplayTime" units="ms">
  <owner>avi@chromium.org</owner>
  <summary>
    Time from when print preview is intiated until the intial preview is sent to
    the preview tab for rendering.
  </summary>
</histogram>

<histogram name="PrintPreview.InitializationTime" units="ms">
  <owner>avi@chromium.org</owner>
  <summary>
    Time from when print preview is intiated until the preview PDF generation is
    started.
  </summary>
</histogram>

<histogram name="PrintPreview.InitiatedByScript" enum="BooleanMainFrame">
  <owner>nasko@chromium.org</owner>
  <summary>
    Logged when a document calls the window.print() API. The boolean value
    indicates whether it is invoked by the main frame. It will be false for
    documents in subframes.
  </summary>
</histogram>

<histogram name="PrintPreview.ManagePrinters">
  <owner>avi@chromium.org</owner>
  <summary>
    Count the number of requests received to show the manage printers dialog.
  </summary>
</histogram>

<histogram name="PrintPreview.NumberOfPrinters">
  <owner>avi@chromium.org</owner>
  <summary>
    Count the total number of printers shown in destination drop down list.
  </summary>
</histogram>

<histogram name="PrintPreview.OutOfProcessSubframe" enum="Boolean">
  <owner>nasko@chromium.org</owner>
  <summary>
    Logged when a document calls the window.print() API in any frame. The
    boolean value will be true when the API call is invoked by a document which
    is in a process different than the top level document. It will be false in
    all other cases.
  </summary>
</histogram>

<histogram name="PrintPreview.PageCount.Initial">
  <owner>avi@chromium.org</owner>
  <summary>
    The page count of the initial print preview, a.k.a. the total number of
    pages in documents to be printed.
  </summary>
</histogram>

<histogram name="PrintPreview.PageCount.OpenInMacPreview">
  <owner>thestig@chromium.org</owner>
  <summary>
    The final page count (after page selection) of documents printed to PDF and
    opened in Preview.app on Mac.
  </summary>
</histogram>

<histogram name="PrintPreview.PageCount.PrintToCloudPrint">
  <owner>avi@chromium.org</owner>
  <summary>
    The final page count (after page selection) of documents printed to a cloud
    printer.
  </summary>
</histogram>

<histogram name="PrintPreview.PageCount.PrintToCloudPrintWebDialog">
  <obsolete>
    No longer used as of 01/2016.
  </obsolete>
  <owner>avi@chromium.org</owner>
  <summary>
    The final page count (after page selection) of documents printed to a cloud
    printer using web dialog.
  </summary>
</histogram>

<histogram name="PrintPreview.PageCount.PrintToGoogleDrive"
    expires_after="2019-06-18">
  <owner>rbpotter@chromium.org</owner>
  <owner>thestig@chromium.org</owner>
  <summary>
    The final page count (after page selection) of documents printed to Google
    Drive.
  </summary>
</histogram>

<histogram name="PrintPreview.PageCount.PrintToPDF">
  <owner>avi@chromium.org</owner>
  <summary>
    The final page count (after page selection) of documents printed to PDF.
  </summary>
</histogram>

<histogram name="PrintPreview.PageCount.PrintToPrinter">
  <owner>avi@chromium.org</owner>
  <summary>
    The final page count (after page selection) of documents printed to a
    printer.
  </summary>
</histogram>

<histogram name="PrintPreview.PageCount.PrintWithExtension">
  <owner>avi@chromium.org</owner>
  <summary>
    The final page count (after page selection) of documents printed to an
    extension printer (using printerProvider API).
  </summary>
</histogram>

<histogram name="PrintPreview.PageCount.PrintWithPrivet">
  <owner>avi@chromium.org</owner>
  <summary>
    The final page count (after page selection) of documents printed to a privet
    printer.
  </summary>
</histogram>

<histogram name="PrintPreview.PageCount.SystemDialog">
  <owner>avi@chromium.org</owner>
  <summary>
    The final page count (after page selection) of documents printed using
    system dialog.
  </summary>
</histogram>

<histogram name="PrintPreview.PdfAction" enum="PrintPreviewPdfActionBuckets">
  <owner>rbpotter@chromium.org</owner>
  <summary>
    Actions taken on the PDF viewer inside Print Preview's preview area.
  </summary>
</histogram>

<histogram name="PrintPreview.PreviewEvent" enum="PrintPreviewHelperEvents">
  <owner>avi@chromium.org</owner>
  <summary>Print preview events.</summary>
</histogram>

<histogram name="PrintPreview.PrintDocumentSize.HTML" units="KB">
  <owner>thestig@chromium.org</owner>
  <summary>
    The average size of a page in the printed document when the source is HTML.
  </summary>
</histogram>

<histogram name="PrintPreview.PrintDocumentSize.PDF" units="KB">
  <owner>thestig@chromium.org</owner>
  <summary>
    The average size of a page in the printed document when the source is PDF.
  </summary>
</histogram>

<histogram name="PrintPreview.PrintDocumentType"
    enum="PrintPreviewPrintDocumentTypeBuckets">
  <owner>rbpotter@chromium.org</owner>
  <summary>
    Track type of documents printed (HTML vs PDF). Recorded immediately after a
    user requests that a document be printed.
  </summary>
</histogram>

<histogram name="PrintPreview.PrintSettings" enum="PrintSettings">
  <owner>avi@chromium.org</owner>
  <summary>
    Track the popularity of print settings. (Settings when printing to PDF are
    excluded from this statistic.)
  </summary>
</histogram>

<histogram name="PrintPreview.PrintSettingsUi"
    enum="PrintPreviewPrintSettingsUiBuckets">
  <owner>thestig@chromium.org</owner>
  <owner>avi@chromium.org</owner>
  <summary>
    Actions performed by the user interacting with print settings UI elements.
  </summary>
</histogram>

<histogram name="PrintPreview.RegeneratePreviewRequest.BeforeCancel">
  <owner>avi@chromium.org</owner>
  <summary>
    The number of times regenerate preview requests received before the user
    clicked the cancel button.
  </summary>
</histogram>

<histogram name="PrintPreview.RegeneratePreviewRequest.BeforeFirstData">
  <owner>avi@chromium.org</owner>
  <summary>
    The number of times regenerate preview requests received before the first
    preview data is availible.
  </summary>
</histogram>

<histogram name="PrintPreview.RegeneratePreviewRequest.BeforePrint">
  <owner>avi@chromium.org</owner>
  <summary>
    The number of times regenerate preview requests received before the user
    clicked the print button.
  </summary>
</histogram>

<histogram name="PrintPreview.RenderAndGeneratePDFTime" units="ms">
  <owner>avi@chromium.org</owner>
  <summary>
    Time taken to render and generate PDF for print preview. (Includes time to
    reflow the page back to normal, but not the time to reflow the page to
    prepare for printing.)
  </summary>
</histogram>

<histogram name="PrintPreview.RenderAndGeneratePDFTimeAvgPerPage" units="ms">
  <owner>avi@chromium.org</owner>
  <summary>
    Time taken to render and generate PDF for print preview divided by the
    number of pages. (Includes time to reflow the page back to normal, but not
    the time to reflow the page to prepare for printing.)
  </summary>
</histogram>

<histogram name="PrintPreview.RendererError" enum="PrintPreviewFailureType">
  <owner>avi@chromium.org</owner>
  <summary>
    Count how frequently a set of pre-defined print preview errors occur.
  </summary>
</histogram>

<histogram name="PrintPreview.RenderPDFPageTime" units="ms">
  <owner>avi@chromium.org</owner>
  <summary>Time taken to render each PDF page for print preview.</summary>
</histogram>

<histogram name="PrintPreview.RenderToPDFTime" units="ms">
  <owner>avi@chromium.org</owner>
  <summary>Time taken to render to PDF for print preview.</summary>
</histogram>

<histogram name="PrintPreview.SiteIsolation.CrossSiteFrameCount" units="frames">
  <owner>alexmos@chromium.org</owner>
  <summary>
    The number of cross-site frames contained in a document being printed, as
    defined by comparing scheme and eTLD+1.
  </summary>
</histogram>

<histogram name="PrintPreview.SiteIsolation.CrossSiteVisibleFrameCount"
    units="frames">
  <owner>alexmos@chromium.org</owner>
  <summary>
    The number of cross-site visible frames contained in a document being
    printed.
  </summary>
</histogram>

<histogram name="PrintPreview.SiteIsolation.RemoteFrameCount" units="frames">
  <owner>alexmos@chromium.org</owner>
  <summary>
    The number of out-of-process frames contained in a document being printed.
  </summary>
</histogram>

<histogram name="PrintPreview.UserAction" enum="PrintPreviewUserActionType">
  <owner>avi@chromium.org</owner>
  <summary>
    Action taken by the user in the preview tab such as print, cancel, print to
    pdf and show advanced print settings dialog.
  </summary>
</histogram>

<histogram name="Privacy.ConsentAuditor.ConsentGiven.Feature"
    enum="ConsentAuditorFeature">
  <owner>markusheintz@google.com</owner>
  <owner>msramek@google.com</owner>
  <summary>
    Logged each time the user grants a consent for a feature integrated with the
    consent auditor. The value indicates which feature.
  </summary>
</histogram>

<histogram name="Privacy.ConsentAuditor.ConsentNotGiven.Feature"
    enum="ConsentAuditorFeature">
  <owner>markusheintz@google.com</owner>
  <owner>msramek@google.com</owner>
  <summary>
    Logged each time the user denies or revokes a consent for a feature
    integrated with the consent auditor. The value indicates which feature.
  </summary>
</histogram>

<histogram name="Privacy.ConsentAuditor.UserEventServiceReady" enum="Boolean">
  <obsolete>
    Deprecated as of 4/2018.
  </obsolete>
  <owner>dullweber@google.com</owner>
  <owner>msramek@google.com</owner>
  <summary>
    Logs whether the UserEventServiceReady is ready when recording a consent.
    This should always be true as the service is created at startup.
  </summary>
</histogram>

<histogram name="Privacy.DoNotTrackSetting" enum="BooleanEnabled">
  <owner>mkwst@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <summary>
    Whether the Do Not Track setting is enabled. Recorded at the Profile
    startup.
  </summary>
</histogram>

<histogram name="Privacy.ThirdPartyCookieBlockingSetting" enum="BooleanEnabled">
  <owner>mkwst@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <summary>
    Whether the third party cookie blocking setting is enabled. Recorded at the
    Profile startup.

    Previously recorded as the &quot;ThirdPartyCookieBlockingEnabled&quot; and
    &quot;ThirdPartyCookieBlockingDisabled&quot; actions.
  </summary>
</histogram>

<histogram name="Process.Sandbox.FlagOverrodeRemoteSessionCheck" enum="Boolean">
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    Measure how often the automatic recognition for terminal services
    environment would have incorrectly decided that the job object should be
    applied, when it shouldn't have been as dictated by the flag
    --allow-no-sanbox-job. This histogram will guide the final removal of the
    flag, which will be possible when the number of false values becomes
    insignificant.
  </summary>
</histogram>

<histogram name="Process.Sandbox.Launch.Error" enum="WinGetLastError">
  <owner>drott@chromium.org</owner>
  <summary>
    Errors returned while launching sandboxed process on Windows. For decoding
    error code please refer to http://goo.gl/fJJiAv.
  </summary>
</histogram>

<histogram name="Process.Sandbox.Launch.Warning" enum="WinGetLastError">
  <owner>forshaw@chromium.org</owner>
  <summary>
    Warnings returned while launching sandboxed process on Windows. For decoding
    error code please refer to http://goo.gl/fJJiAv. This will only be logged
    when SpawnTarget succeeds with SBOX_ALL_OK but the last warning result does
    not equal SBOX_ALL_OK.
  </summary>
</histogram>

<histogram name="Process.Sandbox.Launch.WarningResultCode"
    units="LaunchErrorCodes">
  <owner>forshaw@chromium.org</owner>
  <summary>
    The warning launch error returned while launching sandboxed process on
    Windows. This will only be logged when SpawnTarget succeeds with SBOX_ALL_OK
    but the last warning result does not equal SBOX_ALL_OK.
  </summary>
</histogram>

<histogram name="Process.Sandbox.Lowbox.Launch.Error" enum="WinGetLastError">
  <owner>shrikant@chromium.org</owner>
  <summary>
    Errors returned while launching lowbox enabled sandboxed process on Windows.
    For decoding error code please refer to http://goo.gl/fJJiAv.
  </summary>
</histogram>

<histogram name="ProductTour.IOSScreens" units="ms">
<!-- Name completed by histogram_suffixes name="IOSProductTourScreens" -->

  <owner>mrefaat@google.com</owner>
  <summary>The time spent in product tour screens for ios.</summary>
</histogram>

<histogram name="Profile.AddNewUser" enum="ProfileAddNewUser">
  <owner>rogerta@chromium.org</owner>
  <summary>The frequency of ways that new user profiles are added.</summary>
</histogram>

<histogram name="Profile.AndroidAccountManagementMenu"
    enum="ProfileAndroidAccountManagementMenu">
  <owner>aruslan@chromium.org</owner>
  <summary>
    Track user interactions that can be performed in the Android account
    management menu.
  </summary>
</histogram>

<histogram name="Profile.AppCount">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The number of installed apps when a profile is opened.</summary>
</histogram>

<histogram name="Profile.AuthResult" enum="ProfileAuth">
  <owner>bcwhite@chromium.org</owner>
  <summary>
    Counts of authorization results when trying to open a locked profile from
    the User Manager.
  </summary>
</histogram>

<histogram name="Profile.Avatar" enum="ProfileAvatar">
  <owner>rogerta@chromium.org</owner>
  <summary>The frequency of selection of each avatar.</summary>
</histogram>

<histogram name="Profile.AvatarLoadStatus" enum="ProfileAvatarLoadStatus">
  <owner>chengx@chromium.org</owner>
  <summary>Load status of an avatar for decorating the Windows taskbar</summary>
</histogram>

<histogram name="Profile.BookmarksSize" units="MB" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Size of the bookmarks database.</summary>
</histogram>

<histogram name="Profile.CookiesSize" units="MB" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Size of the cookies database.</summary>
</histogram>

<histogram name="Profile.CreateAndInitializeProfile" units="ms">
  <owner>rkaplow@chromium.org</owner>
  <summary>Length of time to setup profile.</summary>
</histogram>

<histogram name="Profile.CreateBrowserContextServicesTime" units="ms">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during the CreateBrowserContextServices call
    within OnPrefsLoaded.
  </summary>
</histogram>

<histogram name="Profile.CreateProfileHelperTime" units="ms">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during ProfileManager::CreateProfileHelper.
    This is called when a profile is created synchronously (usually at startup).
  </summary>
</histogram>

<histogram name="Profile.CreateResult" enum="ProfileCreateResult">
  <owner>treib@chromium.org</owner>
  <owner>rogerta@chromium.org</owner>
  <summary>Result (final status) when creating a new profile.</summary>
</histogram>

<histogram name="Profile.CreateTime" units="ms">
  <obsolete>
    Deprecated as of 8/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Back-end time elapsed while creating a new profile. The max is 30 seconds,
    when an external timeout was applied.
  </summary>
</histogram>

<histogram name="Profile.CreateTimeCanceled" units="ms">
  <obsolete>
    Deprecated as of 8/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time elapsed before the user decided to cancel creation of a new profile.
    Since only managed-user profile creation can be canceled, this time comes
    from managed-user registration. The max is 30 seconds, when an external
    timeout was applied.
  </summary>
</histogram>

<histogram name="Profile.CreateTimeCanceledNoTimeout" units="ms">
  <owner>treib@chromium.org</owner>
  <owner>michaelpg@chromium.org</owner>
  <summary>
    Time elapsed from when the handler received the message that a user clicked
    'Create' until the user decided to cancel creation of a new profile. Since
    only managed-user profile creation can be canceled, this time comes from
    managed-user registration.
  </summary>
</histogram>

<histogram name="Profile.CreateTimeNoTimeout" units="ms">
  <owner>treib@chromium.org</owner>
  <owner>michaelpg@chromium.org</owner>
  <summary>
    Time elapsed from when the handler received the message that a user clicked
    'Create' until the creation either failed with a local error (see
    Profile.CreateResult), was canceled (also recorded in
    Profile.CreateTimeCanceledNoTimeout), or completed successfully.
  </summary>
</histogram>

<histogram name="Profile.Delete" enum="BooleanProfileSignedIn">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    This histogram tracks the deletion of the profile. This tracks when the
    cleanup actually takes place, not the UI interaction. The parameter
    indicates if the profile was signed in or not; true means the profile was
    signed in, false means the profile was not signed in.
  </summary>
</histogram>

<histogram name="Profile.DeleteProfileAction" enum="ProfileDeleteAction">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <owner>anthonyvd@chromium.org</owner>
  <summary>
    This histogram tracks which UI screen was used to initiate and confirm the
    deletion of a profile. This does not track when the profile is actually
    deleted, which is an asynchronous process that happens later.
  </summary>
</histogram>

<histogram name="Profile.DesktopMenu" enum="ProfileDesktopMenu">
  <owner>msarda@chromium.org</owner>
  <owner>tangltom@chromium.org</owner>
  <summary>
    Track user interactions that can be performed in the user menu and user
    manager. The origin of the action, whether the an interaction in the content
    area or some other source, is noted in the histogram suffix.
  </summary>
</histogram>

<histogram name="Profile.DiceUI.GaiaAccountsStale" enum="BooleanStale">
  <owner>tangltom@chromium.org</owner>
  <summary>
    This histogram tracks whether the accounts cached in the GAIA cookie service
    manager are stale when presenting the user menu when DICE is enabled.
  </summary>
</histogram>

<histogram name="Profile.ExtensionSize" units="MB" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Size of the extension cookies database.</summary>
</histogram>

<histogram name="Profile.FaviconsSize" units="MB" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Size of the favicons database.</summary>
</histogram>

<histogram name="Profile.GetProfile" units="ms">
  <obsolete>
    Deprecated 02/2015. Profile.CreateAndInitializeProfile is more useful.
  </obsolete>
  <owner>rkaplow@chromium.org</owner>
  <summary>Length of time to retrieve profile.</summary>
</histogram>

<histogram name="Profile.GetProfileInfoPath.OutsideUserDir" enum="BooleanHit">
  <owner>anthonyvd@chromium.org</owner>
  <summary>
    Whether Profile::GetProfileInfoPath is called with a profile outside the
    user data directory. We expect this to never happen but need to verify in
    stable. This metric may be removed after M54.
  </summary>
</histogram>

<histogram name="Profile.HistorySize" units="MB">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>Size of the history database.</summary>
</histogram>

<histogram name="Profile.InitProfileUserPrefs.OutsideUserDir" enum="BooleanHit">
  <owner>anthonyvd@chromium.org</owner>
  <summary>
    Whether Profile::InitProfileUserPrefs is called with a profile outside the
    user data directory. We expect this to never happen but need to verify in
    stable. This metric may be removed after M54.
  </summary>
</histogram>

<histogram name="Profile.LaunchBrowser" enum="ProfileType">
  <owner>rogerta@chromium.org</owner>
  <summary>
    Number of times users launch a browser window from either a primary or
    secondary profile (i.e., each time a browser window is opened we log which
    type of profile it belongs to).
  </summary>
</histogram>

<histogram name="Profile.LockedProfilesDuration" units="minutes">
  <owner>mlerman@chromium.org</owner>
  <summary>
    How long locked profiles have been locked for. This is logged each time any
    profile is loaded. Note that this does not track the total time the profile
    was locked, but rather the span from when the profile was locked to when the
    measurement takes place.
  </summary>
</histogram>

<histogram name="Profile.NetUserCount" enum="ProfileNetUserCount">
  <owner>rogerta@chromium.org</owner>
  <summary>
    Counts of users added and deleted. Percentages are not meaningful. Please
    look at the ratio of the counts/percentages.
  </summary>
</histogram>

<histogram name="Profile.NewAvatarMenu.NotYou"
    enum="ProfileNewAvatarMenuNotYou">
  <obsolete>
    Deprecated 2017-10-16. No longer tracked. Feature removed.
  </obsolete>
  <owner>mlerman@chromium.org</owner>
  <summary>
    Tracks user interactions with the 'Not You?' bubble that users can navigate
    to from the Upgrade bubble after upgrade to the New Avatar Menu.
  </summary>
</histogram>

<histogram name="Profile.NewAvatarMenu.Signin"
    enum="ProfileNewAvatarMenuSignin">
  <obsolete>
    Deprecated 2017-10-19. No longer tracked. Feature removed.
  </obsolete>
  <owner>mlerman@chromium.org</owner>
  <summary>
    Tracks user interactions with the signin bubble that appears in the New
    Avatar Menu upon signin. This bubble appears after the user signs in using
    the Inline Signin flow.
  </summary>
</histogram>

<histogram name="Profile.NewAvatarMenu.Upgrade"
    enum="ProfileNewAvatarMenuUpgrade">
  <obsolete>
    Deprecated 2017-10-16. No longer tracked. Feature removed.
  </obsolete>
  <owner>mlerman@chromium.org</owner>
  <summary>
    Tracks user interactions with the bubble that appears for users in the new
    avatar menu after upgrade.
  </summary>
</histogram>

<histogram name="Profile.NotifyProfileCreatedTime" units="ms">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during the Notify() of
    NOTIFICATION_PROFILE_CREATED during ProfileImpl::DoFinalInit().
  </summary>
</histogram>

<histogram name="Profile.NumberOfAccountsPerProfile">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    Counts the number of Google-managed accounts linked to a profile. This may
    be counted multiple times per profile. Please review with the &quot;Show
    user counts&quot; option enabled on the dashboard.
  </summary>
</histogram>

<histogram name="Profile.NumberOfActiveProfiles">
  <owner>feuunk@chromium.org</owner>
  <summary>
    Counts the number of profiles on a user's machine at least every 24 hours
    while Chrome is running. Always de-dupe the results with Show User Counts.

    As opposed to Profile.NumberOfProfiles, this counts only profiles that have
    been used in the last 28 days.
  </summary>
</histogram>

<histogram name="Profile.NumberOfManagedProfiles">
  <owner>treib@chromium.org</owner>
  <owner>michaelpg@chromium.org</owner>
  <summary>
    Counts the number of locally managed profiles on a user's machine at least
    every 24 hours while Chrome is running, among cases with at least one
    profile. Always de-dupe the results with Show User Counts.

    This counts only profiles that have been used in the last 28 days.
  </summary>
</histogram>

<histogram name="Profile.NumberOfProfiles">
  <owner>rogerta@chromium.org</owner>
  <summary>
    Counts the number of profiles on a user's machine at least every 24 hours
    while Chrome is running. Always de-dupe the results with Show User Counts.

    This counts the total number of profiles on the user's device, regardless of
    whether they've been used recently.
  </summary>
</histogram>

<histogram name="Profile.NumberOfProfilesAfterAddOrDelete">
  <obsolete>
    Deprecated 2013-04-09. No longer tracked. See Profile.NumberOfProfiles.
  </obsolete>
  <owner>rogerta@chromium.org</owner>
  <summary>
    Counts the number of profiles on a user's machine whenever a profile is
    added or deleted.
  </summary>
</histogram>

<histogram name="Profile.NumberOfProfilesOnStartup">
  <obsolete>
    Deprecated; replaced by Profile.NumberOfProfiles on 2013-04-09. Data are
    suspect, especially after 2012-02-24: see https://crbug.com/189213.
  </obsolete>
  <owner>rogerta@chromium.org</owner>
  <summary>
    Counts the number of profiles on a user's machine when Chrome starts up.
  </summary>
</histogram>

<histogram name="Profile.NumberOfProfilesWithAuthErrors">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    Counts the type GAIA authentication errors on a user's machine when Chrome
    starts up. The types of errors are broken down in Signin.AuthError.

    This counts only profiles that have been used in the last 28 days.
  </summary>
</histogram>

<histogram name="Profile.NumberOfSignedInProfiles">
  <owner>rogerta@chromium.org</owner>
  <summary>
    Counts the number of signed-in profiles on a user's machine at least every
    24 hours while Chrome is running. Always de-dupe the results with Show User
    Counts.

    This counts only profiles that have been used in the last 28 days.
  </summary>
</histogram>

<histogram name="Profile.NumberOfSignedInProfilesOnStartup">
  <obsolete>
    Deprecated; replaced by Profile.NumberOfSignedInProfiles on 2013-04-09.
  </obsolete>
  <owner>rogerta@chromium.org</owner>
  <summary>
    Counts the number of profiles that are signed in to Chrome when Chrome
    starts up.
  </summary>
</histogram>

<histogram name="Profile.NumberOfSignedInProfilesWithGAIAIcons">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    Counts the number of signed-in profiles that are using the GAIA image as the
    avatar icon. This is counted at least every 24 hours while Chrome is
    running, so always de-dupe the results with Show User Counts.

    This counts only profiles that have been used in the last 28 days.
  </summary>
</histogram>

<histogram name="Profile.NumberOfSwitches">
  <owner>anthonyvd@chromium.org</owner>
  <summary>
    Counts the number of times profiles were switched in a browser session. This
    value is incremented when a profile is switched to and the result is logged
    during shutdown.
  </summary>
</histogram>

<histogram name="Profile.NumberOfUnusedProfiles">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    Counts the number of profiles unused within the past 28 days on a user's
    machine. This is counts at least every 24 hours while Chrome is running, so
    always de-dupe the results with Show User Counts.
  </summary>
</histogram>

<histogram name="Profile.OnLocaleReadyTime" units="ms">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during ProfileImpl::OnLocaleReady. This
    happens once after profile was loaded.
  </summary>
</histogram>

<histogram name="Profile.OnPrefsLoadedTime" units="ms">
  <obsolete>
    Deprecated 04/2015, and replaced by Profile.OnLocaleReadyTime.
  </obsolete>
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during ProfileImpl::OnPrefsLoaded.
  </summary>
</histogram>

<histogram name="Profile.Opening" enum="ProfileOpen">
  <obsolete>
    Deprecated because it did not present the information clearly.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The frequency of ways that the profiles are opened.</summary>
</histogram>

<histogram name="Profile.OpenMethod" enum="ProfileOpenMethod">
  <owner>rogerta@chromium.org</owner>
  <summary>
    The frequency with which the user opens the different profile menus or
    switches profiles. For the open statistics, this does not mean the user
    necessarily opened a profile after clicking. The switch statistics indicate
    how often and how the user switches profiles. They are provided together for
    comparison of how often the user actually switches after opening the avatar
    bubble menu.
  </summary>
</histogram>

<histogram name="Profile.PercentageOfManagedProfiles">
  <owner>treib@chromium.org</owner>
  <owner>michaelpg@chromium.org</owner>
  <summary>
    Tracks the percentage (0-100) of profiles that are locally managed, recorded
    when Chrome starts up.
  </summary>
</histogram>

<histogram name="Profile.ProfileError" enum="ProfileErrorType">
  <owner>tnagel@chromium.org</owner>
  <summary>
    The error with the current user profile that caused an error dialog to be
    shown. This dialog is shown usually when there is some sort of corruption in
    the user's profile data.
  </summary>
</histogram>

<histogram name="Profile.ProfileImplDoFinalInit" units="ms">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during the ProfileImpl::DoFinalInit().
  </summary>
</histogram>

<histogram name="Profile.RemoveUserWarningStatsTime" units="ms">
  <owner>dullweber@chromium.org</owner>
  <summary>
    The amount of time that elapsed during profile statistics calculation.
  </summary>
</histogram>

<histogram name="Profile.SupervisedProfileCreateError"
    enum="GoogleServiceAuthError">
  <obsolete>
    Long removed.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The error code generated in the final step (registration step) of creating a
    new supervised profile.
  </summary>
</histogram>

<histogram name="Profile.SupervisedProfileImportError"
    enum="GoogleServiceAuthError">
  <obsolete>
    Long removed.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The error code generated in the final step (registration step) of importing
    a supervised profile.
  </summary>
</histogram>

<histogram name="Profile.SupervisedProfileTotalCreateTime" units="ms">
  <obsolete>
    Long removed.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time elapsed from when the handler received the message that a user clicked
    'Create' to create a new supervised user profile until the registration ends
    either successfully or with a failure (both recorded in
    Profile.SupervisedProfileCreateResult).
  </summary>
</histogram>

<histogram name="Profile.SupervisedProfileTotalImportTime" units="ms">
  <obsolete>
    Long removed.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Time elapsed from when the handler received the message that a user clicked
    'Import supervised user' until the registration ends either successfully or
    with a failure (both recorded in Profile.SupervisedProfileImportResult).
  </summary>
</histogram>

<histogram name="Profile.SwitchGaiaPhotoSettings"
    enum="ProfileGaiaPhotoOptions" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Counts of when users switch to using their GAIA photo instead of an avatar
    icon or the opposite when they switch back to an avatar icon instead of
    their GAIA photo.
  </summary>
</histogram>

<histogram name="Profile.Sync" enum="ProfileSync">
  <obsolete>
    Deprecated because it did not present the information clearly.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Activity of the user with regards to sync.</summary>
</histogram>

<histogram name="Profile.SyncCustomize" enum="ProfileSyncCustomize"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Number of times and ways the user customized the sync options of their
    profile. Percentages are not meaningful. To determine percentages, take the
    count of a given action over the count of number of customizations.
  </summary>
</histogram>

<histogram name="Profile.SyncSignIn" enum="ProfileType">
  <obsolete>
    Deprecated 11/2018 as this histogram is not of sufficient value anymore. It
    only records events made through the advanced settings dialog which are very
    rare and not representative for most analysis purposes.
  </obsolete>
  <owner>tschumann@google.com</owner>
  <summary>
    Number of times the user signed into sync from original or secondary
    profile.
  </summary>
</histogram>

<histogram name="Profile.ThumbnailsSize" units="MB">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Size of the thumbnails database.</summary>
</histogram>

<histogram name="Profile.TimeToOpenUserManager" units="ms">
  <owner>msarda@chromium.org</owner>
  <owner>tangltom@chromium.org</owner>
  <summary>
    Time required to open the UserManager, from when it started to show until
    when its javascript started executing.
  </summary>
</histogram>

<histogram name="Profile.TopSitesSize" units="MB" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Size of the top sites database.</summary>
</histogram>

<histogram name="Profile.TotalHistorySize" units="MB"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Total size of all history databases.</summary>
</histogram>

<histogram name="Profile.TotalSize" units="MB" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Total size of the profile data (excluding sub-folders).</summary>
</histogram>

<histogram name="Profile.TriggeredReset" enum="BooleanReset">
  <owner>robertshield@chromium.org</owner>
  <summary>
    Indicates whether a profile had a reset trigger that caused it to launch a
    reset flow. The presence of this trigger is recorded during profile
    creation.
  </summary>
</histogram>

<histogram name="Profile.Update" enum="ProfileType">
  <owner>rogerta@chromium.org</owner>
  <summary>Times a profile name and/or avatar was updated.</summary>
</histogram>

<histogram name="Profile.UpgradeEnrollment" enum="ProfileUpgradeEnrollment">
  <obsolete>
    Deprecated 8/2014. Upgrade Promotional UI removed.
  </obsolete>
  <owner>mlerman@chromium.org</owner>
  <summary>
    The process which leads a user to enroll in New Profile Management. Also
    tracks if the user chooses to opt out, and tutorials which guide the user
    into New Profile Management.
  </summary>
</histogram>

<histogram name="Profile.ValidateMenuItemInvalidIndex.IsGuest" enum="Boolean">
  <owner>anthonyvd@chromium.org</owner>
  <summary>
    Whether the active profile is a guest profile when -validateMenuItem in the
    ProfileMenuController gets an invalid value for the current profile's index.
  </summary>
</histogram>

<histogram name="Profile.ValidateMenuItemInvalidIndex.ProfileCount">
  <owner>anthonyvd@chromium.org</owner>
  <summary>
    The count of profiles in the avatar menu when -validateMenuItem in the
    ProfileMenuController gets an invalid value for the current profile's index.
  </summary>
</histogram>

<histogram name="Profile.ValidateMenuItemInvalidIndex.Selector"
    enum="ValidateMenuItemSelectorType">
  <owner>anthonyvd@chromium.org</owner>
  <summary>
    The selector associated with the menu item when -validateMenuItem in the
    ProfileMenuController gets an invalid value for the current profile's index.
  </summary>
</histogram>

<histogram name="Profile.VisitedLinksSize" units="MB"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Size of the visited links database.</summary>
</histogram>

<histogram name="Profile.WebDataSize" units="MB" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Size of the web data database.</summary>
</histogram>

<histogram name="ProfileChooser.HasProfilesShown" enum="BooleanShown">
  <owner>vasilii@chromium.org</owner>
  <owner>ewald@chromium.org</owner>
  <summary>
    Whether any profile was shown in the list when the profile chooser was
    opened.
  </summary>
</histogram>

<histogram name="ProfileReset.ResetRequestOrigin"
    enum="ProfileResetRequestOriginEnum">
  <owner>alito@chromium.org</owner>
  <summary>
    Encodes from where the request for resetting the profile settings
    originated.
  </summary>
</histogram>

<histogram name="ProfileReset.SendFeedback" enum="Boolean">
  <owner>engedy@chromium.org</owner>
  <owner>vasilii@chromium.org</owner>
  <summary>
    Signifies if the user selected &quot;Send feedback&quot; checkbox in the
    Reset Profile dialog.
  </summary>
</histogram>

<histogram name="Protector.DefaultSearchProvider" enum="ProtectorError">
  <obsolete>
    Deprecated 8/2013. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Errors that Protector detects about default search provider in Web Data.
    Reported once when Web Data is loaded.
  </summary>
</histogram>

<histogram name="Protector.Preferences" enum="ProtectorError">
  <obsolete>
    Deprecated 8/2013. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Errors that Protector detects about protected settings in Preferences.
    Reported once when profile is loaded.
  </summary>
</histogram>

<histogram name="Protector.SearchProvider" enum="SearchEngine">
  <obsolete>
    Deprecated 8/2013. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    When the default search provider setting is changed outside of Chrome, which
    is detected by the Protector, this histogram reports the new setting.
  </summary>
</histogram>

<histogram name="Protector.StartupSettings" enum="SessionStartupType">
  <obsolete>
    Deprecated 8/2013. No longer tracked.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    When the startup settings are changed outside of Chrome, which is detected
    by the Protector, this histogram reports the new setting.
  </summary>
</histogram>

<histogram name="ProtoDB.DestroySuccess" enum="BooleanSuccess">
  <owner>nyquist@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>Whether a ProtoDB Destroy call was successful or not.</summary>
</histogram>

<histogram name="ProtoDB.GetErrorStatus" enum="LevelDBStatus">
  <owner>nyquist@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    The LevelDB Status returned from a failed ProtoDatabase Get call.
  </summary>
</histogram>

<histogram name="ProtoDB.GetFound" enum="Boolean">
  <owner>nyquist@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>Whether a ProtoDB Get call found what was requested.</summary>
</histogram>

<histogram name="ProtoDB.GetSuccess" enum="BooleanSuccess">
  <owner>nyquist@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>Whether a ProtoDB Get call was successful or not.</summary>
</histogram>

<histogram name="ProtoDB.InitStatus" enum="LevelDBStatus">
  <owner>nyquist@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>The LevelDB Status from a ProtoDatabase Init call.</summary>
</histogram>

<histogram name="ProtoDB.LoadEntriesSuccess" enum="BooleanSuccess">
  <owner>nyquist@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>Whether a ProtoDB LoadEntries call was successful or not.</summary>
</histogram>

<histogram name="ProtoDB.LoadKeysAndEntriesSuccess" enum="BooleanSuccess">
  <owner>nyquist@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    Whether a ProtoDB LoadKeysAndEntries call was successful or not.
  </summary>
</histogram>

<histogram name="ProtoDB.LoadKeysSuccess" enum="BooleanSuccess">
  <owner>nyquist@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>Whether a ProtoDB LoadKeys call was successful or not.</summary>
</histogram>

<histogram name="ProtoDB.UpdateErrorStatus" enum="LevelDBStatus">
  <owner>nyquist@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    The LevelDB Status returned from a failed Protodatabase UpdateEntries call.
  </summary>
</histogram>

<histogram name="ProtoDB.UpdateSuccess" enum="BooleanSuccess">
  <owner>nyquist@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>Whether a ProtoDB UpdateEntries call was successful or not.</summary>
</histogram>

<histogram name="ProximityAuth.BleWeaveConnectionResult"
    enum="ProximityAuth_BleWeaveConnectionResult">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Provides a breakdown of how often each BLE weave connection result occurs.
  </summary>
</histogram>

<histogram name="ProximityAuth.BluetoothGattConnectionResult"
    enum="ProximityAuth_BluetoothGattConnectionResult">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Provides a breakdown of how many times each possible Bluetooth GATT
    connection result occurs.

    The bucket &quot;Unknown result&quot; indicates that the Bluetooth platform
    returned an unknown error code; if it has any counts, the client code should
    be changed to account for the new error code.
  </summary>
</histogram>

<histogram name="ProximityAuth.BluetoothGattNotifySessionResult"
    enum="ProximityAuth_BluetoothGattServiceOperationResult">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Provides a breakdown of how many times each possible Bluetooth GATT
    &quot;notify session&quot; attempt result occurs.

    The bucket &quot;Unknown result&quot; indicates that the Bluetooth platform
    returned an unknown error code; if it has any counts, the client code should
    be changed to account for the new error code.
  </summary>
</histogram>

<histogram name="ProximityAuth.BluetoothGattWriteCharacteristicResult"
    enum="ProximityAuth_BluetoothGattServiceOperationResult">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Provides a breakdown of how many times each possible Bluetooth GATT
    &quot;write characteristic&quot; attempt result occurs.
  </summary>
</histogram>

<histogram name="ProxyOverriddenBubble.ExtensionCount" units="Extensions">
  <obsolete>
    Deprecated 9/2016. Never added to histograms.xml and value is always 1.
  </obsolete>
  <summary>
    The number of extensions overriding the proxy, triggering the proxy override
    extension warning bubble.
  </summary>
</histogram>

<histogram name="ProxyOverriddenBubble.UserSelection"
    units="ExtensionBubbleAction" expires_after="2019-12-31">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The action taken by the user when the &quot;proxy overridden&quot; extension
    warning bubble is shown. Logged immediately after the action is taken.
  </summary>
</histogram>

<histogram base="true" name="PurgeAndSuspend.Experimental.MemoryGrowth"
    units="KB">
<!-- Name completed by histogram_suffixes name="PurgeAndSuspendExperiment" -->

  <owner>tasak@google.com</owner>
  <summary>
    The growth of the background renderer's memory usage after a background
    renderer is purged. This is recorded 5, 10 and 15 minutes after the purge.
  </summary>
</histogram>

<histogram name="PurgeAndSuspend.Experimental.TimeToFirstActivePaint"
    units="ms">
  <owner>tasak@google.com</owner>
  <summary>
    Time elapsed from when the backgrounded and purged renderer is foregrounded
    until the renderer is painted. This is recorded every time the backgrounded
    and purged renderer is foregrounded.
  </summary>
</histogram>

<histogram
    name="PurgeAndSuspend.Experimental.TimeToFirstActivePaint.AfterBackgrounded.5min"
    units="ms">
  <owner>tasak@google.com</owner>
  <summary>
    Time elapsed from when the renderer, which is kept backgrounded for more
    than 5 minutes, is foregrounded until the renderer is painted. This is
    recorded every time such renderer is foregrounded.
  </summary>
</histogram>

<histogram name="PurgeAndSuspend.Memory.BlinkGCKB" units="KB">
  <obsolete>
    Deprecated April 2017.
  </obsolete>
  <owner>tasak@google.com</owner>
  <summary>
    The memory usage of the BlinkGC allocator after a background renderer is
    purged and suspended. Note: this metric is for A/B testing.
  </summary>
</histogram>

<histogram name="PurgeAndSuspend.Memory.DiscardableKB" units="KB">
  <obsolete>
    Deprecated April 2017.
  </obsolete>
  <owner>tasak@google.com</owner>
  <summary>
    The memory usage of the discardable memory after a background renderer is
    purged and suspended. Note: this metric is for A/B testing.
  </summary>
</histogram>

<histogram name="PurgeAndSuspend.Memory.MallocMB" units="MB">
  <obsolete>
    Deprecated April 2017.
  </obsolete>
  <owner>tasak@google.com</owner>
  <summary>
    The memory usage of the malloc after a background renderer is purged and
    suspended. Note: this metric is for A/B testing.
  </summary>
</histogram>

<histogram name="PurgeAndSuspend.Memory.PartitionAllocKB" units="KB">
  <obsolete>
    Deprecated April 2017.
  </obsolete>
  <owner>tasak@google.com</owner>
  <summary>
    The memory usage of PartitionAlloc after a background renderer is purged and
    suspended. Note: this metric is for A/B testing.
  </summary>
</histogram>

<histogram name="PurgeAndSuspend.Memory.TotalAllocatedMB" units="MB">
  <obsolete>
    Deprecated April 2017.
  </obsolete>
  <owner>tasak@google.com</owner>
  <summary>
    The sum of the memory usages of PartitionAlloc, malloc, discardable memory,
    mainThreadIsolate() and BlinkGC allocator after a backgrounded renderer is
    purged and suspended. Note: this metric is for A/B testing.
  </summary>
</histogram>

<histogram name="PurgeAndSuspend.Memory.V8MainThreadIsolateMB" units="MB">
  <obsolete>
    Deprecated April 2017.
  </obsolete>
  <owner>tasak@google.com</owner>
  <summary>
    The memory usage of mainThreadIsolate() after a backgrounded renderer is
    purged and suspended. Note: this metric is for A/B testing.
  </summary>
</histogram>

<histogram name="PurgeAndSuspend.PendingTaskCount">
  <obsolete>
    Deprecated Oct 2017.
  </obsolete>
  <owner>tasak@google.com</owner>
  <summary>
    This records how many tasks are still in task queues when a backgrounded
    renderer is suspended.
  </summary>
</histogram>

<histogram name="PushMessaging.BackgroundBudget" expires_after="2018-08-30">
  <owner>peter@chromium.org</owner>
  <summary>
    Whenever a Service Worker receives a push message, this records the budget
    available to the service worker, which is an internal Chrome value for the
    amount of background processing a service worker is allowed to do without
    visibly alerting the user. Scale for the budget is 0 to 100.
  </summary>
</histogram>

<histogram name="PushMessaging.DeliveryStatus" enum="PushDeliveryStatus">
  <owner>peter@chromium.org</owner>
  <summary>
    When a Service Worker receives a push message, this records whether the
    overall operation was successful, or otherwise the type of error
    encountered.
  </summary>
</histogram>

<histogram name="PushMessaging.DeliveryStatus.FindServiceWorker"
    enum="ServiceWorkerStatusCode">
  <owner>peter@chromium.org</owner>
  <summary>
    When attempting to deliver a push message to a Service Worker, this records
    the result of finding the Service Worker registration given its ID and
    origin.
  </summary>
</histogram>

<histogram name="PushMessaging.DeliveryStatus.ServiceWorkerEvent"
    enum="ServiceWorkerStatusCode">
  <owner>peter@chromium.org</owner>
  <summary>
    When a Service Worker receives a push message, this records the precise
    result received from the Service Worker code.
  </summary>
</histogram>

<histogram name="PushMessaging.GetRegistrationStatus"
    enum="PushGetRegistrationStatus">
  <owner>peter@chromium.org</owner>
  <summary>
    When a webpage asks for details about its current push messaging
    registration, this records whether the request is successful, or otherwise
    the type of error encountered.
  </summary>
</histogram>

<histogram name="PushMessaging.QueuedMessagesCount" expires_after="2019-11-01">
  <owner>mamir@chromium.org</owner>
  <summary>
    When a message arrives for a lazy subscription and Chrome isn't in the
    foreground, it is persisted on disk until next time Chrome is in the
    foreground. This is recorded before adding the message the persisted queue
    to estimate how large does the queue grow.
  </summary>
</histogram>

<histogram name="PushMessaging.ReceivedMessageInBackground" enum="Boolean">
  <owner>peter@chromium.org</owner>
  <summary>
    Whenever a Service Worker receives a push message, this records whether
    Chrome is completely running in the background. A successful report means
    that the message was received when Chrome was in complete background mode,
    without UI, while a failure means it was in some other state: in background
    with some apps running, showing browser windows, etc.
  </summary>
</histogram>

<histogram name="PushMessaging.RegistrationStatus"
    enum="PushRegistrationStatus">
  <owner>peter@chromium.org</owner>
  <summary>
    When a webpage registers for push messaging, this records whether the
    request is successful, or otherwise the type of error encountered.
  </summary>
</histogram>

<histogram name="PushMessaging.SESForLowBudgetOrigin"
    expires_after="2018-08-30">
  <owner>peter@chromium.org</owner>
  <summary>
    When a Service Worker hits low budget when servicing a push message, this
    records what the Site Engagement Service score is at that time.
  </summary>
</histogram>

<histogram name="PushMessaging.SESForNoBudgetOrigin" expires_after="2018-08-30">
  <owner>peter@chromium.org</owner>
  <summary>
    When a Service Worker hits zero budget when servicing a push message, this
    records what the Site Engagement Service score is at that time.
  </summary>
</histogram>

<histogram name="PushMessaging.TimeToCheckIfSubscriptionLazy" units="ms"
    expires_after="2019-11-01">
  <owner>mamir@chromium.org</owner>
  <summary>
    When a message arrives to a subscription while Chrome is in the background,
    the subscription is checked first for being lazy, and accordingly the
    message is forwarded or persisted on disk. Since this check may require disk
    access, this histogram measures the time spent in checking if the
    subscription is lazy.
  </summary>
</histogram>

<histogram name="PushMessaging.TimeToReadPersistedMessages" units="ms"
    expires_after="2019-11-01">
  <owner>mamir@chromium.org</owner>
  <summary>
    When a message arrives for a lazy subscription and Chrome isn't in the
    foreground, it is persisted on disk until next time Chrome is in the
    foreground. This histogram measures the time spent in reading and replaying
    persisted messages when Chrome goes to the foreground.
  </summary>
</histogram>

<histogram name="PushMessaging.UnregistrationGCMResult" enum="GCMClientResult">
  <owner>peter@chromium.org</owner>
  <summary>
    When unregistering a legacy non-InstanceID push messaging subscription, this
    records the result returned by the GCMDriver (note that exceeding the
    maximum number of retries due to network errors is logged as SERVER_ERROR).
  </summary>
</histogram>

<histogram name="PushMessaging.UnregistrationIIDResult" enum="InstanceIDResult">
  <owner>peter@chromium.org</owner>
  <summary>
    When unregistering an InstanceID push messaging subscription, this records
    the result returned from deleting the InstanceID (note that exceeding the
    maximum number of retries due to network errors is logged as SERVER_ERROR).
  </summary>
</histogram>

<histogram name="PushMessaging.UnregistrationReason"
    enum="PushUnregistrationReason">
  <owner>peter@chromium.org</owner>
  <summary>
    When unregistering a website from push messaging, this records the reason
    why it is being unregistered.
  </summary>
</histogram>

<histogram name="PushMessaging.UnregistrationStatus"
    enum="PushUnregistrationStatus">
  <owner>peter@chromium.org</owner>
  <summary>
    When unregistering a website from push messaging, this records whether the
    request is successful, or otherwise the type of error encountered.
  </summary>
</histogram>

<histogram name="PushMessaging.UserVisibleStatus" enum="PushUserVisibleStatus">
  <owner>peter@chromium.org</owner>
  <summary>
    When a Service Worker receives a push message, this records whether it
    showed user-visible UX (like a notification), or whether we showed a forced
    notification on its behalf.
  </summary>
</histogram>

<histogram name="Quickoffice.csvFormattedCellCount" expires_after="2020-02-29">
  <owner>snopanen@google.com</owner>
  <owner>sdoerner@google.com</owner>
  <summary>
    Records the number of cells that contain formatting data in the default
    worksheet when a comma separated value spreadsheet is opened.
  </summary>
</histogram>

<histogram name="Quickoffice.csvNonEmptyCellCount" expires_after="2020-02-29">
  <owner>snopanen@google.com</owner>
  <owner>sdoerner@google.com</owner>
  <summary>
    Records the number of non-empty cells in the default worksheet when a comma
    separated value spreadsheet is opened.
  </summary>
</histogram>

<histogram name="Quickoffice.csvSheetCount" expires_after="2020-02-29">
  <owner>snopanen@google.com</owner>
  <owner>sdoerner@google.com</owner>
  <summary>
    Records the number of worksheets when a comma separated value spreadsheet is
    opened.
  </summary>
</histogram>

<histogram name="Quickoffice.docPageCount" expires_after="2020-02-29">
  <owner>snopanen@google.com</owner>
  <owner>sdoerner@google.com</owner>
  <summary>
    Records the page count when a compound binary format document is opened.
  </summary>
</histogram>

<histogram name="Quickoffice.docParagraphCount" expires_after="2020-02-29">
  <owner>snopanen@google.com</owner>
  <owner>sdoerner@google.com</owner>
  <summary>
    Records the paragraph count when a compound binary format document is
    opened.
  </summary>
</histogram>

<histogram name="Quickoffice.docSectionCount" expires_after="2020-02-29">
  <owner>snopanen@google.com</owner>
  <owner>sdoerner@google.com</owner>
  <summary>
    Records the section count when a compound binary format document is opened.
  </summary>
</histogram>

<histogram name="Quickoffice.docxPageCount" expires_after="2020-02-29">
  <owner>snopanen@google.com</owner>
  <owner>sdoerner@google.com</owner>
  <summary>
    Records the page count when an OOXML format document is opened.
  </summary>
</histogram>

<histogram name="Quickoffice.docxParagraphCount" expires_after="2020-02-29">
  <owner>snopanen@google.com</owner>
  <owner>sdoerner@google.com</owner>
  <summary>
    Records the paragraph count when an OOXML format document is opened.
  </summary>
</histogram>

<histogram name="Quickoffice.docxSectionCount" expires_after="2020-02-29">
  <owner>snopanen@google.com</owner>
  <owner>sdoerner@google.com</owner>
  <summary>
    Records the section count when an OOXML format document is opened.
  </summary>
</histogram>

<histogram name="Quickoffice.ErrorTypes" enum="QuickofficeErrorTypes"
    expires_after="2020-02-29">
  <owner>snopanen@google.com</owner>
  <owner>sdoerner@google.com</owner>
  <summary>
    Records the various different error types encountered when opening and
    reading MS Office file formats in the Quickoffice viewer. These range from
    Nacl crashes and uncaught javascript exceptions to document errors inside
    Quickoffice Web Toolkit (eg QOWT). The errors are recorded against the file
    format in which they occurred.
  </summary>
</histogram>

<histogram name="Quickoffice.FileFormat" enum="QuickofficeFileFormat"
    expires_after="2020-02-29">
  <owner>snopanen@google.com</owner>
  <owner>sdoerner@google.com</owner>
  <summary>
    Records the various different file types supported by Quickoffice (like MS
    Word, Excel, Powerpoint files) when they opened in the browser to measure
    which file formats are most popular.
  </summary>
</histogram>

<histogram name="Quickoffice.pptMasterCount" expires_after="2020-02-29">
  <owner>snopanen@google.com</owner>
  <owner>sdoerner@google.com</owner>
  <summary>
    Records the number of slide masters when a compound binary format
    presentation is opened.
  </summary>
</histogram>

<histogram name="Quickoffice.pptSlideCount" expires_after="2020-02-29">
  <owner>snopanen@google.com</owner>
  <owner>sdoerner@google.com</owner>
  <summary>
    Records the slide count when a compound binary format presentation is
    opened.
  </summary>
</histogram>

<histogram name="Quickoffice.pptxMasterCount" expires_after="2020-02-29">
  <owner>snopanen@google.com</owner>
  <owner>sdoerner@google.com</owner>
  <summary>
    Records the number of slide masters when an OOXML format presentation is
    opened.
  </summary>
</histogram>

<histogram name="Quickoffice.pptxSlideCount" expires_after="2020-02-29">
  <owner>snopanen@google.com</owner>
  <owner>sdoerner@google.com</owner>
  <summary>
    Records the slide count when an OOXML format presentation is opened.
  </summary>
</histogram>

<histogram name="Quickoffice.xlsFormattedCellCount" expires_after="2020-02-29">
  <owner>snopanen@google.com</owner>
  <owner>sdoerner@google.com</owner>
  <summary>
    Records the number of cells that contain formatting data in the default
    worksheet when a compound binary format spreadsheet is opened.
  </summary>
</histogram>

<histogram name="Quickoffice.xlsNonEmptyCellCount" expires_after="2020-02-29">
  <owner>snopanen@google.com</owner>
  <owner>sdoerner@google.com</owner>
  <summary>
    Records the number of non-empty cells in the default worksheet when a
    compound binary format spreadsheet is opened.
  </summary>
</histogram>

<histogram name="Quickoffice.xlsSheetCount" expires_after="2020-02-29">
  <owner>snopanen@google.com</owner>
  <owner>sdoerner@google.com</owner>
  <summary>
    Records the number of worksheets when a compound binary format spreadsheet
    is opened.
  </summary>
</histogram>

<histogram name="Quickoffice.xlsxFormattedCellCount" expires_after="2020-02-29">
  <owner>snopanen@google.com</owner>
  <owner>sdoerner@google.com</owner>
  <summary>
    Records the number of cells that contain formatting data in the default
    worksheet when an OOXML format spreadsheet is opened.
  </summary>
</histogram>

<histogram name="Quickoffice.xlsxNonEmptyCellCount" expires_after="2020-02-29">
  <owner>snopanen@google.com</owner>
  <owner>sdoerner@google.com</owner>
  <summary>
    Records the number of non-empty cells when an OOXML format spreadsheet is
    opened.
  </summary>
</histogram>

<histogram name="Quickoffice.xlsxSheetCount" expires_after="2020-02-29">
  <owner>snopanen@google.com</owner>
  <owner>sdoerner@google.com</owner>
  <summary>
    Records the number of worksheets when an OOXML format spreadsheet is opened.
  </summary>
</histogram>

<histogram name="Quota.AgeOfDataInDays" units="days">
  <owner>jarrydg@chromium.org</owner>
  <summary>
    How many kilobytes are how old. Similar to |AgeOfOrigin| except a sample is
    added for each kilobyte of an origin's data. Logged hourly for all origins
    with stored data.
  </summary>
</histogram>

<histogram name="Quota.AgeOfOriginInDays" units="days">
  <owner>jarrydg@chromium.org</owner>
  <summary>
    How many days it's been since an origin's temporary storage has been
    accessed. Logged hourly for all origins with stored data.
  </summary>
</histogram>

<histogram name="Quota.AvailableDiskSpace" units="MB">
  <owner>jarrydg@chromium.org</owner>
  <summary>
    Amount of free disk space for the storage directory. Logged at irregular
    intervals.
  </summary>
</histogram>

<histogram name="Quota.DaysBetweenRepeatedOriginEvictions">
  <owner>jarrydgchromium.org</owner>
  <summary>
    The number of days since an origin was last chosen to be evicted from the
    storage, recorded each time the origin is evicted (except for the first
    eviction).
  </summary>
</histogram>

<histogram name="Quota.DaysSinceLastAccess" units="days">
  <owner>jarrydg@chromium.org</owner>
  <summary>
    The number of days since an origin's data was last accessed. Logged upon
    access when the time since last access is at least 24 hours.
  </summary>
</histogram>

<histogram name="Quota.DiskspaceShortage" units="MB">
  <owner>jarrydg@chromium.org</owner>
  <summary>
    Difference between acceptable lower limit of diskspace and actual free
    diskspace at beginning of an eviction round.
  </summary>
</histogram>

<histogram name="Quota.ErrorsOnEvictingOriginPerHour">
  <obsolete>
    Expired on 2018-08-30. Removed in M74.
  </obsolete>
  <owner>tzik@chromium.org</owner>
  <summary>
    Number of errors on evicting origin by QuotaTemporaryStorageEvictor in an
    hour.
  </summary>
</histogram>

<histogram name="Quota.ErrorsOnGettingUsageAndQuotaPerHour">
  <obsolete>
    Expired on 2018-08-30. Removed in M74.
  </obsolete>
  <owner>tzik@chromium.org</owner>
  <summary>
    Number of errors on getting usage and quota by QuotaTemporaryStorageEvictor
    in an hour.
  </summary>
</histogram>

<histogram name="Quota.EvictedBytesPerRound" units="MB">
  <owner>jarrydg@chromium.org</owner>
  <summary>
    Amount of usage used by evicted origins in an eviction round.
  </summary>
</histogram>

<histogram name="Quota.EvictedOriginAccessCount">
  <owner>jarrydgchromium.org</owner>
  <summary>
    The number of times the evicted origin was accessed. Logged when the origin
    is evicted.
  </summary>
</histogram>

<histogram name="Quota.EvictedOriginDaysSinceAccess">
  <owner>jarrydgchromium.org</owner>
  <summary>
    The number of days since the evicted origin was last accessed. Logged when
    the origin is evicted.
  </summary>
</histogram>

<histogram name="Quota.EvictedOriginsPerHour">
  <owner>jarrydg@chromium.org</owner>
  <summary>Number of evicted origins in an hour.</summary>
</histogram>

<histogram name="Quota.EvictedOriginTimeSinceAccess">
  <obsolete/>
  <owner>calamity@chromium.org</owner>
  <summary>
    The time since the evicted origin was last accessed. Logged when the origin
    is evicted.
  </summary>
</histogram>

<histogram name="Quota.EvictionRoundsPerHour">
  <owner>jarrydg@chromium.org</owner>
  <summary>Number of eviction rounds in an hour.</summary>
</histogram>

<histogram name="Quota.FreeDiskSpaceForProfile" units="MB">
  <obsolete/>
  <owner>jarrydg@chromium.org</owner>
  <summary>Amount of free disk space for profile directory.</summary>
</histogram>

<histogram name="Quota.GlobalTemporaryPoolSize" units="MB">
  <owner>jarrydg@chromium.org</owner>
  <summary>
    The size of the global temporary storage pool. Logged at irregular
    intervals.
  </summary>
</histogram>

<histogram name="Quota.GlobalUsageOfPersistentStorage" units="MB">
  <owner>jarrydg@chromium.org</owner>
  <summary>Global usage of persistent storage.</summary>
</histogram>

<histogram name="Quota.GlobalUsageOfTemporaryStorage" units="MB">
  <owner>jarrydg@chromium.org</owner>
  <summary>Global usage of temporary storage.</summary>
</histogram>

<histogram name="Quota.InitialTemporaryGlobalStorageQuota" units="MB">
  <obsolete/>
  <owner>jarrydg@chromium.org</owner>
  <summary>Initial quota for global temporary storage.</summary>
</histogram>

<histogram name="Quota.LRUOriginTypes" enum="QuotaOriginTypes">
  <obsolete>
    Removed July 2018
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Types of origins that are initially selected for eviction via LRU. Some of
    these types are exempt from eviction.
  </summary>
</histogram>

<histogram name="Quota.NumberOfEvictedOriginsPerRound">
  <owner>jarrydg@chromium.org</owner>
  <summary>Number of evicted origins per round.</summary>
</histogram>

<histogram name="Quota.NumberOfPersistentStorageOrigins">
  <obsolete>
    Expired on 2018-08-30. Removed in M74.
  </obsolete>
  <owner>tzik@chromium.org</owner>
  <summary>Number of origins using persistent storage.</summary>
</histogram>

<histogram name="Quota.NumberOfProtectedPersistentStorageOrigins">
  <obsolete>
    Expired on 2018-08-30. Removed in M74.
  </obsolete>
  <owner>tzik@chromium.org</owner>
  <summary>Number of protected origins using persistent storage.</summary>
</histogram>

<histogram name="Quota.NumberOfProtectedTemporaryStorageOrigins">
  <obsolete>
    Expired on 2018-08-30. Removed in M74.
  </obsolete>
  <owner>tzik@chromium.org</owner>
  <summary>Number of protected origins using temporary storage.</summary>
</histogram>

<histogram name="Quota.NumberOfTemporaryStorageOrigins">
  <obsolete>
    Expired on 2018-08-30. Removed in M74.
  </obsolete>
  <owner>tzik@chromium.org</owner>
  <summary>Number of origins using temporary storage.</summary>
</histogram>

<histogram name="Quota.NumberOfUnlimitedPersistentStorageOrigins">
  <obsolete>
    Expired on 2018-08-30. Removed in M74.
  </obsolete>
  <owner>tzik@chromium.org</owner>
  <summary>Number of unlimited origins using persistent storage.</summary>
</histogram>

<histogram name="Quota.NumberOfUnlimitedTemporaryStorageOrigins">
  <obsolete>
    Expired on 2018-08-30. Removed in M74.
  </obsolete>
  <owner>tzik@chromium.org</owner>
  <summary>Number of unlimited origins using temporary storage.</summary>
</histogram>

<histogram name="Quota.OSAccomodationDelta" units="MB">
  <owner>jarrydg@chromium.org</owner>
  <summary>
    If our hardcoded OS accomodation is too large for the volume size, we define
    the value as a fraction of the total volume size instead. The
    OSAccomodationDelta is the difference between the hardcoded and computed
    values.
  </summary>
</histogram>

<histogram name="Quota.PercentDiskAvailable" units="%">
  <owner>jarrydg@chromium.org</owner>
  <summary>
    Percentage of the storage device that is free. Logged at irregular
    intervals.
  </summary>
</histogram>

<histogram name="Quota.PercentUsedByOrigin" units="%">
  <owner>jarrydg@chromium.org</owner>
  <summary>
    Percentage of an origin's quota that is being used by the origin. Logged at
    irregular intervals.
  </summary>
</histogram>

<histogram name="Quota.PercentUsedForTemporaryStorage" units="%">
  <owner>jarrydg@chromium.org</owner>
  <summary>
    Percentage of the storage device that is being use for temporary storage.
    Logged at irregular intervals (during eviction).
  </summary>
</histogram>

<histogram name="Quota.PercentUsedForTemporaryStorage2" units="%">
  <owner>jarrydg@chromium.org</owner>
  <summary>
    Percentage of the storage device that is being use for temporary storage.
    Logged when collecting usage information.
  </summary>
</histogram>

<histogram name="Quota.QuotaForOrigin" units="MB">
  <owner>jarrydg@chromium.org</owner>
  <summary>
    The quota value computed for an origin using temporary storage. Logged at
    irregular intervals. (In the process of writing new data, storage systems
    consult the quota system for &quot;usage and quota&quot; to determine if
    there is sufficient space available for the new data. This value is logged
    at the time of that consultation. The frequency is dependent on how
    individual websites use the various storage apis.)
  </summary>
</histogram>

<histogram name="Quota.SkippedEvictionRoundsPerHour" expires_after="2018-08-30">
  <owner>jarrydg@chromium.org</owner>
  <summary>Number of skipped eviction rounds in an hour.</summary>
</histogram>

<histogram name="Quota.TimeBetweenRepeatedOriginEvictions">
  <obsolete/>
  <owner>calamity@chromium.org</owner>
  <summary>
    Time since an origin was last chosen to be evicted from the storage,
    recorded each time the origin is evicted (except for the first eviction).
  </summary>
</histogram>

<histogram name="Quota.TimeDeltaOfEvictionRounds">
  <owner>jarrydg@chromium.org</owner>
  <summary>Time between two consecutive active eviction rounds.</summary>
</histogram>

<histogram name="Quota.TimeSpentToAEvictionRound" expires_after="2018-08-30">
  <owner>jarrydg@chromium.org</owner>
  <summary>Time spent to an eviction round.</summary>
</histogram>

<histogram name="Quota.TimeToGetSettings" units="ms">
  <owner>jarrydg@chromium.org</owner>
  <summary>
    Time spent querying the embedder for the settings values. Logged at
    irregular intervals as the values are refreshed.
  </summary>
</histogram>

<histogram name="Quota.TimeToInitializeGlobalQuota" units="ms">
  <obsolete>
    Removed November 2016
  </obsolete>
  <owner>michaeln@chromium.org</owner>
  <summary>
    Time spent initializing the global quota. Logged when the storage
    partition's quota manager is initialized.
  </summary>
</histogram>

<histogram name="Quota.TotalDiskSpace" units="MB">
  <owner>jarrydg@chromium.org</owner>
  <summary>
    Total disk space for the storage directory. Logged at irregular intervals.
  </summary>
</histogram>

<histogram name="Quota.UsageByOrigin" units="MB">
  <owner>jarrydg@chromium.org</owner>
  <summary>
    Disk space (in MB) currently used by an origin. Logged hourly.
  </summary>
</histogram>

<histogram name="Quota.UsageOverageOfTemporaryGlobalStorage" units="MB">
  <obsolete>
    Expired on 2018-08-30. Removed in M75.
  </obsolete>
  <owner>tzik@chromium.org</owner>
  <summary>
    Overage of the temporary global storage usage at beginning of an eviction
    round.
  </summary>
</histogram>

<histogram name="Rappor.DailyEvent.IntervalType" enum="DailyEventIntervalType">
  <owner>holte@chromium.org</owner>
  <summary>Counts how often daily interval events were fired.</summary>
</histogram>

<histogram name="Rappor.DiscardReason" enum="RapporDiscardReason">
  <owner>holte@chromium.org</owner>
  <summary>
    For each Rappor log that is discarded, the reason that it was discarded.
  </summary>
</histogram>

<histogram name="Rappor.FailedUploadErrorCode" enum="NetErrorCodes">
  <owner>holte@chromium.org</owner>
  <summary>Net error codes for failed Rappor uploads.</summary>
</histogram>

<histogram name="rappor.last_daily_sample" enum="DailyEventIntervalType">
  <obsolete>
    Removed 2015/05/05.
  </obsolete>
  <owner>holte@chromium.org</owner>
  <summary>
    Rappor.DailyEvent.IntervalType reported under the wrong name.
  </summary>
</histogram>

<histogram name="Rappor.LoadCohortResult" enum="RapporLoadResultType">
  <owner>holte@chromium.org</owner>
  <summary>
    Success or errors encountered when loading Rappor cohort pref.
  </summary>
</histogram>

<histogram name="Rappor.LoadSecretResult" enum="RapporLoadResultType">
  <owner>holte@chromium.org</owner>
  <summary>
    Success or errors encountered when loading Rappor secret pref.
  </summary>
</histogram>

<histogram name="Rappor.UploadResponseCode" enum="HttpResponseCode">
  <owner>holte@chromium.org</owner>
  <summary>
    For each upload to the Rappor server, log the response received from the
    server.
  </summary>
</histogram>

<histogram name="ReadingList.ContextMenu" enum="ReadingListContextMenuActions">
  <owner>gambard@chromium.org</owner>
  <summary>
    The action chosen by the user after displaying the reading list context
    menu.
  </summary>
</histogram>

<histogram name="ReadingList.Download.Failures" units="count">
  <owner>gambard@chromium.org</owner>
  <summary>
    Number of tries before the download of the entry is successful.
  </summary>
</histogram>

<histogram name="ReadingList.Download.Status" enum="ReadingListDownloadStatus">
  <owner>gambard@chromium.org</owner>
  <summary>Final status of the download of a reading list entry.</summary>
</histogram>

<histogram name="ReadingList.FirstReadAgeOnDeletion" units="hours">
  <owner>gambard@chromium.org</owner>
  <summary>
    Time since the first read of the reading list entry getting deleted. 0 if it
    has never been read.
  </summary>
</histogram>

<histogram name="ReadingList.OfflineVersionDisplayed" enum="Boolean">
  <owner>gambard@chromium.org</owner>
  <summary>Whether the displayed version is the offline one.</summary>
</histogram>

<histogram name="ReadingList.Read.AgeOnDeletion" units="hours">
  <owner>gambard@chromium.org</owner>
  <summary>
    Time since the creation of the read reading list entry getting deleted.
  </summary>
</histogram>

<histogram name="ReadingList.Read.Number" units="count">
  <owner>gambard@chromium.org</owner>
  <summary>Number of read entries in reading list.</summary>
</histogram>

<histogram name="ReadingList.Unread.AgeOnDeletion" units="hours">
  <owner>gambard@chromium.org</owner>
  <summary>
    Time since the creation of the unread reading list entry getting deleted.
  </summary>
</histogram>

<histogram name="ReadingList.Unread.Number" units="count">
  <owner>gambard@chromium.org</owner>
  <summary>Number of unread entries in reading list.</summary>
</histogram>

<histogram name="RecoveryComponent.Event" enum="RecoveryComponentEvent">
  <owner>robertshield@chromium.org</owner>
  <summary>Log each stage of a recovery component event.</summary>
</histogram>

<histogram base="true" name="RelaunchNotification.ShowResult"
    enum="RelaunchNotificationShowResult">
  <owner>grt@chromium.org</owner>
  <summary>
    The result of an attempt to show a relaunch notification dialog.
  </summary>
</histogram>

<histogram name="Render.Workers.MaxWorkerCountInRendererProcess">
  <obsolete>
    Deprecated Dec 2016. This metric did not report the number of shared workers
    correctly, since it used the RenderProcessHostImpl ref counts, which in the
    shared worker case is more like a boolean flag (zero or one or maybe two)
    than the number of shared workers. So its results can be thought of as
    roughly the number of service workers only.
  </obsolete>
  <owner>kinuko@chromium.org</owner>
  <summary>
    Maximum number of workers (SharedWorker or ServiceWorker) that are
    simultaneously hosted in a single renderer process. Recorded when the
    renderer process host is being destructed.
  </summary>
</histogram>

<histogram name="Renderer.AcceleratedFixedRootBackground"
    enum="AcceleratedFixedRootBackground">
  <obsolete>
    Deprecated May 2018. There are no longer accelerated fixed root backgrounds.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Keeps track of the number of main frame scrolls with an accelerated fixed
    root background, the number of main frame scrolls with an unaccelerated
    fixed root background, and the total number of main frame scrolls.
  </summary>
</histogram>

<histogram name="Renderer.CompositedScrolling" enum="CompositedScrolling">
  <owner>hartmanng@chromium.org</owner>
  <summary>
    Total count of the number of RenderLayers which are scrollable areas, need
    to be promoted to stacking containers, and will use composited scrolling.
    Each bucket is sampled at most once per RenderLayer, when the RenderLayer
    first becomes scrollable, first needs to become a stacking container, and
    first uses composited scrolling, respectively.
  </summary>
</histogram>

<histogram name="Renderer.DrawDuration" units="ms">
  <obsolete>
    Replaced by Scheduling.Renderer.DrawDuration. This metric did not
    differentiate between processes.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>The time it takes for the compositor to draw a frame.</summary>
</histogram>

<histogram name="Renderer.DrawDurationOverestimate" units="ms">
  <obsolete>
    Measurement no longer taken.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    The amount by which the compositor's draw duration was overestimated in a
    particular frame (0 if the duration was perfectly predicted or
    underestimated).
  </summary>
</histogram>

<histogram name="Renderer.DrawDurationUnderestimate" units="ms">
  <obsolete>
    Measurement no longer taken.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    The amount by which the compositor's draw duration was underestimated in a
    particular frame (0 if the duration was perfectly predicted or
    overestimated).
  </summary>
</histogram>

<histogram name="Renderer.GpuLatency" units="ms">
  <obsolete>
    Measurement no longer taken.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    The delay between the compositor submitting a command to the GPU and that
    command executing on the GPU. This delay is measured once per frame.
  </summary>
</histogram>

<histogram name="Renderer.GpuLatencyOverestimate" units="ms">
  <obsolete>
    Measurement no longer taken.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    The amount by which GPU latency was overestimated in a particular frame (0
    if the latency was perfectly predicted or underestimated).
  </summary>
</histogram>

<histogram name="Renderer.GpuLatencyUnderestimate" units="ms">
  <obsolete>
    Measurement no longer taken.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    The amount by which GPU latency was underestimated in a particular frame (0
    if the latency was perfectly predicted or overestimated).
  </summary>
</histogram>

<histogram name="Renderer.Hung.Duration" units="ms">
  <owner>avi@chromium.org</owner>
  <summary>
    The length of time render processes are hung, in milliseconds. Note that
    because technically speaking render processes are &quot;hung&quot; from the
    moment an input event is sent to them until the moment that they return an
    ACK, only hangs of minimum length 5s are recorded. Note that this combines
    measurements from both renderer processes that recover on their own, and
    render processes that are killed.
  </summary>
</histogram>

<histogram name="Renderer.Hung.MobileInfoBar.UserEvent"
    enum="MobileHungRendererInfoBarEvent">
  <owner>dfalcantara@chromium.org</owner>
  <summary>
    Android: Records the terminal event associated with a hung renderer infobar.
    This includes both the explicit user actions as well as implicit dismissals,
    e.g., when the renderer regains responsiveness before the infobar is
    interactively dismissed.
  </summary>
</histogram>

<histogram name="Renderer.LayoutMs" units="ms">
  <obsolete>
    Deprecated as of 3/2015.
  </obsolete>
  <owner>benjhayden@chromium.org</owner>
  <summary>
    Duration of the FrameView::performLayout trace event, which occurs at most
    once per frame.
  </summary>
</histogram>

<histogram name="Renderer.LineLayoutMs" units="ms">
  <obsolete>
    Deprecated as of 3/2015.
  </obsolete>
  <owner>benjhayden@chromium.org</owner>
  <summary>
    Amount of time spent doing line layout during FrameView::performLayout.
  </summary>
</histogram>

<histogram name="Renderer.PixelIncreaseFromTransitions">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    A lower-bound on the percentage increase in memory that would result from
    promoting all layers that have a webkit-transition on opacity or transform.
  </summary>
</histogram>

<histogram name="Renderer.unloadEventsDurationMS" units="ms">
  <obsolete>
    Deprecated as of 10/2013.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    This measures how long all unload event handlers required to run whenever an
    unload event is processed.
  </summary>
</histogram>

<histogram name="Renderer.ViewportZoomBugCount" enum="BooleanHit">
  <owner>kkhorimoto@chromium.org</owner>
  <summary>
    [iOS] A boolean that is used to indicate that the WebKit rendering bug in
    http://crbug.com/583231 has occurred. This occurs when a page with no
    viewport tag is rendered with an unusable zoom scale. Only logged on iOS.
  </summary>
</histogram>

<histogram name="Renderer.WKWebViewCallbackAfterDestroy" enum="BooleanHit">
  <owner>michaeldo@chromium.org</owner>
  <summary>
    [iOS] Counts the number of times a WKNavigationDelegate callback was called
    after the CRWWebController was closed. This is unexpected and could be the
    cause of many crashes. If this histogram is ever logged, it means that
    Chrome needs to gracefully handle the case when WKNavigationDelegate
    callbacks are called for a destroyed web controller. Only logged on iOS.
  </summary>
</histogram>

<histogram name="Renderer2.FinishDocToFinish">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time from when a document finished loading to when all it's resources
    are also loaded.
  </summary>
</histogram>

<histogram name="Renderer2.RequestToFinish">
  <obsolete>
    Deprecated 6/15/09. Replaced by Renderer2.RequestToFinish_L
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time from when a page was requested by a user to when it is fully
    loaded.
  </summary>
</histogram>

<histogram name="Renderer2.RequestToFinish_L">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time from when a page was requested by a user to when it is fully
    loaded.
  </summary>
</histogram>

<histogram name="Renderer2.RequestToFirstLayout">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time from when a page was requested by a user to its first layout.
  </summary>
</histogram>

<histogram name="Renderer2.RequestToStart">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time from when a page was requested by a user to when it starts loading.
  </summary>
</histogram>

<histogram name="Renderer2.StartToFinish">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time from when a page started loading to when it is fully loaded.
  </summary>
</histogram>

<histogram name="Renderer2.StartToFinishDoc">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time from when a page starts loading to when the main document is
    finished loading.
  </summary>
</histogram>

<histogram name="Renderer2.StartToFirstLayout">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time from when a page starts loading to its first layout.
  </summary>
</histogram>

<histogram name="Renderer4.Abandoned" enum="Abandoned">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Distribution of actual finished pages, vs abandoned pages, where we needed
    to declare a finish time prematurely since the page was being closed
    (exited).
  </summary>
</histogram>

<histogram name="Renderer4.AccelContentPaintDurationMS">
  <obsolete>
    Deprecated 2014-05 because of impl-side painting.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Time spent by WebKit painting the page, in milliseconds, when the GPU
    acceleration is active, for paints that affect non-root layers.
  </summary>
</histogram>

<histogram name="Renderer4.AccelContentPaintMegapixPerSecond">
  <obsolete>
    Deprecated 2014-05 because of impl-side painting.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    WebKit paint throughput, measured in megapixels per second, when GPU
    acceleration is active, for paints that affect non-root layers.
  </summary>
</histogram>

<histogram name="Renderer4.AccelDoDeferredUpdateDelay">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>Time between frames when GPU acceleration is active.</summary>
</histogram>

<histogram name="Renderer4.AccelRootPaintDurationMS">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Time spent by WebKit painting the page, in milliseconds, when the GPU
    acceleration is active, for paints that affect the root layer.
  </summary>
</histogram>

<histogram name="Renderer4.AccelRootPaintMegapixPerSecond">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    WebKit paint throughput, measured in megapixels per second, when GPU
    acceleration is active, for paints that affect the root layer.
  </summary>
</histogram>

<histogram name="Renderer4.AnimationCallbackDelayTime" units="ms">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Time from when the animation callback was posted to when it ran.
  </summary>
</histogram>

<histogram name="Renderer4.BeginToCommit" units="ms">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Time from &quot;begin&quot; to &quot;commit.&quot; &quot;Begin&quot;==
    &quot;request&quot; if user requested, and &quot;start&quot; otherwise.
    &quot;Request&quot;== time when user requested document. &quot;Start&quot;==
    time when renderer requested load of document, after any unload of last
    document. &quot;Commit&quot;== time when renderer got first byte of
    document.
  </summary>
</histogram>

<histogram name="Renderer4.BeginToFinish">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>TBD</summary>
</histogram>

<histogram name="Renderer4.BeginToFinishDoc">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>TBD</summary>
</histogram>

<histogram name="Renderer4.BeginToFirstPaint" units="ms">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Time from &quot;begin&quot; to &quot;first paint.&quot; &quot;Begin&quot;==
    &quot;request&quot; if user requested, and &quot;start&quot; otherwise.
    &quot;Request&quot;== time when user requested document. &quot;Start&quot;==
    time when renderer requested load of document, after any unload of last
    document. &quot;First paint&quot;== time when first paint operation was
    performed.
  </summary>
</histogram>

<histogram name="Renderer4.BeginToFirstPaintAfterLoad" units="ms">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Time from &quot;big&quot; to &quot;first paint after load.&quot;
    &quot;Begin&quot;== &quot;request&quot; if user requested, and
    &quot;start&quot; otherwise. &quot;Request&quot;== time when user requested
    document. &quot;Start&quot;== time when renderer requested load of document,
    after any unload of last document. &quot;First paint after load&quot;== time
    after onload() when first paint operation is performed.
  </summary>
</histogram>

<histogram name="Renderer4.Browser.PartialRasterPercentageSaved" units="%">
  <owner>ericrk@chromium.org</owner>
  <summary>
    Percentage of pixels which would have been rastered, but were skipped due to
    the partial raster optimization. Logged for each raster task run in a
    Browser process. The histogram is suffixed by the RasterBufferProvider which
    is in use.
  </summary>
</histogram>

<histogram name="Renderer4.Browser.RasterTaskTotalDuration"
    units="microseconds">
  <owner>khushalsagar@chromium.org</owner>
  <summary>
    Time spent completing all work for a compositor rasterization task. This
    includes the time in the renderer process for sending GL or paint commands
    to the GPU process and the time for flushing these commands to the driver.
  </summary>
</histogram>

<histogram name="Renderer4.CommitToFinish" units="ms">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Time from &quot;commit&quot; to &quot;finish.&quot; &quot;Commit&quot;==
    time when renderer got first byte of document. &quot;Finish&quot;==after
    onload() and all resources are loaded.
  </summary>
</histogram>

<histogram name="Renderer4.CommitToFinishDoc" units="ms">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Time from &quot;commit&quot; to &quot;finish doc.&quot; &quot;Commit&quot;==
    time when renderer got first byte of document. &quot;Finish doc&quot; ==
    main document loaded, before onload(). &quot;Finish&quot;==after onload()
    and all resources are loaded.
  </summary>
</histogram>

<histogram name="Renderer4.CommitToFirstPaint" units="ms">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Time from &quot;commit&quot; to &quot;first paint.&quot;
    &quot;Commit&quot;== time when renderer got first byte of document.
    &quot;First paint&quot;== time when first paint operation was performed.
  </summary>
</histogram>

<histogram name="Renderer4.CommitToFirstPaintAfterLoad" units="ms">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Time from &quot;commit&quot; to &quot;first paint after load.&quot;
    &quot;Commit&quot;== time when renderer got first byte of document.
    &quot;First paint after load&quot;== time after onload() when first paint
    operation is performed.
  </summary>
</histogram>

<histogram name="Renderer4.CompositorScrollHitTestResult"
    enum="CompositorScrollResult">
  <obsolete>
    Deprecated in 12/2017. Renderer4.MainThreadGestureScrollReason and
    Renderer4.MainThreadWheelScrollReason could track more detailed reasons of
    main thread scrolling.
  </obsolete>
  <owner>vollick@chromium.org</owner>
  <summary>
    It's possible for compositor hit testing to determine conclusively that
    compositor thread scrolling can or cannot be done. It's also possible that
    the hit testing result is inconclusive. We would like to see the I-don't-
    know result as little as possible. This histogram tracks the ratios.
  </summary>
</histogram>

<histogram name="Renderer4.CompositorThreadImplDrawDelay" units="ms">
  <obsolete>
    Deprecated in 06/2018, M69. Renderer4.CompositorThreadImplDrawDelay is no
    longer needed due to issue 851784.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Time between frames, as measured on the compositor thread. This is collected
    once per frame while it is being drawn to the screen in the compositor.
  </summary>
</histogram>

<histogram name="Renderer4.CompositorTouchScrollUpdateThread"
    enum="ScrollThread">
  <owner>tdresser@chromium.org</owner>
  <summary>Whether the scroll from touch is executed on main thread.</summary>
</histogram>

<histogram name="Renderer4.CompositorWheelScrollUpdateThread"
    enum="ScrollThread">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Whether the scroll from mouse wheel is executed on main thread.
  </summary>
</histogram>

<histogram name="Renderer4.drawPixelCountCulled" units="NormalizedPixels">
  <obsolete>
    Renamed to Renderer4.pixelCountCulled_Draw.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Number of pixels that culling prevented being drawn to the screen,
    normalized to the viewport size. This is collected once per frame while it
    is being drawn to the screen in the compositor.
  </summary>
</histogram>

<histogram name="Renderer4.drawPixelCountOpaque" units="NormalizedPixels">
  <obsolete>
    Renamed to Renderer4.pixelCountOpaque_Draw.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Number of pixels drawn to the screen and known opaque, normalized to the
    viewport size. This is collected once per frame while it is being drawn to
    the screen in the compositor.
  </summary>
</histogram>

<histogram name="Renderer4.drawPixelCountTranslucent" units="NormalizedPixels">
  <obsolete>
    Renamed to Renderer4.pixelCountTranslucent_Draw.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Number of pixels drawn to the screen and not known opaque, normalized to the
    viewport size. This is collected once per frame while it is being drawn to
    the screen in the compositor.
  </summary>
</histogram>

<histogram name="Renderer4.FinishDocToFinish" units="ms">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Time from &quot;finish doc&quot; to &quot;finish.&quot; &quot;Finish
    doc&quot;== main document loaded, before onload(). &quot;Finish&quot;==after
    onload() and all resources are loaded.
  </summary>
</histogram>

<histogram name="Renderer4.FinishToFirstPaintAfterLoad" units="ms">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Time from &quot;finish &quot; to &quot;first paint after load.&quot;
    &quot;Finish&quot;==after onload() and all resources are loaded. &quot;First
    paint after load&quot;== time after onload() when first paint operation is
    performed.
  </summary>
</histogram>

<histogram name="Renderer4.GestureScrollingThreadStatus"
    enum="ScrollingThreadStatus">
  <obsolete>
    Deprecated 9/2018 and merged into Renderer4.MainThreadGestureScrollReason.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    For every touch scroll, we record whether the scroll occurred on the main
    thread, on the compositor thread, or on the compositor thread but blocked on
    the main thread. The last case will happen when there is a blocking event
    listener.
  </summary>
</histogram>

<histogram name="Renderer4.GpuImageDecodeState" enum="GpuImageUsageState">
  <owner>vmpstr@chromium.org</owner>
  <summary>
    Gpu image decode usage statistics. Images are decoded and locked prior to
    upload; this indicates how that decode is used during tile management.
  </summary>
</histogram>

<histogram name="Renderer4.GpuImageDecodeState.FirstLockWasted"
    enum="BooleanWasted">
  <owner>vmpstr@chromium.org</owner>
  <summary>
    Indication whether the first lock of an image decode was wasted (image was
    not used). Images are decoded and locked prior to raster; this indicates
    whether the decode was used or not during the first lock.
  </summary>
</histogram>

<histogram name="Renderer4.GpuImageUploadState" enum="GpuImageUsageState">
  <owner>ericrk@chromium.org</owner>
  <summary>
    Gpu image upload usage statistics. Images are uploaded and locked prior to
    use; this indicates how that upload is used during tile management.
  </summary>
</histogram>

<histogram name="Renderer4.GpuImageUploadState.FirstLockWasted"
    enum="BooleanWasted">
  <owner>ericrk@chromium.org</owner>
  <summary>
    Indication whether the first lock of an image upload was wasted (image was
    not used). Images are uploaded and locked prior to raster; this indicates
    whether the upload was used or not during the first lock.
  </summary>
</histogram>

<histogram name="Renderer4.GpuImageUploadState.FirstRefWasted"
    enum="BooleanWasted">
  <obsolete>
    Deprecated as of 06/2017. No longer generated.
  </obsolete>
  <owner>vmpstr@chromium.org</owner>
  <summary>
    Indication whether the first ref of a GPU image upload was wasted (not used
    in raster). Images are uploaded prior to raster; this indicates whether the
    upload was used during the first ref.
  </summary>
</histogram>

<histogram name="Renderer4.GpuImageUploadState.Used" enum="BooleanUsage">
  <obsolete>
    Deprecated as of 06/2017. No longer generated.
  </obsolete>
  <owner>vmpstr@chromium.org</owner>
  <summary>
    Indication whether the GPU image upload was used in raster. Images are
    uploaded prior to raster; this indicates whether the upload was used during
    raster.
  </summary>
</histogram>

<histogram name="Renderer4.GpuRasterizationEnabled" enum="BooleanEnabled">
  <owner>ericrk@chromium.org</owner>
  <owner>enne@chromium.org</owner>
  <summary>
    Whether gpu rasterization is enabled (checked once after the page is painted
    for the first time).
  </summary>
</histogram>

<histogram name="Renderer4.GpuRasterizationSlowPathsWithNonAAPaint"
    enum="BooleanHasSlowPathsWithNonAAPaint">
  <owner>ericrk@chromium.org</owner>
  <owner>enne@chromium.org</owner>
  <summary>
    If gpu rasterization is enabled, whether this page contains both slow-paths
    (making it suitable for MSAA) and non-AA paints (making it not-suitable for
    MSAA). This indicates a case where we would like to use MSAA, but may have
    to avoid it for correctness reasons.
  </summary>
</histogram>

<histogram name="Renderer4.GpuRasterizationSuitableContent"
    enum="BooleanEnabled">
  <owner>ericrk@chromium.org</owner>
  <owner>enne@chromium.org</owner>
  <summary>
    If gpu rasterization is enabled, whether the page contents contain no more
    than 5 slow paths, and is suitable for non-MSAA gpu rasterization (checked
    once after the page is painted for the first time).
  </summary>
</histogram>

<histogram name="Renderer4.GpuRasterizationTriggered" enum="BooleanEnabled">
  <owner>ericrk@chromium.org</owner>
  <owner>enne@chromium.org</owner>
  <summary>
    If gpu rasterization is enabled, whether it was triggered (checked once
    after the page is painted for the first time).
  </summary>
</histogram>

<histogram name="Renderer4.GpuRasterizationUsed" enum="BooleanEnabled">
  <obsolete>
    Deprecated 02/2019. Due to changes in the code, this is synonymous with
    Renderer4.GpuRasterizationEnabled.
  </obsolete>
  <owner>alokp@chromium.org</owner>
  <summary>
    If gpu rasterization is enabled, whether it was actually used for the page
    (checked once after the page is painted for the first time).
  </summary>
</histogram>

<histogram name="Renderer4.IdealContentsScale">
  <obsolete>
    Deprecated 02/2018. The ideal content scale closely matches the default
    device scale factor.
  </obsolete>
  <owner>vmpstr@chromium.org</owner>
  <summary>
    The contents scale at which picture layer impl should be rasterized in order
    to appear crisp. This is also known as ideal contents scale. This value is
    recorded any time the ideal contents scale changes. Some examples of this
    are pinch-zoom and JavaScript transform changes.
  </summary>
</histogram>

<histogram name="Renderer4.ImageDecodeMipLevel" units="mip level">
  <owner>khushalsagar@chromium.org</owner>
  <summary>
    The mip level at which images are decoded for rasterization in the renderer.
    This value is recorded each time an image is decoded in the compositor and
    records the mip level used for the decode. Note that the mip levels recorded
    lie between [1, 32], with the value of 1 indicating the use of the original
    image.
  </summary>
</histogram>

<histogram name="Renderer4.ImageDecodeTaskDurationUs" units="microseconds">
  <owner>vmpstr@chromium.org</owner>
  <summary>
    This metric records the duration of an image decode for the raster path in
    the compositor. It is recorded every time we decode an image. It is suffixed
    by the type of rasterization we're in (either Gpu or Software).

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Renderer4.ImageDecodeTaskDurationUs.OutOfRaster"
    units="microseconds">
  <owner>vmpstr@chromium.org</owner>
  <owner>khushalsagar@chromium.org</owner>
  <summary>
    This metric records the duration of an image decode for out of raster path
    in the compositor. It is recorded every time we decode an image. It is
    suffixed by the type of rasterization we're in (either Gpu or Software).

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Renderer4.ImagePixelsPercentSRGB" units="%">
  <owner>ccameron@chromium.org</owner>
  <summary>
    For each cc::Layer that has more than zero discardable images, this metric
    records the percent of image pixels that were from images that were
    originally specified in an sRGB color space.
  </summary>
</histogram>

<histogram name="Renderer4.ImagesPercentSRGB" units="%">
  <owner>ccameron@chromium.org</owner>
  <summary>
    For each cc::Layer that has more than zero discardable images, this metric
    records the percent of images that were originally specified in an sRGB
    color space.
  </summary>
</histogram>

<histogram name="Renderer4.InvalidationRegionApproximateRectCount"
    units="rects">
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Number of rects inside of a PictureLayer's invalidation region per commit.
  </summary>
</histogram>

<histogram name="Renderer4.LanguageDetection" units="ms">
  <obsolete>
    Deprecated in 06/2018, M69. Renderer4.LanguageDetection is no longer needed
    due to issue 851784.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Time to determine the page language. This is done after the page has been
    loaded.
  </summary>
</histogram>

<histogram name="Renderer4.LCDText.PercentageOfAALayers" units="%">
  <obsolete>
    Deprecated as of 02/2015. No longer generated.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    The ratio of LCDText CC Layers / candidate LCDText layers. Recorded in
    LayerTreeHost, after LayerTreeHostCommon::CalculateDrawProperties() has
    computed the properties we need. Only recorded for the first 50 frames of
    every page.
  </summary>
</histogram>

<histogram name="Renderer4.LCDText.PercentageOfCandidateLayers" units="%">
  <obsolete>
    Deprecated as of 02/2015. No longer generated.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    The ratio of CC Layers which are candidates for LCDText AA / total picture
    or content Layers. Recorded in LayerTreeHost, after
    LayerTreeHostCommon::CalculateDrawProperties() has computed the properties
    we need. Only recorded for the first 50 frames of every page.
  </summary>
</histogram>

<histogram name="Renderer4.LoadType" enum="LoadType">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Probability distribution for enumerated varieties of page loads.
  </summary>
</histogram>

<histogram name="Renderer4.LockExistingCachedImage" enum="BooleanSuccess">
  <owner>vmpstr@chromium.org</owner>
  <summary>
    For each attempted lock of a cached image, records whether it was
    successful.
  </summary>
</histogram>

<histogram name="Renderer4.MainThreadGestureScrollReason"
    enum="MainThreadScrollingReason">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Ideally we'd always scroll on the impl thread, but there are a variety of
    situations where we need to scroll on main. We should try to drive these
    down. For every gesture, we record whether or not the scroll occurred on the
    main thread or it should scroll on the impl thread but is blocked on main
    thread, and if it did, what the reason was.
  </summary>
</histogram>

<histogram name="Renderer4.MainThreadWheelScrollReason"
    enum="MainThreadScrollingReason">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Ideally we'd always scroll on the impl thread, but there are a variety of
    situations where we need to scroll on main. We should try to drive these
    down. For every wheel tick, we record whether or not the the scroll occurred
    on the main thread or it should scroll on the impl thread but is blocked on
    main thread, and if it did, what the reason was.
  </summary>
</histogram>

<histogram name="Renderer4.pixelCountCulled_Draw" units="NormalizedPixels">
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Number of pixels that culling prevented being drawn to the screen, recorded
    as 10 times the percentage of the viewport that these pixels cover. This is
    collected once per frame while it is being drawn to the screen in the
    compositor.
  </summary>
</histogram>

<histogram name="Renderer4.pixelCountOpaque" units="NormalizedPixels">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Number of pixels known to be opaque, recorded as 10 times the percentage of
    the viewport that these pixels cover.
  </summary>
</histogram>

<histogram name="Renderer4.pixelCountPainted" units="NormalizedPixels">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Number of pixels painted by WebKit into main memory, recorded as 10 times
    the percentage of the viewport that these pixels cover. This is collected
    once per commit from WebKit to the compositor.
  </summary>
</histogram>

<histogram name="Renderer4.pixelCountTranslucent" units="NormalizedPixels">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Number of pixels not known to be opaque opaque, recorded as 10 times the
    percentage of the viewport that these pixels cover.
  </summary>
</histogram>

<histogram name="Renderer4.RasterSourceClearType" enum="RasterSourceClearType">
  <owner>ericrk@chromium.org</owner>
  <summary>
    The type of clear which was needed for each cc::RasterSource rasterized.
  </summary>
</histogram>

<histogram name="Renderer4.ReadyToDrawTileDrawStatus" enum="UsedInDraw">
  <obsolete>
    Deprecated 02/2017 in Issue 675840.
  </obsolete>
  <owner>vmpstr@chromium.org</owner>
  <summary>
    For each tile that was ready to draw at some point, logs whether the tile
    was actually used in a draw. This is logged at tile destruction time.
  </summary>
</histogram>

<histogram name="Renderer4.Renderer.PartialRasterPercentageSaved" units="%">
  <owner>ericrk@chromium.org</owner>
  <summary>
    Percentage of pixels which would have been rastered, but were skipped due to
    the partial raster optimization. Logged for each raster task run in a
    Renderer process. The histogram is suffixed by the RasterBufferProvider
    which is in use.
  </summary>
</histogram>

<histogram name="Renderer4.Renderer.RasterTaskTotalDuration"
    units="microseconds">
  <owner>khushalsagar@chromium.org</owner>
  <summary>
    Time spent completing all work for a compositor rasterization task. This
    includes the time in the renderer process for sending GL or paint commands
    to the GPU process and the time for flushing these commands to the driver.
  </summary>
</histogram>

<histogram name="Renderer4.renderPassCount">
  <owner>enne@chromium.org</owner>
  <owner>chrishtr@chromium.org</owner>
  <summary>
    The number of render passes (or render targets) in the renderer's frame. If
    the value is more than one, then an intermediate rendering target must be
    used during the rendering of the frame for each render pass greater than
    one.
  </summary>
</histogram>

<histogram name="Renderer4.RequestToFinish" units="ms">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Time from &quot;request&quot; to &quot;finish.&quot; &quot;Request&quot;==
    time when user requested document. &quot;Finish&quot;==after onload() and
    all resources are loaded.
  </summary>
</histogram>

<histogram name="Renderer4.RequestToStart" units="ms">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Time from &quot;request&quot; to &quot;start.&quot; &quot;Request&quot;==
    time when user requested document. &quot;Start&quot;== time when renderer
    requested load of document, after any unload of last document.
  </summary>
</histogram>

<histogram name="Renderer4.ReservedMemory" units="MB">
  <owner>bbudge@chromium.org</owner>
  <summary>
    The size of the contiguous memory block reserved in the renderer so that
    large allocations are more likely to succeed. The reservation is currently
    made in BlinkInitializer.
  </summary>
</histogram>

<histogram name="Renderer4.ResourcePoolMemoryUsage" units="MB">
  <owner>ericrk@chromium.org</owner>
  <summary>
    Size of the in-use portion of the ResourcePool. Recorded each time resources
    are reclaimed after tile work completes.
  </summary>
</histogram>

<histogram name="Renderer4.Snapshot">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>Time to capture a renderer snapshot.</summary>
</histogram>

<histogram name="Renderer4.SoftwareCompositorThreadImplDrawDelay" units="ms">
  <obsolete>
    Deprecated in 06/2018, M69. Renderer4.SoftwareCompositorThreadImplDrawDelay
    is no longer needed due to issue 851784.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Time between frames when the software renderer is being used, as measured on
    the compositor thread. This is collected once per frame while it is being
    drawn to the screen in the compositor.
  </summary>
</histogram>

<histogram name="Renderer4.SoftwareDoDeferredUpdateDelay">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>Time between frames when the page is not GPU accelerated.</summary>
</histogram>

<histogram name="Renderer4.SoftwareImageDecodeState"
    enum="SoftwareImageDecodeState">
  <owner>vmpstr@chromium.org</owner>
  <summary>
    Software image decode usage statistics. Images are decoded and locked prior
    to raster; this indicates how that decode is used during tile management.
  </summary>
</histogram>

<histogram name="Renderer4.SoftwareImageDecodeState.FirstLockWasted"
    enum="BooleanWasted">
  <owner>vmpstr@chromium.org</owner>
  <summary>
    Indication whether the first lock of an image decode was wasted (image was
    not used). Images are decoded and locked prior to raster; this indicates
    whether the decode was used or not during the first lock.
  </summary>
</histogram>

<histogram name="Renderer4.SoftwarePaintDurationMS">
  <obsolete>
    Deprecated in issue 755432 as no longer being needed.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Time spent by WebKit painting the page, in milliseconds, when the page is
    not GPU accelerated.
  </summary>
</histogram>

<histogram name="Renderer4.SoftwarePaintMegapixPerSecond">
  <obsolete>
    Deprecated in issue 755432 as no longer being needed.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    WebKit paint throughput, measured in megapixels per second, when the page is
    not GPU accelerated.
  </summary>
</histogram>

<histogram name="Renderer4.StartToCommit" units="ms">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Time from &quot;start&quot; to &quot;commit.&quot; &quot;Start&quot;== time
    when renderer requested load of document, after any unload of last document.
    &quot;Commit&quot;== time when renderer got first byte of document.
  </summary>
</histogram>

<histogram name="Renderer4.StartToFinish" units="ms">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Time from &quot;start&quot; to &quot;finish.&quot; &quot;Start&quot;== time
    when renderer requested load of document, after any unload of last document.
    &quot;Finish&quot;==after onload() and all resources are loaded.
  </summary>
</histogram>

<histogram name="Renderer4.TextureCopyLatency" units="microseconds">
  <owner>reveman@chromium.org</owner>
  <summary>
    Time between the issue of a texture copy operation and detecting that it has
    completed as measured by the GPU process.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Renderer4.TextureGpuUploadTimeUS">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    The number of microseconds it took to upload a tile's full texture as
    measured on the GPU process.
  </summary>
</histogram>

<histogram name="Renderer4.Thumbnail">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>Time to capture a renderer thumbnail.</summary>
</histogram>

<histogram name="Renderer4.tileCountCulled_Upload" units="NormalizedTiles">
  <obsolete>
    Deprecated at an unknown time. No longer used in code.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Number of tiles that culling prevented being uploaded to texture memory.
    This is an approximation and is recorded as a 100 times the percentage of
    the number of tiles, of default size, needed to cover the viewport. This is
    collected once per commit from WebKit to the compositor.
  </summary>
</histogram>

<histogram name="Renderer4.uploadPixelCountCulled" units="NormalizedPixels">
  <obsolete>
    Deprecated as of 04/2012, replaced with Renderer4.tileCountCulled_Upload.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Number of pixels that culling prevented being uploaded to texture memory,
    normalized to the viewport size. This is collected once per commit from
    WebKit to the compositor.
  </summary>
</histogram>

<histogram name="Renderer4.uploadPixelCountOpaque" units="NormalizedPixels">
  <obsolete>
    Renamed to Renderer4.pixelCountOpaque_Upload.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Number of pixels uploaded to texture memory and known to be opaque,
    normalized to the viewport size. This is collected once per commit from
    WebKit to the compositor.
  </summary>
</histogram>

<histogram name="Renderer4.uploadPixelCountTranslucent"
    units="NormalizedPixels">
  <obsolete>
    Renamed to Renderer4.pixelCountTranslucent_Upload.
  </obsolete>
  <owner>wiltzius@chromium.org</owner>
  <summary>
    Number of pixels uploaded to texture memory and not known opaque, normalized
    to the viewport size. This is collected once per commit from WebKit to the
    compositor.
  </summary>
</histogram>

<histogram name="Renderer4.WheelScrollingThreadStatus"
    enum="ScrollingThreadStatus">
  <obsolete>
    Deprecated 9/2018 and merged into Renderer4.MainThreadWheelScrollReason.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    For every wheel tick, we record whether the scroll occurred on the main
    thread, on the compositor thread, or on the compositor thread but blocked on
    the main thread. The last case will happen when there is a blocking event
    listener.
  </summary>
</histogram>

<histogram name="RendererScheduler.BackgroundedRendererTransition"
    enum="BackgroundedRendererTransition">
  <obsolete>
    Deprecated 6/2018 and replaced with
    PageScheduler.PageLifecycleStateTransition.
  </obsolete>
  <owner>fmeawad@chromium.org</owner>
  <owner>panicker@chromium.org</owner>
  <summary>
    Tracks the transitions of the renderer scheduler when it is backgrounded.
    Once it is backgrounded, it can be stopped after a timeout, stopped due to
    critical resources, resumed or foregrounded.
  </summary>
</histogram>

<histogram name="RendererScheduler.BackgroundRendererMainThreadLoad" units="%">
  <obsolete>
    Replaced with RendererScheduler.BackgroundRendererMainThreadLoad2 as of May
    2017.
  </obsolete>
  <owner>altimin@chromium.org</owner>
  <summary>
    Renderer main thread load when renderer is backgrounded, i.e. percentage of
    time spent on running tasks.

    This metric is emitted when the renderer main thread task is completed or
    renderer is backgrounded or foregrounded, at most once per minute per
    renderer amortized.
  </summary>
</histogram>

<histogram name="RendererScheduler.BackgroundRendererMainThreadLoad2" units="%">
  <obsolete>
    Replaced with
    RendererScheduler.RendererMainThreadLoad3.Background.AfterFirstMinute as of
    July 2017.
  </obsolete>
  <owner>altimin@chromium.org</owner>
  <summary>
    Renderer main thread load when renderer is backgrounded, i.e. percentage of
    time spent on running tasks.

    This metric is emitted when the renderer main thread task is completed or
    renderer is backgrounded or foregrounded, at most once per minute per
    renderer amortized.

    Note that this metric discards tasks longer than 30 seconds because they are
    considered to be a result of measurement glitch.
  </summary>
</histogram>

<histogram base="true"
    name="RendererScheduler.ExpectedQueueingTimeByFrameStatus"
    units="microseconds">
  <obsolete>
    Replaced with RendererScheduler.ExpectedQueueingTimeByFrameStatus2 as of Feb
    2018. Buckets were changed.
  </obsolete>
  <owner>npm@chromium.org</owner>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Expected queueing time split by tasks according to their frame status, in
    microseconds. The sum of the split values will be equal to the total,
    reported on RendererScheduler.ExpectedTaskQueueingDuration2. Recorded for
    each 1000 ms window.
  </summary>
</histogram>

<histogram base="true"
    name="RendererScheduler.ExpectedQueueingTimeByFrameStatus2"
    units="microseconds">
  <owner>npm@chromium.org</owner>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Expected queueing time split by tasks according to their frame status, in
    microseconds. The sum of the split values will be equal to the total,
    reported on RendererScheduler.ExpectedTaskQueueingDuration3. Recorded for
    each 1000 ms window.
  </summary>
</histogram>

<histogram base="true" name="RendererScheduler.ExpectedQueueingTimeByFrameType"
    units="ms">
  <obsolete>
    Replaced with RendererScheduler.ExpectedQueueingTimeByFrameStatus as of
    December 2017.
  </obsolete>
  <owner>npm@chromium.org</owner>
  <summary>
    Expected queueing time split by tasks according to their frame type. The sum
    of the split values should be equal to the total, reported on
    RendererScheduler.ExpectedTaskQueueingDuration. Recorded for each 1000 ms
    window.
  </summary>
</histogram>

<histogram base="true" name="RendererScheduler.ExpectedQueueingTimeByTaskQueue"
    units="microseconds">
  <obsolete>
    Replaced with RendererScheduler.ExpectedQueueingTimeByTaskQueue2 as of Feb
    2018. Buckets were changed.
  </obsolete>
  <owner>npm@chromium.org</owner>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Expected queueing time split by tasks according to the type of their task
    queue, in microseconds. The sum of the split values should be equal to the
    total, reported on RendererScheduler.ExpectedTaskQueueingDuration2. Recorded
    for each 1000 ms window.
  </summary>
</histogram>

<histogram base="true"
    name="RendererScheduler.ExpectedQueueingTimeByTaskQueue2"
    units="microseconds">
  <obsolete>
    Removed February 2019.
  </obsolete>
  <owner>npm@chromium.org</owner>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Expected queueing time split by tasks according to the type of their task
    queue, in microseconds. The sum of the split values should be equal to the
    total, reported on RendererScheduler.ExpectedTaskQueueingDuration3. Recorded
    for each 1000 ms window.
  </summary>
</histogram>

<histogram base="true"
    name="RendererScheduler.ExpectedQueueingTimeByTaskQueueType" units="ms">
  <obsolete>
    Replaced with RendererScheduler.ExpectedQueueingTimeByTaskQueue as of
    December 2017.
  </obsolete>
  <owner>npm@chromium.org</owner>
  <summary>
    Expected queueing time split by tasks according to the type of their task
    queue. The sum of the split values should be equal to the total, reported on
    RendererScheduler.ExpectedTaskQueueingDuration. Recorded for each 1000 ms
    window.
  </summary>
</histogram>

<histogram name="RendererScheduler.ExpectedQueueingTimeWhenQueueingTime"
    units="ms">
  <obsolete>
    Deprecated 04/2018.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Expected queueing time for events which were queued on the main thread
    longer or shorter than a threshold, given by the QueueingTimeThreshold
    suffix.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="RendererScheduler.ExpectedTaskQueueingDuration" units="ms">
  <owner>tdresser@chromium.org</owner>
  <summary>
    The estimated queueing duration which would be observed for additional high
    priority tasks posted to the RendererScheduler. Recorded for each 1000 ms
    window.
  </summary>
</histogram>

<histogram name="RendererScheduler.ExpectedTaskQueueingDuration2"
    units="microseconds">
  <obsolete>
    Replaced with RendererScheduler.ExpectedTaskQueueingDuration3 as of Feb
    2018. Buckets were changed.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <owner>npm@chromium.org</owner>
  <summary>
    The estimated queueing duration which would be observed for additional high
    priority tasks posted to the RendererScheduler, in microseconds. Recorded
    for each 1000 ms window.
  </summary>
</histogram>

<histogram name="RendererScheduler.ExpectedTaskQueueingDuration3"
    units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <owner>npm@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    The estimated queueing duration which would be observed for additional high
    priority tasks posted to the RendererScheduler, in microseconds. Recorded
    for each 1000 ms window.

    Do not modify this metric in any way without contacting
    speed-metrics-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram
    name="RendererScheduler.ExpectedTaskQueueingDurationWithoutMainFrame"
    units="microseconds">
  <owner>tdresser@chromium.org</owner>
  <owner>npm@chromium.org</owner>
  <summary>
    The estimated queueing duration which would be observed for additional high
    priority tasks posted to the RendererScheduler, in microseconds, for
    renderer processes that do not host any main frame. Recorded for each 1000
    ms window.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="RendererScheduler.ForegroundRendererMainThreadLoad" units="%">
  <obsolete>
    Replaced with RendererScheduler.ForegroundRendererMainThreadLoad2 as of May
    2017.
  </obsolete>
  <owner>altimin@chromium.org</owner>
  <summary>
    Renderer main thread load when renderer is foregrounded, i.e. percentage of
    time spent on running tasks.

    This metric is emitted when the renderer main thread task is completed or
    renderer is backgrounded or foregrounded, at most once per minute per
    renderer amortized.
  </summary>
</histogram>

<histogram name="RendererScheduler.ForegroundRendererMainThreadLoad2" units="%">
  <obsolete>
    Replaced with
    RendererScheduler.RendererMainThreadLoad3.Foreground.AfterFirstMinute as of
    July 2017.
  </obsolete>
  <owner>altimin@chromium.org</owner>
  <summary>
    Renderer main thread load when renderer is foregrounded, i.e. percentage of
    time spent on running tasks.

    This metric is emitted when the renderer main thread task is completed or
    renderer is backgrounded or foregrounded, at most once per minute per
    renderer amortized.

    Note that this metric discards tasks longer than 30 seconds because they are
    considered to be a result of measurement glitch.
  </summary>
</histogram>

<histogram name="RendererScheduler.IPC.FrameVisibility" enum="Boolean">
  <owner>altimin@chromium.org</owner>
  <owner>lpy@chromium.org</owner>
  <summary>
    This boolean keeps track the count of the visibility change of a frame.
    Recorded every time when the visibility of a frame is changed.
  </summary>
</histogram>

<histogram name="RendererScheduler.MaxQueueingTime" units="ms">
  <owner>maxlg@chromium.org</owner>
  <summary>
    The single maximum estimated queueing duration (or max queueing time)
    between when user starts navigation and user navigates away. Navigate-away
    is defined as a fast shutdown or a natural ending of renderer, or the new
    navigation start which replacing the old navigation.

    The queueing time is estimated on a sliding window basis. The width of the
    sliding window is 1 second, the sliding step being 50ms. The max queueing
    time keeps track of the largest queueing time on each slide.

    This metric resets itself at navigation start, updates the max of queueing
    time with the sliding window moving, reports the max queueing times to the
    histogram at the next navigation start of the same or different renderer
    process.
  </summary>
</histogram>

<histogram name="RendererScheduler.NumberOfTasksPerQueueType"
    enum="RendererSchedulerTaskQueueType">
  <obsolete>
    Replaced with RendererScheduler.NumberOfTasksPerQueueType2 as of May 2017.
  </obsolete>
  <owner>altimin@chromium.org</owner>
  <owner>alexclarke@chromium.org</owner>
  <summary>
    The number of completed renderer tasks split per task queue type. Used to
    monitor usage of each type of task queue. Reported each time when task is
    completed.
  </summary>
</histogram>

<histogram name="RendererScheduler.NumberOfTasksPerQueueType2"
    enum="RendererSchedulerTaskQueueType">
  <obsolete>
    Replaced with RendererScheduler.TaskCountPerQueueType as of July 2017.
  </obsolete>
  <owner>altimin@chromium.org</owner>
  <owner>alexclarke@chromium.org</owner>
  <summary>
    The number of completed renderer tasks split per task queue type. Used to
    monitor usage of each type of task queue. Reported each time when task is
    completed.

    Note that this metric discards tasks longer than 30 seconds because they are
    considered to be a result of measurement glitch.
  </summary>
</histogram>

<histogram name="RendererScheduler.QueueingDurationWhenExpectedQueueingTime"
    units="ms">
  <obsolete>
    Deprecated as of 08/2017. Replaced with
    RendererScheduler.ExpectedQueueingTimeWhenQueueingTime.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>
    Time between sending an event to the renderer main thread and when the
    renderer begins to process that event, for events which were dispatched when
    the expected queueing time was past some threshold.

    Team: input-dev@chromium.org.
  </summary>
</histogram>

<histogram name="RendererScheduler.RendererMainThreadLoad3" units="%">
  <obsolete>
    This metric still used 1-minute reporting chunks. Replaced with
    RendererMainThreadLoad4 as of July 2017.
  </obsolete>
  <owner>altimin@chromium.org</owner>
  <summary>
    Renderer main thread load (percentage of time spent in tasks), reported in
    one minute chunks.

    See http://bit.ly/chromium-renderer-main-thread-load-metric for details.

    This metric is emitted when the renderer main thread task is completed or
    renderer is backgrounded or foregrounded, at most once per second per
    renderer amortized.
  </summary>
</histogram>

<histogram name="RendererScheduler.RendererMainThreadLoad4" units="%">
  <obsolete>
    Replaced with RendererMainThreadLoad5 as of August 2017.
  </obsolete>
  <owner>altimin@chromium.org</owner>
  <summary>
    Renderer main thread load (percentage of time spent in tasks), reported in
    one second chunks.

    See http://bit.ly/chromium-renderer-main-thread-load-metric for details.

    This metric is emitted when the renderer main thread task is completed or
    renderer is backgrounded or foregrounded, at most once per second per
    renderer amortized.
  </summary>
</histogram>

<histogram name="RendererScheduler.RendererMainThreadLoad5" units="%">
  <owner>altimin@chromium.org</owner>
  <summary>
    Renderer main thread load (percentage of time spent in tasks), reported in
    one second chunks.

    See http://bit.ly/chromium-renderer-main-thread-load-metric for details.

    This metric is emitted when the renderer main thread task is completed or
    renderer is backgrounded or foregrounded, at most once per second per
    renderer amortized.
  </summary>
</histogram>

<histogram name="RendererScheduler.ResourceLoadingTaskCountPerNetPriority"
    enum="NetRequestPriority">
  <owner>farahcharab@chromium.org</owner>
  <owner>altimin@chromium.org</owner>
  <summary>
    Used to track the number of resource loading tasks split by net priority.
    Recorded each time the resource's request priority is changed.
  </summary>
</histogram>

<histogram name="RendererScheduler.ResourceLoadingTaskCountPerPriority"
    enum="TaskQueuePriority">
  <owner>farahcharab@chromium.org</owner>
  <owner>altimin@chromium.org</owner>
  <summary>
    Used to track the number of resource loading tasks split by execution
    priority. Recorded each time a task is executed.
  </summary>
</histogram>

<histogram name="RendererScheduler.TaskCountPerFrameType"
    enum="RendererSchedulerFrameType2">
  <owner>altimin@chromium.org</owner>
  <summary>
    The number of completed renderer tasks split per frame type. Used to monitor
    usage of each type of frame. Reported each time when task is completed.

    Note that this metric discards tasks longer than 30 seconds because they are
    considered to be a result of measurement glitch.
  </summary>
</histogram>

<histogram name="RendererScheduler.TaskCountPerQueueType"
    enum="RendererSchedulerTaskQueueType">
  <owner>altimin@chromium.org</owner>
  <summary>
    The number of completed renderer tasks split per task queue type. Used to
    monitor usage of each type of task queue. Reported each time when task is
    completed.

    Note that this metric discards tasks longer than 30 seconds because they are
    considered to be a result of measurement glitch.
  </summary>
</histogram>

<histogram name="RendererScheduler.TaskCPUDurationPerTaskType.DedicatedWorker"
    enum="RendererSchedulerTaskType" units="ms">
  <obsolete>
    Replaced with RendererScheduler.TaskCPUDurationPerTaskType2.DedicatedWorker
    as of June 2018 due to overflows (crbug.com/809668). Some metrics are
    incremented with large amounts that they sometimes overflow and roll
    negative before they get uploaded.
  </obsolete>
  <owner>altimin@chromium.org</owner>
  <summary>
    Total duration of dedicated worker tasks (thread time) split by per thread
    type. Reported each time when task is completed and current accumulated
    duration is longer than 1ms.

    Note that this metric discards tasks longer than 30 seconds because they are
    considered to be a result of measurement glitch.
  </summary>
</histogram>

<histogram name="RendererScheduler.TaskCPUDurationPerTaskType2.DedicatedWorker"
    enum="RendererSchedulerTaskType">
  <owner>altimin@chromium.org</owner>
  <summary>
    Total duration (reported in full seconds) of dedicated worker tasks (thread
    time) split by per thread type. Note that partial seconds are rounded
    up/down so that they average to the correct value when many reports are
    added. For more details, check base::ScaledLinearHistogram.

    This is reported each time a task is completed.

    Note that this metric discards tasks longer than 30 seconds because they are
    considered to be a result of measurement glitch.
  </summary>
</histogram>

<histogram name="RendererScheduler.TaskCPUDurationPerThreadType"
    enum="RendererSchedulerThreadType" units="ms">
  <obsolete>
    Replaced with RendererScheduler.TaskCPUDurationPerThreadType2 as of June
    2018 due to overflows (crbug.com/809668). Some metrics are incremented with
    large amounts that they sometimes overflow and roll negative before they get
    uploaded.
  </obsolete>
  <owner>altimin@chromium.org</owner>
  <summary>
    Total cpu time of renderer tasks split by per thread type. Wall time is
    tracked by RendererScheduler.TaskDurationPerThreadType histogram. This
    histogram is used to compare CPU usage of tasks from different threads.

    Only 1% of randomly sampled tasks have cpu time measured and report duration
    for this histogram.

    Note that this metric discards tasks longer than 30 seconds because they are
    considered to be a result of measurement glitch.
  </summary>
</histogram>

<histogram name="RendererScheduler.TaskCPUDurationPerThreadType2"
    enum="RendererSchedulerThreadType">
  <owner>altimin@chromium.org</owner>
  <summary>
    Total cpu time (reported in full seconds) of renderer tasks split by per
    thread type. Note that partial seconds are rounded up/down so that they
    average to the correct value when many reports are added. For more details,
    check base::ScaledLinearHistogram.

    Wall time is tracked by RendererScheduler.TaskDurationPerThreadType
    histogram. This histogram is used to compare CPU usage of tasks from
    different threads.

    Only 1% of randomly sampled tasks have cpu time measured and report duration
    for this histogram.

    Note that this metric discards tasks longer than 30 seconds because they are
    considered to be a result of measurement glitch.
  </summary>
</histogram>

<histogram base="true" name="RendererScheduler.TaskDurationPerFrameOriginType"
    enum="RendererSchedulerFrameOriginType">
  <obsolete>
    Replaced with RendererScheduler.TaskDurationPerFrameOriginType2 as of June
    2018 due to overflows (crbug.com/809668). Some metrics are incremented with
    large amounts that they sometimes overflow and roll negative before they get
    uploaded.
  </obsolete>
  <owner>altimin@chromium.org</owner>
  <summary>
    Total cpu time of renderer tasks split by per frame origin type (main frame
    vs same-origin frame vs cross-origin frame).

    Note that this metric discards tasks longer than 30 seconds because they are
    considered to be a result of measurement glitch.
  </summary>
</histogram>

<histogram base="true" name="RendererScheduler.TaskDurationPerFrameOriginType2"
    enum="RendererSchedulerFrameOriginType">
  <owner>altimin@chromium.org</owner>
  <summary>
    Total cpu time (reported in full seconds) of renderer tasks split by per
    frame origin type (main frame vs same-origin frame vs cross-origin frame).
    Note that partial seconds are rounded up/down so that they average to the
    correct value when many reports are added. For more details, check
    base::ScaledLinearHistogram.

    Note that this metric discards tasks longer than 30 seconds because they are
    considered to be a result of measurement glitch.
  </summary>
</histogram>

<histogram name="RendererScheduler.TaskDurationPerFrameType"
    enum="RendererSchedulerFrameType" units="ms">
  <obsolete>
    Replaced with RendererScheduler.TaskDurationPerFrameType2 due to the
    introduction of new types of frames as of 11/2017.
  </obsolete>
  <owner>altimin@chromium.org</owner>
  <summary>
    Total duration of renderer per-frame tasks split per frame type. Used to
    monitor workload coming from different frames. Reported each time when task
    is completed and current accumulated duration is longer than 1ms.

    This metric is susceptible to problematic outliers and should be analyzed
    with custom scripts accounting for that rather than from a dashboard.
  </summary>
</histogram>

<histogram name="RendererScheduler.TaskDurationPerFrameType2"
    enum="RendererSchedulerFrameType2" units="ms">
  <obsolete>
    Replaced with RendererScheduler.TaskDurationPerFrameType3 as of June 2018
    due to overflows (crbug.com/809668). Some metrics are incremented with large
    amounts that they sometimes overflow and roll negative before they get
    uploaded.
  </obsolete>
  <owner>altimin@chromium.org</owner>
  <summary>
    Total duration of renderer per-frame tasks split per frame type. Used to
    monitor workload coming from different frames. Reported each time when task
    is completed and current accumulated duration is longer than 1ms.

    This metric is susceptible to problematic outliers and should be analyzed
    with custom scripts accounting for that rather than from a dashboard.
  </summary>
</histogram>

<histogram name="RendererScheduler.TaskDurationPerFrameType3"
    enum="RendererSchedulerFrameType2">
  <owner>altimin@chromium.org</owner>
  <summary>
    Total duration (reported in full seconds) of renderer per-frame tasks split
    per frame type. Note that partial seconds are rounded up/down so that they
    average to the correct value when many reports are added. For more details,
    check base::ScaledLinearHistogram.

    Used to monitor workload coming from different frames. Reported each time a
    task is completed.

    This metric is susceptible to problematic outliers and should be analyzed
    with custom scripts accounting for that rather than from a dashboard.
  </summary>
</histogram>

<histogram name="RendererScheduler.TaskDurationPerQueueType"
    enum="RendererSchedulerTaskQueueType" units="ms">
  <obsolete>
    Replaced with RendererScheduler.TaskDurationPerQueueType2 as of May 2017.
  </obsolete>
  <owner>altimin@chromium.org</owner>
  <owner>alexclarke@chromium.org</owner>
  <summary>
    Total duration of renderer tasks split per task queue type. Used to monitor
    usage of each type of task queues. Reported each time when task is completed
    and current accumulated duration is longer than 1ms.

    This metric is susceptible to problematic outliers and should be analyzed
    with custom scripts accounting for that rather than from a dashboard.
  </summary>
</histogram>

<histogram name="RendererScheduler.TaskDurationPerQueueType2"
    enum="RendererSchedulerTaskQueueType" units="ms">
  <obsolete>
    Replaced with RendererScheduler.TaskDurationPerQueueType3 as of June 2018
    due to overflows (crbug.com/809668). Some metrics are incremented with large
    amounts that they sometimes overflow and roll negative before they get
    uploaded.
  </obsolete>
  <owner>altimin@chromium.org</owner>
  <owner>alexclarke@chromium.org</owner>
  <summary>
    Total duration of renderer tasks split per task queue type. Used to monitor
    usage of each type of task queues. Reported each time when task is completed
    and current accumulated duration is longer than 1ms.

    This metric is susceptible to problematic outliers and should be analyzed
    with custom scripts accounting for that rather than from a dashboard.

    Note that this metric discards tasks longer than 30 seconds because they are
    considered to be a result of measurement glitch.
  </summary>
</histogram>

<histogram name="RendererScheduler.TaskDurationPerQueueType3"
    enum="RendererSchedulerTaskQueueType">
  <owner>altimin@chromium.org</owner>
  <owner>alexclarke@chromium.org</owner>
  <summary>
    Total duration (reported in full seconds) of renderer tasks split per task
    queue type. Note that partial seconds are rounded up/down so that they
    average to the correct value when many reports are added. For more details,
    check base::ScaledLinearHistogram.

    Used to monitor usage of each type of task queues. Reported each time a task
    is completed.

    This metric is susceptible to problematic outliers and should be analyzed
    with custom scripts accounting for that rather than from a dashboard.
  </summary>
</histogram>

<histogram name="RendererScheduler.TaskDurationPerTaskType"
    enum="RendererSchedulerTaskType" units="ms">
  <obsolete>
    Replaced with RendererScheduler.TaskDurationPerTaskType2 as of June 2018 due
    to overflows (crbug.com/809668). Some metrics are incremented with large
    amounts that they sometimes overflow and roll negative before they get
    uploaded.
  </obsolete>
  <owner>altimin@chromium.org</owner>
  <owner>hajimehoshi@chromium.org</owner>
  <summary>
    Total duration of renderer per-frame tasks split per task type. Used to
    monitor usage of each task type. Reported each time when task is completed
    and current accumulated duration is longer than 1ms.

    This metric is susceptible to problematic outliers and should be analyzed
    with custom scripts accounting for that rather than from a dashboard.
  </summary>
</histogram>

<histogram name="RendererScheduler.TaskDurationPerTaskType.DedicatedWorker"
    enum="RendererSchedulerTaskType" units="ms">
  <obsolete>
    Replaced with RendererScheduler.TaskDurationPerTaskType2.DedicatedWorker as
    of June 2018 due to due to overflows (crbug.com/809668). Some metrics are
    incremented with large amounts that they sometimes overflow and roll
    negative before they get uploaded.
  </obsolete>
  <owner>altimin@chromium.org</owner>
  <summary>
    Total duration of dedicated worker tasks (wall time) split by per thread
    type. Reported each time when task is completed and current accumulated
    duration is longer than 1ms.

    Note that this metric discards tasks longer than 30 seconds because they are
    considered to be a result of measurement glitch.
  </summary>
</histogram>

<histogram name="RendererScheduler.TaskDurationPerTaskType2"
    enum="RendererSchedulerTaskType">
  <owner>altimin@chromium.org</owner>
  <owner>hajimehoshi@chromium.org</owner>
  <summary>
    Total duration (reported in full seconds) of renderer per-frame tasks split
    per task type. Note that partial seconds are rounded up/down so that they
    average to the correct value when many reports are added. For more details,
    check base::ScaledLinearHistogram.

    Used to monitor usage of each task type. Reported each time a task is
    completed.

    This metric is susceptible to problematic outliers and should be analyzed
    with custom scripts accounting for that rather than from a dashboard.
  </summary>
</histogram>

<histogram name="RendererScheduler.TaskDurationPerTaskType2.DedicatedWorker"
    enum="RendererSchedulerTaskType">
  <owner>altimin@chromium.org</owner>
  <summary>
    Total duration (repored in full seconds) of dedicated worker tasks (wall
    time) split by per thread type. Note that partial seconds are rounded
    up/down so that they average to the correct value when many reports are
    added. For more details, check base::ScaledLinearHistogram.

    Reported each time a task is completed.

    Note that this metric discards tasks longer than 30 seconds because they are
    considered to be a result of measurement glitch.
  </summary>
</histogram>

<histogram name="RendererScheduler.TaskDurationPerThreadType"
    enum="RendererSchedulerThreadType" units="ms">
  <obsolete>
    Replaced with RendererScheduler.TaskDurationPerThreadType2 as of June 2018
    due to overflows (crbug.com/809668). Some metrics are incremented with large
    amounts that they sometimes overflow and roll negative before they get
    uploaded.
  </obsolete>
  <owner>altimin@chromium.org</owner>
  <owner>lpy@chromium.org</owner>
  <summary>
    Total duration of renderer tasks split by per thread type. Used to compare
    CPU usage of tasks from different threads. Reported each time when task is
    completed and current accumulated duration is longer than 1ms.

    Note that this metric discards tasks longer than 30 seconds because they are
    considered to be a result of measurement glitch.
  </summary>
</histogram>

<histogram name="RendererScheduler.TaskDurationPerThreadType2"
    enum="RendererSchedulerThreadType">
  <owner>altimin@chromium.org</owner>
  <owner>lpy@chromium.org</owner>
  <summary>
    Total duration (reported in full seconds) of renderer tasks split by per
    thread type. Note that partial seconds are rounded up/down so that they
    average to the correct value when many reports are added. For more details,
    check base::ScaledLinearHistogram.

    Used to compare CPU usage of tasks from different threads. Reported each
    time a task is completed.

    Note that this metric discards tasks longer than 30 seconds because they are
    considered to be a result of measurement glitch.
  </summary>
</histogram>

<histogram name="RendererScheduler.TaskDurationPerUseCase"
    enum="RendererSchedulerTaskUseCase">
  <obsolete>
    Replaced with RendererScheduler.TaskDurationPerUseCase2 as of June 2018 due
    to overflows (crbug.com/809668). Some metrics are incremented with large
    amounts that they sometimes overflow and roll negative before they get
    uploaded.
  </obsolete>
  <owner>altimin@chromium.org</owner>
  <owner>farahcharab@chromium.org</owner>
  <summary>
    Total duration (measured in ms) of renderer main thread tasks split by
    scheduler use case. Use case is a scheduler's educated guess of the current
    state of the world. See renderer/use_case.h and
    RendererSchedulerImpl::UpdatePolicy for more details.
  </summary>
</histogram>

<histogram name="RendererScheduler.TaskDurationPerUseCase2"
    enum="RendererSchedulerTaskUseCase">
  <owner>altimin@chromium.org</owner>
  <owner>farahcharab@chromium.org</owner>
  <summary>
    Total duration (reported in full seconds) of renderer main thread tasks
    split by scheduler use case. Note that partial seconds are rounded up/down
    so that they average to the correct value when many reports are added. For
    more details, check base::ScaledLinearHistogram.

    Use case is a scheduler's educated guess of the current state of the world.
    See renderer/use_case.h and

    RendererSchedulerImpl::UpdatePolicy for more details.
  </summary>
</histogram>

<histogram name="RendererScheduler.TaskQueueManager.DelayedTaskLateness"
    units="ms">
  <obsolete>
    Removed from code 2017-08.
  </obsolete>
  <owner>alexclarke@chromium.org</owner>
  <summary>
    The delta between when a delayed task was scheduled to run and when the
    RendererScheduler actually ran it. Note: to reduce overhead only 10% of
    tasks are sampled.
  </summary>
</histogram>

<histogram
    name="RendererScheduler.TaskQueueManager.ImmediateTaskQueueingDuration"
    units="ms">
  <obsolete>
    Removed from code 2017-08.
  </obsolete>
  <owner>alexclarke@chromium.org</owner>
  <summary>
    The queueing duration for non-delayed tasks posted to the RendererScheduler.
    This metric is only recorded if TrackingInfo::time_posted is set (i.e. not
    on android). Note: to reduce overhead only 10% of tasks are sampled.
  </summary>
</histogram>

<histogram name="RendererScheduler.TaskTime" units="microseconds">
  <obsolete>
    Replaced with RendererScheduler.TaskTime2 as of May 2017.
  </obsolete>
  <owner>sunyunjia@chromium.org</owner>
  <owner>tdresser@chromium.org</owner>
  <summary>
    The duration of every task queued in the _renderer_ scheduler to see the
    distribution of the task duration.
  </summary>
</histogram>

<histogram name="RendererScheduler.TaskTime2" units="microseconds">
  <owner>sunyunjia@chromium.org</owner>
  <owner>tdresser@chromium.org</owner>
  <summary>
    The duration of every task queued in the _renderer_ scheduler to see the
    distribution of the task duration.

    Note that this metric discards tasks longer than 30 seconds because they are
    considered to be a result of measurement glitch.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="RendererScheduler.UpdateForSameDocumentNavigationCount"
    enum="SinglePageAppNavigationType">
  <owner>maxlg@chromium.org</owner>
  <summary>
    The count of same-document-navigations split by whether it is the
    same-document backward/forward navigation, history API navigation, or other
    fragment navigation.
  </summary>
</histogram>

<histogram name="RendererScheduler.UserModel.GestureDuration" units="ms">
  <obsolete>
    Removed from code 2017-08.
  </obsolete>
  <owner>alexclarke@chromium.org</owner>
  <summary>Duration of gestures (scrolls and pinches).</summary>
</histogram>

<histogram name="RendererScheduler.UserModel.GesturePredictedCorrectly"
    units="GesturePredictionResult">
  <obsolete>
    Removed from code 2017-08.
  </obsolete>
  <owner>alexclarke@chromium.org</owner>
  <summary>Whether a user gesture was predicted correctly.</summary>
</histogram>

<histogram name="RendererScheduler.UserModel.GestureStartTimeSinceModelReset"
    units="ms">
  <obsolete>
    Removed from code 2017-08.
  </obsolete>
  <owner>alexclarke@chromium.org</owner>
  <summary>
    Time between when the UserModel was last reset (which happens on navigation)
    and a gesture starting.
  </summary>
</histogram>

<histogram name="RendererScheduler.UserModel.TimeBetweenGestures" units="ms">
  <obsolete>
    Removed from code 2017-08.
  </obsolete>
  <owner>alexclarke@chromium.org</owner>
  <summary>Time between subsequent gestures (scrolls and pinches).</summary>
</histogram>

<histogram name="RendererScheduler.WebFramesPerScheduler" units="web frames">
  <owner>altimin@chromium.org</owner>
  <summary>
    Number of web frame schedulers per renderer scheduler. Recorded once per
    navigation.
  </summary>
</histogram>

<histogram name="RendererScheduler.WebViewsPerScheduler" units="web views">
  <owner>altimin@chromium.org</owner>
  <summary>
    Number of web view schedulers per renderer scheduler. Recorded once per
    navigation.
  </summary>
</histogram>

<histogram name="RendererSyncIPC.ElapsedTime" units="ms">
  <owner>ppi@chromium.org</owner>
  <summary>
    Roundtrip times for synchronous IPC calls from the renderer to browser.
  </summary>
</histogram>

<histogram name="RenderFrameHostImpl.DroppedInterfaceRequestName"
    enum="RenderFrameHostImpl.InterfaceNames">
  <owner>engedy@chromium.org</owner>
  <summary>
    For each load and dropped Mojo interface request in a frame, records a
    sample with a value corresponding to the hash of the interface name,
    calculated as the lower 31 bits of the interface name's metric name hash.

    Interface requests to RenderFrame::GetRemoteInterfaces are dropped when they
    arrive to the RenderFrameHostImpl after the RenderFrameHostImpl had already
    committed the next cross-document navigation.

    This means that |document_scoped_interface_provider_binding_| was already
    unbound at the time from the interface connection that had been used to
    service RenderFrame::GetRemoteInterface for the previous load, so those
    interface requests are dropped.
  </summary>
</histogram>

<histogram name="RenderFrameHostImpl.DroppedInterfaceRequests" units="count">
  <owner>engedy@chromium.org</owner>
  <summary>
    For each load in a frame, records the number of interface requests to
    RenderFrame::GetRemoteInterfaces that arrived to the RenderFrameHostImpl
    after the RFHI had already committed the next cross-document navigation.

    This means that |document_scoped_interface_provider_binding_| was already
    unbound at the time from the interface connection that had been used to
    service RenderFrame::GetRemoteInterface for the previous load, so those
    interface requests are dropped. This histogram measures how often, if at
    all, that happens in practice.
  </summary>
</histogram>

<histogram name="RenderFrameHostImpl.ReceivedPostMessageFromNonDescendant"
    enum="BooleanReceived" expires_after="2018-10-30">
  <obsolete>
    Removed Oct 2018.
  </obsolete>
  <owner>alexmos@chromium.org</owner>
  <owner>boliu@chromium.org</owner>
  <summary>
    Record whether a local root frame ever received post messages from another
    cross origin frame that's not a descendent. This is useful to evaluate if a
    frame is safe to be reloaded automatically. Recorded when a frame crashed
    while invisible, and then becomes visible to the user; this is the point a
    crashed frame would be reloaded. Note this is not logged for the main frame,
    which only has descendant frames.
  </summary>
</histogram>

<histogram name="RenderFrameObservers.DidChangeScrollOffset" units="ms">
  <obsolete>
    Deprecated 2/2018
  </obsolete>
  <owner>joelhockey@chromium.org</owner>
  <summary>
    Cumulative time spent by all RenderFrameObservers in
    RenderFrameImpl.DidChangeScrollOffset.
  </summary>
</histogram>

<histogram name="RenderFrameObservers.DidClearWindowObject" units="ms">
  <obsolete>
    Deprecated 2/2018
  </obsolete>
  <owner>joelhockey@chromium.org</owner>
  <summary>
    Cumulative time spent by all RenderFrameObservers in
    RenderFrameImpl.DidClearWindowObject.
  </summary>
</histogram>

<histogram name="RenderFrameObservers.DidCommitProvisionalLoad" units="ms">
  <obsolete>
    Deprecated 2/2018
  </obsolete>
  <owner>joelhockey@chromium.org</owner>
  <summary>
    Cumulative time spent by all RenderFrameObservers in
    RenderFrameImpl.DidCommitProvisionalLoad.
  </summary>
</histogram>

<histogram name="RenderFrameObservers.DidCreateScriptContext" units="ms">
  <obsolete>
    Deprecated 2/2018
  </obsolete>
  <owner>joelhockey@chromium.org</owner>
  <summary>
    Cumulative time spent by all RenderFrameObservers in
    RenderFrameImpl.DidCreateScriptContext.
  </summary>
</histogram>

<histogram name="RenderFrameObservers.DidFailProvisionalLoad" units="ms">
  <obsolete>
    Deprecated 2/2018
  </obsolete>
  <owner>joelhockey@chromium.org</owner>
  <summary>
    Cumulative time spent by all RenderFrameObservers in
    RenderFrameImpl.DidFailProvisionalLoad.
  </summary>
</histogram>

<histogram name="RenderFrameObservers.DidFinishDocumentLoad" units="ms">
  <obsolete>
    Deprecated 2/2018
  </obsolete>
  <owner>joelhockey@chromium.org</owner>
  <summary>
    Cumulative time spent by all RenderFrameObservers in
    RenderFrameImpl.DidFinishDocumentLoad.
  </summary>
</histogram>

<histogram name="RenderFrameObservers.DidFinishLoad" units="ms">
  <obsolete>
    Deprecated 2/2018
  </obsolete>
  <owner>joelhockey@chromium.org</owner>
  <summary>
    Cumulative time spent by all RenderFrameObservers in
    RenderFrameImpl.DidFinishLoad.
  </summary>
</histogram>

<histogram name="RenderFrameObservers.DidMeaningfulLayout" units="ms">
  <obsolete>
    Deprecated 2/2018
  </obsolete>
  <owner>joelhockey@chromium.org</owner>
  <summary>
    Cumulative time spent by all RenderFrameObservers in
    RenderFrameImpl.DidMeaningfulLayout.
  </summary>
</histogram>

<histogram name="RenderFrameObservers.DidStartProvisionalLoad" units="ms">
  <obsolete>
    Deprecated 2/2018
  </obsolete>
  <owner>joelhockey@chromium.org</owner>
  <summary>
    Cumulative time spent by all RenderFrameObservers in
    RenderFrameImpl.DidStartProvisionalLoad.
  </summary>
</histogram>

<histogram name="RenderFrameObservers.FocusedNodeChanged" units="ms">
  <obsolete>
    Deprecated 2/2018
  </obsolete>
  <owner>joelhockey@chromium.org</owner>
  <summary>
    Cumulative time spent by all RenderFrameObservers in
    RenderFrameImpl.FocusedNodeChanged.
  </summary>
</histogram>

<histogram name="RenderFrameObservers.OnMessageReceived" units="ms">
  <obsolete>
    Deprecated 2/2018
  </obsolete>
  <owner>joelhockey@chromium.org</owner>
  <summary>
    Cumulative time spent by all RenderFrameObservers in
    RenderFrameImpl.OnMessageReceived.
  </summary>
</histogram>

<histogram name="RenderFrameObservers.ScriptedPrint" units="ms">
  <obsolete>
    Deprecated 2/2018
  </obsolete>
  <owner>joelhockey@chromium.org</owner>
  <summary>
    Cumulative time spent by all RenderFrameObservers in
    RenderFrameImpl.ScriptedPrint.
  </summary>
</histogram>

<histogram name="RenderFrameObservers.WillCommitProvisionalLoad" units="ms">
  <obsolete>
    Deprecated 2/2018
  </obsolete>
  <owner>joelhockey@chromium.org</owner>
  <summary>
    Cumulative time spent by all RenderFrameObservers in
    RenderFrameImpl.WillCommitProvisionalLoad.
  </summary>
</histogram>

<histogram name="RenderFrameObservers.WillSendSubmitEvent" units="ms">
  <obsolete>
    Deprecated 2/2018
  </obsolete>
  <owner>joelhockey@chromium.org</owner>
  <summary>
    Cumulative time spent by all RenderFrameObservers in
    RenderFrameImpl.WillSendSubmitEvent.
  </summary>
</histogram>

<histogram name="RenderFrameObservers.WillSubmitForm" units="ms">
  <obsolete>
    Deprecated 2/2018
  </obsolete>
  <owner>joelhockey@chromium.org</owner>
  <summary>
    Cumulative time spent by all RenderFrameObservers in
    RenderFrameImpl.WillSubmitForm.
  </summary>
</histogram>

<histogram name="RenderTextHarfBuzz.GetFallbackFontsTime" units="ms">
  <owner>ccameron@chromium.org</owner>
  <owner>etienneb@chromium.org</owner>
  <summary>
    Time retrieve the fallback fonts on the system used for
    RenderTextHarfBuzz::ShapeRuns. This metric is known to be quite slow on bad
    cases.
  </summary>
</histogram>

<histogram name="RenderTextHarfBuzz.ShapeRunsWithFallbackFontsTime" units="ms">
  <owner>ccameron@chromium.org</owner>
  <owner>etienneb@chromium.org</owner>
  <summary>
    Time to perform RenderTextHarfBuzz::ShapeRuns with retrieved the fallback
    fonts. This metric is known to be quite slow on bad cases.
  </summary>
</histogram>

<histogram name="RenderViewContextMenu.OpenLinkAsUser" enum="OpenLinkAsUser">
  <owner>jochen@chromium.org</owner>
  <summary>
    State of the profile that is activated via the &quot;Open Link as User&quot;
    menu. Logged when one of the &quot;Open Link as User&quot; context menu
    options is selected.
  </summary>
</histogram>

<histogram name="RenderViewContextMenu.OpenLinkAsUserProfilesState"
    enum="OpenLinkAsUserProfilesState">
  <owner>jochen@chromium.org</owner>
  <summary>
    Whether or not other profiles are active when the &quot;Open Link as
    User&quot; context menu is shown. Logged when the context menu is created.
  </summary>
</histogram>

<histogram name="RenderViewContextMenu.OpenLinkAsUserShown" units="profiles">
  <owner>jochen@chromium.org</owner>
  <summary>
    Count of the profiles shown for the &quot;Open Link as User&quot; context
    menu. Logged when the context menu is created.
  </summary>
</histogram>

<histogram name="RenderViewContextMenu.Shown" enum="RenderViewContextMenuItem">
  <owner>avi@chromium.org</owner>
  <summary>Count of renderer view context menu items shown.</summary>
</histogram>

<histogram name="RenderViewContextMenu.Used" enum="RenderViewContextMenuItem">
  <owner>avi@chromium.org</owner>
  <summary>
    Count of renderer view context menu items (Only commands now) used.
  </summary>
</histogram>

<histogram name="Reporting.HeaderEndpointGroupOutcome"
    enum="ReportingHeaderEndpointGroupOutcome">
  <obsolete>
    Moved to Net.Reporting.HeaderEndpointGroupOutcome.
  </obsolete>
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The outcome of Reporting trying to process a single endpoint group in a
    Report-To header once the header itself has been parsed.
  </summary>
</histogram>

<histogram name="Reporting.HeaderEndpointOutcome"
    enum="ReportingHeaderEndpointOutcome">
  <obsolete>
    Moved to Net.Reporting.HeaderEndpointOutcome.
  </obsolete>
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The outcome of Reporting trying to process a single endpoint in a Report-To
    header once the header itself has been parsed.
  </summary>
</histogram>

<histogram name="Reporting.HeaderOutcome" enum="ReportingHeaderOutcome">
  <obsolete>
    Moved to Net.Reporting.HeaderOutcome.
  </obsolete>
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The outcome of Reporting trying to process a Report-To header. Once it is
    parsed, Reporting.HeaderEndpointOutcome records the outcome of the endpoints
    within it.
  </summary>
</histogram>

<histogram name="Reporting.ReportDeliveredAttempts" units="attempts">
  <obsolete>
    Moved to Net.Reporting.ReportDeliveredAttempts.
  </obsolete>
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    When Reporting successfully delivers a report, the number of unsuccessful
    delivery attempts that preceded the successful one.
  </summary>
</histogram>

<histogram name="Reporting.ReportDeliveredLatency" units="ms">
  <obsolete>
    Moved to Net.Reporting.ReportDeliveredLatency.
  </obsolete>
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The delivery latency of reports successfully delivered by Reporting. Starts
    when the report is queued and finishes when the delivery attempt returns
    successfully.
  </summary>
</histogram>

<histogram name="Reporting.ReportOutcome" enum="ReportingReportOutcome">
  <obsolete>
    Moved to Net.Reporting.ReportOutcome.
  </obsolete>
  <owner>juliatuttle@chromium.org</owner>
  <summary>
    The outcome of Reporting trying to deliver a report, recorded when the
    report is finally erased from memory.
  </summary>
</histogram>

<histogram name="RequestAutocomplete.DismissalState"
    enum="AutofillDialogDismissalState">
  <obsolete>
    Deprecated as of 5/5/2016.
  </obsolete>
  <owner>estade@chromium.org</owner>
  <summary>
    The state of the requestAutocomplete() dialog when it was dismissed.
  </summary>
</histogram>

<histogram name="RequestAutocomplete.InitialUserState"
    enum="AutofillDialogInitialUserState">
  <obsolete>
    Deprecated as of 5/5/2016.
  </obsolete>
  <owner>estade@chromium.org</owner>
  <summary>
    The initial state of a user that's interacting with a freshly shown
    requestAutocomplete() dialog.
  </summary>
</histogram>

<histogram name="RequestAutocomplete.PopupInDialog"
    enum="AutofillDialogPopupEvent">
  <obsolete>
    Deprecated as of 5/5/2016.
  </obsolete>
  <owner>estade@chromium.org</owner>
  <summary>
    User interactions with the Autofill popup shown while filling an
    requestAutocomplete() dialog.
  </summary>
</histogram>

<histogram name="RequestAutocomplete.Security" enum="AutofillDialogSecurity">
  <obsolete>
    Deprecated as of 5/5/2016.
  </obsolete>
  <owner>estade@chromium.org</owner>
  <summary>
    Measures the frequency of security warnings and errors in the
    RequestAutocomplete dialog.
  </summary>
</histogram>

<histogram name="RequestAutocomplete.UiDuration" units="ms">
  <obsolete>
    Deprecated as of 5/5/2016.
  </obsolete>
  <owner>estade@chromium.org</owner>
  <summary>
    Measures the duration for which an requestAutocomplete() dialog was shown.
  </summary>
</histogram>

<histogram name="RequestAutocomplete.UiDuration.Cancel" units="ms">
  <obsolete>
    Deprecated as of 5/5/2016.
  </obsolete>
  <owner>estade@chromium.org</owner>
  <summary>
    Measures the duration for which an requestAutocomplete() dialog was shown,
    in cases where the user ended up canceling out of the dialog.
  </summary>
</histogram>

<histogram name="RequestAutocomplete.UiDuration.Submit" units="ms">
  <obsolete>
    Deprecated as of 5/5/2016.
  </obsolete>
  <owner>estade@chromium.org</owner>
  <summary>
    Measures the duration for which an requestAutocomplete() dialog was shown,
    in cases where the user ended up accepting the dialog.
  </summary>
</histogram>

<histogram name="RequestAutocomplete.UiEvents" enum="AutofillDialogUiEvents">
  <obsolete>
    Deprecated as of 5/5/2016.
  </obsolete>
  <owner>estade@chromium.org</owner>
  <summary>
    Measures how users are interacting with the requestAutocomplete() dialog UI.
  </summary>
</histogram>

<histogram name="RequestAutocomplete.UiLatencyToShow" units="ms">
  <obsolete>
    Deprecated as of 5/5/2016.
  </obsolete>
  <owner>estade@chromium.org</owner>
  <summary>
    Measures the duration of time it takes for the requestAutocomplete() UI to
    be actionable by the user after it is shown.
  </summary>
</histogram>

<histogram name="RequestAutocomplete.WalletErrors" enum="WalletErrors">
  <obsolete>
    Deprecated as of 5/5/2016.
  </obsolete>
  <owner>estade@chromium.org</owner>
  <summary>
    Measures the frequency of errors in communicating with the Google Online
    Wallet server.
  </summary>
</histogram>

<histogram name="RequestAutocomplete.WalletRequiredActions"
    enum="WalletRequiredActions">
  <obsolete>
    Deprecated as of 5/5/2016.
  </obsolete>
  <owner>estade@chromium.org</owner>
  <summary>
    Measures the frequency of required user actions returned by the Google
    Online Wallet server.
  </summary>
</histogram>

<histogram name="Reset.ChromeOS.PowerwashDialogShown"
    enum="PowerwashDialogViewType">
  <owner>merkulova@chromium.org</owner>
  <summary>
    Records the number of times the factory reset dialog was shown. Grouped by
    the viewtype.
  </summary>
</histogram>

<histogram name="ResourceCoordinator.IPCPerMinute.Frame" units="count/m">
  <obsolete>
    Removed as of 18/1/2019.
  </obsolete>
  <owner>lpy@chromium.org</owner>
  <summary>
    The number of IPCs from frame to GRC. Recorded every 1 minute.
  </summary>
</histogram>

<histogram name="ResourceCoordinator.IPCPerMinute.Page" units="count/m">
  <obsolete>
    Removed as of 18/1/2019.
  </obsolete>
  <owner>lpy@chromium.org</owner>
  <summary>
    The number of IPCs from page to GRC. Recorded every 1 minute.
  </summary>
</histogram>

<histogram name="ResourceCoordinator.IPCPerMinute.Process" units="count/m">
  <obsolete>
    Removed as of 18/1/2019.
  </obsolete>
  <owner>lpy@chromium.org</owner>
  <summary>
    The number of IPCs from process to GRC. Recorded every 1 minute.
  </summary>
</histogram>

<histogram name="ResourceCoordinator.LocalDB.DatabaseInit"
    enum="LocalSiteCharacteristicsDBInitStatus">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The result of opening the Local Site Characteristics database.
  </summary>
</histogram>

<histogram name="ResourceCoordinator.LocalDB.DatabaseInitAfterDelete"
    enum="LocalSiteCharacteristicsDBInitStatus">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The result of opening the Local Site Characteristics database after deleting
    it after a failed repair attempt.
  </summary>
</histogram>

<histogram name="ResourceCoordinator.LocalDB.DatabaseInitAfterRepair"
    enum="LocalSiteCharacteristicsDBInitStatus">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The result of opening the Local Site Characteristics database after a repair
    attempt.
  </summary>
</histogram>

<histogram name="ResourceCoordinator.LocalDB.DatabaseRepair"
    enum="BooleanSuccess">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The result of trying to repair the Local Site Characteristics database after
    a failed open.
  </summary>
</histogram>

<histogram name="ResourceCoordinator.LocalDB.ObservationTimeBeforeFirstUse"
    units="ms">
<!-- Name completed by histogram_suffixes name="LocalSiteCharacteristicsFeatures" -->

  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The cumulative observation time before a feature tracked in the Local Site
    Characteristics database gets used.
  </summary>
</histogram>

<histogram name="ResourceCoordinator.LocalDB.OnDiskSize" units="KB">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The size of the Local Site Characteristics database on disk. Recorded at
    startup when the database gets opened.
  </summary>
</histogram>

<histogram name="ResourceCoordinator.LocalDB.ReadHasCompletedBeforeQuery"
    enum="Boolean">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    Boolean indicating if the read operation from the Local Site Characteristics
    database has completed when we query for the characteristics of a site.
  </summary>
</histogram>

<histogram name="ResourceCoordinator.Measurement.Duration" units="ms">
  <owner>siggi@chromium.org</owner>
  <summary>The amount of wall-clock time a measurement cycle occupied.</summary>
</histogram>

<histogram name="ResourceCoordinator.Measurement.Memory.ExtraProcesses"
    units="processes">
  <owner>siggi@chromium.org</owner>
  <summary>
    The number of unexpected processes encountered during memory measurement.
    This is expected to be non-zero as new processes can be created after a
    measurement cycle is initiated, plus non-renderer processes are counted here
    at the moment.
  </summary>
</histogram>

<histogram name="ResourceCoordinator.Measurement.Memory.LateNotification"
    enum="Boolean">
  <owner>siggi@chromium.org</owner>
  <summary>
    A boolean that measures how often a performance measurement notification
    arrives at a WebContents that has been re-navigated.
  </summary>
</histogram>

<histogram name="ResourceCoordinator.Measurement.Memory.Outcome"
    enum="MemoryMeasurementOutcome">
  <owner>siggi@chromium.org</owner>
  <summary>
    An enumeration indicating the outcome of each memory measurement attempt.
  </summary>
</histogram>

<histogram name="ResourceCoordinator.Measurement.Memory.UnmeasuredProcesses"
    units="processes">
  <owner>siggi@chromium.org</owner>
  <summary>
    The number of processes that didn't get a memory measurement. This can
    happen if processes die as or after measurement is initiated.
  </summary>
</histogram>

<histogram name="ResourceCoordinator.Measurement.TotalProcesses"
    units="processes">
  <owner>siggi@chromium.org</owner>
  <summary>
    The number of processes that were measured for CPU at least.
  </summary>
</histogram>

<histogram name="ResourceLoadingHints.CountBlockedSubresourcePatterns"
    units="pattern count">
  <owner>tbansal@chromium.org</owner>
  <summary>
    The count of resource loading blocking patterns received by the renderer.
    Recorded every time resource loading hints mojom message is received.
    Recorded at most once per triggered navigation.
  </summary>
</histogram>

<histogram name="ResourceLoadingHints.PageHints.ProcessedCount"
    units="pattern count">
  <owner>tbansal@chromium.org</owner>
  <summary>
    The count of page hints received by the browser from the component updater.
    Recorded every time a page hint is received by the browser from the
    optimization guide service.
  </summary>
</histogram>

<histogram name="ResourceLoadingHints.PageHints.TotalReceived"
    units="total page hints count">
  <owner>tbansal@chromium.org</owner>
  <summary>
    The total count of page hints received by the browser from the component
    updater. Only the page hints that have at least one resource loading hint
    are counted. One sample is recorded every time optimization guide service
    processes the optimization hints provided by the component updater. The
    count of hints loaded to memory may be lower than this.
  </summary>
</histogram>

<histogram name="ResourceLoadingHints.ResourceHints.TotalReceived"
    units="total resource loading hints count">
  <owner>tbansal@chromium.org</owner>
  <summary>
    The total count of resource loading hints across all page hints received by
    the browser from the component updater. One sample is recorded every time
    optimization guide service processes the optimization hints provided by the
    component updater. The count of hints loaded to memory may be lower than
    this.
  </summary>
</histogram>

<histogram name="ResourceLoadingHints.ResourceLoadingBlocked"
    units="loading blocked">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Records if the loading of a resource was blocked because the resource URL
    matched the resource loading hints. Recorded every time a resource load is
    requested.
  </summary>
</histogram>

<histogram
    name="ResourceLoadingHints.ResourceLoadingBlocked.ResourceLoadPriority.Allowed"
    enum="WebURLRequestPriority">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Records the resource load priority of a resource when its loading is not
    blocked due to the resource loading hints. Recorded every time a resource
    load is requested, and the load is not blocked due to the resource loading
    hints.
  </summary>
</histogram>

<histogram
    name="ResourceLoadingHints.ResourceLoadingBlocked.ResourceLoadPriority.Blocked"
    enum="WebURLRequestPriority">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Records the resource load priority of a resource when its loading is blocked
    due to the resource loading hints. Recorded every time a resource load is
    requested and the resource load is blocked because the resource URL matched
    the resource loading hints.
  </summary>
</histogram>

<histogram name="ResourceLoadingHints.ResourcePatternsAvailableAtCommit"
    enum="BooleanAvailable">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Records if the resource patterns were available at the time of page commit
    if the committed previews type was RESOURCE_LOADING_HINTS.
  </summary>
</histogram>

<histogram
    name="ResourceLoadingHints.ResourcePatternsAvailableAtCommitForRedirect"
    enum="BooleanAvailable">
  <owner>tbansal@chromium.org</owner>
  <owner>dougarnett@chromium.org</owner>
  <summary>
    Records if the resource patterns were available at the time of page commit
    if the committed previews type was RESOURCE_LOADING_HINTS and the navigation
    was redirected. This is a subset of the ResourcePatternsAvailableAtCommit
    histogram.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.CachePattern"
    enum="HttpCachePattern">
  <obsolete>
    Deprecated at M66. No longer recorded.
  </obsolete>
  <owner>alexilin@chromium.org</owner>
  <summary>
    Like HttpCache.Pattern but only for requests made during speculative
    prefetch. Logged per successful request.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.DatabaseReadiness" units="%">
  <obsolete>
    Deprecated at M66. No longer recorded.
  </obsolete>
  <owner>alexilin@chromium.org</owner>
  <summary>
    This metric measures the host coverage of the predictor database: On each
    navigation, it records what percentage of the top X history entries are
    found in the predictor DB. Caveats: (1) This metric is only recorded once
    the user has accumulated enough browsing history, implemented as a minimum
    threshold of total page visits by the user. (2) This metric is sampled, so
    it's actually only recorded for 1 out of every K navigations.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.DbStringTooLong">
  <obsolete>
    Deprecated October 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    A boolean that used to indicate a corner case when certain resources are not
    written to the Predictor database becuase their URLs are too long. We
    monitor this number to ensure that we do not discard too many resources.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.HavePredictionsForUrl">
  <obsolete>
    Deprecated 08/2012. Replaced with ResourcePrefetchPredictorNavigationEvent.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    A boolean that indicates if the speculative resource prefetch predictor has
    predictions for a Navigation. This is updated on each navigations and helps
    us determine the coverage of the predictor.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.HavePrefetchResults">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    A boolean that used to indicate a corner case when we may not have prefetch
    results even though prefetching is enabled and predictions are present,
    because another navigation in the same tab canceled the prefetching of the
    previous load.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.HistoryVisitCountForUrl">
  <obsolete>
    Deprecated at M66. No longer recorded.
  </obsolete>
  <owner>alexilin@chromium.org</owner>
  <summary>
    The visit count of a URL in the history database, measured when the onload
    fires for the URL. Helpful in figuring out what visit count should be used
    to start learning about a URL.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.Host.PredictedPrefetchCount">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    Assuming a fixed number (25 or 50) of URLs could be prefetched max, how many
    would be available for prefetch (after we apply our heuristics for picking
    subresources to prefetch for a navigation).

    This stat is recorded when the predictor uses the host of the main frame url
    as the key for prediction.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.Host.PredictedPrefetchFromCache">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    When we have predictions for a navigation, we measure the accuracy of the
    predictions against the actual resources downloaded. This histogram gives
    the distribution of the predictions that were fetched by the page and served
    from the cache restricted to some max predictions (25 or 50).

    This stat is recorded when the predictor uses the host of the main frame url
    as the key for prediction.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.Host.PredictedPrefetchFromNetwork">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    When we have predictions for a navigation, we measure the accuracy of the
    predictions against the actual resources downloaded. This histogram gives
    the distribution of the predictions that were fetched by the page and served
    from the network restricted to some max predictions (25 or 50).

    This stat is recorded when the predictor uses the host of the main frame url
    as the key for prediction.
  </summary>
</histogram>

<histogram
    name="ResourcePrefetchPredictor.Host.PredictedPrefetchFromNetworkPercentOfTotalFromNetwork"
    units="%">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    Similar to ResourcePrefetchPredictor.Host.PredictedPrefetchFromNetwork but
    as a percent of the total number of resources the page actually fetched from
    the network. This depcits the major gains that we can get.

    This stat is recorded when the predictor uses the host of the main frame url
    as the key for prediction.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.Host.PredictedPrefetchMisses">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    When we have predictions for a navigation, we measure the accuracy of the
    predictions against the actual resources downloaded. This histogram gives
    the distribution of the predictions that were fetched by the page not used
    by the page, restricted to some max predictions (25 or 50).

    This stat is recorded when the predictor uses the host of the main frame url
    as the key for prediction.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.Host.PrefetchCancelled" units="%">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    For prefetching based on host of main frame URL, the percentage of
    prefetches cancelled as a percentage of the total number of resources that
    the predictor tried to prefetch.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.Host.PrefetchFailed" units="%">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    For prefetching based on host of main frame URL, the percentage of
    prefetches failed as a percentage of the total number of resources that the
    predictor tried to prefetch.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.Host.PrefetchFromCacheNotUsed"
    units="%">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    For prefetching based on host of main frame URL, the percentage of
    successful prefetches that came from cache while prefetching but were not
    requested by the page, as a percentage of the total number of resources that
    the predictor tried to prefetch.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.Host.PrefetchFromCacheUsedFromCache"
    units="%">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    For prefetching based on host of main frame URL, the percentage of
    successful prefetches that came from cache while prefetching and also came
    from the cache when the page requested it, as a percentage of the total
    number of resources that the predictor tried to prefetch.
  </summary>
</histogram>

<histogram
    name="ResourcePrefetchPredictor.Host.PrefetchFromCacheUsedFromNetwork"
    units="%">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    For prefetching based on host of main frame URL, the percentage of
    successful prefetches that came from cache while prefetching but came from
    the network when the page requested it, as a percentage of the total number
    of resources that the predictor tried to prefetch.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.Host.PrefetchFromNetworkNotUsed"
    units="%">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    For prefetching based on host of main frame URL, the percentage of
    successful prefetches that came from network while prefetching but were not
    requested by the page, as a percentage of the total number of resources that
    the predictor tried to prefetch.
  </summary>
</histogram>

<histogram
    name="ResourcePrefetchPredictor.Host.PrefetchFromNetworkUsedFromCache"
    units="%">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    For prefetching based on host of main frame URL, the percentage of
    successful prefetches that came from network while prefetching but came from
    the cache when the page requested it, as a percentage of the total number of
    resources that the predictor tried to prefetch.
  </summary>
</histogram>

<histogram
    name="ResourcePrefetchPredictor.Host.PrefetchFromNetworkUsedFromNetwork"
    units="%">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    For prefetching based on host of main frame URL, the percentage of
    successful prefetches that came from cache while prefetching and also came
    from the network when the page requested it, as a percentage of the total
    number of resources that the predictor tried to prefetch.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.Host.PrefetchNotStarted" units="%">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    For prefetching based on host of main frame URL, the percentage of resources
    that were prefetchable but were not prefetched as a percentage of
    prefetchable resources.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.HostTableHostCount">
  <obsolete>
    Deprecated January 2017. This is effectively the same as
    ResourcePrefetchPredictor.HostTableRowCount2 after refactoring of the
    predictor database.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    The count of number of unique hosts in the HostTable, i.e. the number of
    hosts that the database has prediction data for. This data is useful for
    determining the recall/precision as a function of the number of hosts that
    need to be tracked by the database. Measured at startup.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.HostTableRowCount">
  <obsolete>
    Deprecated January 2017. Replaced by
    ResourcePrefetchPredictor.HostTableRowCount2.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    The count of number of rows in the HostTable. This is effecively the number
    of (host, resource URL) pairs in the database. This is measured at startup
    and used to get an estimate of the data size.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.HostTableRowCount2" units="hosts">
  <obsolete>
    Deprecated at M66. No longer recorded.
  </obsolete>
  <owner>alexilin@chromium.org</owner>
  <summary>
    The number of rows in the HostTable. This is effectively the number of hosts
    in the database. This is measured at startup and used to get an estimate of
    the data size.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.LearningCount" units="urls">
  <obsolete>
    Deprecated at M66. No longer recorded.
  </obsolete>
  <owner>alexilin@chromium.org</owner>
  <summary>
    When the prefetch predictor has resources in the local database for a given
    navigation, the count of predicted urls.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.LearningPrecision" units="%">
  <obsolete>
    Deprecated at M66. No longer recorded.
  </obsolete>
  <owner>lizeb@chromium.org</owner>
  <summary>
    When the prefetch predictor has resources in the local database for a given
    navigation, the precision of the predictions, in percentage. This is
    computed as 100 \times \frac{correct predictions}{predictions}.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.LearningRecall" units="%">
  <obsolete>
    Deprecated at M66. No longer recorded.
  </obsolete>
  <owner>lizeb@chromium.org</owner>
  <summary>
    When the prefetch predictor has resources in the local database for a given
    navigation, the recall of the predictions, in percentage. This is computed
    as 100 \times \frac{correct predictions}{all prefetchable subresources}.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.MainFrameRequestStats"
    enum="ResourcePrefetchPredictorMainFrameRequestStats">
  <owner>alexilin@chromium.org</owner>
  <summary>
    Records stats about main frame navigations. Records the total number of
    requests/responses/redirects for main frame urls along with the numbers for
    how often the predictor can process such events. This is useful to figure
    out what percentange of requests are handled by the predictor and also for
    sanity checking the other stats.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.NavigationEvent"
    enum="ResourcePrefetchPredictorNavigationEvent">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    Records stats about various interesting events such as - request start,
    response start, redirect, onload, etc during the load of a main frame.
    Essential for understanding the complete life of a navigation request start
    to the onload fire and the events that occur in between.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.NavigationStatus"
    enum="ResourcePrefetchPredictorNavigationStatus">
  <obsolete>
    Deprecated 08/2012. Replaced with ResourcePrefetchPredictorNavigationEvent.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    The status of various navigations from the view point of the 'onload' event.
    Since we measure the prediction accuracy and learn navigation subresources
    on the onload event, it is useful to know how many of the navigations are
    abandoned before 'onload' fires.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.NetworkType"
    enum="ResourcePrefetchPredictorNetworkType">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    Records the number of pages on each type of network after a page is loaded.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.PLT" units="ms">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    Page load time. It starts from when the main frame URL request is sent out
    to when the main frame document load is completed.

    This is recorded for both prefetched and non-prefetched pages.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.PredictedPrefetchCount">
  <obsolete>
    Deprecated 01/2013. Replaced with specific ones for Url and Host.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    Assuming a fixed number of URLs could be prefetched max, how many would be
    available for prefetch (after we apply our heuristics for picking
    subresources to prefetch for a navigation).
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.PredictedPrefetchFromCache">
  <obsolete>
    Deprecated 01/2013. Replaced with specific ones for Url and Host.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    When we have predictions for a navigation, we measure the accuracy of the
    predictions against the actual resources downloaded. This histogram gives
    the distribution of the predictions that were fetched by the page and served
    from the cache restricted to some max predictions.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.PredictedPrefetchFromNetwork">
  <obsolete>
    Deprecated 01/2013. Replaced with specific ones for Url and Host.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    When we have predictions for a navigation, we measure the accuracy of the
    predictions against the actual resources downloaded. This histogram gives
    the distribution of the predictions that were fetched by the page and served
    from the network restricted to some max predictions.
  </summary>
</histogram>

<histogram
    name="ResourcePrefetchPredictor.PredictedPrefetchFromNetworkPercentOfTotalFromNetwork">
  <obsolete>
    Deprecated 01/2013. Replaced with specific ones for Url and Host.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    Similar to ResourcePrefetchPredictor.Predicted.PrefetchFromNetwork but as a
    percent of the total number of resources the page actually fetched from the
    network. This depcits the major gains that we can get.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.PredictedPrefetchMisses">
  <obsolete>
    Deprecated 01/2013. Replaced with specific ones for Url and Host.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    When we have predictions for a navigation, we measure the accuracy of the
    predictions against the actual resources downloaded. This histogram gives
    the distribution of the predictions that were fetched by the page not used
    by the page, restricted to some max predictions.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.PrefetchedCount" units="count">
  <obsolete>
    Deprecated at M66. No longer recorded.
  </obsolete>
  <owner>alexilin@chromium.org</owner>
  <summary>
    The count of successfully prefetched subresources for a single page.
    Recorded after all subresource prefetches have reached a terminal
    success/failure state.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.PrefetchedSizeKB" units="KB">
  <obsolete>
    Deprecated at M66. No longer recorded.
  </obsolete>
  <owner>alexilin@chromium.org</owner>
  <summary>
    The total amount of data consumed by predictor for a single page. Only
    successfully finished requests taken into account. Recorded after all
    subresource prefetches have reached a terminal success/failure state.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.PrefetchHitsCount.Cached"
    units="count">
  <obsolete>
    Deprecated at M66. No longer recorded.
  </obsolete>
  <owner>lizeb@chromium.org</owner>
  <summary>
    Number of resources that were prefetched and requested by a page load, for
    cached requests. Logged after the prefetcher completes.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.PrefetchHitsCount.NotCached"
    units="count">
  <obsolete>
    Deprecated at M66. No longer recorded.
  </obsolete>
  <owner>lizeb@chromium.org</owner>
  <summary>
    Number of resources that were prefetched and requested by a page load, for
    non cached requests. Logged after the prefetcher completes.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.PrefetchHitsSizeKB" units="KB">
  <obsolete>
    Deprecated at M66. No longer recorded.
  </obsolete>
  <owner>lizeb@chromium.org</owner>
  <summary>
    Amount of useful data fetched from the network for a prefetch request. This
    is the total size of the resources accounted for in
    ResourcePrefetchPredictor.PrefetchHitsCount.NotCached. Logged after the
    prefetcher completes.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.PrefetchingDuration" units="ms">
  <obsolete>
    Deprecated at M72. No longer recorded.
  </obsolete>
  <owner>alexilin@chromium.org</owner>
  <summary>
    Amount of time available for prefetching. Specifically, this is a time
    interval between corresponding StartPrefetching() and StopPrefetching()
    calls. This is recorded for both prefetched and non-prefetched pages.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.PrefetchMissesCount.Cached"
    units="count">
  <obsolete>
    Deprecated at M66. No longer recorded.
  </obsolete>
  <owner>lizeb@chromium.org</owner>
  <summary>
    Number of resources that were prefetched but not requested by a page load,
    for cached requests. Logged after the prefetcher completes.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.PrefetchMissesCount.NotCached"
    units="count">
  <obsolete>
    Deprecated at M66. No longer recorded.
  </obsolete>
  <owner>lizeb@chromium.org</owner>
  <summary>
    Number of resources that were prefetched but not requested by a page load,
    for non cached requests, that is waste. Logged after the prefetcher
    completes.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.PrefetchMissesSizeKB" units="KB">
  <obsolete>
    Deprecated at M66. No longer recorded.
  </obsolete>
  <owner>lizeb@chromium.org</owner>
  <summary>
    Amount of wasted data fetched from the network for a prefetch request. This
    is the total size of the resources accounted for in
    ResourcePrefetchPredictor.PrefetchMissesCount.NotCached. Logged after the
    prefetcher completes.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.RedirectStatus"
    enum="ResourcePrefetchPredictorRedirectStatus">
  <obsolete>
    Deprecated at M66. No longer recorded.
  </obsolete>
  <owner>alexilin@chromium.org</owner>
  <summary>
    When the prefetch predictor has resources in the local database for a given
    navigation, records stats about whether redirect was predicted correctly or
    incorrectly.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.ReportingEvent"
    enum="ResourcePrefetchPredictorReportingEvent">
  <obsolete>
    Deprecated at M72. No longer recorded.
  </obsolete>
  <owner>alexilin@chromium.org</owner>
  <summary>
    Records stats about various interesting events such as - when partial or all
    of history is cleared. It will include events which do not necessarily
    happen during a navigation (which are reported in
    ResourcePrefetchPredictor.NavigationEvent).
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.RequestStats"
    enum="ResourcePrefetchPredictorRequestStats">
  <owner>alexilin@chromium.org</owner>
  <summary>
    Records stats about requests, redirects, and responses observed by the
    LoadingPredictorObserver. These stats are useful as a baseline for other
    stats.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.ResourceStatus"
    enum="ResourcePrefetchPredictorResourceStatus">
  <obsolete>
    Deprecated 08/2016 with the removal of the recording code.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    The distribution of the reasons for which subresources are ignored during
    prefetching. This helps us prioritze reasons we should further investigate
    to increase coverage. This is reported as a bit map and every status will be
    a bitwise or of the underlying reasons.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.Url.PredictedPrefetchCount">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    Assuming a fixed number of URLs could be prefetched max (25 or 50), how many
    would be available for prefetch (after we apply our heuristics for picking
    subresources to prefetch for a navigation).

    This stat is recorded when the predictor uses the main frame url as the key
    for prediction.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.Url.PredictedPrefetchFromCache">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    When we have predictions for a navigation, we measure the accuracy of the
    predictions against the actual resources downloaded. This histogram gives
    the distribution of the predictions that were fetched by the page and served
    from the cache restricted to some max predictions (25 or 50).

    This stat is recorded when the predictor uses the main frame url as the key
    for prediction.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.Url.PredictedPrefetchFromNetwork">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    When we have predictions for a navigation, we measure the accuracy of the
    predictions against the actual resources downloaded. This histogram gives
    the distribution of the predictions that were fetched by the page and served
    from the network restricted to some max predictions (25 or 50).

    This stat is recorded when the predictor uses the main frame url as the key
    for prediction.
  </summary>
</histogram>

<histogram
    name="ResourcePrefetchPredictor.Url.PredictedPrefetchFromNetworkPercentOfTotalFromNetwork"
    units="%">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    Similar to ResourcePrefetchPredictor.Url.PredictedPrefetchFromNetwork but as
    a percent of the total number of resources the page actually fetched from
    the network. This depcits the major gains that we can get.

    This stat is recorded when the predictor uses the main frame url as the key
    for prediction.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.Url.PredictedPrefetchMisses">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    When we have predictions for a navigation, we measure the accuracy of the
    predictions against the actual resources downloaded. This histogram gives
    the distribution of the predictions that were fetched by the page not used
    by the page, restricted to some max predictions (25 or 50).

    This stat is recorded when the predictor uses the main frame url as the key
    for prediction.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.Url.PrefetchCancelled" units="%">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    For prefetching based on the main frame URL, the percentage of prefetches
    cancelled as a percentage of the total number of resources that the
    predictor tried to prefetch.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.Url.PrefetchFailed" units="%">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    For prefetching based on the main frame URL, the percentage of prefetches
    failed as a percentage of the total number of resources that the predictor
    tried to prefetch.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.Url.PrefetchFromCacheNotUsed"
    units="%">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    For prefetching based on the main frame URL, the percentage of successful
    prefetches that came from cache while prefetching but were not requested by
    the page, as a percentage of the total number of resources that the
    predictor tried to prefetch.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.Url.PrefetchFromCacheUsedFromCache"
    units="%">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    For prefetching based on the main frame URL, the percentage of successful
    prefetches that came from cache while prefetching and also came from the
    cache when the page requested it, as a percentage of the total number of
    resources that the predictor tried to prefetch.
  </summary>
</histogram>

<histogram
    name="ResourcePrefetchPredictor.Url.PrefetchFromCacheUsedFromNetwork"
    units="%">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    For prefetching based on the main frame URL, the percentage of successful
    prefetches that came from cache while prefetching but came from the network
    when the page requested it, as a percentage of the total number of resources
    that the predictor tried to prefetch.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.Url.PrefetchFromNetworkNotUsed"
    units="%">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    For prefetching based on the main frame URL, the percentage of successful
    prefetches that came from network while prefetching but were not requested
    by the page, as a percentage of the total number of resources that the
    predictor tried to prefetch.
  </summary>
</histogram>

<histogram
    name="ResourcePrefetchPredictor.Url.PrefetchFromNetworkUsedFromCache"
    units="%">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    For prefetching based on the main frame URL, the percentage of successful
    prefetches that came from network while prefetching but came from the cache
    when the page requested it, as a percentage of the total number of resources
    that the predictor tried to prefetch.
  </summary>
</histogram>

<histogram
    name="ResourcePrefetchPredictor.Url.PrefetchFromNetworkUsedFromNetwork"
    units="%">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    For prefetching based on the main frame URL, the percentage of successful
    prefetches that came from cache while prefetching and also came from the
    network when the page requested it, as a percentage of the total number of
    resources that the predictor tried to prefetch.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.Url.PrefetchNotStarted" units="%">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    For prefetching based on host of main frame URL, the percentage of resources
    that were prefetchable but were not prefetched as a percentage of
    prefetchable resources.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.UrlTableMainFrameUrlCount">
  <obsolete>
    Deprecated September 2016. This is effectively the same as
    ResourcePrefetchPredictor.UrlTableRowCount2 after refactoring of the
    predictor database.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    The count of number of unique main frame urls in the UrlTable, i.e. the
    number of webpages that the database has prediction data for. This data is
    useful for determining the recall/precision as a function of the number of
    webpages that need to be tracked by the database. Measured at startup.
  </summary>
</histogram>

<histogram
    name="ResourcePrefetchPredictor.UrlTableMainFrameUrlsDeletedNotInHistory">
  <obsolete>
    Deprecated October 2012. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    The count of number of unique main frame urls that are deleted from the URL
    table at startup because they are no longer in history. Essential to figure
    out how much data we are loosing out.
  </summary>
</histogram>

<histogram
    name="ResourcePrefetchPredictor.UrlTableMainFrameUrlsDeletedNotInHistoryPercent"
    units="%">
  <obsolete>
    Deprecated October 2012. No longer recorded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    Same as ResourcePrefetchPredictor.UrlTableMainFrameUrlsDeletedNotInHistory
    but recording percentage of URLs in the table rather than absolute numbers.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.UrlTableRowCount">
  <obsolete>
    Deprecated January 2017. Replaced by
    ResourcePrefetchPredictor.UrlTableRowCount2.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    The count of number of rows in the UrlTable. This is effecively the number
    of (main frame URL, resource URL) pairs in the database. This is measured at
    startup and used to get an estimate of the data size.
  </summary>
</histogram>

<histogram name="ResourcePrefetchPredictor.UrlTableRowCount2" units="urls">
  <obsolete>
    Deprecated at M66. No longer recorded.
  </obsolete>
  <owner>alexilin@chromium.org</owner>
  <summary>
    The number of rows in the UrlTable. This is effectively the number of main
    frame URLs in the database. This is measured at startup and used to get an
    estimate of the data size.
  </summary>
</histogram>

<histogram name="ResourceReporter.BrowserProcess.CpuUsage"
    enum="ResourceReporterCpuUsage">
  <owner>afakhry@chromium.org</owner>
  <summary>
    The CPU usage range reported for the browser process when the Chrome OS
    device memory pressure (which is the percentage of total memory used by the
    system) is critical. This is emitted only when memory pressure changes from
    a low pressure to a higher pressure.
  </summary>
</histogram>

<histogram name="ResourceReporter.BrowserProcess.MemoryUsage"
    enum="ResourceReporterMemoryUsage">
  <owner>afakhry@chromium.org</owner>
  <summary>
    The system memory usage range reported for the browser process when the
    Chrome OS device memory pressure (which is the percentage of total memory
    used by the system) is critical. This is emitted only when memory pressure
    changes from a low pressure to a higher pressure.
  </summary>
</histogram>

<histogram name="ResourceReporter.GpuProcess.CpuUsage"
    enum="ResourceReporterCpuUsage">
  <owner>afakhry@chromium.org</owner>
  <summary>
    The CPU usage range reported for the GPU process when the Chrome OS device
    memory pressure (which is the percentage of total memory used by the system)
    is critical. This is emitted only when memory pressure changes from a low
    pressure to a higher pressure.
  </summary>
</histogram>

<histogram name="ResourceReporter.GpuProcess.MemoryUsage"
    enum="ResourceReporterMemoryUsage">
  <owner>afakhry@chromium.org</owner>
  <summary>
    The system's RAM memory usage range reported for the GPU process when the
    Chrome OS device memory pressure (which is the percentage of total memory
    used by the system) is critical. This is emitted only when memory pressure
    changes from a low pressure to a higher pressure.
  </summary>
</histogram>

<histogram name="ResourceScheduler.ClientLoadedTime.Active">
  <obsolete>
    Deprecated 1/2016
  </obsolete>
  <owner>aiolos@chromium.org</owner>
  <summary>
    The amount of time between when the ResourceScheduler is informed of a
    Client's creation or starts loading and when that Client finishes loading in
    a Client which has been user-observable the entire time.

    Note: Will not include time for the main resource if PlzNavigate is in use.
  </summary>
</histogram>

<histogram name="ResourceScheduler.ClientLoadedTime.Background">
  <obsolete>
    Deprecated 1/2016
  </obsolete>
  <owner>aiolos@chromium.org</owner>
  <summary>
    The amount of time between when the ResourceScheduler is informed of a
    Client's creation or starts loading and when that Client finishes loading in
    a Client which has been background the entire time.

    Note: Will not include time for the main resource if PlzNavigate is in use.
  </summary>
</histogram>

<histogram name="ResourceScheduler.ClientLoadedTime.Other">
  <obsolete>
    Deprecated 1/2016
  </obsolete>
  <owner>aiolos@chromium.org</owner>
  <summary>
    The amount of time between when the ResourceScheduler is informed of a
    Client's creation or starts loading and when that Client finishes loading in
    a Client which has switched between Active and Background.

    Note: Will not include time for the main resource if PlzNavigate is in use.
  </summary>
</histogram>

<histogram name="ResourceScheduler.ClientLoadedTime.Other.SwitchedToActive">
  <obsolete>
    Deprecated 1/2016
  </obsolete>
  <owner>aiolos@chromium.org</owner>
  <summary>
    The amount of time between the last time that a Client becomes
    user-observable and when that Client finishes loading in a Client that was
    user-observable when the load completed.

    Note: Will not include time for the main resource if PlzNavigate is in use.
  </summary>
</histogram>

<histogram
    name="ResourceScheduler.DelayableRequests.WaitTimeToAvoidContentionWithNonDelayableRequest"
    units="ms">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Records how long after the start of a delayable resource request, a
    non-delayable resource request arrived. This is the duration of time that
    the delayable request should have been queued for so as to avoid any network
    contetion with later-arriving non-delayable requests.
  </summary>
</histogram>

<histogram name="ResourceScheduler.NonDelayableLastEndToNonDelayableStart"
    units="ms" expires_after="M77">
  <owner>tbansal@chromium.org</owner>
  <owner>dougarnett@chromium.org</owner>
  <summary>
    The duration of time between the end of a non-delayable resource request to
    the start of the next non-delayable resource request. Recorded at the start
    of all non-delayable requests that are preceeded by at least one completed
    non-delayable request in the same resource scheduler client.
  </summary>
</histogram>

<histogram
    name="ResourceScheduler.NonDelayableLastStartOrEndToNonDelayableStart"
    units="ms" expires_after="M77">
  <owner>tbansal@chromium.org</owner>
  <owner>dougarnett@chromium.org</owner>
  <summary>
    The duration of time between the start of a non-delayable resource request
    or end of a non-delayable request (whichever happened later) to the start of
    the next non-delayable resource request. Recorded at the start of all
    non-delayable requests that are preceeded by at least one started
    non-delayable request in the same resource scheduler client.
  </summary>
</histogram>

<histogram name="ResourceScheduler.NonDelayableLastStartToNonDelayableStart"
    units="ms" expires_after="M77">
  <owner>tbansal@chromium.org</owner>
  <owner>dougarnett@chromium.org</owner>
  <summary>
    The duration of time between the start of a non-delayable resource request
    to the start of the next non-delayable resource request. Recorded at the
    start of all non-delayable requests that are preceeded by at least one
    started non-delayable request in the same resource scheduler client.
  </summary>
</histogram>

<histogram
    name="ResourceScheduler.NumDelayableRequestsInFlightAtStart.NonDelayable"
    units="requests">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Records the number of delayable requests in-flight when a non-delayable
    request is started.
  </summary>
</histogram>

<histogram name="ResourceScheduler.NumSkippedScans.ScheduleStart"
    units="requests">
  <owner>csharrison@chromium.org</owner>
  <summary>
    The number of LoadAnyStartablePendingRequests scans that were skipped due to
    smarter task scheduling around reprioritization.
  </summary>
</histogram>

<histogram name="ResourceScheduler.PeakDelayableRequestsInFlight"
    units="requests">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Records the highest number of delayable requests that were in-flight when
    the given request with higher priority was in-flight.
  </summary>
</histogram>

<histogram name="ResourceScheduler.RequestQueuingDuration" units="ms">
  <owner>tbansal@chromium.org</owner>
  <summary>
    The amount of time the ResourceScheduler queued a request. Recorded in
    separate histograms based on the request loading priority at the time the
    request was dequeued.
  </summary>
</histogram>

<histogram name="ResourceScheduler.RequestsCount" units="requests count">
  <owner>tbansal@chromium.org</owner>
  <summary>
    Records the count of number of requests in-flight. Recorded when a request
    is started by the resource scheduler.
  </summary>
</histogram>

<histogram name="ResourceScheduler.RequestTimeDeferred.Active">
  <obsolete>
    Deprecated 1/2016
  </obsolete>
  <owner>aiolos@chromium.org</owner>
  <summary>
    The amount of time the ResourceScheduler is throttling a request after
    WillStartRequest is called for a request in a client that was
    user-observable at creation and start time.
  </summary>
</histogram>

<histogram name="ResourceScheduler.RequestTimeDeferred.Background">
  <obsolete>
    Deprecated 1/2016
  </obsolete>
  <owner>aiolos@chromium.org</owner>
  <summary>
    The amount of time the ResourceScheduler is throttling a request after
    WillStartRequest is called for a request in a client that was background at
    creation and start time.
  </summary>
</histogram>

<histogram name="ResourceScheduler.RequestTimeDeferred.Other">
  <obsolete>
    Deprecated 1/2016
  </obsolete>
  <owner>aiolos@chromium.org</owner>
  <summary>
    The amount of time the ResourceScheduler is throttling a request after
    WillStartRequest is called on a request without a Client or a request in a
    Client which is in a different state since the request was made. Note that
    this won't capture requests which have switched state an even number of
    times. Switching from Active to Background back to Active will be recorded
    in the Active version of this histogram.
  </summary>
</histogram>

<histogram name="ResourceScheduler.RequestTimeThrottled.Active">
  <obsolete>
    Deprecated 1/2016
  </obsolete>
  <owner>aiolos@chromium.org</owner>
  <summary>
    The amount of time between when the request was created and when the
    ResourceScheduler stops throttling the request in a client that was
    user-observable at creation and start time.
  </summary>
</histogram>

<histogram name="ResourceScheduler.RequestTimeThrottled.Background">
  <obsolete>
    Deprecated 1/2016
  </obsolete>
  <owner>aiolos@chromium.org</owner>
  <summary>
    The amount of time between when the request was created and when the
    ResourceScheduler stops throttling the request in a client that was
    background at creation and start time.
  </summary>
</histogram>

<histogram name="ResourceScheduler.RequestTimeThrottled.Other">
  <obsolete>
    Deprecated 1/2016
  </obsolete>
  <owner>aiolos@chromium.org</owner>
  <summary>
    The amount of time between when the request was created and when the
    ResourceScheduler stops throttling a request without a client or a request
    in a Client which is in a different state since the request was made. Note
    that this won't capture requests which have switched state an even number of
    times. Switching from Active to Background back to Active will be recorded
    in the Active version of this histogram.
  </summary>
</histogram>

<histogram name="Rlz.SetRlzPingSent" enum="BooleanSuccess">
  <owner>wzang@chromium.org</owner>
  <summary>
    Record if updating |should_send_rlz_ping| in RW_VPD is successful within the
    maximum retry counts.
  </summary>
</histogram>

<histogram name="Rollback.OobeRestoreResult" enum="Rollback_OobeRestoreResult">
  <owner>zentaro@chromium.org</owner>
  <summary>
    The result when attempting to restore data during a Chrome OS rollback.
  </summary>
</histogram>

<histogram name="Rollback.RollbackSaveResult"
    enum="Rollback_RollbackSaveResult">
  <owner>zentaro@chromium.org</owner>
  <summary>
    The result when attempting to save data during a Chrome OS rollback.
  </summary>
</histogram>

<histogram name="RTCQuicStream.ReadIntoAmountBytes" expires_after="M75">
  <owner>shampson@chromium.org</owner>
  <owner>steveanton@chromium.org</owner>
  <summary>
    The amount of data that gets read out via each call to the RTCQuicStream
    readInto() API. The RTCQuicStream can record multiple ReadIntoAmountBytes in
    its lifetime.
  </summary>
</histogram>

<histogram name="RTCQuicStream.ReadIntoResult"
    enum="RTCQuicStreamReadIntoResult" expires_after="M75">
  <owner>shampson@chromium.org</owner>
  <owner>steveanton@chromium.org</owner>
  <summary>
    How data is read out with a finish (FIN) bit for each call to the
    RTCQuicStream readInto API. The RTCQuicStream can record multiple
    ReadIntoResults in its lifetime.
  </summary>
</histogram>

<histogram name="RTCQuicStream.WriteAmountBytes" expires_after="M75">
  <owner>shampson@chromium.org</owner>
  <owner>steveanton@chromium.org</owner>
  <summary>
    The amount of data that gets written via each call to the RTCQuicStream
    write() API. The RTCQuicStream can record multiple WriteAmountBytes in its
    lifetime.
  </summary>
</histogram>

<histogram name="RTCQuicStream.WriteUsage" enum="RTCQuicStreamWriteUsage"
    expires_after="M75">
  <owner>shampson@chromium.org</owner>
  <owner>steveanton@chromium.org</owner>
  <summary>
    How data is written with a finish (FIN) bit for each call to the
    RTCQuicStream write() API. The RTCQuicStream can record multiple WriteUsages
    in its lifetime.
  </summary>
</histogram>

<histogram name="SadTab.Created" enum="SadTabKind">
  <obsolete>
    Replaced with Tabs.SadTab.* in R20.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Track number of times we built a sad tab page for a renderer crash or kill.
    The user may not have seen the page if it was not the frontmost tab.
  </summary>
</histogram>

<histogram name="SadTab.Displayed" enum="SadTabKind">
  <obsolete>
    Replaced with Tabs.SadTab.* in R20.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Track number of times the user actually saw a sad tab page for a renderer
    crash or kill.
  </summary>
</histogram>

<histogram name="SafeBrowsing.AdvancedProtection.APTokenFetchStatus"
    enum="GoogleServiceAuthError">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    For users known to be already enrolled in Advanced Proection, records the
    service error of refreshing OAuth2 access token during fetching the user's
    advanced protection status. Logged once a day and will retry on transient
    failures. This is a subset of
    SafeBrowsing.AdvancedProtection.TokenFetchStatus.
  </summary>
</histogram>

<histogram name="SafeBrowsing.AdvancedProtection.TokenFetchStatus"
    enum="GoogleServiceAuthError">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the service error of refreshing OAuth2 access token during fetching
    the user's advanced protection status. Logged at startup for all users, once
    a day for AP users, and will retry on transient failures.
  </summary>
</histogram>

<histogram name="SafeBrowsing.AndroidTelemetry.ApkDownload.IncompleteReason"
    enum="ApkDownloadTelemetryIncompleteReason">
  <owner>vakh@chromium.org</owner>
  <summary>
    Records if the telemetry ping sent for APK download contained a full
    referrer chain, or if there was an error collecting the referrer chain.
    Logged each time a user opted into extended reporting downloads an APK file
    from a normal window on Android.
  </summary>
</histogram>

<histogram name="SafeBrowsing.AndroidTelemetry.ApkDownload.Outcome"
    enum="ApkDownloadTelemetryOutcome">
  <owner>vakh@chromium.org</owner>
  <summary>
    Records whether a telemetry ping for APK download was sent, or if not, then
    why not. Logged each time a user downloads an APK file on Android.
  </summary>
</histogram>

<histogram name="SafeBrowsing.ContentsSize.Height" units="DIPs"
    expires_after="M77">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the height of content area when the user opens a new browser window
    or when the user finishes resizing a browser window.
  </summary>
</histogram>

<histogram name="SafeBrowsing.ContentsSize.Width" units="DIPs"
    expires_after="M77">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the width of content area when the user opens a new browser window
    or when the user finishes resizing a browser window.
  </summary>
</histogram>

<histogram name="SafeBrowsing.EnabledSettingChanged" enum="BooleanEnabled">
  <obsolete>
    Not in the code anymore (10/2015).
  </obsolete>
  <owner>feng@chromium.org</owner>
  <summary>
    Records the user action that enables/disables safe browsing feature in the
    Settings page on Android.
  </summary>
</histogram>

<histogram name="SafeBrowsing.FileTypeUpdate.DynamicUpdateResult"
    enum="SBFileTypeUpdateResult">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The result of reading/parsing/accepting a new proto for the FileTypePolices
    repo of file extensions and their meta data.

    This is for the file types loaded from the component-update system. This
    includes both those loaded from disk shortly after startup, and those
    received over the network when the component version changes
  </summary>
</histogram>

<histogram name="SafeBrowsing.FileTypeUpdate.DynamicUpdateTypeCount"
    units="number of file types">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Number of file types (aka file extensions) present in the FileTypePolicies
    proto loaded.

    This is for the file types loaded from the component-update system. This
    includes both those loaded from disk shortly after startup, and those
    received over the network when the component version changes
  </summary>
</histogram>

<histogram name="SafeBrowsing.FileTypeUpdate.DynamicUpdateVersion"
    units="FileTypePolicies Version">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Integer version number citing which version of the proto data chrome just
    loaded. Latest version is in download_file_types.asciipb.

    This is for the file types loaded from the component-update system. This
    includes both those loaded from disk shortly after startup, and those
    received over the network when the component version changes
  </summary>
</histogram>

<histogram name="SafeBrowsing.FileTypeUpdate.ResourceBundleResult"
    enum="SBFileTypeUpdateResult">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The result of reading/parsing/accepting a new proto for the FileTypePolices
    repo of file extensions and their meta data.

    This is for the file types loaded from the resource bundle packaged with
    Chrome, which is always loaded at startup.
  </summary>
</histogram>

<histogram name="SafeBrowsing.FileTypeUpdate.ResourceBundleTypeCount"
    units="number of file types">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Number of file types (aka file extensions) present in the FileTypePolicies
    proto loaded.

    This is for the file types loaded from the resource bundle packaged with
    Chrome, which is always loaded at startup.
  </summary>
</histogram>

<histogram name="SafeBrowsing.FileTypeUpdate.ResourceBundleVersion"
    units="FileTypePolicies Version">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Integer version number citing which version of the proto data chrome just
    loaded. Latest version is in download_file_types.asciipb.

    This is for the file types loaded from the resource bundle packaged with
    Chrome, which is always loaded at startup.
  </summary>
</histogram>

<histogram name="SafeBrowsing.FontSize.Default" units="pts" expires_after="M77">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>Records the default font size on user startup.</summary>
</histogram>

<histogram name="SafeBrowsing.FontSize.DefaultFixed" units="pts"
    expires_after="M77">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>Records the default fixed font size on user startup.</summary>
</histogram>

<histogram name="SafeBrowsing.FontSize.Minimum" units="pts" expires_after="M77">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>Records the minimum font size on user startup.</summary>
</histogram>

<histogram name="SafeBrowsing.FontSize.MinimumLogical" units="pts"
    expires_after="M77">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>Records the minimum logical font size on user startup.</summary>
</histogram>

<histogram name="SafeBrowsing.GetV4HashHttpResponseOrErrorCode"
    enum="CombinedHttpResponseAndNetErrorCode">
  <obsolete>
    Replaced by SafeBrowsing.V4GetHash.Network.Result.
  </obsolete>
  <owner>kcarattini@google.com</owner>
  <summary>
    Response or error codes from the SafeBrowsing Pver4 service. Logged after a
    GetHash or request finishes to capture the response code or error code for
    that call.
  </summary>
</histogram>

<histogram name="SafeBrowsing.GetV4HashNetwork" units="ms">
  <obsolete>
    Replaced by SafeBrowsing.V4GetHash.Network.Time.
  </obsolete>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    The time that it took to receive a response from the Safe Browsing servers
    for a V4 GetHash request.
  </summary>
</histogram>

<histogram name="SafeBrowsing.GetV4HashResult"
    enum="SafeBrowsingV4OperationResult">
  <obsolete>
    Replaced by SafeBrowsing.V4GetHash.Result.
  </obsolete>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    Track return status from V4 GetHash attempts. The buckets of this histogram
    overlap, so the counts cannot be used as percentages.
  </summary>
</histogram>

<histogram name="SafeBrowsing.Interstitial.Type" enum="InterstitialTypeEnum">
  <owner>ntfschr@chromium.org</owner>
  <summary>
    Which interstitial type is being displayed to the user? This currently
    applies only to WebView (where we show Loud vs. Quiet interstitials).
  </summary>
</histogram>

<histogram name="SafeBrowsing.ModuleBaseRelocation" units="BaseRelocationType">
  <owner>csharp@chromium.org</owner>
  <owner>proberge@google.com</owner>
  <summary>
    A windows only historgram. Records when an unknown base relocation type is
    encountered while reading the reloc table of a loaded module.
  </summary>
</histogram>

<histogram name="SafeBrowsing.NavigationObserver.IPAddressCleanUpCount">
  <obsolete>
    Deprecated in M71+.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Count of how many ResolvedIPAddresses get removed in each periodic clean up.
    This is a rough estimation of the number of IPs associated with main frame
    and sub-frame navigations every two minutes.
  </summary>
</histogram>

<histogram name="SafeBrowsing.NavigationObserver.NavigationEventCleanUpCount">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Count of how many NavigationEvents get removed in each periodic clean up.
    This is a rough estimation of the number of navigations every two minutes.
  </summary>
</histogram>

<histogram name="SafeBrowsing.NotificationImageReporter.NetError"
    enum="NetErrorCodes">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The net error code for failed reports sent by NotificationImageReporter, or
    net::OK if successful.
  </summary>
</histogram>

<histogram name="SafeBrowsing.ParseV4HashResult"
    enum="SafeBrowsingParseV4HashResult">
  <obsolete>
    Replaced by SafeBrowsing.V4GetHash.Parse.Result.
  </obsolete>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    Track the parsing results of a status 200 GetV4Hash request.
  </summary>
</histogram>

<histogram name="SafeBrowsing.ParseV4UpdateResult"
    enum="SafeBrowsingParseV4UpdateResult">
  <obsolete>
    Replaced by SafeBrowsing.V4Update.Parse.Result.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Track the parsing results of a status 200 GetV4Update request.
  </summary>
</histogram>

<histogram name="SafeBrowsing.Pref.Extended" enum="BooleanEnabled">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Whether the Safe Browsing extended reporting service is currently enabled.
    Recorded for all non-Incognito profiles on profile startup.
  </summary>
</histogram>

<histogram name="SafeBrowsing.Pref.General" enum="BooleanEnabled">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Whether the Safe Browsing service is currently enabled. Recorded for all
    non-Incognito profiles on profile startup.
  </summary>
</histogram>

<histogram name="SafeBrowsing.Pref.SawInterstitial" enum="Boolean">
  <owner>lpz@chromium.org</owner>
  <summary>
    Whether the current user has ever seen a security interstitial. Recorded for
    all non-Incognito profiles on profile startup.
  </summary>
</histogram>

<histogram name="SafeBrowsing.Pref.Scout" enum="NullableBoolean">
  <owner>lpz@chromium.org</owner>
  <summary>
    Tracks the Extended Reporting preference transition. Suffixes track which
    opt-in text users are viewing and the values of each Extended Reporting
    preference. Recorded for all non-Incognito profiles on profile startup.
  </summary>
</histogram>

<histogram name="SafeBrowsing.Pref.Scout.Decision"
    enum="ScoutActiveExtendedReportingPref">
  <owner>lpz@chromium.org</owner>
  <summary>
    Tracks user decisions about the Extended Reporting opt-in on security
    interstitials by comparing the initial and final states of the preference.
    Suffixes specify the type of change that was made. Recorded when a user
    closes a security interstitial or navigates away.
  </summary>
</histogram>

<histogram name="SafeBrowsing.Pref.Scout.SetPref" enum="BooleanEnabled">
  <owner>lpz@chromium.org</owner>
  <summary>
    Tracks the Extended Reporting preference being changed. Suffixes track which
    Extended Reporting preference was changed, and the specific UI that the
    change was made on. Recorded when a user changes the preference on any UI.
  </summary>
</histogram>

<histogram name="SafeBrowsing.Pref.Scout.Transition"
    enum="ScoutTransitionReason">
  <owner>lpz@chromium.org</owner>
  <summary>
    Tracks reasons for the Extended Reporting preference transition, such as a
    user entering an experiment group or seeing a security interstitial for the
    first time. Recorded for all non-Incognito profiles on profile startup.
  </summary>
</histogram>

<histogram name="SafeBrowsing.ReferrerAttributionResult"
    enum="SafeBrowsingAttributionResultTypes">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The result of referrer attribution, including different types of success or
    failure. This is incremented each time a safe browsing ping or download ping
    is generated.
  </summary>
</histogram>

<histogram name="SafeBrowsing.ReferrerHasInvalidTabID" enum="BooleanInvalid">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Number of times referrer attribution encounters an invalid tab ID. This is
    incremented a safe browsing ping or download ping is generated and an
    invalid tab ID is encountered during attribution.
  </summary>
</histogram>

<histogram name="SafeBrowsing.ReferrerURLChainSize">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The length of referrer URL chain we get from referrer attribution. This is
    logged each time a safe browsing ping or download ping is generated.
  </summary>
</histogram>

<histogram name="SafeBrowsing.ThreatReport.DomIsAmbiguous" enum="Boolean">
  <owner>lpz@chromium.org</owner>
  <summary>
    A threat report contains a DOM hierarchy that is ambiguous. This indicates
    that the parent/child relationship among the elements in the DOM may not be
    accurate.
  </summary>
</histogram>

<histogram name="SafeBrowsing.ThreatReport.MaxNodesExceededInFrame"
    enum="BooleanExceeded">
  <owner>lpz@chromium.org</owner>
  <summary>
    Whether the threat report generated for a subframe of a page hit the maximum
    number of nodes. When this is true, the data from that frame will be
    truncated.
  </summary>
</histogram>

<histogram name="SafeBrowsing.Triggers.AdSampler.Action"
    enum="AdSamplerTriggerAction">
  <owner>lpz@chromium.org</owner>
  <summary>
    Tracks the actions taken by the Ad Sampling trigger whenever it is executed.
  </summary>
</histogram>

<histogram name="SafeBrowsing.Triggers.SuspiciousSite.DelayTimerState"
    enum="SuspiciousSiteTriggerState">
  <owner>lpz@chromium.org</owner>
  <summary>
    Tracks the state of the Suspicious Site trigger when its report delay timer
    fires. Used to investigate variance in event order.
  </summary>
</histogram>

<histogram name="SafeBrowsing.Triggers.SuspiciousSite.Event"
    enum="SuspiciousSiteTriggerEvent">
  <owner>lpz@chromium.org</owner>
  <summary>
    Tracks the events occurring in the Suspicious Site trigger whenever it is
    executed.
  </summary>
</histogram>

<histogram name="SafeBrowsing.Triggers.SuspiciousSite.ReportRejectionReason"
    enum="TriggerManagerReason">
  <owner>lpz@chromium.org</owner>
  <summary>
    Tracks the reasons that a report requested by the Suspicious Site trigger is
    rejected by the Trigger Manager.
  </summary>
</histogram>

<histogram name="SafeBrowsing.UnverifiedDownloads.Allowed"
    enum="SBClientDownloadExtensions">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>dtrainor@chromium.org</owner>
  <summary>
    File types that were allowed to be downloaded without verifying their
    content nor their source URLs with Safe Browsing.
  </summary>
</histogram>

<histogram name="SafeBrowsing.UnverifiedDownloads.AllowedByWhitelist"
    enum="SBClientDownloadExtensions">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>dtrainor@chromium.org</owner>
  <summary>
    File types that were allowed to be downloaded without verifying their
    content nor their source URLs with Safe Browsing due to the requestor URL
    being on the Safe Browsing whitelist. Each sample recorded on this histogram
    is also recorded in SafeBrowsing.UnverifiedDownloads.Allowed.
  </summary>
</histogram>

<histogram name="SafeBrowsing.UnverifiedDownloads.AllowedDueToDisabledService"
    enum="SBClientDownloadExtensions">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>dtrainor@chromium.org</owner>
  <summary>
    File types that were allowed to be downloaded without verifying their
    content nor their source URLs with Safe Browsing due to the SafeBrowsing
    service being disabled. Each sample recorded on this histogram is also
    recorded in SafeBrowsing.UnverifiedDownloads.Allowed.
  </summary>
</histogram>

<histogram name="SafeBrowsing.UnverifiedDownloads.AlternateExtensionCount">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Count of alternate extensions that were supplied when attempting to download
    a file without verifying their content nor their source URLs with Safe
    Browsing.
  </summary>
</histogram>

<histogram name="SafeBrowsing.UnverifiedDownloads.Blocked"
    enum="SBClientDownloadExtensions">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>dtrainor@chromium.org</owner>
  <summary>
    File types that were blocked from downloaded without verifying their content
    nor their source URLs with Safe Browsing.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4AddUnlumpedHashes.Time" units="ms">
  <obsolete>
    Deprecated 04/25/2018 since it was not being used actively or monitored.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the time it takes to copy the SafeBrowsing list update as a string,
    into a map which contains the hash prefixes that are looked up when a client
    queries for the reputation of a resource (URL, full hash, etc.).
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4AddUnlumpedHashesTime" units="ms">
  <obsolete>
    Replaced by SafeBrowsing.V4AddUnlumpedHashes.Time.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the time it takes to copy the SafeBrowsing list update as a string,
    into a map which contains the hash prefixes that are looked up when a client
    queries for the reputation of a resource (URL, full hash, etc.).
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4ApplyUpdateResult"
    enum="SafeBrowsingV4ApplyUpdateResult">
  <obsolete>
    Replaced by SafeBrowsing.V4*.ApplyUpdate.Result.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Track the result of applying the update fetched from the PVer4 service for a
    particular store.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4ApplyUpdateResultWhenReadingFromDisk"
    enum="SafeBrowsingV4ApplyUpdateResult">
  <obsolete>
    Replaced by SafeBrowsing.V4ReadFromDisk.ApplyUpdate.Result.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Track the result of applying an update read from disk after parsing it
    successfully as a protobuf.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4Database.Size" units="KB">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The size of the SafeBrowsing database or file on disk in kilobytes, after
    reading it from disk on startup and after a database update has occurred.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4DatabaseOpen.Time" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The time it takes to parse and load the SafeBrowsing database from disk, in
    milliseconds.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4DecodeAdditionsResult"
    enum="SafeBrowsingV4DecodeResult">
  <obsolete>
    Replaced by SafeBrowsing.V4*.DecodeAdditions.Result.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Track the result of decoding the Rice-encoded list of additions of 4-byte
    hash prefixes. This is logged once per store, per update containing
    Rice-encoded additions.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4DecodeAdditionsTime" units="ms">
  <obsolete>
    Replaced by SafeBrowsing.V4*.DecodeAdditions.Time.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the time it takes to decode the Rice-encoded additions to the
    blacklist into raw format.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4DecodeRemovalsResult"
    enum="SafeBrowsingV4DecodeResult">
  <obsolete>
    Replaced by SafeBrowsing.V4ProcessPartialUpdate.DecodeRemovals.Result.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Track the result of decoding the Rice-encoded list of indexes of hash
    prefixes to remove since the last update. This is logged once per store, per
    update containing Rice-encoded removals.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4DecodeRemovalsTime" units="ms">
  <obsolete>
    Replaced by SafeBrowsing.V4ProcessPartialUpdate.DecodeRemovals.Time.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the time it takes to decode the Rice-encoded removals from the
    blacklist into raw format.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4FullHashCacheResult"
    enum="SafeBrowsingV4FullHashCacheResult">
  <obsolete>
    Replaced by SafeBrowsing.V4GetHash.CacheHit.Result.
  </obsolete>
  <owner>kcarattini@chromium.org</owner>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>Track cache hits for V4 full hashes.</summary>
</histogram>

<histogram name="SafeBrowsing.V4GetHash.CacheHit.Result"
    enum="SafeBrowsingV4FullHashCacheResult">
  <owner>kcarattini@chromium.org</owner>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>Track cache hits for V4 full hashes.</summary>
</histogram>

<histogram name="SafeBrowsing.V4GetHash.Check.Result"
    enum="SafeBrowsingV4GetHashCheckResult">
  <owner>kcarattini@chromium.org</owner>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>Track get hash response hits for V4 full hash requests.</summary>
</histogram>

<histogram name="SafeBrowsing.V4GetHash.Network.Result"
    enum="CombinedHttpResponseAndNetErrorCode">
  <owner>kcarattini@google.com</owner>
  <owner>vakh@google.com</owner>
  <summary>
    Response or error codes from the SafeBrowsing Pver4 service. Logged after a
    GetHash or request finishes to capture the response code or error code for
    that call.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4GetHash.Network.Time" units="ms">
  <owner>kcarattini@chromium.org</owner>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The time that it took to receive a response from the Google SafeBrowsing
    servers for a full hash request.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4GetHash.Parse.Result"
    enum="SafeBrowsingParseV4HashResult">
  <owner>kcarattini@chromium.org</owner>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Track the parsing results of a status 200 GetV4Hash request.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4GetHash.Result"
    enum="SafeBrowsingV4OperationResult">
  <owner>kcarattini@chromium.org</owner>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Track return status from V4 GetHash attempts. The buckets of this histogram
    overlap, so the counts cannot be used as percentages.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4GetHashCheckResult"
    enum="SafeBrowsingV4GetHashCheckResult">
  <obsolete>
    Replaced by SafeBrowsing.V4GetHash.Check.Result.
  </obsolete>
  <owner>kcarattini@chromium.org</owner>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>Track get hash response hits for V4 full hash requests.</summary>
</histogram>

<histogram name="SafeBrowsing.V4GetHashNetwork.Time" units="ms">
  <obsolete>
    Replaced by SafeBrowsing.V4GetHash.Network.Time.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The time that it took to receive a response from the Google SafeBrowsing
    servers for a full hash request.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4GetPrefixMatches.Time" units="ms">
  <obsolete>
    Deprecated in favor of the TimeUs variant
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The time that it took to check a URL against our in-memory database. It is
    dominated by the time to perform checks for CheckBrowseUrl.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4GetPrefixMatches.TimeUs" units="microseconds">
  <obsolete>
    Deprecated 01/2019 due to lack of use (Histogram Eraser).
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The time that it took to check a URL against our in-memory database. It is
    dominated by the time to perform checks for CheckBrowseUrl. Note that this
    metric is recorded even for users with low resolution clocks.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4LocalDatabaseManager.AreAllStoresAvailableNow"
    enum="SafeBrowsingStoreAvailabilityResult">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the outcome of a check to AreAllStoresAvailableNow. This will be
    logged whenever the database is queried (several times in the process of a
    download, and once when a potentially dangerous subresource is loaded).
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4MergeUpdateTime" units="ms">
  <obsolete>
    Replaced by SafeBrowsing.V4*.MergeUpdate.Time.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the time it takes to merge the existing state of the list with the
    update. The update may have been received from the server, or it may have
    just been read from disk.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4ProcessFullUpdate.ApplyUpdate.Result"
    enum="SafeBrowsingV4ApplyUpdateResult">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Track the result of applying a full update for a store received from PVer4
    SafeBrowsing service.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4ProcessFullUpdate.ApplyUpdate.Time" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the time it takes to process a SafeBrowsing list full update. It
    includes V4AddUnlumpedHashes.Time for each prefix-sized list, and
    V4ProcessFullUpdate.MergeUpdate.Time. Additionally, if the update is
    Rice-encoded, it includes V4ProcessFullUpdate.DecodeAdditions.Time for each
    prefix-sized list that's Rice-encoded.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4ProcessFullUpdate.DecodeAdditions.Result"
    enum="SafeBrowsingV4DecodeResult">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Track the result of decoding the Rice-encoded list of additions of 4-byte
    hash prefixes. This is logged once per store, per update containing
    Rice-encoded additions. This histogram is specific to processing full
    updates received from the server.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4ProcessFullUpdate.DecodeAdditions.Time"
    units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the time it takes to decode the Rice-encoded additions to the
    blacklist into raw format when applying a full update to a store.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4ProcessFullUpdate.MergeUpdate.Time" units="ms">
  <obsolete>
    Deprecated 04/25/2018 since it was not being used actively or monitored.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the time it takes to merge the existing state of the list with a
    full update received from the server.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4ProcessFullUpdateTime" units="ms">
  <obsolete>
    Replaced by SafeBrowsing.V4ProcessFullUpdate.ApplyUpdate.Time.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the time it takes to process a SafeBrowsing list full update. It
    includes V4AddUnlumpedHashesTime for each prefix-sized list, and
    V4MergeUpdateTime. Additionally, if the update is Rice-encoded, it includes
    V4DecodeAdditionsTime for each prefix-sized list that's Rice-encoded.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4ProcessPartialUpdate.ApplyUpdate.Result"
    enum="SafeBrowsingV4ApplyUpdateResult">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Track the result of applying a partial update for a store received from
    PVer4 SafeBrowsing service.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4ProcessPartialUpdate.ApplyUpdate.Time"
    units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the time it takes to process a SafeBrowsing list partial update. It
    includes V4AddUnlumpedHashes.Time for each prefix-sized list, and
    SafeBrowsing.V4ProcessPartialUpdate.MergeUpdate.Time. Additionally, if the
    update is Rice-encoded, it includes
    V4ProcessPartialUpdate.DecodeRemovals.Time, and
    V4ProcessPartialUpdate.DecodeAdditions.Time for each prefix-sized list
    that's Rice-encoded.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4ProcessPartialUpdate.DecodeAdditions.Result"
    enum="SafeBrowsingV4DecodeResult">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Track the result of decoding the Rice-encoded list of additions of 4-byte
    hash prefixes. This is logged once per store, per update containing
    Rice-encoded additions. This histogram is specific to processing partial
    updates received from the server.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4ProcessPartialUpdate.DecodeAdditions.Time"
    units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the time it takes to decode the Rice-encoded additions to the
    blacklist into raw format when applying a partial update to a store.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4ProcessPartialUpdate.DecodeRemovals.Result"
    enum="SafeBrowsingV4DecodeResult">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Track the result of decoding the Rice-encoded list of indexes of hash
    prefixes to remove since the last update. This is logged once per store, per
    update containing Rice-encoded removals.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4ProcessPartialUpdate.DecodeRemovals.Time"
    units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the time it takes to decode the Rice-encoded removals from the
    blacklist into raw format when applying a partial update to a store.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4ProcessPartialUpdate.MergeUpdate.Time"
    units="ms">
  <obsolete>
    Deprecated 04/25/2018 since it was not being used actively or monitored.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the time it takes to merge the existing state of the list with a
    partial update received from the server.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4ProcessPartialUpdateTime" units="ms">
  <obsolete>
    Replaced by SafeBrowsing.V4ProcessPartialUpdate.ApplyUpdate.Time.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the time it takes to process a SafeBrowsing list partial update. It
    includes V4AddUnlumpedHashesTime for each prefix-sized list, and
    V4MergeUpdateTime. Additionally, if the update is Rice-encoded, it includes
    V4DecodeRemovalsTime, and V4DecodeAdditionsTime for each prefix-sized list
    that's Rice-encoded.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4ReadFromDisk.ApplyUpdate.Result"
    enum="SafeBrowsingV4ApplyUpdateResult">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Track the result of applying an ListUpdateResponse read from disk after
    parsing it successfully as a protobuf.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4ReadFromDisk.ApplyUpdate.Time" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the time it takes to read, parse, and process a SafeBrowsing list
    stored on disk. This happens at Chromium start-up. It includes
    V4AddUnlumpedHashes.Time for each prefix-sized list, and
    SafeBrowsing.V4ReadFromDisk.MergeUpdate.Time. Additionally, if the file is
    Rice-encoded, it includes V4ReadFromDisk.DecodeAdditions.Time for each
    prefix-sized list that's Rice-encoded.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4ReadFromDisk.DecodeAdditions.Result"
    enum="SafeBrowsingV4DecodeResult">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Track the result of decoding the Rice-encoded list of additions of 4-byte
    hash prefixes. This is logged once per store, per Chrome launch. It is
    specific to processing V4StoreFileFormat proto read from disk.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4ReadFromDisk.DecodeAdditions.Time" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the time it takes to decode the Rice-encoded additions to the
    blacklist into raw format when reading a store file from disk.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4ReadFromDisk.MergeUpdate.Time" units="ms">
  <obsolete>
    Deprecated 04/25/2018 since it was not being used actively or monitored.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the time it takes to perform in-memory copy of the map of raw hash
    prefixes read from disk.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4ReadFromDiskTime" units="ms">
  <obsolete>
    Replaced by SafeBrowsing.V4ReadFromDisk.ApplyUpdate.Time.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the time it takes to read, parse, and process a SafeBrowsing list
    stored on disk. This happens at Chromium start-up. It includes
    V4AddUnlumpedHashesTime for each prefix-sized list, and V4MergeUpdateTime.
    Additionally, if the file is Rice-encoded, it includes V4DecodeAdditionsTime
    for each prefix-sized list that's Rice-encoded.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4Store.IsStoreAvailable.ValidStore"
    enum="BooleanAvailable">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records how often IsStoreAvailable fails due to an invalid store identifier.
    This is logged each time a store is checked (a few times for each download,
    and once when a potentially dangerous subresource is loaded).
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4Store.IsStoreValid" enum="BooleanValid">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records whether a store has valid data, when it is queried. This is logged
    each time a store is checked (a few times for each download, and once when a
    potentially dangerous subresource is loaded).
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4StoreRead.Result"
    enum="SafeBrowsingV4StoreReadResult">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Track the parsing results of reading the SafeBrowsing V4 store file from
    disk. Recorded every time a store is read from disk.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4StoreReadResult"
    enum="SafeBrowsingV4StoreReadResult">
  <obsolete>
    Replaced by SafeBrowsing.V4StoreRead.Result.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Track the parsing results of reading the SafeBrowsing V4 store file from
    disk. Recorded every time a store is read from disk.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4StoreVersionRead" units="version number">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Version of V4Store read from a store file. This would be useful in tracking
    the usage and rollout of new V4Store versions.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4StoreWrite.Result"
    enum="SafeBrowsingV4StoreWriteResult">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Track the results of writing the SafeBrowsing V4 store file to disk.
    Recorded every time a store is written to disk.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4StoreWriteResult"
    enum="SafeBrowsingV4StoreWriteResult">
  <obsolete>
    Replaced by SafeBrowsing.V4StoreWrite.Result.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Track the results of writing the SafeBrowsing V4 store file to disk.
    Recorded every time a store is written to disk.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4UnusedStoreFileExists" enum="BooleanExists">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Track the presence of store files that were previously created but have been
    deprecated since so need to be removed from disk. Logged once per startup.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4UnusedStoreFileExists.V3" enum="BooleanExists">
  <obsolete>
    Removed in M73. See https://crbug.com/916192
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Track the presence of Safe Browsing list files used for PVer3, which has
    been deprecated. Logged once per startup.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4Update.Network.Result"
    enum="CombinedHttpResponseAndNetErrorCode">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Response or error codes when fetching updates from the SafeBrowsing PVer4
    service.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4Update.Parse.Result"
    enum="SafeBrowsingParseV4UpdateResult">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Track the parsing results of a status 200 GetV4Update request.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4Update.ResponseSizeKB" units="KB">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The size of the response sent by the SafeBrowsing PVer4 service, in KB.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4Update.Result"
    enum="SafeBrowsingV4OperationResult">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Track return status from V4 update attempts. The buckets of this histogram
    overlap, so the counts cannot be used as percentages.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4Update.TimedOut" enum="BooleanTimedOut">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>True if a PVer4 update request timed out.</summary>
</histogram>

<histogram name="SafeBrowsing.V4UpdateHttpResponseOrErrorCode"
    enum="CombinedHttpResponseAndNetErrorCode">
  <obsolete>
    Replaced by SafeBrowsing.V4Update.Network.Result.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Response or error codes when fetching updates from the SafeBrowsing PVer4
    service.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4UpdateResponseSizeKB" units="KB">
  <obsolete>
    Replaced by SafeBrowsing.V4Update.ResponseSizeKB.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The size of the response sent by the SafeBrowsing PVer4 service, in KB.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4UpdateResult"
    enum="SafeBrowsingV4OperationResult">
  <obsolete>
    Replaced by SafeBrowsing.V4Update.Result.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Track return status from V4 update attempts. The buckets of this histogram
    overlap, so the counts cannot be used as percentages.
  </summary>
</histogram>

<histogram base="true" name="SafeBrowsing.WebSocket.Elapsed" units="ms">
  <owner>ricea@chromium.org</owner>
  <summary>
    Time spent on SafeBrowsing lookup. Since this includes any time spent on the
    interstitial page the average may not be useful.
  </summary>
</histogram>

<histogram name="SafeBrowsing.WebSocket.Result"
    enum="SafeBrowsingWebSocketResult">
  <owner>ricea@chromium.org</owner>
  <summary>
    Results of a SafeBrowsing lookup for a WebSocket handshake. All lookups are
    counted. Note: the &quot;ABANDONED&quot; bucket contains both connections
    that were abandoned before the check completed and those that were cancelled
    when the user navigated away from the SafeBrowsing interstitial.
  </summary>
</histogram>

<histogram name="SafeBrowsing.WebView.AppOptIn" enum="SafeBrowsingAppOptIn">
  <owner>ntfschr@chromium.org</owner>
  <summary>
    Records whether the application has explicitly opted in or out of Safe
    Browsing by manifest tag, or if they're relying on the default behavior.
    This is recorded once during startup.
  </summary>
</histogram>

<histogram name="SafeBrowsing.WebView.UserConsentVsUrlCheckRace"
    enum="SafeBrowsingUserConsentVsUrlCheckRaceResult">
  <owner>ntfschr@chromium.org</owner>
  <summary>
    WebView can simultaneously check for user opt-in and Safe-Browsing-check the
    first URL, with both asynchronous checks racing to finish. This records the
    outcome of that race: (1) which asynchronous method finished first; (2) if
    user consent finished first, what was the outcome; and (3) did we show
    malicious content to the user. This is recorded only once, for the first
    Safe Browsing check.
  </summary>
</histogram>

<histogram name="SafeBrowsing.WebView.UserOptIn" enum="SafeBrowsingUserOptIn">
  <owner>ntfschr@chromium.org</owner>
  <summary>
    Records whether the user has explicitly opted in or out of Safe Browsing
    (determined by the Google Play Protect Verify Apps setting in GMS). This
    also captures when WebView cannot determine user preference due to a GMS API
    failure. This is recorded once during startup.
  </summary>
</histogram>

<histogram name="SafeBrowsing.WebView.Viewable" enum="BooleanVisible">
  <owner>ntfschr@chromium.org</owner>
  <summary>
    When encountering an unsafe resource, this indicates whether the WebView is
    considered to be viewable or not. Currently, we define &quot;viewable&quot;
    as getVisibility() == View.VISIBLE and attached to the Android View
    hierarchy.
  </summary>
</histogram>

<histogram name="SB.BloomFilter" units="ms">
  <obsolete>
    Has not been generated for years (7/8/14).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The first stage check that measures the time that Chrome took to check if a
    URL is present in our in-memory bloom filter.
  </summary>
</histogram>

<histogram name="SB.BuildBloom">
  <obsolete>
    Deprecated 9/2012. No longer generated.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>TBD.</summary>
</histogram>

<histogram name="SB.Database" units="ms">
  <obsolete>
    Has not been generated for years (7/8/14).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The second stage check that measures the time that Chrome took to check if a
    URL is present in our SQLite database.
  </summary>
</histogram>

<histogram name="SB.DBCheck" units="ms">
  <obsolete>
    Has not been generated for years (7/8/14).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The second stage check that mesures the time that Chrome took to check if a
    URL is present in our SQLite database. This time includes the filter check
    time.
  </summary>
</histogram>

<histogram name="SB.Delay" units="ms">
  <obsolete>
    Has not been generated for years (7/8/14).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    This measures the time that SafeBrowsing actually delayed the browsing
    experience. It records the difference between the time when Chrome would
    have started reading the response for a URL and when the SafeBrowsing system
    completed its check of that URL.
  </summary>
</histogram>

<histogram name="SB.FilterCheck" units="ms">
  <obsolete>
    Has not been generated for years (7/8/14).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The first stage check that measures the time that Chrome took to check if a
    URL is present in our in-memory hash table.
  </summary>
</histogram>

<histogram name="SB.Network" units="ms">
  <obsolete>
    Has not been generated for years (7/8/14).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The third and final stage check that mesures the time that Chrome took to
    get a response from the Google SafeBrowsing servers for a particular URL.
  </summary>
</histogram>

<histogram name="SB.NetworkCheck" units="ms">
  <obsolete>
    Has not been generated for years (7/8/14).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The third and final stage check that mesures the time that Chrome took to
    get a response from the Google SafeBrowsing servers for a particular URL.
    This time includes the filter and database check time.
  </summary>
</histogram>

<histogram name="SB.PauseSafe" units="ms">
  <obsolete>
    Has not been generated for years (7/8/14).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    This measures the time that SafeBrowsing actually delayed the browsing
    experience. It records the difference between the time when Chrome would
    have started reading the response for a URL and when the SafeBrowsing system
    completed its check of that URL.
  </summary>
</histogram>

<histogram name="SB.Update">
  <obsolete>
    Has not been generated for years (7/8/14).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>TBD.</summary>
</histogram>

<histogram name="SB2.AddPrefixes">
  <obsolete>
    Deprecated after the launch of PVer4 in M57.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The number of add prefixes stored in the database after the last update.
  </summary>
</histogram>

<histogram name="SB2.BloomFailure" enum="SB2BloomFailure">
  <obsolete>
    Bloom filter support deleted in October 2012.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Track failures when in processing the safe-browsing database bloom filter.
  </summary>
</histogram>

<histogram name="SB2.BloomFilterFalsePositives"
    enum="SB2BloomFilterFalsePositives">
  <obsolete>
    This became misleading around M-22 (September 2012), deleted in M-32
    (November 2013).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    All prefix misses (server returned no full hashes) and prefix misses due to
    false positives in the bloom filter.
  </summary>
</histogram>

<histogram name="SB2.BloomFilterLoad" units="ms">
  <obsolete>
    Bloom filter support deleted in October 2012.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Time to load the BloomFilter file.</summary>
</histogram>

<histogram name="SB2.BrowseDatabaseKilobytes" units="KB">
  <obsolete>
    Deprecated 12/2014. Moved to SB2.DatabaseSizeKilobytes.Browse.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The size of the browsing SafeBrowsing database file on disk in kilobytes,
    after an update has occurred.
  </summary>
</histogram>

<histogram name="SB2.BuildFilter" units="ms">
  <obsolete>
    Deprecated after the launch of PVer4 in M57.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The time that it took to regenerate the filter after we have received all
    the update chunks.
  </summary>
</histogram>

<histogram name="SB2.BuildReadBytes" units="bytes">
  <obsolete>
    Deprecated because it was exceeding the range. Replaced by
    SB2.BuildReadKilobytes.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of bytes read by the browser process during the bloom filter
    generation phase.
  </summary>
</histogram>

<histogram name="SB2.BuildReadKilobytes" units="KB">
  <obsolete>
    Deprecated after the launch of PVer4 in M57.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The number of kilobytes read by the browser process during the filter
    generation phase.
  </summary>
</histogram>

<histogram name="SB2.BuildReadOperations">
  <obsolete>
    Deprecated after the launch of PVer4 in M57.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The number of read operations issued by the browser process during the
    filter generation phase.
  </summary>
</histogram>

<histogram name="SB2.BuildWriteBytes" units="bytes">
  <obsolete>
    Deprecated because it was exceeding the range. Replaced by
    SB2.BuildWriteKilobytes.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of bytes written by the browser process during the bloom filter
    generation phase.
  </summary>
</histogram>

<histogram name="SB2.BuildWriteKilobytes" units="KB">
  <obsolete>
    Deprecated after the launch of PVer4 in M57.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The number of kilobytes written by the browser process during the filter
    generation phase.
  </summary>
</histogram>

<histogram name="SB2.BuildWriteOperations">
  <obsolete>
    Deprecated after the launch of PVer4 in M57.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The number of write operations issued by the browser process during the
    filter generation phase.
  </summary>
</histogram>

<histogram name="SB2.ChunkInsert" units="ms">
  <obsolete>
    Deprecated after the launch of PVer4 in M57.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The time that it takes to write one redirect URL (which can contain multiple
    chunks) to the database.
  </summary>
</histogram>

<histogram name="SB2.ChunkRequest" units="ms">
  <obsolete>
    Deprecated after the launch of PVer4 in M57.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The network time between the request and response for a chunk.
  </summary>
</histogram>

<histogram name="SB2.ChunkSize" units="bytes">
  <obsolete>
    Deprecated after the launch of PVer4 in M57.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>The size of one chunk URL.</summary>
</histogram>

<histogram name="SB2.DatabaseBytes" units="bytes">
  <obsolete>
    Deprecated because it was exceeding the range. Replaced by
    SB2.DatabaseKilobytes.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The size of the SafeBrowsing database file on disk.</summary>
</histogram>

<histogram name="SB2.DatabaseFailure" enum="SB2DatabaseFailure">
  <obsolete>
    Deprecated after the launch of PVer4 in M57.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>Track failures when updating the safe-browsing database.</summary>
</histogram>

<histogram name="SB2.DatabaseKilobytes" units="KB">
  <obsolete>
    Replaced by SB2.BrowseDatabaseKilobytes.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The size of the SafeBrowsing database file on disk in kilobytes.
  </summary>
</histogram>

<histogram name="SB2.DatabaseOpen" units="ms">
  <obsolete>
    Deprecated after the launch of PVer4 in M57.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The time it takes to initialize the SafeBrowsing storage backend, in
    milliseconds.
  </summary>
</histogram>

<histogram name="SB2.DatabaseSizeKilobytes" units="KB">
  <obsolete>
    Deprecated after the launch of PVer4 in M57.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    The size of one of the SafeBrowsing database file on disk in kilobytes,
    after a database update has occurred (once a few minutes after startup, and
    every thirty minutes or so thereafter).
  </summary>
</histogram>

<histogram name="SB2.DatabaseUpdateKilobytes" units="KB">
  <obsolete>
    Deprecated after the launch of PVer4 in M57.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The size of the update file before merging with the database file, in
    kilobytes.
  </summary>
</histogram>

<histogram name="SB2.Delay" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The time that SafeBrowsing actually delayed the browsing experience. It
    records the difference between the time when Chrome would have started
    reading the response for a URL and when the SafeBrowsing system completed
    its check of that URL. This is the sum of .Mainframe and .Subresource
    breakout metrics.
  </summary>
</histogram>

<histogram name="SB2.Delay.MainFrame" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The time that SafeBrowsing actually delayed the browsing experience. It
    records the difference between the time when Chrome would have started
    reading the response for a URL and when the SafeBrowsing system completed
    its check of that URL. Logged for main frame resources only.
  </summary>
</histogram>

<histogram name="SB2.Delay.Subresource" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The time that SafeBrowsing actually delayed the browsing experience. It
    records the difference between the time when Chrome would have started
    reading the response for a URL and when the SafeBrowsing system completed
    its check of that URL. Logged for non-main frame resources only.
  </summary>
</histogram>

<histogram name="SB2.DownloadBinhashAddsDeleted">
  <obsolete>
    Deleted in M-34 (February 2014).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Obsolete download BINHASH add chunks deleted.</summary>
</histogram>

<histogram name="SB2.DownloadBinhashSubsDeleted">
  <obsolete>
    Deleted in M-34 (February 2014).
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Obsolete download BINHASH sub chunks deleted.</summary>
</histogram>

<histogram name="SB2.DownloadChecks" enum="SB2DownloadChecks">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records results of SafeBrowsing download check, including both url check and
    downloaded file hash check.
  </summary>
</histogram>

<histogram name="SB2.DownloadDatabaseKilobytes" units="KB">
  <obsolete>
    Deprecated 12/2014. Moved to SB2.DatabaseSizeKilobytes.Download.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The size of the downloads SafeBrowsing database file on disk in kilobytes,
    after an update has occurred.
  </summary>
</histogram>

<histogram name="SB2.DownloadDuration" units="ms">
  <obsolete>
    Deprecated 01/2017. Was measuring the lifetime of a network request
    corresponding to a download, which may or may not correspond to the total
    duration of a download.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>The time it takes for a download to finish.</summary>
</histogram>

<histogram name="SB2.DownloadHashCheckDuration" units="ms">
  <obsolete>
    Deprecated after the launch of PVer4 in M57.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The time it takes for SafeBrowsing to check hash of a download file.
  </summary>
</histogram>

<histogram name="SB2.DownloadUrlCheckDuration" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>The time it takes for SafeBrowsing to check a download url.</summary>
</histogram>

<histogram name="SB2.DownloadUrlChecks" enum="SB2DownloadChecks">
  <obsolete>
    Deprecated 3/11/11, and replaced by SB2.DownloadChecks.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Records results of SafeBrowsing download url check.</summary>
</histogram>

<histogram name="SB2.ExtendedReportingIsEnabled" enum="BooleanEnabled">
  <obsolete>
    Deprecated 03/2015. Replaced by
    SecurityInterstitialInteraction::EXTENDED_REPORTING_IS_ENABLED.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    Whether the user has Safe Browsing extended reporting enabled at the time a
    Safe Browsing warning was dismissed. This tracks the fraction of all SB
    interstitials that had reporting enabled.
  </summary>
</histogram>

<histogram name="SB2.FailedUpdate">
  <obsolete>
    Deprecated, replaced by SB2.DatabaseFailure BROWSE_DB_UPDATE_FINISH.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The count of the number of times an update failed when being committed to
    the database.
  </summary>
</histogram>

<histogram name="SB2.FilterCheck" units="ms">
  <obsolete>
    Deprecated in favor of SafeBrowsing.V4GetPrefixMatches.TimeUs
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The time that it took to check a URL against our in-memory filter.
  </summary>
</histogram>

<histogram name="SB2.FilterKilobytes" units="KB">
  <obsolete>
    Deprecated 9/2012. No longer generated.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The size of the current bloom filter in kilobytes.</summary>
</histogram>

<histogram name="SB2.FilterLoad" enum="SB2FilterLoad">
  <obsolete>
    Deprecated after the launch of PVer4 in M57.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>Which filter file the database loaded from disk.</summary>
</histogram>

<histogram name="SB2.FilterMissing">
  <obsolete>
    Deprecated, replaced by SB2.DatabaseFailure FILTER_MISSING.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The count of the number of times we attempted to load the bloom filter file
    but it was missing.
  </summary>
</histogram>

<histogram name="SB2.FilterReadFail">
  <obsolete>
    Deprecated, replaced by SB2.DatabaseFailure FILTER_READ.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The count of the number of times we attempted to load the bloom filter file
    but failed while reading the file on disk.
  </summary>
</histogram>

<histogram name="SB2.FilterSize" units="bytes">
  <obsolete>
    Deprecated because it was exceeding the range. Replaced by
    SB2.FilterKilobytes.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The size of the current bloom filter.</summary>
</histogram>

<histogram name="SB2.FilterWriteFail">
  <obsolete>
    Deprecated, replaced by SB2.DatabaseFailure FILTER_WRITE.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The count of the number of times we attempted to save the bloom filter file
    but failed while writing the file to disk.
  </summary>
</histogram>

<histogram name="SB2.FormatEvent" enum="SB2FormatEvent">
  <obsolete>
    Deprecated after the launch of PVer4 in M57.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Collection of boolean events for SafeBrowsingFileStore instances. Includes
    corruptions detected, old versions detected, and various failures detected.
  </summary>
</histogram>

<histogram name="SB2.GetChunkResponseOrErrorCode"
    enum="CombinedHttpResponseAndNetErrorCode">
  <obsolete>
    Deprecated after the launch of PVer4 in M57.
  </obsolete>
  <owner>vakh@google.com</owner>
  <summary>
    Response or error codes from the SafeBrowsing service. Logged after a
    GetChunk request finishes to capture the response code or error code for
    that call. Split out from SB2.GetHashErrorResponseOrErrorCode in M49.
  </summary>
</histogram>

<histogram name="SB2.GetHash200">
  <obsolete>
    Deprecated in favor of SB2.GetHashResult STATUS_200.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of GetHash requests that returned data (valid requests).
  </summary>
</histogram>

<histogram name="SB2.GetHash204">
  <obsolete>
    Deprecated in favor of SB2.GetHashResult STATUS_204.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of GetHash requests that returned empty data (false positives).
  </summary>
</histogram>

<histogram name="SB2.GetHashResponseOrErrorCode"
    enum="CombinedHttpResponseAndNetErrorCode">
  <owner>vakh@google.com</owner>
  <summary>
    Response or error codes from the SafeBrowsing service. Logged after a
    GetHash request finishes to capture the response code or error code for that
    call. Split out from SB2.GetHashErrorResponseOrErrorCode in M49.
  </summary>
</histogram>

<histogram name="SB2.GetHashResult" enum="SB2GetHashResult">
  <obsolete>
    Deprecated after the launch of PVer4 in M57.
  </obsolete>
  <owner>mattm@chromium.org</owner>
  <summary>
    Track return status from GetHash attempts (STATUS_200, STATUS_204,
    NETWORK_ERROR, HTTP_ERROR, BACKOFF_ERROR), whether parsing a 200 result
    failed (PARSE_ERROR), and dispensation of returned values (EMPTY, HIT,
    MISS). EMPTY means the response had no full hashes, and should contain all
    of the 204 responses plus all *_ERROR cases. HIT means that one of the full
    hashes matched. MISS means that none of the hashes matched (there was a
    prefix collision). (PARSE_ERROR, NETWORK_ERROR, HTTP_ERROR, and
    BACKOFF_ERROR were added in M36.)
  </summary>
</histogram>

<histogram name="SB2.GetHashResultDownload" enum="SB2GetHashResult">
  <obsolete>
    Deprecated after the launch of PVer4 in M57.
  </obsolete>
  <owner>mattm@chromium.org</owner>
  <summary>
    Track return status from GetHash attempts (STATUS_200, STATUS_204,
    NETWORK_ERROR, HTTP_ERROR, BACKOFF_ERROR), whether parsing a 200 result
    failed (PARSE_ERROR), and dispensation of returned values (EMPTY, HIT,
    MISS). EMPTY means the response had no full hashes, and should contain all
    of the 204 responses plus all *_ERROR cases. HIT means that one of the full
    hashes matched. MISS means that none of the hashes matched (there was a
    prefix collision). (PARSE_ERROR, NETWORK_ERROR, HTTP_ERROR, and
    BACKOFF_ERROR were added in M36.)
  </summary>
</histogram>

<histogram name="SB2.GetHashServerMiss">
  <obsolete>
    Deprecated in favor of SB2.GetHashResult FULL_HASH_* and
    SB2.BloomFilterFalsePositives. It is unclear if this histogram ever reported
    useful data.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of GetHash requests returning full hashes that didn't match the
    URL that initiated the request.
  </summary>
</histogram>

<histogram name="SB2.HandleCorrupt">
  <obsolete>
    Deprecated, replaced by SB2.DatabaseFailure CORRUPT.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The count of the number of times a database was found corrupt and reset.
  </summary>
</histogram>

<histogram name="SB2.InterstitialAction" enum="SB2InterstitialAction">
  <obsolete>
    Deprecated, replaced by: interstitial.malware.* and interstitial.phishing.*.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    Track number of times Safe Browsing interstitials have been shown, and how
    many times they have been clicked through or not.
  </summary>
</histogram>

<histogram name="SB2.InterstitialActionDetails"
    enum="SB2InterstitialActionDetails">
  <obsolete>
    Deprecated, replaced by: interstitial.malware.* and interstitial.phishing.*.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    Tracks the click-through rate for specific cases of the interstitial.
  </summary>
</histogram>

<histogram name="SB2.MalwareInterstitialTimeClosed" units="ms">
  <obsolete>
    Deprecated 9/2014.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    The time between when we show the SafeBrowsing malware interstitial and the
    user navigating away by for example, closing the tab, clicking the browser
    back button or typing another URL in the address bar.
  </summary>
</histogram>

<histogram name="SB2.MalwareInterstitialTimeDiagnostic" units="ms">
  <obsolete>
    Deprecated 9/2014.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    The time between when we show the SafeBrowsing malware interstitial and the
    user clicking on diagnostic page link.
  </summary>
</histogram>

<histogram name="SB2.MalwareInterstitialTimeExpandedSeeMore" units="ms">
  <obsolete>
    Deprecated 9/2014.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    The time between when we show the SafeBrowsing malware interstitial and the
    user expanding the &quot;see more info&quot; section of the page. (Only
    applies to field trial version 2 of the interstitial.)
  </summary>
</histogram>

<histogram name="SB2.MalwareInterstitialTimeLearnMore" units="ms">
  <obsolete>
    Deprecated 9/2014.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    The time between when we show the SafeBrowsing malware interstitial and the
    user clicking on the learn more about malware link.
  </summary>
</histogram>

<histogram name="SB2.MalwareInterstitialTimePrivacyPolicy" units="ms">
  <obsolete>
    Deprecated 9/2014.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    The time between when we show the SafeBrowsing malware interstitial and the
    user clicking on the privacy policy link.
  </summary>
</histogram>

<histogram name="SB2.MalwareInterstitialTimeProceed" units="ms">
  <obsolete>
    Deprecated 9/2014.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    The time between when we show the SafeBrowsing malware interstitial and the
    user clicking on the proceed link.
  </summary>
</histogram>

<histogram name="SB2.MalwareInterstitialTimeTakeMeBack" units="ms">
  <obsolete>
    Deprecated 9/2014.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    The time between when we show the SafeBrowsing malware interstitial and the
    user clicking on the big green back button.
  </summary>
</histogram>

<histogram name="SB2.Network" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The time that it took to receive a response from the Google SafeBrowsing
    servers for a GetHash request.
  </summary>
</histogram>

<histogram name="SB2.NoUserActionResourceLoadingDelay" units="ms">
  <owner>yzshen@chromium.org</owner>
  <summary>
    The total delay, in milliseconds, caused by SafeBrowsing for a resource
    load, if the SafeBrowsing interstitial page is not shown and therefore no
    user action is involved. At most one value is reported for each resource
    load. If SafeBrowsing causes delays at different stages of a load, the sum
    of all the delays will be reported.
  </summary>
</histogram>

<histogram name="SB2.OldDatabaseKilobytes" units="KB">
  <obsolete>
    Deprecated 7/2014. No longer generated.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>Size of v1 database deleted from client profile.</summary>
</histogram>

<histogram name="SB2.OutShardShifts">
  <obsolete>
    Deprecated after the launch of PVer4 in M57.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Indicates how sharded safe-browsing on-disk stores are. Values like 0 to 4
    are reasonable.
  </summary>
</histogram>

<histogram name="SB2.PhishingInterstitialTimeClosed" units="ms">
  <owner>felt@chromium.org</owner>
  <summary>
    The time between when we show the SafeBrowsing phishing interstitial and the
    user navigating away by for example, closing the tab, clicking the browser
    back button or typing another URL in the address bar.
  </summary>
</histogram>

<histogram name="SB2.PhishingInterstitialTimeExpandedSeeMore" units="ms">
  <owner>felt@chromium.org</owner>
  <summary>
    The time between when we show the SafeBrowsing phishing interstitial and the
    user expanding the &quot;see more info&quot; section of the page. (Only
    applies to field trial version 2 of the interstitial.)
  </summary>
</histogram>

<histogram name="SB2.PhishingInterstitialTimeLearnMore" units="ms">
  <owner>felt@chromium.org</owner>
  <summary>
    The time between when we show the SafeBrowsing phishing interstitial and the
    user clicking on the learn more link.
  </summary>
</histogram>

<histogram name="SB2.PhishingInterstitialTimeProceed" units="ms">
  <owner>felt@chromium.org</owner>
  <summary>
    The time between when we show the SafeBrowsing phishing interstitial and the
    user clicking on the proceed link.
  </summary>
</histogram>

<histogram name="SB2.PhishingInterstitialTimeReportError" units="ms">
  <owner>felt@chromium.org</owner>
  <summary>
    The time between when we show the SafeBrowsing phishing interstitial and the
    user clicking on the report error link.
  </summary>
</histogram>

<histogram name="SB2.PhishingInterstitialTimeTakeMeBack" units="ms">
  <owner>felt@chromium.org</owner>
  <summary>
    The time between when we show the SafeBrowsing phishing interstitial and the
    user clicking on the big green back button.
  </summary>
</histogram>

<histogram name="SB2.PrefixSetBitsPerPrefix" units="bits">
  <obsolete>
    Deprecated in M58 (Aug 2017). No longer generated.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The size of the PrefixSet storage in bits, divided by the number of prefixes
    represented. Should almost always be 16.
  </summary>
</histogram>

<histogram name="SB2.PrefixSetEvent" enum="SB2PrefixSetEvent">
  <obsolete>
    Deprecated 9/2012. No longer generated, BloomFilter being removed.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Records how well the PrefixSet implementation matches the BloomFilter
    implementation.
  </summary>
</histogram>

<histogram name="SB2.PrefixSetKilobytes" units="KB">
  <obsolete>
    Deprecated 01/2014. Replaced by suffixed SB2.PrefixSetSizeKilobytes.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>The size of one of the PrefixSet files in kilobytes.</summary>
</histogram>

<histogram name="SB2.PrefixSetLoad" units="ms">
  <obsolete>
    Deprecated in M58 (Aug 2017). No longer generated.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>Time to load one of the PrefixSet files.</summary>
</histogram>

<histogram name="SB2.PrefixSetRestoredExcess">
  <obsolete>
    Deprecated 9/2012. No longer generated.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    For debugging PrefixSet. How many extra results GetPrefixes returns.
  </summary>
</histogram>

<histogram name="SB2.PrefixSetRestoredShortfall">
  <obsolete>
    Deprecated 9/2012. No longer generated.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    For debugging PrefixSet. How many fewer results GetPrefixes returns.
  </summary>
</histogram>

<histogram name="SB2.PrefixSetSizeKilobytes" units="KB">
  <obsolete>
    Deprecated in M58 (Aug 2017). No longer generated.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The size of one of the PrefixSet files in kilobytes. Logged after a database
    update has occurred and the PrefixSet has been flushed to disk (once a few
    minutes after startup, and every thirty minutes or so thereafter).
  </summary>
</histogram>

<histogram name="SB2.PrefixSetUnsortedDelta">
  <obsolete>
    Deprecated 9/2012. No longer generated.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    For debugging PrefixSet. How far unsorted deltas are from expected value.
  </summary>
</histogram>

<histogram name="SB2.PrefixSetUnsortedDifference">
  <obsolete>
    Deprecated 9/2012. No longer generated.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    For debugging PrefixSet. Distance of unsorted elements from expected
    location.
  </summary>
</histogram>

<histogram name="SB2.PrefixSetUnsortedPercent" units="%">
  <obsolete>
    Deprecated 9/2012. No longer generated.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    For debugging PrefixSet. How far into the results unsorted elements were
    found. Interesting values would be 0%, 50%, or 100%.
  </summary>
</histogram>

<histogram name="SB2.PrefixSetUnsortedSize">
  <obsolete>
    Deprecated 9/2012. No longer generated.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    For debugging PrefixSet. Size of unsorted sets. To see if there is a problem
    with a particular size of dataset.
  </summary>
</histogram>

<histogram name="SB2.PrefixSetVersionRead">
  <obsolete>
    Deprecated in M58 (Aug 2017). No longer generated.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>Version read from one of the PrefixSet files.</summary>
</histogram>

<histogram name="SB2.PrefixSetWrite" units="ms">
  <obsolete>
    Deprecated in M58 (Aug 2017). No longer generated.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>Time to store one of the PrefixSet files.</summary>
</histogram>

<histogram name="SB2.RemoteCall.CanCheckUrl" enum="BooleanCanCheckUrl">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Count of how many URLs were actually checked vs skipped via
    RemoteSafeBrowsingDatabaseManager because the scheme is not supported by
    Safe Browsing. Incremented each time a resource load is initiated.
  </summary>
</histogram>

<histogram name="SB2.RemoteCall.CanUseLocalBlacklists"
    enum="SB2RemoteCallCanUseLocalBlacklists">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Indicates whether the local Safe Browsing blacklists can be used on this
    Android device. Logged once on first URL check request.
  </summary>
</histogram>

<histogram name="SB2.RemoteCall.CheckDelta" units="microseconds">
  <owner>csharrison@chromium.org</owner>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The microseconds between sending the Safe Browsing API call and receiving
    the response. Logged in java code and does not include any thread hops or
    extra work. Note that this does include task queue time to respond to the
    IPC (and that queue time is often non-trivial).

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="SB2.RemoteCall.CheckDispatchTime" units="microseconds">
  <obsolete>
    Deprecated Oct 2018
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Wall time in microseconds for calling
    Java_SafeBrowsingApiBridge_startUriLookup. Logged at every Safe Browsing
    check on Android.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="SB2.RemoteCall.ChecksPending" units="calls">
  <obsolete>
    Deprecated in M64 (Nov 2017). No longer generated.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Number of outstanding calls for URLs getting classified through
    RemoteSafeBrowsingDatabaseManager. The size of the queue is logged before
    initiating each request.
  </summary>
</histogram>

<histogram name="SB2.RemoteCall.Elapsed" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Latency of URL-classification API calls from Chrome via
    RemoteSafeBrowsingDatabaseManager, logged per-request. This includes the
    time to go through JNI, check the URL, and return the result and includes
    several thread hops betwetween IO and UI threads. The resource-load will not
    necessarily be delayed this much (see SB2.Delay for that).
  </summary>
</histogram>

<histogram name="SB2.RemoteCall.InternalErrorStatusCode">
  <obsolete>
    No longer generated. Replaced by SB2.RemoteCall.InternalErrorStatusCode2
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The status code provided by GmsCore if it is unable to respond to a URL
    check request due to incorrect initialization, not being ready, etc. Logged
    on each URL check that hits the internal error condition. The total number
    of these should add up to the INTERNAL_ERROR reports under
    SB2.RemoteCall.Result.
  </summary>
</histogram>

<histogram name="SB2.RemoteCall.InternalErrorStatusCode2"
    enum="GooglePlayServicesConnectionResult">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The status code provided by GmsCore if it is unable to respond to a URL
    check request due to incorrect initialization, not being ready, etc. Logged
    on each URL check that hits the internal error condition. The total number
    of these should add up to the INTERNAL_ERROR reports under
    SB2.RemoteCall.Result.
  </summary>
</histogram>

<histogram name="SB2.RemoteCall.LocalBlacklistsAgeInMs" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Indicates the time since the local blacklists were successfully updated
    last. Logged each time the verdict of local blacklists lookup is stale or
    possibly unsafe, if the local blacklists feature is enabled (i.e.
    SB2.RemoteCall.CanUseLocalBlacklists == ENABLED)
  </summary>
</histogram>

<histogram name="SB2.RemoteCall.LocalBlacklistsLookupResult"
    enum="SB2RemoteCallLocalBlacklistsLookupResult">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Indicates the result of local Safe Browsing blacklist lookup on Android.
    Logged for each URL lookup, if the local blacklists feature is enabled (i.e.
    SB2.RemoteCall.CanUseLocalBlacklists == ENABLED)
  </summary>
</histogram>

<histogram name="SB2.RemoteCall.LocalBlacklistsUpdateSucceeded"
    enum="BooleanSuccess">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Indicates the result of local blacklists' update. Logged each time an update
    of local blacklists is attempted, if the local blacklists feature is enabled
    (i.e. SB2.RemoteCall.CanUseLocalBlacklists == ENABLED)
  </summary>
</histogram>

<histogram name="SB2.RemoteCall.Result" enum="SB2RemoteCallResult">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Result of URL-classification API calls from Chrome via
    RemoteSafeBrowsingApiHandler. Logged after each URL is judged safe/not-safe,
    or hits a deadline. The INTERNAL_ERROR cases are further classified under
    SB2.RemoteCall.InternalErrorStatusCode.
  </summary>
</histogram>

<histogram name="SB2.RemoteCall.ThreatSubType.PotentiallyHarmfulApp"
    enum="SB2RemoteCallThreatSubType">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The threat sub-type annotated for URLs classified as PHA via remote calls
    through RemoteSafeBrowsingApiHandler. &quot;PHA&quot; classifications
    generate &quot;malware&quot; interstitials.
  </summary>
</histogram>

<histogram name="SB2.RemoteCall.ThreatSubType.SocialEngineering"
    enum="SB2RemoteCallThreatSubType">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The threat sub-type annotated returned for URLs classified as social
    engineering via remote calls through RemoteSafeBrowsingApiHandler.
    &quot;Social engineering&quot; classifications generate &quot;phishing&quot;
    interstitials.
  </summary>
</histogram>

<histogram name="SB2.ReportingIsEnabled" enum="BooleanEnabled">
  <obsolete>
    Deprecated 06/2014. Replaced by SB2.ExtendedReportingIsEnabled.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Whether the user has Safe Browsing extended reporting enabled at the time a
    Safe Browsing warning was dismissed. This tracks the fraction of all SB
    interstitials that had reporting enabled.
  </summary>
</histogram>

<histogram name="SB2.ResourceTypes" enum="ContentResourceType">
  <obsolete>
    Superseded by SB2.ResourceTypes2 in December 2015.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Resource types of resources that were inspected by Safe Browsing in the
    SafeBrowsingResourceThrottle.
  </summary>
</histogram>

<histogram name="SB2.ResourceTypes2" enum="ContentResourceType2">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Resource types of resources that were inspected by Safe Browsing in the
    SafeBrowsingResourceThrottle.
  </summary>
</histogram>

<histogram name="SB2.SetExtendedReportingEnabled" enum="BooleanEnabled">
  <obsolete>
    Deprecated 03/2015. Replaced by
    SecurityInterstitialInteraction::SET_EXTENDED_REPORTING_ENABLED.
  </obsolete>
  <owner>felt@chromium.org</owner>
  <summary>
    Tracks changes to the Safe Browsing extended reporting opt-in which is shown
    in the Safe Browsing interstitial.
  </summary>
</histogram>

<histogram name="SB2.SetReportingEnabled" enum="BooleanEnabled">
  <obsolete>
    Deprecated 06/2014. Replaced by SB2.SetExtendedReportingEnabled.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Tracks changes to the Safe Browsing extended reporting opt-in which is shown
    in the Safe Browsing interstitial.
  </summary>
</histogram>

<histogram name="SB2.SideEffectFreePrefixSetWrite" units="ms">
  <obsolete>
    Deprecated 12/2014. Merged into SB2.PrefixSetWrite.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Time to store the Side Effect Free Whitelist PrefixSet file. Note: this
    histogram was intended to be stored as
    SB2.SideEffectFreeWhitelistPrefixSetWrite but was actually reported as
    SB2.SideEffectFreePrefixSetWrite from its inception to its deprecation...
  </summary>
</histogram>

<histogram name="SB2.SideEffectFreeWhitelistDatabaseKilobytes" units="KB">
  <obsolete>
    Deprecated 12/2014. Moved to
    SB2.DatabaseSizeKilobytes.SideEffectFreeWhitelist.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The size of the Side Effect Free Whitelist SaafeBrowsing database file on
    disk in kilobytes, after an update has occurred.
  </summary>
</histogram>

<histogram name="SB2.SideEffectFreeWhitelistPrefixSetKilobytes" units="KB">
  <obsolete>
    Deprecated 12/2014. Moved to
    SB2.PrefixSetSizeKilobytes.SideEffectFreeWhitelist.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The size of the Side Effect Free Whitelist PrefixSet file in kilobytes,
    after an udpate has occurred.
  </summary>
</histogram>

<histogram name="SB2.SideEffectFreeWhitelistPrefixSetLoad" units="ms">
  <obsolete>
    Deprecated 12/2014. Merged into SB2.PrefixSetLoad.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>Time to load the Side Effect Free Whitelist PrefixSet file.</summary>
</histogram>

<histogram name="SB2.SideEffectFreeWhitelistStatus"
    enum="SB2SideEffectFreeWhitelistStatus">
  <obsolete>
    Deprecated 4/2015.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>The instantiation status of the SideEffectFreeWhitelist.</summary>
</histogram>

<histogram name="SB2.StoreVersionRead">
  <obsolete>
    Deprecated after the launch of PVer4 in M57.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>Version read from the store file.</summary>
</histogram>

<histogram name="SB2.SubPrefixes">
  <obsolete>
    Deprecated in M58 (Aug 2017). No longer generated.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The number of sub prefixes stored in the database after the last update.
  </summary>
</histogram>

<histogram name="SB2.Update" units="ms">
  <obsolete>
    Deprecated in M58 (Aug 2017). No longer generated.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The time from the receipt of the update request to the receipt of the final
    update chunk.
  </summary>
</histogram>

<histogram name="SB2.UpdateRequestSize" units="bytes">
  <obsolete>
    Deprecated in M58 (Aug 2017). No longer generated.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>The payload size of update requests to the server.</summary>
</histogram>

<histogram name="SB2.UpdateResult" enum="SB2UpdateResult">
  <obsolete>
    Deprecated in M58 (Aug 2017). No longer generated.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>Result from trying to update the SafeBrowsing data.</summary>
</histogram>

<histogram name="SB2.UpdateSize" units="bytes">
  <obsolete>
    Deprecated in M58 (Aug 2017). No longer generated.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>The size of all the chunk URLs in an update response.</summary>
</histogram>

<histogram name="SB2.UpdateSizeBackground" units="bytes">
  <obsolete>
    Was used for an experiment in late 2014.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The size of all the chunk URLs in an update response when Chrome is in the
    background.
  </summary>
</histogram>

<histogram name="SB2.UpdateSizeForeground" units="bytes">
  <obsolete>
    Was used for an experiment in late 2014.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The size of all the chunk URLs in an update response when Chrome is in the
    foreground.
  </summary>
</histogram>

<histogram name="SB2.UpdateUrls">
  <obsolete>
    Deprecated in M58 (Aug 2017). No longer generated.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>The number of chunk URLs in an update response.</summary>
</histogram>

<histogram name="SB2.VolunteerPrefixesRemoved">
  <obsolete>
    The operation this is tracking has been deleted as of 09/2014.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Older versions of the safe-browsing code incorrectly added additional
    SBPrefix items when receiving full hashes. This caused errors when
    calculating when to send gethash requests to the server. An additional pass
    over the data has been added to remove the excess prefixes. This histogram
    tracks progress of that code for purposes of informing a decision on when to
    remove the additional pass. See http://crbug.com/361248 .
  </summary>
</histogram>

<histogram name="SBClientDownload.ArchivedArchiveExtensions"
    enum="SBClientDownloadExtensions">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Records a histogram of archive file types that were found while examining a
    downloaded ZIP file. Each archive file type in a single ZIP file is recorded
    at most once. The relative incidence rate of each filetype in this histogram
    should indicate the probability of finding that file type in a ZIP file
    given that that ZIP file contains an archive file.
  </summary>
</histogram>

<histogram name="SBClientDownload.CheckDownloadStats"
    enum="SBClientDownloadCheckDownloadStats">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>mattm@chromium.org</owner>
  <summary>
    Records a histogram of the reason why downloads are marked as being
    malicious or clean by the improved SafeBrowsing binary download protection.
    Note that UNSUPPORTED_URL_SCHEME was split out of the INVALID_URL bucket in
    M41. The NOT_BINARY_FILE check was moved before the UNSUPPORTED_URL_SCHEME
    check in M42. The WHITELISTED_URL check was moved to before NOT_BINARY_FILE
    in M62.
  </summary>
</histogram>

<histogram name="SBClientDownload.CheckWhitelistResult"
    enum="WhitelistedDownloadType">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    For each download supported by the SafeBrowsing download protection service,
    records if it matches a certain whitelist (e.g. matches URL whitelist,
    matches signature whitelist, or does not match any whitelists).
  </summary>
</histogram>

<histogram name="SBClientDownload.DmgFileArchivedBinariesCount" units="count">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The original number of archived_binaries found in a DMG-like file when it's
    scanned, if at least one is found. The actual number sent in the download
    request may be capped below this value.
  </summary>
</histogram>

<histogram name="SBClientDownload.DmgFileFailureByType"
    enum="SBClientDownloadExtensions">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Counts of DMG-like file types that failed to be successfully analyzed by the
    SafeBrowsing download service.
  </summary>
</histogram>

<histogram name="SBClientDownload.DmgFileHasExecutable" enum="Boolean">
  <obsolete>
    Replaced by SBClientDownload.DmgFileHas[No]ExecutableByType in M51.
  </obsolete>
  <owner>rsesek@chromium.org</owner>
  <summary>
    For each DMG file analyzed by the SafeBrowsing download service, records if
    the DMG contained an executable file.
  </summary>
</histogram>

<histogram name="SBClientDownload.DmgFileHasExecutableByType"
    enum="SBClientDownloadExtensions">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Counts of DMG-like file types which were analyzed by the SafeBrowsing
    download service that contained an executable file.
  </summary>
</histogram>

<histogram name="SBClientDownload.DmgFileHasNoExecutableByType"
    enum="SBClientDownloadExtensions">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Counts of DMG-like file types which were analyzed by the SafeBrowsing
    download service that did NOT contain an executable file.
  </summary>
</histogram>

<histogram name="SBClientDownload.DmgFileSuccess" enum="BooleanSuccess">
  <obsolete>
    Replaced by SBClientDownload.DmgFile{Success,Failure}ByType in M51.
  </obsolete>
  <owner>rsesek@chromium.org</owner>
  <summary>
    For each DMG file analyzed by the SafeBrowsing download service, records
    true if the analysis was successful, or false if there was an error
    analyzing the file.
  </summary>
</histogram>

<histogram name="SBClientDownload.DmgFileSuccessByType"
    enum="SBClientDownloadExtensions">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Counts of DMG-like file types that were successfully analyzed by the
    SafeBrowsing download service.
  </summary>
</histogram>

<histogram name="SBClientDownload.DmgTooBigToUnpack" enum="Boolean">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records whether a given DMG download was too big to unpack, as specified by
    configuration option set in SafeBrowsing download service. This metric is
    logged each time the user downloads a DMG file on Mac.
  </summary>
</histogram>

<histogram name="SBClientDownload.DownloadExtensions"
    enum="SBClientDownloadExtensions">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>mattm@chromium.org</owner>
  <summary>
    Records a histogram of how often users download a file with a file extension
    that is possibly dangerous (e.g., exe, class).
  </summary>
</histogram>

<histogram name="SBClientDownload.DownloadFileHasDetachedSignatures"
    enum="Boolean">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    A Mac-only metric that records whether a given download contains a detached
    code signature file. This metric is logged before Chrome sends SafeBrowsing
    download pings.
  </summary>
</histogram>

<histogram name="SBClientDownload.DownloadFileHasDmgSignature" enum="Boolean">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    A Mac-only metric that records whether a given download file is a
    cryptographically signed DMG archive. This metric is logged before Chrome
    sends SafeBrowsing download pings.
  </summary>
</histogram>

<histogram
    name="SBClientDownload.DownloadFileWithoutDiskImageExtensionHasKolySignature"
    enum="Boolean">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records whether download files without an Apple disk image file extension
    have a 'koly' signature. This can be used to identify distribution of disk
    image files to Mac users without simply relying on file extension. This
    metric is logged before Chrome sends SafeBrowsing download pings.
  </summary>
</histogram>

<histogram name="SBClientDownload.DownloadRequestDuration" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>mattm@chromium.org</owner>
  <summary>
    Records the total time it takes for the SafeBrowsing download service to
    check whether the content of a download is malicious or not, including file
    feature extraction, whitelist checking, and server ping. This histogram only
    includes checks that sent a ping to the SafeBrowsing server. It does not
    include requests that were cancelled, but does include requests that
    received a bad response.
  </summary>
</histogram>

<histogram name="SBClientDownload.DownloadRequestNetError" enum="NetErrorCodes">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>mattm@chromium.org</owner>
  <summary>
    The net error code for all CheckClientDownloadRequest URLFetchers.
  </summary>
</histogram>

<histogram name="SBClientDownload.DownloadRequestNetworkDuration" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>mattm@chromium.org</owner>
  <summary>
    Records the time it takes for the SafeBrowsing download service ping. It is
    not recorded for requests that were cancelled.
  </summary>
</histogram>

<histogram name="SBClientDownload.DownloadRequestNetworkStats"
    enum="SBClientDownloadCheckDownloadStats">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>mattm@chromium.org</owner>
  <summary>
    Records the results of SafeBrowsing binary download checks which caused a
    server ping.
  </summary>
</histogram>

<histogram name="SBClientDownload.DownloadRequestPayloadSize" units="bytes">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>mattm@chromium.org</owner>
  <summary>
    The size of the upload data for CheckClientDownloadRequest URLFetchers.
  </summary>
</histogram>

<histogram name="SBClientDownload.DownloadRequestResponseCode"
    enum="HttpResponseCode">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>mattm@chromium.org</owner>
  <summary>
    For CheckClientDownloadRequest URLFetchers with successful status, the HTTP
    response code that was received.
  </summary>
</histogram>

<histogram name="SBClientDownload.DownloadRequestTimeoutDuration" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>mattm@chromium.org</owner>
  <summary>
    Records the portion of the SafeBrowsing download service check starting with
    the point CheckClientDownloadRequest::StartTimeout() is called. It is
    recorded regardless if a ping was sent or not. It is not recorded for
    requests that were cancelled.
  </summary>
</histogram>

<histogram name="SBClientDownload.DownloadRequestTimeoutStats"
    enum="SBClientDownloadCheckDownloadStats">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>mattm@chromium.org</owner>
  <summary>
    For SafeBrowsing binary download checks which reached the
    CheckClientDownloadRequest::StartTimeout() call, records the final result
    (once the check finishes or is cancelled).
  </summary>
</histogram>

<histogram name="SBClientDownload.ExtractDmgFeaturesTime" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>rsesek@chromium.org</owner>
  <summary>
    Records the time it takes for the SafeBrowsing download service to extract
    info from a downloaded DMG file.
  </summary>
</histogram>

<histogram name="SBClientDownload.ExtractImageHeadersTime" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>grt@chromium.org</owner>
  <summary>
    Records the time it takes for the SafeBrowsing download service to extract
    image headers from a downloaded binary.
  </summary>
</histogram>

<histogram name="SBClientDownload.ExtractRarFeaturesTime" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the time it takes for the SafeBrowsing download service to extract
    info from a downloaded rar file.
  </summary>
</histogram>

<histogram name="SBClientDownload.ExtractSignatureFeaturesTime" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>mattm@chromium.org</owner>
  <summary>
    Records the time it takes for the SafeBrowsing download service to extract
    signature info from a downloaded binary. This includes both unsigned and
    signed binaries.
  </summary>
</histogram>

<histogram name="SBClientDownload.ExtractZipFeaturesTime" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>mattm@chromium.org</owner>
  <summary>
    Records the time it takes for the SafeBrowsing download service to extract
    info from a downloaded zip file.
  </summary>
</histogram>

<histogram name="SBClientDownload.PPAPIDownloadRequest.RequestDuration"
    units="ms">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>dtrainor@chromium.org</owner>
  <summary>Time taken to complete a PPAPIDownloadRequest.</summary>
</histogram>

<histogram name="SBClientDownload.PPAPIDownloadRequest.RequestOutcome"
    enum="SBClientDownloadPPAPIDownloadRequestOutcome">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>dtrainor@chromium.org</owner>
  <summary>
    Outcome of running CheckPPAPIDownloadRequest. Most failure modes cause an
    UNKNOWN result to be returned to the caller. If the attempt succeeds, the
    result returned to the caller is based on the SafeBrowsing resopnse. The
    final result returned is counted in
    SBClientDownload.PPAPIDownloadRequest.Result.
  </summary>
</histogram>

<histogram name="SBClientDownload.PPAPIDownloadRequest.Result"
    enum="SBClientDownloadCheckResult">
  <obsolete>
    Removed in 08/2018.
  </obsolete>
  <owner>dtrainor@chromium.org</owner>
  <summary>Result returned to the caller of CheckPPAPIDownloadRequest.</summary>
</histogram>

<histogram name="SBClientDownload.RarFileArchivedBinariesCount" units="count">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The original number of archived_binaries found in a rar-like file when it's
    scanned, if at least one is found. The actual number sent in the download
    request may be capped below this value.
  </summary>
</histogram>

<histogram name="SBClientDownload.RarFileHasArchiveButNoExecutable"
    enum="Boolean">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    For each rar file analyzed by the SafeBrowsing download service, records
    true if the rar did not contain any executables but did contain another
    archive file, false otherwise.
  </summary>
</histogram>

<histogram name="SBClientDownload.RarFileHasExecutable" enum="Boolean">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    For each rar file analyzed by the SafeBrowsing download service, records if
    the rar contained an executable file.
  </summary>
</histogram>

<histogram name="SBClientDownload.RarFileSuccess" enum="BooleanSuccess">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    For each rar file analyzed by the SafeBrowsing download service, records if
    the unpacking was 100% successful.
  </summary>
</histogram>

<histogram name="SBClientDownload.RarOpenSuccess" enum="BooleanSuccess">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    For each rar file analyzed by the SafeBrowsing download service, records if
    the file could be opened. This should be close to 100% success because the
    library doesn't actually open the file; it is handed an open file handle and
    the Open() function call sets that as the file handle to use.
  </summary>
</histogram>

<histogram name="SBClientDownload.RarValidArchive" enum="BooleanSuccess">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    For each rar file analyzed by the SafeBrowsing download service, records if
    the unrar library considers this file a valid RAR archive. It includes
    checking the following, and more: magic number is present, valid RAR version
    format can be parsed, headers are valid, etc.
  </summary>
</histogram>

<histogram name="SBClientDownload.SignedBinaryDownload"
    enum="SBClientDownloadIsSignedBinary">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>mattm@chromium.org</owner>
  <summary>
    Records the number of signed vs. unsigned executables that are downloaded.
  </summary>
</histogram>

<histogram name="SBClientDownload.SignedOrWhitelistedDownload">
  <obsolete>
    Deprecated in Chrome 50. Replaced by
    SBClientDownload.CheckWhitelistResult.*.
  </obsolete>
  <owner>mattm@chromium.org</owner>
  <summary>
    Counter which is incremented whenever an executable is downloaded which is
    either signed or whose URL matches the download whitelist.
  </summary>
</histogram>

<histogram name="SBClientDownload.UnsupportedScheme"
    enum="SBClientDownloadExtensions">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records how often different file extensions are downloaded with schemes that
    aren't supported by Safe Browsing (e.g. ftp, gopher, content, cid, etc).
  </summary>
</histogram>

<histogram name="SBClientDownload.ZipFileArchivedBinariesCount" units="count">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The original number of archived_binaries found in a zip-like file when it's
    scanned, if at least one is found. The actual number sent in the download
    request may be capped below this value.
  </summary>
</histogram>

<histogram name="SBClientDownload.ZipFileContainsAppDirectory" enum="Boolean">
  <obsolete>
    Removed in 12/2018 during a refactoring. The data was not being actively
    used.
  </obsolete>
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    A Mac-only metric that records whether a downloaded zip file contains an
    .app directory, signifying the presence of installable software.
  </summary>
</histogram>

<histogram name="SBClientDownload.ZipFileFailureByType"
    enum="SBClientDownloadExtensions">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Counts of ZIP-like file types that failed to be successfully analyzed by the
    SafeBrowsing download service.
  </summary>
</histogram>

<histogram name="SBClientDownload.ZipFileHasArchiveButNoExecutable"
    enum="Boolean">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>mattm@chromium.org</owner>
  <summary>
    For each zip file analyzed by the SafeBrowsing download service, records
    true if the zip did not contain any executables but did contain another zip
    file, false otherwise.
  </summary>
</histogram>

<histogram name="SBClientDownload.ZipFileHasExecutable" enum="Boolean">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>mattm@chromium.org</owner>
  <summary>
    For each zip file analyzed by the SafeBrowsing download service, records if
    the zip contained an executable file.
  </summary>
</histogram>

<histogram name="SBClientDownload.ZipFileLocalFileHeadersSkipped" units="count"
    expires_after="M75">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The number of Local File Headers (identified by their magic number) present
    in the file, that were not extracted during ZIP inspection. A non-zero entry
    implies some potential files were not extracted. That could be intended, or
    it could indicate ZIPs with platform-dependent extraction. This metric is
    sampled with small probability during each ZIP download.
  </summary>
</histogram>

<histogram name="SBClientDownload.ZipFileSuccess" enum="BooleanSuccess">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    For each zip file analyzed by the SafeBrowsing download service, records if
    the unpacking was 100% successful.
  </summary>
</histogram>

<histogram name="SBClientDownload.ZipFileSuccessByType"
    enum="SBClientDownloadExtensions">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Counts of ZIP-like file types were successfully analyzed by the SafeBrowsing
    download service.
  </summary>
</histogram>

<histogram name="SBClientMalware.ClassificationStart" enum="BooleanHit">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The number of pages that we could have possibly classified (essentially the
    number of top page navigations by users with SBClientMalware enabled). The
    name is slightly misleading as it is recorded before
    &quot;Preclassification&quot; happens.
  </summary>
</histogram>

<histogram name="SBClientMalware.IPBlacklistRequestNetError"
    enum="NetErrorCodes">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The net error code for all ClientMalwareRequest URLFetchers.
  </summary>
</histogram>

<histogram name="SBClientMalware.IPBlacklistRequestPayloadSize" units="bytes">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The size of the upload data for ClientMalwareRequest URLFetchers.
  </summary>
</histogram>

<histogram name="SBClientMalware.IPBlacklistRequestResponseCode"
    enum="HttpResponseCode">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    For ClientMalwareRequest URLFetchers with successful status, the HTTP
    response code that was received.
  </summary>
</histogram>

<histogram name="SBClientMalware.PreClassificationCheckFail"
    enum="SBClientDetectionPreClassificationCheckFail">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the number of malware classifications that were skipped because a
    pre-classification check failed.
  </summary>
</histogram>

<histogram name="SBClientMalware.ResourceUrlMatchedBadIp"
    enum="BooleanMatchedBadIp">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    True if at least one resource url matched the malware IP list. Recorded when
    client side malware feature extraction is done.
  </summary>
</histogram>

<histogram name="SBClientMalware.SentReports" enum="SBClientMalwareSentReports">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Measures the success rate of sending malware reports. Sending a report can
    fail due to a client reaching the limit on the number of reports it can send
    per day or due to the report failing to be serialized.
  </summary>
</histogram>

<histogram name="SBClientMalware.ServerDeterminesMalware"
    enum="BooleanIsMalware">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>The counts for malware verdicts given by server side model.</summary>
</histogram>

<histogram name="SBClientMalware.UnexpectedPageId" enum="BooleanHit">
  <obsolete>
    Deprecated 03/2014. That part of the code got deleted.
  </obsolete>
  <owner>noelutz@chromium.org</owner>
  <summary>
    Counts the number of times the page ID that completed the page load does not
    match the browse info page ID. We expect that number to be zero.
  </summary>
</histogram>

<histogram name="SBClientPhishing.CancelClassificationReason"
    enum="SBClientPhishingCancelClassificationReason">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The counts for various reasons why an in-progress phishing classification
    was canceled.
  </summary>
</histogram>

<histogram name="SBClientPhishing.CheckNoPendingClassificationFailed">
  <obsolete>
    Removed in M47.
  </obsolete>
  <owner>noelutz@chromium.org</owner>
  <summary>
    The number of times client-side phishing classifier expected to have no
    pending classifications running but that check failed.
  </summary>
</histogram>

<histogram name="SBClientPhishing.ClassificationStart" enum="BooleanHit">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The number of pages that we could have possibly classified (essentially the
    number of top page navigations by users with SBClientPhishing enabled). The
    name is slightly misleading as it is recorded before
    &quot;Preclassification&quot; happens.
  </summary>
</histogram>

<histogram name="SBClientPhishing.ClientDeterminesPhishing"
    enum="BooleanIsPhishing">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The counts for phishing verdicts given by client side model.
  </summary>
</histogram>

<histogram name="SBClientPhishing.ClientModelDownloadResponseOrErrorCode"
    enum="CombinedHttpResponseAndNetErrorCode">
  <owner>vakh@google.com</owner>
  <summary>
    Response or error codes from the SafeBrowsing service. Logged after a
    request for the client side model finishes to capture the response code or
    the error code for that HTTP request.
  </summary>
</histogram>

<histogram name="SBClientPhishing.ClientModelStatus"
    enum="SBClientPhishingClientModelStatus">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The counts for various model status codes that we get after loading a new
    client-side phishing model.
  </summary>
</histogram>

<histogram name="SBClientPhishing.DOMFeatureChunkTime" units="ms">
  <owner>gab@chromium.org</owner>
  <summary>
    The time that an individual chunk of DOM feature extraction work took.
  </summary>
</histogram>

<histogram name="SBClientPhishing.DOMFeatureFrameRemoved">
  <owner>gab@chromium.org</owner>
  <summary>
    The number of times that DOM feature extraction finished early because the
    active WebDocument's frame was removed during traversal.
  </summary>
</histogram>

<histogram name="SBClientPhishing.DOMFeatureIterations">
  <owner>gab@chromium.org</owner>
  <summary>
    The number of iterations that the DOM feature extractor took to finish.
  </summary>
</histogram>

<histogram name="SBClientPhishing.DOMFeatureResumeTime" units="ms"
    expires_after="2018-08-30">
  <owner>gab@chromium.org</owner>
  <summary>
    The time that it took to resume DOM feature extraction for the phishing
    classifier. Longer times may indicate that the page DOM changed between
    chunks of work and the extractor had to re-traverse up to the saved
    position.
  </summary>
</histogram>

<histogram name="SBClientPhishing.DOMFeatureTimeout">
  <owner>gab@chromium.org</owner>
  <summary>
    The number of phishing classifications that were aborted because DOM feature
    extraction took too long.
  </summary>
</histogram>

<histogram name="SBClientPhishing.DOMFeatureTotalTime" units="ms">
  <owner>gab@chromium.org</owner>
  <summary>
    The time that the DOM feature extarctor took to finish, summed across all
    chunks of work.
  </summary>
</histogram>

<histogram name="SBClientPhishing.GrabPhishingThumbnail" units="ms">
  <obsolete>
    Removed in M47
  </obsolete>
  <owner>noelutz@chromium.org</owner>
  <summary>Time spent generating the thumbnail.</summary>
</histogram>

<histogram name="SBClientPhishing.IllegalFeatureValue">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The number of features which were omitted from phishing classification
    because they were added with an illegal value. This would indicate a bug.
  </summary>
</histogram>

<histogram name="SBClientPhishing.InitPrivateNetworksFailed">
  <obsolete>
    Deprecated in Chrome 37, which now uses //net's internal matching.
  </obsolete>
  <owner>mattm@chromium.org</owner>
  <summary>
    The number of times that the phishing detection service could not be
    initialized due to an error parsing the private IP networks. This would
    indicate a bug.
  </summary>
</histogram>

<histogram name="SBClientPhishing.InvalidWhitelistExpression">
  <obsolete>
    Deprecated 12/2011. Whitelist entries are no longer part of
    ClientPhishingResponse.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of whitelist_expression entries in a ClientPhishingResponse that
    could not be canonicalized.
  </summary>
</histogram>

<histogram name="SBClientPhishing.PreClassificationCheckFail"
    enum="SBClientDetectionPreClassificationCheckFail">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the number of phishing classifications that were skipped because a
    pre-classification check failed.
  </summary>
</histogram>

<histogram name="SBClientPhishing.ReportLimitSkipped" enum="BooleanHit">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The number of phishing classifications that were previously cached as being
    phishing but that will get re-classified (to possibly fix false positives).
  </summary>
</histogram>

<histogram name="SBClientPhishing.RequestNotSerialized">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The number of phishing classifier pingbacks that were skipped because
    serializing the request protocol buffer to string failed.
  </summary>
</histogram>

<histogram name="SBClientPhishing.RequestSatisfiedFromCache" enum="BooleanHit">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The number of times that a cached phishing classification result was used,
    rather than pinging the server.
  </summary>
</histogram>

<histogram name="SBClientPhishing.ScorerCreationStatus"
    enum="SBClientPhishingScorerCreationStatus">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Records the status when we create a scorer object for the client-side
    phishing detection classifier.
  </summary>
</histogram>

<histogram name="SBClientPhishing.ServerDeterminesPhishing"
    enum="BooleanIsPhishing">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The counts for phishing verdicts given by server side model.
  </summary>
</histogram>

<histogram name="SBClientPhishing.SkipClassificationReason"
    enum="SBClientPhishingSkipClassificationReason">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The counts for various reasons why a phishing classification is skipped.
  </summary>
</histogram>

<histogram name="SBClientPhishing.TermFeatureBreakIterError">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The number of phishing classifications that were aborted because the term
    feature extractor failed to initialize an ICU break iterator.
  </summary>
</histogram>

<histogram name="SBClientPhishing.TermFeatureChunkTime" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The time that an individual chunk of term feature extraction work took.
  </summary>
</histogram>

<histogram name="SBClientPhishing.TermFeatureIterations">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The number of iterations that the term feature extractor took to finish.
  </summary>
</histogram>

<histogram name="SBClientPhishing.TermFeatureTimeout">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The number of phishing classification that were aborted because term feature
    extraction took too long.
  </summary>
</histogram>

<histogram name="SBClientPhishing.TermFeatureTotalTime" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The time that the term feature extarctor took to finish, summed across all
    chunks of work.
  </summary>
</histogram>

<histogram name="SBClientPhishing.TooManyFeatures">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The number of times that the limit on the number of phishing classifier
    features for a page was reached. This may indicate a bug, or that
    kMaxFeatureSize is too small.
  </summary>
</histogram>

<histogram name="SBClientPhishing.URLFeatureTime" units="ms">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    The time taken to extract URL features for the phishing classifier.
  </summary>
</histogram>

<histogram name="SBDownloadFeedback.Activations" enum="DownloadItem.DangerType">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>mattm@chromium.org</owner>
  <summary>
    Count of times download feedback has been started, broken down by danger
    type.
  </summary>
</histogram>

<histogram name="SBDownloadFeedback.ActiveFeedbacks">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>mattm@chromium.org</owner>
  <summary>
    When a new download feedback request is added, records the number of
    download requests currently active and/or pending.
  </summary>
</histogram>

<histogram name="SBDownloadFeedback.Eligible" enum="DownloadItem.DangerType">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>mattm@chromium.org</owner>
  <summary>
    Count of times eligible download notifications are shown. Broken down by
    danger type.
  </summary>
</histogram>

<histogram name="SBDownloadFeedback.EmptyFilePathFailure" enum="Boolean">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    Count of times download feedback cannot be sent due to empty file path.
  </summary>
</histogram>

<histogram name="SBDownloadFeedback.Shown" enum="DownloadItem.DangerType">
  <obsolete>
    Starting with M32, replaced by SBDownloadFeedback.Eligible.
  </obsolete>
  <owner>mattm@chromium.org</owner>
  <summary>
    Count of times download feedback button has been shown, broken down by
    danger type.
  </summary>
</histogram>

<histogram name="SBDownloadFeedback.SizeEligibleKB" units="KB">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>mattm@chromium.org</owner>
  <summary>
    Size of downloads that were of the correct danger type, regardless if they
    meet the max file size check or if they are actually uploaded or not.
  </summary>
</histogram>

<histogram name="SBDownloadFeedback.SizeFailure" units="bytes">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>mattm@chromium.org</owner>
  <summary>
    Size of downloads that failed to be uploaded to the feedback service.
  </summary>
</histogram>

<histogram name="SBDownloadFeedback.SizeSuccess" units="bytes">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>mattm@chromium.org</owner>
  <summary>
    Size of downloads that were successfully uploaded to the feedback service.
  </summary>
</histogram>

<histogram name="SBDownloadFeedback.UploadRequestedByServer"
    enum="DownloadUploadRequestedByServer">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <summary>
    For each non-SAFE file, records whether the server requested that that file
    be uploaded.

    Logged before checking the file size, so it may be dropped there.
  </summary>
</histogram>

<histogram name="SBDownloadFeedback.UploadResult"
    enum="SBDownloadFeedbackUploadResult">
  <owner>chrome-safebrowsing-alerts@google.com</owner>
  <owner>mattm@chromium.org</owner>
  <summary>
    Final result of attempt to upload binary to download feedback service.
  </summary>
</histogram>

<histogram name="SBIRS.BLAHashTime" units="ms">
  <obsolete>
    Blacklist Load analysis was removed in M63.
  </obsolete>
  <owner>caitkp@google.com</owner>
  <summary>
    The elapsed time to compute the hash of a blacklisted module.
  </summary>
</histogram>

<histogram name="SBIRS.BLASignatureTime" units="ms">
  <obsolete>
    Blacklist Load analysis was removed in M63.
  </obsolete>
  <owner>caitkp@google.com</owner>
  <summary>
    The elapsed time to validate the signature of a blacklisted module.
  </summary>
</histogram>

<histogram name="SBIRS.DiscardedIncident" enum="IncidentType">
  <owner>caitkp@google.com</owner>
  <summary>
    The type of incident discarded by the safe browsing incident reporting
    service as a result of profile or service destruction.
  </summary>
</histogram>

<histogram name="SBIRS.DownloadMetadata.DeleteSuccess" enum="BooleanSuccess"
    expires_after="2018-08-30">
  <owner>caitkp@chromium.org</owner>
  <summary>The result of deleting a profile's download metadata file.</summary>
</histogram>

<histogram name="SBIRS.DownloadMetadata.ReadResult" enum="MetadataReadResult"
    expires_after="2018-08-30">
  <owner>caitkp@chromium.org</owner>
  <summary>The result of reading a profile's download metadata file.</summary>
</histogram>

<histogram name="SBIRS.DownloadMetadata.WriteResult" enum="MetadataWriteResult"
    expires_after="2018-08-30">
  <owner>caitkp@chromium.org</owner>
  <summary>The result of writing a profile's download metadata file.</summary>
</histogram>

<histogram name="SBIRS.DroppedIncident" enum="IncidentType">
  <owner>caitkp@google.com</owner>
  <summary>
    The type of incident given to the safe browsing incident reporting service
    but dropped as a result of not participating in safe browsing.
  </summary>
</histogram>

<histogram name="SBIRS.EnvCollectionTime" units="ms" expires_after="2018-08-30">
  <owner>caitkp@google.com</owner>
  <summary>
    The elapsed time to collect environmental data for a safe browsing incident
    report.
  </summary>
</histogram>

<histogram name="SBIRS.FindDownloadedBinaryTime" units="ms"
    expires_after="2018-08-30">
  <owner>caitkp@google.com</owner>
  <summary>
    The elapsed time to find the most recent binary download from all loaded
    profiles when creating a safe browsing incident report.
  </summary>
</histogram>

<histogram name="SBIRS.Incident" enum="IncidentType">
  <owner>caitkp@google.com</owner>
  <summary>
    The type of incident included in an incident report by the safe browsing
    incident reporting service.
  </summary>
</histogram>

<histogram name="SBIRS.IncidentCount">
  <owner>caitkp@google.com</owner>
  <summary>
    The number of incidents collated into a single safe browsing incident
    report.
  </summary>
</histogram>

<histogram name="SBIRS.InterIncidentTime" units="ms" expires_after="2018-08-30">
  <owner>caitkp@google.com</owner>
  <summary>
    The elapsed time between two successive incidents collated into the same
    incident report by the safe browsing incident reporting service.
  </summary>
</histogram>

<histogram name="SBIRS.NoDownloadIncident" enum="IncidentType">
  <owner>proberge@google.com</owner>
  <summary>
    The type of incident pruned by the safe browsing incident reporting service
    as a result of not having a matching binary download.
  </summary>
</histogram>

<histogram name="SBIRS.PrunedIncident" enum="IncidentType">
  <owner>proberge@google.com</owner>
  <summary>
    The type of incident pruned from a report in the safe browsing incident
    reporting service as a result of having previously been reported.
  </summary>
</histogram>

<histogram name="SBIRS.PruneRatio" units="%">
  <obsolete>
    Deprecated 08/2015.
  </obsolete>
  <owner>caitkp@google.com</owner>
  <summary>
    The percentage of incidents pruned from a safe browsing incident report on
    account of having been previously reported.
  </summary>
</histogram>

<histogram name="SBIRS.PSSDataStoreSize" units="bytes">
  <owner>grt@google.com</owner>
  <summary>
    The size, in bytes, of a profile's platform state store. This hisogram is
    logged on each write, which always replaces any previous contents.
  </summary>
</histogram>

<histogram name="SBIRS.PSSLoadResult" enum="PlatformStateStoreLoadResult">
  <owner>grt@google.com</owner>
  <summary>The result of loading data from the platform state store.</summary>
</histogram>

<histogram name="SBIRS.ReceivedIncident" enum="IncidentType">
  <owner>caitkp@google.com</owner>
  <summary>
    The type of incident received by the safe browsing incident reporting
    service.
  </summary>
</histogram>

<histogram name="SBIRS.ReportPayloadSize" units="bytes">
  <owner>proberge@google.com</owner>
  <summary>The size, in bytes, of a safe browsing incident report.</summary>
</histogram>

<histogram name="SBIRS.ReportUploadTime" units="ms">
  <owner>caitkp@google.com</owner>
  <summary>The elapsed time to upload a safe browsing incident report.</summary>
</histogram>

<histogram name="SBIRS.StateStoreInit" enum="StateStoreInitResult">
  <owner>proberge@google.com</owner>
  <summary>
    The result of initializing the state store and comparing the preferences to
    the platform-specific state store.
  </summary>
</histogram>

<histogram name="SBIRS.SuspiciousModuleDetectionTime" units="ms">
  <obsolete>
    Suspicious Module detection was removed in M63.
  </obsolete>
  <owner>proberge@google.com</owner>
  <summary>
    The elapsed time to check loaded modules against the module whitelist.
  </summary>
</histogram>

<histogram name="SBIRS.SuspiciousModuleReportCount" units="modules">
  <obsolete>
    Suspicious Module detection reporting removed in M63.
  </obsolete>
  <owner>proberge@google.com</owner>
  <summary>The number of suspicious modules found.</summary>
</histogram>

<histogram name="SBIRS.SuspiciousModuleReportingTime" units="ms">
  <obsolete>
    Suspicious Module detection reporting removed in M63.
  </obsolete>
  <owner>proberge@google.com</owner>
  <summary>
    The elapsed time to create incidents for suspicious modules.
  </summary>
</histogram>

<histogram name="SBIRS.UploadResult" enum="ReportProcessingResult">
  <owner>caitkp@google.com</owner>
  <summary>
    The result of an attempted report upload by the safe browsing incident
    reporting service.
  </summary>
</histogram>

<histogram name="SBIRS.VerifyBinaryIntegrity.0" units="ms"
    expires_after="2018-08-30">
  <owner>caitkp@google.com</owner>
  <summary>
    The elapsed time to verify the binary integrity of chrome.exe.
  </summary>
</histogram>

<histogram name="SBIRS.VerifyBinaryIntegrity.1" units="ms"
    expires_after="2018-08-30">
  <owner>caitkp@google.com</owner>
  <summary>
    The elapsed time to verify the binary integrity of chrome.dll.
  </summary>
</histogram>

<histogram name="SBIRS.VerifyBinaryIntegrity.2" units="ms"
    expires_after="2018-08-30">
  <owner>caitkp@google.com</owner>
  <summary>
    The elapsed time to verify the binary integrity of chrome_child.dll.
  </summary>
</histogram>

<histogram name="SBIRS.VerifyBinaryIntegrity.3" units="ms"
    expires_after="2018-08-30">
  <owner>caitkp@google.com</owner>
  <summary>
    The elapsed time to verify the binary integrity of chrome_elf.dll.
  </summary>
</histogram>

<histogram name="SBOffDomainInclusion.Abort" enum="ContentResourceType">
  <obsolete>
    Superseded by SBOffDomainInclusion2.Abort in December 2015.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Logs the resource type of each resource request for which the off-domain
    inclusion analysis was aborted. This histogram is suffixed with the abort
    reason.
  </summary>
</histogram>

<histogram name="SBOffDomainInclusion.Detected" enum="ContentResourceType">
  <obsolete>
    Deprecated 01/2015.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Logs the resource type of each resource request for which an off-domain
    inclusion was detected by the OffDomainInclusionDetector.
  </summary>
</histogram>

<histogram name="SBOffDomainInclusion.EmptyMainFrameURL"
    enum="ContentResourceType">
  <obsolete>
    Deprecated 01/2015. Moved to SBOffDomainInclusion.Abort.EmptyMainFrameURL.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Logs the resource type of each resource request for which the main frame URL
    was unexpectedly empty in the OffDomainInclusionDetector.
  </summary>
</histogram>

<histogram name="SBOffDomainInclusion.InHistory" enum="ContentResourceType">
  <obsolete>
    Superseded by SBOffDomainInclusion2.InHistory in December 2015.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Logs the resource type of each resource request for which the off-domain
    inclusion analysis concluded in no inclusion whitelist hit but a browsing
    history hit.
  </summary>
</histogram>

<histogram name="SBOffDomainInclusion.InvalidMainFrameURL"
    enum="ContentResourceType">
  <obsolete>
    Deprecated 01/2015 (was never reported, confirming experiment that handling
    it is irrelevant).
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Logs the resource type of each resource request for which the main frame URL
    was unexpectedly invalid (and not empty) in the OffDomainInclusionDetector.
  </summary>
</histogram>

<histogram name="SBOffDomainInclusion.RequestAnalyzed"
    enum="ContentResourceType">
  <obsolete>
    Superseded by SBOffDomainInclusion2.RequestAnalyzed in December 2015.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Logs the resource type of each resource request analyzed by the
    OffDomainInclusionDetector.
  </summary>
</histogram>

<histogram name="SBOffDomainInclusion.Suspicious" enum="ContentResourceType">
  <obsolete>
    Superseded by SBOffDomainInclusion2.Suspicious in December 2015.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Logs the resource type of each resource request for which an off-domain
    inclusion was detected by the OffDomainInclusionDetector and considered
    suspicious.
  </summary>
</histogram>

<histogram name="SBOffDomainInclusion.Whitelisted" enum="ContentResourceType">
  <obsolete>
    Superseded by SBOffDomainInclusion2.Suspicious in December 2015.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Logs the resource type of each resource request for which the off-domain
    inclusion analysis concluded in an inclusion whitelist hit.
  </summary>
</histogram>

<histogram name="SBOffDomainInclusion2.Abort" enum="ContentResourceType2">
  <obsolete>
    Deprecated 2016-05 as the OffDomainInclusionDetector was removed.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Logs the resource type of each resource request for which the off-domain
    inclusion analysis was aborted. This histogram is suffixed with the abort
    reason.
  </summary>
</histogram>

<histogram name="SBOffDomainInclusion2.InHistory" enum="ContentResourceType2">
  <obsolete>
    Deprecated 2016-05 as the OffDomainInclusionDetector was removed.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Logs the resource type of each resource request for which the off-domain
    inclusion analysis concluded in no inclusion whitelist hit but a browsing
    history hit.
  </summary>
</histogram>

<histogram name="SBOffDomainInclusion2.RequestAnalyzed"
    enum="ContentResourceType2">
  <obsolete>
    Deprecated 2016-05 as the OffDomainInclusionDetector was removed.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Logs the resource type of each resource request analyzed by the
    OffDomainInclusionDetector.
  </summary>
</histogram>

<histogram name="SBOffDomainInclusion2.Suspicious" enum="ContentResourceType2">
  <obsolete>
    Deprecated 2016-05 as the OffDomainInclusionDetector was removed.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Logs the resource type of each resource request for which an off-domain
    inclusion was detected by the OffDomainInclusionDetector and considered
    suspicious.
  </summary>
</histogram>

<histogram name="SBOffDomainInclusion2.Whitelisted" enum="ContentResourceType2">
  <obsolete>
    Deprecated 2016-05 as the OffDomainInclusionDetector was removed.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Logs the resource type of each resource request for which the off-domain
    inclusion analysis concluded in an inclusion whitelist hit.
  </summary>
</histogram>

<histogram name="Scheduler.Experimental.CPUTimePerThread"
    enum="SchedulerThreadType">
  <owner>altimin@chromium.org</owner>
  <summary>
    Total wall time of all tasks in scheduler-managed threads split per thread.

    The bucket value is the sum of thread durations of all tasks in this thread
    across all browsing instances. This metric is reported each time we execute
    a task which has cpu time measurement.
  </summary>
</histogram>

<histogram base="true" name="Scheduler.Experimental.Renderer.CPUTimePerThread"
    enum="RendererSchedulerThreadType">
  <owner>altimin@chromium.org</owner>
  <summary>
    Total cpu time of scheduler-managed threads in the renderer process.

    It is supposed that Scheduler.Experimental.Renderer.CPUTimePerThread.Tracked
    and Scheduler.Experimental.Renderer.CPUTimePerThread.Untracked histograms
    should be analysed together.

    The bucket value is the sum of thread durations of all tasks in this thread
    across all browsing instances. This metric is reported each time we execute
    a task. Due to thread time being expensive to measure, only 0.01% of threads
    report this metric.
  </summary>
</histogram>

<histogram base="true"
    name="Scheduler.Experimental.Renderer.TotalTime.Wall.MainThread" units="s">
  <owner>altimin@chromium.org</owner>
  <summary>
    Sum of durations of all scheduler-managed tasks in the renderer process.

    Due to implementation constraints a difference between .Positive and
    .Negative subhistograms should be analysed. See
    blink::scheduler::TotalDurationMetricReporter for details.

    These metrics are updated each time a new task is executed.
  </summary>
</histogram>

<histogram name="Scheduler.Experimental.Renderer.UkmRecordingStatus"
    enum="SchedulerUkmRecordingStatus">
  <owner>altimin@chromium.org</owner>
  <summary>
    The results of the attempts to sample scheduling tasks into the UKM. Used to
    ensure that we're not silently dropping tasks, which can lead to biases in
    our analyses.

    Recorded each time a scheduling task UKM is recorded.
  </summary>
</histogram>

<histogram name="Scheduler.Experimental.WallTimePerThread"
    enum="SchedulerThreadType">
  <owner>altimin@chromium.org</owner>
  <summary>
    Total wall time of all tasks in scheduler-managed threads split per thread.

    The bucket value is the sum of thread durations of all tasks in this thread
    across all browsing instances. This metric is reported each time we execute
    a task which has wall time measurement.
  </summary>
</histogram>

<histogram name="Scheduling.ActivateDuration" units="microseconds">
  <obsolete>
    Replaced by ActivateDuration2, due to inefficient bucketing scheme.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    How long it takes for the compositor to simply activate the pending tree.
    Does not include any PrepareTiles or raster time.
  </summary>
</histogram>

<histogram name="Scheduling.BeginImplFrameLatency2" units="microseconds">
  <owner>stanisc@chromium.org</owner>
  <summary>
    The time from v-sync to when the main side actually starts the
    BeginImplFrame.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.BeginMainFrameIntervalCritical"
    units="microseconds">
  <obsolete>
    Replaced by BeginMainFrameIntervalCritical2, due to inefficient bucketing
    scheme.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    This is the time delta between back-to-back BeginMainFrames completions on
    the compositor side when the on_critical_path flag is set, regardless of
    whether they abort (have no updates) or commit (have updates).

    The interval is only recorded when the BeginMainFrames are running
    continuously; sepcifically when another BeginMainFrame is requested by the
    next BeginImplFrame after a) an abort or b) activation.
  </summary>
</histogram>

<histogram name="Scheduling.BeginMainFrameIntervalNotCritical"
    units="microseconds">
  <obsolete>
    Replaced by BeginMainFrameIntervalNotCritical2, due to inefficient bucketing
    scheme.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    This is the time delta between back-to-back BeginMainFrames completions on
    the compositor side when the on_critical_path flag is not set, regardless of
    whether they abort (have no updates) or commit (have updates).

    The interval is only recorded when the BeginMainFrames are running
    continuously; sepcifically when another BeginMainFrame is requested by the
    next BeginImplFrame after a) an abort or b) activation.
  </summary>
</histogram>

<histogram name="Scheduling.BeginMainFrameQueueDurationCritical"
    units="microseconds">
  <obsolete>
    Replaced by BeginMainFrameQueueDurationCritical2, due to inefficient
    bucketing scheme.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    How long it takes for the main side to start the BeginMainFrame in response
    to the compositor's SendBeginMainFrame when the on_critical_path flag is
    set.
  </summary>
</histogram>

<histogram name="Scheduling.BeginMainFrameQueueDurationCritical2"
    units="microseconds">
  <owner>vmiura@chromium.org</owner>
  <owner>sadrul@chromium.org</owner>
  <summary>
    How long it takes for the main side to start the BeginMainFrame in response
    to the compositor's SendBeginMainFrame when the on_critical_path flag is
    set.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.BeginMainFrameQueueDurationNotCritical"
    units="microseconds">
  <obsolete>
    Replaced by BeginMainFrameQueueDurationNotCritical2, due to inefficient
    bucketing scheme.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    How long it takes for the main side to start the BeginMainFrame in response
    to the compositor's SendBeginMainFrame when the on_critical_path flag is not
    set.
  </summary>
</histogram>

<histogram name="Scheduling.BeginMainFrameStartToCommitDuration"
    units="microseconds">
  <obsolete>
    Replaced by BeginMainFrameStartToCommitDuration2, due to inefficient
    bucketing scheme.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    The time from when the main side actually starts the BeginMainFrame to when
    the commit completes on the impl side.
  </summary>
</histogram>

<histogram name="Scheduling.BeginMainFrameStartToCommitDuration2"
    units="microseconds">
  <owner>vmiura@chromium.org</owner>
  <owner>sadrul@chromium.org</owner>
  <summary>
    The time from when the main side actually starts the BeginMainFrame to when
    the commit completes on the impl side.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.BeginMainFrameToCommitDuration"
    units="microseconds">
  <obsolete>
    Replaced by BeginMainFrameQueueDurationCritical,
    BeginMainFrameQueueDurationNotCritical, and
    BeginMainFrameStartToCommitDuration.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    How long it takes for the blink main thread to respond to the compositor's
    SendBeginMainFrame.
  </summary>
</histogram>

<histogram name="Scheduling.Browser.ActivateDuration2" units="microseconds">
  <obsolete>
    Deprecated in 08/2018, M69. Since there is no impl thread on Browser side,
    there is no activation state for Browser.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    How long it takes for the compositor to simply activate the pending tree.
    Does not include any PrepareTiles or raster time.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.Browser.BeginMainFrameIntervalCritical2"
    units="microseconds">
  <obsolete>
    Deprecated in 06/2018, M69, due to too much noise in the collected data.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    This is the time delta between back-to-back BeginMainFrames completions on
    the compositor side when the on_critical_path flag is set, regardless of
    whether they abort (have no updates) or commit (have updates).

    The interval is only recorded when the BeginMainFrames are running
    continuously; sepcifically when another BeginMainFrame is requested by the
    next BeginImplFrame after a) an abort or b) activation.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_HIGH_RESOLUTION_TIMES for
    the solution.
  </summary>
</histogram>

<histogram name="Scheduling.Browser.BeginMainFrameIntervalNotCritical2"
    units="microseconds">
  <obsolete>
    Deprecated in 07/2018, M69. All begin frames are in critical path for
    browser, no data is reported.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    This is the time delta between back-to-back BeginMainFrames completions on
    the compositor side when the on_critical_path flag is not set, regardless of
    whether they abort (have no updates) or commit (have updates).

    The interval is only recorded when the BeginMainFrames are running
    continuously; sepcifically when another BeginMainFrame is requested by the
    next BeginImplFrame after a) an abort or b) activation.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.Browser.BeginMainFrameQueueDurationNotCritical2"
    units="microseconds">
  <obsolete>
    Deprecated in 07/2018, M69. All begin frames are in critical path for
    browser, no data is reported.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    How long it takes for the main side to start the BeginMainFrame in response
    to the compositor's SendBeginMainFrame when the on_critical_path flag is not
    set.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.Browser.BeginMainFrameStartToCommit"
    units="microseconds">
  <obsolete>
    Replaced by BeginMainFrameStartToCommitDuration. This was recorded as a
    result of a typo in the code that didn't include &quot;Duration&quot;.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    The time from when the main side actually starts the BeginMainFrame to when
    the commit completes on the impl side.
  </summary>
</histogram>

<histogram name="Scheduling.Browser.BeginMainFrameStartToCommit2"
    units="microseconds">
  <obsolete>
    Replaced by BeginMainFrameStartToCommitDuration2. This was recorded as a
    result of a typo in the code that didn't include &quot;Duration&quot;.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    The time from when the main side actually starts the BeginMainFrame to when
    the commit completes on the impl side.
  </summary>
</histogram>

<histogram name="Scheduling.Browser.CommitInterval2" units="microseconds">
  <obsolete>
    Deprecated in 06/2018, M69, due to too much noise in the collected data.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    The time delta between the *draw* times of back-to-back BeginMainFrames that
    result in a commit.

    The interval is only recorded when the BeginMainFrames are running and
    committing continuously, where continuously means when another
    BeginMainFrame is requested by the next BeginImplFrame after activation.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_HIGH_RESOLUTION_TIMES for
    the solution.
  </summary>
</histogram>

<histogram name="Scheduling.Browser.DrawInterval2" units="microseconds">
  <obsolete>
    Deprecated in 06/2018, M69, due to too much noise in the collected data.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    The time delta between the draw times of back-to-back BeginImplFrames,
    regardless of whether or not they result in a swap.

    The interval is only recorded when every BeginImplFrame wants to draw.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_HIGH_RESOLUTION_TIMES for
    the solution.
  </summary>
</histogram>

<histogram name="Scheduling.Browser.DrawIntervalWithCompositedAnimations2"
    units="microseconds">
  <obsolete>
    Deprecated in 07/2018, M69, due to too much noise in the data.
  </obsolete>
  <owner>paint-dev@chromium.org</owner>
  <summary>
    The time delta between the draw times of back-to-back BeginImplFrames,
    regardless of whether or not they result in a swap, when there is at least
    one composited animation.

    The interval is only recorded when every BeginImplFrame wants to draw.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.Browser.DrawIntervalWithMainThreadAnimations2"
    units="microseconds">
  <obsolete>
    Deprecated in 07/2018, M69, due to too much noise in the data.
  </obsolete>
  <owner>paint-dev@chromium.org</owner>
  <summary>
    The time delta between the draw times of back-to-back BeginImplFrames of new
    active trees only, regardless of whether or not they result in a swap, when
    there is at least one main thread animation.

    The interval is only recorded when every BeginImplFrame wants to draw.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.Browser.MainAndImplFrameTimeDelta2"
    units="microseconds">
  <obsolete>
    Deprecated in 08/2018, M69, since there is no impl thread in Browser side,
    this metric does not record any meaningful data.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    Recorded every time the compositor draws with a new active tree. A value of
    0 indicates the main-side started and finished within the same frame
    interval as the impl-side. Positive values correspond to how old any
    main-side updates are compared to the impl-side updates. If there are no
    mid-frame updates, this metric is a good proxy for how well the main and
    impl threads are synchronized.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.Browser.PendingTreeDuration" units="microseconds">
  <obsolete>
    Deprecated in 07/2018, M69. Since there is no pending tree in Browser, no
    data is ever reported.
  </obsolete>
  <owner>ericrk@chromium.org</owner>
  <summary>
    Time between creating a pending tree and activating that tree. This differs
    from Scheduling.ActivateDuration in that it includes time taken to raster
    the pending tree, not just the time to activate it.

    The interval is recorded each time a pending tree is activated.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.Browser.PendingTreeRasterDuration"
    units="microseconds">
  <obsolete>
    Deprecated in 07/2018, M69. Since there is no pending tree in Browser, no
    data is ever reported.
  </obsolete>
  <owner>khushalsagar@chromium.org</owner>
  <summary>
    Time between starting raster work on the pending tree and when it is ready
    to activate. Unlike PendingTreeDuration which - includes the time to commit
    to this tree, the raster duration and the time for which the pending tree
    waits before it can be activated - this only measures the time taken to
    rasterize tiles required for activation.

    The interval is recorded each time we are notifed that a pending tree is
    ready for activation.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.Browser.ReadyToActivateToActivationDuration2.Impl"
    units="microseconds">
  <obsolete>
    Deprecated in 07/2018, M69. No data reported because there is no pending
    tree on impl thread for browser side.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    How long does the pending tree wait after it is ready to be activated and
    before it is activated.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution. Impl side invalidation initiated pending tree
  </summary>
</histogram>

<histogram name="Scheduling.Browser.ReadyToActivateToActivationDuration2.Main"
    units="microseconds">
  <owner>vmiura@chromium.org</owner>
  <owner>sadrul@chromium.org</owner>
  <summary>
    How long does the pending tree wait after it is ready to be activated and
    before it is activated.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution. Commit initiated pending tree.
  </summary>
</histogram>

<histogram name="Scheduling.CommitInterval" units="microseconds">
  <obsolete>
    Replaced by CommitInterval2, due to inefficient bucketing scheme.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    The time delta between the *draw* times of back-to-back BeginMainFrames that
    result in a commit.

    The interval is only recorded when the BeginMainFrames are running and
    committing continuously, where continuously means when another
    BeginMainFrame is requested by the next BeginImplFrame after activation.
  </summary>
</histogram>

<histogram name="Scheduling.CommitToReadyToActivateDuration"
    units="microseconds">
  <obsolete>
    Replaced by CommitToReadyToActivateDuration2, due to inefficient bucketing
    scheme.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    How long it takes for the compositor to rasterize pending tree content after
    a commit before it is ready for activation.
  </summary>
</histogram>

<histogram name="Scheduling.CommitToReadyToActivateDuration2"
    units="microseconds">
  <owner>vmiura@chromium.org</owner>
  <owner>sadrul@chromium.org</owner>
  <summary>
    How long it takes for the compositor to rasterize pending tree content after
    a commit before it is ready for activation.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.DrawDuration" units="microseconds">
  <obsolete>
    Replaced by DrawDuration2, due to inefficient bucketing scheme.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>How long it takes the compositor to draw a frame.</summary>
</histogram>

<histogram name="Scheduling.DrawDuration2" units="microseconds">
  <owner>vmiura@chromium.org</owner>
  <owner>sadrul@chromium.org</owner>
  <summary>
    How long it takes the compositor to draw a frame.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.DrawInterval" units="microseconds">
  <obsolete>
    Replaced by DrawInterval2, due to inefficient bucketing scheme.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    The time delta between the draw times of back-to-back BeginImplFrames,
    regardless of whether or not they result in a swap.

    The interval is only recorded when every BeginImplFrame wants to draw.
  </summary>
</histogram>

<histogram name="Scheduling.DrawIntervalWithMainThreadCompositableAnimations2"
    units="microseconds">
  <obsolete>
    Deprecated 05/2018 because the experiment described in Issue 754471 is
    completed.
  </obsolete>
  <owner>paint-dev@chromium.org</owner>
  <summary>
    The time delta between the draw times of back-to-back BeginImplFrames of new
    active trees only, regardless of whether or not they result in a swap, when
    there is at least one main thread animation that could be composited but
    not, due to running experiment.

    The interval is only recorded when every BeginImplFrame wants to draw.
  </summary>
</histogram>

<histogram name="Scheduling.ImageInvalidationUpdateDuration"
    units="microseconds">
  <obsolete>
    Deprecated 03/28/2018
  </obsolete>
  <owner>khushalsagar@chromium.org</owner>
  <summary>
    Duration for updating animated images and invalidating layers for images
    invalidated on the sync tree in the compositor. This interval is recorded
    each time the sync tree is updated after a commit or an impl-side
    invalidation.
  </summary>
</histogram>

<histogram name="Scheduling.InvalidationToReadyToActivateDuration2"
    units="microseconds">
  <owner>vmiura@chromium.org</owner>
  <owner>sadrul@chromium.org</owner>
  <summary>
    How long it takes for the compositor to rasterize pending tree content after
    an impl-side invalidation before it is ready for activation.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.MainAndImplFrameTimeDelta" units="microseconds">
  <obsolete>
    Replaced by MainAndImplFrameTimeDelta2, due to inefficient bucketing scheme.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    Recorded every time the compositor draws with a new active tree. A value of
    0 indicates the main-side started and finished within the same frame
    interval as the impl-side. Positive values correspond to how old any
    main-side updates are compared to the impl-side updates. If there are no
    mid-frame updates, this metric is a good proxy for how well the main and
    impl threads are synchronized.
  </summary>
</histogram>

<histogram name="Scheduling.PrepareTilesDuration" units="microseconds">
  <obsolete>
    Replaced by PrepareTIlesDuration2, due to inefficient bucketing scheme.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    How long it takes the compositor to PreapreTiles, which determines what
    rasterization work to do.
  </summary>
</histogram>

<histogram name="Scheduling.PrepareTilesDuration2" units="microseconds">
  <owner>vmiura@chromium.org</owner>
  <owner>sadrul@chromium.org</owner>
  <summary>
    How long it takes the compositor to PreapreTiles, which determines what
    rasterization work to do.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.ReadyToActivateToActivationDuration"
    units="microseconds">
  <obsolete>
    Replaced by ReadyToActivateToActivationDuration2, due to inefficient
    bucketing scheme.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    How long does the pending tree wait after it is ready to be activated and
    before it is activated.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.Renderer.ActivateDuration2" units="microseconds">
  <owner>vmiura@chromium.org</owner>
  <owner>sadrul@chromium.org</owner>
  <summary>
    How long it takes for the compositor to simply activate the pending tree.
    Does not include any PrepareTiles or raster time.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.Renderer.BeginMainFrameIntervalCritical2"
    units="microseconds">
  <owner>vmiura@chromium.org</owner>
  <owner>sadrul@chromium.org</owner>
  <summary>
    This is the time delta between back-to-back BeginMainFrames completions on
    the compositor side when the on_critical_path flag is set, regardless of
    whether they abort (have no updates) or commit (have updates).

    The interval is only recorded when the BeginMainFrames are running
    continuously; sepcifically when another BeginMainFrame is requested by the
    next BeginImplFrame after a) an abort or b) activation.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_HIGH_RESOLUTION_TIMES for
    the solution.
  </summary>
</histogram>

<histogram name="Scheduling.Renderer.BeginMainFrameIntervalNotCritical2"
    units="microseconds">
  <owner>vmiura@chromium.org</owner>
  <owner>sadrul@chromium.org</owner>
  <summary>
    This is the time delta between back-to-back BeginMainFrames completions on
    the compositor side when the on_critical_path flag is not set, regardless of
    whether they abort (have no updates) or commit (have updates).

    The interval is only recorded when the BeginMainFrames are running
    continuously; sepcifically when another BeginMainFrame is requested by the
    next BeginImplFrame after a) an abort or b) activation.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.Renderer.BeginMainFrameQueueDurationNotCritical2"
    units="microseconds">
  <owner>vmiura@chromium.org</owner>
  <owner>sadrul@chromium.org</owner>
  <summary>
    How long it takes for the main side to start the BeginMainFrame in response
    to the compositor's SendBeginMainFrame when the on_critical_path flag is not
    set.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.Renderer.CommitInterval2" units="microseconds">
  <owner>vmiura@chromium.org</owner>
  <owner>sadrul@chromium.org</owner>
  <summary>
    The time delta between the *draw* times of back-to-back BeginMainFrames that
    result in a commit.

    The interval is only recorded when the BeginMainFrames are running and
    committing continuously, where continuously means when another
    BeginMainFrame is requested by the next BeginImplFrame after activation.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_HIGH_RESOLUTION_TIMES for
    the solution.
  </summary>
</histogram>

<histogram name="Scheduling.Renderer.DrawInterval2" units="microseconds"
    expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->

  <owner>vmiura@chromium.org</owner>
  <owner>sadrul@chromium.org</owner>
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    The time delta between the draw times of back-to-back BeginImplFrames,
    regardless of whether or not they result in a swap.

    The interval is only recorded when every BeginImplFrame wants to draw.

    Do not modify this metric in any way without contacting
    speed-metrics-dev@chromium.org.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_HIGH_RESOLUTION_TIMES for
    the solution.
  </summary>
</histogram>

<histogram name="Scheduling.Renderer.DrawIntervalWithCompositedAnimations2"
    units="microseconds">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    The time delta between the draw times of back-to-back BeginImplFrames,
    regardless of whether or not they result in a swap, when there is at least
    one composited animation.

    The interval is only recorded when every BeginImplFrame wants to draw.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.Renderer.DrawIntervalWithMainThreadAnimations2"
    units="microseconds">
  <owner>paint-dev@chromium.org</owner>
  <summary>
    The time delta between the draw times of back-to-back BeginImplFrames of new
    active trees only, regardless of whether or not they result in a swap, when
    there is at least one main thread animation.

    The interval is only recorded when every BeginImplFrame wants to draw.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.Renderer.MainAndImplFrameTimeDelta2"
    units="microseconds">
  <owner>vmiura@chromium.org</owner>
  <owner>sadrul@chromium.org</owner>
  <summary>
    Recorded every time the compositor draws with a new active tree. A value of
    0 indicates the main-side started and finished within the same frame
    interval as the impl-side. Positive values correspond to how old any
    main-side updates are compared to the impl-side updates. If there are no
    mid-frame updates, this metric is a good proxy for how well the main and
    impl threads are synchronized.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.Renderer.PendingTreeDuration" units="microseconds">
  <owner>ericrk@chromium.org</owner>
  <summary>
    Time between creating a pending tree and activating that tree. This differs
    from Scheduling.ActivateDuration in that it includes time taken to raster
    the pending tree, not just the time to activate it.

    The interval is recorded each time a pending tree is activated.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.Renderer.PendingTreeRasterDuration"
    units="microseconds">
  <owner>khushalsagar@chromium.org</owner>
  <summary>
    Time between starting raster work on the pending tree and when it is ready
    to activate. Unlike PendingTreeDuration which - includes the time to commit
    to this tree, the raster duration and the time for which the pending tree
    waits before it can be activated - this only measures the time taken to
    rasterize tiles required for activation.

    The interval is recorded each time we are notifed that a pending tree is
    ready for activation.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.Renderer.ReadyToActivateToActivationDuration2"
    units="microseconds">
  <owner>vmiura@chromium.org</owner>
  <owner>sadrul@chromium.org</owner>
  <summary>
    How long does the pending tree wait after it is ready to be activated and
    before it is activated.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Scheduling.SwapAckWasFast" enum="BooleanWasFast">
  <obsolete>
    Deprecated in 07/2018, M69. The swap ack is always received within 8
    seconds.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>
    True if the swap ack was received within approximately 8 seconds of the
    swap. Although 8 seconds isn't exactly fast, it is a threshold that
    represents a hang or the appearance of a hang.
  </summary>
</histogram>

<histogram name="Scheduling.SwapToAckLatency" units="microseconds">
  <obsolete>
    Replaced by SwapToAckLatency2, due to inefficient bucketing scheme.
  </obsolete>
  <owner>brianderson@chromium.org</owner>
  <summary>How long it takes the swap ack to return after a swap.</summary>
</histogram>

<histogram name="Scheduling.SwapToAckLatency2" units="microseconds">
  <owner>vmiura@chromium.org</owner>
  <owner>sadrul@chromium.org</owner>
  <summary>
    How long it takes the swap ack to return after a swap.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="ScreenLocker.AuthenticationFailure" enum="UnlockType">
  <owner>sammiequon@chromium.org</owner>
  <summary>
    What type of authentication was attempted when the user failed to unlock the
    lock screen.
  </summary>
</histogram>

<histogram name="ScreenLocker.AuthenticationFailureTime" units="ms">
  <owner>sammiequon@chromium.org</owner>
  <summary>The time spent for authentication in case of a failure.</summary>
</histogram>

<histogram name="ScreenLocker.AuthenticationSuccess" enum="UnlockType">
  <owner>sammiequon@chromium.org</owner>
  <summary>
    What type of authentication was attempted when the user successfully
    unlocked the lock screen.
  </summary>
</histogram>

<histogram name="ScreenLocker.AuthenticationSuccessTime" units="ms">
  <owner>sammiequon@chromium.org</owner>
  <summary>The time spent for authentication in case of a success.</summary>
</histogram>

<histogram name="ScreenLocker.ScreenLockTime" units="ms">
  <owner>sammiequon@chromium.org</owner>
  <summary>The time spent before the screen locker is ready.</summary>
</histogram>

<histogram name="Sdch3.AdvertisedWithSecureScheme" enum="BooleanHttps">
  <obsolete>
    Experiment complete, histogram gathering code removed.
  </obsolete>
  <owner>ellyjones@chromium.org</owner>
  <summary>
    Whether an SDCH dictionary was advertised over a secure scheme or not. This
    histogram is logged inside SdchManager at advertisement time.
  </summary>
</histogram>

<histogram name="Sdch3.Advertisement_Count">
  <obsolete>
    Deprecated 2017-9.
  </obsolete>
  <summary>
    The number of dictionaries advertised in an HTTP GET transaction that
    supports SDCH. Note that only non-zero advertisements are logged.
  </summary>
</histogram>

<histogram name="Sdch3.BlacklistReason" enum="SdchProblemCode">
  <obsolete>
    Deprecated 2017-9.
  </obsolete>
  <summary>
    The reason why a blacklist blocking a request from advertising SDCH was
    implemented. There is one entry in this histogram per inhibited request.
  </summary>
</histogram>

<histogram name="Sdch3.Dictionary size loaded" units="bytes">
  <obsolete>
    Deprecated 2017-9.
  </obsolete>
  <summary>
    Each sample is the byte count for a dictionary that is loaded by Chrome. A
    dictionary is loaded shortly after the first Google query performed in each
    session, and allows future SDCH transactions to be encoded/decoded using
    that dictionary.
  </summary>
</histogram>

<histogram name="Sdch3.DictionaryFate" enum="SdchDictionaryFate">
  <obsolete>
    Deprecated 2017-9.
  </obsolete>
  <summary>
    The fate, both on input and output, of dictionary requests. There is
    intended to be two entries in this histogram for each Get-Dictionary seen
    (except failed requests are not currently tracked).
  </summary>
</histogram>

<histogram name="Sdch3.DictionaryUseCount">
  <obsolete>
    Deprecated 2017-9.
  </obsolete>
  <summary>
    The number of times a dictionary has been successfully used for decoding,
    recorded at the time it is evicted from the manager.
  </summary>
</histogram>

<histogram name="Sdch3.Experiment2_Decode">
  <obsolete>
    Replaced by Sdch3.Experiment3_Holdback.
  </obsolete>
  <summary>
    Duration in time from when a request was made, until all bytes were
    received. During the running of an SDCH latency experiment, these packets
    were part of an SDCH encoded transmission made after the link had proven it
    was capable of handling SDCH compression.
  </summary>
</histogram>

<histogram name="Sdch3.Experiment2_Holdback">
  <obsolete>
    Replaced by Sdch3.Experiment3_Holdback.
  </obsolete>
  <summary>
    Duration in time from when a request was made, until all bytes were
    received. During the running of an SDCH latency experiment, these packets
    were part of a holdback, which precluded SDCH despite the fact that the link
    had proven it was capable of handling SDCH compression.
  </summary>
</histogram>

<histogram name="Sdch3.Experiment3_Decode">
  <obsolete>
    Deprecated 2017-9.
  </obsolete>
  <summary>
    Duration in time from the first byte of a request was received, until all
    bytes were received. During the running of an SDCH latency experiment, these
    packets were part of an SDCH encoded transmission made after the link had
    proven it was capable of handling SDCH compression.
  </summary>
</histogram>

<histogram name="Sdch3.Experiment3_Holdback">
  <obsolete>
    Deprecated 2017-9.
  </obsolete>
  <summary>
    Duration in time from the first byte of a request was received, until all
    bytes were received. During the running of an SDCH latency experiment, these
    packets were part of a holdback, which precluded SDCH despite the fact that
    the link had proven it was capable of handling SDCH compression.
  </summary>
</histogram>

<histogram name="Sdch3.Experiment_Decode">
  <obsolete>
    Replaced by Sdch3.Experiment2_Decode.
  </obsolete>
  <summary>
    Duration in time from when a request was made, until all bytes were
    received. During the running of an SDCH latency experiment, these packets
    were part of an SDCH encoded transmission made after the link had proven it
    was capable of handling SDCH compression.
  </summary>
</histogram>

<histogram name="Sdch3.Experiment_Holdback">
  <obsolete>
    Replaced by Sdch3.Experiment2_Holdback.
  </obsolete>
  <summary>
    Duration in time from when a request was made, until all bytes were
    received. During the running of an SDCH latency experiment, these packets
    were part of a holdback, which precluded SDCH despite the fact that the link
    had proven it was capable of handling SDCH compression.
  </summary>
</histogram>

<histogram name="Sdch3.Experiment_Holdback_1st_To_2nd_c" units="ms">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    Sampling only transmissions with 5 or more packets, the duration between
    receipt of the 1st **NON**-SDCH encoded packet to receipt of the 2nd packet,
    for processing by the SDCH filter. Packet count boundaries are calculated
    each time a read from the filter is called, assuming 1430 bytes of data per
    packet since the last boundary calculation. This *tends* to properly count
    small packets, but can err if small packets come at roughly the same time.
    During the running of an SDCH latency experiment, these packets were part of
    a holdback, which precluded SDCH despite the fact that the link had proven
    it was capable of handling SDCH compression.
  </summary>
</histogram>

<histogram name="Sdch3.Experiment_Holdback_1st_To_Last_a" units="ms">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    The duration between receipt of the 1st holdback (non-SDCH encoded) packet
    and receipt of the last packet. Only groups that are part of the holdback
    (i.e., could have been sdch encoded) are sampled.
  </summary>
</histogram>

<histogram name="Sdch3.Experiment_Holdback_2nd_To_3rd_c" units="ms">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    Sampling only transmissions with 5 or more packets, the duration between
    receipt of the 2nd **NON**-SDCH encoded packet to receipt of the 3rd packet,
    for processing by the SDCH filter. Packet count boundaries are calculated
    each time a read from the filter is called, assuming 1430 bytes of data per
    packet since the last boundary calculation. This *tends* to properly count
    small packets, but can err if small packets come at roughly the same time.
    During the running of an SDCH latency experiment, these packets were part of
    a holdback, which precluded SDCH despite the fact that the link had proven
    it was capable of handling SDCH compression.
  </summary>
</histogram>

<histogram name="Sdch3.Experiment_Holdback_3rd_To_4th_c" units="ms">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    Sampling only transmissions with 5 or more packets, the duration between
    receipt of the 3rd **NON**-SDCH encoded packet to receipt of the 4th packet,
    for processing by the SDCH filter. Packet count boundaries are calculated
    each time a read from the filter is called, assuming 1430 bytes of data per
    packet since the last boundary calculation. This *tends* to properly count
    small packets, but can err if small packets come at roughly the same time.
    During the running of an SDCH latency experiment, these packets were part of
    a holdback, which precluded SDCH despite the fact that the link had proven
    it was capable of handling SDCH compression.
  </summary>
</histogram>

<histogram name="Sdch3.Experiment_Holdback_4th_To_5th_c" units="ms">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    Sampling only transmissions with 5 or more packets, the duration between
    receipt of the 4th **NON**-SDCH encoded packet to receipt of the 5th packet,
    for processing by the SDCH filter. Packet count boundaries are calculated
    each time a read from the filter is called, assuming 1430 bytes of data per
    packet since the last boundary calculation. This *tends* to properly count
    small packets, but can err if small packets come at roughly the same time.
    During the running of an SDCH latency experiment, these packets were part of
    a holdback, which precluded SDCH despite the fact that the link had proven
    it was capable of handling SDCH compression.
  </summary>
</histogram>

<histogram name="Sdch3.FilterUseBeforeDisabling">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    If SDCH decoding was disabled client side, this records how many URLs were
    processed by the SDCH filter before disabling this feature. The most common
    number is 1, which happens when there is one home-page tab that contains
    SDCH encoded data, for which there is no dictionary loaded into the Chrome
    process (yet), since Chrome was just restarted. Large values in this
    histogram are indicative of flaky decompression, that works for a while, and
    then is disabled. Values of 2 or 3 may appear if a user has more than one
    home page with a query, and restarts there browser.
  </summary>
</histogram>

<histogram name="Sdch3.FirstUseInterval" units="ms">
  <obsolete>
    Deprecated 2017-9.
  </obsolete>
  <summary>
    The amount of time between creation/load of an SDCH dictionary and its first
    use.
  </summary>
</histogram>

<histogram name="Sdch3.Network_Decode_1st_To_2nd_c" units="ms">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    Sampling only transmissions with 5 or more packets, the duration between
    receipt of the 1st SDCH encoded packet and receipt of the 2nd packet, for
    processing by the SDCH filter. Packet count boundaries are calculated each
    time a read from the filter is called, assuming 1430 bytes of data per
    packet since the last boundary calculation. This *tends* to properly count
    small packets, but can err if small packets come at roughly the same time.
  </summary>
</histogram>

<histogram name="Sdch3.Network_Decode_1st_To_Last_a" units="ms">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    The duration between receipt of the 1st SDCH encoded packet and receipt of
    the last packet, for processing by the SDCH filter.
  </summary>
</histogram>

<histogram name="Sdch3.Network_Decode_2nd_To_3rd_c" units="ms">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    Sampling only transmissions with 5 or more packets, the duration between
    receipt of the 2nd SDCH encoded packet and receipt of the 3rd packet, for
    processing by the SDCH filter. Packet count boundaries are calculated each
    time a read from the filter is called, assuming 1430 bytes of data per
    packet since the last boundary calculation. This *tends* to properly count
    small packets, but can err if small packets come at roughly the same time.
  </summary>
</histogram>

<histogram name="Sdch3.Network_Decode_3rd_To_4th_c" units="ms">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    Sampling only transmissions with 5 or more packets, the duration between
    receipt of the 3rd SDCH encoded packet and receipt of the 4th packet, for
    processing by the SDCH filter. Packet count boundaries are calculated each
    time a read from the filter is called, assuming 1430 bytes of data per
    packet since the last boundary calculation. This *tends* to properly count
    small packets, but can err if small packets come at roughly the same time.
  </summary>
</histogram>

<histogram name="Sdch3.Network_Decode_4th_To_5th_c" units="ms">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    Sampling only transmissions with 5 or more packets, the duration between
    receipt of the 4th SDCH encoded packet and receipt of the 5th packet, for
    processing by the SDCH filter. Packet count boundaries are calculated each
    time a read from the filter is called, assuming 1430 bytes of data per
    packet since the last boundary calculation. This *tends* to properly count
    small packets, but can err if small packets come at roughly the same time.
  </summary>
</histogram>

<histogram name="Sdch3.Network_Decode_Bytes_Processed_a" units="bytes">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    (discontinued 7/29/2009, and replaced by
    Sdch3.Network_Decode_Bytes_Processed_b) The number of bytes processed
    (received over the net or from cache) by the SDCH filter chain.
  </summary>
</histogram>

<histogram name="Sdch3.Network_Decode_Bytes_Processed_b" units="bytes">
  <obsolete>
    Deprecated 2017-9.
  </obsolete>
  <summary>
    The number of bytes processed (received over the net or from cache) by the
    SDCH filter chain.
  </summary>
</histogram>

<histogram name="Sdch3.Network_Decode_Bytes_VcdiffOut_a" units="bytes">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    The number of bytes emitted after decoding by the SDCH filter.
  </summary>
</histogram>

<histogram name="Sdch3.Network_Decode_Latency_F_a" units="ms">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    The duration between putting the first byte of a request (such as a GET) on
    the wire, until the last by of compressed SDCH encoded content is received
    (with durations over 10 minutes discarded). During a planned latency
    experiment, some clients will receive encoded SDCH data, and other will
    received mere gzip'ed data (that passes through the SDCH filter unchanged).
  </summary>
</histogram>

<histogram name="Sdch3.Network_Decode_Packets_b">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    An approximation to the total number of SDCH encoded packets received for
    processing by the SDCH filter. Packet count boundaries are calculated each
    time a read from the filter is called, assuming 1430 bytes of data per
    packet since the last boundary calculation. This *tends* to properly count
    small packets, but can err if small packets come at roughly the same time.
  </summary>
</histogram>

<histogram name="Sdch3.Network_Decode_Ratio_a" units="bytes">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    The ratio of the number of bytes read from the network (or cache) and fed to
    the filter chain (usually the gunzip filter) vs. the number of bytes emitted
    by the SDCH filter to be rendered. This is commonly described as the SDCH
    compression ratio.
  </summary>
</histogram>

<histogram name="Sdch3.Network_Pass-through_1st_To_2nd_c" units="ms">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    Sampling only transmissions with 5 or more packets, the duration between
    receipt of the 1st **NON**-SDCH encoded packet to receipt of the 2nd packet,
    for processing by the SDCH filter. Packet count boundaries are calculated
    each time a read from the filter is called, assuming 1430 bytes of data per
    packet since the last boundary calculation. This *tends* to properly count
    small packets, but can err if small packets come at roughly the same time.
  </summary>
</histogram>

<histogram name="Sdch3.Network_Pass-through_1st_To_Last_a" units="ms">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    The duration between receipt of the 1st **NON**-SDCH encoded packet to
    receipt of the last packet, for processing by the SDCH filter.
  </summary>
</histogram>

<histogram name="Sdch3.Network_Pass-through_2nd_To_3rd_c" units="ms">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    Sampling only transmissions with 5 or more packets, the duration between
    receipt of the 2nd **NON**-SDCH encoded packet to receipt of the 3rd packet,
    for processing by the SDCH filter. Packet count boundaries are calculated
    each time a read from the filter is called, assuming 1430 bytes of data per
    packet since the last boundary calculation. This *tends* to properly count
    small packets, but can err if small packets come at roughly the same time.
  </summary>
</histogram>

<histogram name="Sdch3.Network_Pass-through_3rd_To_4th_c" units="ms">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    Sampling only transmissions with 5 or more packets, the duration between
    receipt of the 3rd **NON**-SDCH encoded packet to receipt of the 4th packet,
    for processing by the SDCH filter. Packet count boundaries are calculated
    each time a read from the filter is called, assuming 1430 bytes of data per
    packet since the last boundary calculation. This *tends* to properly count
    small packets, but can err if small packets come at roughly the same time.
  </summary>
</histogram>

<histogram name="Sdch3.Network_Pass-through_4th_To_5th_c" units="ms">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    Sampling only transmissions with 5 or more packets, the duration between
    receipt of the 4th **NON**-SDCH encoded packet to receipt of the 5th packet,
    for processing by the SDCH filter. Packet count boundaries are calculated
    each time a read from the filter is called, assuming 1430 bytes of data per
    packet since the last boundary calculation. This *tends* to properly count
    small packets, but can err if small packets come at roughly the same time.
  </summary>
</histogram>

<histogram name="Sdch3.Network_Pass-through_Latency_F_a" units="ms">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    The duration between putting the first byte of a request (such as a GET) on
    the wire, until the last by gzip compressed content is received and
    passed-through unchanged by the SDCH filter (with durations over 10 minutes
    discarded). During a planned latency experiment, some clients will receive
    encoded SDCH data, and other will received mere gzip'ed data (that passes
    through the SDCH filter unchanged).
  </summary>
</histogram>

<histogram name="Sdch3.Network_Pass-through_Packets_b">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    The total number of **NON**-SDCH encoded packets received for processing by
    the SDCH filter in one URL fetch. Packet count boundaries are calculated
    each time a read from the filter is called, assuming 1430 bytes of data per
    packet since the last boundary calculation. This *tends* to properly count
    small packets, but can err if small packets come at roughly the same time.
  </summary>
</histogram>

<histogram name="Sdch3.NetworkBytesSavedByCompression" units="bytes">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <owner>ellyjones@chromium.org</owner>
  <summary>
    The absolute difference in bytes between the amount of data entering the
    SDCH filter and the amount of data exiting the SDCH filter.
  </summary>
</histogram>

<histogram name="Sdch3.NetworkBytesSpent" units="bytes">
  <obsolete>
    Deprecated 2017-9.
  </obsolete>
  <owner>ellyjones@chromium.org</owner>
  <summary>
    Absolute sizes, in bytes, of SDCH dictionaries fetched over the network.
    These are logged in SdchOwner when dictionary fetches complete.
  </summary>
</histogram>

<histogram name="Sdch3.PartialBytesIn" units="bytes">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    If/when a ProblemCode INCOMPLETE_SDCH_CONTENT reports that the VCDIFF
    decoder still has internally buffered data that has never been read, this
    histogram reports the number of bytes that were received over the net (or
    from the cache) and fed to the start of the filter chain (usually to the
    gunzip filter).
  </summary>
</histogram>

<histogram name="Sdch3.PartialVcdiffIn" units="bytes">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    If/when a ProblemCode INCOMPLETE_SDCH_CONTENT reports that the VCDIFF
    decoder still has internally buffered data that has never been read, this
    histogram reports the number of bytes that were received over the net (or
    from the cache) and fed to VCDIFF decoder (usually after gunzipping).
  </summary>
</histogram>

<histogram name="Sdch3.PartialVcdiffOut" units="bytes">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    If/when a ProblemCode INCOMPLETE_SDCH_CONTENT reports that the VCDIFF
    decoder still has internally buffered data that has never been read, this
    histogram reports the number of bytes that were output by the VCDIFF decoder
    (and sent toward the renderer).
  </summary>
</histogram>

<histogram name="Sdch3.PersistenceFailureReason"
    enum="SdchPersistenceFailureReason">
  <obsolete>
    Deprecated 2017-9.
  </obsolete>
  <summary>
    Tracks failures that occur when reading in or writing out persisted
    dictionary information.
  </summary>
</histogram>

<histogram name="Sdch3.ProblemCodes_3" enum="SdchProblemCode">
  <obsolete>
    Deprecated 2014-11. Sdch3.ProblemCodes_5 used instead.
  </obsolete>
  <summary>Each sample is the report of a distinct problem code.</summary>
</histogram>

<histogram name="Sdch3.ProblemCodes_4" enum="SdchProblemCode">
  <obsolete>
    Deprecated 2014-11. Sdch3.ProblemCodes_5 used instead.
  </obsolete>
  <summary>Each sample is the report of a distinct problem code.</summary>
</histogram>

<histogram name="Sdch3.ProblemCodes_5" enum="SdchProblemCode">
  <obsolete>
    Deprecated 2017-9.
  </obsolete>
  <summary>Each sample is the report of a distinct problem code.</summary>
</histogram>

<histogram name="Sdch3.ResponseCorruptionDetection.Cached"
    enum="SdchResponseCorruptionDetectionCauses">
  <obsolete>
    Deprecated 2017-9.
  </obsolete>
  <summary>
    Attempted SDCH decoding can fail at the Read() filter processing stage. In
    some of those cases, the request is corrupted enough that it must be either
    retried or failed completely. This histogram records the details of why the
    request was considered corrupted, for results returned from the cache.
  </summary>
</histogram>

<histogram name="Sdch3.ResponseCorruptionDetection.Uncached"
    enum="SdchResponseCorruptionDetectionCauses">
  <obsolete>
    Deprecated 2017-9.
  </obsolete>
  <summary>
    Attempted SDCH decoding can fail at the Read() filter processing stage. In
    some of those cases, the request is corrupted enough that it must be either
    retried or failed completely. This histogram records the details of why the
    request was considered corrupted for results returned from the network.
  </summary>
</histogram>

<histogram name="Sdch3.TimeWeightedMemoryUse" units="bytes">
  <obsolete>
    Deprecated 2017-9.
  </obsolete>
  <owner>ellyjones@chromium.org</owner>
  <summary>
    Measures the time-weighted memory use of SDCH dictionaries, in bytes. The
    numerator is bytes of dictionary times seconds that dictionary was in
    memory, and the denominator is seconds that the Chrome process lives.
  </summary>
</histogram>

<histogram name="Sdch3.UnflushedBufferSize" units="bytes">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    If/when a ProblemCode UNFLUSHED_CONTENT reports that the SDCH filter is
    still buffering output of the VCDIFF decoder that has never been read, this
    histogram reports the number of bytes that were in that buffer.
  </summary>
</histogram>

<histogram name="Sdch3.UnflushedBytesIn" units="bytes">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    If/when a ProblemCode UNFLUSHED_CONTENT reports that the SDCH filter is
    still buffering output of the VCDIFF decoder that has never been read, this
    histogram reports the number of bytes that were received over the net (or
    from the cache) and fed to the start of the filter chain (usually to the
    gunzip filter).
  </summary>
</histogram>

<histogram name="Sdch3.UnflushedVcdiffIn" units="bytes">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    If/when a ProblemCode UNFLUSHED_CONTENT reports that the SDCH filter is
    still buffering output of the VCDIFF decoder that has never been read, this
    histogram reports the number of bytes that were received over the net (or
    from the cache) and fed to VCDIFF decoder (usually after gunzipping).
  </summary>
</histogram>

<histogram name="Sdch3.UnflushedVcdiffOut" units="bytes">
  <obsolete>
    Deprecated 2016-11.
  </obsolete>
  <summary>
    If/when a ProblemCode UNFLUSHED_CONTENT reports that the SDCH filter is
    still buffering output of the VCDIFF decoder that has never been read, this
    histogram reports the number of bytes that were output by the VCDIFF decoder
    (and sent toward the renderer).
  </summary>
</histogram>

<histogram name="Sdch3.UsageInterval" units="ms">
  <obsolete>
    Use Sdch3.UsageInterval2 instead.
  </obsolete>
  <summary>
    The amount of time from the last time an SDCH dictionary was used. For the
    first use of a dictionary, the maximum time is used.
  </summary>
</histogram>

<histogram name="Sdch3.UsageInterval2" units="ms">
  <obsolete>
    Deprecated 2017-9.
  </obsolete>
  <summary>
    The amount of time from the last time an SDCH dictionary was used. Not
    recorded on first dictionary use. First use is recorded as
    Sdch3.FirstUseInterval.
  </summary>
</histogram>

<histogram name="Search.AddSearchProvider" enum="AddSearchProvider">
  <obsolete>
    Replaced by Search.AddSearchProvider2, which is also now obsolete.
  </obsolete>
  <owner>estade@chromium.org</owner>
  <summary>
    Measures how much the user modifies their search engines, whether through
    window.external.AddSearchProvider or chrome://settings.
  </summary>
</histogram>

<histogram name="Search.AddSearchProvider2" enum="AddSearchProvider">
  <obsolete>
    AddSearchProvider was removed 05/2016.
  </obsolete>
  <owner>estade@chromium.org</owner>
  <summary>
    Measures usage of window.external.AddSearchProvider and user interaction
    with the resulting confirmation dialog (if any). Only works on Views
    platforms (Win, Linux, CrOS).
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.All.ResultsSeen" enum="Boolean">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Records whether the user opened the panel when it was shown. Recorded for
    all gestures for all users when the UX is hidden. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.OutcomesDuration" units="days"
    expires_after="M75">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Records the duration of persisted outcomes between the time they were stored
    and the time that they were sent back to the server. Recorded when persisted
    data is sent to the server. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.Ranker.FeaturesAvailable"
    enum="Boolean">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Logs that the UX has entered a state where features are available to be
    recorded to Ranker. A value of true indicates that the available features
    include outcomes, false if they are just features at inference-time. Use to
    correlate with what actually gets recorded in the Search.
    ContextualSearch.Ranker.Recorded histogram. Recorded when a tap gesture is
    recognized that might trigger our UX (for pure features), and when the UX is
    actually shown (for outcomes). Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.Ranker.Model.Status"
    enum="RankerModelStatus">
  <owner>donnd@chromium.org</owner>
  <owner>charleszhao@chromium.org</owner>
  <summary>Tracks the outcome of attempts to download a Ranker Model.</summary>
</histogram>

<histogram name="Search.ContextualSearch.Ranker.NotSuppressed.ResultsSeen"
    enum="ContextualSearchResultsSeen">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Records whether the user opened the panel when a tap was not suppressed by
    Ranker. Recorded when the UX is hidden. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.Ranker.Recorded" enum="Boolean">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Logs that features were recorded to Ranker and whether it was an outcome or
    not. Recorded when the UX is shown or hidden. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.Ranker.RecordedNative" enum="Boolean">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Logs that features were recorded to Ranker from native code and whether it
    was an outcome or not. Recorded when the UX is shown or hidden. Implemented
    for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.Ranker.Suppressed" enum="Boolean">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Records Ranker's prediction about whether a tap should be suppressed or not.
    Recorded when the UX is hidden. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.Ranker.Timer.DownloadModel" units="ms">
  <owner>charleszhao@chromium.org</owner>
  <owner>donnd@chromium.org</owner>
  <summary>
    Time taken for the Ranker Model Loader to download its model from the
    configured URL, in ms.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.Ranker.Timer.ParseModel" units="ms">
  <owner>charleszhao@chromium.org</owner>
  <owner>donnd@chromium.org</owner>
  <summary>
    Time taken for the Ranker Model Loader to parse its model, in ms.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.Ranker.Timer.ReadModel" units="ms">
  <owner>charleszhao@chromium.org</owner>
  <owner>donnd@chromium.org</owner>
  <summary>
    Time taken for the Ranker Model Loader to read its model from local storage
    (cache), in ms.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.Ranker.Timer.WriteModel" units="ms">
  <owner>charleszhao@chromium.org</owner>
  <owner>donnd@chromium.org</owner>
  <summary>
    Time taken for the Ranker Model Loader to write its model to local storage,
    in ms.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.Ranker.WasAbleToPredict"
    enum="Boolean">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Records whether Ranker was able to make a prediction about tap suppression.
    Recorded when the UX is triggered by tap. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.Ranker.WouldSuppress.ResultsSeen"
    enum="ContextualSearchResultsSeen">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Records whether the user opened the panel when a tap would be suppressed by
    Ranker if suppression was enforced. Recorded when the UX is hidden.
    Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.Tap.ResultsSeen" enum="Boolean">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Records whether the user opened the panel when it was shown in response to a
    tap gesture, for all users. Recorded when the UX is hidden. Implemented for
    Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.Tap.SyncEnabled.ResultsSeen"
    enum="Boolean" expires_after="M76">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Records whether the user opened the panel when it was shown for sync-enabled
    users only (this is an approximation for the population that logs to UKM).
    Recorded for all gestures for users with sync enabled when the UX is hidden.
    Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.UnifiedConsent.PreviouslyUndecided"
    enum="Boolean" expires_after="2019-01-30">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Records the previous state of the user's enabled preference to indicate
    whether they were decided or undecided about fully enabling this feature.
    Recorded during the rollout of Unified Consent when the Contextual Search
    preference is changed. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.UnifiedConsent.ThrottledRequests"
    enum="Boolean" expires_after="2019-01-30">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Records whether throttling for Unified Consent was done for all requests.
    Recorded when the user taps on text and the system would like the server to
    suggest what to search for using page context, regardless of feature-enabled
    state. Recorded multiple times for each request. Supports the rollout of
    Unified Consent for Contextual Search. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.UnifiedConsent.ThrottleEligible"
    enum="Boolean" expires_after="2019-01-30">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Records whether this user had a request throttled or not when needed.
    Recorded when the user taps on text and the system would like the server to
    suggest what to search for using page context, and throttling is in effect
    for this user. Supports the rollout of Unified Consent for Contextual
    Search. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchAllCapsResultsSeen"
    enum="ContextualSearchResultsSeen">
  <obsolete>
    Deprecated 05/2017 because it's no longer ever used.
  </obsolete>
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether search results were seen during a contextual search where the
    selected text consisted of all capital letters. Only logged when contextual
    search is triggered due to a tap. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchBarNoOverlap.PeekDuration" units="ms"
    expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The duration that the panel was peeking before being opened when triggered
    by a tap that was in a part of the screen where it overlaps the Bar. Logged
    when the panel is closed after being opened. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchBarOverlap"
    enum="ContextualSearchTapSuppression">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether a Tap was suppressed because the Bar overlapped the selection area.
    Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchBarOverlap.PeekDuration" units="ms"
    expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The duration that the panel was peeking before being opened when triggered
    by a tap at the bottom of the screen where it overlaps the Bar. Logged when
    the panel is closed after being opened. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchBarOverlapSeen"
    enum="ContextualSearchBarOverlapSeen" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether the Bar overlapped the selection area and whether the results were
    seen. Recorded when the UX is hidden. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchBasePageProtocol"
    enum="ContextualSearchBasePageProtocol" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The protocol of the base page, logged at the time that any Search Term
    Resolution Response is received.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchBlacklistSeen"
    enum="ContextualSearchBlacklistSeen">
  <obsolete>
    Discontinued on 5/2017 due to experiment being completed.
  </obsolete>
  <owner>donnd@chromium.org</owner>
  <owner>pedrosimonetti@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The details (blacklist reason and whether the results were seen) of every
    search term issued by a tap gesture. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchContextualCardsIntegration.DataShown"
    enum="Boolean">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether Contextual Cards data was shown in the Contextual Search Bar.
    Contextual Cards data is included with the search term resolution response.
    Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchContextualCardsIntegration.ResultsSeen"
    enum="ContextualSearchResultsSeen">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether search results were seen as part of a Contextual Search when
    Contextual Cards data was shown. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchDurationBetweenTriggerAndScrollNotSeen"
    units="ms" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The duration between the panel being triggered and the panel being dismissed
    due to a scroll when search results were not seen. Implemented for Android.
    Prior to M57 this was recorded on tap and longpress; on M57+ it is only
    recorded on tap.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchDurationBetweenTriggerAndScrollSeen"
    units="ms" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The duration between the panel being triggered and the panel being dismissed
    due to a scroll when search results were seen. Implemented for Android.
    Prior to M57 this was recorded on tap and longpress; on M57+ it is only
    recorded on tap.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchDurationNonPrefetched" units="ms">
  <obsolete>
    Discontinued on 2/2017 Due to data being buggy and not useful.
  </obsolete>
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The time from opening the panel until the SERP is fully loaded. Applies only
    to non-prefetched requests. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchDurationPrefetched" units="ms">
  <obsolete>
    Discontinued on 2/2017 Due to data being buggy and not useful.
  </obsolete>
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The time from opening the panel until the SERP is fully loaded. Applies only
    to prefetched requests. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchDurationSeen" units="ms"
    expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The time from initiating to ending a contextual search, when results were
    seen as part of the search. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchDurationUnseen" units="ms"
    expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The time from initiating to ending a contextual search, when results were
    not seen as part of the search and the search did not end with the beginning
    of another contextual search. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchDurationUnseenChained" units="ms"
    expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The time from initiating to ending a contextual search, when results were
    not seen as part of the search and the search ended with the beginning of
    another contextual search. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchEnterClosed"
    enum="ContextualSearchEnterClosedStateChange" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The details (previous state and reason) of the first entry into the closed
    panel state within a contextual search. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchEnterExpanded"
    enum="ContextualSearchEnterExpandedStateChange" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The details (previous state and reason) of the first entry into the expanded
    panel state within a contextual search. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchEnterMaximized"
    enum="ContextualSearchEnterMaximizedStateChange" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The details (previous state and reason) of the first entry into the
    maximized panel state within a contextual search. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchEnterPeeked"
    enum="ContextualSearchEnterPeekedStateChange" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The details (previous state and reason) of the first entry into the peeked
    panel state within a contextual search. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchEntitySeen"
    enum="ContextualSearchResultsSeen">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether search results were seen as part of a Contextual Search when a tap
    was on a word that we think is an entity. Recorded when Contextual Search is
    dismissed. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchExitClosed"
    enum="ContextualSearchExitClosedStateChange" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The details (destination state and reason) of the first exit out of the
    closed panel state within a contextual search. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchExitExpanded"
    enum="ContextualSearchExitExpandedStateChange" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The details (destination state and reason) of the first exit out of the
    expanded panel state within a contextual search. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchExitMaximized"
    enum="ContextualSearchExitMaximizedStateChange" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The details (destination state and reason) of the first exit out of the
    maximized panel state within a contextual search. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchExitPeeked"
    enum="ContextualSearchExitPeekedStateChange">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The details (destination state and reason) of the first exit out of the
    peeked panel state within a contextual search. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchFallbackSearchRequestStatus"
    enum="ContextualSearchSearchRequestStatus">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The status of the Contextual Search fallback Search request. Implemented for
    Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchFirstRunFlowOutcome"
    enum="ContextualSearchPreferenceState" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The state of the Contextual Search Preference after the first run flow.
    Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchFirstRunPanelSeen"
    enum="ContextualSearchFirstRunPanelSeen" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether the first run flow's panel was seen as part of a contextual search.
    Only logged when the user triggered the first run flow yet exited the search
    still in the undecided preference state. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchIconSpriteAnimated"
    enum="ContextualSearchIconSpriteAnimated">
  <obsolete>
    Contextual Search icon sprite removed 04/2017.
  </obsolete>
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether search results were seen, whether the search provider icon sprite
    was animated when the panel first appeared, and the triggering gesture. If
    animation is disabled due to a field trial, we still log
    &quot;animated&quot; if the animation would have run otherwise.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchIPHShown" enum="Boolean">
  <owner>donnd@chromium.org</owner>
  <owner>mahmoudi@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The number of times the Contextual Search panel is opened, categorized by
    whether In-Product Help for Contextual Search was shown before. Logged when
    the panel is opened. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchLiteralSearchDuration" units="ms"
    expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The time from starting a literal search until the results in the SERP start
    to become viewable. Applies only to prefetched requests. Implemented for
    Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchLowPrioritySearchRequestStatus"
    enum="ContextualSearchSearchRequestStatus" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The status of the Contextual Search low priority Search request. Implemented
    for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchMandatoryPromoOutcomeByGesture"
    enum="ContextualSearchOutcomeByGesture">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The outcome of the mandatory Promo broken down by original triggering
    gesture. Logged for each view of the promo. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchNormalPrioritySearchRequestStatus"
    enum="ContextualSearchSearchRequestStatus">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The status of the Contextual Search normal priority Search request.
    Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPanelOpenDuration" units="ms"
    expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The time from opening the panel beyond peek until the panel is closed.
    Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPanelOpenedIPHShown" enum="Boolean">
  <owner>donnd@chromium.org</owner>
  <owner>mahmoudi@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The number of times the Contextual Search panel is opened, categorized by
    whether In-Product Help for opening the panel was shown before. Logged when
    the panel is opened. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPeekPromoCount" units="count">
  <obsolete>
    Removed because the feature no longer exists.
  </obsolete>
  <owner>donnd@chromium.org</owner>
  <owner>pedrosimonetti@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The number of times the Peek Promo was seen. This histogram will be emitted
    when the Panel closes. The panel is always visible when the Peek Promo is
    shown, so this histogram will always be emitted after a Promo is shown
    (except in the case of a crash). This histogram does not care whether the
    Panel was opened.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPeekPromoCountUntilOpened"
    units="count">
  <obsolete>
    Removed because the feature no longer exists.
  </obsolete>
  <owner>donnd@chromium.org</owner>
  <owner>pedrosimonetti@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The number of times the Peek Promo was seen until the Panel was opened. This
    histogram will be emitted when the Panel closes, if the Panel was opened
    with the Peek Promo visible. If the Panel is not opened, nothing will be
    emitted.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPeekPromoOutcome"
    enum="ContextualSearchPeekPromoOutcome">
  <obsolete>
    Removed because the feature no longer exists.
  </obsolete>
  <owner>donnd@chromium.org</owner>
  <owner>pedrosimonetti@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The outcome of the Contextual Search Peek Promo for those who have seen the
    promo and for those who would have seen the promo if it was enabled, so we
    can compare the effect of the promo on users opening the Panel. This
    histogram will be emitted when the Panel closes, if the conditions to
    display the Peek Promo are met, regardless of whether the Peek Promo was
    actually visible (the Promo is controlled by Finch) and regardless of
    whether the Panel was opened.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPreferenceState"
    enum="ContextualSearchPreferenceState">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The state of the Contextual Search Preference. Can be logged multiple times.
    Used to determine the population size (user view). Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPreferenceStateChange"
    enum="ContextualSearchPreferenceState">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The Contextual Search preference state after a modification from the
    preference menu. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPrefetchSummary"
    enum="ContextualSearchPrefetchSummary">
  <obsolete>
    Discontinued on 2/2017 Due to data not being useful.
  </obsolete>
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    A summary histogram for prefetch timings, indicating fully preloaded, etc.
    Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPrevious28DayCtr" units="%"
    expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The CTR from the previous 28 day period for each user, expressed as a
    percentage. Logged the first time the panel is closed in each new week.
    Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPrevious28DayImpressions" units="views"
    expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The number of user impressions of the Bar from the previous 28 day period.
    Logged the first time the panel is closed in each new week. Implemented for
    Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPreviousWeekCtr" units="%"
    expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The CTR from the previous week for each user, expressed as a percentage.
    Logged the first time the panel is closed in each new week. Implemented for
    Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPreviousWeekImpressions" units="views"
    expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The number of user impressions of the Bar from the previous week. Logged the
    first time the panel is closed in each new week. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPromoOpenCount" units="opens">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The total count of times that the bar with the promo has been opened. Once
    the user decides, this counter is no longer updated.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPromoOutcomeByGesture"
    enum="ContextualSearchOutcomeByGesture" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The outcome of the promo broken down by original triggering gesture. Logged
    for each view of the promo. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPromoSeenByGesture"
    enum="ContextualSearchSeenByGesture">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether the promo was seen, broken down by original triggering gesture.
    Logged each time the promo was activated. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPromoTapsBeforeFirstOpen" units="taps">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The historic number of taps that showed a peeking bar with the opt-out promo
    before the first time the user opened the panel.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPromoTapsForNeverOpened" units="taps">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The historic number of taps that showed a peeking bar with the opt-out promo
    for users who have never opened the panel. This count may be limited by the
    Finch config param promo_on_limited_taps.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPromoTapsRemaining" units="taps">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The number of remaining taps that can trigger the promo for this user.
    Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchQuickActions.Category"
    enum="ContextualSearchQuickActionCategory">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The category of quick actions shown in the Contextual Search bar. Recorded
    when the quick action is set. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchQuickActions.Clicked"
    enum="BooleanClicked">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether a quick action in the Contextual Search bar was clicked. Recorded
    when Contextual Search is dismissed. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchQuickActions.IntentResolution"
    enum="ContextualSearchQuickActionIntentResolution">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether a Contextual Search quick action intent resolved to zero, one, or
    many apps. Recorded when the quick action intent URI is resolved.
    Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchQuickActions.ResultsSeen"
    enum="ContextualSearchResultsSeen">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether search results were seen as part of a Contextual Search when a quick
    action was shown. Recorded when Contextual Search is dismissed. Implemented
    for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchQuickActions.Shown" enum="BooleanShown"
    expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether a quick action was shown in the Contextual Search bar. Recorded when
    the quick action is set. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchQuickAnswerSeen"
    enum="ContextualSearchQuickAnswerSeen">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether a Quick Answer was activated, considered an answer, and seen.
    Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchRecentScrollNotSeen" units="ms">
  <obsolete>
    Deprecated 02/2017.
  </obsolete>
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The duration since a recent scroll when the results were not seen. Recorded
    when the UX is hidden. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchRecentScrollSeen" units="ms">
  <obsolete>
    Deprecated 02/2017.
  </obsolete>
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The duration since a recent scroll when the results were seen. Recorded when
    the UX is hidden. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchRecentScrollSuppression"
    enum="ContextualSearchTapSuppression" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether showing the Tap to Search UX in response to a Tap was suppressed by
    a recent scroll. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchResolutionDuration" units="ms"
    expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The time from starting a resolving search until the Search Term Resolves.
    Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchResolvedSearchDuration" units="ms"
    expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The time from starting a resolving search until the results in the SERP
    start to become viewable. Applies only to prefetched requests. Implemented
    for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchResolvedTermWords"
    enum="ContextualSearchResolvedTermWords" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether the search term was single or multi-word, logged at the time that
    any Search Term Resolution Response is received.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchResultsSeen"
    enum="ContextualSearchResultsSeen">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether search results were seen as part of a contextual search. Implemented
    for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchResultsSeenByGesture"
    enum="ContextualSearchSeenByGesture">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether search results were seen, broken down by original triggering
    gesture. Only includes users that have enabled. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchResultsSeenSelectionWasUrl"
    enum="ContextualSearchSeenByGesture">
  <obsolete>
    Deprecated 05/2017 because it's no longer ever used.
  </obsolete>
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether search results were seen (Contextual Search panel was opened) when
    the selection was part of a URL, broken down by original triggering gesture.
    Includes both users that have enabled Contextual Search and users that are
    undecided (have neither enabled or disabled the feature). Implemented for
    Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchScreenTopSuppressed"
    enum="ContextualSearchTapSuppression" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether Taps near the top of the screen was suppressed. Implemented for
    Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchSecondTapMlOverrideSeen" enum="Boolean">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether results were seen for a second tap that was allowed to override ML
    Tap Suppression. Recorded when the UX is hidden. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchSecondTapSeen"
    enum="ContextualSearchResultsSeen">
  <obsolete>
    Removed 11/2017 because the data is no longer valuable.
  </obsolete>
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether results were seen for a Tap during suppression when Tap Suppression
    is enabled. Recorded when the UX is hidden. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchSelectionLengthNotSeen" units="chars"
    expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The length of the triggering selection when search results were not seen.
    Only logged when contextual search is triggered due to a tap. Implemented
    for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchSelectionLengthSeen" units="chars"
    expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The length of the triggering selection when search results were seen. Only
    logged when contextual search is triggered due to a tap. Implemented for
    Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchSelectionLengthSuppression"
    enum="ContextualSearchTapSuppression" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether a Tap was suppressed because the selection length was less than the
    minimum selection length. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchSelectionValid"
    enum="ContextualSearchSelectionValid" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether a Contextual Search selection was valid. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchSerpLoadedOnClose"
    enum="ContextualSearchLoaded">
  <obsolete>
    Removed 02/2017 because the data is no longer valuable.
  </obsolete>
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether the SERP was fully loaded when an opened panel was closed.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchShouldTranslate"
    enum="ContextualSearchShouldTranslate">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Emitted when a translate one-box should be forced, to indicate if it
    actually was forced or simply would have been forced if not disabled by a
    flag in the variations_service.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchStartedWithCapitalResultsSeen"
    enum="ContextualSearchResultsSeen">
  <obsolete>
    Removed 05/2017 because the data is no longer needed.
  </obsolete>
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether search results were seen during a contextual search where the
    selected text started with a capital letter but was not all capital letters.
    Only logged when contextual search is triggered due to a tap. Implemented
    for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchTapDurationNotSeen" units="ms"
    expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The duration of a tap that triggered a Contextual Search when the user does
    not open the panel. Implemented for Android. Logged when the panel closes
    after being triggered by a tap.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchTapDurationSeen" units="ms"
    expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The duration of a tap that triggered a Contextual Search when the user does
    open the panel. Implemented for Android. Logged when the panel closes after
    being triggered by a tap and subsequently opened.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchTapIPHShown" enum="Boolean">
  <owner>donnd@chromium.org</owner>
  <owner>mahmoudi@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The number of times the Contextual Search is triggered by tapping,
    categorized by whether In-Product Help for tapping was shown before. Logged
    when Contextual Search is triggered by tapping. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchTapLongDurationSeen"
    enum="ContextualSearchResultsSeen" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether results were seen for a Tap that was of long duration. Recorded when
    the UX is hidden. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchTapLongWordSeen"
    enum="ContextualSearchResultsSeen" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether results were seen for a Tap that was on a word considered long.
    Recorded when the UX is hidden. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchTapOnWordMiddleSeen"
    enum="ContextualSearchResultsSeen" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether results were seen for a Tap that was on the middle part of a word.
    Recorded when the UX is hidden. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchTapShortDurationSeen"
    enum="ContextualSearchResultsSeen" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether results were seen for a Tap that was of short duration. Recorded
    when the UX is hidden. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchTapShortWordSeen"
    enum="ContextualSearchResultsSeen" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether results were seen for a Tap that was on a word considered short.
    Recorded when the UX is hidden. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchTapsSinceOpenDecided" units="taps"
    expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The count of taps that showed a peeking bar without the opt-out promo since
    this user has last opened the panel.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchTapsSinceOpenUndecided" units="taps"
    expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The count of taps that showed a peeking bar with the opt-out promo since
    this user has last opened the panel.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchTapSuppressionSeen"
    enum="ContextualSearchResultsSeen">
  <obsolete>
    Removed 11/2017 because the data is no longer valuable.
  </obsolete>
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether results were seen for a Tap before suppression when Tap Suppression
    is enabled. Recorded when the UX is hidden. Implemented for Android.
  </summary>
</histogram>

<histogram
    name="Search.ContextualSearchTapSuppressionSeen.AnyHeuristicSatisfied"
    enum="ContextualSearchSuppressionResultsSeen" expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether results were seen for a Tap and whether any suppression heuristic
    was satisifed. Recorded when the UX is still shown (suppression not enabled,
    only logged). Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchTimeToSearch" units="ms"
    expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The time between tapping on a word and performing a search. Implemented for
    Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchTopLocationNotSeen" units="dps"
    expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The DPs count histogram for Taps that were not seen. Implemented for
    Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchTopLocationSeen" units="dps"
    expires_after="M72">
  <owner>donnd@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    The DPs count histogram for Taps that were seen. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchTranslateCondition" enum="Boolean">
  <owner>donnd@chromium.org</owner>
  <owner>mahmoudi@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    For each contextual search that is triggered by tap, records whether the
    translation conditions are met. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.DefaultSearchChangeOrigin"
    enum="DefaultSearchChangeOrigin">
  <owner>mathp@chromium.org</owner>
  <summary>
    The origin/cause of a change to the default search provider.
  </summary>
</histogram>

<histogram name="Search.DefaultSearchProvider" enum="OmniboxSearchEngine">
  <obsolete>
    Made obsolete around Chrome 32. Use Search.DefaultSearchProviderType
    instead.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The id of the default search engine that is loaded after Chrome startup. See
    src/chrome/browser/search_engines/prepopulate_engines.json for more info.
  </summary>
</histogram>

<histogram name="Search.DefaultSearchProviderType"
    enum="OmniboxSearchEngineType" expires_after="2020-07-30">
  <owner>mpearson@chromium.org</owner>
  <owner>csharp@chromium.org</owner>
  <summary>
    The type of the default search engine that is loaded when a profile is
    opened or after a profile reset. Note that at least one profile is opened on
    startup. Due to an error, there was a period from roughly May 9 2014 to May
    23 2014 during which this was not being logged.
  </summary>
</histogram>

<histogram name="Search.DesktopSearch.RedirectionInfobarCloseAction"
    enum="DesktopSearchRedirectionInfobarCloseAction">
  <obsolete>
    Deprecated 05/2016 because desktop searches are no longer opened in the
    default browser.
  </obsolete>
  <owner>fdoray@chromium.org</owner>
  <summary>
    The action performed by the user to close the infobar explaining that a
    desktop search has been redirected to the default search engine.
  </summary>
</histogram>

<histogram name="Search.DesktopSearch.URLAction" enum="DesktopSearchURLAction">
  <obsolete>
    Deprecated 05/2016 because desktop searches are no longer opened in the
    default browser.
  </obsolete>
  <owner>fdoray@chromium.org</owner>
  <summary>
    The action performed when a desktop search URL is passed to the browser
    through the command line.
  </summary>
</histogram>

<histogram name="Search.GsaAccountChangeNotificationSource"
    enum="GsaAccountChangeNotificationSource">
  <owner>lizeb@chromium.org</owner>
  <summary>
    On Android, when GSA tells Chrome about an account change, what is the
    notification mechanism used, which is either the service connection, or a
    broadcast. Recorded once per account change.
  </summary>
</histogram>

<histogram name="Search.GsaBroadcastsAccountChanges"
    enum="BooleanAccountChange">
  <owner>lizeb@chromium.org</owner>
  <summary>
    On Android, whether GSA tells Chrome about account changes through the
    service or through a broadcast. This is reported at most once per Chrome
    startup.
  </summary>
</histogram>

<histogram name="Search.GsaProcessMemoryPss" units="KB">
  <obsolete>
    Deprecated 06/2017, no longer recorded.
  </obsolete>
  <owner>lizeb@chromium.org</owner>
  <summary>
    On Android, when Chrome connects to a bound service exposed by GSA, the
    memory footprint of the GSA process in KB, as measured by PSS. Reported at
    most once per Chrome startup.
  </summary>
</histogram>

<histogram name="Search.HistoryReport.DeltaFile.LastSeqNo" units="count"
    expires_after="M71">
  <owner>wychen@chromium.org</owner>
  <owner>yusufo@chromium.org</owner>
  <summary>
    The last sequential number in the delta file for Icing. This is measured on
    cold start.
  </summary>
</histogram>

<histogram name="Search.HistoryReport.DeltaFile.LevelDBEntries" units="entries"
    expires_after="2019-06-01">
  <owner>wychen@chromium.org</owner>
  <owner>yusufo@chromium.org</owner>
  <summary>
    The number of entries in the delta file level DB for Icing. This is measured
    on cold start.
  </summary>
</histogram>

<histogram name="Search.HistoryReport.UsageReportsBuffer.LevelDBEntries"
    units="entries" expires_after="2019-06-01">
  <owner>wychen@chromium.org</owner>
  <owner>yusufo@chromium.org</owner>
  <summary>
    The number of entries in the usage report level DB for Icing. This is
    measured on cold start.
  </summary>
</histogram>

<histogram name="Search.IcingContextReportingStatus"
    enum="IcingContextReportingStatus">
  <owner>donnd@chromium.org</owner>
  <summary>
    Records the reason why a context report to Icing failed, every time Chrome
    attemps to record the current context (tab switching, navigations, etc).
    Also records reasons why context reporting might be disabled. Recorded on
    Android only.
  </summary>
</histogram>

<histogram name="Search.iOS.SelectDefaultSearchEngine"
    enum="OmniboxSearchEngineType" expires_after="2020-02-04">
  <owner>mrsuyi@chromium.org</owner>
  <summary>
    When an iOS user changes the default search engine in chrome Settings,
    records the search engine's type.
  </summary>
</histogram>

<histogram name="Search.MigratedPrefToDictionaryValue" enum="BooleanHit">
  <obsolete>
    Deprecated after migrator is deleted in 12/2016.
  </obsolete>
  <owner>caitkp@chromium.org</owner>
  <summary>
    The number of times that a user-selected DSE was migrated from separate
    String/List/..Value preferences to the new single DictionaryValue used in
    M36.
  </summary>
</histogram>

<histogram name="Search.PartnershipSearchPerformed" enum="SearchEntryPoint">
  <owner>yusufo@chromium.org</owner>
  <summary>
    The entry point used for all searches performed under partnership after the
    Android search engine promo dialog was shown. This is a dialog prompting the
    user to pick a default search engine. This metric is collected for every
    search query performed.
  </summary>
</histogram>

<histogram name="Search.SearchEngineListedInPromoDialog"
    enum="OmniboxSearchEngineType">
<!-- Name completed by histogram_suffixes name="SearchEnginePromoOrdering" and name="SearchEnginePromoDeviceType" -->

  <owner>yusufo@chromium.org</owner>
  <summary>
    The search engines listed in the options for search engine promo. This is an
    Android specific dialog prompting the user to pick a default search engine.
    The dialog was shown on a device that had Chrome before it was first
    introduced.
  </summary>
</histogram>

<histogram name="Search.SearchEngineSelectionInPromoDialog"
    enum="OmniboxSearchEngineType">
  <owner>yusufo@chromium.org</owner>
  <summary>
    The search engine selected by the user from the search engine promo. This is
    an Android specific dialog prompting the user to pick a default search
    engine. The dialog was shown on a device that had Chrome before it was first
    introduced.
  </summary>
</histogram>

<histogram name="Search.SearchWidgetUseAndDeviceInfo"
    enum="SearchWidgetUseInfo">
  <owner>yusufo@chromium.org</owner>
  <summary>
    The current state for search widget use and whether the device is a
    partnership device related with the Android Search Widget. Collected on
    every cold start.
  </summary>
</histogram>

<histogram name="SearchAnswer.AnswerVisibleTime" units="ms">
  <owner>newcomer@chromium.org</owner>
  <summary>Time between showing and hiding the answer card.</summary>
</histogram>

<histogram name="SearchAnswer.LoadingTime" units="ms">
  <owner>newcomer@chromium.org</owner>
  <summary>
    Time between sending an answer server request and the end of loading of the
    answer card. Failed requests and requests not returning an answer are not
    counted.
  </summary>
</histogram>

<histogram name="SearchAnswer.NavigationTime" units="ms">
  <owner>newcomer@chromium.org</owner>
  <summary>
    Time between sending an answer server request and successful finish of
    navigation. Failed requests and requests not returning an answer are not
    counted.
  </summary>
</histogram>

<histogram name="SearchAnswer.RequestResult" enum="SearchAnswerRequestResult">
  <owner>newcomer@chromium.org</owner>
  <summary>Result of a answer server request.</summary>
</histogram>

<histogram name="SearchAnswer.ResizeAfterLoadTime" units="ms">
  <owner>newcomer@chromium.org</owner>
  <summary>
    Time between successfully loading an answer card request and updating its
    preferred size. There might be no or more than one size update per card
    load. Size updates that happen before the card finishes loading are ignored
    since they are not visible.
  </summary>
</histogram>

<histogram
    name="Security.CertificateTransparency.MainFrameNavigationCompliance"
    enum="CTComplianceStatus">
  <owner>estark@chromium.org</owner>
  <summary>
    The compliance of each main frame navigation's connection with the
    Certificate Transparency policy. Recorded whenever a main-frame,
    non-same-page navigation is committed. Connections can be compliant, or they
    can be non-compliant for one of several reasons (not enough Signed
    Certificate Timestamps [SCTs], not diverse enough SCTs, or the build was old
    so CT compliance wasn't checked).
  </summary>
</histogram>

<histogram name="Security.ClientAuth.CertificateSelectionSource"
    enum="ClientCertSelectionResult" expires_after="2019-07-30">
  <owner>jdeblasio@chromium.org</owner>
  <summary>
    When TLS client authentication is requested by the server, Chrome must
    choose whether to return a certificate or to abort the handshake. This
    histogram records how this determination was made, either as a result of
    user action, or as chosen automatically due to content settings. It only
    records when a fresh certificate selection would be attempted (and thus
    ignores cache hits). This histogram is recorded in SSLClientAuthObserver for
    user-selected outcomes and in ChromeContentBrowserClient for policy
    outcomes. This histogram does not cover mobile, as certificate handling is
    not handled by Chrome on Android nor iOS.
  </summary>
</histogram>

<histogram
    name="Security.HTTPBad.NavigationStartedAfterUserWarnedAboutSensitiveInput"
    units="ms">
  <obsolete>
    Deprecated 2018-12 after HTTPBad was rolled out for all HTTP pages. This
    metric was recorded only after sensitive input events, which were removed.
  </obsolete>
  <owner>estark@chromium.org</owner>
  <summary>
    Records the time from when a page was put into a warning state because of a
    sensitive input on an HTTP page until a navigation starts. Recorded at most
    once per main-frame navigation. The Finch trial 'mark-non-secure-as'
    controls whether the user sees an omnibox warning for this state, or just a
    console warning.
  </summary>
</histogram>

<histogram name="Security.HTTPBad.UserWarnedAboutSensitiveInput"
    enum="BooleanShown">
  <obsolete>
    Deprecated on 2016-11-10 because this is replaced by two separate metrics:
    Security.HTTPBad.UserWarnedAboutSensitiveInput.CreditCard and
    Security.HTTPBad.UserWarnedAboutSensitiveInput.Password.
  </obsolete>
  <owner>elawrence@chromium.org</owner>
  <owner>estark@chromium.org</owner>
  <summary>
    Whether a &quot;Not Secure&quot; warning was shown in the omnibox because a
    security-sensitive form field was rendered in a non-secure context. Logged
    at most once per main-frame navigation.
  </summary>
</histogram>

<histogram name="Security.HTTPBad.UserWarnedAboutSensitiveInput.CreditCard"
    enum="BooleanShown">
  <obsolete>
    Deprecated 2018-12 after HTTPBad was rolled out for all HTTP pages, and
    discrete credit card / password tracking was removed.
  </obsolete>
  <owner>elawrence@chromium.org</owner>
  <owner>estark@chromium.org</owner>
  <summary>
    Whether a &quot;Not Secure&quot; warning was shown in the omnibox because a
    credit card form field was rendered in a non-secure context. Logged at most
    once per main-frame navigation.
  </summary>
</histogram>

<histogram name="Security.HTTPBad.UserWarnedAboutSensitiveInput.Password"
    enum="BooleanShown">
  <obsolete>
    Deprecated 2018-12 after HTTPBad was rolled out for all HTTP pages, and
    discrete credit card / password tracking was removed.
  </obsolete>
  <owner>elawrence@chromium.org</owner>
  <owner>estark@chromium.org</owner>
  <summary>
    Whether a &quot;Not Secure&quot; warning was shown in the omnibox because a
    password form field was rendered in a non-secure context. Logged at most
    once per main-frame navigation.
  </summary>
</histogram>

<histogram
    name="Security.HTTPBad.WebContentsDestroyedAfterUserWarnedAboutSensitiveInput"
    units="ms">
  <obsolete>
    Deprecated 2018-12 after HTTPBad was rolled out for all HTTP pages. This
    metric was recorded only after sensitive input events, which were removed.
  </obsolete>
  <owner>estark@chromium.org</owner>
  <summary>
    Records the time delta between when a page was put into a warning state
    because of a sensitive input on an HTTP page and when the WebContents was
    destroyed. Recorded at most once per main-frame navigation, and it is not
    recorded if the user starts a navigation before the WebContents is
    destroyed. The Finch trial 'mark-non-secure-as' controls whether the user
    sees an omnibox warning for this state, or just a console warning.
  </summary>
</histogram>

<histogram base="true" name="Security.PageEndReason" enum="PageEndReason">
  <owner>cthomp@chromium.org</owner>
  <summary>
    Records the reason the page visit ended (e.g., reload, tab closed, new
    navigation, etc.) for page loads that committed.
  </summary>
</histogram>

<histogram name="Security.PageInfo.Action.HttpsUrl.Dangerous"
    enum="WebsiteSettingsAction">
  <owner>estark@chromium.org</owner>
  <summary>
    Tracks Page Info bubble actions that take place on an HTTPS URL that has
    been marked dangerous or not secure (such as for malware or broken HTTPS).
  </summary>
</histogram>

<histogram name="Security.PageInfo.Action.HttpsUrl.Downgraded"
    enum="WebsiteSettingsAction">
  <owner>estark@chromium.org</owner>
  <summary>
    Tracks Page Info bubble actions that take place on a valid HTTPS URL that
    has a security issue (e.g. mixed content).
  </summary>
</histogram>

<histogram name="Security.PageInfo.Action.HttpsUrl.Valid"
    enum="WebsiteSettingsAction">
  <obsolete>
    Deprecated 2018-01-31, split into ValidEV and ValidNonEV.
  </obsolete>
  <owner>estark@chromium.org</owner>
  <summary>
    Tracks Page Info bubble actions that take place on a valid HTTPS URL with no
    security issues (e.g. no mixed content).
  </summary>
</histogram>

<histogram name="Security.PageInfo.Action.HttpsUrl.ValidEV"
    enum="WebsiteSettingsAction">
  <owner>estark@chromium.org</owner>
  <summary>
    Tracks Page Info bubble actions that take place on a valid HTTPS URL with no
    security issues (e.g. no mixed content) and an Extended Validation
    Certificate.
  </summary>
</histogram>

<histogram name="Security.PageInfo.Action.HttpsUrl.ValidNonEV"
    enum="WebsiteSettingsAction">
  <owner>estark@chromium.org</owner>
  <summary>
    Tracks Page Info bubble actions that take place on a valid HTTPS URL with no
    security issues (e.g. no mixed content), but no Extended Validation
    Certificate.
  </summary>
</histogram>

<histogram name="Security.PageInfo.Action.HttpUrl.Dangerous"
    enum="WebsiteSettingsAction">
  <owner>estark@chromium.org</owner>
  <summary>
    Tracks Page Info bubble actions that take place on an HTTP URL that has been
    marked dangerous (such as for malware).
  </summary>
</histogram>

<histogram name="Security.PageInfo.Action.HttpUrl.Neutral"
    enum="WebsiteSettingsAction">
  <owner>estark@chromium.org</owner>
  <summary>
    Tracks Page Info bubble actions that take place on an HTTP URL that does not
    have an omnibox security indicator warning associated with it.
  </summary>
</histogram>

<histogram name="Security.PageInfo.Action.HttpUrl.Warning"
    enum="WebsiteSettingsAction">
  <owner>estark@chromium.org</owner>
  <summary>
    Tracks Page Info bubble actions that take place on an HTTP URL that has been
    given a &quot;Not secure&quot; warning in the omnibox.
  </summary>
</histogram>

<histogram name="Security.PageInfo.TimeOpen">
  <owner>cthomp@chromium.org</owner>
  <summary>
    Records the amount of time the Page Info bubble is open before the user
    closes it or takes an action which closes it.
  </summary>
</histogram>

<histogram name="Security.PageInfo.TimeOpen.Action">
  <owner>cthomp@chromium.org</owner>
  <summary>
    Records the amount of time the Page Info bubble is open before the user
    closes it, for cases where the user has performed an action inside it.
  </summary>
</histogram>

<histogram name="Security.PageInfo.TimeOpen.NoAction">
  <owner>cthomp@chromium.org</owner>
  <summary>
    Records the amount of time the Page Info bubble is open before the user
    closes it, for cases where the user performed no action inside it.
  </summary>
</histogram>

<histogram name="Security.SecurityLevel.CryptographicScheme"
    enum="SecurityLevel">
  <owner>estark@chromium.org</owner>
  <summary>
    Records the security level of a page with a cryptographic scheme (e.g.
    https). This histogram is recorded once at navigation commit time, and can
    be called again for the same document if the security level changes
    dynamically. Note that the security level can change very quickly after
    commit time, for example if the page includes mixed content on load (which
    can downgrade the security level). This histogram should be analyzed with
    care because each recorded security level is not necessarily user-visible:
    in particular, a page may commit as a secure level (SECURE, EV_SECURE,
    SECURE_WITH_POLICY_INSTALLED_CERT) but get quickly downgraded to NONE if it
    shows mixed content on load. Therefore the histogram values should be
    regarded as an upper-bound on what the user actually sees for these security
    levels.
  </summary>
</histogram>

<histogram name="Security.SecurityLevel.DownloadStarted" enum="SecurityLevel">
  <owner>cthomp@chromium.org</owner>
  <summary>
    Records the security level of the page that initiated a download (rather
    than the security state of the connection to the download URL itself). The
    recorded security level is the level of the page the download was initiated
    from, not that of the download URL. This histogram is not recorded for
    downloads that are initiated in a new tab or window, as the security level
    of the initiating page cannot be tracked.
  </summary>
</histogram>

<histogram name="Security.SecurityLevel.FormSubmission" enum="SecurityLevel">
  <owner>carlosil@chromium.org</owner>
  <owner>cthomp@chromium.org</owner>
  <summary>
    Records the security level of a page when submitting a form. This histogram
    is recorded whenever a form submission navigation begins. The recorded
    security level is the level of the page the form was submitted from, not the
    one that the form targets.
  </summary>
</histogram>

<histogram name="Security.SecurityLevel.NoncryptographicScheme"
    enum="SecurityLevel">
  <owner>estark@chromium.org</owner>
  <summary>
    Records the security level of a page with a non-cryptographic scheme (e.g.
    http). This histogram is recorded once at navigation commit time, and can be
    called again for the same document if the security level changes
    dynamically. Note that the security level can change very quickly after
    commit time, for example if the page includes a password field on load
    (which can downgrade the security level). This histogram should be analyzed
    with care because each recorded security level is not necessarily
    user-visible: in particular, a page may commit as NONE or HTTP_SHOW_WARNING
    but get quickly downgraded to HTTP_SHOW_WARNING or DANGEROUS, depending on
    field trial configuration, if it shows a password field on load. Therefore
    the histogram values should be regarded as an upper-bound on what the user
    actually sees for the NONE and HTTP_SHOW_WARNING levels.
  </summary>
</histogram>

<histogram name="Security.SecurityLevel.OnCommit" enum="SecurityLevel">
  <owner>cthomp@chromium.org</owner>
  <summary>
    Records the security level of a page at the time the navigation commits.
    Note that the security level of a page can change after commit time, so this
    histogram should often be compared against
    Security.SecurityLevel.OnComplete.
  </summary>
</histogram>

<histogram name="Security.SecurityLevel.OnComplete" enum="SecurityLevel">
  <owner>cthomp@chromium.org</owner>
  <summary>
    Records the security level of a page at the end of the page visit (i.e.,
    navigating away from the page, reloading the page, clicking a link, closing
    the tab, etc.). Note that this security level can be different than the
    initial security level of the page, so this histogram should often be
    compared against Security.SecuritLevel.OnCommit.
  </summary>
</histogram>

<histogram base="true" name="Security.SiteEngagement">
  <owner>cthomp@chromium.org</owner>
  <summary>
    The final Site Engagement score (0 to 100) of a URL during a visit to a
    page. Recorded when the user closes the page or initiates a new navigation.
  </summary>
</histogram>

<histogram base="true" name="Security.SiteEngagementDelta">
  <owner>cthomp@chromium.org</owner>
  <summary>
    The change in Site Engagement score for a site between the page navigation
    committing and the user closing the page or navigating away. Recorded when
    the user closes the page or initiates a new navigation.

    The delta is logged as a linear count in [0, 100]. To use, convert back to
    the original difference (in the range [-100,100]) by multiplying by 2 and
    subtracting 100.
  </summary>
</histogram>

<histogram base="true" name="Security.TimeOnPage">
  <owner>cthomp@chromium.org</owner>
  <summary>
    Records the time spent on the page (the time that the page was in the
    foreground from the start of the navigation to the page visit completing due
    to a new navigation or the tab being closed). This aggregates all foreground
    time over the entire visit (multiple times in the foreground are added
    together).
  </summary>
</histogram>

<histogram name="Security.TreatInsecureOriginAsSecure">
  <owner>mkwst@chromium.org</owner>
  <summary>
    Records the number of origins which will be treated as secure based on their
    presence in the '--unsafely-treat-insecure-origin-as-secure' command-line
    flag.
  </summary>
</histogram>

<histogram name="Security.XFrameOptions" enum="XFrameOptions">
  <owner>mkwst@chromium.org</owner>
  <owner>arthursonzogni@chromium.org</owner>
  <summary>
    Record uses of the X-Frame-Options header when a page is loaded as an
    iframe.
  </summary>
</histogram>

<histogram name="SequencedWorkerPool.ShutdownDelayTime" units="ms">
  <obsolete>
    Deprecated 02/2018. SequencedWorkerPool has been removed.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    How long it takes to wait for tasks that block shutdown to complete.
  </summary>
</histogram>

<histogram name="SequencedWorkerPool.TaskCount">
  <obsolete>
    Histogram wasn't even reported anymore when ownership was taken in 11/2015.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    How many pending tasks there are on each request for work from a worker
    thread.
  </summary>
</histogram>

<histogram name="SequencedWorkerPool.UnrunnableTaskCount">
  <obsolete>
    Histogram wasn't even reported anymore when ownership was taken in 11/2015.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>How many tasks we skip over to find the next runnable task.</summary>
</histogram>

<histogram name="ServicesCustomization.LoadResult"
    enum="ServicesCustomizationLoadResult">
  <owner>alemate@chromium.org</owner>
  <summary>
    Records result of fetching and parsing OEM customization manifest. See
    ServicesCustomizationDocument class for more info. Used only on Chrome OS.
  </summary>
</histogram>

<histogram name="ServiceWorker.AbortPaymentEvent.Time" units="ms">
  <owner>jinho.bang@samsung.com</owner>
  <summary>
    The time taken between dispatching an AbortPaymentEvent to a Service Worker
    and receiving a message that it finished handling the event. Includes the
    time for the waitUntil() promise to settle.
  </summary>
</histogram>

<histogram name="ServiceWorker.ActivatedWorkerPreparationForMainFrame.Time"
    units="ms">
  <owner>horo@chromium.org</owner>
  <summary>
    The time taken for the browser to find and possibly start an active worker
    to dispatch a FetchEvent for a main frame resource request. BEWARE: This
    metric includes the time taken for redirects. It starts when the URLRequest
    is created, and ends when the worker is ready. For context, a FetchEvent can
    only be dispatched to an ACTIVATED worker that is running (it has been
    successfully started). The measurements starts when the browser process
    receives the request. The browser then finds the worker appropriate for this
    request (if there is none, this metric is not recorded). If that worker is
    already started, the browser process can send the request to it, so the
    measurement ends quickly. Otherwise the browser process has to start the
    worker and the measurement ends when the worker is successfully started (we
    do not include in the time it takes for the worker to become ACTIVATED). The
    metric is not recorded in the following situations: 1) The worker was in
    state INSTALLED or ACTIVATING, and the browser had to wait for it to become
    ACTIVATED. This is to avoid including the time to execute the activate event
    handlers in the worker's script. 2) The worker was started for the fetch AND
    DevTools was attached during startup. This is intended to avoid including
    the time for debugging. 3) The request is for New Tab Page. This is because
    it tends to dominate the stats and makes the results largely skewed.

    It will be removed after NetS13nSW ships. https://crbug.com/715640
  </summary>
</histogram>

<histogram name="ServiceWorker.ActivatedWorkerPreparationForMainFrame.Type"
    enum="ServiceWorkerPreparationType">
  <owner>falken@chromium.org</owner>
  <summary>
    The type of preparation needed for the browser to find and possibly start an
    active worker to dispatch a FetchEvent for a main frame resource request.
    See details at ServiceWorker.ActivatedWorkerPreparationForMainFrame.Time.
    The suffixed histograms for .Time record the time required for each type.

    This is recorded regardless of whether NetS13nSW (https://crbug.com/715640)
    is enabled or disabled.
  </summary>
</histogram>

<histogram name="ServiceWorker.ActivateEvent.Time" units="ms">
  <owner>shimazu@chromium.org</owner>
  <summary>
    Execution time of ServiceWorkerGlobalScope.onactivate. Includes the time for
    waitUntil() promise to settle.
  </summary>
</histogram>

<histogram name="ServiceWorker.ActivateEventExecutionTime" units="ms">
  <obsolete>
    Deprecated 2015-05 in favor of ServiceWorker.ActivateEvent.Time.
  </obsolete>
  <owner>shimazu@chromium.org</owner>
  <summary>
    Execution time of ServiceWorkerGlobalScope.onactivate. Includes the time for
    waitUntil() promise to settle.
  </summary>
</histogram>

<histogram name="ServiceWorker.ActivateEventStatus"
    enum="ServiceWorkerStatusCode">
  <owner>falken@chromium.org</owner>
  <summary>
    The result of dispatching the activate event to the worker. This is recorded
    to both ServiceWorker.ActivateEventStatus and whichever of
    ServiceWorker.ActivateEventStatus_InShutdown
    ServiceWorker.ActivateEventStatus_NotInShutdown is appropriate. (InShutdown
    means the context was null or ServiceWorkerProcessManger::Shutdown was
    called.)
  </summary>
</histogram>

<histogram name="ServiceWorker.BackgroundFetchAbortEvent.Time" units="ms">
  <owner>peter@chromium.org</owner>
  <summary>
    The time taken between dispatching a BackgroundFetchAbortEvent to a Service
    Worker and receiving a message that it finished handling the event. Includes
    the time for the waitUntil() promise to settle.
  </summary>
</histogram>

<histogram name="ServiceWorker.BackgroundFetchClickEvent.Time" units="ms">
  <owner>peter@chromium.org</owner>
  <summary>
    The time taken between dispatching a BackgroundFetchClickEvent to a Service
    Worker and receiving a message that it finished handling the event. Includes
    the time for the waitUntil() promise to settle.
  </summary>
</histogram>

<histogram name="ServiceWorker.BackgroundFetchedEvent.Time" units="ms">
  <obsolete>
    Deprecated 08/2018, and renamed to BackgroundFetchSuccessEvent. See
    ServiceWorker.BackgroundFetchSuccessEvent.Time instead.
  </obsolete>
  <owner>peter@chromium.org</owner>
  <summary>
    The time taken between dispatching a BackgroundFetchedEvent to a Service
    Worker and receiving a message that it finished handling the event. Includes
    the time for the waitUntil() promise to settle.
  </summary>
</histogram>

<histogram name="ServiceWorker.BackgroundFetchFailEvent.Time" units="ms">
  <owner>peter@chromium.org</owner>
  <summary>
    The time taken between dispatching a BackgroundFetchFailEvent to a Service
    Worker and receiving a message that it finished handling the event. Includes
    the time for the waitUntil() promise to settle.
  </summary>
</histogram>

<histogram name="ServiceWorker.BackgroundFetchSuccessEvent.Time" units="ms">
  <owner>nator@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <owner>rayankans@chromium.org</owner>
  <summary>
    The time taken between dispatching a BackgroundFetchSuccessEvent to a
    Service Worker and receiving a message that it finished handling the event.
    Includes the time for the waitUntil() promise to settle. This event is sent
    when the background fetch succeeds.
  </summary>
</histogram>

<histogram name="ServiceWorker.BackgroundSyncEvent.Time" units="ms">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The time taken between dispatching a SyncEvent to a Service Worker and
    receiving a message that it finished handling the event. Includes the time
    for the waitUntil() promise to settle.
  </summary>
</histogram>

<histogram name="ServiceWorker.CacheStorageInstalledScript.CachedMetadataSize"
    units="bytes">
  <owner>horo@chromium.org</owner>
  <summary>
    The length of cached metadata of scripts which are stored to the
    CacheStorage by the installing service worker.
  </summary>
</histogram>

<histogram
    name="ServiceWorker.CacheStorageInstalledScript.CachedMetadataTotalSize"
    units="bytes">
  <owner>horo@chromium.org</owner>
  <summary>
    The total length of cached metadata of scripts which are stored to the
    CacheStorage by the installing service worker.
  </summary>
</histogram>

<histogram name="ServiceWorker.CacheStorageInstalledScript.Count" units="count">
  <owner>horo@chromium.org</owner>
  <summary>
    The counts of scripts which are stored to the CacheStorage by the installing
    service worker.
  </summary>
</histogram>

<histogram name="ServiceWorker.CacheStorageInstalledScript.ScriptSize"
    units="bytes">
  <owner>horo@chromium.org</owner>
  <summary>
    The length of scripts which are stored to the CacheStorage by the installing
    service worker.
  </summary>
</histogram>

<histogram name="ServiceWorker.CacheStorageInstalledScript.ScriptTotalSize"
    units="bytes">
  <owner>horo@chromium.org</owner>
  <summary>
    The total length of scripts which are stored to the CacheStorage by the
    installing service worker.
  </summary>
</histogram>

<histogram name="ServiceWorker.CanMakePaymentEvent.Time" units="ms">
  <owner>jinho.bang@samsung.com</owner>
  <summary>
    The time taken between dispatching an CanMakePaymentEvent to a Service
    Worker and receiving a message that it finished handling the event. Includes
    the time for the waitUntil() promise to settle.
  </summary>
</histogram>

<histogram name="ServiceWorker.ContextRequestHandlerStatus"
    enum="ServiceWorkerContextRequestHandlerStatus">
  <owner>falken@chromium.org</owner>
  <summary>
    The result of ServiceWorkerContextRequestHandler handling a request for a
    service worker script. The histogram is suffixed to distinguish new vs
    installed workers and main vs imported scripts.

    Note that since M64, this no longer includes most script loads because those
    are handled by ServiceWorkerInstalledScriptsManager, which doesn't record
    this histogram.

    It will be removed after NetS13nSW ships. https://crbug.com/715640
  </summary>
</histogram>

<histogram name="ServiceWorker.CookieChangeEvent.Time" units="ms">
  <owner>pwnall@chromium.org</owner>
  <summary>
    The time taken between dispatching a CookieChangeEvent to a Service Worker
    and receiving a message that it finished handling the event. Includes the
    time for the waitUntil() promise to settle.
  </summary>
</histogram>

<histogram name="ServiceWorker.Database.DestroyDatabaseResult"
    enum="ServiceWorkerDatabaseStatus">
  <owner>nhiroki@chromium.org</owner>
  <summary>
    Records result of destroy database operations in ServiceWorkerDatabase.
  </summary>
</histogram>

<histogram name="ServiceWorker.Database.OpenResult"
    enum="ServiceWorkerDatabaseStatus">
  <owner>nhiroki@chromium.org</owner>
  <summary>
    Records result of opening a database for ServiceWorkerDatabase.
  </summary>
</histogram>

<histogram name="ServiceWorker.Database.ReadResult"
    enum="ServiceWorkerDatabaseStatus">
  <owner>nhiroki@chromium.org</owner>
  <summary>Records result of read operations in ServiceWorkerDatabase.</summary>
</histogram>

<histogram name="ServiceWorker.Database.WriteResult"
    enum="ServiceWorkerDatabaseStatus">
  <owner>nhiroki@chromium.org</owner>
  <summary>
    Records result of write operations in ServiceWorkerDatabase.
  </summary>
</histogram>

<histogram name="ServiceWorker.DiskCache.InitResult">
  <owner>nhiroki@chromium.org</owner>
  <summary>
    Records result of opening a disk cache for ServiceWorkerDiskCache.
  </summary>
</histogram>

<histogram name="ServiceWorker.DiskCache.ReadResponseResult"
    enum="ServiceWorkerReadResponseResult">
  <owner>nhiroki@chromium.org</owner>
  <summary>
    Records result of reading response from ServiceWorkerDiskCache.
  </summary>
</histogram>

<histogram name="ServiceWorker.DiskCache.WriteResponseResult"
    enum="ServiceWorkerWriteResponseResult">
  <owner>bashi@chromium.org</owner>
  <owner>nhiroki@chromium.org</owner>
  <summary>
    Records result of writing response into ServiceWorkerDiskCache. This is not
    recorded when response has no body. Note that this is recorded on every
    write operation, and can there can be multiple write operations for the same
    response if it is large enough.

    This is recorded regardless of whether NetS13nSW (https://crbug.com/715640)
    is enabled or disabled.
  </summary>
</histogram>

<histogram name="ServiceWorker.DiskCacheMigrator.MigrationResult"
    enum="ServiceWorkerDiskCacheMigrationStatus">
  <obsolete>
    Deprecated because the migrator was removed as of 12/2015.
  </obsolete>
  <owner>nhiroki@chromium.org</owner>
  <summary>
    Records result of ServiceWorkerDiskCacheMigrator::Start that migrates
    resources in BlockFile backend to Simple backend.
  </summary>
</histogram>

<histogram name="ServiceWorker.DiskCacheMigrator.MigrationTime" units="ms">
  <obsolete>
    Deprecated because the migrator was removed as of 12/2015.
  </obsolete>
  <owner>nhiroki@chromium.org</owner>
  <summary>
    Execution time of ServiceWorkerDiskCache migration from BlockFile to Simple.
  </summary>
</histogram>

<histogram name="ServiceWorker.DiskCacheMigrator.NumberOfMigratedResources"
    units="count">
  <obsolete>
    Deprecated because the migrator was removed as of 12/2015.
  </obsolete>
  <owner>nhiroki@chromium.org</owner>
  <summary>
    The counts of resources migrated by ServiceWorkerDiskCacheMigrator. This
    includes the main script and imported scripts.
  </summary>
</histogram>

<histogram name="ServiceWorker.EmbeddedWorkerInstanceClient.StartWorker"
    enum="ServiceWorkerRendererStartWorker">
  <owner>panicker@chromium.org</owner>
  <summary>
    Records when StartWorker is received on the renderer. This is used to
    surface discrepancy between StartWorker being sent on the browser side and
    not getting received by renderer.
    EmbeddedWorkerInstance.Start.TimeToSendStartWorker should be used as a
    baseline. TODO(panicker): This should be removed after investigation of
    crbug/790903, potentially in M68.
  </summary>
</histogram>

<histogram name="ServiceWorker.EventDispatchingDelay" units="ms">
  <obsolete>
    Removed Oct 2018 (M72)
  </obsolete>
  <owner>horo@chromium.org</owner>
  <summary>
    The time taken between sending an event IPC from the browser process to a
    Service Worker and executing the event handler in the Service Worker.

    For subresource fetch events (_FETCH_SUB_RESOURCE suffix) When NetS13nSW
    (https://crbug.com/715640) is enabled, this is the time between sending a
    DispatchFetchEvent message from the main thread and executing the event
    handler in the Service Worker.
  </summary>
</histogram>

<histogram name="ServiceWorker.EventHandledRatioType.Fetch"
    enum="ServiceWorkerEventHandleRatioType">
  <obsolete>
    Removed July 2018 (M69)
  </obsolete>
  <owner>kinuko@chromium.org</owner>
  <summary>
    Records the proportion of (non foreign) fetch events that are handled
    compared to the number of events that are fired for a ServiceWorker.
    Recorded each time the ServiceWorker is stopped when at least one event was
    fired.
  </summary>
</histogram>

<histogram name="ServiceWorker.EventHandledRatioType.ForeignFetch"
    enum="ServiceWorkerEventHandleRatioType">
  <obsolete>
    Removed July 2018 (M69)
  </obsolete>
  <owner>mek@chromium.org</owner>
  <summary>
    Records the proportion of foreign fetch events that are handled compared to
    the number of events that are fired for a ServiceWorker. Recorded each time
    the ServiceWorker is stopped when at least one event was fired.
  </summary>
</histogram>

<histogram name="ServiceWorker.ExtendableMessageEvent.Time" units="ms">
  <owner>nhiroki@chromium.org</owner>
  <summary>
    The time taken between dispatching an ExtendableMessageEvent to a Service
    Worker and receiving a message that it finished handling the event. Includes
    the time for the waitUntil() promise to settle.
  </summary>
</histogram>

<histogram name="ServiceWorker.ExternalRequest.Time" units="ms">
  <owner>lazyboy@chromium.org</owner>
  <summary>
    The duration an external request spent to keep a service worker alive.
    Currently, extension service workers use external requests to keep the
    worker alive during the time the worker requests an extension API.
  </summary>
</histogram>

<histogram name="ServiceWorker.FetchEvent.Fallback.Time" units="ms">
  <owner>falken@chromium.org</owner>
  <summary>
    The time taken between dispatching a FetchEvent to a Service Worker and
    receiving a fallback-to-network reply.
  </summary>
</histogram>

<histogram name="ServiceWorker.FetchEvent.HasResponse.Time" units="ms">
  <owner>falken@chromium.org</owner>
  <summary>
    The time taken between dispatching a FetchEvent to a Service Worker and
    receiving a response. Includes the time for the respondWith() promise to
    settle.
  </summary>
</histogram>

<histogram name="ServiceWorker.FetchEvent.MainResource.Status"
    enum="ServiceWorkerStatusCode">
  <owner>falken@chromium.org</owner>
  <summary>
    The result of dispatching a fetch event to a Service Worker for a main
    resource request (i.e., a request for a navigation or a shared worker).

    This is recorded regardless of whether NetS13nSW (https://crbug.com/715640)
    is enabled or disabled.
  </summary>
</histogram>

<histogram name="ServiceWorker.FetchEvent.Subresource.Status"
    enum="ServiceWorkerStatusCode">
  <owner>falken@chromium.org</owner>
  <summary>
    The result of dispatching a fetch event to a Service Worker for a
    subresource request (i.e., not a navigation or a shared worker request).

    This is recorded regardless of whether NetS13nSW (https://crbug.com/715640)
    is enabled or disabled.
  </summary>
</histogram>

<histogram name="ServiceWorker.FetchEvent.Time" units="ms">
  <obsolete>
    Deprecated on 2015-07-13; please use
    ServiceWorker.FetchEvent.HasResponse.Time or
    ServiceWorker.FetchEvent.Fallback.Time.
  </obsolete>
  <owner>shimazu@chromium.org</owner>
  <summary>
    Execution time of ServiceWorkerGlobalScope.onfetch. Includes the time for
    the respondWith() promise to settle.
  </summary>
</histogram>

<histogram name="ServiceWorker.FetchEvent.WaitUntil.Time" units="ms">
  <owner>shimazu@chromium.org</owner>
  <summary>
    The time taken between dispatching a FetchEvent to a Service Worker and
    finishing the FetchEvent. Includes the time for the waitUntil() promise to
    settle. If there is no waitUntil promise, this will be almost the same with
    HasResponse.Time or Fallback.Time.
  </summary>
</histogram>

<histogram name="ServiceWorker.FetchEventExecutionTime" units="ms">
  <obsolete>
    Deprecated 2015-05 in favor of ServiceWorker.FetchEvent.Time.
  </obsolete>
  <owner>shimazu@chromium.org</owner>
  <summary>
    Execution time of ServiceWorkerGlobalScope.onfetch. Includes the time for
    the respondWith() promise to settle.
  </summary>
</histogram>

<histogram name="ServiceWorker.FetchRespondWithDataPipeCreation.Time"
    units="ms">
  <owner>wanderview@chromium.org</owner>
  <summary>
    Measures how long the service worker thread is blocked creating a
    mojo::DataPipe during FetchEvent.respondWith() processing.
  </summary>
</histogram>

<histogram name="ServiceWorker.ForeignFetch.OriginCount">
  <obsolete>
    Deprecated April 2018.
  </obsolete>
  <owner>mek@chromium.org</owner>
  <summary>
    The number of origins a particular service worker with foreign fetch
    registrations will intercept fetches from. A value of zero indicates that
    the foreign fetch service worker intercepts requests from any origin.
    Recorded at the end of a successful install event, if the service worker
    registered for foreign fetch. A service worker that registers for foreign
    fetch must always intercept fetches from at least one origin or intercept
    fetches from all origins.
  </summary>
</histogram>

<histogram name="ServiceWorker.ForeignFetch.ScopeCount">
  <obsolete>
    Deprecated April 2018.
  </obsolete>
  <owner>mek@chromium.org</owner>
  <summary>
    The number of foreign fetch scopes a particular service worker registered
    for. Recorded at the end of every successful install event. A value of zero
    indicates that the service worker did not register for foreign fetch.
  </summary>
</histogram>

<histogram name="ServiceWorker.ForeignFetchEvent.Fallback.Time" units="ms">
  <owner>mek@chromium.org</owner>
  <summary>
    The time taken between dispatching a ForeignFetchEvent to a Service Worker
    and receiving a fallback-to-network reply. Includes the time for the
    waitUntil() promise to settle, if any.
  </summary>
</histogram>

<histogram name="ServiceWorker.ForeignFetchEvent.HasResponse.Time" units="ms">
  <owner>mek@chromium.org</owner>
  <summary>
    The time taken between dispatching a ForeignFetchEvent to a Service Worker
    and receiving a response. Includes the time for the respondWith() promise to
    settle.
  </summary>
</histogram>

<histogram name="ServiceWorker.ForeignFetchEvent.WaitUntil.Time" units="ms">
  <owner>shimazu@chromium.org</owner>
  <summary>
    The time taken between dispatching a ForeignFetchEvent to a Service Worker
    and finishing the ForeignFetch. Includes the time for the waitUntil()
    promise to settle. If there is no waitUntil promise, this will be almost the
    same with HasResponse.Time or Fallback.Time.
  </summary>
</histogram>

<histogram name="ServiceWorker.InstallEvent.Time" units="ms">
  <owner>shimazu@chromium.org</owner>
  <summary>
    The time taken between dispatching an InstallEvent to a Service Worker and
    receiving a message that it finished handling the event. Includes the time
    for the waitUntil() promise to settle.
  </summary>
</histogram>

<histogram name="ServiceWorker.InstallEventExecutionTime" units="ms">
  <obsolete>
    Deprecated 2015-05 in favor of ServiceWorker.InstallEvent.Time.
  </obsolete>
  <owner>shimazu@chromium.org</owner>
  <summary>
    Execution time of ServiceWorkerGlobalScope.oninstall. Includes the time for
    the waitUntil() promise to settle.
  </summary>
</histogram>

<histogram name="ServiceWorker.InstallEventStatus"
    enum="ServiceWorkerStatusCode">
  <owner>falken@chromium.org</owner>
  <summary>The result of dispatching the install event to the worker.</summary>
</histogram>

<histogram
    name="ServiceWorker.LoadTiming.MainFrame.MainResource.FetchHandlerEndToFallbackNetwork"
    units="ms" expires_after="2021-10-31">
  <owner>bashi@chromium.org</owner>
  <owner>chrome-worker@google.com</owner>
  <summary>
    The time taken from (a) renderer process sends an IPC message to notify that
    a resource loading request needs to be fall back to network, to (b) browser
    process received the IPC. Recorded when no fetch event handler provided a
    response to the request.

    Recorded for each navigation request (including redirects) where there is a
    fetch event handler and the fetch event was successfully dispatched to the
    service worker.
  </summary>
</histogram>

<histogram
    name="ServiceWorker.LoadTiming.MainFrame.MainResource.FetchHandlerEndToResponseReceived"
    units="ms" expires_after="2021-10-31">
  <owner>bashi@chromium.org</owner>
  <owner>chrome-worker@google.com</owner>
  <summary>
    The time taken from (a) renderer process sends an IPC message to notify that
    a promise of respondWith() is settled, to (b) browser process received the
    IPC message. Recorded when a fetch event handler handled the request and
    provided a response to the request.

    Recorded for each navigation request (including redirects) where there is a
    fetch event handler and the fetch event was successfully dispatched to the
    service worker.
  </summary>
</histogram>

<histogram
    name="ServiceWorker.LoadTiming.MainFrame.MainResource.FetchHandlerStartToFetchHandlerEnd"
    units="ms" expires_after="2021-10-31">
  <owner>bashi@chromium.org</owner>
  <owner>chrome-worker@google.com</owner>
  <summary>
    The time taken from (a) a fetch event is dispatched, to (b) respondWith() is
    settled for the fetch event, or fetch event dispatch is finished without
    respondWith() being called.

    Recorded for each navigation request (including redirects) where there is a
    fetch event handler and the fetch event was successfully dispatched to the
    service worker.
  </summary>
</histogram>

<histogram
    name="ServiceWorker.LoadTiming.MainFrame.MainResource.ForwardServiceWorkerToWorkerReady"
    units="ms">
  <obsolete>
    Removed 2018-11 in favor of
    ServiceWorker.LoadTiming.MainFrame.MainResource.ForwardServiceWorkerToWorkerReady2.
  </obsolete>
  <owner>bashi@chromium.org</owner>
  <owner>chrome-worker@google.com</owner>
  <summary>
    The time taken from (a) a resource loading request is routed to service
    worker path, to (b) a service worker is ready to handle the request.

    Recorded for each navigation request (including redirects) where there is a
    fetch event handler and the fetch event was successfully dispatched to the
    service worker.
  </summary>
</histogram>

<histogram
    name="ServiceWorker.LoadTiming.MainFrame.MainResource.ForwardServiceWorkerToWorkerReady2"
    units="ms" expires_after="2021-10-31">
  <owner>bashi@chromium.org</owner>
  <owner>chrome-worker@google.com</owner>
  <summary>
    The time taken from (a) a resource loading request is routed to service
    worker path, to (b) a service worker is ready to handle the request.

    Recorded for each navigation request (including redirects) where there is a
    fetch event handler and the fetch event was successfully dispatched to the
    service worker.
  </summary>
</histogram>

<histogram
    name="ServiceWorker.LoadTiming.MainFrame.MainResource.ResponseReceivedToCompleted"
    units="ms" expires_after="2021-10-31">
  <obsolete>
    Deprecated 2018-11 in favor of
    ServiceWorker.LoadTiming.MainFrame.MainResource.ResponseReceivedToCompleted2.
  </obsolete>
  <owner>bashi@chromium.org</owner>
  <owner>chrome-worker@google.com</owner>
  <summary>
    The time taken from (a) response headers from service worker are received,
    to (b) reading response body is completed. Recorded when a fetch event
    handler handled the request.

    Recorded for each navigation request (including redirects) where there is a
    fetch event handler and the fetch event was successfully dispatched to the
    service worker.
  </summary>
</histogram>

<histogram
    name="ServiceWorker.LoadTiming.MainFrame.MainResource.ResponseReceivedToCompleted2"
    units="ms" expires_after="2021-10-31">
  <owner>bashi@chromium.org</owner>
  <owner>chrome-worker@google.com</owner>
  <summary>
    The time taken from (a) response headers from service worker are received,
    to (b) reading response body is completed. Recorded when a fetch event
    handler handled the request.

    Recorded for each navigation request (including redirects) where there is a
    fetch event handler and the fetch event was successfully dispatched to the
    service worker.
  </summary>
</histogram>

<histogram
    name="ServiceWorker.LoadTiming.MainFrame.MainResource.StartToForwardServiceWorker"
    units="ms" expires_after="2021-10-31">
  <owner>bashi@chromium.org</owner>
  <owner>chrome-worker@google.com</owner>
  <summary>
    The time taken from (a) the start of a navigation request, to (b) the
    request is forwarded to a service worker code path. This includes looking up
    a service worker registration and throttling.

    Recorded for each navigation request (including redirects) where there is a
    fetch event handler and the fetch event was successfully dispatched to the
    service worker.
  </summary>
</histogram>

<histogram
    name="ServiceWorker.LoadTiming.MainFrame.MainResource.WorkerReadyToFetchHandlerStart"
    units="ms" expires_after="2021-10-31">
  <owner>bashi@chromium.org</owner>
  <owner>chrome-worker@google.com</owner>
  <summary>
    The time taken from (a) browser process sends an IPC message to dispatch a
    fetch event, to (b) a renderer process received the IPC message and is about
    to dispatch a fetch event.

    Recorded for each navigation request (including redirects) where there is a
    fetch event handler and the fetch event was successfully dispatched to the
    service worker.
  </summary>
</histogram>

<histogram
    name="ServiceWorker.LoadTiming.Subresource.FetchHandlerEndToFallbackNetwork"
    units="ms" expires_after="2021-10-31">
  <owner>bashi@chromium.org</owner>
  <owner>chrome-worker@google.com</owner>
  <summary>
    The time taken from (a) service worker sends a mojo message to notify that a
    resource loading request needs to be fall back to network, to (b) the mojo
    message is received on the other side of mojo endpoint (a background thread
    executing subresource loading). Recorded when no fetch event handler
    provided a response to the request.

    Recorded for each subresource request where there is a fetch event handler
    and the fetch event was successfully dispatched to the service worker.
  </summary>
</histogram>

<histogram
    name="ServiceWorker.LoadTiming.Subresource.FetchHandlerEndToResponseReceived"
    units="ms" expires_after="2021-10-31">
  <owner>bashi@chromium.org</owner>
  <owner>chrome-worker@google.com</owner>
  <summary>
    The time taken from (a) service worker sends a mojo message to notify that a
    promise of respondWith() is settled, to (b) the mojo message is received on
    the other side of mojo endpoint (a background thread executing subresource
    loading). Recorded when a fetch event handler handled the request and
    provided a response to the request.

    Recorded for each subresource request where there is a fetch event handler
    and the fetch event was successfully dispatched to the service worker.
  </summary>
</histogram>

<histogram
    name="ServiceWorker.LoadTiming.Subresource.ForwardServiceWorkerToWorkerReady"
    units="ms" expires_after="2021-10-31">
  <owner>bashi@chromium.org</owner>
  <owner>chrome-worker@google.com</owner>
  <summary>
    The time taken from (a) a subresource request is routed to the URLLoader (on
    a background thread) for service worker controlled loads starts handling a
    subresource request, to (b) a service worker is ready to handle the request.

    Recorded for each subresource request where there is a fetch event handler
    and the fetch event was successfully dispatched to the service worker.
  </summary>
</histogram>

<histogram
    name="ServiceWorker.LoadTiming.Subresource.ResponseReceivedToCompleted"
    units="ms">
  <obsolete>
    Removed 2018-12 in favor of
    ServiceWorker.LoadTiming.Subresource.ResponseReceivedToCompleted2.
  </obsolete>
  <owner>bashi@chromium.org</owner>
  <owner>chrome-worker@google.com</owner>
  <summary>
    The time taken from (a) response headers from service worker are received,
    to (b) reading response body is completed. Only recorded when a fetch event
    handler handled the request.

    Recorded for each subresource request where there is a fetch event handler
    and the fetch event was successfully dispatched to the service worker.
  </summary>
</histogram>

<histogram
    name="ServiceWorker.LoadTiming.Subresource.ResponseReceivedToCompleted2"
    units="ms" expires_after="2021-10-31">
  <owner>bashi@chromium.org</owner>
  <owner>chrome-worker@google.com</owner>
  <summary>
    The time taken from (a) response headers from service worker are received,
    to (b) reading response body is completed. Only recorded when a fetch event
    handler handled the request.

    Recorded for each subresource request where there is a fetch event handler
    and the fetch event was successfully dispatched to the service worker.
  </summary>
</histogram>

<histogram
    name="ServiceWorker.LoadTiming.Subresource.WorkerReadyToFetchHandlerEnd"
    units="ms" expires_after="2021-10-31">
  <owner>bashi@chromium.org</owner>
  <owner>chrome-worker@google.com</owner>
  <summary>
    The time taken from (a) a fetch event is dispatched, to (b) respondWith() is
    settled for the fetch event, or fetch event dispatch is finished without
    respondWith() being called.

    Recorded for each subresource request where there is a fetch event handler
    and the fetch event was successfully dispatched to the service worker.
  </summary>
</histogram>

<histogram name="ServiceWorker.MainFramePageLoad" enum="ServiceWorkerSite">
  <owner>horo@chromium.org</owner>
  <summary>
    Counts main frame page loads controlled by a service worker.
  </summary>
</histogram>

<histogram name="ServiceWorker.MainFramePageLoad.CoreTransition"
    enum="CorePageTransition">
  <obsolete>
    Deprecated 2018-01 in favor of
    PageLoad.Clients.ServiceWorker.PageTransition.
  </obsolete>
  <owner>horo@chromium.org</owner>
  <summary>
    The transition type for main frame page loads controlled by a service
    worker.
  </summary>
</histogram>

<histogram name="ServiceWorker.MainFramePageLoad.RedirectChainLength"
    units="urls">
  <obsolete>
    Deprecated 2018-01.
  </obsolete>
  <owner>horo@chromium.org</owner>
  <summary>
    Total length of the server redirects during main frame page loads controlled
    by a service worker.
  </summary>
</histogram>

<histogram name="ServiceWorker.MainResourceRequestDestination"
    enum="ServiceWorkerMainResourceRequestDestination"
    expires_after="2018-12-01">
  <obsolete>
    Removed 2018-11, see https://crbug.com/902100
  </obsolete>
  <owner>falken@chromium.org</owner>
  <owner>chrome-worker@google.com</owner>
  <summary>
    Describes whether a main resource request (i.e., a request for a main frame,
    subframe, or shared worker) was routed to service worker or network and why.
    The purpose is to debug why ServicifiedServiceWorker has a lower count of
    ServiceWorker.MainResource.FetchEvent.Status than the control:
    https://crbug.com/866335.

    Recorded for every main resource request that is seen by
    ServiceWorkerControlleeRequestHandler (usually means all http(s) requests).
    If redirects occur, it is recorded for each redirect.
  </summary>
</histogram>

<histogram name="ServiceWorker.MessageEvent.Time" units="ms">
  <obsolete>
    Deprecated 2016-04 in favor of ServiceWorker.ExtendableMessageEvent.Time.
  </obsolete>
  <owner>shimazu@chromium.org</owner>
  <summary>Execution time of ServiceWorkerGlobalScope.onmessage.</summary>
</histogram>

<histogram name="ServiceWorker.MessageEventExecutionTime" units="ms">
  <obsolete>
    Deprecated 2015-05 in favor of ServiceWorker.MessageEvent.Time.
  </obsolete>
  <owner>shimazu@chromium.org</owner>
  <summary>Execution time of ServiceWorkerGlobalScope.onmessage.</summary>
</histogram>

<histogram name="ServiceWorker.NavigationHintPrecision" enum="BooleanEnabled">
  <obsolete>
    This experiment was turned down, see https://crbug.com/616502.
  </obsolete>
  <owner>horo@chromium.org</owner>
  <summary>
    The precision of the speculative launch of Service Workers for navigation
    hints. Recorded when the worker is stopped. If there was no main/sub frame
    fetch event fired on the worker, this value is false. This means that the
    speculative launch wasn't helpful.
  </summary>
</histogram>

<histogram name="ServiceWorker.NavigationPreload.ConcurrentTime" units="ms">
  <obsolete>
    Deprecated June 2017 in favor of ServiceWorker.NavPreload.ConcurrentTime,
    see https://crbug.com/728035.
  </obsolete>
  <owner>falken@chromium.org</owner>
  <summary>
    The duration of time when both (1) a service worker is being found and
    possibly started up, (2) the navigation preload request is in-flight. The
    measurement ends once either the worker is prepared, or the navigation
    preload response is received (OnReceiveResponse() is called). This is a
    rough estimate of the performance win of using navigation preload, ignoring
    concurrency overhead. This histogram is recorded when a navigation preload
    response is succesfully forwarded to the service worker's fetch event, with
    the same restrictions as for
    ServiceWorker.ActivatedWorkerPreparationForMainFrame.Time. The sample is
    additionally recorded to the appropriate suffixed histograms.
  </summary>
</histogram>

<histogram name="ServiceWorker.NavigationPreload.FinishedBeforeStartWorker"
    enum="BooleanNavPreloadFinishedFirst">
  <obsolete>
    Deprecated June 2017 in favor of ServiceWorker.NavPreload.FinishedFirst, see
    https://crbug.com/728035.
  </obsolete>
  <owner>falken@chromium.org</owner>
  <summary>
    Whether the navigation preload response arrived before the activated and
    running service worker was prepared. This histogram is recorded when a
    navigation preload response is succesfully forwarded to the service worker's
    fetch event, with the same restrictions as for
    ServiceWorker.ActivatedWorkerPreparationForMainFrame.Time. The sample is
    additionally recorded to the appropriate suffixed histograms.
  </summary>
</histogram>

<histogram name="ServiceWorker.NavigationPreload.HeaderSize" units="bytes">
  <owner>horo@chromium.org</owner>
  <summary>
    The size of Service-Worker-Navigation-Preload header when the navigation
    preload request is to be sent. The default value of the header is
    &quot;true&quot;, so the default size is 4.

    This is recorded regardless of whether NetS13nSW (https://crbug.com/715640)
    is enabled or disabled.
  </summary>
</histogram>

<histogram name="ServiceWorker.NavigationPreload.NavPreloadAfterSWStart"
    units="ms">
  <obsolete>
    Deprecated June 2017. No replacement exists. See https://crbug.com/728035.
  </obsolete>
  <owner>falken@chromium.org</owner>
  <summary>
    This is recorded in the case where the activated and running service worker
    was prepared before the navigation preload response arrived. It is the
    remaining time it took to receive the response after the worker was
    prepared.

    This histogram is recorded when a navigation preload response is succesfully
    forwarded to the service worker's fetch event (for the case mentioned
    above), with the same restrictions as for
    ServiceWorker.ActivatedWorkerPreparationForMainFrame.Time. The sample is
    additionally recorded to the appropriate suffixed histograms.
  </summary>
</histogram>

<histogram name="ServiceWorker.NavigationPreload.ResponseTime" units="ms">
  <obsolete>
    Deprecated June 2017 in favor of ServiceWorker.NavPreload.ResponseTime. See
    https://crbug.com/728035.
  </obsolete>
  <owner>falken@chromium.org</owner>
  <summary>
    The time taken for the navigation preload response to start, i.e., when
    OnReceiveResponse() is called. This histogram is recorded when a navigation
    preload response is successfully forwarded to the service worker's fetch
    event, with the same restrictions as for
    ServiceWorker.ActivatedWorkerPreparationForMainFrame.Time. The sample is
    additionally recorded to the appropriate suffixed histograms.
  </summary>
</histogram>

<histogram name="ServiceWorker.NavigationPreload.SWStartAfterNavPreload"
    units="ms">
  <obsolete>
    Deprecated June 2017 in favor of ServiceWorker.NavPreload.WorkerWaitTime.
    See https://crbug.com/728035.
  </obsolete>
  <owner>falken@chromium.org</owner>
  <summary>
    This is recorded in the case where the navigation preload response arrived
    before the activated and running service worker was prepared. It is the
    remaining time it took to prepare the worker after the response arrived.

    This histogram is recorded when a navigation preload response is succesfully
    forwarded to the service worker's fetch event (for the case mentioned
    above), with the same restrictions as for
    ServiceWorker.ActivatedWorkerPreparationForMainFrame.Time. The sample is
    additionally recorded to the appropriate suffixed histograms.
  </summary>
</histogram>

<histogram name="ServiceWorker.NavPreload.ConcurrentTime" units="ms">
  <owner>falken@chromium.org</owner>
  <summary>
    The duration of time when both (1) a service worker is being found and
    possibly started up, (2) the navigation preload request is in-flight. The
    measurement ends once either the worker is prepared, or the navigation
    preload response is received (OnReceiveResponse() is called). This is a
    rough estimate of the performance win of using navigation preload, ignoring
    concurrency overhead. This histogram is recorded when a navigation preload
    response is succesfully forwarded to the service worker's fetch event, with
    the same restrictions enumerated 1) through 3) for
    ServiceWorker.ActivatedWorkerPreparationForMainFrame.Time. The sample is
    only recorded to the appropriate suffixed histograms.

    It will be removed after NetS13nSW ships. https://crbug.com/715640
  </summary>
</histogram>

<histogram name="ServiceWorker.NavPreload.FinishedFirst"
    enum="BooleanNavPreloadFinishedFirst">
  <owner>falken@chromium.org</owner>
  <summary>
    Whether the navigation preload response arrived before the activated and
    running service worker was prepared. This histogram is recorded when a
    navigation preload response is succesfully forwarded to the service worker's
    fetch event, with the same restrictions numbered 1) through 3) for
    ServiceWorker.ActivatedWorkerPreparationForMainFrame.Time. The sample is
    only recorded to the appropriate suffixed histograms.

    It will be removed after NetS13nSW ships. https://crbug.com/715640
  </summary>
</histogram>

<histogram name="ServiceWorker.NavPreload.ResponseTime" units="ms">
  <owner>falken@chromium.org</owner>
  <summary>
    The time taken for the navigation preload response to start, i.e., when
    OnReceiveResponse() is called. This histogram is recorded when a navigation
    preload response is successfully forwarded to the service worker's fetch
    event, with the same restrictions numbered 1) through 3) for
    ServiceWorker.ActivatedWorkerPreparationForMainFrame.Time. The sample is
    only recorded to the appropriate suffixed histograms.

    It will be removed after NetS13nSW ships. https://crbug.com/715640
  </summary>
</histogram>

<histogram name="ServiceWorker.NavPreload.WorkerPreparationType"
    enum="ServiceWorkerPreparationType">
  <owner>falken@chromium.org</owner>
  <summary>
    The type of preparation needed for the browser to find and possibly start an
    active worker to dispatch a FetchEvent for a main frame resource request,
    when navigation preload also occurred.

    This histogram is recorded when a navigation preload response is succesfully
    forwarded to the service worker's fetch event (for the case mentioned
    above), with the same restrictions numbered 1) through 3) as for
    ServiceWorker.ActivatedWorkerPreparationForMainFrame.Time. The sample is
    only recorded to the appropriate suffixed histograms.

    This is similar to
    ServiceWorker.ActivatedWorkerPreparationForMainFrame.Type_NavigationPreloadEnabled.
    The difference is ServiceWorker.NavPreload.WorkerPreparationType gets logged
    if the navigation preload successfully occurred, at the same time as the
    other ServiceWorker.NavPreload.* metrics so is more safely comparable to
    them. We could deprecate the Type_NavigationPreloadEnabled histogram if it
    turns out there is no significant difference.

    It will be removed after NetS13nSW ships. https://crbug.com/715640
  </summary>
</histogram>

<histogram name="ServiceWorker.NavPreload.WorkerWaitTime" units="ms">
  <owner>falken@chromium.org</owner>
  <summary>
    This is recorded in the case where the navigation preload response arrived
    before the activated and running service worker was prepared. It is the
    remaining time it took to prepare the worker after the response arrived.

    This histogram is recorded when a navigation preload response is succesfully
    forwarded to the service worker's fetch event (for the case mentioned
    above), with the same restrictions numbered 1) through 3) as for
    ServiceWorker.ActivatedWorkerPreparationForMainFrame.Time. The sample is
    only recorded to the appropriate suffixed histograms.
  </summary>
</histogram>

<histogram name="ServiceWorker.NotificationClickEvent.Time" units="ms">
  <owner>peter@chromium.org</owner>
  <summary>
    The time taken between dispatching a NotificationClickEvent to a Service
    Worker and receiving a message that it finished handling the event. Includes
    the time for the waitUntil() promise to settle.
  </summary>
</histogram>

<histogram name="ServiceWorker.NotificationClickEventExecutionTime" units="ms">
  <obsolete>
    Deprecated 2015-05 in favor of ServiceWorker.NotificationClickEvent.Time.
  </obsolete>
  <owner>peter@chromium.org</owner>
  <summary>
    Execution time of ServiceWorkerGlobalScope.onnotificationclick.
  </summary>
</histogram>

<histogram name="ServiceWorker.NotificationCloseEvent.Time" units="ms">
  <owner>nsatragno@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    The time taken between dispatching a NotificationCloseEvent to a Service
    Worker and receiving a message that it finished handling the event. Includes
    the time for the waitUntil() promise to settle.
  </summary>
</histogram>

<histogram name="ServiceWorker.PageLoad" enum="ServiceWorkerSite">
  <owner>falken@chromium.org</owner>
  <summary>Counts page loads controlled by a service worker.</summary>
</histogram>

<histogram name="ServiceWorker.PaymentRequestEvent.Time" units="ms">
  <owner>jinho.bang@samsung.com</owner>
  <summary>
    The time taken between dispatching an PaymentRequestEvent to a Service
    Worker and receiving a message that it finished handling the event. Includes
    the time for the waitUntil() promise to settle.
  </summary>
</histogram>

<histogram name="ServiceWorker.PushEvent.Time" units="ms">
  <owner>peter@chromium.org</owner>
  <summary>
    The time taken between dispatching a PushEvent to a Service Worker and
    receiving a message that it finished handling the event. Includes the time
    for the waitUntil() promise to settle.
  </summary>
</histogram>

<histogram name="ServiceWorker.PushEventExecutionTime" units="ms">
  <obsolete>
    Deprecated 2015-05 in favor of ServiceWorker.PushEvent.Time.
  </obsolete>
  <owner>peter@chromium.org</owner>
  <summary>Execution time of ServiceWorkerGlobalScope.onpush.</summary>
</histogram>

<histogram name="ServiceWorker.RegisteredOriginCount" units="origins">
  <owner>falken@chromium.org</owner>
  <summary>
    The number of origins that have a service worker registration. Recorded near
    browser startup, when the service worker storage system is initialized.
  </summary>
</histogram>

<histogram name="ServiceWorker.RequestTimeouts.Count"
    enum="ServiceWorkerMetrics.EventType">
  <owner>falken@chromium.org</owner>
  <summary>
    The number of Service Worker request timeouts, by request type.
  </summary>
</histogram>

<histogram name="ServiceWorker.Runtime" units="ms">
  <owner>falken@chromium.org</owner>
  <summary>
    The amount of time a service worker ran for (wall time). Starts recording
    when the service worker finished starting, and stops when the service worker
    finished stopping. Not recorded if DevTools was attached to the service
    worker at some point while it was running.
  </summary>
</histogram>

<histogram name="ServiceWorker.ScriptCachedMetadataSize" units="bytes">
  <owner>horo@chromium.org</owner>
  <summary>
    The length of cached metadata of Service Worker scripts. Logged on each load
    of Service Worker script only when the cached metadata is available. It
    doesn't include the size of imported scripts. This histogram is only
    recorded for classic workers, not module workers.
  </summary>
</histogram>

<histogram name="ServiceWorker.ScriptCachedMetadataTotalSize" units="bytes">
  <owner>horo@chromium.org</owner>
  <summary>
    The total length of cached metadata of Service Worker scripts. Logged on
    each start of Service Worker only when the cached metadata is available. It
    includes the main script and imported scripts. This histogram is only
    recorded for classic workers, not module workers.
  </summary>
</histogram>

<histogram name="ServiceWorker.ScriptCount" units="count">
  <owner>horo@chromium.org</owner>
  <summary>
    The counts of scripts per Service Worker. Logged on each start of Service
    Worker. It includes the main script and imported scripts. This histogram is
    only recorded for classic workers, not module workers.
  </summary>
</histogram>

<histogram name="ServiceWorker.ScriptLoadSuccess" enum="BooleanSuccess">
  <obsolete>
    Removed June 2018 (M69). This was recorded as 100% success since service
    worker script streaming launched in M64, since load failures didn't reach
    this UMA. When there is an error reading the script from storage, it's
    typically recorded as a start worker failure under
    SERVICE_WORKER_ERROR_DISK_CACHE.
  </obsolete>
  <owner>falken@chromium.org</owner>
  <summary>
    Whether loading the service worker script succeeded. Only recorded for
    installed service workers. Recorded by the browser process when reported
    back by the renderer during worker startup.
  </summary>
</histogram>

<histogram name="ServiceWorker.ScriptSize" units="bytes">
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The length of Service Worker scripts. Logged on each load of Service Worker
    script. It doesn't include the size of imported scripts. This histogram is
    only recorded for classic workers, not module workers.
  </summary>
</histogram>

<histogram name="ServiceWorker.ScriptTotalSize" units="bytes">
  <owner>horo@chromium.org</owner>
  <summary>
    The total length of Service Worker scripts. Logged on each start of Service
    Worker. It includes the main script and imported scripts. This histogram is
    only recorded for classic workers, not module workers.
  </summary>
</histogram>

<histogram name="ServiceWorker.SendStopWorker.Status"
    enum="ServiceWorkerStatusCode">
  <owner>falken@chromium.org</owner>
  <summary>
    The result of trying to send the IPC message to a renderer process telling
    it to stop an embedded worker. Recorded in EmbeddedWorkerInstance::Stop.
    This was previously recorded for both the IPC and Mojo service worker
    implementations, but as of Jan 2017, this is only recorded for the IPC
    implementation. This histogram will be removed after the IPC implementation
    is removed.
  </summary>
</histogram>

<histogram name="ServiceWorker.StartForNavigationHint.Result"
    enum="ServiceWorkerStartForNavigationHintResult">
  <owner>horo@chromium.org</owner>
  <summary>
    The result of starting a service worker for a navigation hint.
  </summary>
</histogram>

<histogram name="ServiceWorker.StartHintPrecision" enum="BooleanEnabled">
  <owner>horo@chromium.org</owner>
  <summary>
    The precision of the speculative launch of Service Workers for navigation
    hints. Recorded when the worker is stopped. True if a fetch event for a
    main/sub frame navigation was fired on the worker before it stopped;
    otherwise, false. False means the speculative launch wasn't helpful.
  </summary>
</histogram>

<histogram name="ServiceWorker.StartNewWorker.Status"
    enum="ServiceWorkerStatusCode">
  <owner>falken@chromium.org</owner>
  <summary>
    The result of trying to start a Service Worker that has not yet installed.
    See also ServiceWorker.StartWorker.Status for installed workers.
  </summary>
</histogram>

<histogram name="ServiceWorker.StartNewWorker.Time" units="ms">
  <owner>falken@chromium.org</owner>
  <summary>
    The time taken to start a Service Worker that has not yet installed, from
    process allocation to ACK of started from the renderer (which occurs after
    script execution). This may include script download time. The metric is not
    recorded if DevTools was ever attached to the Service Worker during startup.
    See also ServiceWorker.StartWorker.Time for installed workers.
  </summary>
</histogram>

<histogram name="ServiceWorker.StartTiming.ClockConsistency"
    enum="CrossProcessTimeDelta" expires_after="2019-07-30">
  <owner>falken@chromium.org</owner>
  <owner>shimazu@chromium.org</owner>
  <summary>
    Recorded on each successful service worker startup.
    ServiceWorker.StartTiming.* uses timing data from both the renderer process
    and browser process. This histogram describes whether the clocks are known
    to be accurate and consistent accross processes, and whether the actual
    timing data for this worker startup was consistent, i.e., TimeTicks did not
    go backwards.

    If the clocks and timing were inconsistent, ServiceWorker.StartTiming.*
    metrics (other than this one) are not recorded.
  </summary>
</histogram>

<histogram name="ServiceWorker.StartTiming.Duration" units="ms"
    expires_after="2021-07-30">
  <owner>falken@chromium.org</owner>
  <owner>shimazu@chromium.org</owner>
  <summary>
    The time taken to start a service worker that is already installed, from
    start of the start sequence (finding a renderer) to ACK of started from the
    renderer (which occurs after script execution). The metric is not recorded
    if DevTools was ever attached to the Service Worker during startup. It does
    not include time, if any, waiting for the service worker to finish stopping
    before asking it to start, if that occurred.
  </summary>
</histogram>

<histogram
    name="ServiceWorker.StartTiming.ReceivedStartWorkerToScriptEvaluationStart"
    units="ms" expires_after="2021-07-30">
  <owner>falken@chromium.org</owner>
  <owner>shimazu@chromium.org</owner>
  <summary>
    The time taken from (a) the renderer receiving the start worker IPC message,
    to (b) initial JavaScript evaluation starting on the worker thread. Recorded
    when ServiceWorker.StartTiming.Duration is recorded.
  </summary>
</histogram>

<histogram name="ServiceWorker.StartTiming.ScriptEvaluationEndToEnd" units="ms"
    expires_after="2021-07-30">
  <owner>falken@chromium.org</owner>
  <owner>shimazu@chromium.org</owner>
  <summary>
    The time taken from (a) initial JavaScript evaluation finishing on the
    worker thread, to (b) the browser receiving the worker started IPC message
    (the final step of worker startup). Recorded when
    ServiceWorker.StartTiming.Duration is recorded.
  </summary>
</histogram>

<histogram
    name="ServiceWorker.StartTiming.ScriptEvaluationStartToScriptEvaluationEnd"
    units="ms" expires_after="2021-07-30">
  <owner>falken@chromium.org</owner>
  <owner>shimazu@chromium.org</owner>
  <summary>
    The time taken from (a) initial JavaScript evaluation starting on the worker
    thread, to (b) initial JavaScript evaluation finishing on the worker thread.
    Recorded when ServiceWorker.StartTiming.Duration is recorded.
  </summary>
</histogram>

<histogram
    name="ServiceWorker.StartTiming.SentStartWorkerToReceivedStartWorker"
    units="ms" expires_after="2021-07-30">
  <owner>falken@chromium.org</owner>
  <owner>shimazu@chromium.org</owner>
  <summary>
    The time taken from (a) the browser sending the start worker IPC message, to
    (b) the renderer receiving the start worker IPC message. Recorded when
    ServiceWorker.StartTiming.Duration is recorded.
  </summary>
</histogram>

<histogram name="ServiceWorker.StartTiming.StartToReceivedStartWorker"
    units="ms" expires_after="2021-07-30">
  <owner>falken@chromium.org</owner>
  <owner>shimazu@chromium.org</owner>
  <summary>
    The time taken from (a) the start of service worker startup, to (b) the
    renderer receiving the start worker IPC message. Recorded when
    ServiceWorker.StartTiming.Duration is recorded.
  </summary>
</histogram>

<histogram name="ServiceWorker.StartTiming.StartToScriptEvaluationEnd"
    units="ms" expires_after="2021-07-30">
  <owner>falken@chromium.org</owner>
  <owner>shimazu@chromium.org</owner>
  <summary>
    The time taken from (a) the start of service worker startup, to (b) initial
    JavaScript evaluation finishing on the worker thread. Recorded when
    ServiceWorker.StartTiming.Duration is recorded.
  </summary>
</histogram>

<histogram name="ServiceWorker.StartTiming.StartToScriptEvaluationStart"
    units="ms" expires_after="2021-07-30">
  <owner>falken@chromium.org</owner>
  <owner>shimazu@chromium.org</owner>
  <summary>
    The time taken from (a) the start of service worker startup, to (b) initial
    JavaScript evaluation starting on the worker thread. Recorded when
    ServiceWorker.StartTiming.Duration is recorded.
  </summary>
</histogram>

<histogram name="ServiceWorker.StartTiming.StartToSentStartWorker" units="ms"
    expires_after="2021-07-30">
  <owner>falken@chromium.org</owner>
  <owner>shimazu@chromium.org</owner>
  <summary>
    The time taken from (a) the start of service worker startup, to (b) the
    browser sending the start worker IPC message. Recorded when
    ServiceWorker.StartTiming.Duration is recorded.
  </summary>
</histogram>

<histogram name="ServiceWorker.StartWorker.AfterFailureStreak"
    enum="ServiceWorkerStatusCode">
  <owner>falken@chromium.org</owner>
  <summary>
    The result of trying to start a service worker after it has failed
    consecutively. Recorded only for installed workers.
  </summary>
</histogram>

<histogram name="ServiceWorker.StartWorker.FailureStreak" units="count">
  <owner>falken@chromium.org</owner>
  <summary>
    The number of consecutive startup failures of a service worker. Recorded
    each time the service worker failed (so there is double counting: failing
    twice results in 1 and 2 being logged). Only for installed workers.
  </summary>
</histogram>

<histogram name="ServiceWorker.StartWorker.FailureStreakEnded" units="count">
  <owner>falken@chromium.org</owner>
  <summary>
    When a worker startup succeeded after failing, the number of times the
    worker had consecutively failed. Recorded only for installed workers.
  </summary>
</histogram>

<histogram
    name="ServiceWorker.StartWorker.InstalledScriptsSender.FinishedReason"
    enum="ServiceWorkerInstalledScriptsManager.FinishedReason">
  <owner>shimazu@chromium.org</owner>
  <summary>
    The result of sending installed scripts over
    ServiceWorkerInstalledScriptsSender. This is recorded after every start
    worker attempt that sent the scripts through
    ServiceWorkerInstalledScriptsSender.
  </summary>
</histogram>

<histogram name="ServiceWorker.StartWorker.Purpose"
    enum="ServiceWorkerMetrics.EventType">
  <owner>falken@chromium.org</owner>
  <summary>
    The purpose for starting up a service worker. Recorded only for installed
    workers.
  </summary>
</histogram>

<histogram name="ServiceWorker.StartWorker.Status"
    enum="ServiceWorkerStatusCode">
  <owner>falken@chromium.org</owner>
  <summary>
    The result of trying to start a Service Worker that is already installed.
    See also ServiceWorker.StartNewWorker.Status for new workers. See also
    ServiceWorker.StartWorker.StatusByPurpose_* for the breakdown by event type.
  </summary>
</histogram>

<histogram name="ServiceWorker.StartWorker.StatusByPurpose"
    enum="ServiceWorkerStatusCode">
  <owner>falken@chromium.org</owner>
  <summary>
    The result of trying to start a service worker for a particular event type
    (see ServiceWorker.StartWorker.Status for the total). Only recorded for
    installed workers. For event type:
  </summary>
</histogram>

<histogram name="ServiceWorker.StartWorker.Time" units="ms">
  <owner>falken@chromium.org</owner>
  <summary>
    The time taken to start a Service Worker that is already installed, from
    process allocation to ACK of started from the renderer (which occurs after
    script execution). The metric is not recorded if DevTools was ever attached
    to the Service Worker during startup. See also
    ServiceWorker.StartNewWorker.Time for new workers.
  </summary>
</histogram>

<histogram name="ServiceWorker.StartWorker.Timeout.StartPurpose"
    enum="ServiceWorkerMetrics.EventType">
  <owner>falken@chromium.org</owner>
  <summary>
    Records the start purpose for a service worker that timed out while starting
    up. Recorded only for installed workers.
  </summary>
</histogram>

<histogram name="ServiceWorker.StartWorker.TimeoutPhase"
    enum="EmbeddedWorkerStartingPhase">
  <owner>falken@chromium.org</owner>
  <summary>
    The phase the EmbeddedWorker was in when ServiceWorker startup timed out.
  </summary>
</histogram>

<histogram name="ServiceWorker.StopWorker.Status"
    enum="ServiceWorkerStopStatus">
  <obsolete>
    Removed from code in Oct 2015, replaced with ServiceWorker.WorkerStopped.
  </obsolete>
  <owner>falken@chromium.org</owner>
  <summary>
    The result of trying to stop a Service Worker. Recorded only for installed
    Service Workers that succesfully stopped or were detected as stalling. If a
    worker stalled and later stopped, it will be recorded as both STALLED and
    STALLED_THEN_STOPPED.
  </summary>
</histogram>

<histogram name="ServiceWorker.StopWorker.Time" units="ms">
  <owner>falken@chromium.org</owner>
  <summary>The time taken to stop a Service Worker.</summary>
</histogram>

<histogram name="ServiceWorker.Storage.DeleteAndStartOverResult"
    enum="ServiceWorkerDeleteAndStartOverResult">
  <owner>nhiroki@chromium.org</owner>
  <summary>
    Records result of storage recovery operations in ServiceWorkerStorage.
  </summary>
</histogram>

<histogram name="ServiceWorker.Storage.DiskCacheMigrationResult"
    enum="ServiceWorkerDiskCacheMigrationResult">
  <obsolete>
    Deprecated because the migrator was removed as of 12/2015.
  </obsolete>
  <owner>nhiroki@chromium.org</owner>
  <summary>
    Records the final result of diskcache migration in ServiceWorkerStorage.
    ServiceWorker.DiskCacheMigrator.MigrationResult records more detailed status
    of migration operations.
  </summary>
</histogram>

<histogram name="ServiceWorker.Storage.PurgeResourceResult"
    enum="NetErrorCodes">
  <owner>nhiroki@chromium.org</owner>
  <summary>
    Records successes and failures of purging a stale resource in
    ServiceWorkerStorage.
  </summary>
</histogram>

<histogram name="ServiceWorker.SubresourceNotifyStartLoadingResponseBodyDelay"
    units="ms">
  <owner>wanderview@chromium.org</owner>
  <summary>
    The time between when the ServiceWorkerSubresourceLoader receives a Response
    and when it notifies the loader's client that the body has started loading.
    This is different from SubresourceStartBlobReadingDelay in that notifying
    the client about the Response may take place some time later than when the
    blob body reading begins. This will be triggered for every successful
    subresource load handled by a ServiceWorker with servification enabled.
  </summary>
</histogram>

<histogram name="ServiceWorker.SubresourceStartBlobReadingDelay" units="ms">
  <owner>wanderview@chromium.org</owner>
  <summary>
    The time between when the ServiceWorkerSubresourceLoader receives a Response
    with a blob body and when the main blob data starts to get read. This will
    be triggered for every successful subresource load handled by a
    ServiceWorker with ServiceWorker servification enabled.
  </summary>
</histogram>

<histogram name="ServiceWorker.TerminateThread.Time" units="ms">
  <obsolete>
    Deprecated in June 2017.
  </obsolete>
  <owner>falken@chromium.org</owner>
  <summary>
    The time taken in the renderer process between the main thread asking the
    worker thread to terminate and getting ACK that it terminated.
  </summary>
</histogram>

<histogram name="ServiceWorker.TimeBetweenEvents" units="ms">
  <obsolete>
    Deprecated in June 2017.
  </obsolete>
  <owner>falken@chromium.org</owner>
  <summary>
    Called at the beginning of each ServiceWorkerVersion::Dispatch*Event
    function: the time elapsed since idle. Generally this is the time between
    one event ending and one event starting, if the worker remained running in
    the interim.
  </summary>
</histogram>

<histogram name="ServiceWorker.UnhandledEventRatio" units="%">
  <obsolete>
    Deprecated 2015-06 in favor of ServiceWorker.EventHandledStatus*.
  </obsolete>
  <owner>kinuko@chromium.org</owner>
  <summary>
    Records the ratio of unhandled events to all events that are dispatched to
    each ServiceWorker. Recorded when each ServiceWorkerVersion is destructed.
  </summary>
</histogram>

<histogram name="ServiceWorker.URLRequestJob.FallbackedRequestMode"
    enum="FetchRequestMode">
  <owner>horo@chromium.org</owner>
  <summary>
    Records the the mode of request that was fallbacked to the network by the
    Service Worker.
  </summary>
</histogram>

<histogram name="ServiceWorker.URLRequestJob.MainResource.Result"
    enum="ServiceWorkerURLRequestJobResult">
  <owner>falken@chromium.org</owner>
  <summary>
    Records the result of a main resource request forwarded to a Service Worker.
  </summary>
</histogram>

<histogram name="ServiceWorker.URLRequestJob.MainResource.StatusZeroError"
    enum="ServiceWorkerResponseError">
  <owner>falken@chromium.org</owner>
  <summary>
    Records the error provided when the renderer returns a response with status
    code zero to a main resource request forwarded to a Service Worker (i.e.,
    ServiceWorker.URLRequestJob.MainResource.Result was
    REQUEST_JOB_ERROR_RESPONSE_STATUS_ZERO).
  </summary>
</histogram>

<histogram name="ServiceWorker.URLRequestJob.Subresource.Result"
    enum="ServiceWorkerURLRequestJobResult">
  <owner>falken@chromium.org</owner>
  <summary>
    Records the result of a subresource request forwarded to a Service Worker.
  </summary>
</histogram>

<histogram name="ServiceWorker.URLRequestJob.Subresource.StatusZeroError"
    enum="ServiceWorkerResponseError">
  <owner>falken@chromium.org</owner>
  <summary>
    Records the error provided when the renderer returns a response with status
    code zero to a subresource request forwarded to a Service Worker (i.e.,
    ServiceWorker.URLRequestJob.Subresource.Result was
    REQUEST_JOB_ERROR_RESPONSE_STATUS_ZERO).
  </summary>
</histogram>

<histogram name="ServiceWorker.WorkerForMessageFound" enum="Boolean">
  <owner>falken@chromium.org</owner>
  <summary>
    True if a message from the renderer intended for a browser-side embedded
    worker instance found its recipient. False if the instance did not exist
    when the message was received (e.g., it was a detached worker). Recorded in
    EmbeddedWorkerRegistry::GetWorkerForMessage.
  </summary>
</histogram>

<histogram name="ServiceWorker.WorkerStopped" enum="ServiceWorkerStoppedStatus">
  <owner>falken@chromium.org</owner>
  <summary>
    The mechanism by which a service worker entered running status STOPPED.
  </summary>
</histogram>

<histogram name="ServiceWorkerCache.Cache" units="ms">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The time to perform operations on the Cache object in the ServiceWorker
    Cache API.
  </summary>
</histogram>

<histogram name="ServiceWorkerCache.Cache.AddResponseType"
    enum="FetchResponseType">
  <owner>nhiroki@chromium.org</owner>
  <summary>
    Records the response type to be added in the Cache by Cache.add()/addAll().
  </summary>
</histogram>

<histogram name="ServiceWorkerCache.Cache.AllWritesResponseType"
    enum="FetchResponseType">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Records the response type to be added in the Cache by all operations that
    write to the cache.
  </summary>
</histogram>

<histogram name="ServiceWorkerCache.CacheStorage" units="ms">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The time to perform operations on the CacheStorage object in the
    ServiceWorker Cache API.
  </summary>
</histogram>

<histogram name="ServiceWorkerCache.CreateCacheStorageResult"
    enum="BooleanCreated">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Whether a new ServiceWorkerCacheStorage and its directory were successfully
    created on disk.
  </summary>
</histogram>

<histogram name="ServiceWorkerCache.ErrorStorageType"
    enum="CacheStorageErrorStorageType">
  <owner>wanderview@chromium.org</owner>
  <summary>
    Records where the generic kErrorStorage value is triggered within the
    cache_storage code.
  </summary>
</histogram>

<histogram name="ServiceWorkerCache.IndexSizeDifference" units="bytes">
  <owner>cmumford@chromium.org</owner>
  <summary>
    The absolute difference between the ServiceWorker Cache size saved to the
    CacheStorage index and the actual cache size when opened.
  </summary>
</histogram>

<histogram name="ServiceWorkerCache.InitBackendResult"
    enum="CacheStorageErrorType">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The result of opening the backend in the ServiceWorker Cache API.
  </summary>
</histogram>

<histogram name="ServiceWorkerCache.Response.HasDeprecatedURL" enum="Boolean">
  <owner>horo@chromium.org</owner>
  <summary>
    True if a response read from the CacheStorage has a url field. This field
    was deprecated in M57.
  </summary>
</histogram>

<histogram name="ServiceWorkerCache.Scheduler.IsOperationSlow" enum="Boolean">
  <owner>wanderview@chromium.org</owner>
  <summary>
    An operation is slow (true) if it takes at least 10 seconds to run. If an
    operation never completes, it will still be recorded as slow.
  </summary>
</histogram>

<histogram name="ServiceWorkerCache.Scheduler.OperationDuration" units="ms">
  <obsolete>
    This histogram was deprecated in M72 in favor of
    ServiceWorkerCache.Scheduler.OperationDuration2.
  </obsolete>
  <owner>wanderview@chromium.org</owner>
  <summary>
    The time in ms from when an operation is started until it completes.
  </summary>
</histogram>

<histogram name="ServiceWorkerCache.Scheduler.OperationDuration2" units="ms">
  <owner>wanderview@chromium.org</owner>
  <summary>
    The time in ms from when an operation is started until it completes. This
    histogram differs from the old OperationDuration in that it uses a different
    bucket size to measure longer values.
  </summary>
</histogram>

<histogram name="ServiceWorkerCache.Scheduler.QueueDuration" units="ms">
  <obsolete>
    This histogram was deprecated in M72 in favor of
    ServiceWorkerCache.Scheduler.QueueDuration2.
  </obsolete>
  <owner>wanderview@chromium.org</owner>
  <summary>
    The time in ms from when an operation was queued until its task is posted.
  </summary>
</histogram>

<histogram name="ServiceWorkerCache.Scheduler.QueueDuration2" units="ms">
  <owner>wanderview@chromium.org</owner>
  <summary>
    The time in ms from when an operation was queued until its task is posted.
    This histogram differs from the old QueueDuration in that it uses a
    different bucket size to measure longer values.
  </summary>
</histogram>

<histogram name="ServiceWorkerCache.Scheduler.QueueLength" units="operations">
  <owner>wanderview@chromium.org</owner>
  <summary>
    The number of operations in the scheduling queue just before enqueuing a new
    operation.
  </summary>
</histogram>

<histogram name="Servicification.Startup" enum="ServicificationStartupMode">
  <obsolete>
    Deprecated 2019-02 in favour of Servicification.Startup2. The data was
    incompelete since it was only recorded the first time when the
    ServiceManager was launched.
  </obsolete>
  <owner>hanxi@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <owner>hnakashima@chromium.org</owner>
  <owner>mheikal@chromium.org</owner>
  <summary>
    Histogram of how Chrome is launched, either in ServiceManager only mode or
    as full browser, as well as either cold start or warm start. See
    go/servicification_startup_metrics for more details.
  </summary>
</histogram>

<histogram name="Servicification.Startup2" enum="ServicificationStartupMode"
    expires_after="2019-12-05">
  <owner>hanxi@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <owner>hnakashima@chromium.org</owner>
  <owner>mheikal@chromium.org</owner>
  <summary>
    Histogram of how Chrome is launched, either in ServiceManager only mode or
    as full browser, as well as either cold start or warm start. See
    go/servicification_startup_metrics for more details.
  </summary>
</histogram>

<histogram name="Session.ClosedTabCounts" units="operations">
  <owner>rohitrao@chromium.org</owner>
  <summary>
    The number of tabs closed by the user during the current session
    (launch/foregrounding to backgrounding).

    This histogram is only logged on iOS when the application is backgrounded.
  </summary>
</histogram>

<histogram name="Session.NewTabCounts" units="operations">
  <owner>rohitrao@chromium.org</owner>
  <summary>
    The number of tabs created by the user during the current session
    (launch/foregrounding to backgrounding).

    This histogram is only logged on iOS when the application is backgrounded.
  </summary>
</histogram>

<histogram name="Session.OpenedTabCounts" units="operations">
  <owner>rohitrao@chromium.org</owner>
  <summary>
    The number of times the user changed the active tab (this can happen when
    manually selecting a new tab, when a pre-rendered tab is made active, when
    closing the current tab and the next one is selected) during the current
    session (launch/foregrounding to backgrounding).

    This histogram is only logged on iOS when the application is backgrounded.
  </summary>
</histogram>

<histogram name="Session.TotalDuration" units="ms">
  <owner>asvitkine@chromium.org</owner>
  <owner>chrisha@chromium.org</owner>
  <summary>
    The length of a session (launch/foregrounding to backgrounding) in
    milliseconds. See Session.TotalDurationMax1Day for the same histogram with a
    higher maximum value. (The one's maximum is 1 hour.)

    Desktop: This also takes into account user interaction and audio events.
    Starting from M55 the session length is recorded by discounting for default
    inactivity timeout. Also, until M69, there was a bug that caused
    double-counting of some sessions.

    Android: There is a known issue where JavaScript dialogs and other things
    that take focus away from the Chrome activity can cause this metric to
    record a session end prematurely. See: crbug.com/678276.
  </summary>
</histogram>

<histogram name="Session.TotalDuration.NotOptedInToSyncWithAccount" units="ms">
  <owner>feuunk@chromium.org</owner>
  <summary>
    The amount of active browsing time that was spent not being opted in to sync
    but while having a refresh token for a user's account.

    This time is measured from when the user starts interacting with the browser
    until either they stopped interacting with the browser or their signin or
    sync status changes. These end-points are when the metric is emitted.

    Because a duration can end either because the user became inactive or
    because their status changed, the distribution of individual durations
    measured are unlikely to be helpful. Instead, please compare total
    durations.

    This metric is only recorded on Win/Mac/Linux.

    One caveat with this metric is that if the user has multiple profiles open
    at the same time, their session activity will be logged from all the
    profiles, instead of only from the profile that the user is using at that
    moment.
  </summary>
</histogram>

<histogram name="Session.TotalDuration.NotOptedInToSyncWithoutAccount"
    units="ms">
  <owner>feuunk@chromium.org</owner>
  <summary>
    The amount of active browsing time that was spent not being opted in to sync
    and not having a refresh token for a user's account.

    This time is measured from when the user starts interacting with the browser
    until either they stopped interacting with the browser or their signin or
    sync status changes. These end-points are when the metric is emitted.

    Because a duration can end either because the user became inactive or
    because their status changed, the distribution of individual durations
    measured are unlikely to be helpful. Instead, please compare total
    durations.

    This metric is only recorded on Win/Mac/Linux.

    One caveat with this metric is that if the user has multiple profiles open
    at the same time, their session activity will be logged from all the
    profiles, instead of only from the profile that the user is using at that
    moment.
  </summary>
</histogram>

<histogram name="Session.TotalDuration.OptedInToSyncWithAccount" units="ms">
  <owner>feuunk@chromium.org</owner>
  <summary>
    The total session duration (see Session.TotalDuration) that was spent being
    opted in to sync while having a valid refresh token for the account.

    This time is measured from when the user starts interacting with the browser
    until either they stopped interacting with the browser or their signin or
    sync status changes. These end-points are when the metric is emitted.

    Because a duration can end either because the user became inactive or
    because their status changed, the distribution of individual durations
    measured are unlikely to be helpful. Instead, please compare total
    durations.

    This metric is only recorded on Win/Mac/Linux.

    One caveat with this metric is that if the user has multiple profiles open
    at the same time, their session activity will be logged from all the
    profiles, instead of only from the profile that the user is using at that
    moment.
  </summary>
</histogram>

<histogram name="Session.TotalDuration.OptedInToSyncWithoutAccount" units="ms">
  <owner>feuunk@chromium.org</owner>
  <summary>
    The total session duration (see Session.TotalDuration) that was spent being
    opted in to sync without a having a valid refresh token for the account.

    This can for example be the case if the user signed out of the web, changed
    their password, or otherwise invalidated their signin.

    This time is measured from when the user starts interacting with the browser
    until either they stopped interacting with the browser or their signin or
    sync status changes. These end-points are when the metric is emitted.

    Because a duration can end either because the user became inactive or
    because their status changed, the distribution of individual durations
    measured are unlikely to be helpful. Instead, please compare total
    durations.

    This metric is only recorded on Win/Mac/Linux.

    One caveat with this metric is that if the user has multiple profiles open
    at the same time, their session activity will be logged from all the
    profiles, instead of only from the profile that the user is using at that
    moment.
  </summary>
</histogram>

<histogram name="Session.TotalDuration.WithAccount" units="ms">
  <owner>feuunk@chromium.org</owner>
  <summary>
    The total session duration (see Session.TotalDuration) that was spent with
    an account signed into the content area.

    The difference between the With(out)Account measurements and the
    Opted(In/Out)ToSyncWith(out)Account measurements is that these metrics are
    derived from the user's cookies, not their refresh tokens.

    This time is measured from when the user starts interacting with the browser
    until either they stopped interacting with the browser or their signin
    status changes. These end-points are when the metric is emitted.

    Because a duration can end either because the user became inactive or
    because their status changed, the distribution of individual durations
    measured are unlikely to be helpful. Instead, please compare total
    durations.

    This metric is only recorded on Win/Mac/Linux.

    One caveat with this metric is that if the user has multiple profiles open
    at the same time, their session activity will be logged from all the
    profiles, instead of only from the profile that the user is using at that
    moment.
  </summary>
</histogram>

<histogram name="Session.TotalDuration.WithoutAccount" units="ms">
  <owner>feuunk@chromium.org</owner>
  <summary>
    The total session duration (see Session.TotalDuration) that was spent
    without an account signed into the content area.

    The difference between the With(out)Account measurements and the
    Opted(In/Out)ToSyncWith(out)Account measurements is that these metrics are
    derived from the user's cookies, not their refresh tokens.

    This time is measured from when the user starts interacting with the browser
    until either they stopped interacting with the browser or their signin
    status changes. These end-points are when the metric is emitted.

    Because a duration can end either because the user became inactive or
    because their status changed, the distribution of individual durations
    measured are unlikely to be helpful. Instead, please compare total
    durations.

    This metric is only recorded on Win/Mac/Linux.

    One caveat with this metric is that if the user has multiple profiles open
    at the same time, their session activity will be logged from all the
    profiles, instead of only from the profile that the user is using at that
    moment.
  </summary>
</histogram>

<histogram name="Session.TotalDurationMax1Day" units="ms">
  <owner>asvitkine@chromium.org</owner>
  <owner>chrisha@chromium.org</owner>
  <summary>
    The length of a session (launch/foregrounding to backgrounding) in
    milliseconds.

    Desktop: This also takes into account user interaction and audio events.

    Android: This histogram isn't logged on Android. See instead
    Session.TotalDuration.
  </summary>
</histogram>

<histogram name="SessionCrashed.Bubble" enum="SessionCrashedBubbleUserAction">
  <owner>yiyaoliu@chromium.org</owner>
  <summary>How did the user interact with the SessionCrashed Bubble?</summary>
</histogram>

<histogram name="SessionRestore.Actions" enum="SessionRestoreActions">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The actions that have occurred in a session restore timeline. These are to
    be interpreted as raw event counts. Tabs are almost certainly deferred due
    to the existence memory pressure, but this may not always be the case.
  </summary>
</histogram>

<histogram name="SessionRestore.AllTabsLoaded" units="ms">
  <owner>chrisha@chromium.org</owner>
  <owner>georgesak@chromium.org</owner>
  <summary>
    The time from SessionRestore start until all tabs have finished loading.
  </summary>
</histogram>

<histogram name="SessionRestore.BackgroundUseCaseTabCount.Restored"
    units="tabs" expires_after="2019-04-30">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The number of tabs involved in a single session restore that were observed
    to have historically made use of background communication mechanisms
    (favicon and tab title changes, notifications, etc).
  </summary>
</histogram>

<histogram name="SessionRestore.BackgroundUseCaseTabCount.Total" units="tabs"
    expires_after="2019-04-30">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The number of tabs involved in a single session restore that were observed
    to have historically made use of background communication mechanisms
    (favicon and tab title changes, notifications, etc) and that were actually
    loaded.
  </summary>
</histogram>

<histogram name="SessionRestore.command_size" units="bytes">
  <obsolete>
    Deprecated 2017-02 as not actionable.
  </obsolete>
  <summary>
    The size of the commands written to disk. See SessionBackend for details.
  </summary>
</histogram>

<histogram name="SessionRestore.FirstTabPainted" units="ms">
  <obsolete>
    Deprecated 2014-10 in favor of SessionRestore.ForegroundTabFirstPaint and
    ultimately SessionRestore.ForegroundTabFirstPaint3.
  </obsolete>
  <owner>jeremy@chromium.org</owner>
  <owner>sky@chromium.org</owner>
  <summary>TBD</summary>
</histogram>

<histogram name="SessionRestore.ForegroundTabFirstLoaded" units="ms">
  <owner>chrisha@chromium.org</owner>
  <owner>georgesak@chromium.org</owner>
  <summary>
    The time from SessionRestore start until a visible tab has finished loading.
  </summary>
</histogram>

<histogram name="SessionRestore.ForegroundTabFirstPaint" units="ms">
  <obsolete>
    Deprecated 2015-03-13 in favor of SessionRestore.ForegroundTabFirstPaint2
    and ultimately SessionRestore.ForegroundTabFirstPaint3.
  </obsolete>
  <owner>jeremy@chromium.org</owner>
  <owner>sky@chromium.org</owner>
  <summary>
    Deprecated 2015-03-13 in favor of SessionRestore.ForegroundTabFirstPaint2
    and ultimately SessionRestore.ForegroundTabFirstPaint3.
  </summary>
</histogram>

<histogram name="SessionRestore.ForegroundTabFirstPaint2" units="ms">
  <obsolete>
    Deprecated 2015-05 in favor of SessionRestore.ForegroundTabFirstPaint3.
  </obsolete>
  <owner>jeremy@chromium.org</owner>
  <owner>sky@chromium.org</owner>
  <summary>
    The time from SessionRestore start until a visible tab's first paint. This
    metric only records paints that have occurred after a tab has loaded.
  </summary>
</histogram>

<histogram name="SessionRestore.ForegroundTabFirstPaint3" units="ms"
    expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->

  <owner>chrisha@chromium.org</owner>
  <owner>georgesak@chromium.org</owner>
  <summary>
    The time from SessionRestore start until a visible tab's first paint.
  </summary>
</histogram>

<histogram name="SessionRestore.FrameUniqueNameFromRequestedNameSize"
    units="characters">
  <obsolete>
    Deprecated 2018-05-02. This data was used to confirm that the unique name
    generation change succeeded in reducing memory usage, and is no longer
    needed.
  </obsolete>
  <owner>dcheng@chromium.org</owner>
  <summary>
    The size of a unique name derived from the browsing context name. Emitted
    when generating a unique name for a new subframe or when a subframe's
    browsing context name is changed before the first real load is committed.
    Only applies to subframes as main frames always have an empty unique name.
  </summary>
</histogram>

<histogram name="SessionRestore.FrameUniqueNameLength" units="bytes">
  <obsolete>
    Deprecated 2017-08 due to unique name generation change. Please use
    SessionRestore.FrameUniqueNameFromRequestedNameSize and
    SessionRestore.FrameUniqueNameWithFramePathSize instead.
  </obsolete>
  <owner>dcheng@chromium.org</owner>
  <summary>
    Records the length of unique names for web frames that are saved as part of
    session restore data. It is logged each time the unique name changes, which
    typically happens when a web frame is first created or its name is changed
    by mutating window.name.
  </summary>
</histogram>

<histogram name="SessionRestore.FrameUniqueNameOriginalRequestedNameSize"
    units="characters">
  <obsolete>
    Deprecated 2018-05-02. This data was used to confirm that the unique name
    generation change succeeded in reducing memory usage, and is no longer
    needed.
  </obsolete>
  <owner>dcheng@chromium.org</owner>
  <summary>
    The size of the browsing context name (based on the iframe name attribute or
    window.name) when generating the unique name. Emitted when generating a
    unique name for a new subframe or when a subframe's browsing context name is
    changed before the first real load is committed. Only applies to subframes
    as main frames always have an empty unique name.
  </summary>
</histogram>

<histogram name="SessionRestore.FrameUniqueNameWithFramePathSize"
    units="characters">
  <obsolete>
    Deprecated 2018-05-02. This data was used to confirm that the unique name
    generation change succeeded in reducing memory usage, and is no longer
    needed.
  </obsolete>
  <owner>dcheng@chromium.org</owner>
  <summary>
    The size of a unique name when falling back to the frame path algorithm. The
    fallback path is used when the browsing context name is empty or non-unique.
    Emitted when generating a unique name for a new subframe or when a
    subframe's browsing context name is changed before the first real load is
    committed. Only applies to subframes as main frames always have an empty
    unique name.
  </summary>
</histogram>

<histogram name="SessionRestore.FrameUniqueNameWithFramePathSizePerComponent"
    units="characters per depth">
  <obsolete>
    Deprecated 2018-05-02. This data was used to confirm that the unique name
    generation change succeeded in reducing memory usage, and is no longer
    needed.
  </obsolete>
  <owner>dcheng@chromium.org</owner>
  <summary>
    The size of a unique name when falling back to the frame path algorithm,
    divided by the depth of the frame. Used to normalize sizes for deeper nodes
    in a frame tree. Emitted when generating a unique name for a new subframe or
    when a subframe's browsing context name is changed before the first real
    load is committed. Only applies to subframes as main frames always have an
    empty unique name.
  </summary>
</histogram>

<histogram name="SessionRestore.last_session_file_size" units="KB">
  <obsolete>
    Deprecated 2017-02 as not actionable.
  </obsolete>
  <summary>The size, in k, of the last session file on disk.</summary>
</histogram>

<histogram name="SessionRestore.NavEntryCommittedLongPeriod">
  <obsolete>
    Deprecated 2017-02 as not actionable.
  </obsolete>
  <summary>
    Like NavEntryCommittedPeriod, but specifically to provide a clearer
    breakdown of samples in the 10 minutes - 8 hours range.
  </summary>
</histogram>

<histogram name="SessionRestore.NavEntryCommittedPeriod" units="ms">
  <obsolete>
    Deprecated 2017-02 as not actionable.
  </obsolete>
  <summary>
    Milliseconds between subsequent Save() operations due to a nav entry being
    committed (new tab created + nav initiated).
  </summary>
</histogram>

<histogram name="SessionRestore.NavigationListPrunedLongPeriod">
  <obsolete>
    Deprecated 2017-02 as not actionable.
  </obsolete>
  <summary>
    Like NavListPrunedPeriod, but specifically to provide a clearer breakdown of
    samples in the 10 minutes - 8 hours range.
  </summary>
</histogram>

<histogram name="SessionRestore.NavigationListPrunedPeriod" units="ms">
  <obsolete>
    Deprecated 2017-02 as not actionable.
  </obsolete>
  <summary>
    Milliseconds between subsequent Save() operations due to the navigation list
    being pruned (typically a change in back/forward stacks).
  </summary>
</histogram>

<histogram name="SessionRestore.ParallelTabLoads">
  <obsolete>
    Deprecated 2017-02 as not actionable.
  </obsolete>
  <summary>
    The number of tabs that were loaded simultaneously when restoring a session.
  </summary>
</histogram>

<histogram name="SessionRestore.read_session_file_time" units="ms">
  <obsolete>
    Deprecated 2017-02 as not actionable.
  </obsolete>
  <summary>
    Amount of time to read and assemble the commands from the last session.
  </summary>
</histogram>

<histogram name="SessionRestore.RestoredSubframeURL" enum="BooleanRestoredURL">
  <owner>creis@chromium.org</owner>
  <summary>
    How often history navigations in subframes restore a different URL than the
    frame's default src URL. This indicates how much users rely on subframe
    session history items.
  </summary>
</histogram>

<histogram name="SessionRestore.RestoredTab.SiteEngagementScore" units="score">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The site engagement score associated with a tab restored by session restore,
    recorded at the moment the tab is restored.
  </summary>
</histogram>

<histogram name="SessionRestore.RestoredTab.TimeSinceActive" units="ms">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The time since a restored tab was last active. This is the cumulative amount
    of time that has passed since the tab was last visible. Time accrues while a
    browser is active and the tab remains inactive. If the tab is restored and
    remains inactive in a subsequent browsing session the time continues to
    accrue. Visible tabs report a value of 0 for this. This is recorded at the
    moment the tab is restored during a session restore.
  </summary>
</histogram>

<histogram name="SessionRestore.RestoreSubframeFramePathLength" units="bytes">
  <owner>creis@chromium.org</owner>
  <summary>
    Records the length of unique names that include frame paths, for subframes
    that are restoring a different URL than the frame's default src URL during a
    history navigation. Large values here would indicate a possible challenge
    for the plan to truncate frame unique names (to save memory).
  </summary>
</histogram>

<histogram name="SessionRestore.SaveLongPeriod">
  <obsolete>
    Deprecated 2017-02 as not actionable.
  </obsolete>
  <summary>
    Like SavePeriod, but specifically to provide a clearer breakdown of samples
    in the 10 minutes - 8 hours range.
  </summary>
</histogram>

<histogram name="SessionRestore.SavePeriod" units="ms">
  <obsolete>
    Deprecated 2017-02 as not actionable.
  </obsolete>
  <summary>
    Amount of time between subsequent SessionService Save() operations (aka
    updates to session data).
  </summary>
  <details>
    Periods longer than 10 minutes are grouped together; see SaveLongPeriod for
    resolution.
  </details>
</histogram>

<histogram name="SessionRestore.SubFrameUniqueNameChangedBeforeFirstCommit"
    enum="BooleanSuccess">
  <owner>dcheng@chromium.org</owner>
  <summary>
    How often a subframe is assigned a new name between the initial empty
    document and the first navigation.
  </summary>
</histogram>

<histogram name="SessionRestore.TabActions" enum="SessionRestoreTabActions">
  <owner>chrisha@chromium.org</owner>
  <summary>
    A breakdown of key events that occur to individual tabs as they are
    processed by an ongoing session restore.
  </summary>
</histogram>

<histogram name="SessionRestore.TabClosedLongPeriod">
  <obsolete>
    Deprecated 2017-02 as not actionable.
  </obsolete>
  <summary>
    TabClosedPeriod, but specifically to provide a clearer breakdown of samples
    in the 10 minutes - 8 hours range.
  </summary>
</histogram>

<histogram name="SessionRestore.TabClosedPeriod" units="ms">
  <obsolete>
    Deprecated 2017-02 as not actionable.
  </obsolete>
  <summary>
    Milliseconds between subsequent Save() operations due to a tab being closed.
  </summary>
</histogram>

<histogram name="SessionRestore.TabCount" units="tabs">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The number of tabs involved in a single session restore event.
  </summary>
</histogram>

<histogram name="SessionRestore.TabLoadTimeout" enum="BooleanTimedOut">
  <owner>zhenw@chromium.org</owner>
  <summary>
    The boolean indicates whether the tab load was initiated because a previous
    tab load completed (including the tab was closed) or whether the tab load
    was initiated because a timer fired to start the next load (true) during
    session restore.
  </summary>
</histogram>

<histogram name="SessionStorageContext.CachePurgedInKB" units="KB">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Total size of the HTML5 SessionStorage browser-side cache purged in KB when
    memory pressure signal was triggered or cache size hit the limits.
  </summary>
</histogram>

<histogram name="SessionStorageContext.CacheSizeInKB" units="KB">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Total size of the HTML5 SessionStorage databases in KB in the browser-side
    cache. Recorded each time a new database is opened in memory.
  </summary>
</histogram>

<histogram name="SessionStorageContext.CommitResult" enum="LevelDBStatus">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The result of an attempt to commit SessionStorage data to the database.
  </summary>
</histogram>

<histogram name="SessionStorageContext.DatabaseOpenError" enum="LevelDBStatus">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The result of a failed attempt to open a LevelDB database for
    SessionStorage.
  </summary>
</histogram>

<histogram name="SessionStorageContext.DatabaseOpenError.Disk"
    enum="LevelDBStatus">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The result of a failed attempt to open a LevelDB database for SessionStorage
    on disk.
  </summary>
</histogram>

<histogram name="SessionStorageContext.DatabaseOpenError.Memory"
    enum="LevelDBStatus">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The result of a failed attempt to open a LevelDB database for SessionStorage
    in memory.
  </summary>
</histogram>

<histogram name="SessionStorageContext.DestroyDBResult" enum="LevelDBStatus">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The result of attempting to delete the SessionStorage database.
  </summary>
</histogram>

<histogram name="SessionStorageContext.DirectoryOpenError"
    enum="PlatformFileError">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The reason opening a directory for the LevelDB database that backs
    LocalStorage failed.
  </summary>
</histogram>

<histogram name="SessionStorageContext.OnConnectionDestroyed" enum="Boolean">
  <owner>dmurph@chromium.org</owner>
  <owner>dullweber@chromium.org</owner>
  <summary>
    Recorded when the database connection is closed unexpectedly.
  </summary>
</histogram>

<histogram name="SessionStorageContext.OpenError" enum="LocalStorageOpenError">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The reason opening the LevelDB database that backs SessionStorage failed.
  </summary>
</histogram>

<histogram base="true" name="SessionStorageContext.OpenResultAfter"
    enum="LocalStorageOpenError">
<!-- Name completed by histogram_suffixes name="SessionStorageContextOpenReasons" -->

  <owner>dmurph@chromium.org</owner>
  <summary>
    The result of opening the LevelDB database that backs SessionStorage.
  </summary>
</histogram>

<histogram name="SessionStorageContext.ReadNamespacesError"
    enum="LevelDBStatus">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The reason reading the namespaces metadata of the SessionStorage database
    failed.
  </summary>
</histogram>

<histogram name="SessionStorageContext.ReadNextMapIdError" enum="LevelDBStatus">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The reason reading the next data map id metadata of the SessionStorage
    database failed.
  </summary>
</histogram>

<histogram name="SessionStorageContext.ReadVersionError" enum="LevelDBStatus">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The reason reading the schema version of the SessionStorage database failed.
  </summary>
</histogram>

<histogram name="SessionStorageDatabase.Commit" enum="LevelDBStatus">
  <owner>cmumford@chromium.org</owner>
  <summary>The result of a commit to the sessionStorage database.</summary>
</histogram>

<histogram name="SessionStorageDatabase.Open" enum="SessionStorageDatabaseOpen">
  <owner>mek@chromium.org</owner>
  <owner>dmurph@chromium.org</owner>
  <summary>
    The result (success, failure, or database recreated) of trying to open the
    LevelDB database for sessionStorage.
  </summary>
</histogram>

<histogram name="Settings.DefaultSearchProvider" enum="OmniboxSearchEngine">
  <obsolete>
    Deprecated in Chrome 30. Use Search.DefaultSearchProviderType instead.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The id of the default search engine domain that is specified in user
    preferences when a profile is loaded.
  </summary>
</histogram>

<histogram name="Settings.EnforcementGroupDeterminedFromTrial"
    enum="BooleanSuccess">
  <owner>gab@chromium.org</owner>
  <summary>
    Whether the SettingsEnforcement group was successfully determined from the
    field trial or if it had to revert to the hardcoded default.
  </summary>
</histogram>

<histogram name="Settings.FilterOnLoadTime" units="ms"
    expires_after="2018-08-30">
  <owner>gab@chromium.org</owner>
  <summary>
    The amount of time it took to run PrefHashFilter::FilterOnLoad on startup.
  </summary>
</histogram>

<histogram name="Settings.FilterSerializeDataTime" units="ms"
    expires_after="2018-08-30">
  <owner>gab@chromium.org</owner>
  <summary>
    The amount of time it took to run PrefHashFilter::FilterSerializeData on the
    UI thread prior to writing the Preferences file to disk. Only logged when
    PrefHashFilter::FilterSerializeData actually had work to do.
  </summary>
</histogram>

<histogram name="Settings.GivenShowHomeButton_HomePageIsNewTabPage"
    enum="Boolean" expires_after="2019-08-30">
  <owner>mpearson@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether or not the home page user preference is set to the default NTP value
    when a profile is loaded. This is only logged if the home button is shown.
  </summary>
</histogram>

<histogram name="Settings.HashesDictionaryTrusted" enum="BooleanValid">
  <owner>csharp@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>
    Logged on profile load. Indicates whether the hashes dictionary for this
    profile is trusted.
  </summary>
</histogram>

<histogram name="Settings.HomePageDomain" enum="OmniboxSearchEngine">
  <obsolete>
    Deprecated in Chrome 30. Replaced by Settings.HomePageEngineType.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The id of the home page domain that is specified in user preferences when a
    profile is loaded.
  </summary>
</histogram>

<histogram name="Settings.HomePageEngineType" enum="OmniboxSearchEngineType"
    expires_after="2020-07-30">
  <owner>mpearson@chromium.org</owner>
  <owner>csharp@chromium.org</owner>
  <summary>
    Tries to pretend the home page URL is a search URL, and records the search
    engine type of that URL by comparing the TLD+1 of the home page URL with
    those of the different known search engines. Recorded when a profile is
    opened, if a home page URL has been set. Note that at least one profile is
    opened on startup.
  </summary>
</histogram>

<histogram name="Settings.HomePageIsCustomized" enum="Boolean"
    expires_after="2019-08-30">
  <owner>twellington@chromium.org</owner>
  <owner>tedchoc@chromium.org</owner>
  <summary>
    Whether or not the user has customized their homepage. This is recorded for
    all users with a configurable homepage, regardless of whether they have
    explicitly disabled the home button in settings. Recorded for Android only
    on deferred startup and when the user changes their homepage URL.
  </summary>
</histogram>

<histogram name="Settings.HomePageIsNewTabPage" enum="Boolean">
  <obsolete>
    Deprecated 08/05/2013. Replaced by
    Settings.GivenShowHomeButton_HomePageIsNewTabPage.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Whether or not the home page user preference is set to the default NTP value
    when a profile is loaded.
  </summary>
</histogram>

<histogram name="Settings.HomePageIsNewTabPage.PulledFromSync" enum="Boolean"
    expires_after="2018-08-30">
  <obsolete>
    Removed in Aug 2018.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The value of the home-page-is-new-tab-page pref when pulled down from sync
    to update an out-of-sync local pref store.
  </summary>
</histogram>

<histogram name="Settings.HomePageIsNewTabPage.PushedToSync" enum="Boolean"
    expires_after="2018-08-30">
  <obsolete>
    Removed in Aug 2018.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The value of the home-page-is-new-tab-page pref when pushed up to sync from
    a change made locally.
  </summary>
</histogram>

<histogram name="Settings.InitializedFromMasterPrefs" enum="BooleanSuccess">
  <owner>csharp@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>
    Logged on first run when generating the Preferences file from
    master_preferences. True if serializing the generated Preferences file to
    disk was successful, false otherwise. Note: this event does not occur if
    there is no master_preferences file on first run.
  </summary>
</histogram>

<histogram name="Settings.JsonDataReadSizeKilobytes" units="KB"
    expires_after="2018-07-30">
  <owner>gab@chromium.org</owner>
  <summary>
    The size (in kilobytes) of the JSON settings read from disk on startup.
    Suffixed with the name of the corresponding JSON file.
  </summary>
</histogram>

<histogram name="Settings.JsonDataSizeKilobytes" units="KB">
  <obsolete>
    Deprecated 02/2015. Replaced by Settings.JsonDataReadSizeKilobytes.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    The size of the JSON settings content about to be written to disk in
    kilobytes. Suffixed with the name of the JSON file being written to disk.
  </summary>
</histogram>

<histogram name="Settings.JsonDataWriteCount" units="count">
  <obsolete>
    Removed 11/2018 due to lack of use.
  </obsolete>
  <owner>raymes@chromium.org</owner>
  <summary>
    The number of writes of a JSON file that occur in every 5 minute period of
    running Chrome. Suffixed with the name of the corresponding JSON file.
  </summary>
</histogram>

<histogram name="Settings.LegacyMachineIdGenerationSuccess"
    enum="BooleanSuccess">
  <owner>proberge@chromium.org</owner>
  <summary>
    Whether generation of the RLZ deterministic machine-specific device id was
    successful when creating the ProfilePrefStore.
  </summary>
</histogram>

<histogram name="Settings.LoadCompletedTime" units="ms">
  <owner>stevenjb@chromium.org</owner>
  <summary>
    The amount of time between the render frame host StartProvisionalLoad event
    and the render frame DocumentOnLoadCompleted event for the settings page.
  </summary>
</histogram>

<histogram name="Settings.LoadCompletedTime.MD" units="ms">
  <owner>stevenjb@chromium.org</owner>
  <summary>
    The amount of time between the render frame host StartProvisionalLoad event
    and the render frame DocumentOnLoadCompleted event for the md-settings page.
  </summary>
</histogram>

<histogram name="Settings.LoadDocumentTime" units="ms">
  <owner>stevenjb@chromium.org</owner>
  <summary>
    The amount of time between the render frame host StartProvisionalLoad and
    DidFinishDocumentLoad events for the settings page.
  </summary>
</histogram>

<histogram name="Settings.LoadDocumentTime.MD" units="ms">
  <owner>stevenjb@chromium.org</owner>
  <summary>
    The amount of time between the render frame host StartProvisionalLoad and
    DidFinishDocumentLoad events for the md-settings page.
  </summary>
</histogram>

<histogram name="Settings.MachineIdGenerationSuccess" enum="BooleanSuccess">
  <obsolete>
    Deprecated in Chrome 63, as we verified that machine id generation was not
    flaky.
  </obsolete>
  <owner>proberge@chromium.org</owner>
  <summary>
    Whether generation of the deterministic machine-specific device id was
    successful when initializing the PrefHashStore.
  </summary>
</histogram>

<histogram name="Settings.MigratedHashesFromLocalState" enum="BooleanMigrated">
  <obsolete>
    Deprecated in Chrome 54, as we stopped legacy migration of preferences.
  </obsolete>
  <owner>csharp@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>
    Whether, while loading a profile, any preference hashes were migrated from
    Local State to either Preferences or Protected Preferences.
  </summary>
</histogram>

<histogram name="Settings.PinnedTabEngineTypes" enum="OmniboxSearchEngineType"
    expires_after="2020-07-30">
  <owner>mpearson@chromium.org</owner>
  <owner>csharp@chromium.org</owner>
  <summary>
    Tries to pretend pinned tab URLs are search URLs, and records the search
    engine types of those URLs by comparing the TLD+1s of the URLs with those of
    the different known search engines. Recorded when a profile is opened, if
    there are pinned tabs. Note that at least one profile is opened on startup.
  </summary>
</histogram>

<histogram name="Settings.PinnedTabs">
  <owner>mpearson@chromium.org</owner>
  <summary>The number of pinned tabs opened when a profile is loaded.</summary>
</histogram>

<histogram name="Settings.PinUnlockSetup" enum="LockScreenProgress">
  <owner>sammiequon@chromium.org</owner>
  <summary>
    The users progress through the pin unlock setup wizard. Each type
    corresponds to the user completeing a different stage of the setup wizard.
  </summary>
</histogram>

<histogram name="Settings.RegisterProfilePrefsTime" units="ms">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during RegisterProfilePrefs.
  </summary>
</histogram>

<histogram name="Settings.SearchLength">
  <owner>dschuyler@chromium.org</owner>
  <summary>
    The number of characters typed in the chrome://settings page search box.
    Intended to determine if we are making the user type too much to find what
    they are looking for (the search is incremental).
  </summary>
</histogram>

<histogram name="Settings.SearchLengthNoMatch">
  <owner>dschuyler@chromium.org</owner>
  <summary>
    If no matches are found when searching within the chrome://settings page,
    record the length of the search text.
  </summary>
</histogram>

<histogram name="Settings.SearchPageMatchCount">
  <owner>dschuyler@chromium.org</owner>
  <summary>
    The number of search page hits within the chrome://settings page. This is
    especially important when the count is zero (i.e. we returned no hits for a
    given search in settings). A search is considered complete via timeout since
    there is no concrete way to define the end of a search (the search is
    incremental).
  </summary>
</histogram>

<histogram name="Settings.SearchSections" enum="SettingsSections">
  <owner>dschuyler@chromium.org</owner>
  <summary>
    If there is no further activity in the search box for 1 second, this records
    one tick each time a settings section is shown as a result of searching
    withing the chrome://settings page. If multiple matches are found within the
    same section, the section match is only recorded once.
  </summary>
</histogram>

<histogram name="Settings.SearchSubpageMatchCount">
  <owner>dschuyler@chromium.org</owner>
  <summary>
    The number of search subpage hits within the chrome://settings page. This is
    different from Settings.SearchPageMatchCount in that it is tracking hits in
    subpages rather than top level pages. See also
    Settings.SearchPageMatchCount.
  </summary>
</histogram>

<histogram name="Settings.ShowHomeButton" enum="BooleanEnabled"
    expires_after="2019-08-30">
  <owner>mpearson@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether or not the home button is enabled in user preferences when a profile
    is loaded.
  </summary>
</histogram>

<histogram name="Settings.ShowHomeButton.PulledFromSync" enum="BooleanEnabled"
    expires_after="2018-08-30">
  <obsolete>
    Removed in Aug 2018.
  </obsolete>
  <owner>mpearson@chromium.org</owner>
  <summary>
    The enabled state of the Home button pref when pulled down from sync to
    update an out-of-sync local pref store.
  </summary>
</histogram>

<histogram name="Settings.ShowHomeButton.PushedToSync" enum="BooleanEnabled"
    expires_after="2018-08-30">
  <obsolete>
    Removed in Aug 2018.
  </obsolete>
  <owner>mpearson@chromium.org</owner>
  <summary>
    The enabled state of the Home button pref when pushed up to sync from a
    change made locally.
  </summary>
</histogram>

<histogram name="Settings.ShowHomeButtonPreferenceState" enum="BooleanEnabled"
    expires_after="2019-08-30">
  <owner>twellington@chromium.org</owner>
  <owner>tedchoc@chromium.org</owner>
  <summary>
    If the home button is enabled or disabled. This is only recorded if the
    force homepage feature flag is enabled or the home button is partner
    provided. Recorded for Android only on deferred startup and when the user
    changes their home button enabled setting.
  </summary>
</histogram>

<histogram name="Settings.ShowHomeButtonPreferenceStateChanged"
    enum="BooleanEnabled" expires_after="2019-08-30">
  <owner>twellington@chromium.org</owner>
  <owner>tedchoc@chromium.org</owner>
  <summary>
    The new state of the show home button preference after it is changed by the
    user. Recorded for Android only.
  </summary>
</histogram>

<histogram name="Settings.StartSetAsDefault" enum="BooleanHit">
  <owner>pmonette@chromium.org</owner>
  <summary>
    The user clicked &quot;Make Google Chrome the default browser&quot; on the
    settings page.
  </summary>
</histogram>

<histogram name="Settings.StartupPageDomains" enum="OmniboxSearchEngine">
  <obsolete>
    Deprecated in Chrome 30. Replaced by Settings.StartupPageEngineTypes.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The ids of startup page domains that are specified in user preferences when
    a profile is loaded.
  </summary>
</histogram>

<histogram name="Settings.StartupPageEngineTypes"
    enum="OmniboxSearchEngineType" expires_after="2020-07-30">
  <owner>mpearson@chromium.org</owner>
  <owner>csharp@chromium.org</owner>
  <summary>
    Tries to pretend the startup page URLs are search URLs, and records the
    search engine types of those URLs by comparing the TLD+1s of the URLs with
    those of the different known search engines. Recorded when a profile is
    opened, if startup page URLs have been set. Note that at least one profile
    is opened on startup.
  </summary>
</histogram>

<histogram name="Settings.StartupPageLoadSettings" enum="SessionStartupPref"
    expires_after="2019-08-30">
  <owner>ramyan@chromium.org</owner>
  <owner>mpearson@chromium.org</owner>
  <summary>The startup page settings when a profile is loaded.</summary>
</histogram>

<histogram name="Settings.StartupPageLoadSettings.PulledFromSync"
    enum="SessionStartupPref" expires_after="2018-08-30">
  <obsolete>
    Removed in Aug 2018.
  </obsolete>
  <owner>mpearson@chromium.org</owner>
  <summary>
    The startup page setting when pulled down from sync to update an out-of-sync
    local pref store.
  </summary>
</histogram>

<histogram name="Settings.StartupPageLoadSettings.PushedToSync"
    enum="SessionStartupPref" expires_after="2018-08-30">
  <obsolete>
    Removed in Aug 2018.
  </obsolete>
  <owner>mpearson@chromium.org</owner>
  <summary>
    The startup page setting when pushed up to sync from a change made locally.
  </summary>
</histogram>

<histogram name="Settings.StartupPageLoadURLs">
  <owner>mpearson@chromium.org</owner>
  <summary>
    The number of URLs to be loaded on startup when a profile is loaded, if the
    startup page setting is set to load URLs.
  </summary>
</histogram>

<histogram name="Settings.StartupURLsMigration" enum="StartupURLsMigration">
  <obsolete>
    Deprecated 12/2015.
  </obsolete>
  <owner>mad@chromium.org</owner>
  <summary>The startup URLs pref migration steps.</summary>
</histogram>

<histogram name="Settings.StartupURLsResetTime" units="ms">
  <obsolete>
    Deprecated 12/2015.
  </obsolete>
  <owner>mad@chromium.org</owner>
  <summary>
    The time elapsed in milliseconds in between startup URLs pref migration. A
    value of 0 indicates that the last migration time was in the future due to
    e.g. an incorrect system time.
  </summary>
</histogram>

<histogram name="Settings.TimeToFirstSearch" units="ms">
  <owner>dschuyler@chromium.org</owner>
  <summary>
    The time between when the chrome://settings page is opened to the first time
    a search is done within that page. This is intended to evaluate how long a
    user looks for a setting before giving up and searching for it.
  </summary>
</histogram>

<histogram name="Settings.TimeUntilInteractive" units="ms">
  <owner>dbeam@chromium.org</owner>
  <summary>
    The time until the settings Web UI is loaded, rendered, and interactive for
    users (as in they can change a setting). Automatically logged each time the
    settings page is opened (if not closed before interactive).
  </summary>
</histogram>

<histogram name="Settings.TrackedPreferenceChanged" enum="TrackedPreference">
  <owner>gab@chromium.org</owner>
  <summary>
    The id of a tracked preference whose value has been changed since the last
    time Chrome set it. Without a suffix, this histogram stands for preference
    validation using MACs in the JSON pref files.
  </summary>
</histogram>

<histogram name="Settings.TrackedPreferenceCleared" enum="TrackedPreference">
  <owner>gab@chromium.org</owner>
  <summary>
    The id of a tracked preference whose value has been cleared since the last
    time Chrome set it. Without a suffix, this histogram stands for preference
    validation using MACs in the JSON pref files.
  </summary>
</histogram>

<histogram name="Settings.TrackedPreferenceInitialized"
    enum="TrackedPreference">
  <owner>gab@chromium.org</owner>
  <summary>
    The id of a tracked preference whose last value isn't known. We may be just
    starting to track the preference, or local state may have been changed
    outside of Chrome. This should only happen once per pref per profile.
    Without a suffix, this histogram stands for preference validation using MACs
    in the JSON pref files.
  </summary>
</histogram>

<histogram name="Settings.TrackedPreferenceMigrated" enum="TrackedPreference">
  <obsolete>
    Deprecated 2014-07.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Logs the tracked preference id when it is migrated to the new MAC algorithm.
    This should only happen once per pref per profile.
  </summary>
</histogram>

<histogram name="Settings.TrackedPreferenceMigratedLegacyDeviceId"
    enum="TrackedPreference">
  <owner>gab@chromium.org</owner>
  <summary>
    The id of a tracked preference whose value has not changed since the last
    time Chrome set it, but which was last set using a legacy device ID. Each
    user should report this at most once per preference id and immediately be
    migrated to the latest hashing model. Without a suffix, this histogram
    stands for preference validation using MACs in the JSON pref files.
  </summary>
</histogram>

<histogram name="Settings.TrackedPreferenceNullInitialized"
    enum="TrackedPreference">
  <owner>gab@chromium.org</owner>
  <summary>
    The id of a tracked preference which was initialized despite the absence of
    a MAC as its value was NULL. Without a suffix, this histogram stands for
    preference validation using MACs in the JSON pref files.
  </summary>
</histogram>

<histogram name="Settings.TrackedPreferenceReset" enum="TrackedPreference">
  <owner>gab@chromium.org</owner>
  <summary>The id of a tracked preference which was reset by Chrome.</summary>
</histogram>

<histogram name="Settings.TrackedPreferencesAlternateStoreVersion"
    enum="PrefHashStoreVersion">
  <obsolete>
    Deprecated 2014-06.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    The version of a PrefHashStore, reported once for each alternate
    PrefHashStore (not associated to the default profile) from a delayed task on
    startup.
  </summary>
</histogram>

<histogram name="Settings.TrackedPreferencesAlternateStoreVersionUpdatedFrom"
    enum="PrefHashStoreVersion">
  <obsolete>
    Deprecated 2014-06.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    The previous version of an alternate PrefHashStore (not associated to the
    default profile) that was updated from a delayed task on startup. This
    should match Settings.TrackedPreferencesAlternateStoreVersion fairly closely
    for all versions but VERSION_LATEST which should never be reported here.
  </summary>
</histogram>

<histogram name="Settings.TrackedPreferencesInitializedForUnloadedProfile"
    enum="BooleanHit">
  <obsolete>
    Deprecated 2014-02 in favor of
    Settings.TrackedPreferencesAlternateStoreVersionUpdatedFrom.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Preference tracking was initialized for an unloaded profile. This should
    happen at most once per profile.
  </summary>
</histogram>

<histogram name="Settings.TrackedPreferencesNoEnforcementOnDomain"
    enum="BooleanEnabled" expires_after="2018-08-30">
  <owner>gab@chromium.org</owner>
  <summary>
    Whether settings enforcement was cancelled for a machine joined to a domain.
    Reported once per session on browser startup (note: this histogram was
    disabled for part of M40).
  </summary>
</histogram>

<histogram name="Settings.TrackedPreferenceTrustedInitialized"
    enum="TrackedPreference">
  <owner>gab@chromium.org</owner>
  <summary>
    The id of a tracked preference which was initialized despite the absence of
    a MAC as the current MACs are trusted, inferring that this is a newly
    tracked pref. Without a suffix, this histogram stands for preference
    validation using MACs in the JSON pref files.
  </summary>
</histogram>

<histogram name="Settings.TrackedPreferenceUnchanged" enum="TrackedPreference">
  <owner>gab@chromium.org</owner>
  <summary>
    The id of a tracked preference whose value has not changed since the last
    time Chrome set it. Without a suffix, this histogram stands for preference
    validation using MACs in the JSON pref files.
  </summary>
</histogram>

<histogram name="Settings.TrackedPreferenceWantedReset"
    enum="TrackedPreference">
  <owner>gab@chromium.org</owner>
  <summary>
    The id of a tracked preference which Chrome would have reset had the config
    allowed it.
  </summary>
</histogram>

<histogram name="Settings.TrackedSplitPreferenceChanged">
  <owner>gab@chromium.org</owner>
  <summary>
    The number of items that had changed in a dictionary pref when
    Settings.TrackedPreferenceChanged is reported for that pref.
  </summary>
</histogram>

<histogram name="Settings.ZoomLevelPreferencesMigrated" enum="BooleanMigrated">
  <obsolete>
    Deprecated 2015-08-18.
  </obsolete>
  <owner>wjmaclean@chromium.org</owner>
  <summary>
    Tracks migration to per-partition zoom-level preferences during profile
    initialization.
  </summary>
</histogram>

<histogram name="SettingsAppMonitor.InitializationResult" enum="BooleanSuccess">
  <owner>grt@chromium.org</owner>
  <summary>
    Indicates whether or not the Windows Settings app monitor was initialized.
  </summary>
</histogram>

<histogram name="SettingsResetBubble.NumNoThanksPerReset">
  <owner>mad@chromium.org</owner>
  <summary>
    Counts the number of times the user clicked on the No Thanks button of the
    settings reset bubble before clicking on the Reset button in the same Chrome
    session.
  </summary>
</histogram>

<histogram name="SettingsResetPrompt.ConfigError"
    enum="SettingsResetPromptConfigError">
  <owner>alito@chromium.org</owner>
  <summary>
    Indicates if an error was detected in the settings reset prompt config data
    while initializing the reset prompt configuration.
  </summary>
</histogram>

<histogram name="SettingsResetPrompt.DelayBeforePromptParam" units="seconds">
  <owner>alito@chromium.org</owner>
  <summary>
    The feature parameter determining the amount of time to wait after startup
    before attempting to show the settings reset prompt. Logged once after
    startup.
  </summary>
</histogram>

<histogram name="SettingsResetPrompt.DialogShown" enum="BooleanShown">
  <owner>alito@chromium.org</owner>
  <summary>
    Indicates whether the settings reset prompt dialog was shown to the user.
  </summary>
</histogram>

<histogram name="SettingsResetPrompt.NumberOfExtensionsDisabled"
    units="extensions">
  <obsolete>
    Deprecated on 2018-01-16.
  </obsolete>
  <owner>alito@chromium.org</owner>
  <summary>
    The number of extensions that were disabled after the user accepted the
    settings reset prompt.
  </summary>
</histogram>

<histogram name="SettingsResetPrompt.NumberOfExtensionsToDisable"
    units="extensions">
  <obsolete>
    Deprecated on 2018-01-16.
  </obsolete>
  <owner>alito@chromium.org</owner>
  <summary>
    The number of extensions that will be disabled if the user accepts the
    settings reset prompt. Logged once after startup.
  </summary>
</histogram>

<histogram name="SettingsResetPrompt.PromptAccepted" enum="BooleanAccepted">
  <owner>alito@chromium.org</owner>
  <summary>
    Indicates whether the user accepted the settings reset prompt.
  </summary>
</histogram>

<histogram name="SettingsResetPrompt.PromptRequired" enum="BooleanRequired">
  <owner>alito@chromium.org</owner>
  <summary>
    Indicates whether the settings reset prompt should be shown to the user
    based on the state of the user's settings.
  </summary>
</histogram>

<histogram name="SettingsResetPrompt.ResetState"
    enum="SettingsResetPromptResetState">
  <owner>alito@chromium.org</owner>
  <summary>
    Indicates whether the settings reset prompt is enabled for the user's
    setting, or the reason for it being disabled. Logged once after startup.
  </summary>
</histogram>

<histogram name="SettingsResetPrompt.SettingsReset"
    enum="SettingsResetPromptSettingsReset">
  <owner>alito@chromium.org</owner>
  <summary>
    Indicates which settings were reset after the user accepted the settings
    reset prompt.
  </summary>
</histogram>

<histogram name="SettingsResetPrompt.TimeUntilAccepted" units="ms">
  <owner>alito@chromium.org</owner>
  <summary>
    The time between the settings reset prompt dialog being shown and the user
    accepting the prompt.
  </summary>
</histogram>

<histogram name="SettingsResetPrompt.TimeUntilCanceled" units="ms">
  <owner>alito@chromium.org</owner>
  <summary>
    The time between the settings reset prompt dialog being shown and the user
    declining the prompt by clicking the cancel button.
  </summary>
</histogram>

<histogram name="SettingsResetPrompt.TimeUntilDeclined" units="ms">
  <obsolete>
    Deprecated in M59 in April 2017 and replaced by
    SettingsResetPrompt.TimeUntilCanceled and
    SettingsResetPrompt.TimeUntilDismissed.
  </obsolete>
  <owner>alito@chromium.org</owner>
  <summary>
    The time between the settings reset prompt dialog being shown and the user
    declining the prompt.
  </summary>
</histogram>

<histogram name="SettingsResetPrompt.TimeUntilDismissed" units="ms">
  <owner>alito@chromium.org</owner>
  <summary>
    The time between the settings reset prompt dialog being shown and the user
    dismissing the prompt, for example by clicking on the 'x' in the dialog or
    pressing the Escape key.
  </summary>
</histogram>

<histogram name="Setup.Install.AddAppContainerAce" enum="Boolean">
  <owner>forshaw@chromium.org</owner>
  <summary>
    True if the the installer successfully added AppContainer ACEs to the
    application directory during installation and updating.
  </summary>
</histogram>

<histogram name="Setup.Install.ApplyArchivePatchTime" units="ms">
  <owner>grt@chromium.org</owner>
  <summary>
    The elapesed time to apply a patch to a previous version's chrome.7z archive
    to generate a new chrome.7z archive. This histogram only applies to diff
    updates.
  </summary>
</histogram>

<histogram name="Setup.Install.DeleteAppHost" enum="BooleanDeletedOrNot">
  <owner>grt@chromium.org</owner>
  <summary>
    Hit following a successful install or update when the legacy
    &quot;app_host.exe&quot; binary is deleted from the filesystem.
  </summary>
</histogram>

<histogram name="Setup.Install.DeleteAppLauncherClientsKey"
    enum="BooleanDeletedOrNot">
  <owner>grt@chromium.org</owner>
  <summary>
    Hit following a successful install or update when the legacy &quot;app
    launcher&quot; Clients key is deleted from the registry.
  </summary>
</histogram>

<histogram name="Setup.Install.DeleteBinariesClientsKey"
    enum="BooleanDeletedOrNot">
  <owner>grt@chromium.org</owner>
  <summary>
    Hit following a successful install or update when the legacy
    &quot;binaries&quot; Clients key is deleted from the registry.
  </summary>
</histogram>

<histogram name="Setup.Install.DeleteIExecuteCommandClassKey"
    enum="BooleanDeletedOrNot">
  <owner>grt@chromium.org</owner>
  <summary>
    Hit following a successful install or update when the COM registration for
    the legacy &quot;IExecuteCommand&quot; implementation class key is deleted
    from the registry.
  </summary>
</histogram>

<histogram name="Setup.Install.DeleteInstallExtensionCommand"
    enum="BooleanDeletedOrNot">
  <owner>grt@chromium.org</owner>
  <summary>
    Hit following a successful install or update when the legacy
    &quot;install-extension&quot; app command is deleted from the registry.
  </summary>
</histogram>

<histogram name="Setup.Install.HasArchivePatch" enum="Boolean">
  <owner>grt@chromium.org</owner>
  <summary>
    True if the chrome.packed.7z archive contains a patch (in which case a diff
    update is taking place) or false if it contains a full archive (in which
    case a new install or a full update is taking place).
  </summary>
</histogram>

<histogram name="Setup.Install.LzmaUnPackNTSTATUS" enum="NTSTATUS">
  <owner>zmin@chromium.org</owner>
  <summary>
    Record the NTSTATUS code of unpacking the contents of a 7z file.
  </summary>
</histogram>

<histogram base="true" name="Setup.Install.LzmaUnPackResult"
    enum="WinGetLastError">
  <owner>etiennep@chromium.org</owner>
  <summary>
    Record the return value of unpacking the contents of a 7z file.
  </summary>
</histogram>

<histogram name="Setup.Install.LzmaUnPackStatus" enum="UnPackStatus">
  <owner>zmin@chromium.org</owner>
  <summary>Record the status of unpacking the contents of a 7z file.</summary>
</histogram>

<histogram name="Setup.Install.MultiChromeFrameRemoved"
    enum="MultiChromeFrameRemovalResult">
  <owner>grt@chromium.org</owner>
  <summary>
    Hit following a successful install or update when data from a legacy
    multi-install Chrome Frame is deleted from the registry.
  </summary>
</histogram>

<histogram name="Setup.Install.NumDeleteOldVersionsAttemptsBeforeAbort"
    units="Attempts">
  <owner>fdoray@chromium.org</owner>
  <summary>
    Number of calls to DeleteOldVerions() made by a --delete-old-versions
    process that didn't delete all files that belong to old versions of Chrome.
    A --delete-old-versions process exits when another process tries to acquire
    the SetupSingleton or after too many unsuccessful attempts to delete all old
    files. A --delete-old-versions process that successfully acquires the
    SetupSingleton records to either the
    Setup.Install.NumDeleteOldVersionsAttemptsBeforeAbort histogram or the
    Setup.Install.NumDeleteOldVersionsAttemptsBeforeSuccess histogram.
  </summary>
</histogram>

<histogram name="Setup.Install.NumDeleteOldVersionsAttemptsBeforeSuccess"
    units="Attempts">
  <owner>fdoray@chromium.org</owner>
  <summary>
    Number of calls to DeleteOldVersions() made by a --delete-old-versions
    process that successfully deleted all files that belong to old versions of
    Chrome. A --delete-old-versions process that successfully acquires the
    SetupSingleton records to either the
    Setup.Install.NumDeleteOldVersionsAttemptsBeforeAbort histogram or the
    Setup.Install.NumDeleteOldVersionsAttemptsBeforeSuccess histogram.
  </summary>
</histogram>

<histogram name="Setup.Install.PeakPagefileUsage" units="KB">
  <owner>huangs@chromium.org</owner>
  <summary>
    The peak page file usage by setup.exe in KB during install or uninstall
    attempt.
  </summary>
</histogram>

<histogram name="Setup.Install.PeakWorkingSetSize" units="KB">
  <owner>huangs@chromium.org</owner>
  <summary>
    The peak working set size of setup.exe in KB during install or uninstall
    attempt.
  </summary>
</histogram>

<histogram name="Setup.Install.Result" enum="SetupInstallResult">
  <owner>grt@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    The final exit-result of the entire run of setup.exe on Windows.
  </summary>
</histogram>

<histogram name="Setup.Install.ServiceInstallResult"
    enum="SetupInstallServiceInstallResult" expires_after="2020-12-30">
  <owner>ganesh@chromium.org</owner>
  <owner>sorin@chromium.org</owner>
  <owner>xiaolingbao@chromium.org</owner>
  <summary>The outcome of attempting to install a service on Windows.</summary>
</histogram>

<histogram name="Setup.Install.ServiceRollbackResult"
    enum="SetupInstallServiceRollbackResult" expires_after="2020-12-30">
  <owner>ganesh@chromium.org</owner>
  <owner>sorin@chromium.org</owner>
  <owner>xiaolingbao@chromium.org</owner>
  <summary>
    The outcome of attempting to rollback an install of a service on Windows.
  </summary>
</histogram>

<histogram name="Setup.Install.SingletonAcquisitionResult"
    enum="SetupSingletonAcquisitionResult">
  <owner>fdoray@chromium.org</owner>
  <summary>
    The result of trying to acquire a setup singleton. On Windows, a setup.exe
    process must hold the setup singleton of a Chrome installation when it makes
    changes to it.
  </summary>
</histogram>

<histogram name="Setup.Install.StrandedChromeIsUsed" enum="BooleanUsage">
  <owner>grt@chromium.org</owner>
  <summary>
    The disposition of a stranded Chrome install discovered while updating
    multi-install Chrome Binaries. This metric is only logged in an edge case.
    The buckets indicate whether or not the &quot;stranded&quot; Chrome install
    has been used in the last 28 days. If so, it respresents a Chrome that has
    not been updating due to a logic flaw in the installer and will be repaired
    in the current update. If not, it likely represents Chrome Binaries that
    were previously used by Chrome Frame that has since been uninstalled and
    that will be uninstalled in a future update.
  </summary>
</histogram>

<histogram name="Setup.Install.UncompressArchivePatchTime" units="ms">
  <owner>grt@chromium.org</owner>
  <summary>
    The elapsed time to uncompress a chrome.7z patch. This histogram only
    applies to diff updates.
  </summary>
</histogram>

<histogram name="Setup.Install.UncompressFullArchiveTime" units="ms">
  <owner>grt@chromium.org</owner>
  <summary>
    The elapsed time to uncompress a full chrome.7z archive. This histogram only
    applies to new installs and to full updates.
  </summary>
</histogram>

<histogram name="Setup.Install.UnpackFullArchiveTime" units="ms">
  <owner>grt@chromium.org</owner>
  <summary>
    The elapsed time to unpack the uncompressed chrome.7z archive. This
    histogram applies to all installs and updates.
  </summary>
</histogram>

<histogram base="true" name="Setup.Install.Win32ApiError"
    enum="WinGetLastError" expires_after="2020-12-30">
<!-- Name completed by histogram_suffixes name="SetupInstallWin32Apis". -->

  <owner>ganesh@chromium.org</owner>
  <owner>sorin@chromium.org</owner>
  <owner>xiaolingbao@chromium.org</owner>
  <summary>Win32 APIs that error out during setup.</summary>
</histogram>

<histogram name="SharedMemory.CreateError" enum="SharedMemoryCreateError"
    expires_after="2018-08-30">
  <owner>erikchen@chromium.org</owner>
  <summary>
    A histogram entry is emitted each time a base::SharedMemory object is
    constructed. The value of the entry indicates the type of error encountered
    during construction.
  </summary>
</histogram>

<histogram name="SharedMemory.CreateMacError" enum="MachKernReturn">
  <owner>alexilin@chromium.org</owner>
  <summary>
    Emitted each time a shared memory region could not be created due to a
    failed Mac system call. The value of the entry indicates the return value of
    the failed call.
  </summary>
</histogram>

<histogram name="SharedMemory.CreateWinError" enum="WinGetLastError">
  <owner>bcwhite@chromium.org</owner>
  <summary>
    A histogram entry is emitted each time a base::SharedMemory object could not
    be created due to a failed Windows system call. The value of the entry
    indicates the result of the GetLastError() API call.
  </summary>
</histogram>

<histogram name="SharedMemory.TimeSpentMakingAnonymousMemory" units="ms">
  <obsolete>
    Deprecated 2015-06 because the Finch experiment SharedMemoryCreateStrategy
    has finished running.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    The time spent making a new region of shared, anonymous memory. This metric
    is not emitted if the shared memory region is read only.
  </summary>
</histogram>

<histogram name="SharedWorker.RendererSurviveForWorkerTime" units="ms">
  <obsolete>
    Replaced with BrowserRenderProcessHost.KeepAliveDuration as of Aug 2017.
  </obsolete>
  <owner>horo@chromium.org</owner>
  <summary>
    A survival time of RenderProcessHostImpl for the In-renderer Shared Worker
    from when FastShutdownIfPossible() is called.
  </summary>
</histogram>

<histogram name="SharedWorker.TimeToDeleted" units="ms">
  <owner>horo@chromium.org</owner>
  <summary>
    The lifetime of a SharedWorkerHost. This roughly corresponds to the lifetime
    of SharedWorker.
  </summary>
</histogram>

<histogram name="SharedWorker.TimeToScriptLoaded" units="ms">
  <owner>horo@chromium.org</owner>
  <summary>
    The time from the creation of SharedWorkerHost until when WorkerScriptLoaded
    is called.
  </summary>
</histogram>

<histogram name="SharedWorker.TimeToScriptLoadFailed" units="ms">
  <owner>horo@chromium.org</owner>
  <summary>
    The time from the creation of SharedWorkerHost until when
    WorkerScriptLoadFailed is called.
  </summary>
</histogram>

<histogram name="ShortcutsProvider.DatabaseSize" expires_after="2018-08-30">
  <owner>mpearson@chromium.org</owner>
  <summary>
    The number of entries in shortcuts backend's database when initialized,
    which happens during profile load.
  </summary>
</histogram>

<histogram name="ShortcutsProvider.QueryIndexTime" units="ms">
  <owner>davidben@chromium.org</owner>
  <summary>
    The time it takes for the ShortcutsProvider to perform a query after the
    user has typed N characters.
  </summary>
</histogram>

<histogram name="Shutdown.browser_exit.time">
  <obsolete>
    Replaced by Shutdown.browser_exit.time2 to get more resolution into the tail
    of the distribution (10/2016).
  </obsolete>
  <owner>hashimoto@chromium.org</owner>
  <summary>
    Time for shutdown initiated by the browser exit menu command.
  </summary>
</histogram>

<histogram name="Shutdown.browser_exit.time2">
  <owner>hashimoto@chromium.org</owner>
  <summary>
    Time for shutdown initiated by the browser exit menu command.
  </summary>
</histogram>

<histogram name="Shutdown.browser_exit.time_per_process">
  <owner>hashimoto@chromium.org</owner>
  <summary>
    Time for shutdown initiated by the browser exit menu command per renderer
    process.
  </summary>
</histogram>

<histogram name="Shutdown.end_session.time">
  <obsolete>
    Replaced by Shutdown.end_session.time2 to get more resolution into the tail
    of the distribution (10/2016).
  </obsolete>
  <owner>hashimoto@chromium.org</owner>
  <summary>
    Time for shutdown initiated by an end session (user logs off, shuts down or
    reboots without explicitly exiting).
  </summary>
</histogram>

<histogram name="Shutdown.end_session.time2">
  <owner>hashimoto@chromium.org</owner>
  <summary>
    Time for shutdown initiated by an end session (user logs off, shuts down or
    reboots without explicitly exiting).
  </summary>
</histogram>

<histogram name="Shutdown.end_session.time_per_process">
  <owner>hashimoto@chromium.org</owner>
  <summary>
    Time for shutdown initiated by an end session (user logs off, shuts down or
    reboots without explicitly exiting) per renderer process.
  </summary>
</histogram>

<histogram name="Shutdown.renderers.slow">
  <owner>hashimoto@chromium.org</owner>
  <summary>
    The number of renderer processes that couldn't be shutdown quickly due to
    onbeforeunload or onunload listeners.
  </summary>
</histogram>

<histogram name="Shutdown.renderers.total">
  <owner>hashimoto@chromium.org</owner>
  <summary>
    The number of renderer processes running when shutdown was called.
  </summary>
</histogram>

<histogram name="Shutdown.ShutdownType" enum="ShutdownType">
  <owner>hashimoto@chromium.org</owner>
  <summary>The type of the last shutdown.</summary>
</histogram>

<histogram name="Shutdown.window_close.time" units="ms">
  <obsolete>
    Replaced by Shutdown.window_close.time2 to get more resolution into the tail
    of the distribution (10/2016).
  </obsolete>
  <owner>hashimoto@chromium.org</owner>
  <summary>
    Time for shutdown initiated by the last browser window being closed.
  </summary>
</histogram>

<histogram name="Shutdown.window_close.time2" units="ms">
  <owner>hashimoto@chromium.org</owner>
  <summary>
    Time for shutdown initiated by the last browser window being closed.
  </summary>
</histogram>

<histogram name="Shutdown.window_close.time_per_process">
  <owner>hashimoto@chromium.org</owner>
  <summary>
    Time for shutdown initiated by the last browser window being closed per
    renderer process.
  </summary>
</histogram>

<histogram name="SignedExchange.CertificateFetch.CacheHit"
    enum="BooleanCacheHit" expires_after="2019-10-01">
  <owner>kinuko@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Records if the fetched Signed Exchange certchain was served from HTTP cache
    or not.
  </summary>
</histogram>

<histogram name="SignedExchange.CertVerificationResult" enum="NetErrorCodes"
    expires_after="2019-09-20">
  <owner>kinuko@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Reports the result of Signed Exchange cert verification, including success.
  </summary>
</histogram>

<histogram name="SignedExchange.CTVerificationResult" enum="CTComplianceStatus"
    expires_after="2019-09-20">
  <owner>kinuko@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Reports the result of Signed Exchange CT verification, including success.
  </summary>
</histogram>

<histogram name="SignedExchange.LoadResult" enum="SignedExchangeLoadResult"
    expires_after="2019-09-20">
  <obsolete>
    Removed 2/2019 in favor of SignedExchange.LoadResult2.
  </obsolete>
  <owner>kinuko@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Records the result of loading a resource from Signed HTTP Exchange. Emitted
    each time a response is handled as Signed Exchange.
  </summary>
</histogram>

<histogram name="SignedExchange.LoadResult2" enum="SignedExchangeLoadResult"
    expires_after="2019-09-20">
  <owner>kinuko@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Records the result of loading a resource from Signed HTTP Exchange. Emitted
    each time a response is handled as Signed Exchange.
  </summary>
</histogram>

<histogram name="SignedExchange.OCSPResponseStatus" enum="OCSPResponseStatus"
    expires_after="2019-09-20">
  <owner>kinuko@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The status of OCSP response in Signed Exchange certificates. Reported each
    time Signed Exchange's OCSP check is performed.
  </summary>
</histogram>

<histogram name="SignedExchange.OCSPRevocationStatus"
    enum="OCSPRevocationStatus" expires_after="2019-09-20">
  <owner>kinuko@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Reports the revocation status of OCSP response in Signed Exchange
    certificates. Emitted when Signed Exchange's OCSP check is performed, but
    only when an up-to-date OCSP response was stapled.
  </summary>
</histogram>

<histogram name="SignedExchange.Prefetch.LoadResult"
    enum="SignedExchangeLoadResult" expires_after="2019-10-11">
  <obsolete>
    Removed 2/2019 in favor of SignedExchange.Prefetch.LoadResult2.
  </obsolete>
  <owner>kinuko@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Records if the prefetched Signed Exchange was properly formatted and passed
    verification steps. Reported for each completed SignedExchange prefetch.
  </summary>
</histogram>

<histogram name="SignedExchange.Prefetch.LoadResult2"
    enum="SignedExchangeLoadResult" expires_after="2019-10-11">
  <owner>kinuko@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Records if the prefetched Signed Exchange was properly formatted and passed
    verification steps. Reported for each completed SignedExchange prefetch.
  </summary>
</histogram>

<histogram name="SignedExchange.Prefetch.Precision.30Seconds"
    enum="BooleanUsage" expires_after="2019-10-11">
  <owner>kinuko@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Records if the prefetched Signed Exchange was actually the target of a
    navigation which happened within 30 seconds. Reported when a corresponding
    navigation is observed, or from an periodic timer event which cleans up the
    unmatched prefetch entries.
  </summary>
</histogram>

<histogram name="SignedExchange.Prefetch.Recall.30Seconds" enum="BooleanUsage"
    expires_after="2019-10-11">
  <owner>kinuko@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Records how much Signed Exchange navigations were prefetched and not
    prefetched. Matched against 30 seconds window. Reported for each Signed
    Exchange navigations.
  </summary>
</histogram>

<histogram name="SignedExchange.SignatureVerificationError.Expired"
    units="seconds" expires_after="2019-09-20">
  <owner>kinuko@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Recorded when Signed Exchange signature was expired. Records the time delta
    between current time and signature's &quot;expires&quot; value.
  </summary>
</histogram>

<histogram name="SignedExchange.SignatureVerificationError.NotYetValid"
    units="seconds" expires_after="2019-09-20">
  <owner>kinuko@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Recorded when Signed Exchange signature was not yet valid. Records the time
    delta between current time and signature's &quot;date&quot; value.
  </summary>
</histogram>

<histogram name="SignedExchange.SignatureVerificationResult"
    enum="SignedExchangeSignatureVerificationResult" expires_after="2019-09-20">
  <owner>kinuko@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Reports the result of Signed Exchange signature verification, including
    success.
  </summary>
</histogram>

<histogram name="SignedExchange.Time.CertificateFetch.Failure" units="ms"
    expires_after="2019-10-01">
  <owner>kinuko@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The amount of time elapsed to fetch certificate chain from certUrl, for
    which the fetch has failed.
  </summary>
</histogram>

<histogram name="SignedExchange.Time.CertificateFetch.Success" units="ms"
    expires_after="2019-10-01">
  <owner>kinuko@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The amount of time elapsed to fetch certificate chain from certUrl, for
    which the fetch has succeeded.
  </summary>
</histogram>

<histogram name="SignedExchange.Time.SignatureVerify" units="ms"
    expires_after="2019-10-01">
  <owner>kinuko@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    The amount of time that elapsed during
    SignedExchangeSignatureVerifier::Verify.
  </summary>
</histogram>

<histogram name="SignedExchange.TimeUntilExpiration" units="seconds">
  <owner>kinuko@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Number of seconds until the Signed Exchange's expiration time. Recorded when
    Signed Exchange signature verification is performed, and emitted only for
    Signed Exchanges within the validity period.
  </summary>
</histogram>

<histogram name="Signin" enum="SigninHelperFlow">
  <owner>mlerman@chromium.org</owner>
  <summary>
    Tracks user interactions as they sign in through a flow. The suffix of the
    histogram indicates what UI widget or application flow triggered the signin
    flow.
  </summary>
</histogram>

<histogram name="Signin.AccountEquality" enum="SigninAccountEquality">
  <owner>skym@chromium.org</owner>
  <summary>
    There are two separate ways to test for account equality, using the account
    id or the email. Historically the email was always used, but going forward
    email will be modifiable. Now when we check account equality we use both
    approaches and emit this metric to capture if they agreed or not.
  </summary>
</histogram>

<histogram name="Signin.AccountReconcilorState.OnGaiaResponse"
    enum="SigninAccountReconcilorState">
  <owner>jlebel@chromium.org</owner>
  <summary>
    Records the state of the account reconcilor when GAIA returns a specific
    response.
  </summary>
</histogram>

<histogram name="Signin.AccountTracker.CountOfLoadedAccounts" units="Accounts"
    expires_after="M76">
  <owner>msarda@chromium.org</owner>
  <owner>sdefresne@chromium.org</owner>
  <summary>
    Number of accounts loaded from preferences by the AccountTracker. Invalid
    accounts are not counted.

    This is recorded on each profile load.
  </summary>
</histogram>

<histogram name="Signin.AccountTracker.DeprecatedServiceFlagDeleted"
    enum="BooleanDeletedOrNot" expires_after="M76">
  <owner>msarda@chromium.org</owner>
  <owner>sdefresne@chromium.org</owner>
  <summary>
    This histogram records the removal of the ServiceState property from the
    identities known to the AccountTracker. It records whether the deprecated
    flag was found in the loaded data and had to be deleted.

    This histogram will be used to check whether the migration has completed for
    all active installs on a given platform or not (and whether the code can be
    removed).

    This is recorded on each profile load.
  </summary>
</histogram>

<histogram name="Signin.AccountTracker.GaiaIdMigrationState"
    enum="OAuth2LoginAccountRevokedMigrationState" expires_after="M76">
  <owner>msarda@chromium.org</owner>
  <owner>sdefresne@chromium.org</owner>
  <summary>
    This histogram records the AccountTracker account ID migration status from
    email to GAIA ID after the data is loaded from disk. It is more general than
    OAuth2Login.AccountRevoked.MigrationState that only record the event in case
    of errors and only on Android.

    This histogram will be used to check whether the migration has completed for
    all active installs on a given platform or not (and whether the code can be
    removed).

    This is recorded on each profile load.
  </summary>
</histogram>

<histogram name="Signin.AddAccount" enum="BooleanSuccess">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    Track when chrome successfully adds an account. Failures are not tracked.
  </summary>
</histogram>

<histogram name="Signin.AndroidAccountSigninViewSeedingTime" units="ms">
  <owner>bsazonov@chromium.org</owner>
  <summary>
    The time it takes to seed accounts before proceeding to the account
    confirmation screen.
  </summary>
</histogram>

<histogram name="Signin.AndroidGetAccountIdsTime" units="ms">
  <owner>bsazonov@chromium.org</owner>
  <summary>
    The time it takes to retrieve Gaia ids for all accounts from GoogleAuthUtil.
  </summary>
</histogram>

<histogram name="Signin.AndroidGetAccountsTime" units="ms">
  <owner>nyquist@chromium.org</owner>
  <summary>
    The time it takes to retrieve the list of accounts from the system.
  </summary>
</histogram>

<histogram name="Signin.AndroidGetAccountsTimeUiThread" units="ms">
  <owner>bsazonov@chromium.org</owner>
  <summary>
    The time it takes to retrieve the list of accounts from the system on the UI
    thread.
  </summary>
</histogram>

<histogram name="Signin.AndroidGmsUpdatingDialogShownTime" units="ms">
  <owner>bsazonov@chromium.org</owner>
  <summary>
    How long the &quot;Waiting for Google Play Services to finish updating&quot;
    dialog is shown.
  </summary>
</histogram>

<histogram name="Signin.AndroidPopulateAccountCacheWaitingTime" units="ms">
  <owner>bsazonov@chromium.org</owner>
  <summary>
    The time UI thread spent waiting for the list of accounts to be populated.
  </summary>
</histogram>

<histogram name="Signin.AndroidSigninPromoAction"
    enum="AndroidSigninPromoAction">
  <obsolete>
    Removed this histogram since we have had newly designed histograms
    Signin.SigninStartedAccessPoint, Signin.SigninCompletedAccessPoint, and
    Signin.SigninReason.
  </obsolete>
  <owner>guohui@chromium.org</owner>
  <summary>Track how a user interfacts with the android signin promo.</summary>
</histogram>

<histogram name="Signin.AuthenticatedLaunchUserEvent"
    enum="AuthenticatedLaunchUserEvent">
  <owner>zmin@chromium.org</owner>
  <summary>
    Records the UI event when user clicks a locked profile on UserManager.
    Please note that if the local reauth failed, UserManager might show Gaia
    Reauth dialog.
  </summary>
</histogram>

<histogram name="Signin.AuthError" enum="GoogleServiceAuthError">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    Log the type of GAIA authentication error that occur whenever the error
    state changes.
  </summary>
</histogram>

<histogram name="Signin.ChromePrimaryAccountStateOnWebSignout"
    enum="ChromePrimaryAccountStateInGaiaCookies">
  <owner>droger@chromium.org</owner>
  <summary>
    Logs the state of the Chrome account when the user signs out on the web.
    This assumes that a logout of the web is always a complete logout of all the
    web accounts (e.g. single session signout is not supported). TODO(droger):
    make this histogram obsolete when Dice is launched.
  </summary>
</histogram>

<histogram name="Signin.CookieJar.ChromeAccountRelation" enum="AccountRelation">
  <owner>skym@chromium.org</owner>
  <summary>
    The relation between the account signed into chrome, and the account(s) in
    the cookie jar. This metric is never recorded when not signed into chrome.
  </summary>
</histogram>

<histogram name="Signin.CookieJar.SignedInCount" units="accounts">
  <owner>skym@chromium.org</owner>
  <summary>The number of signed in accounts in the cookie jar.</summary>
</histogram>

<histogram name="Signin.CookieJar.SignedOutCount" units="accounts">
  <owner>skym@chromium.org</owner>
  <summary>The number of signed out accounts in the cookie jar.</summary>
</histogram>

<histogram name="Signin.CookieJar.StableAge" units="seconds">
  <owner>skym@chromium.org</owner>
  <summary>The amount of time since the cookie jar last changed.</summary>
</histogram>

<histogram name="Signin.CookieJar.TotalCount" units="accounts">
  <owner>skym@chromium.org</owner>
  <summary>The total number of accounts in the cookie jar.</summary>
</histogram>

<histogram name="Signin.DiceEnabledForProfile" enum="Boolean">
  <obsolete>
    Replaced by Signin.DiceMigrationStatus. Does not have any meaningful
    information.
  </obsolete>
  <owner>droger@chromium.org</owner>
  <summary>
    Whether Dice is enabled for the current profile, recorded at startup.
  </summary>
</histogram>

<histogram name="Signin.DiceMigrationStatus" enum="SigninDiceMigrationStatus">
  <owner>droger@chromium.org</owner>
  <summary>
    The Dice migration status, recorded at startup for each profile.
  </summary>
</histogram>

<histogram name="Signin.DiceResponseHeader" enum="SigninDiceResponseHeader">
  <owner>droger@chromium.org</owner>
  <summary>Records Dice responses (signin and signout).</summary>
</histogram>

<histogram name="Signin.DiceTokenFetchResult" enum="SigninDiceTokenFetchResult">
  <owner>droger@chromium.org</owner>
  <summary>Outcome of the token fetch in Dice signin.</summary>
</histogram>

<histogram name="Signin.DuringFirstRun">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    Track if the profile sign in took place during First Run or not. Logged at
    signin time. True means signin took place during First Run, False means
    anytime after.
  </summary>
</histogram>

<histogram name="Signin.ElapsedTimeFromInstallToSignin" units="minutes">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    Track how many minutes of local system time elapsed from when Chrome was
    installed to when Signin occured for this profile.
  </summary>
</histogram>

<histogram name="Signin.ForceSigninVerificationRequest" enum="BooleanRequested">
  <owner>zmin@chromium.org</owner>
  <summary>
    The number profile load events that needs a force-sign-in verification
    request. It's recorded when profile is loaded with an authentication token
    and force-sign-in policy is enabled.
  </summary>
</histogram>

<histogram name="Signin.ForceSigninVerificationTime" units="ms">
  <owner>zmin@chromium.org</owner>
  <summary>
    Elapsed time of the force-sign-in verfication if it's finished. It includes
    total network delay, retry delay and wait time due to no connection. The
    verfication will not be recorded if it's not finished before profile is
    signed out or removed from memory.
  </summary>
</histogram>

<histogram name="Signin.GaiaCookieManager.Logout"
    enum="SigninGaiaCookieManagerLogout" expires_after="2019-11-01">
  <owner>droger@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>
    The number of requests initiated by the browser to log the user out from
    Google web. The Chrome account reconcilor enforces account consistency for
    Google accounts between the browser and web. In some cases it must force
    logout the user from Google web and then it sends a request to the Gaia
    logout endpoint. The expectation is that brower initiated logout is a rare
    event and should only occur in the following cases: a) it to be triggered
    when the browser fails to exchange an auth code for refresh tokens after a
    web sign-in (events which is counted by histogram
    Signin.DiceTokenFetchResult), b) when all refresh tokens are invalid (e.g
    when they cannot be loaded from disk).
  </summary>
</histogram>

<histogram name="Signin.GetAccessTokenFinished" enum="GoogleServiceAuthError"
    expires_after="2019-11-01">
  <owner>droger@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>
    Reconds finished access token requests during Chrome reconcile, both
    successful or not, and return the GoogleAuthError state NONE is a success,
    other values are failures.
  </summary>
</histogram>

<histogram name="Signin.GetAccessTokenRetry" enum="GoogleServiceAuthError"
    expires_after="2019-11-01">
  <owner>droger@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>
    Retry reason of failed access token requests during Chrome reconcile.
  </summary>
</histogram>

<histogram name="Signin.InvalidGaiaCredentialsReason"
    enum="SigninInvalidGaiaCredentialsReason">
  <owner>droger@chromium.org</owner>
  <summary>
    Reason for invalid Gaia credentials. Recorded when Signin.AuthError records
    invalid credentials.
  </summary>
</histogram>

<histogram name="Signin.InvestigatedScenario" enum="SigninInvestigatedScenario">
  <owner>skym@chromium.org</owner>
  <summary>
    Records the general type of signin that is occuring in relation to previous
    signin and local data.
  </summary>
</histogram>

<histogram name="Signin.IsShared" enum="BooleanIsShared">
  <owner>skym@chromium.org</owner>
  <summary>
    Current best guess if this device is shared between multiple users.
  </summary>
</histogram>

<histogram name="Signin.ListAccountsFailure" enum="GoogleServiceAuthError">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    Failure reason of ListAccounts call failure during account reconciliation,
    Chrome OS login, or signin internals queries.
  </summary>
</histogram>

<histogram name="Signin.ListAccountsRetry" enum="GoogleServiceAuthError">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    Retry reason of failed ListAccounts call during Chrome OS login during
    account reconciliation, Chrome OS login, or signin internals queries.
  </summary>
</histogram>

<histogram name="Signin.LoadedIdentities.Count" units="identities"
    expires_after="2019-11-01">
  <owner>jlebel@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>
    Counts the number of identities loaded by SSO library using the keychain
    API. The metric is recorded every time SSO updates the identity list (either
    on the first run, or when the cache is staled). See:
    https://crbug.com/897470.
  </summary>
</histogram>

<histogram name="Signin.LoadedIdentities.Duration" units="ms"
    expires_after="2019-11-01">
  <owner>jlebel@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>
    Tracks the time it takes to load identities by SSO library using the
    keychain API. The metric is recorded every time SSO updates the identity
    list (either on the first run, or when the cache is staled). See:
    https://crbug.com/897470.
  </summary>
</histogram>

<histogram name="Signin.LoadedIdentities.DurationPerIdentity" units="ms"
    expires_after="2019-11-01">
  <owner>jlebel@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>
    Tracks the time it takes to load one identity in average by SSO library
    using the keychain API. This value is the total time taken by the keychain
    API to finish, divided by the number of identities returned. The metrics is
    recorded every time SSO updates the identity list (either on the first run,
    or when the cache is staled). See: crbug.com/897470.
  </summary>
</histogram>

<histogram name="Signin.LoadTokenFromDB" enum="SigninLoadTokenFromDB">
  <owner>droger@chromium.org</owner>
  <summary>
    Action taken for tokens being loaded from the token database, at Chrome
    startup. Tokens can be either loaded into Chrome's token service or revoked.
  </summary>
</histogram>

<histogram name="Signin.Multilogin.NumberOfAccounts" expires_after="2019-11-01">
  <owner>droger@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>Number of accounts in tokens sent to Gaia Multilogin.</summary>
</histogram>

<histogram name="Signin.Multilogin.ResponseStatus"
    enum="OAuthMultiloginResponseStatus" expires_after="2019-11-01">
  <owner>droger@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>Response status received from gaia Multilogin.</summary>
</histogram>

<histogram name="Signin.MultiloginFinished" enum="GoogleServiceAuthError"
    expires_after="2019-11-01">
  <owner>droger@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>
    Reconds finished calls to Gaia Multilogin endpoint, both successful or not,
    and return the GoogleAuthError state NONE is a success, other values are
    failures.
  </summary>
</histogram>

<histogram name="Signin.MultiloginRetry" enum="GoogleServiceAuthError"
    expires_after="2019-11-01">
  <owner>droger@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>
    Retry reason of failed Multilogin call during Chrome reconcile.
  </summary>
</histogram>

<histogram name="Signin.OAuth2TokenGetFailure" enum="GoogleServiceAuthError">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    Reason fetching an OAuth2 Token failed. Available on all OSes.
  </summary>
</histogram>

<histogram name="Signin.OAuth2TokenGetRetry" enum="GoogleServiceAuthError">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    Reason fetching an OAuth2 Token is being retried. Available on all OSes.
  </summary>
</histogram>

<histogram name="Signin.OneClickConfirmation" enum="SigninFlowConfirmations">
  <owner>noms@chromium.org</owner>
  <summary>
    Count of the ways users interact with the confirmation dialogs of the new
    web based sign in to Chrome flow (accessed via the one click signin).
  </summary>
</histogram>

<histogram name="Signin.Reauth" enum="SigninReauthStates">
  <owner>noms@chromium.org</owner>
  <summary>Tracks events related to the reauthentication Gaia page.</summary>
</histogram>

<histogram name="Signin.Reconciler.AddedToChrome">
  <obsolete>
    Deprecated 2014-09 because chrome no longer tries to reconcile from the
    cookie jar to the browser.
  </obsolete>
  <owner>mlerman@chromium.org</owner>
  <summary>
    How many accounts were added to the browser's token service because they
    were in the cookie jar.
  </summary>
</histogram>

<histogram name="Signin.Reconciler.AddedToCookieJar">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    How many accounts were added to the cookie jar because they were in the
    browser's token service.
  </summary>
</histogram>

<histogram name="Signin.Reconciler.AllExternalCcResultCompleted"
    enum="BooleanSuccess">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    Records whether all external connections have been successfully checked (a
    value of &quot;true&quot;) or not (&quot;false&quot;) when the reconciler
    attempts to perform MergeSession.
  </summary>
</histogram>

<histogram name="Signin.Reconciler.DifferentPrimaryAccounts"
    enum="DifferentPrimaryAccounts">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    After execution of the account reconcilor, compares the primary account in
    the token service to the primary GAIA account of the cookie jar.
  </summary>
</histogram>

<histogram name="Signin.Reconciler.Duration">
  <owner>rogerta@chromium.org</owner>
  <summary>Records the execution time of the account reconciler.</summary>
</histogram>

<histogram name="Signin.Reconciler.ExternalCcResultTime.Completed">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    Records the time it took to successfully check all external connections
    whenever the reconciler performs a reconciliation.
  </summary>
</histogram>

<histogram name="Signin.Reconciler.ExternalCcResultTime.NotCompleted">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    Records the time it took to check only a portion of external connections
    whenever the reconciler performs a reconciliation. This means that either a
    network error occured while checking some sites or the site did not respond
    before the check timeout.
  </summary>
</histogram>

<histogram name="Signin.Reconciler.RemovedFromCookieJar">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    How many accounts were removed from the cookie jar because they were not in
    the browser's token service.
  </summary>
</histogram>

<histogram name="Signin.RefreshTokenAnnotationRequest" enum="BooleanSuccess">
  <obsolete>
    Removed this histogram along with the code that was logging it.
  </obsolete>
  <owner>pavely@chromium.org</owner>
  <summary>
    Track when chrome successfully sends RefreshTokenAnnotationRequest.
  </summary>
</histogram>

<histogram name="Signin.RefreshTokenRevocationCompleted"
    enum="GaiaTokenRevocationStatus" expires_after="2019-03-31">
  <owner>droger@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>
    Reports the status (including error details) of token revocation requests
    after they complete. This is recorded once per token, even if the request is
    retried multiple times. It will be either a success if the token has been
    revoked or the error on the last retry.
  </summary>
</histogram>

<histogram name="Signin.RefreshTokenRevocationRequestProgress"
    enum="SigninRefreshTokenRevocationRequestProgress">
  <owner>droger@chromium.org</owner>
  <summary>
    Tracks the progress of revocation requests for refresh tokens, and can be
    used to check how many requests do not complete and why. Recorded for each
    refresh token revocation request from the token service.
  </summary>
</histogram>

<histogram name="Signin.RefreshTokenRevocationStatus"
    enum="GaiaTokenRevocationStatus">
  <owner>droger@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>
    Reports the status (including error details) of token revocation requests
    after they complete.
  </summary>
</histogram>

<histogram name="Signin.RefreshTokenRevoked.Source"
    enum="SourceForRefreshTokenOperation">
  <owner>droger@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>
    Source for refresh token revocation. This is used to track the sources for
    signing out of Google accounts and is required to validate that the browser
    is not revoking tokens for large parts of the user population.
  </summary>
</histogram>

<histogram name="Signin.RefreshTokenUpdated.ToInvalidToken.Source"
    enum="SourceForRefreshTokenOperation">
  <owner>droger@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>
    Source for refresh token updated to invalid tokens. The refresh token is
    updated to an permanently invalid token when the user attempts to sign out
    of the primary account without turning off sync. This histogram is used to
    track the sources for invalidating the token of the primary account and is
    required to validate that the browser is not invalidating the token of the
    primary account for large parts of the user population.
  </summary>
</histogram>

<histogram name="Signin.RefreshTokenUpdated.ToValidToken.Source"
    enum="SourceForRefreshTokenOperation">
  <owner>droger@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>
    Source for refresh token updated to valid tokens. This is used to track the
    sources for adding Google accounts to the browser.
  </summary>
</histogram>

<histogram name="Signin.RequestHeaderOperation.Dice"
    enum="SigninRequestHeaderOperation">
  <owner>msarda@chromium.org</owner>
  <summary>
    Tracks when Chrome adds or removes the Desktop Identity Consistency HTTP
    header to Gaia.
  </summary>
</histogram>

<histogram name="Signin.RequestHeaderOperation.Mirror"
    enum="SigninRequestHeaderOperation">
  <owner>msarda@chromium.org</owner>
  <summary>
    Tracks when Chrome adds or removes the the X-Chrome-Connected HTTP header to
    Gaia.
  </summary>
</histogram>

<histogram name="Signin.SetCookieSuccess" enum="BooleanSuccess"
    expires_after="2019-11-01">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    This histogram records the success of setting each cookie after Multilogin
    response is received and parsed.
  </summary>
</histogram>

<histogram name="Signin.SignedInDurationBeforeSignout" units="minutes">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    Track how many minutes of real time (not browser active time) elapsed
    between profile signin and signout.
  </summary>
</histogram>

<histogram name="Signin.SigninAllowed" units="BooleanEnabled"
    expires_after="2019-10-01">
  <owner>droger@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <owner>tangltom@chromium.org</owner>
  <summary>
    Tracks the state of a user's signin-allowed preference. This is recorded at
    every startup.
  </summary>
</histogram>

<histogram name="Signin.SigninCompletedAccessPoint" enum="SigninAccessPoint">
  <owner>gogerald@chromium.org</owner>
  <summary>Logs the original access point of each completed sign in.</summary>
</histogram>

<histogram name="Signin.SigninReason" enum="SigninReason">
  <owner>gogerald@chromium.org</owner>
  <summary>Logs the reason of each completed sign in.</summary>
</histogram>

<histogram name="Signin.SigninSource" enum="SigninSource">
  <obsolete>
    Removed this histogram since we have had newly designed histograms
    Signin.SigninStartedAccessPoint, Signin.SigninCompletedAccessPoint, and
    Signin.SigninReason.
  </obsolete>
  <owner>noms@chromium.org</owner>
  <summary>
    Logs the original source that displayed the signin or reauth Gaia page,
    before the page is displayed.
  </summary>
</histogram>

<histogram name="Signin.SigninStartedAccessPoint" enum="SigninAccessPoint">
  <owner>gogerald@chromium.org</owner>
  <summary>
    Logs the original access point that displayed the signin or reauth Gaia
    page, before the page is displayed.
  </summary>
</histogram>

<histogram name="Signin.SignoutDeleteProfile" enum="BooleanDeletedOrNot">
  <owner>skym@chromium.org</owner>
  <summary>
    If the user chose to delete their profile or not when signing out of an
    unmanaged account. When the user is not given a choice this metric is not
    recorded.
  </summary>
</histogram>

<histogram name="Signin.SignoutProfile" enum="SigninSignoutProfile">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>Track how a profile gets signed out.</summary>
</histogram>

<histogram name="Signin.SSOWKWebView.GetAllCookies.CookieCount" units="cookies">
  <owner>jlebel@chromium.org</owner>
  <summary>
    Counts the number of cookies returned by -[WKHTTPCookieStore
    getAllCookies:]. This histogram is to help to understand how many callbacks
    from |getAllCookies:| can be missing. And if the number of cookies is
    related in that iOS bug. See: crbug.com/880981.
  </summary>
</histogram>

<histogram name="Signin.SSOWKWebView.GetAllCookies.Duration" units="ms">
  <owner>jlebel@chromium.org</owner>
  <summary>
    Tracks the time it takes for -[WKHTTPCookieStore getAllCookies:] to finish
    and call its callback. Note that nothing is logged is -[WKHTTPCookieStore
    getAllCookies:] fails to calls its callback. This histogram is to help to
    understand how many callbacks from |getAllCookies:| can be missing, related
    to a bug from iOS. And if the number of cookies is related in that iOS bug.
    See: crbug.com/880981.
  </summary>
</histogram>

<histogram name="Signin.SSOWKWebView.GetAllCookies.Request"
    enum="SigninSSOWKWebViewGetAllCookiesRequest">
  <owner>jlebel@chromium.org</owner>
  <summary>
    Counts the number of times -[WKHTTPCookieStore getAllCookies:] is called and
    the number of times it calls its callback. This histogram is to help to
    understand how many callbacks from |getAllCookies:| can be missing, related
    to a bug from iOS. And if the number of cookies is related in that iOS bug.
    See: crbug.com/880981.
  </summary>
</histogram>

<histogram name="Signin.SwitchSyncAccount.Source"
    enum="SigninSwitchSyncAccountSource">
  <owner>bsazonov@chromium.org</owner>
  <summary>
    Tracks the usage of different flows that switch sync accounts. Logged after
    accounts have been switched.
  </summary>
</histogram>

<histogram name="Signin.TokenStateTransition" enum="SigninTokenStateTransition">
  <owner>droger@chromium.org</owner>
  <summary>
    Tracks the changes of refresh token states for all accounts. Tokens can have
    three states: Regular (retrieved from Gaia), Invalid (created by Chrome and
    known to be invalid) or None (no token). Recorded when a token is loaded or
    changed.
  </summary>
</histogram>

<histogram name="Signin.TokenTable.GetAllTokensSqlStatementValidity"
    enum="BooleanValid">
  <owner>msarda@chromium.org</owner>
  <summary>
    Counts how many times the SQL statements to get all tokens is valid.
  </summary>
</histogram>

<histogram name="Signin.TokenTable.ReadTokenFromDBResult"
    enum="SigninTokenTableReadTokenFromDBResult">
  <owner>msarda@chromium.org</owner>
  <summary>
    Counts the results of loading a refresh token from the token database.
  </summary>
</histogram>

<histogram name="Signin.UberTokenFailure" enum="GoogleServiceAuthError">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    Reason of failure to acquiring an ubertoken based on an already-minted
    access token. Available on all OSes.
  </summary>
</histogram>

<histogram name="Signin.UberTokenRetry" enum="GoogleServiceAuthError">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    Retry reason of failure to acquire an ubertoken based on an already-minted
    access token. Available on all OSes.
  </summary>
</histogram>

<histogram name="Signin.XDevicePromo.BrowsingSessionDuration" units="minutes">
  <obsolete>
    Obsolete because the XDevicePromo never shipped.
  </obsolete>
  <owner>anthonyvd@chromium.org</owner>
  <owner>mlerman@chromium.org</owner>
  <summary>
    How long a browsing session was measured to be. Logged when a Browser window
    becomes active if the previous activation was longer than the minimum
    configured in the &quot;CrossDevicePromo&quot; experiment. Desktop only.
  </summary>
</histogram>

<histogram name="Signin.XDevicePromo.BrowsingSessionDurationComputed"
    units="minutes">
  <obsolete>
    Obsolete because the XDevicePromo never shipped.
  </obsolete>
  <owner>anthonyvd@chromium.org</owner>
  <owner>mlerman@chromium.org</owner>
  <summary>
    How often browsers are considered activated, which in turn triggers the
    CrossDevicePromo. Logged every time a Browser window becomes active. We need
    this to estimate QPS for RPC calls. Desktop only.
  </summary>
</histogram>

<histogram name="Signin.XDevicePromo.Eligibility"
    enum="SigninXDevicePromoEligibility">
  <obsolete>
    Obsolete because the XDevicePromo never shipped.
  </obsolete>
  <owner>anthonyvd@chromium.org</owner>
  <owner>mlerman@chromium.org</owner>
  <summary>
    The reasons for which a profile is or is not eligible for the Desktop Cross
    Device Sign In Promo. Logged every time a new Browsing session is detected
    as part of a Browser window becoming active. Desktop only.
  </summary>
</histogram>

<histogram name="Signin.XDevicePromo.Initialized"
    enum="SigninXDevicePromoInitialized">
  <obsolete>
    Obsolete because the XDevicePromo never shipped.
  </obsolete>
  <owner>anthonyvd@chromium.org</owner>
  <owner>mlerman@chromium.org</owner>
  <summary>
    Tracks if profiles initialized the XDevicePromo, and if not, why. Logged at
    Profile startup and (if not initialized then) when a new browsing session is
    detected during Browser window activation. Desktop only.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.CacheSizeOnInit" units="KB">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The size of the cache at the time that the index has finished initializing.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.CheckCRCResult" enum="CheckCRCResult">
  <owner>morlovich@chromium.org</owner>
  <summary>
    Whether or not the CRC was checked at the moment when the last reference to
    a read-only entry stream is closed.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.ConsistencyResult"
    enum="SimpleCacheConsistencyResult">
  <owner>wanderview@chromium.org</owner>
  <summary>
    Record the outcome of the simple DiskCache consistency check. The
    consistency check is executed every time a simple DiskCache is initialized.
    This check includes both inspecting the schema on disk and upgrading the
    schema to the latest version if necessary.
  </summary>
</histogram>

<histogram base="true"
    name="SimpleCache.ConsistencyResultAfterIndexFilesDeleted"
    enum="SimpleCacheConsistencyResult">
  <owner>wanderview@chromium.org</owner>
  <summary>
    Record the final consistency check value after index files have been deleted
    from an empty simple DiskCache. This histogram will tell us how often the
    index deletion code results in a functioning cache. It will also tell us
    what kind of consistency failures cannot be recovered due to index file
    deletion.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.CreationToIndex" units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The time from the creation of the simple cache backend until the index has
    been loaded from disk.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.CreationToIndexFail" units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The time from the creation of the simple cache backend until the index fails
    to load.
  </summary>
</histogram>

<histogram base="true"
    name="SimpleCache.DidDeleteIndexFilesAfterFailedConsistency" enum="Boolean">
  <owner>wanderview@chromium.org</owner>
  <summary>
    Record if any simple DiskCache index files were deleted from an otherwise
    empty cache after the cache failed the initialization consistency check.
    This histogram will tell us how often the deletion code is triggering and
    modifying the disk.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.DiskCloseLatency" units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The time to close (write out footers and close the file) the cache entry on
    disk. Includes only successful operations.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.DiskCreateLatency" units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The time to access (open for creation and write initial headers) the cache
    entry on disk. Includes only successful operations.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.DiskDoomLatency" units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The time to remove the cache entry on disk. Includes only individually
    doomed entries, not entries bulk-erased during eviction.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.DiskOpenLatency" units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The time to access (open and read headers from all files) the cache entry on
    disk. Includes only successful operations.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.DiskOpenStream2NonTinyLatency"
    units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The time to open the stream 2 file successfully on disk cache entry open
    with known key, when the size of payload is greater than 32 bytes.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.DiskOpenStream2TinyLatency" units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The time to open the stream 2 file successfully on disk cache entry open
    with known key, when the size of payload is 32 bytes or less.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.DiskWriteLatency" units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The time to write a chunk to the cache entry on disk. Includes only
    successful operations.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.EntryCreatedAndStream2Omitted"
    enum="SimpleCache.EntryCreatedAndStream2Omitted">
  <obsolete>
    Removed 2018-02. Not creating stream 2 on CreateEntry entries is indeed a
    good idea, since stream 2 writes are done on things opened with OpenEntry.
    (Which also means this metric wasn't good at evaluating the prevalence of
    stream 2 in general).
  </obsolete>
  <owner>morlovich@chromium.org</owner>
  <summary>
    Whether, upon creation of a new cache entry, the file for stream 2 was
    omitted since that stream was empty.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.EntryCreationResult"
    enum="BooleanSuccess">
  <owner>morlovich@chromium.org</owner>
  <summary>
    For entry creation operations that were sent to the disk, the result of
    creation.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.EntryCreationTime" units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>The time, in ms, spent creating a new entry on disk.</summary>
</histogram>

<histogram base="true" name="SimpleCache.EntryOpenedAndStream2Removed"
    enum="SimpleCache.EntryOpenedAndStream2Removed">
  <owner>morlovich@chromium.org</owner>
  <summary>
    Whether, upon opening of an existing cache entry, stream 2 was empty and the
    file for that stream was therefore removed.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.EntryOperationsPending">
  <owner>morlovich@chromium.org</owner>
  <summary>
    At the time that operations are run, the number of pending operations on a
    particular entry.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.EntryTrailerPrefetchDelta"
    units="bytes">
  <owner>wanderview@chromium.org</owner>
  <summary>
    The difference between EntryTrailerPrefetchSize and EntryTrailerSize in
    bytes within a single ReadAndValidateStream0AndMaybe1() method call. If the
    prefetch read too many bytes then this will be a positive value. If the
    prefetch did not read enough bytes, then this will be a negative value.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.EntryTrailerPrefetchSize"
    units="bytes">
  <owner>wanderview@chromium.org</owner>
  <summary>
    The number of bytes prefetched from the end of the entry file in an attempt
    read the EOF footer and the stream 0 data in a single file operation.
    Ideally this value should match the EntryTrailerSize histogram indicating
    the actual trailer size on disk was.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.EntryTrailerSize" units="bytes">
  <owner>wanderview@chromium.org</owner>
  <summary>
    The number of bytes read at the end of the entry file in order to process
    the EOF footer and the stream 0 data.
  </summary>
</histogram>

<histogram name="SimpleCache.Eviction.CacheSizeOnStart" units="bytes">
  <obsolete>
    Deprecated 2013 in favour of SimpleCache.Eviction.CacheSizeOnStart2
  </obsolete>
  <owner>morlovich@chromium.org</owner>
  <summary>The size of the cache at the beginning of an eviction.</summary>
</histogram>

<histogram base="true" name="SimpleCache.Eviction.CacheSizeOnStart2" units="KB">
  <owner>morlovich@chromium.org</owner>
  <summary>The size of the cache at the beginning of an eviction.</summary>
</histogram>

<histogram base="true" name="SimpleCache.Eviction.EntryCount">
  <owner>morlovich@chromium.org</owner>
  <summary>The number of entries to be erased in an eviction.</summary>
</histogram>

<histogram name="SimpleCache.Eviction.MaxCacheSizeOnStart" units="bytes">
  <obsolete>
    Deprecated 2013 in favour of SimpleCache.Eviction.MaxCacheSizeOnStart2
  </obsolete>
  <owner>morlovich@chromium.org</owner>
  <summary>
    The maximum allowed size of the cache at the beginning of an eviction.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.Eviction.MaxCacheSizeOnStart2"
    units="KB">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The maximum allowed size of the cache at the beginning of an eviction.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.Eviction.Result" enum="BooleanSuccess">
  <owner>morlovich@chromium.org</owner>
  <summary>The result of an eviction.</summary>
</histogram>

<histogram name="SimpleCache.Eviction.SizeOfEvicted" units="bytes">
  <obsolete>
    Deprecated 2013 in favour of SimpleCache.Eviction.SizeOfEvicted2
  </obsolete>
  <owner>morlovich@chromium.org</owner>
  <summary>The number of bytes to be erased in an eviction.</summary>
</histogram>

<histogram base="true" name="SimpleCache.Eviction.SizeOfEvicted2" units="KB">
  <owner>morlovich@chromium.org</owner>
  <summary>The amount of memory freed in an eviction.</summary>
</histogram>

<histogram name="SimpleCache.Eviction.SizeWhenDone" units="bytes">
  <obsolete>
    Deprecated 2013 in favour of SimpleCache.Eviction.SizeWhenDone2
  </obsolete>
  <owner>morlovich@chromium.org</owner>
  <summary>The size of the cache after running an eviction.</summary>
</histogram>

<histogram base="true" name="SimpleCache.Eviction.SizeWhenDone2" units="KB">
  <owner>morlovich@chromium.org</owner>
  <summary>The size of the cache after running an eviction.</summary>
</histogram>

<histogram base="true" name="SimpleCache.Eviction.TimeToDone" units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>Time spent completing an eviction.</summary>
</histogram>

<histogram base="true" name="SimpleCache.Eviction.TimeToSelectEntries"
    units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>Time spent selecting entries for eviction.</summary>
</histogram>

<histogram name="SimpleCache.FileDescriptorLimiterAction"
    enum="SimpleCache.FileDescriptorLimiterOp">
  <owner>morlovich@chromium.org</owner>
  <summary>
    This even is emitted when SimpleCache is forced to either close some files
    due to being over FD limit, or reopen files it had to close due to such
    limit earlier.
  </summary>
</histogram>

<histogram name="SimpleCache.FileDescriptorLimitHard" units="file descriptors">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The maximum limit of how many file descriptors a process can open. Emitted
    each time the browser is launched, if the limit could be retrieved. (This is
    the highest value we could raise the current limit to if we liked.)
  </summary>
</histogram>

<histogram name="SimpleCache.FileDescriptorLimitSoft" units="file descriptors">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The current limit of how many file descriptors a process can open. Emitted
    each time the browser is launched, if the limit could be retrieved. (We can
    raise this to the maximum limit if we like, without root access.)
  </summary>
</histogram>

<histogram name="SimpleCache.FileDescriptorLimitStatus"
    enum="SimpleCache.FileDescriptorLimitStatus">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The result of trying to get the file descriptor limit. Emitted each time the
    browser is launched.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.GlobalOpenEntryCount">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The number of open entries across all caches backed by the Simple Cache. An
    entry is opened whenever a caller asks to open it to read or write cache
    data, and remains open until the last caller asks to close it. Logged
    whenever an entry is opened or closed.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.HeaderSize" units="bytes">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The size of the header stream of a Simple Cache entry, emitted every time
    the headers are written or rewritten.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.HeaderSizeChange"
    enum="SimpleCacheHeaderSizeChange">
  <obsolete>
    Removed 2018-06-05
  </obsolete>
  <owner>morlovich@chromium.org</owner>
  <summary>
    How the header size has changed in a Simple Cache entry, emitted every time
    a write operation occurs on the header stream. (This includes the initial
    write, rewrites, and other writes that we couldn't classify.)
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.HeaderSizeDecreaseAbsolute"
    units="bytes">
  <obsolete>
    Removed 2018-06-05
  </obsolete>
  <owner>morlovich@chromium.org</owner>
  <summary>
    The absolute size decrease of the header stream of a Simple Cache entry,
    emitted every time the headers are rewritten with a smaller size.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.HeaderSizeDecreasePercentage"
    units="%">
  <obsolete>
    Removed 2018-06-05
  </obsolete>
  <owner>morlovich@chromium.org</owner>
  <summary>
    The relative size decrease of the header stream of a Simple Cache entry,
    emitted every time the headers are rewritten with a smaller size.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.HeaderSizeIncreaseAbsolute"
    units="bytes">
  <obsolete>
    Removed 2018-06-05
  </obsolete>
  <owner>morlovich@chromium.org</owner>
  <summary>
    The absolute size increase of the header stream of a Simple Cache entry,
    emitted every time the headers are rewritten with a larger size.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.HeaderSizeIncreasePercentage"
    units="%">
  <obsolete>
    Removed 2018-06-05
  </obsolete>
  <owner>morlovich@chromium.org</owner>
  <summary>
    The relative size increase of the header stream of a Simple Cache entry,
    emitted every time the headers are rewritten with a larger size.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.IndexCorrupt" enum="BooleanCorrupt">
  <owner>morlovich@chromium.org</owner>
  <summary>For each index load, whether the index file was corrupt.</summary>
</histogram>

<histogram base="true" name="SimpleCache.IndexCreatedEntryCount">
  <owner>morlovich@chromium.org</owner>
  <summary>The number of entries in a newly created index file.</summary>
</histogram>

<histogram base="true" name="SimpleCache.IndexEntriesLoaded">
  <owner>morlovich@chromium.org</owner>
  <summary>Number of entries loaded from the index file on start.</summary>
</histogram>

<histogram base="true" name="SimpleCache.IndexEntriesRestored">
  <owner>morlovich@chromium.org</owner>
  <summary>
    Number of entries restored from disk when there was no index or the index
    was corrupted.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.IndexFileStateOnLoad"
    enum="SimpleIndexState">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The state the index file is at when an attempt is made to load from it.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.IndexInitializationWaiters">
  <owner>morlovich@chromium.org</owner>
  <summary>
    At the time of index initialization, the number of enqueued jobs awaiting
    index initialization.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.IndexInitializeMethod"
    enum="SimpleCacheIndexInitializeMethod">
  <owner>morlovich@chromium.org</owner>
  <summary>The method used to initialize the simple cache index.</summary>
</histogram>

<histogram base="true" name="SimpleCache.IndexLoadTime" units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>
    Time (as measured on the worker pool) spent loading the index file.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.IndexNumEntriesOnInit" units="entries">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The number of entries in the index at the time that the index has finished
    initializing.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.IndexNumEntriesOnWrite">
  <owner>morlovich@chromium.org</owner>
  <summary>The number of entries written to the index on a flush.</summary>
</histogram>

<histogram base="true" name="SimpleCache.IndexRestoreTime" units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>
    Time (as measured on the worker pool) spent restoring the index file by
    iterating directory entries.
  </summary>
</histogram>

<histogram name="SimpleCache.IndexStale" enum="BooleanStale">
  <obsolete>
    Deprecated 07/2013, and replaced by IndexFileStateOnLoad.
  </obsolete>
  <owner>morlovich@chromium.org</owner>
  <summary>For each index load, whether the index file was stale.</summary>
</histogram>

<histogram base="true" name="SimpleCache.IndexWriteInterval.Background"
    units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The interval between index saves, for apps in the background.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.IndexWriteInterval.Foreground"
    units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The interval between index saves, for apps in the foreground.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.IndexWriteReason"
    enum="SimpleCacheIndexWriteReason">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The reason an index was written to disk. Recorded every time an index is
    saved.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.IndexWriteReasonAtLoad"
    enum="SimpleCacheIndexWriteReason">
  <owner>morlovich@chromium.org</owner>
  <summary>
    Recorded immediately after loading a fresh index (INDEX_STATE_FRESH or
    INDEX_STATE_FRESH_CONCURRENT_UPDATES), the reason the loaded index was
    written to disk.
  </summary>
</histogram>

<histogram name="SimpleCache.IndexWriteToDiskTime" units="ms">
  <obsolete>
    Deprecated 2013-05 in favour of
    SimpleCache.SimpleIndexWriteToDiskTime.Background and
    SimpleCache.SimpleIndexWriteToDiskTime.Foreground.
  </obsolete>
  <owner>morlovich@chromium.org</owner>
  <summary>
    The amount of time spend writing the index file to disk, measured starting
    at the beginning of the write on the callback thread, and calculated using
    the completion time on the worker pool.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.IndexWriteToDiskTime.Background"
    units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The amount of time spend writing the index file to disk, for apps in the
    background, measured starting at the beginning of the write on the callback
    thread, and calculated using the completion time on the worker pool.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.IndexWriteToDiskTime.Foreground"
    units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The amount of time spend writing the index file to disk, for apps in the
    foreground, measured starting at the beginning of the write on the callback
    thread, and calculated using the completion time on the worker pool.
  </summary>
</histogram>

<histogram name="SimpleCache.KeyMatchedOnOpen" enum="BooleanMatched">
  <obsolete>
    Deprecated 2016-05 as the match checking was moved back into the entry
    itself, so this result is now reported in the SimpleCache.x.SyncOpenResult
    histograms.
  </obsolete>
  <owner>morlovich@chromium.org</owner>
  <summary>
    For each call to OpenEntry, whether the key on disk matched the request key.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.LastClusterLossPercent" units="%">
  <obsolete>
    Deprecated 2018-01; not viewed as actionable.
  </obsolete>
  <owner>morlovich@chromium.org</owner>
  <summary>
    For each file in the Simple Cache, the percentage of disk space used by the
    cluster loss, the unused disk space in the last 4096 byte cluster of the
    file.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.LastClusterSize" units="bytes">
  <obsolete>
    Deprecated 2018-01; not viewed as actionable.
  </obsolete>
  <owner>morlovich@chromium.org</owner>
  <summary>
    For each file in the Simple Cache, the number of bytes in the last 4096 byte
    cluster when the entry is saved to disk.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.MaxCacheSizeOnInit" units="KB">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The maximum allowed size of the cache at the time that the index has
    finished initializing.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.NumOpsBlockedByPendingDoom"
    units="Ops">
  <owner>morlovich@chromium.org</owner>
  <summary>
    Number of operations that were queued behind a particular doom operation
    (with a mass doom counting as a single operation).
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.OpenEntryIndexState"
    enum="SimpleCacheOpenEntryIndexState">
  <owner>morlovich@chromium.org</owner>
  <summary>
    At the time that an entry is opened, the state of that entry in the index.
  </summary>
</histogram>

<histogram base="true"
    name="SimpleCache.OriginalConsistencyResultBeforeSuccessfulRetry"
    enum="SimpleCacheConsistencyResult">
  <owner>wanderview@chromium.org</owner>
  <summary>
    Record the original consistency error produced by a simple DiskCache before
    a retry was attempted and succeeded. This histogram will tell us what kind
    consistency errors can be recovered from in practice.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.PercentFullOnInit" units="%">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The fullness (in percent) of the cache at the time that the index has
    finished initializing. The percentage is calculated as (cache_size * 100) /
    max_cache_size.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.QueueLatency.CreateEntry" units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>
    Delay between when the I/O portion of CreateEntry is enqueued and when its
    execution begins.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.QueueLatency.OpenEntry" units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>
    Delay between when the I/O portion of OpenEntry is enqueued and when its
    execution begins.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.QueueLatency.OpenOrCreateEntry"
    units="ms">
  <owner>morlovich@chromium.org</owner>
  <owner>bingler@chromium.org</owner>
  <summary>
    Delay between when the I/O portion of OpenOrCreateEntry is enqueued and when
    its execution begins.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.QueueLatency.PendingDoom" units="ms">
  <owner>morlovich@chromium.org</owner>
  <summary>
    Delay between when an operation is deferred due to a pending doom for its
    key, and when it can resume execution.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.ReadIsParallelizable"
    enum="SimpleCacheReadParallelizable">
  <obsolete>
    Removed 2018-07-02. See https://crrev.com/c/1122706
  </obsolete>
  <owner>morlovich@chromium.org</owner>
  <summary>
    For each Read operation, whether it could have been issued in parallel of a
    previous Read operation.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.ReadResult"
    enum="SimpleCacheReadResult">
  <owner>morlovich@chromium.org</owner>
  <summary>The outcome of Entry::ReadData in the simple cache.</summary>
</histogram>

<histogram base="true" name="SimpleCache.ReadStream1FromPrefetched"
    enum="Boolean">
  <owner>morlovich@chromium.org</owner>
  <summary>
    Whether a read from stream 1 (conventionally used for payload body) was
    satisfied from prefetched data. Reported only on the first read operation on
    the stream (including if there are multiple readers, or even some writers).
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.RetryConsistencyResult"
    enum="SimpleCacheConsistencyResult">
  <owner>wanderview@chromium.org</owner>
  <summary>
    Record the outcome of the simple DiskCache consistency check after retrying
    initialization on an empty cache directory. The retry may occur after
    corrupt index files were deleted from an empty cache. The retry may also
    occur if the original failed initialization left an empty directory without
    any index files. This histogram will tell us how often the retry succeeds in
    recovering caches and also which consistency checks cannot be recovered.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.StaleIndexExtraEntryCount"
    units="entries">
  <owner>morlovich@chromium.org</owner>
  <summary>
    Count of the number of entries recorded in the index, but not actually
    present in the cache. Recorded each time a stale index is found and a
    directory rescan is required.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.StaleIndexMissedEntryCount"
    units="entries">
  <owner>morlovich@chromium.org</owner>
  <summary>
    Count of the number of entries present in a cache, but not recorded in the
    index. Recorded each time a stale index is found and a directory rescan is
    required.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.StaleIndexQuality"
    enum="SimpleCacheStaleIndexQuality">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The quality of a &quot;stale&quot; index compared to a full directory
    rescan. Recorded immediately after every directory scan for stale indexes.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.SyncCheckEOFHasCrc"
    enum="BooleanHasCrc">
  <owner>morlovich@chromium.org</owner>
  <summary>
    For each EOFRecord found with a valid magic number, indicates if the record
    also contains a CRC.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.SyncCheckEOFResult"
    enum="SimpleCacheSyncCheckEOFResult">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The result, at the synchronous layer, of checking the EOF record of a cache
    entry.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.SyncCloseResult"
    enum="SimpleCacheSyncCloseResult">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The result, at the synchronous layer, of closing a cache entry.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.SyncCreatePlatformFileError"
    enum="PlatformFileError">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The platform error reported when attempting to create a new cache entry at
    the synchronous layer.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.SyncCreateResult"
    enum="SimpleCacheSyncCreateResult">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The result, at the synchronous layer, reported when attempting to create a
    new cache entry.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.SyncKeySHA256Result"
    enum="SimpleCacheSyncSHA256Result">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The result of the the key SHA256 check done when opening stream 0 for each
    entry.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.SyncOpenDidPrefetch" enum="Boolean">
  <obsolete>
    Replaced Dec, 2018 by SimpleCache.SyncOpenPrefetchMode. The new histogram is
    an enumeration that can distinguish between full file prefetching from
    trailer prefetching.
  </obsolete>
  <owner>morlovich@chromium.org</owner>
  <summary>
    Whether an attempt was made to prefetch the entire file when executing
    disk_cache::Backend::OpenEntry.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.SyncOpenEntryAge" units="hours">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The age of the entry (time since last modified), when opened at the
    synchronous layer.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.SyncOpenPlatformFileError"
    enum="PlatformFileError">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The platform error reported when attempting to create a new cache entry at
    the synchronous layer.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.SyncOpenPrefetchMode"
    enum="SimpleCachePrefetchMode">
  <owner>wanderview@chromium.org</owner>
  <summary>
    The kind of prefetching performed, if any, when executing
    SimpleSynchronousEntry::ReadAndValidateStream0AndMaybe1().
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.SyncOpenResult"
    enum="SimpleCacheSyncOpenResult">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The result, at the synchronous layer, reported when attempting to open a new
    cache entry.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.SyncWriteResult"
    enum="SimpleCacheSyncWriteResult">
  <owner>morlovich@chromium.org</owner>
  <summary>
    The result, at the synchronous layer, of writing to a cache entry.
  </summary>
</histogram>

<histogram base="true" name="SimpleCache.WriteDependencyType"
    enum="SimpleCacheWriteDependencyType">
  <obsolete>
    Removed 2018-07-02. See https://crrev.com/c/1122706
  </obsolete>
  <owner>morlovich@chromium.org</owner>
  <summary>
    Shows whether a write operation depends on the previous operation in queue
    particularly in the aspect of its possibility to run in parallel.
  </summary>
</histogram>

<histogram name="SimpleCache.WriteResult" enum="SimpleCacheWriteResult">
  <obsolete>
    Replaced 2013/09/03 by WriteResult2, which adds &quot;fast empty
    return&quot;, which previously showed up as &quot;success&quot;.
  </obsolete>
  <owner>morlovich@chromium.org</owner>
  <summary>The outcome of Entry::WriteData in the simple cache.</summary>
</histogram>

<histogram base="true" name="SimpleCache.WriteResult2"
    enum="SimpleCacheWriteResult">
  <owner>morlovich@chromium.org</owner>
  <summary>The outcome of Entry::WriteData in the simple cache.</summary>
</histogram>

<histogram name="SimpleGeolocation.Request.Event"
    enum="SimpleGeolocationRequestEvent">
  <owner>alemate@chromium.org</owner>
  <summary>Events in reqests processing of IP-based SimpleGeolocation.</summary>
</histogram>

<histogram name="SimpleGeolocation.Request.HasCellTowers"
    enum="SimpleGeolocationRequestHasCellTowers">
  <owner>skylarc@chromium.org</owner>
  <summary>
    This boolean histogram counts SimpleGeolocationRequests carrying a nonzero
    number of cell towers.
  </summary>
</histogram>

<histogram name="SimpleGeolocation.Request.HasWiFiAccessPoints"
    enum="SimpleGeolocationRequestHasWiFiAccessPoints">
  <owner>alemate@chromium.org</owner>
  <summary>
    This boolean histogram counts SimpleGeolocationRequests carrying nonzero
    number of WiFi access points.
  </summary>
</histogram>

<histogram name="SimpleGeolocation.Request.ResponseCode"
    enum="HttpResponseCode">
  <owner>alemate@chromium.org</owner>
  <summary>Http response codes in IP-based SimpleGeolocation.</summary>
</histogram>

<histogram name="SimpleGeolocation.Request.ResponseFailureTime" units="ms">
  <owner>alemate@chromium.org</owner>
  <summary>
    The time elapsed between the sending of the first API request and the time
    the final (failed) response was recorded. Includes all retries.
  </summary>
</histogram>

<histogram name="SimpleGeolocation.Request.ResponseSuccessTime" units="ms">
  <owner>alemate@chromium.org</owner>
  <summary>
    The time elapsed between the sending of the first API request and the time
    the final (successfull) response was recorded. Includes all retries.
  </summary>
</histogram>

<histogram name="SimpleGeolocation.Request.Result"
    enum="SimpleGeolocationRequestResult">
  <owner>alemate@chromium.org</owner>
  <summary>Result of SimpleGeolocationRequest.</summary>
</histogram>

<histogram name="SimpleGeolocation.Request.Retries">
  <owner>alemate@chromium.org</owner>
  <summary>Number of retries until the final response was recorded.</summary>
</histogram>

<histogram name="SingleWebsitePreferences.NavigatedFromToReset"
    enum="SettingsNavigationSources" expires_after="M78">
  <owner>pshmakov@chromium.org</owner>
  <owner>peconn@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Logs which way had the user navigated into settings screens when they press
    &quot;Clear and Reset&quot; button in settings of a single website.
  </summary>
</histogram>

<histogram name="SiteEngagementService.DaysSinceLastShortcutLaunch"
    units="days">
  <owner>calamity@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <summary>
    The number of days between launches of an origin saved to homescreen or as a
    bookmark app shortcut. Recorded at the second and each following launch of a
    specific origin from a shortcut, independently per origin.
  </summary>
</histogram>

<histogram name="SiteEngagementService.EngagementPercentageForHTTPS">
  <obsolete>
    Removed in M60. See crbug.com/712493.
  </obsolete>
  <owner>calamity@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <owner>felt@chromium.org</owner>
  <summary>
    The percentage of total site engagement accumulated by this profile for
    HTTPS URLs as a proportion of all engagement for HTTPS and HTTP URLs.
    Recorded at startup per non-incognito profile, and then upon the first
    engagement-increasing event every hour thereafter.
  </summary>
</histogram>

<histogram name="SiteEngagementService.EngagementScore">
  <owner>calamity@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <summary>
    Distribution of the engagement scores accumulated by a user, recorded at
    startup per non-incognito profile, and then upon the first
    engagement-increasing event every hour thereafter.
  </summary>
</histogram>

<histogram name="SiteEngagementService.EngagementScore.HTTP">
  <obsolete>
    Removed in M60. See crbug.com/712493.
  </obsolete>
  <owner>calamity@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <owner>felt@chromium.org</owner>
  <summary>
    Distribution of the engagement scores accumulated by a user, recorded at
    startup per non-incognito profile, and then upon the first
    engagement-increasing event every hour thereafter. Limited specifically to
    HTTP URLs.
  </summary>
</histogram>

<histogram name="SiteEngagementService.EngagementScore.HTTPS">
  <obsolete>
    Removed in M60. See crbug.com/712493.
  </obsolete>
  <owner>calamity@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <owner>felt@chromium.org</owner>
  <summary>
    Distribution of the engagement scores accumulated by a user, recorded at
    startup per non-incognito profile, and then upon the first
    engagement-increasing event every hour thereafter. Limited specifically to
    HTTPS URLs.
  </summary>
</histogram>

<histogram name="SiteEngagementService.EngagementScore.IsZero" enum="Boolean">
  <owner>charleszhao@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <summary>
    The distribution of zero versus non-zero engagement scores accumulated by
    the user, recorded at the same time as
    SiteEngagementService.EngagementScore.
  </summary>
</histogram>

<histogram name="SiteEngagementService.EngagementScoreBucket" units="%">
  <owner>calamity@chromium.org</owner>
  <summary>
    The percentage of sites on a user's profile that have engagement scores that
    fall in these buckets, recorded at startup per non-incognito profile, and
    then upon the first engagement-increasing event every hour thereafter.
  </summary>
</histogram>

<histogram name="SiteEngagementService.EngagementType"
    enum="SiteEngagementServiceEngagementType">
  <owner>calamity@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <summary>
    The type of engagement (navigation, user input, etc.) which led to an
    accumulation in site engagement.
  </summary>
</histogram>

<histogram name="SiteEngagementService.MeanEngagement">
  <owner>calamity@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <summary>
    The mean site engagement per origin accumulated by this profile, recorded at
    startup per non-incognito profile, and then upon the first
    engagement-increasing event every hour thereafter.
  </summary>
</histogram>

<histogram name="SiteEngagementService.MedianEngagement">
  <owner>calamity@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <summary>
    The median site engagement per origin accumulated by this profile, recorded
    at startup per non-incognito profile, and then upon the first
    engagement-increasing event every hour thereafter.
  </summary>
</histogram>

<histogram name="SiteEngagementService.OriginsEngaged">
  <owner>calamity@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <summary>
    The total number of origins with a non-zero site engagement score for this
    profile, recorded at startup per non-incognito profile, and then upon the
    first engagement-increasing event every hour thereafter.
  </summary>
</histogram>

<histogram name="SiteEngagementService.OriginsWithMaxDailyEngagement">
  <owner>calamity@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <summary>
    The number of origins which have reached the daily site engagement point
    cap, recorded at startup per non-incognito profile, and then upon the first
    engagement-increasing event every hour thereafter. Thus, each bin N contains
    the number of clients where at least N origins have reached the maximum
    daily site engagement point cap.
  </summary>
</histogram>

<histogram name="SiteEngagementService.OriginsWithMaxEngagement">
  <owner>calamity@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <summary>
    The number of origins which have reached the absolute site engagement point
    cap, recorded at startup per non-incognito profile, and then upon the first
    engagement-increasing event every hour thereafter. Thus, each bin N contains
    the number of clients where at least N origins have reached the maximum
    absolute site engagement point cap.
  </summary>
</histogram>

<histogram name="SiteEngagementService.PercentOriginsWithMaxEngagement">
  <owner>calamity@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <summary>
    The percentage of all origins recorded by the site engagement service which
    have reached the absolute site engagement point cap, recorded at startup per
    non-incognito profile, and then upon the first engagement-increasing event
    every hour thereafter.
  </summary>
</histogram>

<histogram name="SiteEngagementService.ScoreDecayedFrom"
    units="engagement score">
  <owner>calamity@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <summary>
    The site engagement score of an origin prior to applying decay. Recorded at
    the first engagement event after decay, independently per decay event.
  </summary>
</histogram>

<histogram name="SiteEngagementService.ScoreDecayedTo" units="engagement score">
  <owner>calamity@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <summary>
    The site engagement score of an origin once decay has occured. Recorded at
    the first engagement event after decay, independently per decay event.
  </summary>
</histogram>

<histogram name="SiteEngagementService.TotalEngagement">
  <owner>calamity@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <summary>
    The total site engagement accumulated by this profile, recorded at startup
    per non-incognito profile, and then upon the first engagement-increasing
    event every hour thereafter.
  </summary>
</histogram>

<histogram name="SiteIsolatedCodeCache.Behaviour">
  <obsolete>
    Split this histogram into SiteIsolatedCodeCache.JS.Behaviour and
    SiteIsolatedCodeCache.WASM.Behaviour to collect statistics for JS and WASM
    code caches in separate histograms.
  </obsolete>
  <owner>mythria@chromium.org</owner>
  <summary>
    The behaviour of site isolated javascript code cache recorded for each cache
    transaction. It records if the request was serviced and if serviced how it
    was serviced for ex: hit, miss, update.
  </summary>
</histogram>

<histogram name="SiteIsolatedCodeCache.JS.Behaviour"
    enum="SiteIsolatedCodeCacheJSBehaviour" expires_after="2019-06-30">
  <owner>mythria@chromium.org</owner>
  <summary>
    The behaviour of site isolated javascript code cache recorded for each cache
    transaction. It records if the request was serviced and if serviced how it
    was serviced for ex: hit, miss, update.
  </summary>
</histogram>

<histogram name="SiteIsolatedCodeCache.WASM.Behaviour"
    enum="SiteIsolatedCodeCacheWASMBehaviour" expires_after="2019-06-30">
  <owner>bbudge@chromium.org</owner>
  <summary>
    The behaviour of site isolated web assembly code cache recorded for each
    cache transaction during WASM compilation. It records if the request was
    serviced and if serviced how it was serviced for ex: hit, miss, update.
  </summary>
</histogram>

<histogram name="SiteIsolation.AllResponses">
  <owner>creis@chromium.org</owner>
  <summary>
    The count of all network responses received by a renderer. Each response is
    corresponding to one URL requested by a renderer. Incremented when the first
    network packet of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.BrowsingInstanceCount">
  <owner>creis@chromium.org</owner>
  <summary>
    The count of all current BrowsingInstances. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="SiteIsolation.CurrentRendererProcessCount">
  <owner>creis@chromium.org</owner>
  <summary>
    The count of all renderer processes, including WebUI and extensions.
    Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="SiteIsolation.Flags.IsolateOrigins" enum="BooleanEnabled">
  <owner>alexmos@chromium.org</owner>
  <summary>
    True if the --isolate-origins mode was enabled from the command line,
    about:flags, or enterprise policy. Recorded on browser startup and then once
    every 24 hours.
  </summary>
</histogram>

<histogram name="SiteIsolation.Flags.SitePerProcess" enum="BooleanEnabled">
  <owner>alexmos@chromium.org</owner>
  <summary>
    True if the --site-per-process mode was enabled from the command line,
    about:flags, or enterprise policy. Recorded on browser startup and then once
    every 24 hours.
  </summary>
</histogram>

<histogram name="SiteIsolation.IsolateAllSitesProcessCountEstimate">
  <owner>creis@chromium.org</owner>
  <summary>
    The upper bound of the predicted renderer process count if we isolated all
    sites, subject to the process limit. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="SiteIsolation.IsolateAllSitesProcessCountLowerBound">
  <owner>creis@chromium.org</owner>
  <summary>
    The lower bound of the predicted renderer process count if we isolated all
    sites, subject to the process limit. Happens to be the number of unique
    sites. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="SiteIsolation.IsolateAllSitesProcessCountNoLimit">
  <owner>creis@chromium.org</owner>
  <summary>
    The predicted renderer process count if we isolated all sites and if there
    were no process limit. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="SiteIsolation.IsolateAllSitesTotalProcessCountEstimate">
  <owner>creis@chromium.org</owner>
  <summary>
    The predicted total process count if we isolated all sites, subject to the
    process limit. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="SiteIsolation.IsolateExtensionsProcessCountEstimate">
  <owner>creis@chromium.orgnick@chromium.org</owner>
  <owner>site-isolation-dev@chromium.org</owner>
  <summary>
    The upper bound of the predicted renderer process count if we isolated only
    Chrome extensions, subject to the process limit. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="SiteIsolation.IsolateExtensionsProcessCountLowerBound">
  <owner>creis@chromium.orgnick@chromium.org</owner>
  <owner>site-isolation-dev@chromium.org</owner>
  <summary>
    The lower bound of the predicted renderer process count if we isolated only
    Chrome extensions, subject to the process limit. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="SiteIsolation.IsolateExtensionsProcessCountNoLimit">
  <owner>creis@chromium.orgnick@chromium.org</owner>
  <owner>site-isolation-dev@chromium.org</owner>
  <summary>
    The predicted renderer process count if we isolated only Chrome extensions
    and if there were no process limit. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="SiteIsolation.IsolateExtensionsTotalProcessCountEstimate">
  <owner>creis@chromium.orgnick@chromium.org</owner>
  <owner>site-isolation-dev@chromium.org</owner>
  <summary>
    The predicted total process count if we isolated only Chrome extensions,
    subject to the process limit. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="SiteIsolation.IsolateHttpsSitesProcessCountEstimate">
  <owner>creis@chromium.orgnick@chromium.org</owner>
  <owner>site-isolation-dev@chromium.org</owner>
  <summary>
    The upper bound of the predicted renderer process count if we isolated only
    HTTPS (not HTTP) sites, subject to the process limit. Recorded once per UMA
    ping.
  </summary>
</histogram>

<histogram name="SiteIsolation.IsolateHttpsSitesProcessCountLowerBound">
  <owner>creis@chromium.orgnick@chromium.org</owner>
  <owner>site-isolation-dev@chromium.org</owner>
  <summary>
    The lower bound of the predicted renderer process count if we isolated only
    HTTPS (not HTTP) sites, subject to the process limit. Happens to be the
    number of isolated sites. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="SiteIsolation.IsolateHttpsSitesProcessCountNoLimit">
  <owner>creis@chromium.orgnick@chromium.org</owner>
  <owner>site-isolation-dev@chromium.org</owner>
  <summary>
    The predicted renderer process count if we isolated only HTTPS (not HTTP)
    sites and if there were no process limit. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="SiteIsolation.IsolateHttpsSitesTotalProcessCountEstimate">
  <owner>creis@chromium.orgnick@chromium.org</owner>
  <owner>site-isolation-dev@chromium.org</owner>
  <summary>
    The predicted total process count if we isolated only HTTPS (not HTTP)
    sites, subject to the process limit. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="SiteIsolation.IsolateNothingProcessCountEstimate">
  <owner>creis@chromium.orgnick@chromium.org</owner>
  <owner>site-isolation-dev@chromium.org</owner>
  <summary>
    The upper bound of the estimated renderer process count if we isolated no
    sites, subject to the process limit. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="SiteIsolation.IsolateNothingProcessCountLowerBound">
  <owner>creis@chromium.orgnick@chromium.org</owner>
  <owner>site-isolation-dev@chromium.org</owner>
  <summary>
    The lower bound of the predicted renderer process count if we isolated no
    sites, subject to the process limit. Happens to be the number of isolated
    sites. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="SiteIsolation.IsolateNothingProcessCountNoLimit">
  <owner>creis@chromium.orgnick@chromium.org</owner>
  <owner>site-isolation-dev@chromium.org</owner>
  <summary>
    The predicted renderer process count if we isolated no sites and if there
    were no process limit. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="SiteIsolation.IsolateNothingTotalProcessCountEstimate">
  <owner>creis@chromium.orgnick@chromium.org</owner>
  <owner>site-isolation-dev@chromium.org</owner>
  <summary>
    The predicted total process count if we isolated no sites, subject to the
    process limit. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="SiteIsolation.IsolateOrigins.Size" units="origins">
  <owner>alexmos@chromium.org</owner>
  <summary>
    The number of currently enabled isolated origins. This includes origins
    specified via the --isolate-origins command-line flag as well as those
    configured via enterprise policy. Recorded on browser startup.
  </summary>
</histogram>

<histogram name="SiteIsolation.LowMemoryMode.Transition" enum="BooleanEnabled">
  <owner>rsesek@chromium.org</owner>
  <summary>
    The number of times a render process transitions its main thread isolate
    into or out of memory savings mode. This is recorded per-renderer-process
    upon the creation of the first main frame or the destruction of the last
    main frame.
  </summary>
</histogram>

<histogram name="SiteIsolation.OutOfProcessIframes">
  <owner>nasko@chromium.org</owner>
  <summary>
    The count of all out-of-process iframes. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="SiteIsolation.ProxyCount">
  <owner>creis@chromium.orgnick@chromium.org</owner>
  <owner>site-isolation-dev@chromium.org</owner>
  <summary>
    The count of all RenderFrameProxyHosts. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="SiteIsolation.ProxyCountPerBrowsingInstance">
  <owner>creis@chromium.orgnick@chromium.org</owner>
  <owner>site-isolation-dev@chromium.org</owner>
  <summary>
    The count of RenderFrameProxyHosts in each BrowsingInstance. Recorded each
    UMA ping, once per BrowsingInstance.
  </summary>
</histogram>

<histogram name="SiteIsolation.ReusePendingOrCommittedSite.CouldReuse"
    enum="ReusePendingOrCommittedSiteEnum">
  <owner>clamy@chromium.org</owner>
  <summary>
    Whether SiteInstances with a ProcessReusePolicy of
    REUSE_PENDING_OR_COMMITTED_SITE could reuse an existing RenderProcessHost or
    they had to create a new one. True when they reused an existing process,
    false when they created a new one.
  </summary>
</histogram>

<histogram name="SiteIsolation.SiteInstancesPerBrowsingInstance">
  <owner>nasko@chromium.org</owner>
  <summary>
    The count of SiteInstances in a single BrowsingInstance. Recorded each UMA
    ping, once per BrowsingInstance.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.Browser.Action"
    enum="SiteIsolationResponseAction">
  <owner>creis@chromium.org</owner>
  <summary>
    Various actions related to cross-site document blocking in the browser
    process, indicating whether the response was blocked from the renderer.
    Recorded as the response is processed in the network stack.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.Browser.Allowed.ContentScript"
    enum="ContentResourceType2" expires_after="2019-06-01">
  <owner>creis@chromium.org</owner>
  <summary>
    The total count of responses that were would be blocked by the cross-site
    document blocking logic in the browser process, but were only allowed
    because the request was initiated by a content script of an extension.
    Sampled with a resource type (0-17) when the response is allowed.

    Note that this histogram is not reimplemented in the NetworkService version
    of Cross-Origin Read Blocking feature. This should be okay since we hope to
    gather enough data before NetworkService ships.

    TODO(lukasza): Around Q4 2018: Remove code after we've gathered enough data.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.Browser.Blocked" enum="ContentResourceType2">
  <owner>creis@chromium.org</owner>
  <summary>
    The total count of responses that were blocked by the cross-site document
    blocking logic in the browser process. Sampled with a resource type (0-17)
    when the response is blocked; up to 1024 bytes of the response are
    considered. This is also recorded with a suffix indicating the MIME type
    category.
  </summary>
</histogram>

<histogram
    name="SiteIsolation.XSD.Browser.Blocked.ContentLength.ValueIfAvailable"
    units="bytes">
  <owner>creis@chromium.org</owner>
  <summary>
    For each responses blocked by the cross-site document blocking logic in the
    browser process, logs network::ResourceResponseInfo::content_length of the
    response (but only if the content length value was available - if the value
    was not -1).
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.Browser.Blocked.ContentLength.WasAvailable"
    enum="BooleanAvailable">
  <owner>creis@chromium.org</owner>
  <summary>
    For each responses blocked by the cross-site document blocking logic in the
    browser process, logs whether network::ResourceResponseInfo::content_length
    was available (i.e. value was 0 or greated) or not available (i.e. value was
    equal to -1) if the value was available (i.e. the value was not -1).
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.Browser.BlockedForParserBreaker"
    enum="ContentResourceType2">
  <owner>creis@chromium.org</owner>
  <summary>
    The total count of responses that were blocked by the cross-site document
    blocking logic in the browser process, due to the presence of a Javascript
    parser-breaker pattern (like &quot;for(;;);&quot;, or &quot;)]}'&quot;, or a
    non-empty JSON dictionary like &quot;{\&quot;a\&quot;:&quot;. Sampled with a
    resource type (0-17) when the response is blocked; up to 1024 bytes of the
    response are considered.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.Browser.BytesReadForSniffing" units="bytes">
  <owner>creis@chromium.org</owner>
  <summary>
    The number of bytes of the network response buffered for sniffing purposes,
    when attempting to sniff the response to determine if it should be blocked
    as a cross-site document. Recorded after sniffing is attempted.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.DataLength" units="byte">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The number of bytes in the first network packet for a response with headers
    that imply potential illegal cross-site access. Recorded when the first
    network packet of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.HTML.Blocked">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of blocked cross-site document responses due to having HTML
    content type header and contents sniffed as HTML. Sampled with value of 1
    when the first network packet of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.HTML.Blocked.NonRenderableStatusCode">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a nonrenderable HTTP status code among blocked
    cross-site document responses due to their HTML contents. Sampled with value
    1 when the first network packet of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.HTML.Blocked.RenderableStatusCode"
    enum="ContentResourceType">
  <obsolete>
    Superseded by SiteIsolation.XSD.HTML.Blocked.RenderableStatusCode2 in
    December 2015.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a renderable HTTP status code sub-categorized by
    their requesting context type (e.g., image, script, etc.) among blocked
    cross-site document responses due to their HTML contents. Sampled with a
    resource type (0-14) when the first network packet of a response of this
    type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.HTML.Blocked.RenderableStatusCode2"
    enum="ContentResourceType2">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a renderable HTTP status code sub-categorized by
    their requesting context type (e.g., image, script, etc.) among blocked
    cross-site document responses due to their HTML contents. Sampled with a
    resource type (0-17) when the first network packet of a response of this
    type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.HTML.NoSniffBlocked.NonRenderableStatusCode">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a nonrenderable HTTP status code among blocked
    cross-site document responses due to having HTML content type and nosniff
    headers. Sampled with value 1 when the first network packet of a response of
    this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.HTML.NoSniffBlocked.RenderableStatusCode"
    enum="ContentResourceType">
  <obsolete>
    Superseded by SiteIsolation.XSD.HTML.NoSniffBlocked.RenderableStatusCode2 in
    December 2015.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a renderable HTTP status code sub-categorized by
    their requesting context type (e.g., image, script, etc.), among blocked
    cross-site document responses due to having HTML content type and nosniff
    headers. Sampled with a resource type (0-14) when the first network packet
    of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.HTML.NoSniffBlocked.RenderableStatusCode2"
    enum="ContentResourceType2">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a renderable HTTP status code sub-categorized by
    their requesting context type (e.g., image, script, etc.), among blocked
    cross-site document responses due to having HTML content type and nosniff
    headers. Sampled with a resource type (0-17) when the first network packet
    of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.HTML.NotBlocked">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of not blocked responses despite having an HTML content type
    header due to the failure of content sniffing. Sampled with value 1 when the
    first network packet of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.HTML.NotBlocked.MaybeJS">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses that may be parsed as JavaScript among not blocked
    responses. Sampled with value 1 when the first network packet of a response
    of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.JSON.Blocked">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of blocked cross-site document responses due to having JSON
    content type header and contents sniffed as JSON. Sampled with value 1 when
    the first network packet of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.JSON.Blocked.NonRenderableStatusCode">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a nonrenderable HTTP status code among blocked
    cross-site document responses due to their JSON contents. Sampled with value
    1 when the first network packet of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.JSON.Blocked.RenderableStatusCode"
    enum="ContentResourceType">
  <obsolete>
    Superseded by SiteIsolation.XSD.JSON.Blocked.RenderableStatusCode2 in
    December 2015.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a renderable HTTP status code sub-categorized by
    their requesting context type (e.g., image, script, etc.), among blocked
    cross-site document responses due to their JSON contents. Sampled with a
    resource type (0-14) when the first network packet of a response of this
    type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.JSON.Blocked.RenderableStatusCode2"
    enum="ContentResourceType2">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a renderable HTTP status code sub-categorized by
    their requesting context type (e.g., image, script, etc.), among blocked
    cross-site document responses due to their JSON contents. Sampled with a
    resource type (0-17) when the first network packet of a response of this
    type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.JSON.NoSniffBlocked.NonRenderableStatusCode">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a nonrenderable HTTP status code among blocked
    cross-site document responses due to having JSON content type and nosniff
    headers. Sampled with value 1 when the first network packet of a response of
    this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.JSON.NoSniffBlocked.RenderableStatusCode"
    enum="ContentResourceType">
  <obsolete>
    Superseded by SiteIsolation.XSD.JSON.NoSniffBlocked.RenderableStatusCode2 in
    December 2015.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a renderable HTTP status code sub-categorized by
    their requesting context type (e.g., image, script, etc.), among blocked
    cross-site document responses due to having JSON content type and nosniff
    headers. Sampled with a resource type (0-14) when the first network packet
    of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.JSON.NoSniffBlocked.RenderableStatusCode2"
    enum="ContentResourceType2">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a renderable HTTP status code sub-categorized by
    their requesting context type (e.g., image, script, etc.), among blocked
    cross-site document responses due to having JSON content type and nosniff
    headers. Sampled with a resource type (0-17) when the first network packet
    of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.JSON.NotBlocked">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of not blocked responses despite having an JSON content type
    header due to the failure of content sniffing. Sampled with value 1 when the
    first network packet of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.JSON.NotBlocked.MaybeJS">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses that may be parsed as JavaScript among not blocked
    responses with a JSON content type header. Sampled with value 1 when the
    first network packet of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.MimeType" enum="SiteIsolationMimeType">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    MIME type codes for content type header values of potentially cross-site
    document responses, excluding same-site or not http(s) urls. Sampled with a
    MIME type code (0-4) when the first network packet of a response of this
    type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.NetworkService.InitiatorLockCompatibility"
    enum="CorbResultVsInitiatorLockCompatibility" expires_after="2019-06-13">
  <owner>creis@chromium.org</owner>
  <owner>lukasza@chromium.org</owner>
  <summary>
    Logs whether CORB blocking might have been caused by treating
    |request_initiator| as opaque when |request_initiator_site_lock| is
    incompatible (as may be the case for HTML Imports).

    Logged when CORB allows or blocks a response, only when NetworkService is
    enabled.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.Plain.HTML.Blocked">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of blocked cross-site document responses due to having Plain
    content type header and contents sniffed as HTML. Sampled with value 1 when
    the first network packet of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.Plain.HTML.Blocked.NonRenderableStatusCode">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a nonrenderable HTTP status code among blocked
    responses due to their Plain.HTML contents. Sampled with value 1 when the
    first network packet of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.Plain.HTML.Blocked.RenderableStatusCode"
    enum="ContentResourceType">
  <obsolete>
    Superseded by SiteIsolation.XSD.Plain.HTML.Blocked.RenderableStatusCode2 in
    December 2015.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a renderable HTTP status code sub-categorized by
    their requesting context type (e.g., image, script, etc.), among blocked
    cross-site document responses due to their Plain.HTML contents. Sampled with
    a resource type (0-14) when the first network packet of a response of this
    type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.Plain.HTML.Blocked.RenderableStatusCode2"
    enum="ContentResourceType2">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a renderable HTTP status code sub-categorized by
    their requesting context type (e.g., image, script, etc.), among blocked
    cross-site document responses due to their Plain.HTML contents. Sampled with
    a resource type (0-17) when the first network packet of a response of this
    type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.Plain.JSON.Blocked">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of blocked cross-site document responses due to having Plain
    content type header and contents sniffed as JSON. Sampled with value 1 when
    the first network packet of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.Plain.JSON.Blocked.NonRenderableStatusCode">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a nonrenderable HTTP status code among blocked
    cross-site document responses due to their Plain.JSON contents. Sampled with
    value 1 when the first network packet of a response of this type is
    received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.Plain.JSON.Blocked.RenderableStatusCode"
    enum="ContentResourceType">
  <obsolete>
    Superseded by SiteIsolation.XSD.Plain.JSON.Blocked.RenderableStatusCode2 in
    December 2015.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a renderable HTTP status code sub-categorized by
    their requesting context type (e.g., image, script, etc.), among blocked
    cross-site document responses due to their Plain.JSON contents. Sampled with
    a resource type (0-14) when the first network packet of a response of this
    type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.Plain.JSON.Blocked.RenderableStatusCode2"
    enum="ContentResourceType2">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a renderable HTTP status code sub-categorized by
    their requesting context type (e.g., image, script, etc.), among blocked
    cross-site document responses due to their Plain.JSON contents. Sampled with
    a resource type (0-17) when the first network packet of a response of this
    type is received.
  </summary>
</histogram>

<histogram
    name="SiteIsolation.XSD.Plain.NoSniffBlocked.NonRenderableStatusCode">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a nonrenderable HTTP status code among blocked
    cross-site document responses due to having Plain content type and nosniff
    headers. Sampled with value 1 when the first network packet of a response of
    this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.Plain.NoSniffBlocked.RenderableStatusCode"
    enum="ContentResourceType">
  <obsolete>
    Superseded by SiteIsolation.XSD.Plain.NoSniffBlocked.RenderableStatusCode2
    in December 2015.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a renderable HTTP status code sub-categorized by
    their requesting context type (e.g., image, script, etc.), among blocked
    cross-site document responses due to having Plain content type and nosniff
    header. Sampled with a resource type (0-14) when the first network packet of
    a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.Plain.NoSniffBlocked.RenderableStatusCode2"
    enum="ContentResourceType2">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a renderable HTTP status code sub-categorized by
    their requesting context type (e.g., image, script, etc.), among blocked
    cross-site document responses due to having Plain content type and nosniff
    header. Sampled with a resource type (0-17) when the first network packet of
    a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.Plain.NotBlocked">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of not blocked responses despite having an Plain content type
    header due to the failure of content sniffing. Sampled with value 1 when the
    first network packet of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.Plain.NotBlocked.MaybeJS">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses that may be parsed as JavaScript among not blocked
    responses with a Plain content type header. Sampled with value 1 when the
    first network packet of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.Plain.XML.Blocked">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of blocked cross-site document responses due to having Plain
    content type header and contents sniffed as XML. Sampled with value 1 when
    the first network packet of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.Plain.XML.Blocked.NonRenderableStatusCode">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a nonrenderable HTTP status code among blocked
    cross-site document responses due to their Plain.XML contents. Sampled with
    value 1 when the first network packet of a response of this type is
    received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.Plain.XML.Blocked.RenderableStatusCode"
    enum="ContentResourceType">
  <obsolete>
    Superseded by SiteIsolation.XSD.Plain.XML.Blocked.RenderableStatusCode2 in
    December 2015.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with renderable HTTP status codes sub-categorized by
    their requesting context type (e.g., image, script, etc.), among blocked
    cross-site document responses due to their Plain.XML contents. Sampled with
    a resource type (0-14) when the first network packet of a response of this
    type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.Plain.XML.Blocked.RenderableStatusCode2"
    enum="ContentResourceType2">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with renderable HTTP status codes sub-categorized by
    their requesting context type (e.g., image, script, etc.), among blocked
    cross-site document responses due to their Plain.XML contents. Sampled with
    a resource type (0-17) when the first network packet of a response of this
    type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.XML.Blocked">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of blocked cross-site document responses due to having XML content
    type header and contents sniffed as XML. Sampled with value 1 when the first
    network packet of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.XML.Blocked.NonRenderableStatusCode">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with nonrenderable HTTP status codes among blocked
    cross-site document responses due to their XML contents. Sampled with value
    1 when the first network packet of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.XML.Blocked.RenderableStatusCode"
    enum="ContentResourceType">
  <obsolete>
    Superseded by SiteIsolation.XSD.XML.Blocked.RenderableStatusCode2 in
    December 2015.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with renderable HTTP status codes sub-categorized by
    their requesting context type (e.g., image, script, etc.), among blocked
    cross-site document responses due to their XML contents. Sampled with a
    resource type (0-14) when the first network packet of a response of this
    type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.XML.Blocked.RenderableStatusCode2"
    enum="ContentResourceType2">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with renderable HTTP status codes sub-categorized by
    their requesting context type (e.g., image, script, etc.), among blocked
    cross-site document responses due to their XML contents. Sampled with a
    resource type (0-17) when the first network packet of a response of this
    type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.XML.NoSniffBlocked.NonRenderableStatusCode">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a nonrenderable HTTP status code among blocked
    cross-site document responses due to having XML content type and nosniff
    headers. Sampled with value 1 when the first network packet of a response of
    this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.XML.NoSniffBlocked.RenderableStatusCode"
    enum="ContentResourceType">
  <obsolete>
    Superseded by SiteIsolation.XSD.XML.NoSniffBlocked.RenderableStatusCode2 in
    December 2015.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a renderable HTTP status code sub-categorized by
    their requesting context type (e.g., image, script, etc.), among blocked
    cross-site document responses due to having XML content type and nosniff
    headers. Sampled with a resource type (0-14) when the first network packet
    of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.XML.NoSniffBlocked.RenderableStatusCode2"
    enum="ContentResourceType2">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses with a renderable HTTP status code sub-categorized by
    their requesting context type (e.g., image, script, etc.), among blocked
    cross-site document responses due to having XML content type and nosniff
    headers. Sampled with a resource type (0-17) when the first network packet
    of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.XML.NotBlocked">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of not blocked responses despite having an XML content type header
    due to the failure of content sniffing. Sampled with value 1 when the first
    network packet of a response of this type is received.
  </summary>
</histogram>

<histogram name="SiteIsolation.XSD.XML.NotBlocked.MaybeJS">
  <obsolete>
    Removed in March 2018; in M67+, browser-process CORB policy is enabled.
  </obsolete>
  <owner>creis@chromium.org</owner>
  <summary>
    The count of responses that may be parsed as JavaScript among not blocked
    responses with an XML content type. Sampled with value 1 when the first
    network packet of a response of this type is received.
  </summary>
</histogram>

<histogram name="Skia.DrawScaleFactor" enum="SkiaScaleFactor">
  <owner>ericrk@chromium.org</owner>
  <summary>The scale factor of any images drawn by Skia.</summary>
</histogram>

<histogram name="Skia.DrawTiled" enum="BooleanTiled">
  <owner>ericrk@chromium.org</owner>
  <summary>
    Whether a call to drawBitmap(Rect) or drawImage(Rect) used the tiled or
    non-tiled rasterization path.
  </summary>
</histogram>

<histogram name="Skia.FilterQuality" enum="SkiaFilterQuality">
  <owner>ericrk@chromium.org</owner>
  <summary>
    The count of images drawn by Skia with a given filter quality.
  </summary>
</histogram>

<histogram name="Skia.LockTexturePath" enum="SkiaLockTexturePath">
  <owner>ericrk@chromium.org</owner>
  <summary>
    The path taken by Skia when it attempts to lock a texture for use.
  </summary>
</histogram>

<histogram name="SmartLock.AuthMethodChoice.SignIn"
    enum="SmartLockAuthMethodChoice">
  <owner>hansberry@chromium.org</owner>
  <summary>Records the user's sign in method choice.</summary>
</histogram>

<histogram name="SmartLock.AuthMethodChoice.SignIn.PasswordState"
    enum="SmartLockAuthEventPasswordState">
  <owner>hansberry@chromium.org</owner>
  <owner>hsuregan@chromium.org</owner>
  <summary>
    The state Smart Lock was in when the user chose to use their password to
    sign into their device.
  </summary>
</histogram>

<histogram name="SmartLock.AuthMethodChoice.Unlock"
    enum="SmartLockAuthMethodChoice">
  <owner>hansberry@chromium.org</owner>
  <summary>Records the user's unlock method choice.</summary>
</histogram>

<histogram name="SmartLock.AuthMethodChoice.Unlock.PasswordState"
    enum="SmartLockAuthEventPasswordState">
  <owner>hansberry@chromium.org</owner>
  <owner>hsuregan@chromium.org</owner>
  <summary>
    An enumerated histogram that breaks down what state Smart Lock was in when
    the user chose to use their password to unlock their device.
  </summary>
</histogram>

<histogram name="SmartLock.AuthResult.SignIn" enum="BooleanSuccess">
  <owner>hansberry@chromium.org</owner>
  <owner>hsuregan@chromium.org</owner>
  <summary>
    Count of successful and failed attempts to sign in the Chromebook, after the
    user selects their profile photo.
  </summary>
</histogram>

<histogram name="SmartLock.AuthResult.SignIn.Failure"
    enum="SmartLockAuthResultFailureReason">
  <owner>hansberry@chromium.org</owner>
  <owner>hsuregan@chromium.org</owner>
  <summary>
    Shows why a sign in attempt failed during the authentication phase. Breaks
    down the failure bucket of SmartLock.AuthResult.SignIn.
  </summary>
</histogram>

<histogram name="SmartLock.AuthResult.SignIn.Failure.UserControllerAuth"
    enum="LoginFailureReason">
  <owner>hansberry@chromium.org</owner>
  <summary>
    An enumerated histogram that breaks down why the UserController could not
    decrypt the account.
  </summary>
</histogram>

<histogram name="SmartLock.AuthResult.Unlock" enum="BooleanSuccess">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Count of successful and failed attempts to unlock the Chromebook, after the
    user selects their profile photo.
  </summary>
</histogram>

<histogram name="SmartLock.AuthResult.Unlock.Failure"
    enum="SmartLockAuthResultFailureReason">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Shows why an unlock attempt failed during the authentication phase. Breaks
    down the failure bucket of SmartLock.AuthResult.Unlock.
  </summary>
</histogram>

<histogram name="SmartLock.EligibleDevicesCount" units="devices">
  <owner>jhawkins@chromium.org</owner>
  <summary>
    A count of the number of eligible SmartLock devices which can be used to
    unlock the user's Chromebook. Logged each time the list of eligible devices
    is updated. TODO(jhawkins): Log this again once we send this data from
    eligible phones.
  </summary>
</histogram>

<histogram name="SmartLock.EnabledDevicesCount" units="devices">
  <owner>jhawkins@chromium.org</owner>
  <summary>
    A count of the number of SmartLock devices which the user has enabled to
    unlock the user's Chromebook, i.e., the device connected to in the SmartLock
    setup flow. Logged each time the list of eligible devices is updated.
  </summary>
</histogram>

<histogram name="SmartLock.EnabledState" enum="SmartLockEnabledState">
  <owner>jhawkins@chromium.org</owner>
  <summary>
    The state of the SmartLock feature for the current user, set at login. The
    value is 'enabled' if the user has successfully enabled SmartLock via setup,
    disabled if the user has explicitly disabled the feature after it has been
    enabled, and unset if the feature is passively disabled, i.e., has never
    been enabled by the user.
  </summary>
</histogram>

<histogram name="SmartLock.GetRemoteStatus.SignIn" enum="BooleanSuccess">
  <owner>hansberry@chromium.org</owner>
  <owner>hsuregan@chromium.org</owner>
  <summary>
    Count of successful and failed attempts to get the 'remote status' of the
    host device, i.e., determine if the Chromebook can be signed into.
  </summary>
</histogram>

<histogram name="SmartLock.GetRemoteStatus.SignIn.Failure"
    enum="SmartLockGetRemoteStatusResultFailureReason">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Shows why a sign in attempt failed during the connection phase. Breaks down
    the failure bucket of SmartLock.ConnectionResult.
  </summary>
</histogram>

<histogram name="SmartLock.GetRemoteStatus.Unlock" enum="BooleanSuccess">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Count of successful and failed attempts to get the 'remote status' of the
    host device, i.e., determine if the Chromebook can be unlocked.
  </summary>
</histogram>

<histogram name="SmartLock.GetRemoteStatus.Unlock.Failure"
    enum="SmartLockGetRemoteStatusResultFailureReason">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Shows why an unlock attempt failed during the connection phase. Breaks down
    the failure bucket of SmartLock.ConnectionResult.
  </summary>
</histogram>

<histogram name="SmartLock.MultiDeviceFeatureState"
    enum="MultiDevice_FeatureState">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Indicates the feature state of the SmartLock feature. This metric is emitted
    to at the creation of the user session (when the user logs in), and when
    feature state updates occur.
  </summary>
</histogram>

<histogram
    name="SmartLock.Performance.AuthenticationToReceiveUnlockableRemoteStatus.Duration.Unlock"
    units="ms" expires_after="2020-02-01">
  <owner>hansberry@chromium.org</owner>
  <summary>
    The duration of time between when Smart Lock successfully establishes a
    secure channel connection to the host device, and receives an
    &quot;authenticated&quot; remote status from it (i.e., the Smart Lock icon
    becomes green).
  </summary>
</histogram>

<histogram
    name="SmartLock.Performance.StartScanToReceiveUnlockableRemoteStatus.Duration.Unlock"
    units="ms" expires_after="2020-02-01">
  <owner>hansberry@chromium.org</owner>
  <summary>
    The duration of time between when Smart Lock begins to try to find the host
    device, and receives an &quot;authenticated&quot; remote status from it,
    which allows the device to be unlocked (i.e., the Smart Lock icon becomes
    green).

    See
    MultiDevice.SecureChannel.BLE.Performance.StartScanToAuthenticationDuration.Background
    and SmartLock.AuthenticationToReceiveUnlockableRemoteStatus.Unlock.Duration
    for breakdowns of this metric.

    See SmartLock.GetRemoteStatus.Unlock for the success rate of fetching the
    remote status from the host.
  </summary>
</histogram>

<histogram name="SmartLock.ToggleFeature" enum="BooleanEnabled">
  <owner>jhawkins@chromium.org</owner>
  <summary>
    The number of times the user actively enabled or disabled the SmartLock
    feature via Settings.
  </summary>
</histogram>

<histogram name="SmartLock.ToggleFeature.Disable.Result" enum="BooleanSuccess">
  <owner>jhawkins@chromium.org</owner>
  <summary>The result of the operation to disable SmartLock.</summary>
</histogram>

<histogram name="Snackbar.Shown" enum="SnackbarIdentifier">
  <owner>ianwen@chromium.org</owner>
  <summary>
    Records how many times a particular snackbar was shown to the user.
  </summary>
</histogram>

<histogram name="SoftwareReporter.Cleaner.CleaningTime" units="ms">
  <owner>alito@chromium.org</owner>
  <summary>
    The time between sending the user's response to the Chrome Cleaner process
    and the Cleaner process terminating. This histogram is logged only for
    successfully completed runs of the cleaner.
  </summary>
</histogram>

<histogram name="SoftwareReporter.Cleaner.CleanupResult"
    enum="SoftwareReporterCleanupResult">
  <owner>ftirelo@chromium.org</owner>
  <summary>
    The final status of the Chrome Cleanup Tool run (e.g. succeeded, failed,
    reboot required).
  </summary>
</histogram>

<histogram name="SoftwareReporter.Cleaner.DownloadHttpResponseCode"
    enum="HttpResponseCode">
  <obsolete>
    Deprecated as of 09/2017. Replaced with
    SoftwareReporter.Cleaner.DownloadStatusErrorCode.
  </obsolete>
  <owner>ftirelo@chromium.org</owner>
  <summary>
    The HTTP response code for the Chrome Cleanup Tool download request.
  </summary>
</histogram>

<histogram name="SoftwareReporter.Cleaner.DownloadStatus"
    enum="SoftwareReporterCleanerDownloadStatus">
  <owner>ftirelo@chromium.org</owner>
  <summary>
    An indication if an attempt to download the Chrome Cleanup Tool succeeded or
    the reason why it failed.
  </summary>
</histogram>

<histogram name="SoftwareReporter.Cleaner.DownloadStatusErrorCode"
    enum="CombinedHttpResponseAndNetErrorCode">
  <owner>ftirelo@chromium.org</owner>
  <summary>
    The HTTP response or net error code when trying to download the Chrome
    Cleanup Tool.
  </summary>
</histogram>

<histogram name="SoftwareReporter.Cleaner.HasCompleted" enum="SRTCompleted">
  <owner>mad@chromium.org</owner>
  <summary>
    The state of software reporter cleaner tool runs. A value of &quot;Not
    Completed&quot; can mean either the tool crashed, or the tool was still
    running when Chrome checked.
  </summary>
</histogram>

<histogram name="SoftwareReporter.Cleaner.HasRebooted" enum="BooleanRebooted">
  <owner>mad@chromium.org</owner>
  <summary>
    Whether a reboot happened since the software reporter cleaner tool has
    finished execution with a pre-reboot exit code.
  </summary>
</histogram>

<histogram name="SoftwareReporter.Cleaner.NumberOfDownloadAttempts"
    units="counts">
  <obsolete>
    Deprecated on 2018-01-15.
  </obsolete>
  <owner>ftirelo@chromium.org</owner>
  <summary>
    The number of attempts to download the Chrome Cleanup tool until it either
    succeeds or fails.
  </summary>
</histogram>

<histogram name="SoftwareReporter.Cleaner.RebootPromptShown"
    enum="SoftwareReporterRebootPromptType">
  <owner>veranika@chromium.org</owner>
  <summary>
    Indicates how the user was prompted to reboot the machine to complete a run
    of the Chrome Cleanup Tool.
  </summary>
</histogram>

<histogram name="SoftwareReporter.Cleaner.RebootResponse" enum="Boolean">
  <owner>ftirelo@chromium.org</owner>
  <summary>
    Indicates that the user accepted to initiate a reboot to complete a run of
    the Chrome Cleanup Tool. This is logged the user starts a reboot from the
    cleanup card in the Settings page. We can't track when the reboot is not
    initiated, because it can happen at any moment in the future (there is no
    prompt blocking the user).
  </summary>
</histogram>

<histogram name="SoftwareReporter.Cleaner.RunningTime" units="ms">
  <owner>mad@chromium.org</owner>
  <summary>How long it took to run the software reporter cleaner tool.</summary>
</histogram>

<histogram name="SoftwareReporter.Cleaner.ScanningTime" units="ms">
  <owner>alito@chromium.org</owner>
  <summary>
    The time between launching the Chrome Cleaner process and the cleaner having
    scanned the user's machine and Chrome receiving an IPC call with the
    results.
  </summary>
</histogram>

<histogram name="SoftwareReporter.Cleaner.SettingsPageActiveOnRebootRequired"
    enum="SoftwareReporterCleanerSettingsPageActiveOnRebootRequired">
  <owner>ftirelo@chromium.org</owner>
  <summary>
    Indicates if the Settings page was the active tab once a cleanup finished
    with reboot required.
  </summary>
</histogram>

<histogram name="SoftwareReporter.Cleaner.TimeToCompleteDownload" units="ms">
  <owner>ftirelo@chromium.org</owner>
  <summary>
    The time between the first attempt to download the Chrome Cleanup tool and a
    successful download or the last unsuccessful attempt to download without
    retrying.
  </summary>
</histogram>

<histogram name="SoftwareReporter.Cleaner.Version">
  <owner>mad@chromium.org</owner>
  <summary>The build version of the software reporter cleaner tool.</summary>
</histogram>

<histogram name="SoftwareReporter.CleanerLogsAcceptance" enum="BooleanAccepted">
  <owner>ftirelo@chromium.org</owner>
  <summary>
    Whether the user accepted to upload logs from Chrome Cleanup Tool. This is
    logged when the user accepts the Chrome prompt to start a cleanup either
    from the prompt dialog or from the cleanup card in the Settings page.
  </summary>
</histogram>

<histogram name="SoftwareReporter.CleanupCard" enum="Boolean">
  <owner>ftirelo@chromium.org</owner>
  <summary>
    Whether the Chrome Cleanup Tool card in the Settings page has been shown.
  </summary>
</histogram>

<histogram name="SoftwareReporter.CleanupStarted"
    enum="SoftwareReporterCleanupStarted">
  <owner>ftirelo@chromium.org</owner>
  <summary>
    Indicates where the user started a cleanup from (e.g. from the prompt dialog
    or the settings page).
  </summary>
</histogram>

<histogram name="SoftwareReporter.ExperimentErrors"
    enum="SoftwareReporterExperimentError">
  <owner>joenotcharles@chromium.org</owner>
  <summary>
    Whether a configuration error prevented the experimental Software Reporter
    from running.
  </summary>
</histogram>

<histogram name="SoftwareReporter.FoundUwSReadError" enum="BooleanError">
  <owner>mad@chromium.org</owner>
  <summary>
    Whether there was an error reading the registry key containing UwS found by
    the Software Removal Tool.
  </summary>
</histogram>

<histogram name="SoftwareReporter.IPCDisconnected"
    enum="SoftwareReporterIPCDisconnected">
  <owner>ftirelo@chromium.org</owner>
  <summary>
    Indicates when the IPC with the Chrome Cleanup Tool process is disconnected
    from Chrome. Success is logged when it's disconnected and no longer needed
    (the user already responded to the prompt in Chrome or the cleaner process
    terminated normally); failures are logged when the IPC is disconnected, but
    communication between Chrome and the cleaner process is still required (e.g.
    while Chrome is waiting for scanning results or when the cleaner is waiting
    for the user's response from Chrome).
  </summary>
</histogram>

<histogram name="SoftwareReporter.LastUploadResult" enum="BooleanSuccess">
  <owner>mad@chromium.org</owner>
  <summary>The result of the most recent SRT log upload.</summary>
</histogram>

<histogram name="SoftwareReporter.LogsUploadEnabled"
    enum="SoftwareReporterLogsUploadEnabled">
  <owner>ftirelo@chromium.org</owner>
  <summary>
    If logs uploads are enabled in the Software Reporter or the reason why it is
    disabled. Recorded before each run of the Software Reporter.
  </summary>
</histogram>

<histogram name="SoftwareReporter.LogsUploadResult"
    enum="SoftwareReporterLogsUploadResult">
  <owner>ftirelo@chromium.org</owner>
  <summary>
    The result of the most recent Software Reporter logs upload. Written by the
    Software Reporter in the registry and sent by Chrome after the reporter
    finishes.
  </summary>
</histogram>

<histogram name="SoftwareReporter.LogsUploadResultRegistryError"
    enum="SoftwareReporterLogsUploadResultRegistryError">
  <owner>ftirelo@chromium.org</owner>
  <summary>
    Error encountered when reading the software reporter logs upload result from
    the registry.
  </summary>
</histogram>

<histogram name="SoftwareReporter.MajorVersion">
  <owner>mad@chromium.org</owner>
  <summary>
    As SoftwareReporter.MinorVersion, but a double word combination of the other
    components of the version of the software reporter. The high word is the
    first component when there are more than one, and the low word is either the
    second or third one, depending if there are at least 3, or 4 components.
  </summary>
</histogram>

<histogram name="SoftwareReporter.MemoryUsed" units="KB">
  <owner>alito@chromium.org</owner>
  <summary>
    The memory used by the software reporter tool as reported by the tool itself
    via the registry. Logged just after the software reporter tool has finished.
  </summary>
</histogram>

<histogram name="SoftwareReporter.MinorVersion">
  <owner>mad@chromium.org</owner>
  <summary>
    The last component of the version of the software reporter that was executed
    so we can identify when users are not getting their component updated as
    quickly as we expect it.
  </summary>
</histogram>

<histogram name="SoftwareReporter.NoPromptReason"
    enum="SoftwareReporterNoPromptReason">
  <owner>ftirelo@chromium.org</owner>
  <summary>
    The reason why the user has not been prompted to run the Chrome Cleanup Tool
    (e.g. no unwanted software found, user recently prompted).
  </summary>
</histogram>

<histogram name="SoftwareReporter.NumberOfFilesToDelete" units="counts">
  <owner>ftirelo@chromium.org</owner>
  <summary>
    The number of files to be deleted by the Chrome Cleanup Tool.
  </summary>
</histogram>

<histogram name="SoftwareReporter.OnDemandUpdateRequired"
    enum="BooleanRequired">
  <owner>ftirelo@chromium.org</owner>
  <summary>
    Whether an on-demand update of the Software Reporter component was needed
    for a user-initiated cleanup.
  </summary>
</histogram>

<histogram name="SoftwareReporter.OnDemandUpdateSucceeded"
    enum="BooleanSuccess">
  <owner>ftirelo@chromium.org</owner>
  <summary>
    Whether an on-demand update of the Software Reporter component succeeded,
    when needed for a user-initiated cleanup.
  </summary>
</histogram>

<histogram name="SoftwareReporter.PostCleanupSettingsReset" units="counts">
  <owner>ftirelo@chromium.org</owner>
  <summary>
    The number of profiles whose settings will be reset once a successful
    cleanup completes.
  </summary>
</histogram>

<histogram name="SoftwareReporter.PromptDialog.TimeUntilDone" units="ms">
  <owner>alito@chromium.org</owner>
  <summary>
    The time between the Chrome Cleaner dialog being shown and the dialog being
    closed.
  </summary>
</histogram>

<histogram name="SoftwareReporter.PromptDialogResponse"
    enum="SoftwareReporterPromptDialogResponse">
  <owner>ftirelo@chromium.org</owner>
  <summary>
    The user response on the modal Chrome Cleanup Tool prompt dialog (e.g.
    accepted, cancelled).
  </summary>
</histogram>

<histogram name="SoftwareReporter.PromptShown" enum="Boolean">
  <obsolete>
    Replaced 2017-08-01 with SoftwareReporter.PromptShownWithType.
  </obsolete>
  <owner>ftirelo@chromium.org</owner>
  <summary>
    Whether the user has been prompted to run the Chrome Cleanup Tool.
  </summary>
</histogram>

<histogram name="SoftwareReporter.PromptShownWithType"
    enum="SoftwareReporterPromptShownWithType">
  <owner>ftirelo@chromium.org</owner>
  <summary>
    Whether the user has been prompted to run the Chrome Cleanup Tool and which
    type of prompt has been shown.

    This is logged once a prompt is presented to the user.
  </summary>
</histogram>

<histogram name="SoftwareReporter.PromptUsage" enum="SRTPromptUsage">
  <obsolete>
    Deprecated as of 2017-11-01. Replaced with
    SoftwareReporter.PromptDialogResponse.
  </obsolete>
  <owner>mad@chromium.org</owner>
  <summary>Usage of the Software Removal Tool (SRT) Prompt.</summary>
</histogram>

<histogram name="SoftwareReporter.ReporterSequenceResult"
    enum="SoftwareReporterSequenceResult">
  <owner>ftirelo@chromium.org</owner>
  <summary>Indicates the result of a reporter sequence once it ends.</summary>
</histogram>

<histogram name="SoftwareReporter.ReporterSequenceType"
    enum="SoftwareReporterSequenceType">
  <owner>ftirelo@chromium.org</owner>
  <summary>
    Indicates the type of a reporter sequence run on the user system. Logged
    when the sequence is scheduled to start.
  </summary>
</histogram>

<histogram name="SoftwareReporter.RunningTime" units="ms">
  <owner>alito@chromium.org</owner>
  <summary>
    The amount of time it took to run the software reporter tool as reported by
    the tool itself via the registry. Logged just after the software reporter
    tool has finished.
  </summary>
</histogram>

<histogram name="SoftwareReporter.RunningTimeAccordingToChrome" units="ms">
  <owner>alito@chromium.org</owner>
  <summary>
    The amount of time it took for the software reporter to run as measured by
    chrome. Logged just after the software reporter tool has finished.
  </summary>
</histogram>

<histogram name="SoftwareReporter.RunningTimeRegistryError"
    enum="SwReporterRunningTimeRegistryError">
  <owner>alito@chromium.org</owner>
  <summary>
    Error encountered when reading the software reporter tool's start and end
    times from the registry.
  </summary>
</histogram>

<histogram name="SoftwareReporter.ScannerLogsAcceptance" enum="BooleanAccepted">
  <owner>ftirelo@chromium.org</owner>
  <summary>
    Whether the user accepted to upload scanner logs from Chrome Cleanup Tool.
    This is logged when the user starts a scan for the Settings page and is only
    logged for user-initiated cleanups.
  </summary>
</histogram>

<histogram name="SoftwareReporter.Step" enum="SwReporterStep">
  <owner>mad@chromium.org</owner>
  <summary>
    The registration and execution steps for the software reporter.
  </summary>
</histogram>

<histogram name="SoftwareReporter.TaggedProfileForResetting" enum="Boolean">
  <owner>ftirelo@chromium.org</owner>
  <summary>
    Registers when a profile is tagged for settings reset before a run of the
    Chrome Cleanup Tool.
  </summary>
</histogram>

<histogram name="SoftwareReporter.UploadFailureCount">
  <owner>mad@chromium.org</owner>
  <summary>
    The total count of SRT log upload failures experienced by this machine for
    all time. This value is reported at startup by Chrome and is capped at 64.
  </summary>
</histogram>

<histogram name="SoftwareReporter.UploadLongestFailureRun">
  <owner>mad@chromium.org</owner>
  <summary>
    The longest run of upload failures logged by SRT runs. This value is
    reported at startup by Chrome and is capped at 64.
  </summary>
</histogram>

<histogram name="SoftwareReporter.UploadSuccessCount">
  <owner>mad@chromium.org</owner>
  <summary>
    The total count of successful SRT log uploads experienced by this machine
    for all time. This value is reported at startup by Chrome and is capped at
    64.
  </summary>
</histogram>

<histogram name="SpecialLocale.PromotionDialog" enum="SpecialLocalePromoAction">
  <owner>ianwen@chromium.org</owner>
  <summary>
    Records how users interact with the special locale promotion dialog.
  </summary>
</histogram>

<histogram name="Spellcheck.Android.Available" enum="BooleanAvailable">
  <owner>timvolodine@chromium.org</owner>
  <summary>
    Whether the Android spellchecking service was available at the start of a
    new spellchecking session. Note that the user can disable the Android
    spellchecking service in settings, in which case it will show up as not
    available in the histogram.
  </summary>
</histogram>

<histogram name="SpellCheck.Android.Latency" units="ms">
  <owner>timvolodine@chromium.org</owner>
  <summary>
    Measures the amount of time it takes to receive results from the
    spellchecking service on Android. More precisely this is the
    SystemClock.elapsedRealtime() between the
    SpellCheckerSession.getSentenceSuggestions() and the invocation of the
    onGetSentenceSuggestions() callback.
  </summary>
</histogram>

<histogram name="SpellCheck.SpellingService.Enabled" enum="BooleanEnabled">
  <owner>groby@chromium.org</owner>
  <summary>
    Whether the user has opted in to asking Google for spelling suggestions.
    Recorded both when spelling is initialized and when the preference is
    changed.
  </summary>
</histogram>

<histogram name="Sqlite.AppCache.Error" enum="SqliteErrorCode">
  <obsolete>
    Moved to Sqlite.Error.AppCache in M-27.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Error codes returned by sqlite for the appcache db.</summary>
</histogram>

<histogram name="Sqlite.AutoCommitTime" units="ms">
  <obsolete>
    Removed in M74.
  </obsolete>
  <owner>costan@google.com</owner>
  <summary>
    Record times for INSERT/UPDATE/DELETE statements run outside of an explicit
    transaction.
  </summary>
</histogram>

<histogram name="Sqlite.CloseFailure" enum="SqliteErrorCode">
  <owner>costan@google.com</owner>
  <summary>Error which prevented database close.</summary>
</histogram>

<histogram name="Sqlite.CommitTime" units="ms">
  <obsolete>
    Removed in M74.
  </obsolete>
  <owner>costan@google.com</owner>
  <summary>Record time spent in explicit COMMIT statements.</summary>
</histogram>

<histogram name="Sqlite.Cookie.Error" enum="SqliteErrorCode">
  <obsolete>
    Moved to Sqlite.Error.Cookie in M-27.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Error codes returned by sqlite the cookie db.</summary>
</histogram>

<histogram name="Sqlite.DatabaseTracker.Error" enum="SqliteErrorCode">
  <obsolete>
    Moved to Sqlite.Error.DatabaseTracker in M-27.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Error codes returned by sqlite the websqldb tracker db.</summary>
</histogram>

<histogram name="Sqlite.DeprecationVersionResult"
    enum="SqliteVersionDeprecation">
  <owner>costan@google.com</owner>
  <summary>
    Annotations for which bits of sql::MetaTable::CheckDeprecated() fire.
  </summary>
</histogram>

<histogram name="Sqlite.DomainBoundCerts.Error" enum="SqliteErrorCode">
  <obsolete>
    Moved to Sqlite.Error.DomainBoundCerts in M-27.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Error codes returned by sqlite for the domain-bound certs db.
  </summary>
</histogram>

<histogram name="Sqlite.DomStorageDatabase.Error" enum="SqliteErrorCode">
  <obsolete>
    Moved to Sqlite.Error.DomStorageDatabase in M-27.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Error codes returned by sqlite for the domstorage db.</summary>
</histogram>

<histogram name="Sqlite.Error" enum="SqliteErrorCode">
  <owner>costan@google.com</owner>
  <summary>SQLite extended error codes.</summary>
</histogram>

<histogram name="Sqlite.Error.IOERR" enum="SqliteIOERRCode">
  <obsolete>
    Replaced 5/14/2013 by expanded Sqlite.Error histogram.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>SQLite extended SQLITE_IOERR codes for all databases.</summary>
</histogram>

<histogram name="Sqlite.History.Error" enum="SqliteErrorCode">
  <obsolete>
    Moved to Sqlite.Error.History in M-27.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Error codes returned by sqlite for the history db.</summary>
</histogram>

<histogram name="Sqlite.MemoryKB.OneDay" units="KB">
  <owner>costan@google.com</owner>
  <summary>
    SQLite memory footprint from sqlite3_memory_used() recorded 1 day after
    first database is opened by sql::Database.
  </summary>
</histogram>

<histogram name="Sqlite.MemoryKB.OneHour" units="KB">
  <owner>costan@google.com</owner>
  <summary>
    SQLite memory footprint from sqlite3_memory_used() recorded 1 hour after
    first database is opened by sql::Database.
  </summary>
</histogram>

<histogram name="Sqlite.MemoryKB.OneWeek" units="KB">
  <owner>costan@google.com</owner>
  <summary>
    SQLite memory footprint from sqlite3_memory_used() recorded 1 week after
    first database is opened by sql::Database.
  </summary>
</histogram>

<histogram name="Sqlite.MemoryKB.TenMinutes" units="KB">
  <owner>costan@google.com</owner>
  <summary>
    SQLite memory footprint from sqlite3_memory_used() recorded 10 minutes after
    first database is opened by sql::Database.
  </summary>
</histogram>

<histogram name="Sqlite.Migration.History" units="ms">
  <owner>costan@google.com</owner>
  <summary>
    Time used to migrate History database schema to a new version.
  </summary>
</histogram>

<histogram name="Sqlite.OpenFailure" enum="SqliteErrorCode">
  <owner>costan@google.com</owner>
  <summary>Error which prevented database open.</summary>
</histogram>

<histogram name="Sqlite.OpenProbeFailure" enum="SqliteErrorCode">
  <owner>costan@google.com</owner>
  <summary>Error from first read of the database.</summary>
</histogram>

<histogram name="Sqlite.QueryTime" units="ms">
  <obsolete>
    Removed in M74.
  </obsolete>
  <owner>costan@google.com</owner>
  <summary>Record times for all statements run against the database.</summary>
</histogram>

<histogram name="Sqlite.Quota.Error" enum="SqliteErrorCode">
  <obsolete>
    Moved to Sqlite.Error.Quota in M-27.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Error codes returned by sqlite for the quota db.</summary>
</histogram>

<histogram name="Sqlite.RazeDatabase" enum="SqliteErrorCode">
  <owner>costan@google.com</owner>
  <summary>Errors attempting to Raze() database.</summary>
</histogram>

<histogram name="Sqlite.RazeDatabase2" enum="SqliteErrorCode">
  <owner>costan@google.com</owner>
  <summary>Errors on second attempt to Raze() database.</summary>
</histogram>

<histogram name="Sqlite.RazeDatabaseTruncate" enum="SqliteErrorCode">
  <owner>costan@google.com</owner>
  <summary>Errors truncating database for Raze().</summary>
</histogram>

<histogram name="Sqlite.RecoveryAttachError" enum="SqliteErrorCode">
  <owner>costan@google.com</owner>
  <summary>
    SQLite error code from failed ATTACH in sql::Recovery::Init().
  </summary>
</histogram>

<histogram name="Sqlite.RecoveryEvents" enum="SqliteRecoveryEventEnum">
  <owner>costan@google.com</owner>
  <summary>
    Records specific failure and success cases in sql::Recovery implementation,
    to determine which cases warrant further development. This histogram tracks
    detected errors, some of which may cause multiple results. See recovery.cc
    for details.
  </summary>
</histogram>

<histogram name="Sqlite.RecoveryHandle" enum="SqliteErrorCode">
  <owner>costan@google.com</owner>
  <summary>Error from sqlite3_backup_init() in sql::Recovery.</summary>
</histogram>

<histogram name="Sqlite.RecoveryStep" enum="SqliteErrorCode">
  <owner>costan@google.com</owner>
  <summary>Error from sqlite3_backup_step() in sql::Recovery.</summary>
</histogram>

<histogram name="Sqlite.SizeKB" units="Kb">
  <owner>peria@chromium.org</owner>
  <owner>costan@google.com</owner>
  <summary>Size in kilobytes of pre-existing database at startup.</summary>
</histogram>

<histogram name="Sqlite.Stats" enum="SqliteStatsEnum">
  <obsolete>
    Deprecated in favor of Sqlite.Stats2 in M74.
  </obsolete>
  <owner>costan@google.com</owner>
  <summary>Stats for different API calls in sql/.</summary>
</histogram>

<histogram name="Sqlite.Stats2" enum="SqliteStats2Enum">
  <owner>pwnall@chromium.org</owner>
  <summary>
    SQLite failures encountered by //sql code. Intended to be viewed using
    unique user counts. SQLite errors should be caused by media failures (random
    variable with fairly low probability) or bad A/V software (not random, but
    hopefully low enough that we can pretend it is).
  </summary>
</histogram>

<histogram name="Sqlite.Text.Error" enum="SqliteErrorCode">
  <obsolete>
    Moved to Sqlite.Error.Text in M-27.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Error codes returned by sqlite the full text db.</summary>
</histogram>

<histogram name="Sqlite.Thumbnail.Error" enum="SqliteErrorCode">
  <obsolete>
    Moved to Sqlite.Error.Thumbnail in M-27.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Error codes returned by sqlite for the thumbnail db.</summary>
</histogram>

<histogram name="Sqlite.UpdateTime" units="ms">
  <obsolete>
    Removed in M74.
  </obsolete>
  <owner>costan@google.com</owner>
  <summary>
    Record times for statements which could update the database file. Includes
    commit and autocommit time.
  </summary>
</histogram>

<histogram name="Sqlite.Version">
  <owner>costan@google.com</owner>
  <summary>Version of pre-existing database at startup.</summary>
</histogram>

<histogram name="Sqlite.Vfs" units="bytes">
  <obsolete>
    Removed 2018/02/06.
  </obsolete>
  <owner>shess@chromium.org</owner>
  <summary>
    Buffer sizes passed to browser-process SQLite VFS functions.
  </summary>
</histogram>

<histogram name="Sqlite.Vfs_Events" enum="SqliteVfsEvents">
  <obsolete>
    Removed 2018/02/06.
  </obsolete>
  <owner>shess@chromium.org</owner>
  <summary>
    I/O operations measured by browser-process SQLite VFS wrapper.
  </summary>
</histogram>

<histogram name="Sqlite.Web.Error" enum="SqliteErrorCode">
  <obsolete>
    Moved to Sqlite.Error.Web in M-27.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Error codes returned by sqlite the web db.</summary>
</histogram>

<histogram name="sri.resource_integrity_mismatch_event"
    enum="SRIResourceIntegrityMismatchEvent">
  <obsolete>
    Removed 07/2017. Reference: crbug.com/708041
  </obsolete>
  <owner>jww@chromium.org</owner>
  <summary>
    When resources are checked for mismatching integrity and whether the
    mismatch forces a refetch.
  </summary>
</histogram>

<histogram name="SSL.CertificateErrorHelpCenterVisited"
    enum="SSLErrorLearnMoreNavigationResult">
  <owner>carlosil@chromium.org</owner>
  <summary>
    When the &quot;Learn more&quot; link on an SSL interstitial is clicked, this
    histogram records if the navigation succeded, if it failed with an
    interstitial, or if it failed with a different error.
  </summary>
</histogram>

<histogram name="SSL.CertificateErrorReportEvent"
    enum="CertificateErrorReportEvent">
  <owner>meacer@chromium.org</owner>
  <summary>
    Users can opt in to send reports of certificate validation errors to Google.
    This records the outcome whenever Chrome sends such a report.

    Some certificate validation reports might not be received because proxies,
    firewalls or other content filters might filter report uploads.
  </summary>
</histogram>

<histogram name="SSL.CertificateErrorReportFailure" enum="NetErrorCodes">
  <owner>estark@chromium.org</owner>
  <summary>
    Users can opt in to send reports of certificate validation errors to Google.
    This records the error code whenever Chrome fails to send such a report.
  </summary>
</histogram>

<histogram name="SSL.ExpectCTReportFailure" enum="NetErrorCodes">
  <obsolete>
    Deprecated as of 07/2016. Replaced with SSL.ExpectCTReportFailure2.
  </obsolete>
  <owner>estark@chromium.org</owner>
  <summary>
    Sites can opt in to Expect CT, a reporting feature that sends a report
    whenever a TLS connection does not have valid Certificate Transparency
    information associated with it. This records the error code when Chrome
    fails to send an Expect CT report.
  </summary>
</histogram>

<histogram name="SSL.ExpectCTReportFailure2" enum="NetErrorCodes">
  <owner>estark@chromium.org</owner>
  <summary>
    Sites can opt in to Expect CT, a reporting feature that sends a report
    whenever a TLS connection does not have valid Certificate Transparency
    information associated with it. This records the error code when Chrome
    fails to send an Expect CT report.
  </summary>
</histogram>

<histogram name="SSL.ExpectCTReportSendingAttempt">
  <owner>estark@chromium.org</owner>
  <summary>
    Sites can opt in to Expect CT, a reporting feature that sends a report
    whenever a TLS connection does not have valid Certificate Transparency
    information associated with it. This metric fires whenever Chrome attempts
    to send an Expect CT report.
  </summary>
</histogram>

<histogram name="SSL.InsecureContent" enum="InsecureContentType">
  <owner>estark@chromium.org</owner>
  <summary>
    Keeps track of various insecure content events, such as loading an HTTP
    script from an HTTPS page.
  </summary>
</histogram>

<histogram name="SSL.MarkHttpAsStatus" enum="MarkHttpAsStatus">
  <obsolete>
    Deprecated December 2017 (M65). This information in this histogram can be
    found in LoginCustomFlags (for users who have set a flag) or by filtering to
    users with the MarkHttpAs feature enabled (for seeing the field trial
    breakdown).
  </obsolete>
  <owner>estark@chromium.org</owner>
  <owner>felt@chromium.org</owner>
  <summary>
    Reports whether the user has selected to mark HTTP origins with an
    experimental UI treatment (such as showing a warning on HTTP pages that
    collect sensitive information). This histogram is recorded whenever the
    security level (the overall security state of a page, roughly corresponding
    to the lock icon) is computed for an HTTP page.
  </summary>
</histogram>

<histogram name="SSL.MarkNonSecureAsStatus" enum="MarkNonSecureAsStatus">
  <obsolete>
    Deprecated 09/2016 and replaced with SSL.MarkHttpAsStatus.
  </obsolete>
  <owner>palmer@chromium.org</owner>
  <summary>
    Reports whether the user has selected to mark non-secure origins as Neutral
    (the status quo), Dubious, or Non-Secure.
  </summary>
</histogram>

<histogram name="SSL.MixedContentShown" enum="MixedContentType">
  <owner>carlosil@chromium.org</owner>
  <summary>Tracks when mixed content is displayed or run.</summary>
</histogram>

<histogram name="SSORecallPromo.AccountsAvailable">
  <owner>msarda@chromium.org</owner>
  <summary>
    Number of accounts available for Single Sign On with the current device,
    recorded at the time the SSO Promo is shown.
  </summary>
</histogram>

<histogram name="SSORecallPromo.PromoAction" enum="SSOPromoUserAction">
  <owner>msarda@chromium.org</owner>
  <summary>
    Action the user takes when the Single Sign On promotion is shown.
  </summary>
</histogram>

<histogram name="SSORecallPromo.PromoSeenCount">
  <owner>msarda@chromium.org</owner>
  <summary>
    Number of times the promotion has been seen on the current device.
  </summary>
</histogram>

<histogram name="Stability.Android.PendingMinidumpsOnStartup" units="minidumps">
  <obsolete>
    Deprecated in M60. Roughly 50% of Chrome startups that had *any* pending
    minidumps had at least one pending minidump without any logcat output. About
    5% had multiple minidumps without any logcat output.
  </obsolete>
  <owner>isherman@chromium.org</owner>
  <summary>
    The number of un-uploaded minidumps present in the Android Crash Reports
    directory. Each minidump file (should) correspond to a crash. This is
    recorded on startup, just prior to initiating uploading for these minidumps.
    This is intended as a temporary metric, to be removed around M60:
    http://crbug.com/699785
  </summary>
</histogram>

<histogram name="Stability.Android.PendingMinidumpsOnStartup.SansLogcat"
    units="minidumps">
  <obsolete>
    Deprecated in M60. Roughly 50% of Chrome startups that had *any* pending
    minidumps had at least one pending minidump without any logcat output. About
    5% had multiple minidumps without any logcat output.
  </obsolete>
  <owner>isherman@chromium.org</owner>
  <summary>
    The number of un-uploaded minidumps present in the Android Crash Reports
    directory that do not yet have logcat output attached. Each minidump file
    (should) correspond to a crash. This is recorded on startup, just prior to
    initiating uploading for all pending minidumps. This is intended as a
    temporary metric, to be removed around M60: http://crbug.com/699785
  </summary>
</histogram>

<histogram name="Stability.Android.ProcessedCrashCounts"
    enum="AndroidProcessedCrashCounts">
  <owner>boliu@chromium.org</owner>
  <summary>
    Individual enum counts specific conditions of child process terminations.
    There are too many individual states to enumerate into a single histogram,
    so this effectively does the aggregration that normally happens on the
    server side in the client instead. The benefit is this is easily extensible
    in the future, and downside is that it does not allow additional server side
    analysis. Note a single child process termination may fall into multiple
    enums.
  </summary>
</histogram>

<histogram name="Stability.Android.ProcessedMinidumps"
    enum="AndroidProcessedMinidumps" expires_after="M76">
  <owner>mheikal@chromium.org</owner>
  <owner>smaier@chromium.org</owner>
  <owner>wnwen@chromium.org</owner>
  <summary>
    Records the number of minidumps processed by Crashpad, split by process
    type. This metric is similar to one that could be computed server-side based
    on received crash uploads; but the client-side metric also includes any
    minidumps that were not successfully uploaded.
  </summary>
</histogram>

<histogram name="Stability.Android.RendererCrash" enum="Boolean">
  <owner>wnwen@chromium.org</owner>
  <summary>
    Counts renderer crashes including OOMs. Android only. Mirrors old stability
    proto renderer crashes.
  </summary>
</histogram>

<histogram name="Stability.Android.StrongBindingOomRemainingBindingState"
    enum="Android.ChildProcessBindingStateCombination">
  <owner>boliu@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    Record the state of child service bindings left when a child service with
    strong binding is OOM killed by Android. Recorded when such a OOM kill is
    detected by browser. Note this does not distinguish process type, and is for
    example recorded for both GPU and renderer process.
  </summary>
</histogram>

<histogram name="Stability.Android.StrongBindingOomRemainingStrongBindingCount">
  <owner>boliu@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    Record the count of strongly bound child services left when a child service
    with strong binding is OOM killed by Android. Recorded when such a OOM kill
    is detected by browser. Note this does not distinguish process type, and is
    for example count both GPU and renderer process.
  </summary>
</histogram>

<histogram name="Stability.BadMessageTerminated.Chrome"
    enum="BadMessageReasonChrome">
  <owner>nick@chromium.org</owner>
  <owner>jamescook@chromium.org</owner>
  <summary>
    Count of processes killed by chrome/browser because they sent an IPC that
    couldn't be properly handled. Categories are the reasons (code locations)
    for the kills.
  </summary>
</histogram>

<histogram name="Stability.BadMessageTerminated.Content"
    enum="BadMessageReasonContent">
  <owner>jam@chromium.org</owner>
  <owner>jamescook@chromium.org</owner>
  <summary>
    Count of child processes killed because they sent an IPC that couldn't be
    properly handled. Categories are the reasons (code locations) for the kills.
  </summary>
</histogram>

<histogram name="Stability.BadMessageTerminated.Extensions"
    enum="BadMessageReasonExtensions">
  <owner>jamescook@chromium.org</owner>
  <summary>
    Count of extension processes killed because they sent an IPC that couldn't
    be properly handled. Categories are the reasons (code locations) for the
    kills.
  </summary>
</histogram>

<histogram name="Stability.BadMessageTerminated.GuestView"
    enum="BadMessageReasonGuestView">
  <owner>mcnee@chromium.org</owner>
  <summary>
    Count of processes killed because they sent a bad IPC that couldn't be
    properly handled. Categories are the reasons (code locations) for the kills.
  </summary>
</histogram>

<histogram name="Stability.BadMessageTerminated.NaCl"
    enum="BadMessageReasonNaCl">
  <owner>nick@chromium.org</owner>
  <owner>jamescook@chromium.org</owner>
  <summary>
    Count of processes killed because they sent a NaCl IPC that couldn't be
    properly handled. Categories are the reasons (code locations) for the kills.
  </summary>
</histogram>

<histogram name="Stability.BadMessageTerminated.PasswordManager"
    enum="BadMessageReasonPasswordManager">
  <owner>nick@chromium.org</owner>
  <owner>jamescook@chromium.org</owner>
  <summary>
    Count of processes killed because they sent a bad IPC that couldn't be
    properly handled. Categories are the reasons (code locations) for the kills.
  </summary>
</histogram>

<histogram name="Stability.BrowserExitCodes" enum="WindowsExitCode">
  <owner>siggi@chromium.org</owner>
  <summary>
    Records the exit code of the browser process (on Windows) from the previous
    launch. On crash, the exit code will indicate the exception code of the
    crash. This is emitted in stability data with the first report on a
    subsequent launch. Note: Due to https://crbug.com/805754, the enum labels
    for RESULT_CODE_* are off by 1 for M56 and earlier.
  </summary>
</histogram>

<histogram name="Stability.ChildFrameCrash.ShownAfterCrashingReason"
    enum="ShownAfterCrashingReason">
  <owner>alexmos@chromium.org</owner>
  <owner>boliu@chromium.org</owner>
  <owner>lukasza@chromium.org</owner>
  <summary>
    Logs the reason that a crashed subframe was shown. Logged at most once per
    crash, and only if the subframe was hidden when it crashed and became
    visible later.
  </summary>
</histogram>

<histogram name="Stability.ChildFrameCrash.Visibility" enum="CrashVisibility">
  <owner>boliu@chromium.org</owner>
  <owner>lfg@chromium.org</owner>
  <owner>lukasza@chromium.org</owner>
  <summary>
    Logged after detecting that a sad subframe is shown (logged at most once per
    crash).
  </summary>
</histogram>

<histogram name="Stability.CrashedProcessAge.Extension" units="ms">
  <owner>lukasza@chromium.org</owner>
  <summary>
    The age of a crashed extension process. Not logged on iOS. Logged together
    with CrashExitCodes.Extension.
  </summary>
</histogram>

<histogram name="Stability.CrashedProcessAge.Renderer" units="ms">
  <owner>lukasza@chromium.org</owner>
  <summary>
    The age of a crashed extension process. Not logged on iOS. Logged together
    with CrashExitCodes.Renderer.
  </summary>
</histogram>

<histogram name="Stability.ExitFunnel" units="ms">
  <owner>siggi@chromium.org</owner>
  <summary>
    Temporary instrumentation to record the Windows browser's exit path. See
    http://crbug.com/412384.
  </summary>
</histogram>

<histogram name="Stability.Internals.DataDiscardCount" units="counts">
  <owner>siggi@chromium.org</owner>
  <summary>
    Number of times stability data was discarded. This is accumulated since the
    last report, even across versions. This is logged during stability metric
    recording for the following log sent.
  </summary>
</histogram>

<histogram name="Stability.Internals.InitialStabilityLogDeferredCount"
    units="counts">
  <owner>siggi@chromium.org</owner>
  <summary>
    Number of times the initial stability log upload was deferred to the next
    startup. This is logged during stability metric recording for the following
    log sent.
  </summary>
</histogram>

<histogram name="Stability.Internals.SystemCrashCount" units="crashes">
  <owner>siggi@chromium.org</owner>
  <summary>
    Number of times a browser crash was detected, where the browser was last
    known to be alive in a Windows system session that terminated abnormally.
  </summary>
</histogram>

<histogram name="Stability.Internals.VersionMismatchCount" units="counts">
  <owner>siggi@chromium.org</owner>
  <summary>
    Number of times the version number stored in prefs did not match the
    serialized system profile version number. This is logged during stability
    metric recording.
  </summary>
</histogram>

<histogram name="Stability.MobileSessionShutdownType"
    enum="MobileSessionShutdownType">
  <owner>pkl@chromium.org</owner>
  <owner>olivierrobin@chromium.org</owner>
  <summary>
    Type of the shutdown. This histogram is recorded at startup and logs a
    sample for the previous session. A clean shutdown is one where the app
    enters the background before being killed. Other shutdowns are all some sort
    of crash. The absence of a crash log indicates that the app was killed by
    the OS, normally due to memory pressure. If memory pressure is extremely
    high, the app may not have had a chance to response to a memory warning
    before being killed. For first launch after upgrade, the crash reports may
    be discarded before this histogram is written to so it's not possible to
    determine if there's a valid crash log present or not.
  </summary>
</histogram>

<histogram name="Stability.RendererUnresponsiveBeforeTermination"
    enum="BooleanUnresponsive">
  <owner>dtapuska@chromium.org</owner>
  <summary>
    If the renderer is considered unresponsive from the browser's perspective
    before the process is terminated. This metric is being used to figure out
    crash reports that have all idle threads and perhaps the process is being
    terminated when it shouldn't be. crbug.com/615090.
  </summary>
</histogram>

<histogram name="StackSamplingProfiler.DeserializeAllPendingProfilesTime"
    units="ms" expires_after="2019-05-21">
  <owner>chengx@chromium.org</owner>
  <owner>wittman@chromium.org</owner>
  <summary>
    Amount of time taken to deserialize all pending call stack profiles.
  </summary>
</histogram>

<histogram name="StackSamplingProfiler.ProfileDeserializationTime" units="ms"
    expires_after="2019-01-24">
  <obsolete>
    Removed 11/2018 as we no longer record this metric.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <owner>wittman@chromium.org</owner>
  <summary>
    Amount of time taken to deserialize a call stack profile string.
  </summary>
</histogram>

<histogram name="StackSamplingProfiler.ProfileSerializationTime" units="ms"
    expires_after="2019-01-24">
  <obsolete>
    Removed 11/2018 as we no longer record this metric.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <owner>wittman@chromium.org</owner>
  <summary>Amount of time taken to serialize a call stack profile.</summary>
</histogram>

<histogram name="Stars.BookmarksBar_Active_Clip_Count"
    expires_after="2019-01-30">
  <owner>accamed@google.com</owner>
  <summary>
    Logs the approx number of clips when the bookmarks bar view is activated.
  </summary>
</histogram>

<histogram name="Stars.Clipper_Folio_Selected_Depth_Count"
    expires_after="2019-01-30">
  <owner>accamed@google.com</owner>
  <summary>
    Logs the depth of a folio when it is selected in the clipper.
  </summary>
</histogram>

<histogram name="Stars.Clipper_Folio_Selected_Visible_Folio_Count"
    expires_after="2019-01-30">
  <owner>accamed@google.com</owner>
  <summary>
    Logs the number of folios visible when a folio is selected in the clipper.
  </summary>
</histogram>

<histogram name="Stars.Clipper_Open_Folio_Count" expires_after="2019-01-30">
  <owner>accamed@google.com</owner>
  <summary>
    Logs the approx number of folios when the clipper is opened.
  </summary>
</histogram>

<histogram name="Stars.Folio_Active_Clip_Count" expires_after="2019-01-30">
  <owner>accamed@google.com</owner>
  <summary>
    Logs the approx number of clips when the folio view is activated.
  </summary>
</histogram>

<histogram name="Stars.Goog_Related" units="%" expires_after="2019-01-30">
  <owner>yefim@chromium.org</owner>
  <summary>
    Percentage of clips with Google related urls (points to internal Google
    resources). Logs every time user goes to chrome://bookmarks.
  </summary>
</histogram>

<histogram name="Stars.Goog_Related_20_Percent" units="%"
    expires_after="2019-01-30">
  <owner>yefim@chromium.org</owner>
  <summary>
    Percentage of clips with Google related urls within first 20 (points to
    internal Google resources). Logs every time user goes to chrome://bookmarks.
  </summary>
</histogram>

<histogram name="Stars.Images_Percent" units="%" expires_after="2019-01-30">
  <owner>yefim@chromium.org</owner>
  <summary>
    Percentage of clips with images. Logs every time user goes to
    chrome://bookmarks.
  </summary>
</histogram>

<histogram name="Stars.Images_Percent_First20" units="%"
    expires_after="2019-01-30">
  <owner>yefim@chromium.org</owner>
  <summary>
    Percentage of clips with images within first 20. Logs every time user goes
    to chrome://bookmarks.
  </summary>
</histogram>

<histogram name="Stars.Launch_Bookmark_BookmarksBar_Clip_Count"
    expires_after="2019-01-30">
  <owner>accamed@google.com</owner>
  <summary>
    Logs the approx number of clips when a bookmark is launched from the
    bookmarks bar view.
  </summary>
</histogram>

<histogram name="Stars.Launch_Bookmark_Folio_Clip_Count"
    expires_after="2019-01-30">
  <owner>accamed@google.com</owner>
  <summary>
    Logs the approx number of clips when a bookmark is launched from the folio
    view.
  </summary>
</histogram>

<histogram name="Stars.Launch_Bookmark_Search_Clip_Count"
    expires_after="2019-01-30">
  <owner>accamed@google.com</owner>
  <summary>
    Logs the approx number of clips when a bookmark is launched from the search
    view.
  </summary>
</histogram>

<histogram name="Stars.Launch_Bookmark_SmartGroup_Clip_Count"
    expires_after="2019-01-30">
  <owner>accamed@google.com</owner>
  <summary>
    Logs the approx number of clips when a bookmark is launched from the smart
    group view.
  </summary>
</histogram>

<histogram name="Stars.Launch_Bookmark_Timeline_Clip_Count"
    expires_after="2019-01-30">
  <owner>accamed@google.com</owner>
  <summary>
    Logs the approx number of clips when a bookmark is launched from the
    timeline view.
  </summary>
</histogram>

<histogram name="Stars.LaunchLocation" enum="StarsLaunchLocation"
    expires_after="2019-01-30">
  <owner>lpromero@chromium.org</owner>
  <summary>
    Logs every time a bookmark is launched from an assortment of different UI
    surfaces with Stars, the new bookmarks UI.
  </summary>
</histogram>

<histogram name="Stars.No_Images_Snippets" units="%" expires_after="2019-01-30">
  <owner>yefim@chromium.org</owner>
  <summary>
    Percentage of clips without images or snippets. Logs every time user goes to
    chrome://bookmarks.
  </summary>
</histogram>

<histogram name="Stars.No_Img_No_Snippet_20_Percent" units="%"
    expires_after="2019-01-30">
  <owner>yefim@chromium.org</owner>
  <summary>
    Percentage of clips without images or snippets within first 20. Logs every
    time user goes to chrome://bookmarks.
  </summary>
</histogram>

<histogram name="Stars.Number_Of_Nodes" expires_after="2019-01-30">
  <owner>yefim@chromium.org</owner>
  <summary>
    Logs number of bookmark nodes every time stars extension is loaded.
  </summary>
</histogram>

<histogram name="Stars.Profile_Active_Clip_Count" expires_after="2019-01-30">
  <owner>accamed@google.com</owner>
  <summary>
    Logs the approx number of clips when the profile view is activated.
  </summary>
</histogram>

<histogram name="Stars.PromoActions" enum="StarsPromoActions"
    expires_after="2019-01-30">
  <owner>jbbegue@chromium.org</owner>
  <summary>
    Count the actions performed by the user on the stars promo panel currently
    only on android and ios.
  </summary>
</histogram>

<histogram name="Stars.SalientImageFound" enum="BooleanStarsSalientImageFound"
    expires_after="2019-01-30">
  <owner>lpromero@chromium.org</owner>
  <summary>
    A boolean that indicates if a salient image was found for a displayed
    bookmark. It is recorded every single time a bookmark is displayed. That
    way, this histogram shows the proportion of bookmarks the user sees with an
    image. This is used only with Stars, the new bookmarks UI.
  </summary>
</histogram>

<histogram name="Stars.Search_Active_Clip_Count" expires_after="2019-01-30">
  <owner>accamed@google.com</owner>
  <summary>
    Logs the approx number of clips when the search view is activated.
  </summary>
</histogram>

<histogram name="Stars.SmartGroup_Active_Clip_Count" expires_after="2019-01-30">
  <owner>accamed@google.com</owner>
  <summary>
    Logs the approx number of clips when the smart group view is activated.
  </summary>
</histogram>

<histogram name="Stars.Timeline_Active_Clip_Count" expires_after="2019-01-30">
  <owner>accamed@google.com</owner>
  <summary>
    Logs the approx number of clips when the timeline view is activated.
  </summary>
</histogram>

<histogram name="Stars.Version" expires_after="2019-01-30">
  <owner>accamed@google.com</owner>
  <summary>Logs the extension version the user is using.</summary>
</histogram>

<histogram name="Startup.AfterStartupTaskCount">
  <owner>michaeln@chromium.org</owner>
  <summary>
    The number of after-startup tasks that were queued prior to startup
    completion and deferred until that time.
  </summary>
</histogram>

<histogram name="Startup.AfterStartupTaskDelayedUntilTime" units="ms">
  <owner>michaeln@chromium.org</owner>
  <summary>
    Time from the process creation until deferred after-startup tasks began
    running.
  </summary>
</histogram>

<histogram base="true" name="Startup.Android.Cold.TimeToFirstContentfulPaint"
    units="ms">
  <owner>pasko@chromium.org</owner>
  <owner>alexilin@chromium.org</owner>
  <summary>
    Android: The time from the activity creation point to the first contentful
    paint of the first loaded page. It's not recorded when the first loaded page
    is non http(s) page like a chrome error page, a new tab page, a blank page.
    It's also not recorded if the application wasn't in the foreground since the
    start till the end of event.
  </summary>
</histogram>

<histogram base="true" name="Startup.Android.Cold.TimeToFirstNavigationCommit"
    units="ms">
  <owner>pasko@chromium.org</owner>
  <owner>alexilin@chromium.org</owner>
  <summary>
    Android: The time from the activity creation point to the moment the first
    navigation is committed, i.e. when renderer gets the first byte of the
    document. It's not recorded when the first loaded page is non http(s) page
    like a chrome error page, a new tab page, a blank page. It's also not
    recorded if the application wasn't in the foreground since the start till
    the end of event.
  </summary>
</histogram>

<histogram name="Startup.Android.Experimental.Cold.TimeToFirstContentfulPaint"
    units="ms">
  <obsolete>
    This metric was deprecated in M68 in favour of
    &quot;Startup.Android.Cold.TimeToFirstContentfulPaint.Tabbed&quot;. It has
    moved out of experimental and records a smaller range of numbers (medium
    times instead of long times). The &quot;.Tabbed&quot; suffix is added since
    the histogram is being tracked for WebApkActivity using the
    &quot;.WebApk&quot; suffix.
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <owner>alexilin@chromium.org</owner>
  <summary>
    Android: The time from the activity creation point to the first contentful
    paint of the first loaded page. It's not recorded when the first loaded page
    is non http(s) page like a chrome error page, a new tab page, a blank page.
    It's also not recorded if the application wasn't in the foreground since the
    start till the end of event.
  </summary>
</histogram>

<histogram name="Startup.Android.Experimental.Cold.TimeToFirstNavigationCommit"
    units="ms">
  <obsolete>
    This metric was deprecated in M68 in favour of
    &quot;Startup.Android.Cold.TimeToFirstNavigationCommit.Tabbed&quot;. It has
    moved out of experimental and records a smaller range of numbers (medium
    times instead of long times). The &quot;.Tabbed&quot; suffix is added since
    the histogram is being tracked for WebApkActivity using the
    &quot;.WebApk&quot; suffix.
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <owner>alexilin@chromium.org</owner>
  <summary>
    Android: The time from the activity creation point to the moment the first
    navigation is committed, i.e. when renderer gets the first byte of the
    document. It's not recorded when the first loaded page is non http(s) page
    like a chrome error page, a new tab page, a blank page. It's also not
    recorded if the application wasn't in the foreground since the start till
    the end of event.
  </summary>
</histogram>

<histogram name="Startup.AppListFirstPaintColdStart" units="ms">
  <obsolete>
    Deprecated 03/2018 with Mash AppList refactoring.
  </obsolete>
  <owner>tapted@chromium.org</owner>
  <summary>
    Time for a newly created browser process to perform the first paint of the
    app launcher, when started with the --show-app-list flag and with no
    currently running Chrome processes.
  </summary>
</histogram>

<histogram name="Startup.AppListFirstPaintWarmStart" units="ms">
  <obsolete>
    Deprecated 03/2018 with Mash AppList refactoring.
  </obsolete>
  <owner>tapted@chromium.org</owner>
  <summary>
    Time for a running browser process to perform the first paint of the app
    launcher. Measured from the time a second Chrome process started, which sent
    its --show-app-list command line argument to the already-running process and
    will soon exit.
  </summary>
</histogram>

<histogram name="Startup.BlockForCrashpadHandlerStartupTime" units="ms">
  <owner>crashpad-dev@chromium.org</owner>
  <summary>
    The amount of time that elapsed during in
    crash_report::BlockUntilHandlerStarted().
  </summary>
</histogram>

<histogram name="Startup.BringToForegroundReason"
    enum="BooleanBringToForegroundReason">
  <owner>peter@chromium.org</owner>
  <summary>
    Records the cause, each time Chrome is brought to the foreground. Currently
    only checks if a NotificationUIManager notification was shown in the last 5
    seconds (includes Web Notifications, but not media or Cast).
  </summary>
</histogram>

<histogram name="Startup.BrowserLaunchURLCount" units="urls">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    Measured when Chrome is invoked, this counts the number of URLs passed via
    command line. Note that this handles the case of a URL passed to Chrome
    starting up, or when a running Chrome is given the message to open a new
    URL.
  </summary>
</histogram>

<histogram name="Startup.BrowserMainRunnerImplInitializeLongTime" units="ms">
  <owner>robliao@chromium.org</owner>
  <summary>
    The amount of time that elapsed during BrowserMainRunnerImpl::Initialize.
  </summary>
</histogram>

<histogram name="Startup.BrowserMainRunnerImplInitializeStep1Time" units="ms">
  <owner>robliao@chromium.org</owner>
  <summary>
    The amount of time that elapsed during the first section of
    BrowserMainRunnerImpl::Initialize.
  </summary>
</histogram>

<histogram name="Startup.BrowserMainRunnerImplInitializeStep2Time" units="ms">
  <owner>robliao@chromium.org</owner>
  <summary>
    The amount of time that elapsed during the second section of
    BrowserMainRunnerImpl::Initialize.
  </summary>
</histogram>

<histogram name="Startup.BrowserMainToRendererMain" units="ms">
  <owner>fdoray@chromium.org</owner>
  <summary>
    Time from the ChromeMain() entry in the browser process to the first
    RendererMain() entry.
  </summary>
</histogram>

<histogram name="Startup.BrowserMessageLoopStart.To.MainNavigationStart"
    units="ms">
  <obsolete>
    Removed 2/2018, as MessageLoopStart is after MainNavigationStart with
    browser-side navigation.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Time between Startup.BrowserMessageLoopStartTime and
    Startup.FirstWebContents.MainNavigationStart. Recorded explicitly to allow
    easy breakdown of Startup.FirstWebContents.MainNavigationStart when
    diagnosing issues.
  </summary>
</histogram>

<histogram name="Startup.BrowserMessageLoopStart.To.NonEmptyPaint2" units="ms">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Time between Startup.BrowserMessageLoopStartTime and
    Startup.FirstWebContents.NonEmptyPaint2. Recorded explicitly to allow easy
    breakdown of Startup.FirstWebContents.NonEmptyPaint2 when diagnosing issues.
  </summary>
</histogram>

<histogram name="Startup.BrowserMessageLoopStartHardFaultCount" units="faults">
  <owner>chrisha@chromium.org</owner>
  <owner>fdoray@chromium.org</owner>
  <summary>
    The number of hard faults incurred in the browser process from startup to
    start of the main thread's message loop, not including first runs of the
    browser. This is only reported on Windows 7 and greater.
  </summary>
</histogram>

<histogram name="Startup.BrowserMessageLoopStartHardFaultCount.FirstRun"
    units="faults">
  <obsolete>
    Removed 1/2016.
  </obsolete>
  <owner>chrisha@chromium.org</owner>
  <summary>
    The number of hard faults incurred in the browser process from startup to
    start of the main thread's message loop on first run. This is only reported
    on Windows 7 and greater.
  </summary>
</histogram>

<histogram name="Startup.BrowserMessageLoopStartHardFaultCount.Success"
    enum="BooleanSuccess">
  <obsolete>
    Deprecated 12/2015. No longer tracked because values collected on stable
    show that the function pretty much never fails (succeeds 99.9996% of the
    time).
  </obsolete>
  <owner>chrisha@chromium.org</owner>
  <owner>fdoray@chromium.org</owner>
  <summary>
    If OS support was detected (Windows 7 and greater) indicates whether it was
    possible to determine the number of hard faults that have occurred in the
    process from startup to start of the main thread's message loop. This can
    fail because the underlying call is inherently racy.
  </summary>
</histogram>

<histogram name="Startup.BrowserMessageLoopStartTime" units="ms">
  <owner>fdoray@chromium.org</owner>
  <summary>
    Time from browser startup to the start of the main thread's message loop.
  </summary>
</histogram>

<histogram name="Startup.BrowserMessageLoopStartTimeFromMainEntry" units="ms">
  <obsolete>
    Deprecated 12/2016. crbug.com/634408
  </obsolete>
  <owner>fdoray@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>
    Time from main entry to the start of the main thread's message loop. This
    stat is only recorded after 7 minutes of OS uptime to try to mitigate the
    variance resulting from Chrome being autostarted. Replaced with
    Startup.BrowserMessageLoopStartTimeFromMainEntry2 which is recorded all the
    time.
  </summary>
</histogram>

<histogram name="Startup.BrowserMessageLoopStartTimeFromMainEntry.FirstRun"
    units="ms">
  <obsolete>
    Deprecated 12/2016. crbug.com/634408
  </obsolete>
  <owner>fdoray@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>
    Time from main entry to the start of the main thread's message loop on first
    run. This stat is only recorded after 7 minutes of OS uptime to try to
    mitigate the variance resulting from Chrome being autostarted. Replaced with
    Startup.BrowserMessageLoopStartTimeFromMainEntry.FirstRun2 which is recorded
    all the time.
  </summary>
</histogram>

<histogram name="Startup.BrowserMessageLoopStartTimeFromMainEntry.FirstRun2"
    units="ms">
  <owner>fdoray@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>
    Time from main entry to the start of the main thread's message loop on first
    run.
  </summary>
</histogram>

<histogram name="Startup.BrowserMessageLoopStartTimeFromMainEntry2" units="ms">
  <obsolete>
    Deprecated 2018-01 in favor of
    Startup.BrowserMessageLoopStartTimeFromMainEntry3 which does not involve a
    conversion from Time to TimeTicks.
  </obsolete>
  <owner>fdoray@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>
    Time from main entry to the start of the main thread's message loop.
  </summary>
</histogram>

<histogram name="Startup.BrowserMessageLoopStartTimeFromMainEntry3" units="ms">
  <owner>fdoray@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>
    Time from main entry to the start of the main thread's message loop.
  </summary>
</histogram>

<histogram name="Startup.BrowserOpenTabs">
  <owner>fdoray@chromium.org</owner>
  <summary>
    Time taken to open the initial tab or to restore tabs from previous session.
  </summary>
</histogram>

<histogram name="Startup.BrowserProcessImpl_PreMainMessageLoopRunTime"
    units="ms">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during
    BrowserProcessImpl::PreMainMessageLoopRun.
  </summary>
</histogram>

<histogram name="Startup.BrowserWindow.FirstPaint" units="ms">
  <owner>mblsha@yandex-team.ru</owner>
  <summary>
    Time from browser startup to the time the first Browser window has finished
    painting its children.
  </summary>
</histogram>

<histogram name="Startup.BrowserWindow.FirstPaint.CompositingEnded" units="ms">
  <owner>mblsha@yandex-team.ru</owner>
  <summary>
    Time from browser startup to the time the GPU has finished compositing after
    first Browser window has finished painting its children. At this point the
    Browser interface is visible on screen. Measures how much time does it take
    for GPU to actually paint the first time.
  </summary>
</histogram>

<histogram name="Startup.BrowserWindowDisplay" units="ms">
  <owner>fdoray@chromium.org</owner>
  <summary>
    Time from browser startup to the time the browser window initially becomes
    visible.
  </summary>
</histogram>

<histogram name="Startup.ChromeCast.TimeToDisplayVideo" units="ms">
  <obsolete>
    Deprecated 7/2015. To be replaced with Cast events.
  </obsolete>
  <owner>jeremy@chromium.org</owner>
  <summary>
    The elapsed time from the ChromeCast application launch to the first video
    frame displayed.
  </summary>
</histogram>

<histogram name="Startup.ColdStartWithExternalURLTime" units="ms">
  <owner>jif@chromium.org</owner>
  <summary>
    The duration of all initializations in a cold start triggered by an external
    URL.
  </summary>
</histogram>

<histogram name="Startup.ColdStartWithoutExternalURLTime" units="ms">
  <owner>jif@chromium.org</owner>
  <summary>
    The duration of all initializations in a cold start not triggered by an
    external URL.
  </summary>
</histogram>

<histogram name="Startup.CreateFirstProfile" units="ms">
  <owner>fdoray@chromium.org</owner>
  <summary>
    How long it takes to load the original profile synchronously on the UI
    thread.
  </summary>
</histogram>

<histogram
    name="Startup.Experimental.FirstWebContents.MainFrameLoad.ManyBuckets"
    units="ms">
  <obsolete>
    Removed in M-41.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    An experimental metric only collected on the dev and canary channels.
    Measure the elapsed time from process launch to the first main frame load of
    the first web contents. Uses significantly more buckets, with reduced
    ranges.
  </summary>
</histogram>

<histogram
    name="Startup.Experimental.FirstWebContents.MainFrameLoad.StandardBuckets"
    units="ms">
  <obsolete>
    Moved to Startup.FirstWebContents.MainFrameLoad in M-41.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    An experimental metric only collected on the dev and canary channels.
    Measure the elapsed time from process launch to the first main frame load of
    the first web contents. Uses standard bucket ranges.
  </summary>
</histogram>

<histogram
    name="Startup.Experimental.FirstWebContents.NonEmptyPaint.ManyBuckets"
    units="ms">
  <obsolete>
    Removed in M-41.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    An experimental metric only collected on the dev and canary channels.
    Measure the elapsed time from process launch to the first non-empty paint of
    the first web contents. Uses significantly more buckets, with reduced
    ranges.
  </summary>
</histogram>

<histogram
    name="Startup.Experimental.FirstWebContents.NonEmptyPaint.StandardBuckets"
    units="ms">
  <obsolete>
    Moved to Startup.FirstWebContents.NonEmptyPaint in M-41.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <summary>
    An experimental metric only collected on the dev and canary channels.
    Measure the elapsed time from process launch to the first non-empty paint of
    the first web contents. Uses standard bucket ranges.
  </summary>
</histogram>

<histogram name="Startup.FirstCommitNavigationTime" units="ms">
  <obsolete>
    Replaced by Startup.FirstCommitNavigationTime2
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <summary>
    [Android only] The time from the earliest entry point in the browser process
    to the moment the first navigation is committed, i.e. when renderer gets the
    first byte of the document.
  </summary>
</histogram>

<histogram name="Startup.FirstCommitNavigationTime2" units="ms">
  <obsolete>
    Replaced with Startup.FirstCommitNavigationTime3 on 6/2017
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <owner>wnwen@chromium.org</owner>
  <summary>
    [Android only] The time from the first foreground entry point in the app to
    the moment the first navigation is committed, i.e. when renderer gets the
    first byte of the document.
  </summary>
</histogram>

<histogram name="Startup.FirstCommitNavigationTime3" units="ms">
  <obsolete>
    Replaced with Startup.Android.Experimental.Cold.TimeToFirstNavigationCommit
    on 11/2017
  </obsolete>
  <owner>pasko@chromium.org</owner>
  <owner>wnwen@chromium.org</owner>
  <summary>
    [Android only] The time from the first foreground entry point in the app to
    the moment the first navigation is committed, i.e. when renderer gets the
    first byte of the document.
  </summary>
</histogram>

<histogram name="Startup.FirstWebContents.FinishReason"
    enum="StartupProfilingFinishReason">
  <owner>gab@chromium.org</owner>
  <summary>
    [Desktop] The reason for which startup profiling was deemed complete. Logged
    once per session on startup.
  </summary>
</histogram>

<histogram name="Startup.FirstWebContents.MainFrameLoad" units="ms">
  <obsolete>
    Deprecated with 3/2016 with M48.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>
    [Desktop] DEPRECATED (but kept as a known basis until M48 is phased out).
    Measure the elapsed time from process launch to the first main frame load of
    the first web contents. Deprecated in favor of
    Startup.FirstWebContents.MainFrameLoad2 which now avoids counting ill-cases
    (ref. FirstWebContentsProfiler::FinishReason).
  </summary>
</histogram>

<histogram name="Startup.FirstWebContents.MainFrameLoad2" units="ms">
  <owner>fdoray@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>
    [Desktop] Measure the elapsed time from process launch to the first main
    frame load of the first web contents. Only comprised of cases where the
    initial foreground tab gets to complete its rendering task unimpeded (an
    improvement over Startup.FirstWebContents.MainFrameLoad).
  </summary>
</histogram>

<histogram name="Startup.FirstWebContents.MainNavigationFinished" units="ms">
  <owner>gab@chromium.org</owner>
  <summary>
    [Desktop] Measure the elapsed time from process launch to the moment when
    the navigation is committed (first bytes received) in the first web
    contents' main frame.
  </summary>
</histogram>

<histogram name="Startup.FirstWebContents.MainNavigationStart" units="ms">
  <owner>gab@chromium.org</owner>
  <summary>
    [Desktop] Measure the elapsed time from process launch to the beginning of
    navigation in the first web contents' main frame.
  </summary>
</histogram>

<histogram name="Startup.FirstWebContents.NonEmptyPaint" units="ms">
  <obsolete>
    Deprecated with 3/2016 with M48.
  </obsolete>
  <owner>erikchen@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>
    [Desktop] DEPRECATED (but kept as a known basis until M48 is phased out).
    Measure the elapsed time from process launch to the first non- empty paint
    of the first web contents. Deprecated in favor of
    Startup.FirstWebContents.NonEmptyPaint2 which now avoids counting ill-cases
    (ref. FirstWebContentsProfiler::FinishReason).
  </summary>
</histogram>

<histogram name="Startup.FirstWebContents.NonEmptyPaint2" units="ms"
    expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->

  <owner>fdoray@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>
    [Desktop] Measure the elapsed time from process launch to the first non-
    empty paint of the first web contents. Only comprised of cases where the
    initial foreground tab gets to complete its rendering task unimpeded (an
    improvement over Startup.FirstWebContents.NonEmptyPaint).
  </summary>
</histogram>

<histogram
    name="Startup.FirstWebContents.RenderProcessHostInit.ToNonEmptyPaint"
    units="ms">
  <owner>hans@chromium.org</owner>
  <summary>
    Time between RenderFrameHostImpl::Init and
    Startup.FirstWebContents.NonEmptyPaint2.
  </summary>
</histogram>

<histogram name="Startup.FirstWebContents.UINotResponsive" units="ms">
  <obsolete>
    Deprecated 10/2015.
  </obsolete>
  <owner>gayane@chromium.org</owner>
  <summary>
    [Desktop] Measures the execution time for a single task to execute on UI if
    it was not possible to execute UI tasks under 1/60s within certain limits,
    after WebContents was painted at least once. This is recorded at most once
    per Chrome launch. Used as a measure of responsiveness on startup.
  </summary>
</histogram>

<histogram name="Startup.FirstWebContents.UINotResponsive_10sec" units="ms">
  <obsolete>
    Deprecated 10/2015.
  </obsolete>
  <owner>gayane@chromium.org</owner>
  <summary>
    [Desktop] Measures the elapsed time for a single task to execute on UI if it
    was not possible to execute it under 1/60s within certain limits, 10 second
    after first WebContents was painted at least once. This is recorded at most
    once per Chrome launch. Used as a measure of responsiveness on startup.
  </summary>
</histogram>

<histogram name="Startup.FirstWebContents.UINotResponsive_1sec" units="ms">
  <obsolete>
    Deprecated 10/2015.
  </obsolete>
  <owner>gayane@chromium.org</owner>
  <summary>
    [Desktop] Measures the elapsed time for a single task to execute on UI if it
    was not possible to execute it under 1/60s within certain limits, 1 second
    after first WebContents was painted at least once. This is recorded at most
    once per Chrome launch. Used as a measure of responsiveness on startup.
  </summary>
</histogram>

<histogram name="Startup.FirstWebContents.UIResponsive" units="ms">
  <obsolete>
    Deprecated 10/2015.
  </obsolete>
  <owner>gayane@chromium.org</owner>
  <summary>
    [Desktop] Measures the elapsed time it takes for a task to execute on UI
    under 1/60s after first WebContents was painted at least once. This is
    recorded at most once per Chrome launch. Used as a measure of responsiveness
    on startup.
  </summary>
</histogram>

<histogram name="Startup.FirstWebContents.UIResponsive_10sec" units="ms">
  <obsolete>
    Deprecated 10/2015.
  </obsolete>
  <owner>gayane@chromium.org</owner>
  <summary>
    [Desktop] Measures the elapsed time it takes for a task to execute on UI
    under 1/60s, 10 second after the first WebContents was painted. This is
    recorded at most once per Chrome launch. Used as a measure of responsiveness
    on startup.
  </summary>
</histogram>

<histogram name="Startup.FirstWebContents.UIResponsive_1sec" units="ms">
  <obsolete>
    Deprecated 10/2015.
  </obsolete>
  <owner>gayane@chromium.org</owner>
  <summary>
    [Desktop] Measures the elapsed time it takes for a task to execute on UI
    under 1/60s, 1 second after the first WebContents was painted. This is
    recorded at most once per Chrome launch. Used as a measure of responsiveness
    on startup.
  </summary>
</histogram>

<histogram name="Startup.Fling.TimeToDisplayVideo" units="ms">
  <obsolete>
    Deprecated 7/2015. To be replaced with Cast events.
  </obsolete>
  <owner>jeremy@chromium.org</owner>
  <summary>
    The elapsed time from the Fling application launch to the first video frame
    displayed.
  </summary>
</histogram>

<histogram name="Startup.IsResume">
  <obsolete>
    Deprecated 12/2011. Merged into MobileSessionStartType.
  </obsolete>
  <owner>jeremy@chromium.org</owner>
  <summary>Whether a startup is a resume (vs a cold start).</summary>
</histogram>

<histogram name="Startup.LoadTime.ExeMainToDllMain">
  <obsolete>
    Deprecated 12/2016. crbug.com/634408
  </obsolete>
  <owner>fdoray@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>
    Time from the main() function in chrome.exe to chrome.dll's main(). This
    stat is only recorded after 7 minutes of OS uptime to try to mitigate the
    variance resulting from Chrome being autostarted. Replaced with
    Startup.LoadTime.ExeMainToDllMain2 which is recorded all the time.
  </summary>
</histogram>

<histogram name="Startup.LoadTime.ExeMainToDllMain2">
  <owner>fdoray@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>
    Time from the main() function in chrome.exe to chrome.dll's main().
  </summary>
</histogram>

<histogram name="Startup.LoadTime.ProcessCreateToDllMain">
  <obsolete>
    Deprecated 12/2016. crbug.com/634408
  </obsolete>
  <owner>fdoray@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>
    Time from the process creation to chrome.dll's main(). This stat is only
    recorded after 7 minutes of OS uptime to try to mitigate the variance
    resulting from Chrome being autostarted. Replaced with
    Startup.LoadTime.ProcessCreateToDllMain2 which is recorded all the time.
  </summary>
</histogram>

<histogram name="Startup.LoadTime.ProcessCreateToDllMain2">
  <owner>fdoray@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>Time from the process creation to chrome.dll's main().</summary>
</histogram>

<histogram name="Startup.LoadTime.ProcessCreateToExeMain">
  <obsolete>
    Deprecated 12/2016. crbug.com/634408
  </obsolete>
  <owner>fdoray@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>
    Time from the process creation to executing the main() function in
    chrome.exe. This stat is only recorded after 7 minutes of OS uptime to try
    to mitigate the variance resulting from Chrome being autostarted. Replaced
    with Startup.LoadTime.ProcessCreateToExeMain2 which is recorded all the
    time.
  </summary>
</histogram>

<histogram name="Startup.LoadTime.ProcessCreateToExeMain2">
  <owner>fdoray@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>
    Time from the process creation to executing the main() function in
    chrome.exe.
  </summary>
</histogram>

<histogram name="Startup.MobileSessionStartAction"
    enum="MobileSessionStartAction">
  <owner>olivierrobin@chromium.org</owner>
  <summary>
    The action requested on the application startup when called from another app
    or the OS.
  </summary>
</histogram>

<histogram name="Startup.MobileSessionStartFromApps"
    enum="MobileSessionCallerApp">
  <owner>olivierrobin@chromium.org</owner>
  <summary>The calling application (if any).</summary>
</histogram>

<histogram name="Startup.OSX.AwakeFromNib" units="ms"
    expires_after="2018-08-30">
  <owner>erikchen@chromium.org</owner>
  <summary>
    The amount of time that elapsed between main entry and the invocation of
    -[AppControllerMac awakeFromNib].
  </summary>
</histogram>

<histogram name="Startup.OSX.DockIconWillFinishBouncing" units="ms">
  <owner>erikchen@chromium.org</owner>
  <summary>
    The amount of time that elapsed between main entry and the invocation of
    -[AppControllerMac didFinishLaunching:]. At that point, the dock icon will
    finish its current animation and stop bouncing.
  </summary>
</histogram>

<histogram name="Startup.OSX.PostMainMessageLoopStart" units="ms">
  <owner>erikchen@chromium.org</owner>
  <summary>
    The amount of time that elapsed between main entry and the invocation of
    ChromeBrowserMainPartsMac::PostMainMessageLoopStart.
  </summary>
</histogram>

<histogram name="Startup.OSX.PostProfileInit" units="ms">
  <owner>erikchen@chromium.org</owner>
  <summary>
    The amount of time that elapsed between main entry and the invocation of
    ChromeBrowserMainPartsMac::PostProfileInit.
  </summary>
</histogram>

<histogram name="Startup.OSX.PreMainMessageLoopStart" units="ms"
    expires_after="2018-08-30">
  <owner>erikchen@chromium.org</owner>
  <summary>
    The amount of time that elapsed between main entry and the invocation of
    ChromeBrowserMainPartsMac::PreMainMessageLoopStart.
  </summary>
</histogram>

<histogram name="Startup.OSX.PreProfileInit" units="ms"
    expires_after="2018-08-30">
  <owner>erikchen@chromium.org</owner>
  <summary>
    The amount of time that elapsed between main entry and the invocation of
    ChromeBrowserMainPartsMac::PreProfileInit.
  </summary>
</histogram>

<histogram name="Startup.OSX.WillFinishLaunching" units="ms"
    expires_after="2018-08-30">
  <owner>erikchen@chromium.org</owner>
  <summary>
    The amount of time that elapsed between main entry and the invocation of
    -[AppControllerMac willFinishLaunching:].
  </summary>
</histogram>

<histogram name="Startup.PreMainMessageLoopRunImplLongTime" units="ms">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during
    ChromeBrowserMainParts::PreMainMessageLoopRunImpl.
  </summary>
</histogram>

<histogram name="Startup.PreMainMessageLoopRunImplStep1Time" units="ms">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during the first untracked section of
    ChromeBrowserMainParts::PreMainMessageLoopRunImpl.
  </summary>
</histogram>

<histogram name="Startup.PreMainMessageLoopRunImplStep2Time" units="ms">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during the second untracked section of
    ChromeBrowserMainParts::PreMainMessageLoopRunImpl. Not written for Android.
  </summary>
</histogram>

<histogram name="Startup.PreMainMessageLoopRunImplStep3Time" units="ms">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during the third untracked section of
    ChromeBrowserMainParts::PreMainMessageLoopRunImpl. Not written for Android.
  </summary>
</histogram>

<histogram name="Startup.PreMainMessageLoopRunImplTime" units="ms">
  <obsolete>
    Deprecated as of 2/2015.
  </obsolete>
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during
    ChromeBrowserMainParts::PreMainMessageLoopRunImpl.
  </summary>
</histogram>

<histogram name="Startup.SameVersionStartupCount">
  <owner>fdoray@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>
    The number of startups the current version has been through. Reported once
    per Chrome session, on startup. Any user that reports X for this version
    will also have previously reported [1,X-1] for this version through the
    previous X-1 Chrome sessions.
  </summary>
</histogram>

<histogram name="Startup.ShowAppListColdStart" units="ms">
  <owner>tapted@chromium.org</owner>
  <summary>
    Time for a newly created browser process to reach the code that starts
    showing the app launcher, when started with the --show-app-list flag and
    with no currently running Chrome processes.
  </summary>
</histogram>

<histogram name="Startup.ShowAppListWarmStart" units="ms">
  <owner>tapted@chromium.org</owner>
  <summary>
    Time for a running browser process to reach the code that starts showing the
    app launcher. Measured from the time a second Chrome process started, which
    sent its --show-app-list command line argument to the already-running
    process and will soon exit.
  </summary>
</histogram>

<histogram name="Startup.SlowStartupBookmarksLoad" units="ms">
  <obsolete>
    Deprecated 06/2015.
  </obsolete>
  <owner>jeremy@chromium.org</owner>
  <summary>
    Time it takes to load bookmarks from disk. This measurement is only sent for
    startups that take &gt;10 seconds after an uptime of 7 minutes.
  </summary>
</histogram>

<histogram name="Startup.SlowStartupExtensionServiceInitAfterImport" units="ms">
  <obsolete>
    Deprecated 06/2015.
  </obsolete>
  <owner>jeremy@chromium.org</owner>
  <summary>
    Time it takes to finish initialization of the extension service including
    loading built-in extensions. This measurement is only sent for startups that
    take &gt;10 seconds after an uptime of 7 minutes.
  </summary>
</histogram>

<histogram name="Startup.SlowStartupFinalProfileInit" units="ms">
  <obsolete>
    Deprecated 06/2015.
  </obsolete>
  <owner>jeremy@chromium.org</owner>
  <summary>
    Time the final stages of profile initialization taking including
    initialization of profile keyed services. This measurement is only sent for
    startups that take &gt;10 seconds after an uptime of 7 minutes.
  </summary>
</histogram>

<histogram name="Startup.SlowStartupNSSInit" units="ms">
  <obsolete>
    Deprecated 06/2015.
  </obsolete>
  <owner>jeremy@chromium.org</owner>
  <summary>
    Time it takes to load the NSS libraries and initialize it. This measurement
    is only sent for startups that take &gt;10 seconds after an uptime of 7
    minutes.
  </summary>
</histogram>

<histogram name="Startup.SlowStartupPreferenceLoading" units="ms">
  <obsolete>
    Deprecated 06/2015.
  </obsolete>
  <owner>jeremy@chromium.org</owner>
  <summary>
    Time it takes to load preferences from disk. This measurement is only sent
    for startups that take &gt;10 seconds after an uptime of 7 minutes.
  </summary>
</histogram>

<histogram name="Startup.SlowStartupProfileIODataInit" units="ms">
  <obsolete>
    Deprecated 06/2015.
  </obsolete>
  <owner>jeremy@chromium.org</owner>
  <summary>
    Time it takes to initialize the ProfileIOData object - this includes
    initialization of the cookie store. This measurement is only sent for
    startups that take &gt;10 seconds after an uptime of 7 minutes.
  </summary>
</histogram>

<histogram name="Startup.SlowStartupSafeBrowsingGetDatabase" units="ms">
  <obsolete>
    Deprecated 06/2015.
  </obsolete>
  <owner>jeremy@chromium.org</owner>
  <summary>
    Time it takes to load the safe browsing database from disk. This measurement
    is only sent for startups that take &gt;10 seconds after an uptime of 7
    minutes.
  </summary>
</histogram>

<histogram name="Startup.SlowStartupSafeBrowsingServiceInitialize" units="ms">
  <obsolete>
    Deprecated 06/2015.
  </obsolete>
  <owner>jeremy@chromium.org</owner>
  <summary>
    Time it takes to initialize the safe browsing service. This measurement is
    only sent for startups that take &gt;10 seconds after an uptime of 7
    minutes.
  </summary>
</histogram>

<histogram name="Startup.SlowStartupSessionServiceCreateTabsAndWindows"
    units="ms">
  <obsolete>
    Deprecated 06/2015.
  </obsolete>
  <owner>jeremy@chromium.org</owner>
  <summary>
    Time it takes for session restore to finish initiating creation of restored
    tabs and windows. This measurement is only sent for startups that take
    &gt;10 seconds after an uptime of 7 minutes.
  </summary>
</histogram>

<histogram name="Startup.StartupBrowserCreator_ProcessCmdLineImplTime"
    units="ms">
  <obsolete>
    Deprecated 02/2015. Startup.StartupBrowserCreator_Start is more useful.
  </obsolete>
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during
    StartupBrowserCreator::ProcessCmdLineImpl.
  </summary>
</histogram>

<histogram name="Startup.StartupBrowserCreator_Start" units="ms">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The amount of time that elapsed during StartupBrowserCreator::Start().
  </summary>
</histogram>

<histogram name="Startup.SystemUptime" units="ms">
  <owner>fdoray@chromium.org</owner>
  <summary>
    The time elapsed between system boot and Chrome browser process launch. This
    is recorded just before the main message loop starts.
  </summary>
</histogram>

<histogram name="Startup.Temperature" enum="StartupTemperature">
  <owner>chrisha@chromium.org</owner>
  <owner>fdoray@chromium.org</owner>
  <summary>
    Indicates whether or not the given startup was warm, cold or unable to be
    determined. This is based off observing the number of hard faults that occur
    during startup prior to Startup.BrowserMessageLoopStartTime.
  </summary>
</histogram>

<histogram name="Startup.TimeOfDayGMT" units="HHMM">
  <owner>feuunk@chromium.org</owner>
  <summary>
    The time of day in GMT that the startup was performed. This is logged in
    HHMM format, with the minutes rounded down to the nearest 10 minute
    interval.

    This can be used to make traffic estimates for requests made from startup.
  </summary>
</histogram>

<histogram name="Startup.TimeSinceLastStartup" units="minutes">
  <owner>fdoray@chromium.org</owner>
  <summary>
    Time elapsed since the last startup that went up to the main message loop
    start. This is recorded just before the main message loop starts.
  </summary>
</histogram>

<histogram name="Startup.WarmStartTimeFromRemoteProcessStart" units="ms">
  <owner>fdoray@chromium.org</owner>
  <summary>
    Time for a running browser process to start processing the command line
    passed in by a second Chrome process, which just sent its command line
    arguments to the already-running process and will soon exit. Measured from
    the time the second Chrome process started.
  </summary>
</histogram>

<histogram name="StartupTimeBomb.Alarm" units="ms">
  <obsolete>
    Deprecated as of 10/2014.
  </obsolete>
  <owner>rch@chromium.org</owner>
  <summary>
    Time duration measured from the time the startup timebomb was started and
    when it went off.
  </summary>
</histogram>

<histogram name="Storage.BlacklistedImportantSites.Reason"
    enum="ClearDataSiteBlacklistCrossedReason">
  <owner>dmurph@chromium.org</owner>
  <summary>
    This is recorded for every site that the user blacklists when they when they
    clear browsing data. It indicates which signals were used to show the given
    site to the user that the user then chose to exclude from clearing.
  </summary>
</histogram>

<histogram name="Storage.Blob.Broken" enum="BooleanBroken">
  <owner>dmurph@chromium.org</owner>
  <summary>
    If a newly constructed blob is broken. See Storage.Blob.BrokenReason for a
    the broken reasons.
  </summary>
</histogram>

<histogram name="Storage.Blob.BrokenReason" enum="BlobBrokenReason">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The reason a blob is broken, reported only for broken blobs upon
    construction. See Storage.Blob.Broken for the breakdown of blobs broken vs
    unbroken.
  </summary>
</histogram>

<histogram name="Storage.Blob.BuildFromStreamResult"
    enum="BlobBuildFromStreamResult">
  <owner>mek@chromium.org</owner>
  <summary>
    The result of constructing a blob using the BlobRegistry.RegisterFromStream
    API.
  </summary>
</histogram>

<histogram name="Storage.Blob.CleanupSuccess" enum="Boolean">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Recorded when the old blob storage directories are cleared. This occurs on
    storage partition initialization, and is not recorded if there are no
    directories to clear. The value indicates if the file operations were a
    success.
  </summary>
</histogram>

<histogram name="Storage.Blob.CreateDirectoryResult" enum="PlatformFileError">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Recorded when we create the blob storage directory for the blob storage
    system. When we need to write blob data to files, we create this directory
    if it doesn't exist. We write blob data to files when either we have a new
    blob that's larger than our memory limit, or we're approaching our in-memory
    limit for blob storage.
  </summary>
</histogram>

<histogram name="Storage.Blob.ExceededMemory" enum="Boolean">
  <obsolete>
    Deprecated as of 3/2016. Use Storage.Blob.Broken to see the fraction of
    blobs that are broken, and Storage.Blob.BrokenReason for the number of
    broken blobs that are broken because of memory constraints.
  </obsolete>
  <owner>dmurph@chromium.org</owner>
  <summary>
    True if a created blob exceeded the internal in-memory storage memory limit
    for blobs.
  </summary>
</histogram>

<histogram name="Storage.Blob.FileReaderLoader.FailureType"
    enum="FileReaderLoaderFailureType">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Recorded when an error occurs in the FileReaderLoader, which is used to load
    blobs in the Renderer. FileReaderUser is mostly used for Javascript's
    'FileReader', but can also be used to read blobs for the IndexedDB
    renderer-side implementation. For the read error category, see
    Storage.Blob.FileReaderLoader.ReadError for a breakdown of the specific read
    error reasons.
  </summary>
</histogram>

<histogram name="Storage.Blob.FileReaderLoader.ReadError" enum="NetErrorCodes">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The error code reported by the blob system while trying to read a blob in
    the FileReaderLoader. Compare with the
    Storage.Blob.IDBRequestLoader.ReadError histogram to eliminate IndexedDB
    large-value blobs.
  </summary>
</histogram>

<histogram name="Storage.Blob.GetBlobFromUUIDTime" units="ms">
  <owner>mek@chromium.org</owner>
  <summary>
    The amount of time taken to complete the synchronous
    BlobRegistry.GetBlobFromUUID mojo call.
  </summary>
</histogram>

<histogram name="Storage.Blob.IDBRequestLoader.ReadError" enum="NetErrorCodes">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The error code reported by the blob system while trying to read an IndexedDB
    large-value blob in the IDBRequestLoader. These blobs are automatically
    created in Blink when a website writes a large value to IndexedDB.
  </summary>
</histogram>

<histogram name="Storage.Blob.InvalidReference" enum="RefcountOperation">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Counts the number of times we have an invalid refcount operation. An invalid
    increment means the blob didn't exist, and an invalid decrement means we
    don't have any record of the blob in our host.
  </summary>
</histogram>

<histogram name="Storage.Blob.InvalidURLRegister" enum="RefcountOperation">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Counts the number of times we have an invalid url registration operation. An
    invalid increment means the blob isn't in use by the host yet or the url is
    already mapped. An invalid decrement means the url isn't registered.
  </summary>
</histogram>

<histogram name="Storage.Blob.ItemCount" units="Blob Items">
  <obsolete>
    Deprecated as of 12/18. Metric wasn't used for anything and wasn't useful.
  </obsolete>
  <owner>dmurph@chromium.org</owner>
  <summary>
    The number of blob items in a blob, recorded at blob construction. (Blobs
    are immutable, so this won't change afterwards).
  </summary>
</histogram>

<histogram name="Storage.Blob.MaxDiskSpace" units="MB">
  <obsolete>
    Deprecated as of 12/18. Use Storage.Blob.MaxDiskSpace2 instead.
  </obsolete>
  <owner>dmurph@chromium.org</owner>
  <summary>
    Records the calculated max disk space the blob storage system can use.
    Recorded on storage partition initialization.
  </summary>
</histogram>

<histogram name="Storage.Blob.MaxDiskSpace2" units="MB">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Records the calculated max disk space the blob storage system can use.
    Recorded on storage partition initialization, and only if the disk is
    enabled.
  </summary>
</histogram>

<histogram name="Storage.Blob.MaxDiskSpaceAdjustment"
    enum="BlobStorageDiskSpaceAdjustment">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Recorded when the blob system changes adjustment types on its disk size. The
    disk can either be Frozen, Adjusted (near min external available disk
    space), or Normal. We record when we transition between these states, which
    can happen after any file operations in the blob system (paging data to disk
    or saving a new blob directly to disk).
  </summary>
</histogram>

<histogram name="Storage.Blob.PageFileSize" units="KB">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Size of a page file created for blob data by the blob storage system.
    Recorded before we create the file and write the blob items. We page blob
    data to files when we get close to our maximum blob memory usage.
  </summary>
</histogram>

<histogram name="Storage.Blob.PagingDisabled" enum="PlatformFileError">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Recorded when we disable paging blobs to file in the blob storage system.
    This occurs when we experience a filesystem error during writing blob data
    to disk. We write blob data to files when either we have a new blob that's
    larger than our memory limit, or we're approaching our in-memory limit for
    blob storage. The relevant error is recorded here.
  </summary>
</histogram>

<histogram name="Storage.Blob.RegisterBlobTime" units="ms">
  <owner>darin@chromium.org</owner>
  <summary>
    The amount of time taken to complete the synchronous
    BlobStorageMsg_RegisterBlob IPC.
  </summary>
</histogram>

<histogram name="Storage.Blob.RegisterPublicURLTime" units="ms">
  <owner>darin@chromium.org</owner>
  <summary>
    The amount of time taken to complete the synchronous
    BlobStorageMsg_RegisterPublicURL IPC.
  </summary>
</histogram>

<histogram name="Storage.Blob.RendererFileSeekFailed" enum="Boolean">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Whether seeking within a file (in order to write a part of a blob) failed in
    the renderer.
  </summary>
</histogram>

<histogram name="Storage.Blob.RendererFileWriteFailed" enum="Boolean">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Whether writing part of a blob to a file failed in the renderer.
  </summary>
</histogram>

<histogram name="Storage.Blob.ReusedItem" enum="BooleanReused">
  <owner>dmurph@chromium.org</owner>
  <summary>
    True if we reuse an item for a blob created from using Blob.slice, recorded
    in BlobStorageContext on blob creation.
  </summary>
</histogram>

<histogram base="true" name="Storage.Blob.SizeEvictedToDiskInKB" units="KB">
  <owner>ssid@chromium.org</owner>
  <summary>Records the total size of in-memory blobs evicted to disk.</summary>
</histogram>

<histogram name="Storage.Blob.StorageSizeAfterAppend" units="KB">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Records the total in-memory storage size of blobs before a blob item is
    appended. Can be subtracted by Storage.Blob.StorageSizeBeforeAppend to find
    the true distribution of blob storage sizes.
  </summary>
</histogram>

<histogram name="Storage.Blob.StorageSizeBeforeAppend" units="KB">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Records the total in-memory storage size of blobs before a blob item is
    appended. Can be subtracted from Storage.Blob.StorageSizeAfterAppend to find
    the true distribution of blob storage sizes.
  </summary>
</histogram>

<histogram name="Storage.Blob.TotalSize" units="KB">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The total in-memory size in KB of finished blobs. Recorded in
    BlobStorageContext when the blob is finished being created. This can include
    memory that is shared with other blobs or memory from repeated internal
    items.
  </summary>
</histogram>

<histogram name="Storage.Blob.TotalUnsharedSize" units="KB">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The total amount of unique memory used to create a blob. Recorded in
    BlobStorageContext when the blob is finished being created. This does not
    include memory that is shared with other blobs. If multiple of the same blob
    item is present, then this number will reflect the size of the single item.
  </summary>
</histogram>

<histogram name="Storage.BlobItemSize" units="KB">
  <obsolete>
    Deprecated on 12/18. Metric wasn't used for anything and wasn't useful.
  </obsolete>
  <owner>dmurph@chromium.org</owner>
  <summary>
    The size in KB of items (or parts of items) appended to blobs.
  </summary>
</histogram>

<histogram name="Storage.BlobItemSize.BlobSlice" units="KB">
  <obsolete>
    Deprecated on 12/18. Metric wasn't used for anything and wasn't useful.
  </obsolete>
  <owner>dmurph@chromium.org</owner>
  <summary>
    The size in KB of items (or parts of items) appended to blobs that come from
    the slicing of other blobs. This happens when using Blob.slice, where we are
    using a part of an item in the original blob (not the whole item).
  </summary>
</histogram>

<histogram name="Storage.BlobItemSize.File.Unknown" enum="BooleanUnknown">
  <owner>dmurph@chromium.org</owner>
  <summary>
    True if the file size on blob append is unknown (which means the full file),
    or false if a specific file length was populated. Recorded in
    BlobStorageContext when we are adding a file item to a blob.
  </summary>
</histogram>

<histogram name="Storage.BlobItemSize.FileSystem.Unknown" enum="BooleanUnknown">
  <obsolete>
    Deprecated on 12/18. Metric was always false.
  </obsolete>
  <owner>dmurph@chromium.org</owner>
  <summary>
    True if the file size of a filesystem object on blob append is unknown
    (which means the full file), or false if a specific file length was
    populated. Recorded in BlobStorageContext when we are adding a filesystem
    item to a blob.
  </summary>
</histogram>

<histogram base="true" name="Storage.BytesRead" units="bytes">
  <owner>michaeln@chromium.org</owner>
  <summary>The number of bytes read. Recorded on each read.</summary>
</histogram>

<histogram base="true" name="Storage.BytesWritten" units="bytes">
  <owner>michaeln@chromium.org</owner>
  <summary>The number of bytes written. Recorded on each write.</summary>
</histogram>

<histogram name="Storage.ImportantSites.CBDChosenReason"
    enum="ImportantSitesReason">
  <owner>dmurph@chromium.org</owner>
  <summary>
    When a user chooses to blacklist one or more sites when they clear browsing
    data, this is recorded for every reason each chosen site was marked as
    important. It indicates which signals were used to show the given site to
    the user that the user then chose to exclude from clearing.
  </summary>
</histogram>

<histogram name="Storage.ImportantSites.CBDChosenReasonCount" units="count">
  <owner>dmurph@chromium.org</owner>
  <summary>
    This records the number of reasons each important site had that the user
    chose to blacklist when clearing browsing data.
  </summary>
</histogram>

<histogram name="Storage.ImportantSites.CBDIgnoredReason"
    enum="ImportantSitesReason">
  <owner>dmurph@chromium.org</owner>
  <summary>
    When a user chooses to blacklist one or more sites when they clear browsing
    data, this is recorded for every reason each unchosen site was marked as
    important. It indicates which signals were used to show the given site to
    the user, which the user then ignored and did not select to blacklist from
    clearing data.
  </summary>
</histogram>

<histogram name="Storage.ImportantSites.CBDIgnoredReasonCount" units="count">
  <owner>dmurph@chromium.org</owner>
  <summary>
    This records the number of reasons each important site had that the user
    chose to NOT blacklist when clearing browsing data.
  </summary>
</histogram>

<histogram name="Storage.ImportantSites.GeneratedReason"
    enum="ImportantSitesReason">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Recorded when we generate a list of important sites. This can happen when
    the user opens the Clear Browsing Data dialog on Android, views the Storage
    tab in Site Settings on Android, or launches 'Manage Storage' from Android
    System Settings for Chrome. We record every reason each site was chosen in
    this metric. This means that we can report this metric multiple times for a
    single site.
  </summary>
</histogram>

<histogram name="Storage.ImportantSites.GeneratedReasonCount" units="count">
  <owner>dmurph@chromium.org</owner>
  <summary>
    This records the number of reasons qualifying a site for being 'important'.
    We record this for every site when we generate a list of important sites,
    described in &quot;Storage.ImportantSites.GeneratedReason&quot;.
  </summary>
</histogram>

<histogram name="Storage.IndexedDB.PutBlobSizeKB" units="KB">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Records the size of a blob used in an IndexedDB add/put operation. Recorded
    for every put operation that contains a blob.
  </summary>
</histogram>

<histogram name="Storage.IndexedDB.PutValidBlob" enum="Boolean">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Records if a blob intended to be used in an IndexedDB add/put operation is a
    valid blob. Recorded for every put operation that contains a blob.
  </summary>
</histogram>

<histogram name="Storage.IndexedDB.WriteBlobFileViaCopy" enum="Boolean"
    expires_after="M75">
  <owner>dmurph@chromium.org</owner>
  <owner>mek@chromium.org</owner>
  <summary>
    Records if a blob attempted to be written to IndexedDB used the
    base::CopyFile optimization. Recorded for every blob attempted to be written
    to IndexedDB.
  </summary>
</histogram>

<histogram name="Style.AuthorStyleSheet.ParseTime" units="microseconds">
  <obsolete>
    Deprecated 2019-02, no longer used.
  </obsolete>
  <owner>futhark@chromium.org</owner>
  <summary>
    Microseconds spent in StyleSheetContents::ParseAuthorStyleSheet.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Style.InvalidationTime" units="microseconds">
  <owner>futhark@chromium.org</owner>
  <summary>
    Microseconds spent in StyleEngine::InvalidateStyle. Only samples from high
    resolution timers are recorded.
  </summary>
</histogram>

<histogram name="Style.LazyUsage.Percent" enum="LazyCSSParseUsage">
  <obsolete>
    Deprecated 07/2018, no longer used.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Tracks % of lazy rules that ended up needing to be parsed. A sheet logs
    counts into this histogram as it is parsed (i.e. as properties are parsed
    lazily). Once a certain percent of rules have been parsed, we log a count
    immediately. Note that this implies that a stylesheet which uses all of its
    rules will log counts in every bucket.
  </summary>
</histogram>

<histogram name="Style.RebuildLayoutTreeTime" units="microseconds">
  <owner>futhark@chromium.org</owner>
  <summary>
    Microseconds spent in RebuildLayoutTree called from Document::UpdateStyle.
  </summary>
</histogram>

<histogram name="Style.RecalcTime" units="microseconds">
  <owner>futhark@chromium.org</owner>
  <summary>
    Microseconds spent in RecalcStyle called from Document::UpdateStyle.
  </summary>
</histogram>

<histogram name="Style.TotalLazyRules" units="count">
  <obsolete>
    Deprecated 07/2018, no longer used.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Tracks the total number of rules that have parsing lazily deferred in an
    author style sheet.
  </summary>
</histogram>

<histogram name="Style.TotalLazyRules.FullUsage" units="count">
  <obsolete>
    Deprecated 07/2018, no longer used.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Tracks the total number of rules that have parsing lazily deferred in an
    author style sheet, for sheets that ended up needing all their rules.
  </summary>
</histogram>

<histogram name="Style.UpdateTime" units="microseconds">
  <obsolete>
    Deprecated 07/2018, replaced by Style.RecalcTime and
    Style.RebuildLayoutTreeTime.
  </obsolete>
  <owner>futhark@chromium.org</owner>
  <summary>
    Microseconds spent in Document::UpdateStyle.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="SubresourceFilter.Actions" enum="SubresourceFilterActions">
  <obsolete>
    Deprecated June 2018 in favor of SubresourceFilter.Actions2
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Counts of various UI and user action events related to the
    SubresourceFilter. This will be triggered in response to Content Settings
    changes, as well as when portions of the UI are shown or interacted with.
    Main frame navigations are also tracked for ease of comparison and analysis.
  </summary>
</histogram>

<histogram name="SubresourceFilter.Actions2" enum="SubresourceFilterActions2">
  <owner>csharrison@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Counts of various UI and user action events related to the
    SubresourceFilter. This will be triggered when portions of the UI are shown
    or interacted with.
  </summary>
</histogram>

<histogram name="SubresourceFilter.AdDelay.Delay" units="ms">
  <owner>csharrison@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Logs the delay the ad delay throttle added to a request. Logged for every
    subresource request that was delayed.
  </summary>
</histogram>

<histogram name="SubresourceFilter.AdDelay.Delay.Expected" units="ms">
  <owner>csharrison@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Logs the expected delay the ad delay throttle added to a request. This is
    the delay imposed assuming no task queuing delay. Logged for every
    subresource request that was delayed.
  </summary>
</histogram>

<histogram name="SubresourceFilter.AdDelay.Delay.Queuing" units="ms">
  <owner>csharrison@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Logs the task queuing delay the ad delay throttle added to a request. This
    is the actual delay minus the expected delay. Logged for every subresource
    request that was delayed.
  </summary>
</histogram>

<histogram name="SubresourceFilter.AdDelay.IsolatedInfo" enum="AdIsolatedInfo">
  <obsolete>
    Deprecated July 2018. Replaced with Ads.Features.AdResourceIsIsolated.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    For a given ad request, logs information related to whether it is isolated
    from the top-level context. Logged per ad subresource request.
  </summary>
</histogram>

<histogram name="SubresourceFilter.AdDelay.SecureInfo" enum="AdSecureInfo">
  <obsolete>
    Deprecated July 2018. Replaced with Ads.Features.ResourceIsSecure.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    For a given request, logs information related to whether it is marked as an
    ad, and whether it is secure (e.g. https). Logged per subresource request.
  </summary>
</histogram>

<histogram name="SubresourceFilter.DocumentLoad.Activation.CPUDuration"
    units="microseconds">
  <owner>pkalinnikov@chromium.org</owner>
  <summary>
    Records how much thread CPU time it takes to decide whether subresource
    filtering should be activated for a main frame or subframe.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="SubresourceFilter.DocumentLoad.Activation.WallDuration"
    units="microseconds">
  <owner>pkalinnikov@chromium.org</owner>
  <summary>
    Records how long it takes to decide whether subresource filtering should be
    activated for a main frame or subframe.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="SubresourceFilter.DocumentLoad.ActivationComputingDelay"
    units="microseconds">
  <owner>csharrison@chromium.org</owner>
  <summary>
    Records the total time the activation state navigation throttle within a
    document is delayed while calculating activation. Recorded at resume time.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram
    name="SubresourceFilter.DocumentLoad.ActivationComputingDelay.MainFrame"
    units="microseconds">
  <owner>csharrison@chromium.org</owner>
  <summary>
    Records the total time the activation state navigation throttle within a
    main frame document is delayed while calculating activation. Recorded at
    resume time.
  </summary>
</histogram>

<histogram name="SubresourceFilter.DocumentLoad.ActivationState"
    enum="SubresourceFilterActivationState">
  <owner>engedy@chromium.org</owner>
  <summary>
    Whenever a document load is committed in a main frame or subframe, records
    whether subresource filtering should be activated for that load.
  </summary>
</histogram>

<histogram name="SubresourceFilter.DocumentLoad.NumSubresourceLoads.Disallowed"
    units="resource loads">
  <owner>engedy@chromium.org</owner>
  <summary>
    Whenever a document load is finished in a main frame or subframe with
    subresource filtering activated, records the total number of subresource
    loads that have been disallowed. This only differs from `MatchedRules` when
    filtering is performed in dry-run mode.
  </summary>
</histogram>

<histogram name="SubresourceFilter.DocumentLoad.NumSubresourceLoads.Evaluated"
    units="resource loads">
  <owner>engedy@chromium.org</owner>
  <summary>
    Whenever a document load is finished in a main frame or subframe with
    subresource filtering activated, records the total number of subresource
    loads that have been evaluated. This only differs from 'Total' when the
    document is subject to a deactivating rule with DOCUMENT activation type.
  </summary>
</histogram>

<histogram
    name="SubresourceFilter.DocumentLoad.NumSubresourceLoads.MatchedRules"
    units="resource loads">
  <owner>engedy@chromium.org</owner>
  <summary>
    Whenever a document load is finished in a main frame or subframe with
    subresource filtering activated, records the total number of subresource
    loads that have matched filtering rules. This only differs from `Disallowed`
    when filtering is performed in dry-run mode.
  </summary>
</histogram>

<histogram name="SubresourceFilter.DocumentLoad.NumSubresourceLoads.Total"
    units="resource loads">
  <owner>engedy@chromium.org</owner>
  <summary>
    Whenever a document load is finished in a main frame or subframe with
    subresource filtering activated, records the total number of subresource
    loads that have gone through the subresource filtering pipeline.
  </summary>
</histogram>

<histogram name="SubresourceFilter.DocumentLoad.RulesetIsAvailable"
    enum="BooleanAvailable">
  <owner>engedy@chromium.org</owner>
  <summary>
    Whenever a document load is committed in a main frame or subframe and
    subresource filtering should be activated, records whether the filtering
    rules are available.
  </summary>
</histogram>

<histogram name="SubresourceFilter.DocumentLoad.SubframeFilteringDelay.Allowed"
    units="microseconds">
  <owner>csharrison@chromium.org</owner>
  <summary>
    Records the total time a subframe navigation was delayed while calculating
    whether it should be disallowed or not. Logged for all navigations that were
    allowed.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram
    name="SubresourceFilter.DocumentLoad.SubframeFilteringDelay.Disallowed"
    units="microseconds">
  <owner>csharrison@chromium.org</owner>
  <summary>
    Records the total time a subframe navigation was delayed while calculating
    whether it should be disallowed or not. Logged for all navigations that were
    disallowed.
  </summary>
</histogram>

<histogram
    name="SubresourceFilter.DocumentLoad.SubresourceEvaluation.TotalCPUDuration"
    units="microseconds">
  <owner>pkalinnikov@chromium.org</owner>
  <summary>
    Whenever a document load is finished in a main frame or subframe with
    subresource filtering activated, records the total thread CPU time spent on
    processing subresource requests in allowLoad.

    Note: this histogram is emitted for all clients, both ones which have
    high-resolution timer available and those which don't.
  </summary>
</histogram>

<histogram
    name="SubresourceFilter.DocumentLoad.SubresourceEvaluation.TotalWallDuration"
    units="microseconds">
  <owner>pkalinnikov@chromium.org</owner>
  <summary>
    Whenever a document load is finished in a main frame or subframe with
    subresource filtering activated, records the total real time spent on
    processing subresource requests in allowLoad, including the time spent on
    waiting or being descheduled.

    Note: this histogram is emitted for all clients, both ones which have
    high-resolution timer available and those which don't.
  </summary>
</histogram>

<histogram name="SubresourceFilter.IndexRuleset.CPUDuration" units="ms">
  <owner>pkalinnikov@chromium.org</owner>
  <summary>
    The total CPU time it took to parse and index all rules. Does not include
    time when the indexing thread was not doing actual work, e.g. waiting for
    I/O or being descheduled. Recorded every time the RulesetService kicks off a
    ruleset indexing process.
  </summary>
</histogram>

<histogram name="SubresourceFilter.IndexRuleset.NumUnsupportedRules"
    units="rules">
  <owner>engedy@chromium.org</owner>
  <summary>
    The number of rules that could be not be successfully indexed and therefore
    have been ignored. Recorded every time the RulesetService kicks off a
    ruleset indexing process and it reaches the point where rules are getting
    indexed.
  </summary>
</histogram>

<histogram name="SubresourceFilter.IndexRuleset.Verify.Status"
    enum="SubresourceFilterVerifyStatus" expires_after="2019-02-01">
  <owner>ericrobinson@chromium.org</owner>
  <summary>
    The result of the IndexRulesetMatcher Verify method. Either pass if both the
    checksum and verifier succeeded, or a value indicating which combination of
    them failed. Note that a zero checksum indicates that the checksum has not
    yet been stored during indexing (for rulesets indexed prior to the
    checksumming code).
  </summary>
</histogram>

<histogram name="SubresourceFilter.IndexRuleset.Verify.WallDuration"
    units="microseconds">
  <obsolete>
    Deprecated in favor of the Verify2 metric
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The total time it took to verify the indexed ruleset in the browser process.
    Logged every time verification occurs, which usually occurs when the first
    page with activation is navigated to.
  </summary>
</histogram>

<histogram name="SubresourceFilter.IndexRuleset.Verify2.WallDuration"
    units="ms">
  <owner>csharrison@chromium.org</owner>
  <summary>
    The total time it took to verify the indexed ruleset in the browser process.
    Logged every time verification occurs, which usually occurs when the first
    page with activation is navigated to.
  </summary>
</histogram>

<histogram name="SubresourceFilter.IndexRuleset.WallDuration" units="ms">
  <owner>engedy@chromium.org</owner>
  <summary>
    The total time it took to read and index all rules. Includes I/O time for
    reading the unindexed rules, but not for writing the indexed ruleset.
    Recorded every time the RulesetService kicks off a ruleset indexing process.
  </summary>
</histogram>

<histogram name="SubresourceFilter.PageLoad.Activation.CPUDuration"
    units="microseconds" expires_after="2018-08-30">
  <owner>csharrison@chromium.org</owner>
  <summary>
    Records how much thread CPU time it takes to decide whether subresource
    filtering should be activated for a main frame.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="SubresourceFilter.PageLoad.Activation.RedirectPosition"
    enum="SafeBrowsingActivationPosition">
  <owner>ericrobinson@chromium.org</owner>
  <summary>
    For pages that trigger Safe Browsing activations (not including dry runs),
    records the position in the redirect chain for the page the activation was
    triggered by. If SubresourceFilterConsiderRedirects is disabled, then always
    returns &quot;Only navigation&quot;.
  </summary>
</histogram>

<histogram name="SubresourceFilter.PageLoad.Activation.WallDuration"
    units="microseconds" expires_after="2018-08-30">
  <owner>csharrison@chromium.org</owner>
  <summary>
    Records how long it takes to decide whether subresource filtering should be
    activated for a main frame.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="SubresourceFilter.PageLoad.ActivationDecision"
    enum="SubresourceFilterActivationDecision">
  <owner>csharrison@chromium.org</owner>
  <summary>
    Records the policy decision to activate subresource filtering for a page
    load. 'Activated' indicates that subresource filtering was activated. All
    other reasons indicate that subresource filtering was not activated.
  </summary>
</histogram>

<histogram name="SubresourceFilter.PageLoad.ActivationList"
    enum="ActivationList">
  <owner>csharrison@chromium.org</owner>
  <summary>
    The ActivationList or NONE that the main frame navigation matched with.
    Recorded at WillProcessResponse time for a main frame navigation.
  </summary>
</histogram>

<histogram name="SubresourceFilter.PageLoad.ActivationState"
    enum="SubresourceFilterActivationState">
  <owner>csharrison@chromium.org</owner>
  <summary>
    Whenever a document load is committed in a main frame, records whether
    subresource filtering should be activated for that load.
  </summary>
</histogram>

<histogram name="SubresourceFilter.PageLoad.BlockedPopups" units="popups">
  <obsolete>
    Metric is broken and will be replaced by
    ContentSettings.Popups.StringBlocked.NumBlocked. This only logged values for
    sites which are also activated for subresource filtering, when most sites
    will probably only be marked for popup blocking.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Records the number of popups blocked per page load due to subresource filter
    logic. Recorded when a new main frame navigation commits. Note that this
    histogram is recorded for all pages which are activated by the subresource
    filter, including ones which do not trigger the stronger popup blocker.
  </summary>
</histogram>

<histogram name="SubresourceFilter.PageLoad.FinalURLMatch"
    enum="BooleanMatched">
  <obsolete>
    Deprecated in favor of SubresourceFilter.PageLoad.ActivationList.
  </obsolete>
  <owner>melandory@chromium.org</owner>
  <summary>
    Records, for each main frame navigation, whether the last URL in the
    redirect chain matched the Safe Browsing blacklist specified by the
    histogram suffix.
  </summary>
</histogram>

<histogram name="SubresourceFilter.PageLoad.ForcedActivation.DisallowedLoad"
    enum="Boolean">
  <obsolete>
    Deprecated May 2018 in favor of
    SubresourceFilter.PageLoad.ActivationDecision
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Logged when the first resource is disallowed from a page with forced
    activation. For example, if the devtools ad blocking option is set.
  </summary>
</histogram>

<histogram name="SubresourceFilter.PageLoad.NumSubresourceLoads.Disallowed"
    units="resource loads">
  <owner>pkalinnikov@chromium.org</owner>
  <summary>
    Whenever a page load is finished with subresource filtering activated,
    records the total number of subresource loads that have been disallowed.
    This only differs from `MatchedRules` when filtering is performed in dry-run
    mode.
  </summary>
</histogram>

<histogram name="SubresourceFilter.PageLoad.NumSubresourceLoads.Evaluated"
    units="resource loads">
  <owner>pkalinnikov@chromium.org</owner>
  <summary>
    Whenever a page load is finished with subresource filtering activated,
    records the total number of subresource loads that have been evaluated. This
    only differs from 'Total' when some of subdocuments is subject to a
    deactivating rule with DOCUMENT activation type.
  </summary>
</histogram>

<histogram name="SubresourceFilter.PageLoad.NumSubresourceLoads.MatchedRules"
    units="resource loads">
  <owner>pkalinnikov@chromium.org</owner>
  <summary>
    Whenever a page load is finished with subresource filtering activated,
    records the total number of subresource loads that have matched filtering
    rules. This only differs from `Disallowed` when filtering is performed in
    dry-run mode.
  </summary>
</histogram>

<histogram name="SubresourceFilter.PageLoad.NumSubresourceLoads.Total"
    units="resource loads">
  <owner>pkalinnikov@chromium.org</owner>
  <summary>
    Whenever a page load is finished with subresource filtering activated,
    records the total number of subresource loads that have gone through the
    subresource filtering pipeline.
  </summary>
</histogram>

<histogram name="SubresourceFilter.PageLoad.RedirectChainLength" units="urls">
  <obsolete>
    Deprecated May 2018
  </obsolete>
  <owner>melandory@chromium.org</owner>
  <summary>
    Total number of server redirects during the navigation. This histogram is
    recorded in several for every list where subresource fiter is active.
  </summary>
</histogram>

<histogram name="SubresourceFilter.PageLoad.RedirectChainMatchPattern"
    enum="SubresourceFilterMatchPattern">
  <obsolete>
    Obsolete as of April 2017, since the don't have correct data to record
    anymore.
  </obsolete>
  <owner>melandory@chromium.org</owner>
  <summary>
    For each main frame navigation, records a pattern that indicates which URLs
    in the redirect chain matched Safe Browsing blacklists, and which did not.
    For example, for the redirect chain A-B-C-D metric tracks: 1. If initial URL
    (A) was on a Safe Browsing blacklist. 2. If any if middle urls (B, C) were
    on a Safe Browsing blacklist. 3. If committed URL (B) was on a Safe Browsing
    blacklist. This histogram is recorded in several flavours: with prefix
    SubresourceFilterOnly in case the redirect chain contains url from the Safe
    Browsing SubresourceFilter list and without the prefix for all other
    redirect chains.
  </summary>
</histogram>

<histogram name="SubresourceFilter.PageLoad.SafeBrowsingDelay" units="ms">
  <owner>csharrison@chromium.org</owner>
  <summary>
    The navigation delay imposed by the subresource filter on a given navigation
    due to Safe Browsing checks.
  </summary>
</histogram>

<histogram
    name="SubresourceFilter.PageLoad.SafeBrowsingDelay.NoRedirectSpeculation"
    units="ms">
  <obsolete>
    Deprecated in May 2018 (M69). We have enough data to show that the redirect
    speculations we do are necessary, especially for Android.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The navigation delay that would have been imposed by the subresource filter
    on a given navigation due to Safe Browsing checks if redirect speculation
    was removed. Removing this feature would cause more delay if a navigation
    has redirects.
  </summary>
</histogram>

<histogram
    name="SubresourceFilter.PageLoad.SubresourceEvaluation.TotalCPUDuration"
    units="microseconds">
  <owner>pkalinnikov@chromium.org</owner>
  <summary>
    Whenever a page load is finished with subresource filtering activated,
    records the total thread CPU time spent on evaluating subresource requests,
    aggregated across all frames.

    Note: this histogram is emitted for all clients, both ones which have
    high-resolution timer available and those which don't.
  </summary>
</histogram>

<histogram
    name="SubresourceFilter.PageLoad.SubresourceEvaluation.TotalWallDuration"
    units="microseconds">
  <owner>pkalinnikov@chromium.org</owner>
  <summary>
    Whenever a page load is finished with subresource filtering activated,
    records the total real time spent on evaluating subresource requests,
    aggregated across all frames. This includes the time spent on waiting or
    being descheduled.

    Note: this histogram is emitted for all clients, both ones which have
    high-resolution timer available and those which don't.
  </summary>
</histogram>

<histogram name="SubresourceFilter.Prompt.NumReloads" enum="BooleanRequested">
  <obsolete>
    Deprecated in favor of the whitelisted bucket in SubresourceFilter.Actions2
  </obsolete>
  <owner>melandory@chromium.org</owner>
  <summary>
    Number of times the user has requested a reload for the page by clicking on
    the reload button.
  </summary>
</histogram>

<histogram name="SubresourceFilter.Prompt.NumVisibility" enum="BooleanVisible">
  <obsolete>
    Deprecated in favor of SubresourceFilter.Action
  </obsolete>
  <owner>melandory@chromium.org</owner>
  <summary>
    Number of times Safebrowsing Subresource Filter decided to toggle visibility
    of the prompt.
  </summary>
</histogram>

<histogram name="SubresourceFilter.RulesetVerificationStatus"
    enum="RulesetVerificationStatus">
  <owner>yaoxia@chromium.org</owner>
  <summary>
    Records the ruleset verification status at some point in a browsing session.
    If AdTagging is disabled, this happens when the user first visits a site
    that is failing the Better Ads Standard, and gets ads blocked on that site;
    if AdTagging is enabled, this happens immediately on startup. Note that this
    is recorded only once per browsing session (the lifetime of the browser
    process).
  </summary>
</histogram>

<histogram name="SubresourceFilter.SafeBrowsing.CheckDispatchTime"
    units="microseconds">
  <obsolete>
    Deprecated in May 2018 in favor of the more general
    SB2.RemoteCall.CheckDispatchTime.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The microseconds it took to dispatch the Safe Browsing check. This includes
    IPC descheduling delays to communicate with SafetyNet on Android, and
    synchronous db checks on desktop.

    Note: this histogram is emitted for all clients, both ones which have
    high-resolution timer available and those which don't.
  </summary>
</histogram>

<histogram name="SubresourceFilter.SafeBrowsing.CheckTime" units="ms">
  <owner>csharrison@chromium.org</owner>
  <summary>
    The time an individual Safe Browsing URL check took before finishing. Logged
    when a check is complete or cancelled due to a timeout.
  </summary>
</histogram>

<histogram name="SubresourceFilter.SafeBrowsing.TotalCheckTime" units="ms">
  <owner>csharrison@chromium.org</owner>
  <summary>
    The time an individual Safe Browsing URL check took before finishing,
    including posting tasks to and from the IO thread. Measured on the UI
    thread.
  </summary>
</histogram>

<histogram name="SubresourceFilter.SubresourceLoad.Evaluation.CPUDuration"
    units="microseconds">
  <owner>pkalinnikov@chromium.org</owner>
  <summary>
    Whenever a subresource of a document is evaluated against the ruleset,
    records the thread CPU time spent on calculating whether it should be
    allowed to load.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="SubresourceFilter.SubresourceLoad.Evaluation.WallDuration"
    units="microseconds">
  <owner>pkalinnikov@chromium.org</owner>
  <summary>
    Whenever a subresource of a document is evaluated against the ruleset,
    records how much time was spent on calculating whether it should be allowed
    to load.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="SubresourceFilter.WriteRuleset.ReplaceFileError"
    enum="PlatformFileError">
  <owner>engedy@chromium.org</owner>
  <summary>
    Records the exact error whenever writing a ruleset fails at the step where
    the ruleset would be moved from the scratch directory to its final location.
  </summary>
</histogram>

<histogram name="SubresourceFilter.WriteRuleset.Result"
    enum="SubresourceFilterWriteRulesetResult">
  <owner>engedy@chromium.org</owner>
  <summary>
    Whether indexing a version of the ruleset and writing it to disk succeeded,
    or failed at a particular step. Recorded every time the RulesetService kicks
    off a ruleset indexing process.
  </summary>
</histogram>

<histogram name="Suggestions.FailedRequestErrorCode" enum="NetErrorCodes">
  <owner>mathp@chromium.org</owner>
  <summary>
    The counts of network error codes encountered by SuggestionsService when an
    attempt to fetch suggestions from the server fails.
  </summary>
</histogram>

<histogram name="Suggestions.FetchResponseCode" enum="HttpResponseCode">
  <owner>mathp@chromium.org</owner>
  <summary>
    The counts of HTTP response codes encountered by SuggestionsService when
    attempting to fetch suggestions from the server.
  </summary>
</histogram>

<histogram name="Suggestions.FetchSuccessLatency" units="ms">
  <owner>mathp@chromium.org</owner>
  <summary>
    The latency of a SuggestionsService fetch that results in a success
    response.
  </summary>
</histogram>

<histogram name="Suggestions.LocalBlacklistSize" units="URLcount">
  <owner>siggi@chromium.org</owner>
  <summary>
    Number of URLs present in the Suggestions local blacklist when the
    Suggestions service is created.
  </summary>
</histogram>

<histogram name="Suggestions.ResponseState" enum="SuggestionsResponseState">
  <owner>mathp@chromium.org</owner>
  <summary>
    The counts of response states (such as empty or invalid) encountered by
    SuggestionsService when attempting to fetch suggestions from the server.
  </summary>
</histogram>

<histogram name="SupervisedUserContentProvider.ChromeNotStartedRequestTime"
    units="ms">
  <obsolete>
    Long removed.
  </obsolete>
  <owner>aberent@chromium.org</owner>
  <summary>
    Time to get the response to requesting whether a URL should be accessible to
    the supervised user, when Chrome was not previously running.
  </summary>
</histogram>

<histogram name="SupervisedUserContentProvider.ChromeStartedRequestTime"
    units="ms">
  <obsolete>
    Long removed.
  </obsolete>
  <owner>aberent@chromium.org</owner>
  <summary>
    Time to get the response to requesting whether a URL should be accessible to
    the supervised user, when Chrome was already running.
  </summary>
</histogram>

<histogram name="SupervisedUserContentProvider.RequestTimedOut"
    enum="BooleanTimedOut">
  <obsolete>
    Long removed.
  </obsolete>
  <owner>aberent@chromium.org</owner>
  <summary>
    True if a request to find out whether a URL should be accessible to a
    supervised user timed out.
  </summary>
</histogram>

<histogram name="Supervision.StatusReport.Event"
    enum="SupervisionStatusReportEvent" expires_after="M76">
  <owner>escordeiro@google.com</owner>
  <owner>brunoad@google.com</owner>
  <owner>ldaguilar@google.com</owner>
  <summary>
    The event that triggered status report for supervised account.
  </summary>
</histogram>

<histogram name="Sync.AppAssociationTime" units="ms">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time taken during app association (M18 and earlier were mispelled with this
    histogram).
  </summary>
</histogram>

<histogram name="Sync.AppRunFailures">
  <obsolete>
    Deprecated as of m19.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Count of apps run failures, used to compare failure rates between data types
    for a particular profile (see other Sync*RunFailures histograms).
  </summary>
</histogram>

<histogram name="Sync.AppSettingsStartFailure" enum="SyncStartResult">
  <obsolete>
    Replaced by AppSettingsConfigureFailure. See crbug.com/478226.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of types of app settings association failures.</summary>
</histogram>

<histogram name="Sync.AppsStartFailure" enum="SyncStartResult">
  <obsolete>
    Replaced by AppsConfigureFailure. See crbug.com/478226.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of types of app association failures.</summary>
</histogram>

<histogram name="Sync.AppStartFailures" enum="SyncStartResult">
  <obsolete>
    Deprecated as of m19.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of app association failures (M18 and earlier were
    mispelled with this histogram).
  </summary>
</histogram>

<histogram base="true" name="Sync.AssociationTime" units="ms"
    expires_after="2019-10-01">
  <owner>jkrcal@chromium.org</owner>
  <owner>mastiz@chromium.org</owner>
  <summary>Time taken during association of this data type.</summary>
</histogram>

<histogram name="Sync.Attachments.DownloadChecksumResult" enum="BooleanMatched">
  <obsolete>
    Deprecated 2018-04, Sync attachments were never launched.
  </obsolete>
  <owner>maxbogue@chromium.org</owner>
  <summary>Whether attachment checksums match on download or not.</summary>
</histogram>

<histogram name="Sync.Attachments.DownloadResponseCode"
    enum="CombinedHttpResponseAndNetErrorCode">
  <obsolete>
    Deprecated 2018-04, Sync attachments were never launched.
  </obsolete>
  <owner>maxbogue@chromium.org</owner>
  <summary>Response or error codes from downloading sync attachments.</summary>
</histogram>

<histogram name="Sync.Attachments.DownloadTotalTime" units="ms">
  <obsolete>
    Deprecated 2018-04, Sync attachments were never launched.
  </obsolete>
  <owner>maxbogue@chromium.org</owner>
  <summary>
    The total time a download takes including request and server overhead.
  </summary>
</histogram>

<histogram name="Sync.Attachments.StoreInitResult"
    enum="SyncAttachmentStoreResult">
  <obsolete>
    Deprecated 2018-04, Sync attachments were never launched.
  </obsolete>
  <owner>maxbogue@chromium.org</owner>
  <summary>The result of initializing the sync attachment store.</summary>
</histogram>

<histogram name="Sync.Attachments.UploadResponseCode"
    enum="CombinedHttpResponseAndNetErrorCode">
  <obsolete>
    Deprecated 2018-04, Sync attachments were never launched.
  </obsolete>
  <owner>maxbogue@chromium.org</owner>
  <summary>Response or error codes from uploading sync attachments.</summary>
</histogram>

<histogram name="Sync.AttemptNigoriMigration" enum="SyncNigoriMigrationResult">
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of results from attempting to migrate Sync's nigori node and its
    encryption keys to support keystore.
  </summary>
</histogram>

<histogram name="Sync.AuthInvalidationRejectedTokenAgeLong" units="days">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Age of all auth tokens rejected by the invalidation server. Measured from
    the time they were created.
  </summary>
</histogram>

<histogram name="Sync.AuthInvalidationRejectedTokenAgeShort" units="ms">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Age of auth tokens younger than one hour that were rejected by the
    invalidation server. Measured from the time they were created.
  </summary>
</histogram>

<histogram name="Sync.AuthorizationTimeInNetwork" units="ms">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>Time taken during initial authorization.</summary>
</histogram>

<histogram name="Sync.AuthServerRejectedTokenAgeLong" units="days">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Age of all auth tokens rejected by the sync server. Measured from the time
    they were created.
  </summary>
</histogram>

<histogram name="Sync.AuthServerRejectedTokenAgeShort" units="ms">
  <obsolete>
    No longer relevant since transition to OAuth.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Age of auth tokens younger than one hour that were rejected by the sync
    server. Measured from the time they were created.
  </summary>
</histogram>

<histogram name="Sync.AutofillProfile.AddOrUpdateOrigin"
    enum="AutofillProfileSyncChangeOrigin" expires_after="M75">
  <owner>jkrcal@chromium.org</owner>
  <owner>treib@chromium.org</owner>
  <summary>
    Reported for autofill profile sync once per every locally committed entity
    creation/update. It breaks down the origin of such a local change.
  </summary>
</histogram>

<histogram name="Sync.AutofillProfile.DeleteOrigin"
    enum="AutofillProfileSyncChangeOrigin" expires_after="M73">
  <owner>jkrcal@chromium.org</owner>
  <owner>treib@chromium.org</owner>
  <summary>
    Reported for autofill profile sync once per every locally committed entity
    deletion. It breaks down the origin of such a local deletion.
  </summary>
</histogram>

<histogram name="Sync.AutofillProfileAssociationTime" units="ms">
  <obsolete>
    Replaced by Sync.AutofillProfilesAssociationTime.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time taken during autofill profile association (M18 and earlier were
    mispelled with this histogram).
  </summary>
</histogram>

<histogram name="Sync.AutofillProfileRunFailures">
  <obsolete>
    Deprecated as of m19.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Count of autofill profiles run failures, used to compare failure rates
    between data types for a particular profile (see other Sync*RunFailures
    histograms).
  </summary>
</histogram>

<histogram name="Sync.AutofillProfilesStartFailure" enum="SyncStartResult">
  <obsolete>
    Replaced by AutofillProfilesConfigureFailure. See crbug.com/478226.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of autofill profile association failures.
  </summary>
</histogram>

<histogram name="Sync.AutofillProfileStartFailures" enum="SyncStartResult">
  <obsolete>
    Deprecated as of m19.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of autofill profile association failures (M18 and
    earlier were mispelled with this histogram).
  </summary>
</histogram>

<histogram name="Sync.AutofillRunFailures">
  <obsolete>
    Deprecated as of m19.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Count of autofill (autocomplete) run failures, used to compare failure rates
    between data types for a particular profile (see other Sync*RunFailures
    histograms).
  </summary>
</histogram>

<histogram name="Sync.AutofillStartFailure" enum="SyncStartResult">
  <obsolete>
    Replaced by AutofillConfigureFailure. See crbug.com/478226.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of types of autofill association failures.</summary>
</histogram>

<histogram name="Sync.AutoNigoriOverwrites">
  <owner>zea@chromium.org</owner>
  <summary>
    Number of times this client has overwritten the nigori node to update the
    encryption keys without a user action (during this instantiation of Chrome).
  </summary>
</histogram>

<histogram name="Sync.BackendInitializeFirstTime" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>
    Tracks sync backend initialization time during initial sync setup.
  </summary>
</histogram>

<histogram name="Sync.BackendInitializeFirstTimeSuccess" enum="BooleanSuccess">
  <owner>zea@chromium.org</owner>
  <summary>
    Tracks sync backend initialization success rate during initial sync setup.
  </summary>
</histogram>

<histogram name="Sync.BackendInitializeRestoreState"
    enum="SyncBackendInitializeRestoreState">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Compares sync's has_setup_completed pref against the set of types actually
    restored from the sync DB. Mismatches should be rare.
  </summary>
</histogram>

<histogram name="Sync.BackendInitializeRestoreSuccess" enum="BooleanSuccess">
  <owner>zea@chromium.org</owner>
  <summary>
    Tracks sync backend initialization success rate in cases where sync was
    previously initialized.
  </summary>
</histogram>

<histogram name="Sync.BackendInitializeRestoreTime" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>
    Tracks sync backend initialization time in cases where sync was previously
    initialized.
  </summary>
</histogram>

<histogram name="Sync.BadRequestCountOnSignInNeedsUpdateInfoBar">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Number of bad requests since application startup, when the Sync error
    infobar asking the user to update their account details is displayed.
  </summary>
</histogram>

<histogram name="Sync.BookmarkAssociationTime" units="ms">
  <obsolete>
    Deprecated as of m18
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>Time taken during bookmark association.</summary>
</histogram>

<histogram name="Sync.BookmarkRunFailures">
  <obsolete>
    Deprecated as of m19.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Count of bookmark run failures, used to compare failure rates between data
    types for a particular profile (see other Sync*RunFailures histograms).
  </summary>
</histogram>

<histogram name="Sync.BookmarksDuplicationsAtAssociation">
  <owner>mamir@chromium.org</owner>
  <summary>
    Estimated number of bookmark duplications after bookmark association.
  </summary>
</histogram>

<histogram name="Sync.BookmarksModelMetadataCorruptionReason"
    enum="SyncBookmarkModelMetadataCorruptionReason" expires_after="M75">
  <owner>mamir@chromium.org</owner>
  <summary>
    The reason why the persisted metadata for a bookmark model is considered
    corrupted. It either has corrupted data or doesn't match the bookmark model.
    It's recorded at start up only if the initial sync has been performed
    already. It's recorded after loading the metadata.
  </summary>
</histogram>

<histogram name="Sync.BookmarksModelSyncStateAtNewDuplication"
    enum="SyncBookmarkModelSyncState">
  <owner>mamir@chromium.org</owner>
  <summary>
    Tracks state of local bookmark model version relative to the sync version
    when a new bookmark duplication occurs during bookmark association.
  </summary>
</histogram>

<histogram name="Sync.BookmarksNewDuplicationsAtAssociation">
  <owner>mamir@chromium.org</owner>
  <summary>
    Estimated number of new bookmark duplications after bookmark association.
  </summary>
</histogram>

<histogram name="Sync.BookmarksStartFailure" enum="SyncStartResult">
  <obsolete>
    Replaced by BookmarksConfigureFailure. See crbug.com/478226.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of types of bookmark association failures.</summary>
</histogram>

<histogram name="Sync.BookmarkStartFailures" enum="SyncStartResult">
  <obsolete>
    Deprecated as of m19.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of bookmark association failures (M18 and earlier were
    mispelled with this histogram).
  </summary>
</histogram>

<histogram name="Sync.ClearServerDataEvents" enum="ClearServerDataEvents">
  <obsolete>
    Removed in 2019-02.
  </obsolete>
  <owner>pavely@chromium.org</owner>
  <summary>
    Records events encountered during sync's ClearServerData flow.
  </summary>
</histogram>

<histogram name="Sync.ConfigureDataTypeManagerOption"
    enum="SyncFeatureOrTransport">
  <owner>treib@chromium.org</owner>
  <summary>
    Whether the full Sync feature or only the Sync transport layer is being
    configured. Recorded when configuring the data types for any reason: Most
    commonly during browser startup, but also after initial setup, after a
    reconfiguration by the user, or when switching between full feature mode and
    transport mode.
  </summary>
</histogram>

<histogram name="Sync.ConfigureDataTypes" enum="SyncModelTypes">
  <owner>zea@chromium.org</owner>
  <summary>
    Breakdown of sync data types being configured at first time signin, restart,
    or user-initiated reconfiguration. This is different from Sync.CustomTypes
    in that this captures all active devices, not just those that are choosing a
    custom sync configuration.

    Note that not all platforms support all data types. As such, comparing
    across platforms should only look at the common data types.
  </summary>
</histogram>

<histogram name="Sync.ConfigureFailed" enum="SyncModelTypes">
  <owner>zea@chromium.org</owner>
  <summary>Count of model association failures for each type.</summary>
</histogram>

<histogram base="true" name="Sync.ConfigureFailure" enum="SyncConfigureResult"
    expires_after="2020-04-01">
  <owner>jkrcal@chromium.org</owner>
  <owner>mastiz@chromium.org</owner>
  <summary>
    Enumeration of types of configuration failures of this data type.
  </summary>
</histogram>

<histogram name="Sync.ConfigureTime.ABORTED" units="ms">
  <obsolete>
    Replaced by Sync.ConfigureTime_Long.ABORTED in m21.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time spent configuring data types in the case where configuration is
    aborted.
  </summary>
</histogram>

<histogram name="Sync.ConfigureTime.OK" units="ms">
  <obsolete>
    Replaced by Sync.ConfigureTime_Long.OK in m21.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time spent configuring data types in the case where configuration succeeds.
  </summary>
</histogram>

<histogram name="Sync.ConfigureTime.PARTIAL_SUCCESS" units="ms">
  <obsolete>
    Replaced by Sync.ConfigureTime_Long.PARTIAL_SUCCESS in m21.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time spent configuring data types in the case where only some data types
    succeed.
  </summary>
</histogram>

<histogram name="Sync.ConfigureTime.UNRECOVERABLE_ERROR" units="ms">
  <obsolete>
    Replaced by Sync.ConfigureTime_Long.UNRECOVERABLE_ERROR in m21.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time spent configuring data types in the case where configuration encounters
    an unrecoverable error.
  </summary>
</histogram>

<histogram name="Sync.ConfigureTime_Long.ABORTED" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>
    Time spent configuring data types in the case where configuration is
    aborted.
  </summary>
</histogram>

<histogram name="Sync.ConfigureTime_Long.OK" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>
    Time spent configuring data types in the case where configuration succeeds.
  </summary>
</histogram>

<histogram name="Sync.ConfigureTime_Long.PARTIAL_SUCCESS" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>
    Time spent configuring data types in the case where only some data types
    succeed.
  </summary>
</histogram>

<histogram name="Sync.ConfigureTime_Long.UNRECOVERABLE_ERROR" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>
    Time spent configuring data types in the case where configuration encounters
    an unrecoverable error.
  </summary>
</histogram>

<histogram name="Sync.ConflictFixCircularity">
  <obsolete>
    Deprecated 12/2011. No longer tracked. See crbug.com/107816.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Number of times we fix a circularity sync conflict. This is not expected to
    be hit anymore.
  </summary>
</histogram>

<histogram name="Sync.ConflictFixRemovedDirectoriesWithContent">
  <obsolete>
    Deprecated 12/2011. No longer tracked. See crbug.com/107816.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Number of times we fix a removed directory with content sync conflict. This
    is not expected to be hit anymore
  </summary>
</histogram>

<histogram name="Sync.CookieJarEmptyOnMismatch" enum="BooleanEmpty">
  <owner>zea@chromium.org</owner>
  <summary>
    Whether the gaia cookie jar was empty. Recorded on every SESSIONS commit
    where the gaia cookie jar does not include the signed in user (
    CookieJarMatchOnNavigation == false).
  </summary>
</histogram>

<histogram name="Sync.CookieJarMatchOnNavigation" enum="BooleanMatched">
  <owner>zea@chromium.org</owner>
  <summary>
    Whether the gaia cookie jar included the signed in user (matched) or not.
    Recorded on every SESSIONS commit.
  </summary>
</histogram>

<histogram name="Sync.CredentialsLost" enum="BooleanCredentialsLost">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Whether or not we detected missing credentials during startup. This may be
    related to crbug.com/121755.
  </summary>
</histogram>

<histogram
    name="Sync.Crypto.CustomPassphraseKeyDerivationMethodOnNewPassphrase"
    enum="SyncCustomPassphraseKeyDerivationMethodState" expires_after="M75">
  <owner>vitaliii@chromium.org</owner>
  <owner>treib@chromium.org</owner>
  <summary>
    Key derivation method used for sync custom passphrase when a new custom
    passphrase is set. &quot;Not set&quot; will never be reported for this
    metric, since we always have an explicit key derivation method when a new
    passphrase is set.
  </summary>
</histogram>

<histogram
    name="Sync.Crypto.CustomPassphraseKeyDerivationMethodOnSuccessfulDecryption"
    enum="SyncCustomPassphraseKeyDerivationMethodState" expires_after="M75">
  <owner>vitaliii@chromium.org</owner>
  <owner>treib@chromium.org</owner>
  <summary>
    Key derivation method used for sync custom passphrase on successful
    decryption of pending keys, i.e. when a passphrase is requested and the user
    types in the correct one. &quot;Not set&quot; will never be reported for
    this metric, since we always have an explicit key derivation method on
    successful decryption.
  </summary>
</histogram>

<histogram name="Sync.Crypto.CustomPassphraseKeyDerivationMethodStateOnStartup"
    enum="SyncCustomPassphraseKeyDerivationMethodState" expires_after="M75">
  <owner>vitaliii@chromium.org</owner>
  <owner>treib@chromium.org</owner>
  <summary>
    State of the derivation method used for sync custom passphrase on startup.
    Reported only when the passphrase type is CUSTOM_PASSPHRASE.
  </summary>
</histogram>

<histogram base="true" name="Sync.Crypto.NigoriKeyDerivationDuration"
    units="ms" expires_after="2020-02-01">
  <owner>vitaliii@chromium.org</owner>
  <owner>treib@chromium.org</owner>
  <summary>
    Time taken to derive keys in Nigori using a given key derivation method.
    This histogram is always recorded with one of the key derivation method
    suffixes.
  </summary>
</histogram>

<histogram name="Sync.CryptographerPendingKeys"
    enum="SyncCryptographerPendingKeysState">
  <owner>zea@chromium.org</owner>
  <summary>
    Breakdown of sync users whose cryptographer has pending keys.
  </summary>
</histogram>

<histogram name="Sync.CryptographerReady" enum="SyncCryptographerReadyState">
  <owner>zea@chromium.org</owner>
  <summary>
    Breakdown of sync users whose cryptographer is fully ready for encryption
    and decryption (initialized and no pending keys).
  </summary>
</histogram>

<histogram name="Sync.CustomEncryption" enum="SyncCustomEncryptionEvent">
  <owner>zea@chromium.org</owner>
  <summary>
    Histogram that keeps track of how users encrypt their sync data. All users
    start off with default encryption during initial setup, while a subset of
    users go on to encrypt their sync data with a custom passphrase.
  </summary>
</histogram>

<histogram name="Sync.CustomPassphrase">
  <obsolete>
    Deprecated as of m26.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Boolean histogram for whether a custom passphrase was entered during sync
    setup. Samples are taken every time sync is (re)configured, and the unique
    userid count shows how many users entered a custom passphrase.
  </summary>
</histogram>

<histogram name="Sync.CustomSync" enum="UserSelectableSyncType">
  <obsolete>
    Deprecated 10/2018, replaced by Sync.CustomSync2.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Samples are taken every time sync is (re)configured, and the unique userid
    count shows how many users explicitly chose to sync this data type via the
    &quot;Advanced Sync Preferences&quot; dialog.
  </summary>
</histogram>

<histogram name="Sync.CustomSync2" enum="SyncModelTypes">
  <owner>treib@chromium.org</owner>
  <summary>
    For users who have *not* selected the &quot;Sync Everything&quot; option,
    this records all the data types they have selected to sync. Samples are
    taken every time the Sync data types are (re)configured, which typically
    happens during startup and when the user changes any Sync settings.
  </summary>
</histogram>

<histogram name="Sync.DatatypePrefRecovery">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Number of clients that have fixed themselves up from a datatype preference
    loss. Clients are not expected to have this happen more than once. This
    value can be compared to Sync.BackendInitializeRestoreSuccess to determine
    what percentage of users are still recovering.
  </summary>
</histogram>

<histogram name="Sync.DataTypeRunFailures" enum="SyncModelTypes">
  <obsolete>
    Deprecated 10/2018. Replaced by Sync.DataTypeRunFailures2 which correctly
    splits run and start failures.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Histogram of the run failures for the different sync datatypes. These are
    failures that occur after startup while the datatype is syncing. Note: Due
    to an enumeration reordering, pre-M23 labels are inaccurate (see
    sync/base/model_type.h).
  </summary>
</histogram>

<histogram name="Sync.DataTypeRunFailures2" enum="SyncModelTypes"
    expires_after="2020-04-01">
  <owner>jkrcal@chromium.org</owner>
  <owner>mastiz@chromium.org</owner>
  <summary>
    Histogram of the run failures for the different sync datatypes. These are
    failures that occur after startup while the datatype is syncing. This is one
    of the base sync health metrics.
  </summary>
</histogram>

<histogram name="Sync.DataTypeStartFailures" enum="SyncModelTypes">
  <obsolete>
    Deprecated 10/2018. Replaced by Sync.DataTypeStartFailures2 which correctly
    splits run and start failures.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Histogram of the startup failures for the different sync datatypes. These
    are failures due to missing top level sync nodes or model association Note:
    Due to an enumeration reordering, pre-M23 labels are inaccurate (see
    sync/base/model_type.h).
  </summary>
</histogram>

<histogram name="Sync.DataTypeStartFailures2" enum="SyncModelTypes"
    expires_after="2020-04-01">
  <owner>jkrcal@chromium.org</owner>
  <owner>mastiz@chromium.org</owner>
  <summary>
    Histogram of the startup failures for the different sync datatypes. These
    are failures that occur during startup before the data type is fully loaded.
    For USS datatypes, these errors are caused by failures in reading metadata
    (or data) from the DB or by another failure in interaction with the model.
    For Directory datatypes, startup errors are due to missing top level sync
    nodes or model association. This is one of the base sync health metrics.
  </summary>
</histogram>

<histogram name="Sync.DeviceCount">
  <obsolete>
    Deprecated in M74.
  </obsolete>
  <owner>mastiz@chromium.org</owner>
  <owner>jkrcal@chromium.org</owner>
  <summary>
    The largest number of active syncing devices known to any profile. May be 0
    when there are no signed in/syncing profiles open.
  </summary>
</histogram>

<histogram name="Sync.DeviceCount2">
  <owner>mastiz@chromium.org</owner>
  <owner>jkrcal@chromium.org</owner>
  <summary>
    The largest number of active and concurrently syncing devices known to any
    profile. May be 0 when there are no signed in/syncing profiles open. Logged
    with every UMA log.
  </summary>
</histogram>

<histogram name="Sync.DeviceIdMismatchDetails" enum="DeviceIdMismatch">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>pavely@chromium.org</owner>
  <summary>
    When signin_scoped_device_id from pref doesn't match the one in
    DeviceInfoSpecfics this histogram tells if sync or pref copy was empty. This
    will indicate how often such mismatch happens and what was the state before.
  </summary>
</histogram>

<histogram name="Sync.DictionaryStartFailure" enum="SyncStartResult">
  <obsolete>
    Replaced by DictionaryConfigureFailure. See crbug.com/478226.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of types of dictionary association failures.</summary>
</histogram>

<histogram name="Sync.DirectoryCatastrophicError" enum="BooleanError">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Whether the Sync Directory encountered a catastrophic error.
  </summary>
</histogram>

<histogram name="Sync.DirectoryOpenFailedMac">
  <obsolete>
    Deprecated 11/2011. No longer tracked.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>Number of failures trying to open the sync database on mac.</summary>
</histogram>

<histogram name="Sync.DirectoryOpenFailedNotWinMac">
  <obsolete>
    Deprecated 11/2011. No longer tracked.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Number of failures trying to open the sync database on a non-windows non-mac
    platform.
  </summary>
</histogram>

<histogram name="Sync.DirectoryOpenFailedWin">
  <obsolete>
    Deprecated 11/2011. No longer tracked.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Number of failures trying to open the sync database on windows.
  </summary>
</histogram>

<histogram name="Sync.DirectoryOpenResult" enum="SyncDirectoryOpenResult">
  <owner>zea@chromium.org</owner>
  <summary>Tracks success of failure of sync directory initialization.</summary>
</histogram>

<histogram name="Sync.DirectoryVsPrefsConsistency"
    enum="SyncDirectoryVsPrefsConsistency">
  <owner>mastiz@chromium.org</owner>
  <owner>treib@chromium.org</owner>
  <summary>
    Whether the sync cache GUID and birthday are stored consistently across the
    sync directory and prefs.
  </summary>
</histogram>

<histogram base="true" name="Sync.DuplicateClientTagHashInApplyPendingUpdates"
    enum="BooleanPresent" expires_after="2019-03-31">
  <owner>treib@chromium.org</owner>
  <summary>
    Whether ModelTypeWorker received any duplicate client tag hashes within a
    full GetUpdates cycle (which, in the case of pagination, might consist of
    multiple individual GetUpdates responses).
  </summary>
</histogram>

<histogram base="true" name="Sync.DuplicateClientTagHashInGetUpdatesResponse"
    enum="BooleanPresent" expires_after="2019-03-31">
  <owner>treib@chromium.org</owner>
  <summary>
    Whether ModelTypeWorker received any duplicate client tag hashes within a
    single GetUpdates response (which, in the case of pagination, might be only
    part of a full GetUpdates cycle).
  </summary>
</histogram>

<histogram base="true"
    name="Sync.DuplicateClientTagHashWithDifferentServerIdsInApplyPendingUpdates"
    enum="BooleanPresent" expires_after="2019-03-31">
  <owner>mamir@chromium.org</owner>
  <summary>
    Whether ModelTypeWorker received any duplicate client tag hashes within a
    full GetUpdates cycle that happen to have different server ids (which, in
    the case of pagination, might consist of multiple individual GetUpdates
    responses).
  </summary>
</histogram>

<histogram base="true" name="Sync.DuplicateServerIdInApplyPendingUpdates"
    enum="BooleanPresent" expires_after="2019-03-31">
  <owner>mamir@chromium.org</owner>
  <summary>
    Whether ModelTypeWorker received any duplicate server ids within a full
    GetUpdates cycle (which, in the case of pagination, might consist of
    multiple individual GetUpdates responses).
  </summary>
</histogram>

<histogram base="true" name="Sync.E2ELatency" units="ms" expires_after="M75">
  <owner>mastiz@chromium.org</owner>
  <owner>melandory@chromium.org</owner>
  <summary>
    Recorded for a subset of users (Finch-controlled) per sync reflection, that
    is, server-side updates that represent a local change. The time represents
    the E2E time from the local change happening, the corresponding invalidation
    being received and the relevant updates being fetched from the sync server.
    Note: This is only recorded with a data type suffix. The base version is
    never recorded.
  </summary>
</histogram>

<histogram name="Sync.EncryptAllData">
  <obsolete>
    Deprecated as of m26.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Boolean histogram for whether the &quot;Encrypt all synced data&quot; radio
    button was selected during sync setup. Samples are taken every time sync is
    (re)configured, and the unique userid count shows how many users chose to
    encrypt their sync data.
  </summary>
</histogram>

<histogram name="Sync.Entities.PositioningScheme" enum="SyncPositioningScheme"
    expires_after="M75">
  <owner>mamir@chromium.org</owner>
  <summary>
    The positioning scheme used within sync entities. It is reported for data
    types migrated to USS only. While it is reported for all data types, the
    positioning information are expected to be set for bookmarks only.
    &quot;MISSING&quot; is reported only for non deleted bookmarks.
  </summary>
</histogram>

<histogram name="Sync.EventCodes" enum="SyncEventCode">
  <owner>zea@chromium.org</owner>
  <summary>A UI event occured.</summary>
</histogram>

<histogram name="Sync.ExtensionAssociationTime" units="ms">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time taken during extension association (M18 and earlier were mispelled with
    this histogram).
  </summary>
</histogram>

<histogram name="Sync.ExtensionRunFailures">
  <obsolete>
    Deprecated as of m19.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Count of extension run failures, used to compare failure rates between data
    types for a particular profile (see other Sync*RunFailures histograms).
  </summary>
</histogram>

<histogram name="Sync.ExtensionSettingsStartFailure" enum="SyncStartResult">
  <obsolete>
    Replaced by ExtensionSettingsConfigureFailure. See crbug.com/478226.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of extension settings association failures.
  </summary>
</histogram>

<histogram name="Sync.ExtensionsStartFailure" enum="SyncStartResult">
  <obsolete>
    Replaced by ExtensionsConfigureFailure. See crbug.com/478226.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of types of extension association failures.</summary>
</histogram>

<histogram name="Sync.ExtensionStartFailures" enum="SyncStartResult">
  <obsolete>
    Deprecated as of m19.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of extension association failures (M18 and earlier were
    mispelled with this histogram).
  </summary>
</histogram>

<histogram name="Sync.ExtraSyncDataCount" units="entries">
  <obsolete>
    Deprecated as of 07/2018. No longer tracked (because it is
    directory-specific and related to now obsolete metrics Sync.ModelTypeCount).
  </obsolete>
  <owner>gangwu@chromium.org</owner>
  <summary>
    Counts the total number of extra copies of sync data in memory. This count
    is emitted once, after loading Sync Directory. The count will indicate how
    many Directory entities fail to share client and server specifics.
  </summary>
</histogram>

<histogram name="Sync.FaviconCacheLookupSucceeded" enum="BooleanSuccess">
  <owner>zea@chromium.org</owner>
  <summary>Whether a sync favicon cache lookup succeeded or not.</summary>
</histogram>

<histogram name="Sync.FaviconCount">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>Number of synced favicons at initialization time.</summary>
</histogram>

<histogram name="Sync.FaviconImagesStartFailure" enum="SyncStartResult">
  <obsolete>
    Replaced by FaviconImagesConfigureFailure. See crbug.com/478226.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of favicon images association failures.
  </summary>
</histogram>

<histogram name="Sync.FaviconsAvailableAtMerge" enum="SyncFaviconsAvailable">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Number of client that have filled their sync favicon cache and must evict
    old favicons vs those whose cache is not full.
  </summary>
</histogram>

<histogram name="Sync.FaviconTrackingStartFailure" enum="SyncStartResult">
  <obsolete>
    Replaced by FaviconTrackingConfigureFailure. See crbug.com/478226.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of favicon tracking association failures.
  </summary>
</histogram>

<histogram name="Sync.FaviconVisitPeriod" units="hours">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>Time between updates to a synced favicon's visit time.</summary>
</histogram>

<histogram name="Sync.FirstBackendInitializeSuccess" enum="BooleanSuccess">
  <obsolete>
    Deprecated 11/2011. Was counted incorrectly. Replaced by
    Sync.BackendInitializeFirstTimeSuccess.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Tracks sync backend initialization success rate during initial sync setup.
  </summary>
</histogram>

<histogram name="Sync.FirstSyncDelayByBackup" units="ms">
  <obsolete>
    Backup logic has been removed since 02/2016.
  </obsolete>
  <owner>haitaol@chromium.org</owner>
  <summary>First sync delay casued by backing up user data.</summary>
</histogram>

<histogram name="Sync.FreqApps" units="ms">
  <obsolete>
    Deprecated 03/2018 (M67). Replaced by Sync.SyncCycleInterval.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time between nudges for apps. Used as estimate of datatype commit frequency.
    Logged when a sync cycle is performed for apps.
  </summary>
</histogram>

<histogram name="Sync.FreqAutofill" units="ms">
  <obsolete>
    Deprecated 03/2018 (M67). Replaced by Sync.SyncCycleInterval.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time between nudges for autofill entries. Used as estimate of datatype
    commit frequency. Logged when a sync cycle is performed for autofill
    entries.
  </summary>
</histogram>

<histogram name="Sync.FreqAutofillProfiles" units="ms">
  <obsolete>
    Deprecated 03/2018 (M67). Replaced by Sync.SyncCycleInterval.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time between nudges for autofill profiles. Used as estimate of datatype
    commit frequency. Logged when a sync cycle is performed for autofill
    profiles.
  </summary>
</histogram>

<histogram name="Sync.FreqBookmarks" units="ms">
  <obsolete>
    Deprecated 03/2018 (M67). Replaced by Sync.SyncCycleInterval.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time between nudges for bookmarks. Used as estimate of datatype commit
    frequency. Logged when a sync cycle is performed for boomarks.
  </summary>
</histogram>

<histogram name="Sync.FreqDictionary" units="ms">
  <obsolete>
    Deprecated 03/2018 (M67). Replaced by Sync.SyncCycleInterval.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time between nudges for dictionary. Used as estimate of datatype commit
    frequency. Logged when a sync cycle is performed for dictionary.
  </summary>
</histogram>

<histogram name="Sync.FreqExtensions" units="ms">
  <obsolete>
    Deprecated 03/2018 (M67). Replaced by Sync.SyncCycleInterval.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time between nudges for extensions. Used as estimate of datatype commit
    frequency. Logged when a sync cycle is performed for extensions.
  </summary>
</histogram>

<histogram name="Sync.FreqFaviconImages" units="ms">
  <obsolete>
    Deprecated 03/2018 (M67). Replaced by Sync.SyncCycleInterval.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time between nudges for favicon images. Used as estimate of datatype commit
    frequency. Logged when a sync cycle is performed for favicon images.
  </summary>
</histogram>

<histogram name="Sync.FreqFaviconTracking" units="ms">
  <obsolete>
    Deprecated 03/2018 (M67). Replaced by Sync.SyncCycleInterval.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time between nudges for favicon tracking. Used as estimate of datatype
    commit frequency. Logged when a sync cycle is performed for favicon
    tracking.
  </summary>
</histogram>

<histogram name="Sync.FreqNigori" units="ms">
  <obsolete>
    Deprecated 03/2018 (M67). Replaced by Sync.SyncCycleInterval.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time between nudges for nigori. Used as estimate of datatype commit
    frequency. Logged when a sync cycle is performed for nigori.
  </summary>
</histogram>

<histogram name="Sync.FreqPasswords" units="ms">
  <obsolete>
    Deprecated 03/2018 (M67). Replaced by Sync.SyncCycleInterval.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time between nudges for passwords. Used as estimate of datatype commit
    frequency. Logged when a sync cycle is performed for passwords.
  </summary>
</histogram>

<histogram name="Sync.FreqPreferences" units="ms">
  <obsolete>
    Deprecated 03/2018 (M67). Replaced by Sync.SyncCycleInterval.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time between nudges for preferences. Used as estimate of datatype commit
    frequency. Logged when a sync cycle is performed for preferences.
  </summary>
</histogram>

<histogram name="Sync.FreqSearchEngines" units="ms">
  <obsolete>
    Deprecated 03/2018 (M67). Replaced by Sync.SyncCycleInterval.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time between nudges for search engines. Used as estimate of datatype commit
    frequency. Logged when a sync cycle is performed for search engines.
  </summary>
</histogram>

<histogram name="Sync.FreqSessions" units="ms">
  <obsolete>
    Deprecated 03/2018 (M67). Replaced by Sync.SyncCycleInterval.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time between nudges for sessions. Used as estimate of datatype commit
    frequency. Logged when a sync cycle is performed for sessions.
  </summary>
</histogram>

<histogram name="Sync.FreqSyncedNotifications" units="ms">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time between nudges for synced notifications. Used as estimate of datatype
    commit frequency. Logged when a sync cycle is performed for synced
    notifications.
  </summary>
</histogram>

<histogram name="Sync.FreqThemes" units="ms">
  <obsolete>
    Deprecated 03/2018 (M67). Replaced by Sync.SyncCycleInterval.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time between nudges for themes. Used as estimate of datatype commit
    frequency. Logged when a sync cycle is performed for themes.
  </summary>
</histogram>

<histogram name="Sync.FreqTypedUrls" units="ms">
  <obsolete>
    Deprecated 03/2018 (M67). Replaced by Sync.SyncCycleInterval.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time between nudges for typed urls. Used as estimate of datatype commit
    frequency. Logged when a sync cycle is performed for typed urls.
  </summary>
</histogram>

<histogram name="Sync.FreqWifiCredentials" units="ms">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time between nudges for WiFi credentials. Used as estimate of datatype
    commit frequency. Logged when a sync cycle is performed for WiFi
    credentials.
  </summary>
</histogram>

<histogram name="Sync.GlobalIdConflict" units="SyncGlobalIdConflict">
  <owner>skym@chromium.org</owner>
  <summary>
    Two navigations with different unique_ids shared a global_id/timestmap. This
    means that user events will be ambiguously referencing navigations.
  </summary>
</histogram>

<histogram name="Sync.InitialState" enum="SyncInitialState">
  <owner>treib@chromium.org</owner>
  <owner>mastiz@chromium.org</owner>
  <summary>
    An approximate state of sync at startup. Logs a few reasons sync definitely
    wouldn't be able to start, or that it probably can start. The user having
    turned off sync on mobile will be logged as &quot;turned off by user&quot;.
    A dashboard stop and clear will fall under &quot;turned off and setup not
    completed&quot;. See the SyncInitialState enum in profile_sync_service.cc
    for more information.
  </summary>
</histogram>

<histogram base="true" name="Sync.InvalidationPerModelType"
    enum="SyncModelTypes" expires_after="M75">
  <owner>melandory@chromium.org</owner>
  <summary>
    Histogram tracks the number of invalidations received per sync data type.
  </summary>
</histogram>

<histogram name="Sync.InvalidationSessionsAndroid" enum="BooleanHit">
  <obsolete>
    Deprecated as of 5/2016.
  </obsolete>
  <owner>pkotwicz@chromium.org</owner>
  <summary>
    Count of the number of session sync invalidations. The goal of the metric is
    to track how the number of session sync invalidations changes over time.
  </summary>
</histogram>

<histogram name="Sync.KeystoreDecryptionFailed"
    enum="SyncKeystoreDecryptionFailure">
  <owner>zea@chromium.org</owner>
  <summary>
    The reason for a failure decrypting the keystore decryptor token.
  </summary>
</histogram>

<histogram name="Sync.Local.Enabled" enum="BooleanEnabled">
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    Tracks the number of times the local sync backend was enabled by the user.
  </summary>
</histogram>

<histogram name="Sync.Local.FileSize" units="KB">
  <owner>pastarmovj@chromium.org</owner>
  <summary>Tracks the size of the local sync backend database file.</summary>
</histogram>

<histogram name="Sync.Local.RequestTypeOnError" enum="SyncRequestType">
  <owner>skym@chromium.org</owner>
  <summary>
    Tracks the types of requests that caused errors inside of the local server.
  </summary>
</histogram>

<histogram name="Sync.Local.RoamingProfileUnavailable" enum="BooleanError">
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    Tracks the number of times the Roaming profile cannot be retrieved.
  </summary>
</histogram>

<histogram name="Sync.LocalDataFailedToLoad" enum="SyncModelTypes">
  <owner>vasilii@chromium.org</owner>
  <summary>
    Counts cases when a sync type failed to load the local data during startup.
  </summary>
</histogram>

<histogram name="Sync.LocalModelOutOfSync" enum="SyncModelTypes">
  <owner>zea@chromium.org</owner>
  <summary>
    Counts instances of out of sync local models detected during startup.
  </summary>
</histogram>

<histogram name="Sync.LostNavigationCount" units="navigations">
  <owner>pnoland@chromium.org</owner>
  <summary>
    Counts instances of navigations that are recorded locally but not synced.
    Recorded once per active tab for every inferred sync cycle. Sync cycles are
    inferred by examining the is_synced and is_syncing flags of sync directories
    when recording local changes to tabs or windows. Sync cycles that occur
    without changes to tabs or windows won't cause this metric to be logged.
  </summary>
</histogram>

<histogram name="Sync.MemoryPressureWarningBeforeCleanShutdown" units="count">
  <owner>gangwu@chromium.org</owner>
  <summary>
    Counts the number of times a user's sync service received a
    MEMORY_PRESSURE_LEVEL_CRITICAL warning before the sync service shut down
    cleanly. The sync service emits this number the next time the user's sync
    service is started, which will likely happen the next time the user's
    profile is opened after a Chrome restart. This count is emitted once per
    user/profile. Things like browser crashes that implicitly bring down all
    users' sync services will cause unclean shutdown tags to appear on all open
    profiles, meaning that there will be multiple emissions to this histogram as
    those profiles are re-opened.
  </summary>
</histogram>

<histogram name="Sync.MemoryPressureWarningBeforeUncleanShutdown" units="count">
  <owner>gangwu@chromium.org</owner>
  <summary>
    Counts the number of times a user's sync service received a
    MEMORY_PRESSURE_LEVEL_CRITICAL warning before the sync service shut down
    uncleanly. The sync service emits this number the next time the user's sync
    service is started, which will likely happen the next time the user's
    profile is opened after a Chrome restart. This count is emitted once per
    user/profile. Things like browser crashes that implicitly bring down all
    users' sync services will cause unclean shutdown tags to appear on all open
    profiles, meaning that there will be multiple emissions to this histogram as
    those profiles are re-opened.
  </summary>
</histogram>

<histogram base="true" name="Sync.ModelTypeConfigurationTime.Ephemeral"
    units="ms" expires_after="2020-05-01">
  <owner>jkrcal@chromium.org</owner>
  <owner>mastiz@chromium.org</owner>
  <summary>
    Recorded once per activation of an ephemeral (in-memory) data type; the
    value is the duration of the setup (time from the start of the configuration
    of sync until the data type receives all its sync data and the data is ready
    for the user). This metric is used for monitoring general health of sync
    client-side code. Note: This is only recorded with a data type suffix. The
    base version is never recorded.
  </summary>
</histogram>

<histogram name="Sync.ModelTypeCount" units="entries">
  <obsolete>
    Deprecated as of 7/2018. Replaced by Sync.ModelTypeCount2 which does record
    data consistently for both directory data types and USS data types.
  </obsolete>
  <owner>gangwu@chromium.org</owner>
  <summary>
    Counts the number of entries for each model type in sync DB at startup.
  </summary>
</histogram>

<histogram base="true" name="Sync.ModelTypeCount2" units="entries"
    expires_after="2020-02-01">
  <obsolete>
    Deprecated as of 8/2018. Replaced by Sync.ModelTypeCount3 which fixes a bug
    in recording the counts for USS data types
  </obsolete>
  <owner>gangwu@chromium.org</owner>
  <summary>
    Counts the number of entries for each model type. For directory types, the
    count is based on the directory contents, for USS types, the count is based
    on metadata entries for the type. Recorded after sync configuration. This
    metric is used for monitoring general health of sync client-side code.
  </summary>
</histogram>

<histogram base="true" name="Sync.ModelTypeCount3" units="entries"
    expires_after="2020-03-01">
  <obsolete>
    Deprecated as of 9/2018. Replaced by Sync.ModelTypeCount4 which fixes a
    off-by-one bug that the root node get also recorded for directory data
    types.
  </obsolete>
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Counts the number of entries for each model type. For directory types, the
    count is based on the directory contents, for USS types, the count is based
    on metadata entries for the type. Recorded after sync configuration. This
    metric is used for monitoring general health of sync client-side code.
  </summary>
</histogram>

<histogram base="true" name="Sync.ModelTypeCount4" units="entries"
    expires_after="2020-04-01">
  <owner>jkrcal@chromium.org</owner>
  <owner>mastiz@chromium.org</owner>
  <summary>
    Counts the number of entries for each model type. For directory types, the
    count is based on the directory contents (excl. the root node), for USS
    types, the count is based on metadata entries for the type. Recorded after
    sync configuration. This metric is used for monitoring general health of
    sync client-side code.
  </summary>
</histogram>

<histogram base="true" name="Sync.ModelTypeEntityChange"
    enum="SyncEntityChange" expires_after="2020-02-01">
  <obsolete>
    Deprecated as of 10/2018. Replaced by Sync.ModelTypeEntityChange3 which
    splits initial remote updates from incremental remote updates.
  </obsolete>
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Recorded once for every sync entity change (whenever it is commited to the
    server or updated from the server). This metric is used for monitoring
    general health of sync client-side code. Note: This is only recorded with a
    data type suffix. The base version is never recorded.
  </summary>
</histogram>

<histogram base="true" name="Sync.ModelTypeEntityChange2"
    enum="SyncEntityChange" expires_after="2020-04-01">
  <obsolete>
    Deprecated as of 11/2018. Replaced by Sync.ModelTypeEntityChange3 which
    fixes a bug affecting a subset of datatypes (directory codepath).
  </obsolete>
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Recorded once for every sync entity change (whenever it is commited to the
    server or updated from the server). This metric is used for monitoring
    general health of sync client-side code. Note: This is only recorded with a
    data type suffix. The base version is never recorded.
  </summary>
</histogram>

<histogram base="true" name="Sync.ModelTypeEntityChange3"
    enum="SyncEntityChange" expires_after="2020-04-01">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Recorded once for every sync entity change (whenever it is commited to the
    server or updated from the server). This metric is used for monitoring
    general health of sync client-side code. Note: This is only recorded with a
    data type suffix. The base version is never recorded.
  </summary>
</histogram>

<histogram base="true" name="Sync.ModelTypeMemoryKB" units="KB"
    expires_after="2020-02-01">
  <owner>mastiz@chromium.org</owner>
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Estimated memory usage by sync datatype in kilobytes. Recorded after sync
    configuration. This metric is used for monitoring general health of sync
    client-side code.
  </summary>
</histogram>

<histogram name="Sync.ModelTypeOrphanMetadata" enum="SyncModelTypes"
    expires_after="2019-09-01">
  <owner>jkrcal@chromium.org</owner>
  <owner>mastiz@chromium.org</owner>
  <summary>
    Records whenever an orphan metadata is encountered by the
    ClientTagBasedModelTypeProcessor (when GetLocalChanges() gets called by the
    worker).
  </summary>
</histogram>

<histogram name="Sync.ModelTypeRedundantPut" enum="SyncModelTypes"
    expires_after="2019-09-01">
  <owner>mastiz@chromium.org</owner>
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Records the model type when a local change is made and sync optimized it
    away because nothing actually changed.
  </summary>
</histogram>

<histogram name="Sync.ModelTypeStoreCommitCount" enum="SyncModelTypes"
    expires_after="2019-03-01">
  <owner>mastiz@chromium.org</owner>
  <summary>
    Records the number of write batches committed to leveldb
    (ModelTypeStoreBackend) per datatype.
  </summary>
</histogram>

<histogram name="Sync.ModelTypeStoreInitResult"
    enum="SyncModelTypeStoreInitResult">
  <owner>mastiz@chromium.org</owner>
  <summary>
    Records the result of ModelTypeStoreBackend initialization. Used to analyze
    frequency and causes of backend initialization failures.
  </summary>
</histogram>

<histogram name="Sync.NigoriMigrationState" enum="SyncNigoriMigrationState">
  <owner>zea@chromium.org</owner>
  <summary>Breakdown of sync's nigori node keystore migration state.</summary>
</histogram>

<histogram base="true" name="Sync.NonGroupedInvalidation" enum="SyncModelTypes"
    expires_after="M75">
  <owner>melandory@chromium.org</owner>
  <summary>
    The number of invalidations received per sync data type for cases when only
    single invalidation was emited by the invalidation component. In some cases
    the invalidation component emits many invalidations grouped together, this
    histogram doesn't track those cases.
  </summary>
</histogram>

<histogram base="true" name="Sync.NonGroupedInvalidationKnownVersion"
    enum="SyncModelTypes" expires_after="M75">
  <owner>melandory@chromium.org</owner>
  <summary>
    The sync datatype of the recieved invalidation. Recorded only for the
    invalidations with known version and recieved not in a group.
  </summary>
</histogram>

<histogram name="Sync.NonReflectionUpdateFreshnessPossiblySkewed" units="ms">
  <owner>mastiz@chromium.org</owner>
  <owner>melandory@chromium.org</owner>
  <summary>
    Freshness of the sync data per received sync entity update, excluding
    reflections. The time represents the clock difference from the model being
    modified (usually on another device) until the change is processing by this
    instance of the browser. Beware of potential clock skew due to two clients
    being involved.
  </summary>
</histogram>

<histogram name="Sync.PageRevisitBookmarksDuration" units="ms">
  <obsolete>
    Deprecated in M66.
  </obsolete>
  <owner>skym@chromium.org</owner>
  <summary>
    The client side execution time to check for revisits with bookmarks data.
  </summary>
</histogram>

<histogram name="Sync.PageRevisitBookmarksMatchAge" units="minutes">
  <obsolete>
    Deprecated in M66.
  </obsolete>
  <owner>skym@chromium.org</owner>
  <summary>
    Age of bookmark that matches a navigation event, where matching means the
    urls match. If multiple bookmarks match, the most recently created is used.
  </summary>
</histogram>

<histogram name="Sync.PageRevisitBookmarksMatchTransition"
    enum="PageVisitTransitionType">
  <obsolete>
    Deprecated in M66.
  </obsolete>
  <owner>skym@chromium.org</owner>
  <summary>Transition type to a page that matched a bookmark.</summary>
</histogram>

<histogram name="Sync.PageRevisitBookmarksMissTransition"
    enum="PageVisitTransitionType">
  <obsolete>
    Deprecated in M66.
  </obsolete>
  <owner>skym@chromium.org</owner>
  <summary>Transition type to a page that didn't match a bookmark.</summary>
</histogram>

<histogram name="Sync.PageRevisitNavigationMatchAge" units="minutes">
  <obsolete>
    Deprecated in M66.
  </obsolete>
  <owner>skym@chromium.org</owner>
  <summary>
    Difference in time between finding the match and the creation of the most
    recent foreign modification of the parent tab. The parent tab's modification
    will not always be indicative of when the matching navigation occurred.
  </summary>
</histogram>

<histogram name="Sync.PageRevisitNavigationMatchOffset">
  <obsolete>
    Deprecated in M66.
  </obsolete>
  <owner>skym@chromium.org</owner>
  <summary>
    The number of navigations forward or backwards the matching noncurrent
    navigation is from the current navigation in its tab. Negative values
    represent backwards and positive values represent forwards. Zero should not
    occur since it would cease to be noncurrent.
  </summary>
</histogram>

<histogram name="Sync.PageRevisitNavigationMatchTransition"
    enum="PageVisitTransitionType">
  <obsolete>
    Deprecated in M66.
  </obsolete>
  <owner>skym@chromium.org</owner>
  <summary>Transition type that matched a synced navigation.</summary>
</histogram>

<histogram name="Sync.PageRevisitNavigationMissTransition"
    enum="PageVisitTransitionType">
  <obsolete>
    Deprecated in M66.
  </obsolete>
  <owner>skym@chromium.org</owner>
  <summary>Transition type that didn't match a synced navigation.</summary>
</histogram>

<histogram name="Sync.PageRevisitSessionDuration" units="ms">
  <obsolete>
    Deprecated in M66.
  </obsolete>
  <owner>skym@chromium.org</owner>
  <summary>
    The client side execution time to check for revisits with session data.
  </summary>
</histogram>

<histogram name="Sync.PageRevisitTabMatchAge" units="minutes">
  <obsolete>
    Deprecated in M66.
  </obsolete>
  <owner>skym@chromium.org</owner>
  <summary>
    Difference in time between finding the match and the creation of the most
    recent foreign modification of the given tab.
  </summary>
</histogram>

<histogram name="Sync.PageRevisitTabMatchTransition"
    enum="PageVisitTransitionType">
  <obsolete>
    Deprecated in M66.
  </obsolete>
  <owner>skym@chromium.org</owner>
  <summary>Transition type that matched a synced tab.</summary>
</histogram>

<histogram name="Sync.PageRevisitTabMissTransition"
    enum="PageVisitTransitionType">
  <obsolete>
    Deprecated in M66.
  </obsolete>
  <owner>skym@chromium.org</owner>
  <summary>Transition type that didn't match a synced tab.</summary>
</histogram>

<histogram name="Sync.PageRevisitTypedUrlDuration" units="ms">
  <obsolete>
    Deprecated in M66.
  </obsolete>
  <owner>skym@chromium.org</owner>
  <summary>
    The client side execution time to check for revisits with typed URL data.
  </summary>
</histogram>

<histogram name="Sync.PageRevisitTypedUrlMatchAge" units="minutes">
  <obsolete>
    Deprecated in M66.
  </obsolete>
  <owner>skym@chromium.org</owner>
  <summary>
    Difference in time between finding the match and the last time this URL was
    typed on a foreign client.
  </summary>
</histogram>

<histogram name="Sync.PageRevisitTypedUrlMatchTransition"
    enum="PageVisitTransitionType">
  <obsolete>
    Deprecated in M66.
  </obsolete>
  <owner>skym@chromium.org</owner>
  <summary>Transition type that matched a typed URL.</summary>
</histogram>

<histogram name="Sync.PageRevisitTypedUrlMissTransition"
    enum="PageVisitTransitionType">
  <obsolete>
    Deprecated in M66.
  </obsolete>
  <owner>skym@chromium.org</owner>
  <summary>Transition type that didn't match a typed URL.</summary>
</histogram>

<histogram name="Sync.PartiallySyncedTypes">
  <owner>zea@chromium.org</owner>
  <summary>
    Number of partially synced types (those with a progress marker but no
    initial sync ended bit) that exist at sync startup.
  </summary>
</histogram>

<histogram name="Sync.PassphraseDecryptionSucceeded" enum="BooleanSuccess">
  <owner>zea@chromium.org</owner>
  <summary>Whether a passphrase decryption attempt succeeded or not.</summary>
</histogram>

<histogram name="Sync.PassphraseDialogDismissed" enum="SyncPassphraseDismissal">
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of how a user dismissed the passphrase dialog.</summary>
</histogram>

<histogram name="Sync.PassphraseType" enum="SyncPassphraseType">
  <owner>treib@chromium.org</owner>
  <owner>mastiz@chromium.org</owner>
  <summary>The active sync passphrase type at sync startup.</summary>
</histogram>

<histogram name="Sync.PasswordAssociationTime" units="ms">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time taken during password association (M18 and earlier were mispelled with
    this histogram).
  </summary>
</histogram>

<histogram name="Sync.PasswordRunFailures">
  <obsolete>
    Deprecated as of m19.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Count of passwords run failures, used to compare failure rates between data
    types for a particular profile (see other Sync*RunFailures histograms).
  </summary>
</histogram>

<histogram name="Sync.PasswordsStartFailure" enum="SyncStartResult">
  <obsolete>
    Replaced by PasswordsConfigureFailure. See crbug.com/478226.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of types of password association failures.</summary>
</histogram>

<histogram name="Sync.PasswordStartFailures" enum="SyncStartResult">
  <obsolete>
    Deprecated as of m19.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of password association failures (M18 and earlier were
    mispelled with this histogram).
  </summary>
</histogram>

<histogram name="Sync.PostedClientToServerMessage"
    enum="SyncClientToServerMessageContents">
  <owner>mastiz@chromium.org</owner>
  <summary>
    Number of network requests issued by sync to the sync server, grouped by
    content type.
  </summary>
</histogram>

<histogram name="Sync.PostedClientToServerMessageError" enum="SyncErrorType">
  <owner>mastiz@chromium.org</owner>
  <summary>
    A sync error code received from the sync server as a result of a
    client-initiated request. Note that this excludes network errors (e.g.
    client offline) and HTTP errors.
  </summary>
</histogram>

<histogram name="Sync.PostedClientToServerMessageLatency" units="ms">
  <owner>mastiz@chromium.org</owner>
  <summary>
    Time taken for a client-initiated request to be sent over the network and
    receive the response from the sync server.
  </summary>
</histogram>

<histogram name="Sync.PostedDataTypeGetUpdatesRequest" enum="SyncModelTypes">
  <owner>mastiz@chromium.org</owner>
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Emitted per network GetUpdates() request to the sync server and datatype. It
    represents how much load each datatype puts on the server. Note that the sum
    across buckets does not represent the total number of requests sent to the
    server, since multiple datatypes can be grouped in a single request. See
    Sync.PostedClientToServerMessage for the total number of requests/messages.
  </summary>
</histogram>

<histogram name="Sync.PostedGetUpdatesOrigin" enum="SyncGetUpdatesOrigin">
  <owner>mastiz@chromium.org</owner>
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Emitted per network GetUpdates() request to the sync server, it represents
    the reason for sending such GetUpdates() request.
  </summary>
</histogram>

<histogram name="Sync.PreferenceAssociationTime" units="ms">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time taken during preference association (M18 and earlier were mispelled
    with this histogram).
  </summary>
</histogram>

<histogram name="Sync.PreferenceRunFailures">
  <obsolete>
    Deprecated as of m19.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Count of preferences run failures, used to compare failure rates between
    data types for a particular profile (see other Sync*RunFailures histograms).
  </summary>
</histogram>

<histogram name="Sync.Preferences.ClearedLocalPrefOnTypeMismatch"
    units="BooleanHit">
  <owner>tschumann@chromium.org</owner>
  <owner>treib@chromium.org</owner>
  <summary>
    Counts the number of times a syncable pref got registered using a type that
    mismatched the type present in the pref store. In these events, the
    persisted value gets removed from the pref store.
  </summary>
</histogram>

<histogram name="Sync.Preferences.RemotePrefTypeMismatch" units="BooleanHit">
  <owner>tschumann@chromium.org</owner>
  <owner>treib@chromium.org</owner>
  <summary>
    Counts the number of times a client received a remote pref update with a
    value type different from the registered pref type. The client will ignore
    those remote updates.
  </summary>
</histogram>

<histogram name="Sync.Preferences.SyncingUnknownPrefs" units="prefs">
  <owner>tschumann@chromium.org</owner>
  <owner>treib@chromium.org</owner>
  <summary>
    The number of unknown prefs being synced. This number is computed after the
    sync model has been associated. Preferences which get handled by sync even
    before being registered are considered &quot;unknown&quot;. This might be
    limited to a whitelist of preferences.
  </summary>
</histogram>

<histogram name="Sync.PreferencesStartFailure" enum="SyncStartResult">
  <obsolete>
    Replaced by PreferencesConfigureFailure. See crbug.com/478226.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of types of preference association failures.</summary>
</histogram>

<histogram name="Sync.PreferenceStartFailures" enum="SyncStartResult">
  <obsolete>
    Deprecated as of m19.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of preference association failures (M18 and earlier
    were mispelled with this histogram).
  </summary>
</histogram>

<histogram name="Sync.ReauthorizationTime" units="ms">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>Time taken from startup for the user to reauthorize.</summary>
</histogram>

<histogram base="true" name="Sync.ReceivedDataTypeGetUpdatesResponseWithToken"
    enum="SyncGetUpdatesToken" expires_after="2019-06-01">
  <owner>jkrcal@chromium.org</owner>
  <owner>mastiz@chromium.org</owner>
  <summary>
    Recorded for each GetUpdates response (and each data type included). Records
    whether the newly received token is new (as this data type had none before)
    or whether it is the same as before or whether it has changed.
  </summary>
</histogram>

<histogram name="Sync.RefreshTokenAvailable" enum="BooleanSuccess">
  <obsolete>
    Deprecated 04/2016 as not useful since it always logged true.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Whether OAuth2 refresh token was available at the time when
    ProfileSyncService was starting backend.
  </summary>
</histogram>

<histogram name="Sync.RequestContentLength.Compressed" units="bytes">
  <owner>gangwu@chromium.org</owner>
  <summary>
    The request content size for a single HTTP/HTTPS call from sync client to
    server. The content is compressed by gzip.
  </summary>
</histogram>

<histogram name="Sync.RequestContentLength.Original" units="bytes">
  <owner>gangwu@chromium.org</owner>
  <summary>
    The original request content size for a single HTTP/HTTPS call from sync
    client to server. It is the size before content got compressed.
  </summary>
</histogram>

<histogram name="Sync.ResolveConflict" enum="SyncConflictResolutions">
  <owner>treib@chromium.org</owner>
  <owner>mastiz@chromium.org</owner>
  <summary>
    Enumeration of types of conflict resolutions. Recorded every time a conflict
    is resolved for a data type that has been converted to USS.
  </summary>
</histogram>

<histogram name="Sync.ResolveSimpleConflict"
    enum="SyncSimpleConflictResolutions">
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of types of simple conflict resolutions.</summary>
</histogram>

<histogram name="Sync.ResponseContentLength.Compressed" units="bytes">
  <owner>gangwu@chromium.org</owner>
  <summary>
    The response content size for a single HTTP/HTTPS call from sync server to
    client. The content is compressed by gzip.
  </summary>
</histogram>

<histogram name="Sync.ResponseContentLength.Original" units="bytes">
  <owner>gangwu@chromium.org</owner>
  <summary>
    The original response content size for a single HTTP/HTTPS call from sync
    server and client. It is the size after content got uncompressed.
  </summary>
</histogram>

<histogram name="Sync.RestoreBackendInitializeSucess" enum="BooleanSuccess">
  <obsolete>
    Deprecated 11/2011. Was counted incorrectly. Replaced by
    Sync.BackendInitializeRestoreSuccess.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Tracks sync backend initialization success rate in cases where sync was
    previously initialized.
  </summary>
</histogram>

<histogram name="Sync.SearchEngineAssociationTime" units="ms">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time taken during search engine association (M18 and earlier were mispelled
    with this histogram).
  </summary>
</histogram>

<histogram name="Sync.SearchEngineRunFailures">
  <obsolete>
    Deprecated as of m19.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Count of search engine run failures, used to compare failure rates between
    data types for a particular profile (see other Sync*RunFailures histograms).
  </summary>
</histogram>

<histogram name="Sync.SearchEnginesStartFailure" enum="SyncStartResult">
  <obsolete>
    Replaced by SearchEnginesConfigureFailure. See crbug.com/478226.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of types of search engine association failures.</summary>
</histogram>

<histogram name="Sync.SearchEngineStartFailures" enum="SyncStartResult">
  <obsolete>
    Deprecated as of m19.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of search engine association failures (M18 and earlier
    were mispelled with this histogram).
  </summary>
</histogram>

<histogram name="Sync.ServiceInitialConfigureTime" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>
    Time spent on first-time configure. May include time spent on retries.
  </summary>
</histogram>

<histogram name="Sync.ServiceSubsequentConfigureTime" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>
    Time spent on non-first-time configure. May include time spent on retries.
  </summary>
</histogram>

<histogram name="Sync.SessionAssociationTime" units="ms">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time taken during session association (M18 and earlier were mispelled with
    this histogram).
  </summary>
</histogram>

<histogram name="Sync.SessionRunFailures">
  <obsolete>
    Deprecated as of m19.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Count of sessions run failures, used to compare failure rates between data
    types for a particular profile (see other Sync*RunFailures histograms).
  </summary>
</histogram>

<histogram name="Sync.SessionsBadForeignHashOnMergeCount"
    units="Sessions Entries">
  <owner>skym@chromium.org</owner>
  <summary>
    Number of foreign sessions entries detected with bad client tag hash value
    during MergeDataAndStartSyncing. These will be immediately deleted. The
    overwhelming majority of clients should report a value of 0 upon startup.
  </summary>
</histogram>

<histogram name="Sync.SessionsRefreshDelay" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>
    Delay from the time chrome://history is loaded until the other devices'
    sessions data became available.
  </summary>
</histogram>

<histogram name="Sync.SessionsStartFailure" enum="SyncStartResult">
  <obsolete>
    Replaced by SessionsConfigureFailure. See crbug.com/478226.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of types of session association failures.</summary>
</histogram>

<histogram name="Sync.SessionStartFailures" enum="SyncStartResult">
  <obsolete>
    Deprecated as of m19.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of session association failures (M18 and earlier were
    mispelled with this histogram).
  </summary>
</histogram>

<histogram name="Sync.SessionTabs" units="tabs">
  <owner>zea@chromium.org</owner>
  <summary>
    For each Chrome window, records the number of tabs present at the time Sync
    associates the SESSIONS datatype.
  </summary>
</histogram>

<histogram name="Sync.SessionWindows" units="windows">
  <owner>zea@chromium.org</owner>
  <summary>
    The number of windows present within Chrome at the time Sync associates the
    SESSIONS datatype.
  </summary>
</histogram>

<histogram name="Sync.SesssionsDuplicateSyncId" units="count">
  <obsolete>
    Deprecated in M69.
  </obsolete>
  <owner>mastiz@chromium.org</owner>
  <summary>
    https://crbug.com/639009, count of duplicate sync ids (tab node id) when any
    are encountered. Likely caused from a persistence race between native tab
    storage and sync db on Android. Should be trending to zero.
  </summary>
</histogram>

<histogram name="Sync.Shutdown.BackendDestroyedTime" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>
    Time taken from the start of sync shutdown (in ProfileSyncService) until the
    backend (SyncEngine) is fully destroyed.
  </summary>
</histogram>

<histogram name="Sync.Shutdown.StopRegistrarTime" units="ms">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Amount of time the UI thread waits (at shutdown) to stop the
    SyncBackendRegistrar.
  </summary>
</histogram>

<histogram name="Sync.Shutdown.StopSyncThreadTime" units="ms">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Amount of time the UI thread waits (at shutdown) to stop the sync thread.
  </summary>
</histogram>

<histogram name="Sync.Startup.DeferredInitTrigger"
    enum="SyncDeferredInitTrigger">
  <owner>zea@chromium.org</owner>
  <summary>The type of event that triggered sync initialization.</summary>
</histogram>

<histogram name="Sync.Startup.TimeDeferred" units="ms">
  <obsolete>
    Deprecated, see TimeDeferred2.
  </obsolete>
  <owner>jeremy@chromium.org</owner>
  <owner>zea@google.com</owner>
  <summary>
    Time spent after ProfileSyncService *creation* but before SyncEngine
    initialization.
  </summary>
</histogram>

<histogram name="Sync.Startup.TimeDeferred2" units="ms">
  <owner>zea@google.com</owner>
  <summary>
    Time spent after ProfileSyncService *creation* but before SyncEngine
    initialization.
  </summary>
</histogram>

<histogram name="Sync.Startup.TypeTriggeringInit" enum="SyncModelTypes">
  <owner>zea@chromium.org</owner>
  <summary>Data type that first requests sync initialization.</summary>
</histogram>

<histogram name="Sync.StopSource" enum="SyncStopSource">
  <owner>treib@chromium.org</owner>
  <owner>mastiz@chromium.org</owner>
  <summary>
    Tracks how sync was turned off. Logged every time sync is told to stop
    permanently by the user (e.g. it won't come back on by itself).
  </summary>
</histogram>

<histogram name="Sync.SyncAuthError" enum="SyncAuthError">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Counts the number of times sync clients have encountered an auth error and
    number of times auth errors are fixed.
  </summary>
</histogram>

<histogram name="Sync.SyncCycleInterval" units="ms">
  <obsolete>
    Removed 2019-03.
  </obsolete>
  <owner>treib@chromium.org</owner>
  <summary>
    The interval between successive sync cycles. Recorded whenever a sync cycle
    starts, except for the very first one after Chrome startup.
  </summary>
</histogram>

<histogram name="Sync.SyncedNotificationsStartFailure" enum="SyncStartResult">
  <obsolete>
    Deprecated in M53. Replaced by SyncedNotificationsConfigureFailure. See
    crbug.com/478226.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of synced notifications association failures.
  </summary>
</histogram>

<histogram name="Sync.SyncerConflictStuck">
  <obsolete>
    Deprecated 12/2011. No longer tracked. See crbug.com/107816.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Number of times the sync conflict resolver gets stuck. This is not expected
    to be hit anymore.
  </summary>
</histogram>

<histogram name="Sync.SyncErrorInfobarDisplayed" enum="SyncErrorInfobarTypes">
  <owner>droger@chromium.org</owner>
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of error conditions that displays an infobar to the user.
  </summary>
</histogram>

<histogram name="Sync.SyncEverything">
  <obsolete>
    Deprecated 10/2018, replaced by Sync.SyncEverything2.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Boolean histogram for whether the &quot;Sync Everything&quot; option was
    selected during sync setup. Samples are taken every time sync is
    (re)configured, and the unique userid count shows how many users chose to
    sync all available data types.
  </summary>
</histogram>

<histogram name="Sync.SyncEverything2" enum="Boolean">
  <owner>treib@chromium.org</owner>
  <summary>
    Boolean histogram for whether the &quot;Sync Everything&quot; option was
    selected by the user. Samples are taken every time the Sync data types are
    (re)configured, which typically happens during startup and when the user
    changes any Sync settings.
  </summary>
</histogram>

<histogram name="Sync.ThemeAssociationTime" units="ms">
  <obsolete>
    Deprecated as of m19
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time taken during theme association (M18 and earlier were mispelled with
    this histogram).
  </summary>
</histogram>

<histogram name="Sync.ThemeRunFailures">
  <obsolete>
    Deprecated as of m19.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Count of theme run failures, used to compare failure rates between data
    types for a particular profile (see other Sync*RunFailures histograms).
  </summary>
</histogram>

<histogram name="Sync.ThemesStartFailure" enum="SyncStartResult">
  <obsolete>
    Replaced by ThemesConfigureFailure. See crbug.com/478226.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of types of theme association failures.</summary>
</histogram>

<histogram name="Sync.ThemeStartFailures" enum="SyncStartResult">
  <obsolete>
    Deprecated as of m19.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of theme association failures (M18 and earlier were
    mispelled with this histogram).
  </summary>
</histogram>

<histogram name="Sync.TypedUrlAssociationTime" units="ms">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Time taken during typed url association (M18 and earlier were mispelled with
    this histogram).
  </summary>
</histogram>

<histogram name="Sync.TypedUrlChangeProcessorErrors" units="%">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    The percentage of history DB operations initiated by the typed URL change
    processor that return an error. The cumulative count for the current sync
    session is logged after every typed URL change.
  </summary>
</histogram>

<histogram name="Sync.TypedUrlMergeAndStartSyncingErrors" units="%">
  <owner>zea@chromium.org</owner>
  <summary>
    The percentage of history DB operations during merge data that return an
    error. This is logged at the end of typed URL merge data, which happens once
    each time sync starts up.
  </summary>
</histogram>

<histogram name="Sync.TypedUrlModelAssociationErrors" units="%">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    The percentage of history DB operations during model association that return
    an error. This is logged at the end of typed URL model association, which
    happens once each time sync starts up.
  </summary>
</histogram>

<histogram name="Sync.TypedUrlRunFailures">
  <obsolete>
    Deprecated as of m19.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Count of typed url run failures, used to compare failure rates between data
    types for a particular profile (see other Sync*RunFailures histograms).
  </summary>
</histogram>

<histogram name="Sync.TypedUrlsStartFailure" enum="SyncStartResult">
  <obsolete>
    Replaced by TypedUrlsConfigureFailure. See crbug.com/478226.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of types of typed url association failures.</summary>
</histogram>

<histogram name="Sync.TypedUrlStartFailures" enum="SyncStartResult">
  <obsolete>
    Deprecated as of m19.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of typed url association failures (M18 and earlier were
    mispelled with this histogram).
  </summary>
</histogram>

<histogram name="Sync.UnrecoverableErrors" enum="SyncUnrecoverableErrorReason">
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of the different reasons for unrecoverable errors and how often
    they have occurred.
  </summary>
</histogram>

<histogram name="Sync.URLFetchResponse"
    enum="CombinedHttpResponseAndNetErrorCode">
  <owner>zea@chromium.org</owner>
  <summary>
    Counts of responses (both http code and net error code) for Sync URL
    fetches.
  </summary>
</histogram>

<histogram name="Sync.URLFetchTime" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>
    Time spent waiting for a sync cycle to complete the url fetch.
  </summary>
</histogram>

<histogram name="Sync.URLFetchTimedOut" enum="BooleanTimedOut">
  <owner>zea@chromium.org</owner>
  <summary>
    Whether a url fetch timed out or not. Timing out implies the fetch was
    stalled for an unknown reason.
  </summary>
</histogram>

<histogram name="Sync.UserPerceivedAuthorizationTime" units="ms">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>Time the user spends looking at the authorization dialog.</summary>
</histogram>

<histogram name="Sync.UserPerceivedBookmarkAssociation">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>Time taken during bookmark association.</summary>
</histogram>

<histogram name="Sync.USSLoadModelsTime" units="ms">
  <owner>pavely@chromium.org</owner>
  <summary>Time it took sync to load models for USS datatypes.</summary>
</histogram>

<histogram base="true" name="Sync.USSMigrationEntityCount" units="entries"
    expires_after="2020-02-01">
  <owner>mastiz@chromium.org</owner>
  <summary>
    Counts the number of sync entities per model type successfully migrated from
    directory to USS.
  </summary>
</histogram>

<histogram name="Sync.USSMigrationFailure" enum="SyncModelTypes">
  <owner>treib@chromium.org</owner>
  <owner>mastiz@chromium.org</owner>
  <summary>Counts directory to USS migration failures per model type.</summary>
</histogram>

<histogram name="Sync.USSMigrationSuccess" enum="SyncModelTypes">
  <owner>treib@chromium.org</owner>
  <owner>mastiz@chromium.org</owner>
  <summary>Counts directory to USS migration successes per model type.</summary>
</histogram>

<histogram name="Sync.Wallet.EntitiesClearedWhenDisabled" units="entities"
    expires_after="M74">
  <owner>jkrcal@chromium.org</owner>
  <owner>feuunk@chromium.org</owner>
  <summary>
    Counts number of data entities that are removed when sync / Wallet sync gets
    disabled.
  </summary>
</histogram>

<histogram name="Sync.WifiCredentialsAssociationTime" units="ms">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>Time taken during WiFi credentials association.</summary>
</histogram>

<histogram name="Sync.WifiCredentialsConfigureFailure"
    enum="SyncConfigureResult">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of WiFi credentials configuration failures.
  </summary>
</histogram>

<histogram name="Sync.WifiCredentialsStartFailure" enum="SyncStartResult">
  <obsolete>
    Replaced by WifiCredentialsConfigureFailure. See crbug.com/478226.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of WiFi credentials association failures.
  </summary>
</histogram>

<histogram name="Sync.WorkerApplyHasEncryptedUpdates" enum="Boolean">
  <obsolete>
    Deprecated in M67. After more than a year, almost all clients are reporting
    FALSE.
  </obsolete>
  <owner>skym@chromium.org</owner>
  <summary>
    Whether there are still encrypted updates that the cryptographer cannot
    decrypt during ApplyUpdates in the ModelTypeWorker (USS Only). Emitting true
    is an invalid state that hopefully never happens, as it is a potential data
    loss scenario.
  </summary>
</histogram>

<histogram name="Sync.YoungestForeignTabAgeOnNTP" units="seconds">
  <obsolete>
    Deprecated in M66.
  </obsolete>
  <owner>skym@chromium.org</owner>
  <summary>Upon NTP load, the age of the youngest synced foreign tab.</summary>
</histogram>

<histogram name="SyncedNotifications.Actions"
    enum="SyncedNotificationActionType">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>petewil@chromium.org</owner>
  <owner>zea@chromium.org</owner>
  <summary>
    The actions taken on synced notifications, recorded every time they happen.
    This histogram will record every single event that happens separately.
  </summary>
</histogram>

<histogram name="SyncFileSystem.ConflictResolutionPolicy"
    enum="SyncFSConflictResolutionPolicy">
  <owner>tzik@chromium.org</owner>
  <summary>
    Overridden conflict resolution policy of Sync FileSystem API. Recorded for
    each API call to override the policy.
  </summary>
</histogram>

<histogram name="SyncFileSystem.Database.Open" enum="LevelDBStatus">
  <owner>tzik@chromium.org</owner>
  <summary>The result of opening the Sync FileSystem backend database.</summary>
</histogram>

<histogram name="SyncFileSystem.MetadataNumber">
  <owner>tzik@chromium.org</owner>
  <summary>
    The number of cached backing remote file metadata in the Sync FileSystem
    database. Recorded at the initialization phase of Sync FileSystem.
  </summary>
</histogram>

<histogram name="SyncFileSystem.RegisteredAppNumber">
  <owner>tzik@chromium.org</owner>
  <summary>
    The number of Chrome Apps that uses Sync FileSystem with V2 backend.
    Recorded at the initialization phase of Sync FileSystem.
  </summary>
</histogram>

<histogram name="SyncFileSystem.RegisterOriginResult"
    enum="SyncFSRemoteServiceState" expires_after="2018-08-30">
  <owner>tzik@chromium.org</owner>
  <summary>
    The result of the registration of Chrome App to Sync FileSystem.
  </summary>
</histogram>

<histogram name="SyncFileSystem.RegisterOriginTime" units="ms">
  <owner>peria@chromium.org</owner>
  <owner>tzik@chromium.org</owner>
  <summary>
    Time elapsed to register a Chrome App to SyncFilesystem. Recorded for each
    registration request by apps.
  </summary>
</histogram>

<histogram name="SyncFileSystem.TrackerDB.Open" enum="LevelDBStatus"
    expires_after="2018-08-30">
  <owner>tzik@chromium.org</owner>
  <summary>The result of opening the Sync FileSystem tracker database.</summary>
</histogram>

<histogram name="SyncFileSystem.TrackerNumber">
  <owner>tzik@chromium.org</owner>
  <summary>
    The number of the directory tree node that maps backing files to local files
    in the Sync FileSystem database. Recorded at the initialization phase of
    SyncFileSystem.
  </summary>
</histogram>

<histogram name="SyncPromo.NTPPromo" enum="SyncPromoAction">
  <owner>dbeam@chromium.org</owner>
  <summary>
    Shows actions taken on the &quot;Not signed in? You're misssing out&quot;
    link on the top right of chrome://apps. Logged once per visit of
    chrome://apps as well as on each click of the sync promo.
  </summary>
</histogram>

<histogram name="Syzyasan.DeferredFreeWasEnabled" enum="BooleanEnabled">
  <owner>georgesak@chromium.org</owner>
  <summary>
    Record whether the deferred free mechanism was successfully enabled or not.
    This is only recorded in syzyasan builds with the feature enabled.
  </summary>
</histogram>

<histogram name="Tab.AgeUponRestoreFromColdStart" units="minutes">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    [Android] Age (time since the last display in previous sessions) of a tab
    being restored due to the first tab switch after the browser cold start,
    recorded upon such restore. When the browser is started from cold, this
    metric is not recorded for the foreground, automatically restored tab, so
    that the metric tracks only the restores triggered by direct user decision
    to switch tabs.
  </summary>
</histogram>

<histogram base="true" name="Tab.AndroidCrashUpload" enum="BooleanSuccess">
  <owner>wnwen@chromium.org</owner>
  <summary>[Android] Count of upload success/failures by crash type.</summary>
</histogram>

<histogram name="Tab.BackgroundLoadStatus" enum="TabBackgroundLoadStatus">
  <owner>ppi@chromium.org</owner>
  <summary>
    Mobile-specific metric: when a tab that was opened in background (via
    &quot;Open link in new tab&quot;) is switched to, we record whether the
    eagerly loaded tab was still memory resident, or we lost the loaded page due
    to memory pressure.
  </summary>
</histogram>

<histogram name="Tab.BackgroundTabShown" enum="BooleanShown">
  <owner>pkotwicz@chromium.org</owner>
  <summary>
    Whether a tab which was opened in the background (e.g. via &quot;Open link
    in new tab&quot;) is foregrounded prior to being closed.
  </summary>
</histogram>

<histogram name="Tab.BackgroundTabsOpenedViaContextMenuCount">
  <owner>pkotwicz@chromium.org</owner>
  <summary>
    Counts the number of background tabs opened via the context menu per page
    URL. The count is reset on each navigation of the parent tab. Zero counts
    are not recorded.
  </summary>
</histogram>

<histogram name="Tab.Close" units="ms">
  <obsolete>
    Removed 01/2019.
  </obsolete>
  <summary>
    Time in milliseconds from trying to close the tab to actually closing it.
    Includes time that's spent in JS OnUnload handlers.
  </summary>
</histogram>

<histogram name="Tab.Close.UnloadTime" units="ms">
  <obsolete>
    Removed 01/2019.
  </obsolete>
  <summary>
    Time in milliseconds from when JS OnUnload handlers have finished to
    actually closing tab. Doesn't include time that's spent in JS OnUnload
    handlers. If there are no UnLoad handlers, should be identical to Tab.Close.
  </summary>
</histogram>

<histogram name="Tab.Deactivation.Bookmarked" enum="Boolean">
  <obsolete>
    Deprecated 11/2016. No longer useful after finding out that it has no effect
    on tab reactivation rates.
  </obsolete>
  <owner>pmonette@chromium.org</owner>
  <summary>
    A tab was deactivated. Closing tabs are not included. This histogram also
    records if the tab's URL was bookmarked.
  </summary>
</histogram>

<histogram name="Tab.Deactivation.HadFormInteraction" enum="Boolean">
  <owner>pmonette@chromium.org</owner>
  <summary>
    A tab was deactivated. Closing tabs are not included. This histogram also
    records if the tab had any form interaction.
  </summary>
</histogram>

<histogram name="Tab.Deactivation.Pinned" enum="Boolean">
  <owner>pmonette@chromium.org</owner>
  <summary>
    A tab was deactivated. Closing tabs are not included. This histogram also
    records if the tab was pinned to the tab strip or not.
  </summary>
</histogram>

<histogram name="Tab.Discarding" enum="TabDiscardingEvents">
  <obsolete>
    Deprecated 10/2015, not needed anymore.
  </obsolete>
  <owner>georgesak@chromium.org</owner>
  <summary>
    Metric to track counts of actions related to tab discarding. Namely, we get
    an event for every tab switch, split into two groups, whether it was a
    discarded tab not. We also get an event whenever a tab gets discarded as
    well as when a tab that's playing audio gets discarded.
  </summary>
</histogram>

<histogram name="Tab.Discarding.DiscardCount" units="Discards">
  <obsolete>
    Deprecated 10/2015, and replaced by TabManager.Discarding.DiscardCount.
  </obsolete>
  <owner>georgesak@chromium.org</owner>
  <summary>
    Metric to track the number of discards tabs have gone through. Each time a
    tab is discarded, this histogram is recorded. Therefore, this metric is
    cumulative, ie. as a tab gets discarded over and over, it gets a hit in each
    bin (1, 2, 3...).
  </summary>
</histogram>

<histogram name="Tab.EvictedTabWasActive" enum="Boolean">
  <obsolete>
    Deprecated as of 10/2016.
  </obsolete>
  <summary>
    [iOS] When switching to an evicted tab, this histogram records whether or
    not the tab had ever been active. For example, the tab was opened via
    &quot;Open in new tab&quot; but evicted before being viewed for the first
    time.
  </summary>
</histogram>

<histogram name="Tab.ExternalApplicationOpened" enum="ExternalLauncherOption">
  <owner>mrefaat@chromium.org</owner>
  <summary>
    [iOS] Used on External App launcher Prompt to determine if the user clicked
    open or cancel.
  </summary>
</histogram>

<histogram name="Tab.FormActivityCountEvictedHistogram">
  <obsolete>
    Deprecated as of 10/2016.
  </obsolete>
  <summary>
    A count of form activity (e.g. fields selected, characters typed) in a tab.
    Recorded only for tabs that are evicted due to memory pressure and then
    selected again.
  </summary>
</histogram>

<histogram name="Tab.HorizontalSizeClassUsed" enum="iOSSizeClassForReporting">
  <owner>pkl@chromium.org</owner>
  <summary>
    [iOS] Used on iOS 9+ iPad to report the usage of Compact or Regular
    horizontal size class. This is logged at startup and on each size class
    change.
  </summary>
</histogram>

<histogram name="Tab.LostTabAgeWhenSwitchedToForeground" units="ms">
  <owner>pkotwicz@chromium.org</owner>
  <summary>
    [Android] When a tab that was opened in the background (e.g. via &quot;Open
    link in new tab&quot;) is evicted prior to the first time that it is shown,
    we record the tab's age at the time that the tab is shown.
  </summary>
</histogram>

<histogram name="Tab.NewTab" enum="NewTabType">
  <owner>tbergquist@chromium.org</owner>
  <owner>bsep@chromium.org</owner>
  <summary>
    Tracks the different ways users are opening new tabs. Does not apply to
    opening existing links or searches in a new tab, only to brand new empty
    tabs. Note: Currently the &quot;Regular menu option&quot; includes some
    programmatic actions in addition to user actions.
  </summary>
</histogram>

<histogram name="Tab.NewTabDOMContentLoaded" units="ms">
  <owner>kmilka@chromium.org</owner>
  <owner>ramyan@chromium.org</owner>
  <summary>
    The time for the new tab page to fire the &quot;DOMContentLoaded&quot;
    event.
  </summary>
</histogram>

<histogram name="Tab.NewTabOnload" units="ms">
  <owner>treib@chromium.org</owner>
  <owner>kmilka@chromium.org</owner>
  <owner>ramyan@chromium.org</owner>
  <summary>
    The time for the new tab page to fire the &quot;load&quot; event. Note: This
    is usually recorded with a suffix (.Local/Google/Other). The base version is
    recorded only on Android. Recorded only once per tab, i.e. excluding
    back/forward navigations.
  </summary>
</histogram>

<histogram name="Tab.NewTabScriptStart" units="ms">
  <owner>kmilka@chromium.org</owner>
  <owner>ramyan@chromium.org</owner>
  <summary>
    The time for the new tab page to start executing JavaScript.
  </summary>
</histogram>

<histogram name="Tab.OpenedPopup.PopupToCrossOriginRedirectTime" units="ms">
  <obsolete>
    Deprecated in favor of Tab.TabUnder.PopupToTabUnderTime.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time from when a tab opens a popup to when it navigates itself
    cross-origin in the background.
  </summary>
</histogram>

<histogram name="Tab.OpenedPopup.VisibleTimeAfterCrossOriginRedirect"
    units="ms">
  <obsolete>
    Deprecated in favor of Tab.TabUnder.VisibleTime.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the total time a tab is visible after it navigates itself
    cross-origin in the background. Measured at WebContents destruction. The tab
    must have opened a popup (as classified by the popup blocker) before the
    navigation.
  </summary>
</histogram>

<histogram name="Tab.PageLoadInHorizontalSizeClass"
    enum="iOSSizeClassForReporting">
  <owner>pkl@chromium.org</owner>
  <summary>
    [iOS] Used on iOS 9+ iPad to report the usage of Compact or Regular
    horizontal size class. Recorded on page load.
  </summary>
</histogram>

<histogram name="Tab.PageLoadInPortrait" enum="DeviceOrientation">
  <owner>marq@chromium.org</owner>
  <summary>[iOS] The orientation of the device. Recorded on page load.</summary>
</histogram>

<histogram name="Tab.PageLoadsSinceLastSwitchToEvictedTab">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    [Android] The number of page loads since the last switch to an evicted tab
    on Android. This was sampled each time an evicted tab was reloaded.
  </summary>
</histogram>

<histogram name="Tab.PerceivedRestoreTime" units="ms">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    [Android] User-perceived load time for a successful tab restore, measured
    from the first time the user sees the tab being restored until the load
    completes.
  </summary>
</histogram>

<histogram name="Tab.PullDownGesture" enum="PullDownGestureAction"
    expires_after="2020-01-15">
  <owner>gambard@chromium.org</owner>
  <owner>kkhorimoto@chromium.org</owner>
  <summary>
    Record the action executed when the user performs a pull down gesture. This
    feature is currently iOS only.
  </summary>
  <details>
    A pull down gesture is an action completed when the user scrolls past the
    edge of the web page and continues scrolling in the same direction revealing
    a specific UI on the header with multiple actions icons. The user can then
    choose an action by scrolling left or right and lift the finger or cancel by
    scrolling back up. This is currently an iOS specific feature.
  </details>
</histogram>

<histogram name="Tab.Reactivation.Bookmarked" enum="Boolean">
  <obsolete>
    Deprecated 11/2016. No longer useful after finding out that it has no effect
    on tab reactivation rates.
  </obsolete>
  <owner>pmonette@chromium.org</owner>
  <summary>
    A tab was reactivated after being hidden. This histogram also records if the
    tab's URL was bookmarked.
  </summary>
</histogram>

<histogram name="Tab.Reactivation.HadFormInteraction" enum="Boolean">
  <owner>pmonette@chromium.org</owner>
  <summary>
    A tab was reactivated after being hidden. This histogram also records if the
    tab had any form interaction.
  </summary>
</histogram>

<histogram name="Tab.Reactivation.Pinned" enum="Boolean">
  <owner>pmonette@chromium.org</owner>
  <summary>
    A tab was reactivated after being hidden. This histogram also records if the
    tab was pinned to the tab strip.
  </summary>
</histogram>

<histogram name="Tab.RendererCrashStatus" enum="TabRendererCrashStatus">
  <owner>clank-team@google.com</owner>
  <summary>
    [Android] The status of a tab and an application when a renderer crashes.
    This is recorded only for Android when a renderer crashes.
  </summary>
</histogram>

<histogram name="Tab.RendererDetailedExitStatus"
    enum="ProcessDetailedExitStatus">
  <owner>wnwen@chromium.org</owner>
  <summary>
    [Android] Breakdown of renderer exit status for renderers that have strong
    bindings. An extension of the counts in Tab.RendererExitStatus. Only
    recorded on Android.
  </summary>
</histogram>

<histogram name="Tab.RendererDetailedExitStatusUnbound"
    enum="ProcessDetailedExitStatus">
  <owner>wnwen@chromium.org</owner>
  <summary>
    [Android] Breakdown of renderer exit status for renderers that do not have
    strong bindings. An extension of the counts in Tab.RendererExitStatus. Only
    recorded on Android.
  </summary>
</histogram>

<histogram name="Tab.RendererExitStatus" enum="TabRendererExitStatus">
  <owner>wnwen@chromium.org</owner>
  <summary>
    [Android] The status of a renderer when the browser notices that the process
    has exited. Only recorded on Android.
  </summary>
</histogram>

<histogram name="Tab.RendererTermination.AliveRenderersCount" units="renderers">
  <owner>pkl@chromium.org</owner>
  <summary>
    [iOS] A count of the number of alive renderers when a renderer termination
    occurs.
  </summary>
</histogram>

<histogram name="Tab.RendererTermination.RecentlyAliveRenderersCount"
    units="renderers">
  <owner>pkl@chromium.org</owner>
  <summary>
    [iOS] The number of renderers which are either currently alive or recently
    terminated at the time of a renderer termination.
  </summary>
</histogram>

<histogram name="Tab.RendererTermination.RecentlyReceivedMemoryWarning"
    enum="BooleanWarningReceived">
  <owner>pkl@chromium.org</owner>
  <summary>
    [iOS] Records whether a memory warning had recently been received before a
    renderer termination.
  </summary>
</histogram>

<histogram name="Tab.RestoreResult" enum="TabRestoreResult">
  <owner>dtrainor@chromium.org</owner>
  <owner>marq@chromium.org</owner>
  <summary>
    [Android and iOS] When the browser restores a tab, whether the load was
    successful. Loads can fail for instance when there is no connectivity.
  </summary>
</histogram>

<histogram name="Tab.RestoreTime" units="ms">
  <owner>dtrainor@chromium.org</owner>
  <owner>marq@chromium.org</owner>
  <summary>[Android and iOS] Load time for a successful tab restore.</summary>
</histogram>

<histogram name="Tab.RestoreUserPersistence" enum="TabRestoreUserAction">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    [Android] When the browser restores a tab, whether the user waits for
    completion of the load or if the user gives up by switching to another tab
    or leaving Chrome.
  </summary>
</histogram>

<histogram name="Tab.Screenshot.Action" enum="TabScreenshotAction"
    expires_after="2019-09-01">
  <owner>petewil@chromium.org</owner>
  <owner>jianli@chromium.org</owner>
  <summary>
    Records actions taken after one or more screenshots of a page were taken.
    This will not be recorded if Chromium is killed before leaving the page. If
    several types of action (IPH and Sharing) occur, only the last is recorded.
    We think that both IPH and Sharing happening at the same time is rare, so we
    do not expect to lose much data this way.
  </summary>
</histogram>

<histogram name="Tab.Screenshot.ScreenshotsPerPage" units="screenshots"
    expires_after="2019-09-01">
  <owner>petewil@chromium.org</owner>
  <owner>jianli@chromium.org</owner>
  <summary>
    Records the number of screenshots taken of a specific page. It is recorded
    when the user navigates away from this page or the tab is destroyed. This
    will not be recorded if Chromium is killed before leaving the page.
  </summary>
</histogram>

<histogram name="Tab.StateAtRendererTermination" enum="TabForegroundState"
    expires_after="2019-08-07">
  <owner>olivierrobin@chromium.org</owner>
  <owner>pkl@chromium.org</owner>
  <summary>
    The state (foreground/background) of a tab when its renderer is terminated.
  </summary>
</histogram>

<histogram name="Tab.StatusWhenDisplayed" enum="TabStatus">
  <obsolete>
    No longer logged
  </obsolete>
  <summary>
    The status of a tab collected each time the tab is displayed on Android,
    including user switching to the tab and displays of newly created tabs, such
    as NTP or tabs opened to handle intents.
  </summary>
</histogram>

<histogram name="Tab.StatusWhenSwitchedBackToForeground" enum="TabStatus">
  <owner>marq@chromium.org</owner>
  <summary>
    [Android and iOS] The status of a tab collected each time the user switches
    to it on mobile. That does not include tabs being created at the time the
    user switches to them, such as NTP or tabs opened to handle intents.
  </summary>
</histogram>

<histogram name="Tab.StatusWhenSwitchedBackToForegroundDataProxyEnabled"
    enum="TabStatus">
  <obsolete>
    No longer logged
  </obsolete>
  <owner>marq@chromium.org</owner>
  <summary>
    [Android and iOS] The status of a tab collected each time the user switches
    to it on mobile with the data reduction proxy enabled. This is populated
    identically, and in addition to Tab.StatusWhenSwitchedBackToForeground for
    any given tab switching event if the proxy is enabled.
  </summary>
</histogram>

<histogram name="Tab.SwitchedToForegroundAge" units="ms">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    [Android] Age (in ms) when the tab was switched to foreground.
  </summary>
</histogram>

<histogram name="Tab.SwitchedToForegroundLaunchedWithURL"
    enum="TabSwitchedToForegroundLaunchedWithURL">
  <obsolete>
    Deprecated as of 04/2014.
  </obsolete>
  <summary>
    Each time a tab is brought to the foreground, this histogram indicates if
    chrome was launched without an URL (i.e., from the launcher), or with an URL
    (i.e., from another app).
  </summary>
</histogram>

<histogram name="Tab.SwitchedToForegroundMRURank">
  <obsolete>
    Deprecated as of 04/2014.
  </obsolete>
  <summary>
    Rank in MRU order (0 being first) when the tab was switched to foreground.
  </summary>
</histogram>

<histogram name="Tab.SwitchedToForegroundNumTabs">
  <obsolete>
    No longer logged
  </obsolete>
  <summary>Count of all tabs when a tab is switched.</summary>
</histogram>

<histogram name="Tab.SwitchedToForegroundRevisit"
    enum="TabSwitchedToForegroundRevisit">
  <obsolete>
    Deprecated as of 04/2014.
  </obsolete>
  <summary>
    Each time a tab is brought to the foreground, this histogram indicates if
    this is the first viewing of the tab since Chrome was put into foreground,
    or if it was a return to a tab that has already been shown in this session.
  </summary>
</histogram>

<histogram name="Tab.TabUnder.ClickThroughPosition" enum="ListItemPosition">
  <owner>csharrison@chromium.org</owner>
  <summary>
    The position of the URL in the framebust UI list (desktop only) when it is
    clicked. Note that this UI surface is shared with the framebusting
    intervention, so elements in the list could come from either features. This
    metric will only be logged when a URL from the tab under intervention is
    clicked.
  </summary>
</histogram>

<histogram name="Tab.TabUnder.EngagementScore" units="engagement score">
  <obsolete>
    Deprecated August 2018
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the engagement score associated with the URL that is detected as
    the target of a tab-under navigation.
  </summary>
</histogram>

<histogram name="Tab.TabUnder.PopupToTabUnderTime" units="ms">
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the time from when a tab opens a popup to when it performs a
    tab-under (i.e. navigates cross origin, in the background without a user
    gesture).
  </summary>
</histogram>

<histogram name="Tab.TabUnder.VisibleTime" units="ms">
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the total time a tab is visible after it navigates itself
    cross-origin in the background, without a user gesture. The tab must have
    opened a popup since the last user gesture in the tab. Measured at
    WebContents destruction. The total visible time for the tab is the sum of
    this metric and Tab.TabUnder.VisibleTimeBefore.
  </summary>
</histogram>

<histogram name="Tab.TabUnder.VisibleTimeBefore" units="ms">
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the total time a tab is visible before it navigates itself
    cross-origin in the background, without a user gesture. The tab must have
    opened a popup since the last user gesture in the tab. Measured at
    WebContents destruction. The total visible time for the tab is the sum of
    this metric and Tab.TabUnder.VisibleTime.
  </summary>
</histogram>

<histogram name="Tab.TabUnderAction" enum="TabUnderAction">
  <owner>csharrison@chromium.org</owner>
  <summary>
    Various actions related to the tab under intervention, logged during main
    frame navigation.
  </summary>
</histogram>

<histogram name="Tab.TimeSinceActive" units="ms">
  <obsolete>
    Deprecated as of 10/2016.
  </obsolete>
  <summary>
    [iOS] When an existing tab becomes active, this histogram records the time
    since it was made inactive.
  </summary>
</histogram>

<histogram name="Tab.TimeSinceActiveEvicted" units="ms">
  <obsolete>
    Deprecated as of 10/2016.
  </obsolete>
  <summary>
    [iOS] When an evicted tab becomes active, this histogram records the time
    since it was made inactive.
  </summary>
</histogram>

<histogram name="Tab.TimeSinceFormActivityEvictedHistogram" units="ms">
  <obsolete>
    Deprecated as of 10/2016.
  </obsolete>
  <summary>
    Time elapsed since there was form activity (e.g. fields selected, characters
    typed) in a tab. Recorded only for tabs that are evicted due to memory
    pressure and then selected again.
  </summary>
</histogram>

<histogram name="Tab.TimeToReactivation.Important" units="ms">
  <owner>pmonette@chromium.org</owner>
  <summary>
    The time elapsed from the moment a tab was deactivated until it was
    reactivated. Only recorded for tabs that are pinned or had form interaction.
  </summary>
</histogram>

<histogram name="Tab.TimeToReactivation.Normal" units="ms">
  <owner>pmonette@chromium.org</owner>
  <summary>
    The time elapsed from the moment a tab was deactivated until it was
    reactivated. Only recorded for tabs that are not pinned nor had form
    interaction.
  </summary>
</histogram>

<histogram name="Tab.TotalTabCount.BeforeLeavingApp" units="tabs">
  <owner>clank-team@google.com</owner>
  <summary>
    [Android] The total count of tabs which were kept while Chrome process is in
    the foreground. This is recorded only for Android right before Chrome
    process goes into the background.
  </summary>
</histogram>

<histogram name="Tab.Visibility" units="ms">
  <owner>fdoray@chromium.org</owner>
  <summary>
    Time spent by a tab in a given visibility state. Recorded when the
    visibility changes and when the tab is closed.
  </summary>
</histogram>

<histogram name="Tab.VisibleTime" units="ms">
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the total time a tab is visible. Measured at the WebContents layer
    so this metric does not attempt to account for things like session restore.
    Logged at WebContents destruction.
  </summary>
</histogram>

<histogram name="Tab.VisibleTimeAfterCrossOriginRedirect" units="ms">
  <obsolete>
    This metric was deprecated in favor of just using Tab.TabUnder.VisibleTime
    directly. Consider bringing it back if we care about visible time after a
    suspicious redirect without an associated popup.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Measures the total time a tab is visible after it navigates itself
    cross-origin in the background. Measured at WebContents destruction.
  </summary>
</histogram>

<histogram name="Tablet.AppDrag.EndWindowState"
    enum="AppWindowDragEndWindowState" expires_after="2019-12-20">
  <owner>minch@chromium.org</owner>
  <owner>omrilio@chromium.org</owner>
  <summary>
    Drag an app window from top in tablet mode will result in different window
    states. Logged when the app drag ended to record the window end state.
  </summary>
</histogram>

<histogram name="Tablet.AppWindowDrag.CountOfPerUserSession" units="times"
    expires_after="2019-12-20">
  <owner>minch@chromium.org</owner>
  <owner>omrilio@chromium.org</owner>
  <summary>
    The number of the action that drag an app window from top in tablet mode.
    Logged when the TabletModeController is destructed, which means the user
    session is ended.
  </summary>
</histogram>

<histogram name="Tablet.AppWindowDrag.InSplitView.CountOfPerUserSession"
    units="times" expires_after="2019-12-20">
  <owner>minch@chromium.org</owner>
  <owner>omrilio@chromium.org</owner>
  <summary>
    The number of the action that drag an app window from top in tablet mode
    when splitview is active. Logged when the TabletModeController is
    destructed, which means the user session is ended.
  </summary>
</histogram>

<histogram name="Tablet.TabDrag.CountOfPerUserSession" units="times"
    expires_after="2019-12-20">
  <owner>minch@chromium.org</owner>
  <owner>omrilio@chromium.org</owner>
  <summary>
    The number of the action that drag a tab of the browser window in tablet
    mode. Logged when the TabletModeController is destructed, which means the
    user session is ended.
  </summary>
</histogram>

<histogram name="Tablet.TabDrag.DragType" enum="TabDragType"
    expires_after="2019-12-20">
  <owner>minch@chromium.org</owner>
  <owner>omrilio@chromium.org</owner>
  <summary>
    The type of a tab drag done in tablet mode. Logged when start to drag a tab
    of the browser window in tablet mode.
  </summary>
</histogram>

<histogram name="Tablet.TabDrag.InSplitView.CountOfPerUserSession"
    units="times" expires_after="2019-12-20">
  <owner>minch@chromium.org</owner>
  <owner>omrilio@chromium.org</owner>
  <summary>
    The number of the action that drag a tab of the browser window in tablet
    mode when splitview is active. Logged when the TabletModeController is
    destructed, which means the user session is ended.
  </summary>
</histogram>

<histogram name="Tablet.WindowDrag.DragEndEventType"
    enum="WindowDragEndEventType" expires_after="2019-12-20">
  <owner>minch@chromium.org</owner>
  <owner>omrilio@chromium.org</owner>
  <summary>
    The type of the window (app window or tab strip) drag end event in tablet
    mode. Logged when the window drag in tablet mode ended.
  </summary>
</histogram>

<histogram name="Tablet.WindowDrag.OpenedWindowsNumber" units="numbers"
    expires_after="2019-12-20">
  <owner>minch@chromium.org</owner>
  <owner>omrilio@chromium.org</owner>
  <summary>
    The number of windows in overview when dragging a window from top in tablet
    mode. Logged when start the window drag and overview has been opened behind.
  </summary>
</histogram>

<histogram
    name="TabManager.BackgroundTabOpening.ForegroundTab.ExpectedTaskQueueingDuration"
    units="ms">
  <owner>shaseley@chromium.org</owner>
  <owner>panicker@chromium.org</owner>
  <summary>
    The expected queueing duration of tasks in a foreground tab during a
    background tab opening session (the duration of time from when the browser
    starts to open background tabs until the time the browser has finished
    loading those tabs or otherwise decided to stop loading them). The metric
    reflects the responsiveness of a tab. A lower value means the tab will
    respond to inputs faster. This metric is equivalent to
    RendererScheduler.ExpectedTaskQueueingDuration. It is emitted once for all
    tasks in each 1000-ms window. The metric is not recorded when the session
    overlaps with session restore.
  </summary>
</histogram>

<histogram name="TabManager.BackgroundTabOpening.SwitchToTab"
    enum="TabLoadingState">
  <owner>zhenw@chromium.org</owner>
  <summary>
    The loading state of a tab at the time the user switches to it during a
    background tab opening session (the duration of time from when the browser
    starts to open background tabs until the time the browser has finished
    loading those tabs or otherwise decided to stop loading them). The metric is
    only recorded when a tab is switched to from another tab within the same
    tabstrip. As a result, the case when switching between different windows is
    not included, either between two tabs in different browser windows, or when
    switching to a different application and switching back to the browser. The
    metric is not recorded when the session overlaps with session restore.
  </summary>
</histogram>

<histogram name="TabManager.BackgroundTabOpening.TabCount" units="tabs">
  <owner>zhenw@chromium.org</owner>
  <summary>
    The max number of background tabs pending or loading when opening background
    tabs. This is recorded at the end of the background tab opening session (the
    duration of time from when the browser starts to open background tabs until
    the time the browser has finished loading those tabs or otherwise decided to
    stop loading them). The metric is not recorded when the session overlaps
    with session restore.
  </summary>
</histogram>

<histogram name="TabManager.BackgroundTabOpening.TabLoadAutoStartedCount"
    units="tabs">
  <owner>zhenw@chromium.org</owner>
  <summary>
    The number of background tabs whose loading was triggered by TabManager
    automatically when opening background tabs. This is recorded at the end of
    the background tab opening session (the duration of time from when the
    browser starts to open background tabs until the time the browser has
    finished loading those tabs or otherwise decided to stop loading them). The
    metric is not recorded when the session overlaps with session restore.
  </summary>
</histogram>

<histogram name="TabManager.BackgroundTabOpening.TabLoadTimeout"
    enum="BooleanTimedOut">
  <owner>zhenw@chromium.org</owner>
  <summary>
    Whether the tab load is timed out during background tab opening session (the
    duration of time from when the browser starts to open background tabs until
    the time the browser has finished loading those tabs or otherwise decided to
    stop loading them). The metric is not recorded when the session overlaps
    with session restore.
  </summary>
</histogram>

<histogram name="TabManager.BackgroundTabOpening.TabLoadUserInitiatedCount"
    units="tabs">
  <owner>zhenw@chromium.org</owner>
  <summary>
    The number of background tabs whose loading was triggered by user action
    when opening background tabs. For example, when the user selects a
    background tab and brings it to foreground, that tab will start to load
    immediately if not already loading. This is recorded at the end of the
    background tab opening session (the duration of time from when the browser
    starts to open background tabs until the time the browser has finished
    loading those tabs or otherwise decided to stop loading them). The metric is
    not recorded when the session overlaps with session restore.
  </summary>
</histogram>

<histogram name="TabManager.BackgroundTabOpening.TabPausedCount" units="tabs">
  <owner>zhenw@chromium.org</owner>
  <summary>
    The max number of background tabs paused to load due to memory pressure when
    opening background tabs. This is recorded at the end of the background tab
    opening session during a background tab opening session (the duration of
    time from when the browser starts to open background tabs until the time the
    browser has finished loading those tabs or otherwise decided to stop loading
    them). The metric is not recorded when the session overlaps with session
    restore.
  </summary>
</histogram>

<histogram name="TabManager.Discarding.DiscardCount" units="Discards">
  <owner>georgesak@chromium.org</owner>
  <summary>
    Cumulative number of tabs discarded due to low memory conditions, recorded
    once per tab discard event. For example, a user who had 3 tabs discarded
    records a count in the 1 bin, 2 bin and 3 bin. Thus each bin N is the number
    of sessions where users experienced N or more tab discard events.
  </summary>
</histogram>

<histogram name="TabManager.Discarding.DiscardedEngagementScore">
  <obsolete>
    Deprecated 11/2017. Analysis showed that MRU was as good as engagement score
    to choose which tabs to discard. The new plan is to build a machine learning
    model to choose which tabs to discard.
  </obsolete>
  <owner>georgesak@chromium.org</owner>
  <summary>
    Site engagement score of a discarded tab. Recorded for each discard if the
    score is available.
  </summary>
</histogram>

<histogram name="TabManager.Discarding.DiscardedTabCouldFastShutdown"
    enum="BooleanTabDiscardFastShutdown">
  <owner>oysteine@chromium.org</owner>
  <summary>
    Recorded for each discarding, indicates whether the discarded tab succeeded
    in doing a render process fast shutdown or not.
  </summary>
</histogram>

<histogram name="TabManager.Discarding.DiscardedTabCouldUnsafeFastShutdown"
    enum="BooleanTabDiscardFastShutdown">
  <owner>oysteine@chromium.org</owner>
  <summary>
    Recorded for each discarding, allowing us to know whether the discarded tab
    succeeded an unsafe process shutdown (not invoking unload handlers).
  </summary>
</histogram>

<histogram name="TabManager.Discarding.DiscardedTabHasBeforeUnloadHandler"
    enum="Boolean">
  <owner>georgesak@chromium.org</owner>
  <summary>
    Recorded for each discarding, allowing us to know whether the discarded tab
    had a before unload handler or not.
  </summary>
</histogram>

<histogram name="TabManager.Discarding.DiscardToReloadTime" units="ms">
  <owner>georgesak@chromium.org</owner>
  <summary>
    Elapsed time between a tab getting discarded to eventually being reloaded by
    the user.
  </summary>
</histogram>

<histogram name="TabManager.Discarding.InactiveToReloadTime" units="ms">
  <owner>georgesak@chromium.org</owner>
  <summary>
    Elapsed time between the time a tab switched from being active to inactive
    (that eventually gets discarded) until it gets reloaded.
  </summary>
</histogram>

<histogram name="TabManager.Discarding.LocalDatabase.DatabaseInit"
    enum="LocalSiteCharacteristicsDBInitStatus">
  <obsolete>
    Deprecated 07/2018, and replaced by
    ResourceCoordinator.LocalDB.DatabaseInit.
  </obsolete>
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The result of opening the Local Site Characteristics database.
  </summary>
</histogram>

<histogram name="TabManager.Discarding.LocalDatabase.DatabaseInitAfterDelete"
    enum="LocalSiteCharacteristicsDBInitStatus">
  <obsolete>
    Deprecated 07/2018, and replaced by
    ResourceCoordinator.LocalDB.DatabaseInitAfterDelete.
  </obsolete>
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The result of opening the Local Site Characteristics database after deleting
    it after a failed repair attempt.
  </summary>
</histogram>

<histogram name="TabManager.Discarding.LocalDatabase.DatabaseInitAfterRepair"
    enum="LocalSiteCharacteristicsDBInitStatus">
  <obsolete>
    Deprecated 07/2018, and replaced by
    ResourceCoordinator.LocalDB.DatabaseInitAfterRepair.
  </obsolete>
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The result of opening the Local Site Characteristics database after a repair
    attempt.
  </summary>
</histogram>

<histogram name="TabManager.Discarding.LocalDatabase.DatabaseRepair"
    enum="BooleanSuccess">
  <obsolete>
    Deprecated 07/2018, and replaced by
    ResourceCoordinator.LocalDB.DatabaseRepair.
  </obsolete>
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The result of trying to repair the Local Site Characteristics database after
    a failed open.
  </summary>
</histogram>

<histogram name="TabManager.Discarding.LogMemoryTime" units="ms">
  <owner>cywang@chromium.org</owner>
  <owner>georgesak@chromium.org</owner>
  <summary>
    Elapsed time to collect memory usage of each tab triggered by a LogMemory()
    call().
  </summary>
</histogram>

<histogram name="TabManager.Discarding.ReloadCount" units="Reloads">
  <owner>georgesak@chromium.org</owner>
  <summary>
    Cumulative number of discarded tabs that have been reloaded by the user,
    recorded once per tab discard event. For example, a user who had 3 tabs
    reloaded records a count in the 1 bin, 2 bin and 3 bin. Thus each bin N is
    the number of sessions where users experienced N or more tab reload events.
  </summary>
</histogram>

<histogram name="TabManager.Discarding.ReloadedEngagementScore">
  <obsolete>
    Deprecated 11/2017. Analysis showed that MRU was as good as engagement score
    to choose which tabs to discard. The new plan is to build a machine learning
    model to choose which tabs to discard.
  </obsolete>
  <owner>georgesak@chromium.org</owner>
  <summary>
    Site engagement score of a reloaded tab. Recorded for each reload if the
    score is available. Note that this will be the same score the tab had when
    discarded (which could have changed by the time it gets reloaded).
  </summary>
</histogram>

<histogram name="TabManager.Discarding.ReloadToCloseTime" units="ms">
  <owner>georgesak@chromium.org</owner>
  <summary>
    Elapsed time between the last time a discarded tab was reloaded and the time
    it gets closed.
  </summary>
</histogram>

<histogram
    name="TabManager.Experimental.BackgroundTabOpening.CompressedPagesPerSecond"
    units="pages/s">
  <owner>shaseley@chromium.org</owner>
  <owner>panicker@chromium.org</owner>
  <summary>
    The number of pages compressed per second when opening background tabs. This
    is recorded at the end of the background tab opening session as an average
    over the entire period (the duration of time from when the browser starts to
    open background tabs until the time the browser has finished loading those
    tabs or otherwise decided to stop loading them). The metric is not recorded
    when the session overlaps with session restore. Only recorded on macOS.
    Warning: This metric is a ratio and the session interval differs for each
    session. It is hard to tell if it is average rate for each second in the
    interval or it has a huge spike.
  </summary>
</histogram>

<histogram
    name="TabManager.Experimental.BackgroundTabOpening.DecompressedPagesPerSecond"
    units="pages/s">
  <owner>shaseley@chromium.org</owner>
  <owner>panicker@chromium.org</owner>
  <summary>
    The number of pages decompressed per second when opening background tabs.
    This is recorded at the end of the background tab opening session as an
    average over the entire period (the duration of time from when the browser
    starts to open background tabs until the time the browser has finished
    loading those tabs or otherwise decided to stop loading them). The metric is
    not recorded when the session overlaps with session restore. Only recorded
    on macOS. Warning: This metric is a ratio and the session interval differs
    for each session. It is hard to tell if it is average rate for each second
    in the interval or it has a huge spike.
  </summary>
</histogram>

<histogram name="TabManager.Experimental.BackgroundTabOpening.SwapInPerSecond"
    units="swaps/s">
  <owner>shaseley@chromium.org</owner>
  <owner>panicker@chromium.org</owner>
  <summary>
    The number of swap-ins per second when opening background tabs. This is
    recorded at the end of the background tab opening session as an average over
    the entire period (the duration of time from when the browser starts to open
    background tabs until the time the browser has finished loading those tabs
    or otherwise decided to stop loading them). The metric is not recorded when
    the session overlaps with session restore. Warning: This metric is a ratio
    and the session interval differs for each session. It is hard to tell if it
    is average rate for each second in the interval or it has a huge spike.
  </summary>
</histogram>

<histogram name="TabManager.Experimental.BackgroundTabOpening.SwapOutPerSecond"
    units="swaps/s">
  <owner>shaseley@chromium.org</owner>
  <owner>panicker@chromium.org</owner>
  <summary>
    The number of swap-outs per second when opening background tabs. This is
    recorded at the end of the background tab opening session as an average over
    the entire period (the duration of time from when the browser starts to open
    background tabs until the time the browser has finished loading those tabs
    or otherwise decided to stop loading them). The metric is not recorded when
    the session overlaps with session restore. Warning: This metric is a ratio
    and the session interval differs for each session. It is hard to tell if it
    is average rate for each second in the interval or it has a huge spike.
  </summary>
</histogram>

<histogram
    name="TabManager.Experimental.BackgroundTabOpening.TabSwitchLoadTime"
    units="ms">
  <obsolete>
    Deprecated 08/2017, and replaced by
    TabManager.Experimental.BackgroundTabOpening.TabSwitchLoadTime.UntilTabIsLoaded.
  </obsolete>
  <owner>zhenw@chromium.org</owner>
  <summary>
    The tab load time of a tab that is switched to during a background tab
    opening session (the duration of time from when the browser starts to open
    background tabs until the time the browser has finished loading those tabs
    or otherwise decided to stop loading them). Tab load time is defined as the
    time between when the user switches to a backround tab, and the time when
    that tab finishes loading in the foreground. If the user switches away
    before the tab finishes loading, a metric will not be recorded unless the
    user switches back, in which case the tab load time is measured from that
    point in time. The metric is only recorded when a tab is switched to from
    another tab within the same tabstrip. As a result, the initial forground tab
    is not included in this metric since it was not switched to from another
    tab. The metric is not recorded when the session overlaps with session
    restore.
  </summary>
</histogram>

<histogram
    name="TabManager.Experimental.BackgroundTabOpening.TabSwitchLoadTime.UntilTabIsLoaded"
    units="ms">
  <owner>zhenw@chromium.org</owner>
  <summary>
    The tab load time of a tab that is switched to during a background tab
    opening session (the duration of time from when the browser starts to open
    background tabs until the time the browser has finished loading those tabs
    or otherwise decided to stop loading them). Tab load time is defined as the
    time between when the user switches to a backround tab, and the time when
    that tab finishes loading in the foreground. If the user switches away
    before the tab finishes loading, a metric will not be recorded unless the
    user switches back, in which case the tab load time is measured from that
    point in time. The metric is only recorded when a tab is switched to from
    another tab within the same tabstrip. As a result, the initial forground tab
    is not included in this metric since it was not switched to from another
    tab. The metric is not recorded when the session overlaps with session
    restore.
  </summary>
</histogram>

<histogram
    name="TabManager.Experimental.SessionRestore.CompressedPagesPerSecond"
    units="pages/s">
  <owner>shaseley@chromium.org</owner>
  <owner>panicker@chromium.org</owner>
  <summary>
    The number of pages compressed per second during session restore. Recorded
    at the end of session restore as an average over the entire period, defined
    as the period of time when session restore is actively loading tabs, which
    ends when either all tabs have been loaded and their pages rendered, or tab
    loading needs to be deferred in cases where the system is under memory
    pressure. The metric is not recorded when the session overlaps with
    background tab opening session. Only recorded on macOS. Warning: This metric
    is a ratio and the session interval differs for each session. It is hard to
    tell if it is average rate for each second in the interval or it has a huge
    spike.
  </summary>
</histogram>

<histogram
    name="TabManager.Experimental.SessionRestore.DecompressedPagesPerSecond"
    units="pages/s">
  <owner>shaseley@chromium.org</owner>
  <owner>panicker@chromium.org</owner>
  <summary>
    The number of pages decompressed per second during session restore. Recorded
    at the end of session restore as an average over the entire period, defined
    as the period of time when session restore is actively loading tabs, which
    ends when either all tabs have been loaded and their pages rendered, or tab
    loading needs to be deferred in cases where the system is under memory
    pressure. The metric is not recorded when the session overlaps with
    background tab opening session. Only recorded on macOS. Warning: This metric
    is a ratio and the session interval differs for each session. It is hard to
    tell if it is average rate for each second in the interval or it has a huge
    spike.
  </summary>
</histogram>

<histogram
    name="TabManager.Experimental.SessionRestore.ForegroundTab.FirstContentfulPaint"
    units="ms">
  <owner>shaseley@chromium.org</owner>
  <owner>panicker@chromium.org</owner>
  <summary>
    Elapsed time between the start of the loading and the first contentful paint
    of foreground tabs when the browser loads tabs in session restore.
  </summary>
</histogram>

<histogram
    name="TabManager.Experimental.SessionRestore.ForegroundTab.FirstMeaningfulPaint"
    units="ms">
  <owner>shaseley@chromium.org</owner>
  <owner>panicker@chromium.org</owner>
  <summary>
    Elapsed time between the start of the loading and the first meaningful paint
    of foreground tabs when the browser loads tabs in session restore.
  </summary>
</histogram>

<histogram
    name="TabManager.Experimental.SessionRestore.ForegroundTab.FirstPaint"
    units="ms">
  <owner>shaseley@chromium.org</owner>
  <owner>panicker@chromium.org</owner>
  <summary>
    Elapsed time between the start of the loading and the first paint of
    foreground tabs when the browser loads tabs in session restore.
  </summary>
</histogram>

<histogram name="TabManager.Experimental.SessionRestore.SwapInPerSecond"
    units="swaps/s">
  <owner>shaseley@chromium.org</owner>
  <owner>panicker@chromium.org</owner>
  <summary>
    The number of swap-ins per second during session restore. Recorded at the
    end of session restore as an average over the entire period, defined as the
    period of time when session restore is actively loading tabs, which ends
    when either all tabs have been loaded and their pages rendered, or tab
    loading needs to be deferred in cases where the system is under memory
    pressure. The metric is not recorded when the session overlaps with
    background tab opening session. Warning: This metric is a ratio and the
    session interval differs for each session. It is hard to tell if it is
    average rate for each second in the interval or it has a huge spike.
  </summary>
</histogram>

<histogram name="TabManager.Experimental.SessionRestore.SwapOutPerSecond"
    units="swaps/s">
  <owner>shaseley@chromium.org</owner>
  <owner>panicker@chromium.org</owner>
  <summary>
    The number of swap-outs per second during session restore. Recorded at the
    end of session restore as an average over the entire period, defined as the
    period of time when session restore is actively loading tabs, which ends
    when either all tabs have been loaded and their pages rendered, or tab
    loading needs to be deferred in cases where the system is under memory
    pressure. The metric is not recorded when the session overlaps with
    background tab opening session. Warning: This metric is a ratio and the
    session interval differs for each session. It is hard to tell if it is
    average rate for each second in the interval or it has a huge spike.
  </summary>
</histogram>

<histogram name="TabManager.Experimental.SessionRestore.TabSwitchLoadTime"
    units="ms">
  <obsolete>
    Deprecated 08/2017, and replaced by
    TabManager.Experimental.SessionRestore.TabSwitchLoadTime.UntilTabIsLoaded.
  </obsolete>
  <owner>shaseley@chromium.org</owner>
  <owner>panicker@chromium.org</owner>
  <summary>
    The tab load time of a tab that is switched to during a session restore. Tab
    load time is defined as the time between when the user switches to a
    backround tab, and the time when that tab finishes loading in the
    foreground. If the user switches away before the tab finishes loading, a
    metric will not be recorded unless the user switches back, in which case the
    tab load time is measured from that point in time. The metric is only
    recorded when a tab is switched to from another tab within the same
    tabstrip. As a result, the initial forground tab is not included in this
    metric since it was not switched to from another tab. The metric is only
    recorded when session restore is actively loading tabs, which ends when
    either all tabs have been loaded and their pages rendered, or tab loading
    needs to be deferred in cases where the system is under memory pressure. The
    metric is not recorded when the session overlaps with background tab opening
    session.
  </summary>
</histogram>

<histogram
    name="TabManager.Experimental.SessionRestore.TabSwitchLoadTime.UntilTabIsLoaded"
    units="ms">
  <owner>shaseley@chromium.org</owner>
  <owner>panicker@chromium.org</owner>
  <summary>
    The tab load time of a tab that is switched to during a session restore. Tab
    load time is defined as the time between when the user switches to a
    backround tab, and the time when that tab finishes loading in the
    foreground. If the user switches away before the tab finishes loading, a
    metric will not be recorded unless the user switches back, in which case the
    tab load time is measured from that point in time. The metric is only
    recorded when a tab is switched to from another tab within the same
    tabstrip. As a result, the initial forground tab is not included in this
    metric since it was not switched to from another tab. The metric is only
    recorded when session restore is actively loading tabs, which ends when
    either all tabs have been loaded and their pages rendered, or tab loading
    needs to be deferred in cases where the system is under memory pressure. The
    metric is not recorded when the session overlaps with background tab opening
    session.
  </summary>
</histogram>

<histogram name="TabManager.Heuristics.FromBackgroundedToFirstAlertFired"
    units="ms">
  <obsolete>
    Removed on 21/1/2019.
  </obsolete>
  <owner>chrisha@chromium.org</owner>
  <owner>lpy@chromium.org</owner>
  <summary>
    Measures the time duration from when the tab is backgrounded to when a
    JavaScript alert is updated. Only recorded when the tab is in the
    background.
  </summary>
</histogram>

<histogram name="TabManager.Heuristics.FromBackgroundedToFirstAudioStarts"
    units="ms">
  <obsolete>
    Removed on 21/1/2019.
  </obsolete>
  <owner>chrisha@chromium.org</owner>
  <owner>lpy@chromium.org</owner>
  <summary>
    Measures the time duration from when the tab is backgrounded to when audio
    starts to play. Only recorded when the tab is in the background.
  </summary>
</histogram>

<histogram name="TabManager.Heuristics.FromBackgroundedToFirstFaviconUpdated"
    units="ms">
  <owner>chrisha@chromium.org</owner>
  <owner>lpy@chromium.org</owner>
  <summary>
    Measures the time duration from when the tab is backgrounded to when its
    favicon is updated. The first-time set of favicon will be ignored; this
    metric will only be recorded after 5 minutes from main frame navigation
    committed and when the tab is in the background.
  </summary>
</histogram>

<histogram
    name="TabManager.Heuristics.FromBackgroundedToFirstNonPersistentNotificationCreated"
    units="ms">
  <owner>chrisha@chromium.org</owner>
  <owner>lpy@chromium.org</owner>
  <summary>
    Measures the time duration from when the tab is backgrounded to when a
    non-persistent notification is created. Only recorded when the tab is in the
    background.
  </summary>
</histogram>

<histogram name="TabManager.Heuristics.FromBackgroundedToFirstTitleUpdated"
    units="ms">
  <owner>chrisha@chromium.org</owner>
  <owner>lpy@chromium.org</owner>
  <summary>
    Measures the time duration from when the tab is backgrounded to when its
    title is updated. The first-time set of title will be ignored; this metric
    will only be recorded after 5 minutes from main frame navigation committed
    and when the tab is in the background.
  </summary>
</histogram>

<histogram name="TabManager.SessionOverlap.BackgroundTabOpening"
    units="BooleanOverlap">
  <owner>zhenw@chromium.org</owner>
  <summary>
    Whether background tab opening session is overlapped with other types of
    session, e.g., session restore. Background tab opening session is the
    duration of time from when the browser starts to open background tabs until
    the time the browser has finished loading those tabs or otherwise decided to
    stop loading them. This metric helps to understand how often background tab
    opening has overlap with other sessions.
  </summary>
</histogram>

<histogram name="TabManager.SessionOverlap.SessionRestore"
    units="BooleanOverlap">
  <owner>zhenw@chromium.org</owner>
  <summary>
    Whether session restore is overlapped with other types of session, e.g.,
    background tab opening. Session restore is the duration from the time when
    the browser starts to restore tabs until the time when the browser has
    finished loading those tabs or when the browser stops loading tabs due to
    memory pressure. This metric helps to understand how often session restore
    has overlap with other sessions.
  </summary>
</histogram>

<histogram name="TabManager.SessionRestore.CompressedPagesPerSecond"
    units="pages/s">
  <obsolete>
    Deprecated 08/2017, and replaced by
    TabManager.Experimental.SessionRestore.CompressedPagesPerSecond.
  </obsolete>
  <owner>fmeawad@chromium.org</owner>
  <summary>
    The number of pages compressed per second during session restore. Recorded
    at the end of session restore as an average over the entire period, defined
    as the period of time when session restore is actively loading tabs, which
    ends when either all tabs have been loaded and their pages rendered, or tab
    loading needs to be deferred in cases where the system is under memory
    pressure. Only recorded on macOS.
  </summary>
</histogram>

<histogram name="TabManager.SessionRestore.DecompressedPagesPerSecond"
    units="pages/s">
  <obsolete>
    Deprecated 08/2017, and replaced by
    TabManager.Experimental.SessionRestore.DecompressedPagesPerSecond.
  </obsolete>
  <owner>fmeawad@chromium.org</owner>
  <summary>
    The number of pages decompressed per second during session restore. Recorded
    at the end of session restore as an average over the entire period, defined
    as the period of time when session restore is actively loading tabs, which
    ends when either all tabs have been loaded and their pages rendered, or tab
    loading needs to be deferred in cases where the system is under memory
    pressure. Only recorded on macOS.
  </summary>
</histogram>

<histogram
    name="TabManager.SessionRestore.ForegroundTab.ExpectedTaskQueueingDuration"
    units="ms">
  <owner>shaseley@chromium.org</owner>
  <owner>panicker@chromium.org</owner>
  <summary>
    The expected queueing duration of tasks in a foreground tab during session
    restore. This metric reflects the responsiveness of a tab. A lower value
    means the tab will respond to inputs faster. This metric is equal to
    RendererScheduler.ExpectedTaskQueueingDuration. It is emitted once for all
    tasks in each 1000-ms window. The metric is not recorded when the session
    overlaps with background tab opening session.
  </summary>
</histogram>

<histogram name="TabManager.SessionRestore.SwapInPerSecond" units="swaps/s">
  <obsolete>
    Deprecated 08/2017, and replaced by
    TabManager.Experimental.SessionRestore.SwapInPerSecond.
  </obsolete>
  <owner>fmeawad@chromium.org</owner>
  <summary>
    The number of swap-ins per second during session restore. Recorded at the
    end of session restore as an average over the entire period, defined as the
    period of time when session restore is actively loading tabs, which ends
    when either all tabs have been loaded and their pages rendered, or tab
    loading needs to be deferred in cases where the system is under memory
    pressure.
  </summary>
</histogram>

<histogram name="TabManager.SessionRestore.SwapOutPerSecond" units="swaps/s">
  <obsolete>
    Deprecated 08/2017, and replaced by
    TabManager.Experimental.SessionRestore.SwapOutPerSecond.
  </obsolete>
  <owner>fmeawad@chromium.org</owner>
  <summary>
    The number of swap-outs per second during session restore. Recorded at the
    end of session restore as an average over the entire period, defined as the
    period of time when session restore is actively loading tabs, which ends
    when either all tabs have been loaded and their pages rendered, or tab
    loading needs to be deferred in cases where the system is under memory
    pressure.
  </summary>
</histogram>

<histogram name="TabManager.SessionRestore.SwitchToTab" enum="TabLoadingState">
  <owner>shaseley@chromium.org</owner>
  <owner>panicker@chromium.org</owner>
  <summary>
    The loading state of a tab at the time the user switched to it during a
    session restore. The metric is only recorded when a tab is switched to from
    another tab within the same tabstrip. As a result, there are two cases where
    tabs are not included. The first case is when the initial forground tab is
    shown, since it was not switched to from another tab. The second case is
    when switching between different windows, either between two tabs in
    different browser windows, or when switching to a different application and
    switching back to the browser. The metric is only recorded when session
    restore is actively loading tabs, which ends when either all tabs have been
    loaded and their pages rendered, or tab loading needs to be deferred in
    cases where the system is under memory pressure. The metric is not recorded
    when the session overlaps with background tab opening session.
  </summary>
</histogram>

<histogram name="TabManager.TabRanker.Result" enum="TabManagerTabRankerResult">
  <owner>michaelpg@chromium.org</owner>
  <owner>charleszhao@chromium.org</owner>
  <summary>
    Logged when calculating a tab reactivation score for a background tab. Any
    value other than &quot;none&quot; may indicate a bug in the inference code,
    a problem with the preprocessor configuration shipped with the model, or a
    bug in the code that populates the RankerExample for a tab.
  </summary>
</histogram>

<histogram name="TabRestore.error_move_session_at_path_to_backup"
    enum="FoundationFileSystemError">
  <owner>sky@chromium.org</owner>
  <summary>
    Error code returned by [moveItemAtPath:toPath:error:] when moving previous
    session file to backup file before restoring. 0 in case of success.
  </summary>
</histogram>

<histogram name="TabRestore.error_remove_backup_at_path"
    enum="FoundationFileSystemError">
  <owner>sky@chromium.org</owner>
  <summary>
    Error code returned by [removeItemAtPath:error:] when removing previous
    session backup file. 0 in case of success.
  </summary>
</histogram>

<histogram name="TabRestore.error_remove_session_at_path"
    enum="FoundationFileSystemError">
  <owner>sky@chromium.org</owner>
  <summary>
    Error code returned by [removeItemAtPath:error:] when removing previous
    session file. 0 in case of success.
  </summary>
</histogram>

<histogram name="Tabs.CountAtResume" units="tabs">
  <owner>marq@chromium.org</owner>
  <summary>
    [iOS] The number of tabs open when the app comes out of the background.
  </summary>
</histogram>

<histogram name="Tabs.CountAtStartup" units="tabs">
  <owner>marq@chromium.org</owner>
  <summary>[Android and iOS] The number of tabs open at cold launch.</summary>
</histogram>

<histogram name="Tabs.Discard.DiscardCount">
  <obsolete>
    Deprecated 10/2015, and replaced by TabManager.Discarding.DiscardCount.
  </obsolete>
  <owner>jamescook@chromium.org</owner>
  <summary>
    Cumulative number of tabs discarded due to low memory conditions, recorded
    once per tab discard event. For example, a user who had 3 tabs discarded
    records a count in the 1 bin, 2 bin and 3 bin. Thus each bin N is the number
    of sessions where users experienced N or more tab discard events.
  </summary>
</histogram>

<histogram name="Tabs.Discard.DiscardInLastMinute" enum="BooleanTabDiscard">
  <obsolete>
    Deprecated 11/2017. Average number of minutes between discard events is
    available in Tabs.Discard.InitialTime2 and Tabs.Discard.IntervalTime2.
  </obsolete>
  <owner>jamescook@chromium.org</owner>
  <summary>
    Whether or not a tab was discarded in the last minute of usage. Total count
    is number of minutes of device usage. 100 / discard percentage gives the
    average number of minutes between discard events.
  </summary>
</histogram>

<histogram name="Tabs.Discard.InitialTime" units="seconds">
  <obsolete>
    Deprecated May 4, 2012. Replaced by Tabs.Discard.InitialTime2 because this
    stat had too low of a range maximum. No longer tracked.
  </obsolete>
  <owner>jamescook@chromium.org</owner>
  <summary>
    Time in seconds between system startup and when the first tab is discarded
    due to low memory conditions. Higher is better.
  </summary>
</histogram>

<histogram name="Tabs.Discard.InitialTime2" units="seconds">
  <obsolete>
    Deprecated 11/2017. Replaced with Discarding.Urgent.TimeSinceStartup which
    is recorded when Chrome has to discard tabs or apps urgently (instead of
    before an individual tab is urgently or proactively discarded).
  </obsolete>
  <owner>jamescook@chromium.org</owner>
  <summary>
    Time in seconds between system startup and when the first tab is discarded
    due to low memory conditions. Higher is better. Range maximum is
    approximately one day.
  </summary>
</histogram>

<histogram name="Tabs.Discard.IntervalTime" units="seconds">
  <obsolete>
    Deprecated May 4, 2012. Replaced by Tabs.Discard.IntervalTime2 because this
    stat had too low of a range maximum. No longer tracked.
  </obsolete>
  <owner>jamescook@chromium.org</owner>
  <summary>
    Time in seconds between tab discard events after the first one, recorded
    once per discard event. Higher is better.
  </summary>
</histogram>

<histogram name="Tabs.Discard.IntervalTime2" units="ms">
  <obsolete>
    Deprecated 11/2017. Replaced with Discarding.Urgent.TimeSinceLastUrgent
    which is recorded before a set of tabs/apps are urgently discarded (instead
    of before an individual tab is urgently or proactively discarded).
  </obsolete>
  <owner>jamescook@chromium.org</owner>
  <summary>
    Time in milliseconds between tab discard events after the first one,
    recorded once per discard event. Should occur no faster than once every 750
    ms. Higher is better.
  </summary>
</histogram>

<histogram name="Tabs.Discard.MemAllocatedMB" units="MB">
  <owner>jamescook@chromium.org</owner>
  <summary>
    System-wide memory allocation at the time a tab was discarded, roughly
    equivalent to the sum of memory allocated with malloc() in userspace plus
    graphics driver memory.
  </summary>
</histogram>

<histogram name="Tabs.Discard.MemAnonymousMB" units="MB">
  <obsolete>
    Deprecated December 7, 2012. Replaced by Tabs.Discard.MemAllocatedMB because
    this stat has insufficient precision in the 2-4 GB range and does not
    properly account for graphics memory on ARM.
  </obsolete>
  <owner>jamescook@chromium.org</owner>
  <summary>
    System-wide anonymous memory allocation at the time a tab was discarded,
    roughly equivalent to memory allocated with malloc().
  </summary>
</histogram>

<histogram name="Tabs.Discard.MemAvailableMB" units="MB">
  <owner>jamescook@chromium.org</owner>
  <summary>
    System-wide file-backed memory plus free memory, roughly equivalent to what
    the kernel uses to trigger low-memory notifications for tab discards. If
    lower than the kernel's threshold then we are not effectively freeing memory
    in response to the initial notification and are repeatedly being notified.
  </summary>
</histogram>

<histogram name="Tabs.Discard.MemGraphicsMB" units="MB">
  <owner>jamescook@chromium.org</owner>
  <summary>
    Graphics driver (GEM object) memory at the time of a tab discard.
  </summary>
</histogram>

<histogram name="Tabs.Discard.MemShmemMB" units="MB">
  <owner>jamescook@chromium.org</owner>
  <summary>
    System-wide shared memory at the time of a tab discard. Used primarily for
    shared buffers in the graphics system. Tracked because it's a historical
    source of leaks on Chrome OS.
  </summary>
</histogram>

<histogram name="Tabs.Discard.ReloadCount">
  <obsolete>
    Deprecated 10/2015, and replaced by TabManager.Discarding.ReloadCount.
  </obsolete>
  <owner>jamescook@chromium.org</owner>
  <summary>
    Cumulative number of times a tab was reloaded because it was discarded and
    the user clicked on it later, recorded once per reload event. For example, a
    user who clicks on 3 discarded tabs will record a count in the 1 bin, 2 bin,
    and 3 bin. Thus each bin N is the number of sessions where users experienced
    N or more reload events. Compare to Tabs.Discard.DiscardCount.
  </summary>
</histogram>

<histogram name="Tabs.Discard.TabCount" units="tabs">
  <obsolete>
    Deprecated 11/2017. Replaced with Discarding.Urgent.NumAliveTabs which
    records the number of tabs that are not pending load or discarded when an
    urgent discard request is received (vs. this that records the total number
    of tabs every time a tab is discarded, no matter the reason).
  </obsolete>
  <owner>jamescook@chromium.org</owner>
  <summary>
    The number of tabs open across all browser windows when a tab was discarded
    due to low memory conditions.
  </summary>
</histogram>

<histogram name="Tabs.FineTiming.TimeBetweenTabClosedAndNextTabCreated"
    units="ms">
  <owner>joenotcharles@chromium.org</owner>
  <summary>
    Fine-grained (in msec) time between closing a tab and opening another, to
    track very frequent tabs.
  </summary>
</histogram>

<histogram name="Tabs.FineTiming.TimeBetweenTabCreatedAndNextTabCreated"
    units="ms">
  <owner>joenotcharles@chromium.org</owner>
  <summary>
    Fine-grained (in msec) time between opening a tab and opening another, to
    track very frequent tabs.
  </summary>
</histogram>

<histogram name="Tabs.FineTiming.TimeBetweenTabCreatedAndSameTabClosed"
    units="ms">
  <owner>joenotcharles@chromium.org</owner>
  <summary>
    Fine-grained (in msec) time between opening a tab and closing it, to track
    very short-lived tabs.
  </summary>
</histogram>

<histogram name="Tabs.FirstSwitchedToForegroundCreationRank">
  <owner>pkotwicz@chromium.org</owner>
  <summary>
    Records the &quot;Tab Creation Rank&quot; for the first background tab which
    was switched to the foreground. The &quot;Tab Creation Rank&quot; is
    relative to other background tabs which were opened from the same URL via
    the context menu. The oldest background tab has a rank of zero.
  </summary>
</histogram>

<histogram name="Tabs.FirstSwitchedToForegroundCreationReverseRank">
  <owner>pkotwicz@chromium.org</owner>
  <summary>
    Records the &quot;Reverse Tab Creation Rank&quot; for the first background
    background tab which was switched to the foreground. The &quot;Reverse Tab
    Creation Rank&quot; is relative to other background tabs which were opened
    from the same URL via the context menu. The newest background tab has a
    &quot;Reverse Tab Creation Rank&quot; of zero.
  </summary>
</histogram>

<histogram name="Tabs.ForegroundTabAgeAtStartup" units="minutes">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    [Android] Age (time since the last display in previous sessions) of the
    foreground tab being restored on the browser cold start.
  </summary>
</histogram>

<histogram name="Tabs.iOS_PostRedirectPLT" units="ms">
  <owner>pauljensen@chromium.org</owner>
  <summary>
    Page load time (PLT) for iOS that does not include time spent following
    redirects. On other platforms this is calculated from Navigation Timings but
    on iOS Navigation Timings are not available so we're recreating a
    calculation similar to PLT.PT_RequestToFinish but not including time spent
    following redirects. This metric represents the time between when navigation
    is initiated (prior to DNS, TCP connect, etc but after following redirects)
    until loading ends (i.e. JS onload event). On non-iOS Chrome this is
    (performance.timing.loadEventEnd - performance.timing.redirectEnd). On
    Chrome for iOS we're calculating the time between the creation of the
    top-level URLRequest and when webDidFinishWithURL is called.
  </summary>
</histogram>

<histogram name="Tabs.MaxTabsInADay" units="tabs">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The maximum number of tabs that Chrome displays at the same time over the
    course of a day.

    NOTE: This metric is asynchronous, the value reported on a given day
    represents the previous day's observations (which can be from a different
    build).
  </summary>
</histogram>

<histogram name="Tabs.MaxTabsPerWindowInADay" units="tabs">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The maximum number of tabs per window that Chrome displays over the course
    of a day.

    NOTE: This metric is asynchronous, the value reported on a given day
    represents the previous day's observations (which can be from a different
    build).
  </summary>
</histogram>

<histogram name="Tabs.MaxWindowsInADay" units="tabs">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The maximum number of windows existing at the same time over the course of a
    day.

    NOTE: This metric is asynchronous, the value reported on a given day
    represents the previous day's observations (which can be from a different
    build).
  </summary>
</histogram>

<histogram name="Tabs.NumberOfTabsOnResume" units="tabs">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The number of tabs total at resume from sleep/hibernate. This is being
    logged on all desktop platforms.
  </summary>
</histogram>

<histogram name="Tabs.SadTab.CrashCreated" units="tabs">
  <owner>jamescook@chromium.org</owner>
  <summary>
    Cumulative number of times a tab crashed with &quot;Aw, Snap!&quot;,
    recorded once per tab crash event. For example, a user who crashed 3 tabs
    will record a count in the 1 bin, 2 bin, and 3 bin. Thus each bin N is the
    number of sessions where users experienced N or more crash events. The user
    may not have actually seen the sad tab page, as it might have been an
    inactive tab. Compare to Tabs.SadTab.CrashDisplayed.
  </summary>
</histogram>

<histogram name="Tabs.SadTab.CrashDisplayed" units="tabs">
  <owner>jamescook@chromium.org</owner>
  <summary>
    Cumulative number of times a tab crashed with &quot;Aw, Snap!&quot; and the
    user saw the page, recorded once per tab crash event. For example, a user
    who crashed 3 tabs will record a count in the 1 bin, 2 bin, and 3 bin. Thus
    each bin N is the number of sessions where users experienced N or more crash
    events. Compare to Tabs.SadTab.CrashCreated.
  </summary>
</histogram>

<histogram name="Tabs.SadTab.Feedback.Event" enum="SadTabEvent">
  <owner>sdy@chromium.org</owner>
  <summary>
    Counts of events from the style of sad tab which has a feedback button as
    its primary action. Currently, events include being displayed (actually
    visible in a window), and the actions a user can take on the page.
  </summary>
</histogram>

<histogram name="Tabs.SadTab.KillCreated" units="tabs">
  <owner>jamescook@chromium.org</owner>
  <summary>
    Cumulative number of times a tab was killed with a &quot;He's dead,
    Jim!&quot; page, which is usually due to the renderer being killed, recorded
    once per tab kill event. For example, a user who loses 3 tabs will record a
    count in the 1 bin, 2 bin, and 3 bin. Thus each bin N is the number of
    sessions where users experienced N or more kill events. The user may not
    have actually seen the sad tab page, as it might have been an inactive tab.
    Compare to Tabs.SadTab.KillDisplayed. This can happen due to out of memory,
    malformed IPC messages, or a SIGINT/TERM/KILL signal sent by a user.
  </summary>
</histogram>

<histogram name="Tabs.SadTab.KillCreated.OOM" units="tabs">
  <owner>oshima@chromium.org</owner>
  <summary>
    Cumulative number of times a tab was killed with a &quot;He's dead,
    Jim!&quot; page due to the kernel out-of-memory killer, recorded once per
    tab kill event. For example, a user who loses 3 tabs will record a count in
    the 1 bin, 2 bin, and 3 bin. Thus each bin N is the number of sessions where
    users experienced N or more kill events. The user may not have actually seen
    the sad tab page, as it might have been an inactive tab. Compare to
    Tabs.SadTab.KillDisplayed.
  </summary>
</histogram>

<histogram name="Tabs.SadTab.KillDisplayed" units="tabs">
  <owner>jamescook@chromium.org</owner>
  <summary>
    Cumulative number of times a tab was killed with a &quot;He's dead,
    Jim!&quot; page and the user saw the page, recorded once per tab kill event.
    For example, a user who loses 3 tabs will record a count in the 1 bin, 2
    bin, and 3 bin. Thus each bin N is the number of sessions where users
    experienced N or more kill events. Compare to Tabs.SadTab.CrashCreated.
  </summary>
</histogram>

<histogram name="Tabs.SadTab.KillDisplayed.OOM" units="tabs">
  <owner>oshima@chromium.org</owner>
  <summary>
    Cumulative number of times a tab was killed with a &quot;He's dead,
    Jim!&quot; page due to the kernel out-of-memory killer and the user saw the
    page, recorded once per tab kill event. For example, a user who loses 3 tabs
    will record a count in the 1 bin, 2 bin, and 3 bin. Thus each bin N is the
    number of sessions where users experienced N or more kill events. Compare to
    Tabs.SadTab.CrashCreated.
  </summary>
</histogram>

<histogram name="Tabs.SadTab.OomCreated" units="tabs">
  <owner>wfh@chromium.org</owner>
  <summary>
    Cumulative number of times a tab crashed with &quot;Aw, Snap!&quot;,
    recorded once per tab oom event. For example, a user who ran out of memory
    in 3 tabs will record a count in the 1 bin, 2 bin, and 3 bin. Thus each bin
    N is the number of sessions where users experienced N or more oom events.
    The user may not have actually seen the sad tab page, as it might have been
    an inactive tab. Compare to Tabs.SadTab.OomDisplayed.
  </summary>
</histogram>

<histogram name="Tabs.SadTab.OomDisplayed" units="tabs">
  <owner>wfh@chromium.org</owner>
  <summary>
    Cumulative number of times a tab ran out of memory with &quot;Aw,
    Snap!&quot; and the user saw the page, recorded once per tab oom event. For
    example, a user who ran out of memory in 3 tabs will record a count in the 1
    bin, 2 bin, and 3 bin. Thus each bin N is the number of sessions where users
    experienced N or more oom events. Compare to Tabs.SadTab.OomCreated.
  </summary>
</histogram>

<histogram name="Tabs.SadTab.Reload.Event" enum="SadTabEvent">
  <owner>sdy@chromium.org</owner>
  <summary>
    Counts of events from the style of sad tab which has a reload button as its
    primary action. Compare to Tabs.SadTab.Feedback.Event.
  </summary>
</histogram>

<histogram name="Tabs.SadTab.ReloadCount" units="tabs">
  <owner>jamescook@chromium.org</owner>
  <summary>
    The number of times a tab was reloaded because it was killed (usually by the
    kernel OOM killer) and the user clicked on it later, recorded once per
    reload event. For example, a user who clicks on 3 discarded tabs will record
    a count in the 1 bin, 2 bin, and 3 bin. Thus each bin N is the number of
    sessions where users experienced N or more reload events. Compare to
    Tabs.Discard.DiscardCount.
  </summary>
</histogram>

<histogram name="Tabs.ScrubDistance" units="tabs" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The distance a user 3 finger scrubbed to change tabs. Always positive
    (ignores left / right).
  </summary>
</histogram>

<histogram name="Tabs.SpeculativeRestoreApplicability"
    enum="SpeculativeRestoreApplicability">
  <obsolete>
    No longer logged
  </obsolete>
  <summary>
    Applicability of speculative tab restore, recorded every time a tab is
    switched. This allows to estimate the fraction of tab restores experienced
    on mobile that can be mitigated using speculative restore. Options higher in
    the enum take precedence over the lower ones (i.e. low-memory tablet will be
    accounted as tablet).
  </summary>
</histogram>

<histogram name="Tabs.SpeculativeRestorePredictionAccuracy.SideSwipe"
    enum="SpeculativeRestorePredictionAccuracy">
  <obsolete>
    No longer logged
  </obsolete>
  <summary>
    Accuracy of the tab switch predictions made when the user begins the side
    swipe gesture.
  </summary>
</histogram>

<histogram name="Tabs.SpeculativeRestorePredictionAccuracy.TabSwitcher"
    enum="SpeculativeRestorePredictionAccuracy">
  <obsolete>
    No longer logged
  </obsolete>
  <summary>
    Accuracy of the tab switch predictions made when the user enters the tab
    switcher.
  </summary>
</histogram>

<histogram name="Tabs.SpeculativeRestoreTargetStatus"
    enum="SpeculativeRestoreTabStatus">
  <obsolete>
    No longer logged
  </obsolete>
  <summary>
    Status of a tab recorded when the tab is targeted with speculative restore.
  </summary>
</histogram>

<histogram name="Tabs.SpeculativeRestoreTimeAhead.SideSwipe" units="ms">
  <obsolete>
    No longer logged
  </obsolete>
  <summary>
    Time between starting the speculative load and actual tab switch for correct
    speculative load predictions made when the user begins the side swipe
    gesture.
  </summary>
</histogram>

<histogram name="Tabs.SpeculativeRestoreTimeAhead.TabSwitcher" units="ms">
  <obsolete>
    No longer logged
  </obsolete>
  <summary>
    Time between starting the speculative load and actual tab switch for correct
    speculative load predictions made when the user enters the tab switcher.
  </summary>
</histogram>

<histogram name="Tabs.StateTransfer.NumberOfOtherTabsActivatedBeforeMadeActive"
    units="tabs">
  <owner>kouhei@chromium.org</owner>
  <owner>tzik@chromium.org</owner>
  <summary>
    Recorded once per tab activation. The number of tabs that were activated
    while the tab was inactive.
  </summary>
  <details>
    This metric is to be removed after M46 hits stable. We don't expect this
    metric to change over release, so we will remove this once we have the
    numbers from stable.
  </details>
</histogram>

<histogram name="Tabs.StateTransfer.TabDistanceInactiveToActive" units="tabs">
  <owner>kouhei@chromium.org</owner>
  <owner>tzik@chromium.org</owner>
  <summary>
    Number of tabs between the previously active tab and the new active tab.
  </summary>
  <details>
    This metric is to be removed after M46 hits stable. We don't expect this
    metric to change over release, so we will remove this once we have the
    numbers from stable.
  </details>
</histogram>

<histogram name="Tabs.StateTransfer.Target" enum="TabStripState">
  <owner>kouhei@chromium.org</owner>
  <owner>tzik@chromium.org</owner>
  <summary>
    The state to which a tab transitioned. Recorded when a tab transitions from
    the state in the histogram name to a new state.
  </summary>
  <details>
    kouhei@ and tzik@ will remove some variation of these once M46 hits stable.
  </details>
</histogram>

<histogram name="Tabs.StateTransfer.Time" units="ms">
  <obsolete>
    Deprecated as of 4/2017.
  </obsolete>
  <owner>kouhei@chromium.org</owner>
  <owner>tzik@chromium.org</owner>
  <summary>
    Tabs.StateTransfer.TimeA_B measures the time a tab was in state A before it
    transferred to state B.
  </summary>
</histogram>

<histogram name="Tabs.SwitchFromCloseLatency" units="ms">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    [Android] Time between the event that closes a tab and the start of
    rendering.
  </summary>
</histogram>

<histogram name="Tabs.SwitchFromExitLatency" units="ms">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    [Android] Time between the event that exits an app and the start of
    rendering.
  </summary>
</histogram>

<histogram name="Tabs.SwitchFromNewLatency" units="ms">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    [Android] Time between the event that creates a tab and the start of
    rendering.
  </summary>
</histogram>

<histogram name="Tabs.SwitchFromUserLatency" units="ms">
  <owner>dtrainor@chromium.org</owner>
  <summary>
    [Android] Time between the event that selects a tab and the start of
    rendering.
  </summary>
</histogram>

<histogram name="Tabs.TabCount" units="tabs">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    Counts the number of tabs across all windows, reported every 5 minutes.
    Desktop only.
  </summary>
</histogram>

<histogram name="Tabs.TabCountActiveWindow" units="tabs">
  <owner>markchang@google.com</owner>
  <summary>
    The number of tabs open in the active window when a load completes.
  </summary>
</histogram>

<histogram name="Tabs.TabCountPerLoad" units="tabs">
  <owner>sbirch@google.com</owner>
  <summary>
    The number of tabs open in all browsers (counting app-mode windows) when a
    load completes.
  </summary>
  <details>
    This is basically the average number of tabs over time.

    See also MPArch.RPHCountPerLoad for the number of processes used by these
    tabs.
  </details>
</histogram>

<histogram name="Tabs.TabCountPerWindow" units="tabs">
  <owner>pkasting@chromium.org</owner>
  <summary>
    The number of tabs open per window (counting app-mode windows) when a load
    completes.
  </summary>
  <details>
    This value will be recorded multiple times per load if more than one window
    is open.
  </details>
</histogram>

<histogram name="Tabs.TabOffsetOfSwitch">
  <owner>yusufo@chromium.org</owner>
  <summary>
    How many tabs a user moved forward or backward in the Android tab switcher.
  </summary>
  <details>
    Logged by the Android tab switcher when a user switches tabs (other than by
    opening a new tab). If the user switches to an earlier tab in the stack, we
    log a positive offset value indicating how many tabs back they moved. If the
    user switches to a later tab, we log a negative offset value. If the user
    stays on the same tab, we log 0. If the user switches to a tab in a
    different stack (i.e. they switch from normal to incognito or vice-versa),
    we don't log a value.
  </details>
</histogram>

<histogram name="Tabs.TabsStatsDailyEventInterval"
    enum="DailyEventIntervalType">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    Counts how often tab stats daily interval events were fired.
  </summary>
</histogram>

<histogram name="Tabs.Tasks.AverageTabGroupSize" units="tabs">
  <owner>yusufo@chromium.org</owner>
  <owner>wychen@chromium.org</owner>
  <summary>
    The average tab group size, average number of tabs in a group, on a cold
    start after all tabs are restored.
  </summary>
</histogram>

<histogram name="Tabs.Tasks.DuplicatedTab.DuplicatedTabCount" units="tabs"
    expires_after="2019-06-01">
  <owner>yusufo@chromium.org</owner>
  <owner>wychen@chromium.org</owner>
  <summary>
    During tab restoration, a tab is considered as a duplicated tab when it has
    an identical url with another restored tab.

    This histogram records the number of duplicated tabs on a cold start after
    all tabs are restored. The possible range for this number is from 0 to total
    number of restored tabs minus 1. In other words, this number is equals to
    total number of restored tabs minus the number of unique URLs.
  </summary>
</histogram>

<histogram name="Tabs.Tasks.DuplicatedTab.DuplicatedTabRatio" units="%"
    expires_after="2019-06-01">
  <owner>yusufo@chromium.org</owner>
  <owner>wychen@chromium.org</owner>
  <summary>
    During tab restoration, a tab is considered as a duplicated tab when it has
    an identical url with another restored tab.

    This histogram records the ratio of duplicated tabs to the total number of
    tabs on a cold start after all tabs are restored. This ratio will never
    reach 100%, since the highest possible number of duplicated tabs is total
    number of restored tabs minus 1.
  </summary>
</histogram>

<histogram name="Tabs.Tasks.HubAndSpokeNavigationUsage" units="spokes"
    expires_after="2019-06-01">
<!-- Name completed by histogram_suffixes name="HubAndSpokeNavigationUsageType" -->

  <owner>yusufo@chromium.org</owner>
  <owner>wychen@chromium.org</owner>
  <summary>
    The cumulative number of &quot;spokes&quot; from any &quot;hub&quot; page in
    every tab. A &quot;hub&quot; is any page that the user navigates away from,
    and a &quot;spoke&quot; is a page that's navigated to. The
    &quot;spokes&quot; count is incremented and recorded each time the user
    navigates back to a &quot;hub&quot; page via navigation back button and then
    navigates to a new &quot;spoke&quot;.
  </summary>
</histogram>

<histogram base="true" name="Tabs.Tasks.TabCreated.Count" units="tabs"
    expires_after="2019-06-30">
<!-- Name completed by histogram_suffixes name="TabCreatedReason" -->

  <owner>yusufo@chromium.org</owner>
  <owner>wychen@chromium.org</owner>
  <owner>zea@chromium.org</owner>
  <summary>
    This recorded value is the number of currently open tabs that were created
    from a given source. This is recorded when entering the tab switcher mode.
  </summary>
</histogram>

<histogram base="true" name="Tabs.Tasks.TabCreated.Percent" units="%"
    expires_after="2019-06-30">
<!-- Name completed by histogram_suffixes name="TabCreatedReason" -->

  <owner>yusufo@chromium.org</owner>
  <owner>wychen@chromium.org</owner>
  <owner>zea@chromium.org</owner>
  <summary>
    The recorded value is the percentage of the number of currently open tabs
    that are created from a given source, relative to the total number of
    currently open tabs. This is recorded when entering the tab switcher mode.
  </summary>
</histogram>

<histogram name="Tabs.Tasks.TabGroupCount" units="groups">
  <owner>yusufo@chromium.org</owner>
  <owner>wychen@chromium.org</owner>
  <summary>
    The number of tab groups on a cold start after all tabs are restored.
  </summary>
</histogram>

<histogram name="Tabs.Tasks.TabGroupDensity" units="%">
  <owner>yusufo@chromium.org</owner>
  <owner>wychen@chromium.org</owner>
  <summary>
    The tab group density, the ratio of the number of tab groups to the total
    number of tabs, on a cold start after all tabs are restored.
  </summary>
</histogram>

<histogram name="Tabs.Tasks.TabsInGroupCount" units="tabs">
  <owner>yusufo@chromium.org</owner>
  <owner>wychen@chromium.org</owner>
  <summary>
    The number of tabs is belonging to a tab group on a cold start after all
    tabs are restored.
  </summary>
</histogram>

<histogram name="Tabs.Tasks.TabsInGroupRatio" units="%">
  <owner>yusufo@chromium.org</owner>
  <owner>wychen@chromium.org</owner>
  <summary>
    The ratio of all tabs in tab groups to the total number of tabs on a cold
    start after all tabs are restored.
  </summary>
</histogram>

<histogram name="Tabs.TimeSinceLastInteraction" units="ms">
  <owner>alexmos@chromium.org</owner>
  <owner>dcheng@chromium.org</owner>
  <summary>
    Reports the delta between the last user interaction time with a WebContents
    and the time browser code wants to verify a recent user interaction with
    that WebContents. Used to tune the threshhold for timing out a user
    interaction.
  </summary>
</histogram>

<histogram base="true" name="Tabs.UnusedAndClosedInInterval.Count" units="tabs">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The number of tabs that haven't been interacted with, visible or audible
    over a given interval time, but which no longer exist at all at the end of
    this interval.
  </summary>
</histogram>

<histogram base="true" name="Tabs.UnusedInInterval.Count" units="tabs">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The number of tabs that haven't been interacted with, visible or audible or
    visible during a given interval of time and still exist at the end of this
    interval.
  </summary>
</histogram>

<histogram base="true" name="Tabs.UsedAndClosedInInterval.Count" units="tabs">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The number of tabs that have been interacted with, visible or audible over a
    given interval of time, but which no longer exist at all at the end of this
    interval.
  </summary>
</histogram>

<histogram base="true" name="Tabs.UsedInInterval.Count" units="tabs">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    The number of tabs that have been interacted with, visible or audible during
    a given interval of time, includes tabs that don't exist at the end of this
    interval.
  </summary>
</histogram>

<histogram name="Tabs.WindowCount" units="tabs">
  <owner>sebmarchand@chromium.org</owner>
  <summary>
    Counts the number of Chrome windows, reported every 5 minutes. Desktop only.
  </summary>
</histogram>

<histogram name="TabsApi.RequestedWindowState" enum="RequestedWindowState">
  <owner>afakhry@chromium.org</owner>
  <summary>
    The requested window creation state from the tabs extensions API when it's
    used to create a new window or update the state of an existing one.
  </summary>
</histogram>

<histogram name="TaskQueueManager.ActiveQueuesCount">
  <owner>altimin@chromium.org</owner>
  <owner>farahcharab@chromium.org</owner>
  <summary>
    Used to track the number of active task queues in the task queue manager.
    Reported every time a task is selected for execution.
  </summary>
</histogram>

<histogram name="TaskQueueSelector.TaskServicedPerSelectorLogic"
    enum="TaskQueueSelectorLogic">
  <owner>altimin@chromium.org</owner>
  <owner>farahcharab@chromium.org</owner>
  <summary>
    Used to track the number of tasks serviced due to starvation versus the
    number of tasks serviced due to priroity. Incremented whenever a task queue
    is selected to service.
  </summary>
</histogram>

<histogram name="TaskScheduler.BlockShutdownTasksPostedDuringShutdown"
    units="tasks">
  <obsolete>
    Deprecated 10/2018. Instead of recording a histogram with the number of
    BLOCK_SHUTDOWN tasks posted during shutdown, we generate a crash when too
    many BLOCK_SHUTDOWN tasks are posted during shutdown. A crash dump is more
    actionnable than a histogram.
  </obsolete>
  <owner>fdoray@chromium.org</owner>
  <summary>
    Number of BLOCK_SHUTDOWN tasks that were posted to a base::TaskScheduler
    after its Shutdown() method was called but before it returned.
  </summary>
</histogram>

<histogram base="true" name="TaskScheduler.DetachDuration" units="ms">
  <owner>fdoray@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <owner>robliao@chromium.org</owner>
  <summary>
    Time elapsed between when the thread managed by a SchedulerWorker is
    detached and when the main function of a new thread managed by the same
    SchedulerWorker is entered (following a wake up). Recorded each time that a
    thread is recreated for a given SchedulerWorker.
  </summary>
</histogram>

<histogram base="true" name="TaskScheduler.HeartbeatLatencyMicroseconds"
    units="microseconds">
  <owner>fdoray@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <owner>robliao@chromium.org</owner>
  <summary>
    Latency of dummy &quot;heartbeat&quot; tasks posted with specific traits
    (see suffix). The heartbeat recording avoids dependencies between this
    report and other work in the system. See
    TaskScheduler.TaskLatencyMicroseconds.* for a metric that is closer to the
    real workload.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram base="true" name="TaskScheduler.NumActiveWorkers" units="workers">
  <owner>etiennep@chromium.org</owner>
  <owner>fdoray@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>
    Number of workers running a task in a given SchedulerWorkerPool. Recorded
    every 59 minutes (sampling rate is not expected to affect the distribution).
  </summary>
</histogram>

<histogram base="true" name="TaskScheduler.NumCancelledDelayedTasks"
    units="tasks" expires_after="2019-05-01">
  <owner>adityakeerthi@google.com</owner>
  <owner>fdoray@chromium.org</owner>
  <summary>
    Lower-bound number of cancelled tasks that remain in the DelayedTaskManager.
    An exact number is not recorded, as it could potentially be expensive to
    calculate. Instead, a lazy count is maintained by noting cancelled tasks as
    new delayed tasks are added. Recorded every time the ServiceThread performs
    a heartbeat latency report.
  </summary>
</histogram>

<histogram base="true" name="TaskScheduler.NumTasksBeforeDetach" units="tasks">
  <owner>fdoray@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <owner>robliao@chromium.org</owner>
  <summary>
    Number of tasks executed by a SchedulerWorker before it detached. Recorded
    when a SchedulerWorker detaches.
  </summary>
</histogram>

<histogram base="true" name="TaskScheduler.NumTasksBetweenWaits" units="tasks">
  <owner>fdoray@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <owner>robliao@chromium.org</owner>
  <summary>
    Number of tasks executed by a SchedulerWorker between two waits on its
    WaitableEvent. This should be maximized without affecting perceived browser
    performance.
  </summary>
</histogram>

<histogram base="true" name="TaskScheduler.NumTasksRunWhileQueuing"
    units="tasks" expires_after="2019-10-01">
  <owner>fdoray@chromium.org</owner>
  <summary>
    Number of tasks run by TaskScheduler while task was queuing (from time task
    was posted until time it was run). Recorded for dummy &quot;heartbeat&quot;
    tasks posted with specific traits (see suffix). The heartbeat recording
    avoids dependencies between this report and other work in the system.
    Recorded every time the ServiceThread performs a heartbeat latency report.
  </summary>
</histogram>

<histogram base="true" name="TaskScheduler.NumWorkers" units="workers">
  <owner>etiennep@chromium.org</owner>
  <owner>fdoray@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>
    Number of workers that live in a given SchedulerWorkerPool. Recorded every
    59 minutes (sampling rate is not expected to affect the distribution).
  </summary>
</histogram>

<histogram base="true" name="TaskScheduler.PercentCancelledDelayedTasks"
    units="tasks" expires_after="2019-05-01">
  <owner>adityakeerthi@google.com</owner>
  <owner>fdoray@chromium.org</owner>
  <summary>
    Lower-bound percentage of tasks in the DelayedTaskManager that have been
    cancelled. An exact number is not recorded, as it could potentially be
    expensive to calculate. Instead, a lazy count is maintained by noting
    cancelled tasks as new delayed tasks are added. Recorded every time the
    ServiceThread performs a heartbeat latency report.
  </summary>
</histogram>

<histogram base="true" name="TaskScheduler.TaskLatency" units="ms">
  <obsolete>
    Deprecated 4/2017. Units changed from milliseconds to microseconds.
  </obsolete>
  <owner>fdoray@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <owner>robliao@chromium.org</owner>
  <summary>
    Time elapsed between when a task is posted and when it starts to run.
    Recorded for each task that runs inside the TaskScheduler. This metric is
    useful to determine true latency of the average task in the average runtime
    scenario. Its total count can also be used as a proxy for the number of
    tasks posted to a given category. On the other hand, a fallout of this
    metric is that timing every task means each report is dependent on the many
    things that can cause an individual task to be delayed (e.g. tasks on a
    single bogged down sequence will be reported with high latency even if not
    stalling the scheduler itself). See
    TaskScheduler.HeartbeatLatencyMicroseconds.* for a metric that is
    independent of such factors.
  </summary>
</histogram>

<histogram base="true" name="TaskScheduler.TaskLatencyMicroseconds"
    units="microseconds">
  <owner>fdoray@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <owner>robliao@chromium.org</owner>
  <summary>
    Time elapsed between when a task is posted and when it starts to run.
    Recorded for each task that runs inside the TaskScheduler.
  </summary>
</histogram>

<histogram name="TextToSpeech.Event" enum="TextToSpeechEvent">
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    Events fired by the text-to-speech engine when speaking an utterance.
  </summary>
</histogram>

<histogram name="TextToSpeech.Settings.DefaultVoicePicked"
    enum="TextToSpeechVoiceIdHashes">
  <owner>katie@chromium.org</owner>
  <owner>dtseng@chromium.org</owner>
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    The user picked a default voice of the specified voice ID, which is hashed
    from a JSON string of the voice name and extension ID.
  </summary>
</histogram>

<histogram name="TextToSpeech.Settings.PreviewVoiceClicked"
    enum="TextToSpeechVoiceIdHashes">
  <owner>katie@chromium.org</owner>
  <owner>dtseng@chromium.org</owner>
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    When the user requests a preview of a text-to-speech voice, records which
    voice was previewed.
  </summary>
</histogram>

<histogram name="TextToSpeech.Utterance.FromExtensionAPI"
    enum="TextToSpeechFromExtensionAPI">
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    Indicates if an utterance spoken via synthesized text-to-speech was
    triggered by the Chrome TTS extension API or the web speech API.
  </summary>
</histogram>

<histogram name="TextToSpeech.Utterance.HasGender" enum="TextToSpeechHasGender"
    expires_after="M73">
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    True if an utterance spoken via synthesized text-to-speech requested a
    specific gender.
  </summary>
</histogram>

<histogram name="TextToSpeech.Utterance.HasLang" enum="TextToSpeechHasLang">
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    True if an utterance spoken via synthesized text-to-speech specified a
    language code.
  </summary>
</histogram>

<histogram name="TextToSpeech.Utterance.HasPitch" enum="TextToSpeechHasPitch">
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    True if an utterance spoken via synthesized text-to-speech requested a
    specific pitch other than the default.
  </summary>
</histogram>

<histogram name="TextToSpeech.Utterance.HasRate" enum="TextToSpeechHasRate">
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    True if an utterance spoken via synthesized text-to-speech requested a
    specific speech rate other than the default.
  </summary>
</histogram>

<histogram name="TextToSpeech.Utterance.HasVoiceName"
    enum="TextToSpeechHasVoiceName">
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    True if an utterance spoken via synthesized text-to-speech requested a
    specific voice by name.
  </summary>
</histogram>

<histogram name="TextToSpeech.Utterance.HasVolume" enum="TextToSpeechHasVolume">
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    True if an utterance spoken via synthesized text-to-speech requested a
    specific volume other than the default.
  </summary>
</histogram>

<histogram name="TextToSpeech.Utterance.Native" enum="TextToSpeechNative">
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    True if an utterance is spoken with native speech provided by the operating
    system, otherwise it's spoken via a Chrome extension that implements
    text-to-speech support.
  </summary>
</histogram>

<histogram name="TextToSpeech.Utterance.TextLength" units="bytes">
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    The length of an utterance to be spoken via synthesized text-to-speech.
  </summary>
</histogram>

<histogram name="TextToSpeechEngine.ParseVoice.HasGender"
    enum="TextToSpeechHasGender" expires_after="M70">
  <obsolete>
    Deprecated 08/2018.
  </obsolete>
  <owner>katie@chromium.org</owner>
  <owner>dtseng@chromium.org</owner>
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    True if a voice parsed from a ttsEngine extension manifest has a specific
    gender. This is recorded each time a TTS extension is parsed, which may
    occur multiple times per extension, in tts_engine_manifest_handler:
    TtsVoices::Parse.
  </summary>
</histogram>

<histogram name="TextToSpeechEngine.UpdateVoice.HasGender"
    enum="TextToSpeechHasGender" expires_after="M70">
  <obsolete>
    Deprecated 08/2018.
  </obsolete>
  <owner>katie@chromium.org</owner>
  <owner>dtseng@chromium.org</owner>
  <owner>dmazzoni@chromium.org</owner>
  <summary>
    True if a voice specified in chrome.ttsEngine.updateVoices by a ttsEngine
    extension has a specific gender.
  </summary>
</histogram>

<histogram name="ThirdPartyModules.Certificates.Microsoft" units="certificates">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The total number of certificates for modules loaded (or potentially loaded)
    into the browser process that are signed by Microsoft. A catalog counts as a
    single certificate, and may refer to many modules. Measured shortly after
    startup. Windows only.
  </summary>
</histogram>

<histogram name="ThirdPartyModules.Certificates.Total" units="certificates"
    expires_after="2019-12-31">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The total number of certificates for modules loaded (or potentially loaded)
    into the browser process. A catalog counts as a single certificate, and may
    refer to many modules. Measured shortly after startup. Windows only.
  </summary>
</histogram>

<histogram name="ThirdPartyModules.GetDriveLetterPathFound" enum="BooleanFound">
  <owner>pmonette@chromium.org</owner>
  <summary>
    Records whether an equivalent driver letter path was found for a device
    path.
  </summary>
</histogram>

<histogram name="ThirdPartyModules.Heartbeat.BlockedModulesCount"
    units="modules">
  <owner>pmonette@chromium.org</owner>
  <summary>
    Records the number of modules that were blocked from loading into the
    browser process by the third-party DLL blocking feature. This is recorded
    every 5 minutes.
  </summary>
</histogram>

<histogram
    name="ThirdPartyModules.Heartbeat.PrintingWorkaround.BlockingEnabled"
    enum="BooleanEnabled">
  <owner>pmonette@chromium.org</owner>
  <summary>
    Records whether or not Chrome is still blocking third-party DLLs. This is a
    bit that turns to false when the in-process printing is invoked. Recorded
    every 5 minutes.
  </summary>
</histogram>

<histogram name="ThirdPartyModules.Heartbeat.UniqueBlockedModulesCount"
    units="modules">
  <owner>pmonette@chromium.org</owner>
  <summary>
    Records the number of unique modules that were blocked from loading into the
    browser process by the third-party DLL blocking feature. This is recorded
    every 5 minutes.
  </summary>
</histogram>

<histogram name="ThirdPartyModules.InputMethodEditorsCount" units="counts">
  <owner>pmonette@chromium.org</owner>
  <summary>
    The number of registered input method editors found on the user's machine.
    This is emitted shortly after startup when the IME enumeration takes place.
  </summary>
</histogram>

<histogram name="ThirdPartyModules.InstalledApplications.GetDataTime"
    units="ms">
  <owner>pmonette@chromium.org</owner>
  <summary>
    Records the time it took to gather the list of installed third-party
    programs and their install location or components.
  </summary>
</histogram>

<histogram name="ThirdPartyModules.InstalledApplications.GotUserSidString"
    enum="BooleanSuccess">
  <owner>pmonette@chromium.org</owner>
  <summary>
    Records whether retrieving the current user SID was successful.
  </summary>
</histogram>

<histogram name="ThirdPartyModules.InstalledPrograms.DataSize" units="KB">
  <obsolete>
    Deprecated 12/2017.
  </obsolete>
  <owner>pmonette@chromium.org</owner>
  <summary>
    Records the size of the in-memory representation of the installed
    third-party programs on the user's machine.
  </summary>
</histogram>

<histogram name="ThirdPartyModules.InstalledPrograms.GetDataTime" units="ms">
  <obsolete>
    Deprecated 07/2018.
  </obsolete>
  <owner>pmonette@chromium.org</owner>
  <summary>
    Records the time it took to gather the list of installed third-party
    programs and their install location or components.
  </summary>
</histogram>

<histogram name="ThirdPartyModules.Modules.Loaded" units="modules">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The total number of third-party modules (neither Microsoft nor Google) that
    are loaded in the browser process. Measured shortly after startup. Windows
    only.
  </summary>
</histogram>

<histogram name="ThirdPartyModules.Modules.NotLoaded" units="modules"
    expires_after="2019-12-31">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The total number of third-party modules (neither Microsoft nor Google) that
    are not yet loaded in the browser process, but may potentially be (shell
    extensions, for example). Measured shortly after startup. Windows only.
  </summary>
</histogram>

<histogram name="ThirdPartyModules.Modules.Signed" units="modules"
    expires_after="2019-12-31">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The total number of signed modules loaded (or potentially loaded) into the
    browser process. Measured shortly after startup. Windows only.
  </summary>
</histogram>

<histogram name="ThirdPartyModules.Modules.Signed.Catalog" units="modules"
    expires_after="2019-12-31">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The total number of modules loaded (or potentially loaded) into the browser
    process that are signed via a catalog. Measured shortly after startup.
    Windows only.
  </summary>
</histogram>

<histogram name="ThirdPartyModules.Modules.Signed.Microsoft" units="modules">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The total number of modules loaded (or potentially loaded) into the browser
    process that are signed by Microsoft. Measured shortly after startup.
    Windows only.
  </summary>
</histogram>

<histogram name="ThirdPartyModules.Modules.Total" units="modules">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The total number of modules loaded (or potentially loaded) into the browser
    process. Measured shortly after startup. Windows only.
  </summary>
</histogram>

<histogram name="ThirdPartyModules.Modules.Unsigned" units="modules">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The total number of unsigned modules loaded (or potentially loaded) into the
    browser process. Measured shortly after startup. Windows only.
  </summary>
</histogram>

<histogram name="ThirdPartyModules.ShellExtensionsCount" units="counts">
  <obsolete>
    Deprecated as of 14 Aug 2018 as reporting to this metric was incorrect since
    its inception. Replaced by ThirdPartyModules.ShellExtensionsCount2.
  </obsolete>
  <owner>pmonette@chromium.org</owner>
  <summary>
    The number of registered shell extensions found on the user's machine. This
    is emitted shortly after startup when the shell extensions enumeration takes
    place.
  </summary>
</histogram>

<histogram name="ThirdPartyModules.ShellExtensionsCount2" units="counts">
  <obsolete>
    Deprecated on 30/08/2018 now that the enumeration removes duplicate entries.
  </obsolete>
  <owner>pmonette@chromium.org</owner>
  <summary>
    The number of registered shell extensions found on the user's machine. This
    is emitted shortly after startup when the shell extensions enumeration takes
    place.
  </summary>
</histogram>

<histogram name="ThirdPartyModules.ShellExtensionsCount3" units="counts">
  <owner>pmonette@chromium.org</owner>
  <summary>
    The number of registered shell extensions found on the user's machine. This
    is emitted shortly after startup when the shell extensions enumeration is
    done. Doesn't count duplicates.
  </summary>
</histogram>

<histogram name="ThirdPartyModules.TimeDateStampObtained" enum="BooleanSuccess">
  <owner>pmonette@chromium.org</owner>
  <summary>
    Indicates whether the TimeDateStamp for a loaded module was successfully
    obtained.
  </summary>
</histogram>

<histogram name="ThirdPartyModules.Uninstallable" enum="BooleanUninstallable">
  <owner>pmonette@chromium.org</owner>
  <summary>
    Records whether or not a loaded third party module could be uninstalled
    using the Windows Apps &amp; Features page.
  </summary>
</histogram>

<histogram name="ThreadWatcher.ResponseTime" units="ms">
  <owner>rch@chromium.org</owner>
  <summary>
    The time it takes indicated thread to respond with a pong message for a ping
    message from WatchDog thread.
  </summary>
</histogram>

<histogram name="ThreadWatcher.ResponsiveThreads">
  <owner>rch@chromium.org</owner>
  <summary>
    This is the total number of watched threads that are responding when we got
    no response from the watched thread.
  </summary>
</histogram>

<histogram name="ThreadWatcher.Unresponsive" units="ms">
  <owner>rch@chromium.org</owner>
  <summary>
    This is the total unresponsive time since last pong message for the
    indicated thread when we got no response from the watched thread.
  </summary>
</histogram>

<histogram name="ThreadWatcher.UnresponsiveThreads">
  <owner>rch@chromium.org</owner>
  <summary>
    This is the total number of watched threads that are not responding when we
    got no response from the watched thread.
  </summary>
</histogram>

<histogram name="Thumbnails.AddedToTopSites" enum="ThumbnailTopSitesEvent">
  <owner>treib@chromium.org</owner>
  <summary>
    A page thumbnail (for use on the New Tab page) was added to TopSites.
  </summary>
</histogram>

<histogram name="Thumbnails.CaptureOutcome" enum="ThumbnailCaptureOutcome">
  <owner>treib@chromium.org</owner>
  <summary>
    The result of trying to capture a thumbnail of the current page.
  </summary>
</histogram>

<histogram name="Thumbnails.CopyFromSurfaceTime" units="ms">
  <owner>treib@chromium.org</owner>
  <summary>
    While taking a screenshot of the current tab for use as a thumbnail on the
    New Tab page, the time it took to copy the tab's contents into a bitmap.
  </summary>
</histogram>

<histogram name="Thumbnails.Gradient.ImageDetectionTime" units="ms">
  <owner>peconn@chromium.org</owner>
  <summary>
    The time it takes to detect whether a thumbnail requires a gradient overlay.
    This is run when thumbnails are downloaded for content suggestions, as they
    load and the result is cached for future use. It is Android specific.
  </summary>
</histogram>

<histogram name="Thumbnails.Gradient.ImageRequiresGradient" enum="Boolean">
  <owner>peconn@chromium.org</owner>
  <summary>
    Whether a thumbnail used for a suggestions image requires a gradient to be
    overlaid to not fade into the background. It applies to the thumbnails used
    for content suggestions and is Android specific.
  </summary>
</histogram>

<histogram name="Thumbnails.ProcessBitmapTime" units="ms">
  <owner>treib@chromium.org</owner>
  <summary>
    While taking a screenshot of the current tab for use as a thumbnail on the
    New Tab page, the time it took to post-process the captured bitmap.
  </summary>
</histogram>

<histogram name="TileManager.ExceededMemoryBudget" enum="TileMemoryBudget">
  <owner>reveman@chromium.org</owner>
  <owner>vmpstr@chromium.org</owner>
  <summary>
    Measures whether the tile manager exceeded the hard GPU memory budget
    (OOMed). Recorded each time the tile manager assigns GPU memory to tiles.
  </summary>
</histogram>

<histogram name="TileManager.TilesGPUMemoryUsage" units="KB">
  <owner>xidachen@chromium.org</owner>
  <owner>ericrk@chromium.org</owner>
  <summary>
    The amount of GPU memory, in kilobytes. Recorded on devices with less than
    or equal to 512MB of memory and when tile manager had sufficient memory to
    schedule all visible tiles.
  </summary>
</histogram>

<histogram name="TimeZone.TimeZoneRequest.Event" enum="TimeZoneRequestEvent"
    expires_after="2018-08-30">
  <owner>alemate@chromium.org</owner>
  <summary>Events in TimeZoneRequest.</summary>
</histogram>

<histogram name="TimeZone.TimeZoneRequest.ResponseCode" enum="HttpResponseCode"
    expires_after="2018-08-30">
  <owner>alemate@chromium.org</owner>
  <summary>Http response codes in TimeZoneRequest.</summary>
</histogram>

<histogram name="TimeZone.TimeZoneRequest.ResponseFailureTime" units="ms"
    expires_after="2018-08-30">
  <owner>alemate@chromium.org</owner>
  <summary>
    The time elapsed between the sending of the first API request and the time
    the final (failed) response was recorded. Includes all retries.
  </summary>
</histogram>

<histogram name="TimeZone.TimeZoneRequest.ResponseSuccessTime" units="ms"
    expires_after="2018-08-30">
  <owner>alemate@chromium.org</owner>
  <summary>
    The time elapsed between the sending of the first API request and the time
    the final (successfull) response was recorded. Includes all retries.
  </summary>
</histogram>

<histogram name="TimeZone.TimeZoneRequest.Result" enum="TimeZoneRequestResult"
    expires_after="2018-08-30">
  <owner>alemate@chromium.org</owner>
  <summary>Result of TimeZoneRequest.</summary>
</histogram>

<histogram name="TimeZone.TimeZoneRequest.Retries" expires_after="2018-08-30">
  <owner>alemate@chromium.org</owner>
  <summary>Number of retries until the final response was recorded.</summary>
</histogram>

<histogram name="Toolbar.ActionsModel.ComponentActionsCount">
  <obsolete>
    We no longer have component actions.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of component action icons the Browser Actions Container knows
    about (visible or in the overflow bucket). Does not count icons that have
    been permanently hidden by the user. Measured once per startup per
    (non-incognito) profile.
  </summary>
</histogram>

<histogram name="Toolbar.ActionsModel.OverallActionsCount">
  <obsolete>
    After the removal of component actions, this histogram is equivalent to
    ExtensionToolbarModel.BrowserActionsCount. See that histogram instead.
  </obsolete>
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The total number of action icons the Browser Actions Container knows about
    (visible or in the overflow bucket). Does not count icons that have been
    permanently hidden by the user. Measured once per startup per
    (non-incognito) profile.
  </summary>
</histogram>

<histogram name="Toolbar.ActionsModel.ToolbarActionsVisible">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of visible toolbar icons in the Browser Actions Container
    (visible as in number of icons not in the overflow bucket). 0 means all
    icons are in the overflow bucket. MAX_INT means the toolbar is always
    showing all icons. Measured once per startup per (non-incognito) profile but
    only for those profiles that have one or more browser actions showing in the
    toolbar.
  </summary>
</histogram>

<histogram name="Toolbar.AppMenuTimeToAction" units="ms">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    The number of millseconds between when the user opens the app menu and when
    the app menu is closed. Logged once per app menu run when the menu closes.
    Not recorded for menu runs that are initiated by a drag-and-drop sequence.
    Note that the code paths for Views-platforms vs Mac are different, so cross-
    platform comparison may not always be reasonable.
  </summary>
</histogram>

<histogram name="Toolbar.Menu.NewIncognitoTabPresentationDuration" units="ms">
  <owner>peterlaurens@chromium.org</owner>
  <summary>
    The number of millseconds between the user requesting a new incognito tab,
    e.g. by tapping the New Incognito Tab entry in the main tools menu, and it
    completing its animation on screen.
  </summary>
</histogram>

<histogram name="Toolbar.Menu.NewTabPresentationDuration" units="ms">
  <obsolete>
    Long removed.
  </obsolete>
  <owner>peterlaurens@chromium.org</owner>
  <summary>
    The number of millseconds between the user requesting a new tab, e.g. by
    tapping the New Tab entry in the main tools menu, and it completing its
    animation on screen.
  </summary>
</histogram>

<histogram name="Toolbar.ShowToolsMenuResponsiveness" units="ms">
  <owner>peterlaurens@chromium.org</owner>
  <summary>
    Number of milliseconds passed between the event that triggers the
    presentation of the tools menu (the main menu of actions accessed from the
    toolbar), and the actual appearance of the menu on screen. Includes the
    animation duration.
  </summary>
</histogram>

<histogram name="Toolbar.TabSwitcher.NewIncognitoTabPresentationDuration"
    units="ms">
  <owner>peterlaurens@chromium.org</owner>
  <summary>
    The number of millseconds between the user requesting a new incognito tab,
    from within the tab switcher, e.g. by tapping the New Tab button from the
    tab switcher UI, and it completing its animation on screen.
  </summary>
</histogram>

<histogram name="Toolbar.TabSwitcher.NewTabPresentationDuration" units="ms">
  <owner>peterlaurens@chromium.org</owner>
  <summary>
    The number of millseconds between the user requesting a new tab, from within
    the tab switcher UI, e.g. by tapping the New Tab button from the tab
    switcher UI, and it completing its animation on screen.
  </summary>
</histogram>

<histogram name="TopSites.NumberOfApplyBlacklist" expires_after="2018-08-30">
  <obsolete>
    Long removed.
  </obsolete>
  <owner>alemate@chromium.org</owner>
  <summary>The number of times TopSitesImpl::ApplyBlacklist is called.</summary>
</histogram>

<histogram name="TopSites.NumberOfBlacklistedItems" expires_after="2018-08-30">
  <obsolete>
    Long removed.
  </obsolete>
  <owner>alemate@chromium.org</owner>
  <summary>
    The number of items in the user Most Visited blacklist every time
    TopSitesImpl::ApplyBlacklist is called.
  </summary>
</histogram>

<histogram name="TouchAction.EffectiveTouchAction" enum="TouchActions">
  <owner>xidachen@chromium.org</owner>
  <summary>
    Tracks how often each touch action is allowed (AKA the frequency of each
    effective touch action) at the end of each touch sequence.
  </summary>
</histogram>

<histogram name="TouchAction.EquivalentEffectiveAndWhiteListed"
    enum="EquivalentEffectiveAndWhiteListed">
  <owner>xidachen@chromium.org</owner>
  <summary>
    Tracks how often the effective touch action computed by blink is or is not
    equivalent to the whitelisted touch action computed by the compositor at the
    end of each touch sequence.
  </summary>
</histogram>

<histogram name="TouchAction.GestureEventFiltered"
    enum="TouchGestureEventFiltered">
  <owner>xidachen@chromium.org</owner>
  <summary>
    Tracks how often a gesture event is or is not dropped due to the current
    allowed touch action state not matching the gesture event.
  </summary>
</histogram>

<histogram name="TouchAction.GestureEventFilterResults"
    enum="GestureEventFilterResults">
  <owner>xidachen@chromium.org</owner>
  <owner>nzolghadr@chromium.org</owner>
  <summary>
    Track whether a gesture event is allowed or filtered or deferred.
  </summary>
</histogram>

<histogram name="TouchBar.Default.Metrics" enum="DefaultTouchBarActions">
  <owner>spqchan@chromium.org</owner>
  <summary>Tracks the usage of the default touch bar buttons.</summary>
</histogram>

<histogram name="Touchpad.Device" enum="TouchpadDeviceState">
  <owner>jhawkins@chromium.org</owner>
  <summary>Tracks touchpad device state.</summary>
</histogram>

<histogram name="Touchpad.Metrics" enum="TouchpadProblemType">
  <obsolete>
    Deprecated 8/2017.
  </obsolete>
  <owner>jhawkins@chromium.org</owner>
  <summary>
    Tracks unusual CrOS touchpad operational states (e.g. running into the noisy
    ground issue). This is sampled at every touchpad event.
  </summary>
</histogram>

<histogram name="Touchpad.NaturalScroll.Changed" enum="BooleanEnabled">
  <owner>jhawkins@chromium.org</owner>
  <summary>Tracks touchpad natural scroll setting changes by the user.</summary>
</histogram>

<histogram name="Touchpad.NaturalScroll.Started" enum="BooleanEnabled">
  <owner>jhawkins@chromium.org</owner>
  <summary>Tracks touchpad natural scroll setting on startup.</summary>
</histogram>

<histogram name="Touchpad.PointerSensitivity.Changed" enum="PointerSensitivity">
  <owner>jhawkins@chromium.org</owner>
  <summary>
    Tracks touchpad sensitivity setting changes by the user. This replaces the
    old Touchpad.Sensitivity.Changed metric.
  </summary>
</histogram>

<histogram name="Touchpad.PointerSensitivity.Started" enum="PointerSensitivity">
  <owner>jhawkins@chromium.org</owner>
  <summary>
    Tracks touchpad sensitivity setting on startup. This replaces the old
    Touchpad.Sensitivity.Started metric.
  </summary>
</histogram>

<histogram name="Touchpad.Sensitivity.Changed" enum="PointerSensitivity">
  <obsolete>
    Deprecated as of 6/2013, replaced by Touchpad.PointerSensitivity.Changed.
  </obsolete>
  <owner>jhawkins@chromium.org</owner>
  <summary>Tracks touchpad sensitivity setting changes by the user.</summary>
</histogram>

<histogram name="Touchpad.Sensitivity.Started" enum="PointerSensitivity">
  <obsolete>
    Deprecated as of 6/2013, replaced by Touchpad.PointerSensitivity.Started.
  </obsolete>
  <owner>jhawkins@chromium.org</owner>
  <summary>Tracks touchpad sensitivity setting on startup.</summary>
</histogram>

<histogram name="Touchpad.TapDragging.Changed" enum="BooleanEnabled">
  <owner>jhawkins@chromium.org</owner>
  <summary>Tracks touchpad TapDragging setting changes by the user.</summary>
</histogram>

<histogram name="Touchpad.TapDragging.Started" enum="BooleanEnabled">
  <owner>jhawkins@chromium.org</owner>
  <summary>Tracks touchpad TapDragging setting on startup.</summary>
</histogram>

<histogram name="Touchpad.TapToClick.Changed" enum="BooleanEnabled">
  <owner>jhawkins@chromium.org</owner>
  <summary>Tracks touchpad TapToClick setting changes by the user.</summary>
</histogram>

<histogram name="Touchpad.TapToClick.Started" enum="BooleanEnabled">
  <owner>jhawkins@chromium.org</owner>
  <summary>Tracks touchpad TapToClick setting on startup.</summary>
</histogram>

<histogram name="Touchpad.ThreeFingerSwipe.Changed" enum="BooleanEnabled">
  <obsolete>
    Deprecated as of 7/2013.
  </obsolete>
  <owner>jhawkins@chromium.org</owner>
</histogram>

<histogram name="Touchpad.ThreeFingerSwipe.Started" enum="BooleanEnabled">
  <obsolete>
    Deprecated as of 7/2013.
  </obsolete>
  <owner>jhawkins@chromium.org</owner>
</histogram>

<histogram name="TouchScreen.MissedTOUCHEVENTF_UP" enum="BooleanHit">
  <owner>input-dev@chromium.org</owner>
  <summary>
    The touch device driver failed to send a TOUCHEVENTF_UP, and chromium
    generated a simulated event to maintain consistency/correctness.

    This workaround will be removed once usage drops off. See
    https://crbug.com/811273 for details.
  </summary>
</histogram>

<histogram name="Touchscreen.TapDisambiguation" enum="TapDisambiguation">
  <obsolete>
    Deprecated as of 7/2018.
  </obsolete>
  <owner>aelias@chromium.org</owner>
  <summary>
    How the user interacted with the tap disambiguation feature on Android.
  </summary>
</histogram>

<histogram name="Touchscreen.TouchEventsEnabled"
    enum="TouchEventFeatureDetectionState">
  <owner>tdresser@chromium.org</owner>
  <summary>
    Tracks whether Touch Event Feature Detection is enabled. This is based on
    the touch events enabled flag and the presence of a touchscreen.

    Team: input-dev@chromium.org.
  </summary>
  <details>
    NOTE: This metric was incorrectly recorded on Chrome OS for versions 42
    through 45, see http://crbug.com/499476 for more details. As of
    http://crbug.com/644318, we changed the internal name to
    TouchEventFeatureDetection, but we still keep the old histogram name here to
    keep consistensy.
  </details>
</histogram>

<histogram name="TPM.EarlyResetDuringCommand" units="count">
  <owner>semenzato@google.com</owner>
  <summary>
    Reported at boot if the previous boot session was interrupted in the middle
    of a TPM command during the first 30 seconds of uptime.
  </summary>
</histogram>

<histogram name="Tracing.Background.FinalizingTraceSizeInKB" units="KB">
  <owner>oysteine@chromium.org</owner>
  <summary>
    The size, in kilobytes, of a finalized trace ready to be uploaded.
  </summary>
</histogram>

<histogram name="Tracing.Background.ScenarioState"
    enum="BackgroundTracingState">
  <owner>oysteine@chromium.org</owner>
  <summary>
    Records state of the Background Tracing system, from when scenarios are
    attempted to be activated until they're completed (successfully or failed)
  </summary>
</histogram>

<histogram name="TrackedObjects.GetRetiredOrCreateThreadData" units="ms">
  <obsolete>
    Deprecated as of 09/2017. Code measured by this histogram no longer exists.
  </obsolete>
  <owner>fdoray@chromium.org</owner>
  <summary>
    Time spent in base::ThreadData::GetRetiredOrCreateThreadData(). This method
    is called at most once per thread, when its name is set, when it posts a
    task or when it runs a task (whichever comes first).
  </summary>
</histogram>

<histogram name="TrafficStatsAmortizer.AmortizationDelay" units="ms">
  <obsolete>
    Deprecated 2018/07.
  </obsolete>
  <owner>sclittle@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The amount of time spent waiting to perform an amortization run. This is
    logged at the end of each amortization run, before passing any DataUse
    objects to their respective callbacks.
  </summary>
</histogram>

<histogram name="TrafficStatsAmortizer.BufferSizeOnFlush" units="count">
  <obsolete>
    Deprecated 2018/07.
  </obsolete>
  <owner>sclittle@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The number of DataUse objects processed in an amortization run.
  </summary>
</histogram>

<histogram name="TrafficStatsAmortizer.ConcurrentTabs" units="count">
  <obsolete>
    Deprecated 2018/07.
  </obsolete>
  <owner>sclittle@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The number of unique tabs seen across all DataUse objects buffered for a
    single amortization run by the TrafficStatsAmortizer. This is recorded even
    if TrafficStats byte counts are unavailable, but not recorded if no DataUse
    objects have been buffered.
  </summary>
</histogram>

<histogram name="TrafficStatsAmortizer.PostAmortizationRunDataUseBytes"
    units="bytes">
  <obsolete>
    Deprecated 2018/07.
  </obsolete>
  <owner>sclittle@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The total bytes after performing amortization across all DataUse objects
    buffered for a single amortization run by the TrafficStatsAmortizer. This is
    recorded even if TrafficStats byte counts are unavailable, but not recorded
    if no DataUse objects have been buffered.
  </summary>
</histogram>

<histogram name="TrafficStatsAmortizer.PreAmortizationRunDataUseBytes"
    units="bytes">
  <obsolete>
    Deprecated 2018/07.
  </obsolete>
  <owner>sclittle@chromium.org</owner>
  <owner>bengr@chromium.org</owner>
  <summary>
    The total bytes before performing amortization across all DataUse objects
    buffered for a single amortization run by the TrafficStatsAmortizer. This is
    recorded even if TrafficStats byte counts are unavailable, but not recorded
    if no DataUse objects have been buffered.
  </summary>
</histogram>

<histogram name="Translate.AcceptLanguages.CanBeAcceptDuration" units="ms">
  <owner>googleo@chromium.org</owner>
  <summary>
    Time taken for the TranslateAcceptLanguages to decide if a given language is
    available as Accept-Languages.
  </summary>
</histogram>

<histogram name="Translate.AlwaysTranslateLang">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    The number of times the always translate option was selected in the
    translate infobar.
  </summary>
</histogram>

<histogram name="Translate.BubbleUiEvent" enum="TranslateBubbleUiEvent">
  <owner>groby@google.com</owner>
  <summary>Tracks UI events related to the translate bubble.</summary>
</histogram>

<histogram name="Translate.CaptureText" units="ms">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    The time spent capturing plain text from the DOM. This is reported by
    ChromeRenderViewObserver when a page is loaded completely.
  </summary>
</histogram>

<histogram name="Translate.CLD2.LanguageAccuracy" units="%">
  <obsolete>
    Deprecated as of 11/2017, since cld2 is deprecated.
  </obsolete>
  <owner>rkaplow@google.com</owner>
  <summary>
    Accuracy of the language detected by CLD2. Only recorded if the detection
    returned a &quot;known&quot; result.
  </summary>
</histogram>

<histogram name="Translate.CLD2.LanguageDetected" enum="CLD2LanguageCode">
  <obsolete>
    Deprecated as of 11/2017, since cld2 is deprecated.
  </obsolete>
  <owner>rkaplow@google.com</owner>
  <summary>Language of page detected by CLD2.</summary>
</histogram>

<histogram name="Translate.CLD3.LanguageDetected" enum="CLD3LanguageCode">
  <owner>frechette@chromium.org</owner>
  <owner>chrome-language@google.com</owner>
  <summary>
    Language of the input page detected by CLD3. This information is logged on
    every page load.
  </summary>
</histogram>

<histogram name="Translate.CLD3.LanguagePercentage" units="%">
  <owner>frechette@chromium.org</owner>
  <owner>chrome-language@google.com</owner>
  <summary>
    Percentage of the bytes that are associated with the most popular language
    on the input page. Only recorded if the detection returned a
    &quot;known&quot; result.
  </summary>
</histogram>

<histogram name="Translate.CompactInfobar.Event" enum="TranslateCompactUIEvent">
  <owner>anthonyvd@chromium.org</owner>
  <summary>Various user actions performed in the translate infobar.</summary>
</histogram>

<histogram name="Translate.CompactInfobar.Language.AlwaysTranslate"
    enum="CLD3LanguageCode">
  <owner>anthonyvd@chromium.org</owner>
  <summary>
    Records the hashcode of the source language when always translate this
    language option is clicked in the menu.
  </summary>
</histogram>

<histogram name="Translate.CompactInfobar.Language.MoreLanguages"
    enum="CLD3LanguageCode">
  <owner>anthonyvd@chromium.org</owner>
  <summary>
    Records the hashcode of the language clicked on the more languages menu.
  </summary>
</histogram>

<histogram name="Translate.CompactInfobar.Language.NeverTranslate"
    enum="CLD3LanguageCode">
  <owner>anthonyvd@chromium.org</owner>
  <summary>
    Records the hashcode of the source language when never translate this
    language option is clicked in the menu.
  </summary>
</histogram>

<histogram name="Translate.CompactInfobar.Language.PageNotIn"
    enum="CLD3LanguageCode">
  <owner>anthonyvd@chromium.org</owner>
  <summary>
    Records the hashcode of the language clicked on the menu to indicate the
    page is not in the selected language.
  </summary>
</histogram>

<histogram name="Translate.CompactInfobar.Language.Translate"
    enum="CLD3LanguageCode">
  <owner>anthonyvd@chromium.org</owner>
  <summary>
    Records the hashcode of the language clicked on the infobar.
  </summary>
</histogram>

<histogram name="Translate.CompactInfobar.TranslationsPerPage"
    units="translations">
  <owner>anthonyvd@chromium.org</owner>
  <summary>
    Records the number of times a page is translated, every time the page is
    translated. For instance on a page a) translation from A to B, we record
    &quot;1&quot; b) from A to B - we record &quot;1&quot; and revert from B to
    A - we record &quot;2&quot; c) from A to B - we record &quot;1&quot;, then
    translation to C - we record &quot;2&quot;. d) from A to B - we record
    &quot;1&quot;, then translation to C - we record &quot;2&quot; and then
    revert to A - we record &quot;3&quot;. We increment the translation count:
    a) every time the target language is changed. b) every time we revert to the
    original language (user can only revert to original language and not
    intermediate target languages). This essentially means 1 denotes &gt;= 1
    translations, 2 is &gt;=2 translations per page and so on. This will give us
    a sense of how often people try out several translates on a page, or flip
    back and forth.
  </summary>
</histogram>

<histogram name="Translate.ContentLanguage" enum="TranslateLanguage">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    A page may provide a Content-Language HTTP header or a META tag. For each
    page load, measures whether the Content-Language header exists and is valid.
  </summary>
</histogram>

<histogram name="Translate.DeclineTranslate">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    The number of times the &quot;Nope&quot; (don't translate) or the infobar's
    X button was clicked in the translate infobar.
  </summary>
</histogram>

<histogram name="Translate.DeclineTranslateCloseInfobar">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    The number of times the translate infobar was closed by clicking the X
    button without the user translating the page.
  </summary>
</histogram>

<histogram name="Translate.DeclineTranslateDismissUI">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    The number of times the translate UI was closed without translating in the
    way that the user doesn't deny translating explicityly, like pressing 'Nope'
    button. This is counted on both the infobar and the bubble UI. We are
    comparing this on infobar to that on bubble by A/B testing and expecting
    that the user will click 'Nope' button on bubble less times than infobar. We
    won't delete this histogram after the experiment.
  </summary>
</histogram>

<histogram name="Translate.ExplicitLanguageAsk.Event"
    enum="TranslateExplicitAskPromptEventType">
  <owner>yyushkina@google.com</owner>
  <owner>anthonyvd@google.com</owner>
  <summary>
    The events (shown, saved, cancelled) happening in the Explicit Language Ask
    prompt.
  </summary>
</histogram>

<histogram name="Translate.ExplicitLanguageAsk.LanguageAdded"
    enum="CLD3LanguageCode">
  <owner>yyushkina@google.com</owner>
  <owner>anthonyvd@google.com</owner>
  <summary>
    The languages that were added to the Accept Languages list from the Explicit
    Language Ask prompt.
  </summary>
</histogram>

<histogram name="Translate.ExplicitLanguageAsk.LanguageRemoved"
    enum="CLD3LanguageCode">
  <owner>yyushkina@google.com</owner>
  <owner>anthonyvd@google.com</owner>
  <summary>
    The languages that were removed from the Accept Languages list from the
    Explicit Language Ask prompt.
  </summary>
</histogram>

<histogram name="Translate.ForceTriggerBackoffStateReached" enum="Boolean">
  <owner>anthonyvd@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <summary>
    Whether or not the backoff threshold for triggering Translate on UI-language
    content is reached when the translation process is initiated.
  </summary>
</histogram>

<histogram name="Translate.HtmlLang" enum="TranslateLanguage">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    A page may provide a lang attribute in html tag. For each page load,
    measures whether the lang attribute exists and is valid.
  </summary>
</histogram>

<histogram name="Translate.InfobarShown" enum="BooleanHit">
  <owner>anthonyvd@chromium.org</owner>
  <summary>
    The number of times the translate infobar was shown in the old translate UI
    on Android. Only true is recorded.
  </summary>
</histogram>

<histogram name="Translate.InitiationStatus" enum="TranslateInitiationStatus">
  <obsolete>
    Deprecated as of 11/2013, and replaced by Translate.InitiationStatus.v2.
  </obsolete>
  <owner>kenjibaheux@google.com</owner>
  <summary>
    The reason why Chrome decided to perform the next action (e.g., to show
    infobar, to translate a page without any prompting, and so on) when Chrome
    Translate is ready to translate a page.
  </summary>
</histogram>

<histogram name="Translate.InitiationStatus.v2"
    enum="TranslateInitiationStatus">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    The reason why Chrome decided to perform the next action (e.g., to show
    infobar, to translate a page without any prompting, and so on) when Chrome
    Translate is ready to translate a page.
  </summary>
</histogram>

<histogram name="Translate.LanguageDetectionConflict"
    enum="EnCrossCLD3LanguageCode">
  <owner>chrome-language@google.com</owner>
  <summary>
    This metric logs CLD3-detected languages for pages that specify a
    conflicting English language in their markup. In these cases, we must decide
    on a language source to favor.

    Bucket names are of the form &quot;x,y&quot;, where x is the common English
    language code specified in the page markup (or &quot;other&quot; if the
    English language code is uncommon), and y is the CLD3-detected language.

    This histogram only logs detection conflicts. Hence, &quot;matching&quot;
    buckets (e.g. &quot;en,en&quot;, &quot;en-AU,en&quot;) will never be
    populated.
  </summary>
</histogram>

<histogram name="Translate.LanguageDetectionTiming"
    enum="TranslateLanguageDetectionTiming">
  <owner>andrewhayden@chromium.org</owner>
  <summary>
    For each page load, records whether language detection occurs on time or
    gets deferred. If deferred language detection later completes, this is also
    recorded. This allows measuring the UX impact of using a non-static CLD data
    source.
  </summary>
</histogram>

<histogram name="Translate.LanguageSettingsIsShown" enum="BooleanShown">
  <owner>frechette@chromium.org</owner>
  <owner>chrome-language@google.com</owner>
  <summary>
    Log everytime the language settings page is shown. This can be either user
    visits chrome://settings/languages or user visits the advanced languages
    card in chrome://settings. With this stat, we will be able to understand how
    well the language model is doing by looking into how the number changes over
    time. In additiona to that, we are also interested in how many users ever
    visit the languages settings card.
  </summary>
</histogram>

<histogram name="Translate.LanguageVerification"
    enum="TranslateLanguageVerification">
  <owner>yyushkina@chromium.org</owner>
  <summary>
    For each page load, measures whether the provided HTML language (i.e. the
    page lang attribute if it exists, otherwise the header Content-Language
    value) matches the language determined by CLD. Beyond directly matching or
    mismatching the HTML language, CLD can complement the HTML language. For
    example, suppose the HTML language is 'zh' (general Chinese), a language
    code that the Translate server does not support. In this case, CLD can
    detect a subcode like '-TW' or '-CN', resulting in language codes 'zh-TW'
    and 'zh-CN', which the Translate server supports. This is referred to as
    &quot;complementing a language subcode&quot;.
  </summary>
</histogram>

<histogram name="Translate.LocalesOnDisabledByPrefs" enum="LanguageCode">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    Logs the user locale when the Translate feature is disabled by the user.
    This is recorded each time a webpage is loaded and prefs for translation is
    checked. This allows us to investigate the correlation between the user
    locale and the usage rates of the Translate.
  </summary>
</histogram>

<histogram name="Translate.MobileMenuTranslate.Shown" enum="Boolean">
  <owner>yyushkina@google.com</owner>
  <owner>frechette@chromium.org</owner>
  <summary>
    Whether the 'Translate' app menu entry is shown to the user. Emitted when
    the app menu (three dots) is shown and a translation could be performed.
  </summary>
</histogram>

<histogram name="Translate.ModifyOriginalLang">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    The number of times the original language in the translate infobar has been
    changed.
  </summary>
</histogram>

<histogram name="Translate.ModifyTargetLang">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    The number of times the target language in the translate infobar has been
    changed.
  </summary>
</histogram>

<histogram name="Translate.NeverTranslateLang">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    The number of times the never translate option was selected in the translate
    infobar.
  </summary>
</histogram>

<histogram name="Translate.NeverTranslateSite">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    The number of times the never translate site was selected in the translate
    infobar.
  </summary>
</histogram>

<histogram name="Translate.PageCaptured" units="ms">
  <obsolete>
    Deprecated 2/2018
  </obsolete>
  <owner>joelhockey@chromium.org</owner>
  <summary>
    The time spent capturing plain text from the DOM. This is reported by
    ChromeRenderViewObserver when a page is loaded completely.
  </summary>
</histogram>

<histogram name="Translate.PageScheme" enum="TranslateScheme">
  <owner>kenjibaheux@google.com</owner>
  <summary>Counts translation target page schemes.</summary>
</histogram>

<histogram name="Translate.Ranker.Model.Status" enum="RankerModelStatus">
  <owner>rogerm@google.com</owner>
  <summary>
    Tracks the outcome of attempts to download a Translate Ranker Model.
  </summary>
</histogram>

<histogram name="Translate.Ranker.Model.Version" units="date stamp">
  <owner>rogerm@google.com</owner>
  <summary>
    The date tamp (e.g., 20160916 -&gt; 15 Sept 2016) which denotes the
    TranslateRankerModel's version.
  </summary>
</histogram>

<histogram name="Translate.Ranker.QueryResult" enum="BooleanAccepted">
  <owner>rogerm@google.com</owner>
  <summary>
    Whether the TranslateRanker accepts or denies to show the translation
    prompt.
  </summary>
</histogram>

<histogram name="Translate.Ranker.Timer.CalculateScore" units="ms">
  <owner>rogerm@google.com</owner>
  <summary>
    Time taken for the TranslateRanker to use the translate ranker model to
    calculate a score for the translation, in ms.
  </summary>
</histogram>

<histogram name="Translate.Ranker.Timer.DownloadModel" units="ms">
  <owner>rogerm@google.com</owner>
  <summary>
    Time taken for the Translate Ranker Model Loader to download its model from
    the configured URL, in ms.
  </summary>
</histogram>

<histogram name="Translate.Ranker.Timer.ParseModel" units="ms">
  <owner>rogerm@google.com</owner>
  <summary>
    Time taken for the Translate Ranker Model Loader to parse its model, in ms.
  </summary>
</histogram>

<histogram name="Translate.Ranker.Timer.ReadModel" units="ms">
  <owner>rogerm@google.com</owner>
  <summary>
    Time taken for the Translate Ranker Model Loader to read its model from
    local storage (cache), in ms.
  </summary>
</histogram>

<histogram name="Translate.Ranker.Timer.ShouldOfferTranslation" units="ms">
  <owner>rogerm@google.com</owner>
  <summary>
    Time taken for the TranslateRanker to decide if a given translation should
    be offered or not, in ms. This includes the time taken to extract the
    relevant features upon which to base the decision, as well as the time taken
    to calculate the result.
  </summary>
</histogram>

<histogram name="Translate.Ranker.Timer.WriteModel" units="ms">
  <owner>rogerm@google.com</owner>
  <summary>
    Time taken for the Translate Ranker Model Loader to write its model to local
    storage, in ms.
  </summary>
</histogram>

<histogram name="Translate.ReportLanguageDetectionError">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    The number of times the &quot;report this error&quot; of options menu is
    selected in the translate infobar.
  </summary>
</histogram>

<histogram name="Translate.RevertTranslation">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    The number of times the show original button was clicked in the translate
    infobar.
  </summary>
</histogram>

<histogram name="Translate.ServerReportedUnsupportedLanguage">
  <obsolete>
    Deprecated 5/2013 by Translate.UndisplayableLanguage
  </obsolete>
  <owner>kenjibaheux@google.com</owner>
  <summary>
    The number of times the detected language is not supported by Translate
    Element.
  </summary>
</histogram>

<histogram name="Translate.ShowBeforeTranslateInfobar">
  <obsolete>
    Deprecated 7/2010. No longer tracked.
  </obsolete>
  <owner>kenjibaheux@google.com</owner>
  <summary>
    The number of times an infobar proposing to translate a page has been shown.
  </summary>
</histogram>

<histogram name="Translate.ShowErrorInfobar" enum="TranslateError">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    Chrome Translate shows an error infobar when an error happens on translation
    and the infobar message depends on what kind of error happens. This metric
    counts how often each error message is shown.
  </summary>
</histogram>

<histogram name="Translate.ShowErrorUI" enum="TranslateError">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    Chrome Translate shows an error UI (infobar or bubble) when an error happens
    on translation and the UI message depends on what kind of error happens.
    This metric counts how often each error message is shown.
  </summary>
</histogram>

<histogram name="Translate.SimilarLanguageMatch" enum="BooleanMatched">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    This metrics is logged whenever a page is loaded. The logged value is
    &quot;Mathced&quot; when the CLD-detected language differs from the page
    language code , and the two languages are such similar languages. In that
    case, Chrome ignore the CLD-determined language and instead uses the page
    language code. The page language code is decided by Content-Language and
    HTML lang attribute.
  </summary>
</histogram>

<histogram name="Translate.SourceLanguage" enum="CLD3LanguageCode">
  <owner>yyushkina@google.com</owner>
  <summary>
    The number of requests sent to the Translate server, grouped by source
    language.
  </summary>
</histogram>

<histogram name="Translate.TargetLanguage" enum="CLD3LanguageCode">
  <owner>yyushkina@google.com</owner>
  <summary>
    The number of requests sent to the Translate server, grouped by target
    language.
  </summary>
</histogram>

<histogram name="Translate.TimeToBeReady" units="ms">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    The time from injecting scripts for Chrome Translate to being ready to
    perform translation.
  </summary>
</histogram>

<histogram name="Translate.TimeToLoad" units="ms">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    The time from injecting scripts for Chrome Translate to the finishing loads
    of all depending libraries.
  </summary>
</histogram>

<histogram name="Translate.TimeToTranslate" units="ms">
  <owner>kenjibaheux@google.com</owner>
  <summary>The time from starting translation to the completion.</summary>
</histogram>

<histogram name="Translate.Translate" enum="BooleanTranslate">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    The number of times the translate button was clicked in the translate
    infobar.
  </summary>
</histogram>

<histogram name="Translate.UndisplayableLanguage" enum="LanguageCode">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    Logs an undisplayable language included in the language list sent by the
    Translate server. The Translate server sends the list each time the user
    runs Chrome. This metrics tells us that there is a language which UI should
    support but doesn't.
  </summary>
</histogram>

<histogram name="Translate.UnsupportedLanguageAtInitiation" enum="LanguageCode">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    Logs an unsupported source language detected during initiation of the
    Translate feature. This is reported when the language detector successfully
    detects the language of the webpage, but the language is not supported by
    the translation server because it is too minor. This metric allows us to
    assess how important the unsupported language is for Google translate.
  </summary>
</histogram>

<histogram name="Translate.UserActionDuration" units="ms">
  <owner>kenjibaheux@google.com</owner>
  <summary>
    The time from a page content language being determined to user requesting
    Chrome Translate.
  </summary>
</histogram>

<histogram name="TrustedWebActivity.ClearDataDialogOnClearAppDataAccepted"
    enum="Boolean" expires_after="M78">
  <owner>pshmakov@chromium.org</owner>
  <owner>peconn@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Emits true if the user went to site settings from the dialog that is shown
    after a Trusted Web Activity client app has had its data cleared.
  </summary>
</histogram>

<histogram name="TrustedWebActivity.ClearDataDialogOnUninstallAccepted"
    enum="Boolean" expires_after="M78">
  <owner>pshmakov@chromium.org</owner>
  <owner>peconn@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Emits true if the user went to site settings from the dialog that is shown
    after a Trusted Web Activity client app has been uninstalled.
  </summary>
</histogram>

<histogram name="TrustedWebActivity.DelegatedNotificationSmallIconFallback"
    enum="TrustedWebActivityDelegatedNotificationSmallIconFallback"
    expires_after="M78">
  <owner>pshmakov@chromium.org</owner>
  <owner>peconn@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Logs which kind of fallback for notification small icon was used for Trusted
    Web Activity notification delegation.
  </summary>
</histogram>

<histogram name="TrustedWebActivity.TimeInVerifiedOrigin" units="ms"
    expires_after="M78">
  <owner>pshmakov@chromium.org</owner>
  <owner>peconn@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Time spent in a verified origin until navigating to an unverified one or
    pausing the Trusted Web Activity.
  </summary>
</histogram>

<histogram name="TrustedWebActivity.TimeOutOfVerifiedOrigin" units="ms"
    expires_after="M78">
  <owner>pshmakov@chromium.org</owner>
  <owner>peconn@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Time spent out of verified origins until navigating back to a verified one
    or pausing the Trusted Web Activity.
  </summary>
</histogram>

<histogram name="TryScroll.SlowScroll" enum="ScrollThread">
  <obsolete>
    Deprecated 02/2016 in Issue 1741103002, and replaced by
    Renderer4.CompositorWheelScrollUpdateThread and
    Renderer4.CompositorTouchScrollUpdateThread.
  </obsolete>
  <owner>tdresser@chromium.org</owner>
  <summary>Whether a scroll is executed on main thread.</summary>
</histogram>

<histogram name="UI.CompositorResizeLock.Duration" units="ms">
  <obsolete>
    Removed in M65.
  </obsolete>
  <owner>kylechar@chromium.org</owner>
  <summary>
    The amount of time the CompositorResizeLock was held in milliseconds. This
    is a measure of jank as UI will not generate new frames as long as the lock
    is held.
  </summary>
</histogram>

<histogram name="UI.CompositorResizeLock.TimedOut" units="Boolean">
  <obsolete>
    Removed in M65.
  </obsolete>
  <owner>kylechar@chromium.org</owner>
  <summary>
    Tracks whether the CompositorResizeLock is being released due to timing out
    or not.
  </summary>
</histogram>

<histogram name="UI.DeviceScale" units="%">
  <owner>bsep@chromium.org</owner>
  <summary>
    The device scales available on the system at startup. A system may report
    more than one if it has multiple displays with varying device scales. Only
    logged on Windows.
  </summary>
</histogram>

<histogram name="UI.WindowTreeHost.SurfaceSynchronizationDuration" units="ms">
  <owner>kylechar@chromium.org</owner>
  <summary>
    The amount of time it took for UI's CompositorFrame to activate due to a
    surface synchronization event. This a measure of jank as UI will not
    generate new frames as long synchronization is in progress. This metric is
    similar to UI.CompositorResizeLock.Duration but measures the new
    synchronization code path.
  </summary>
</histogram>

<histogram name="UKM.ActualLogUploadInterval" units="minutes">
  <owner>holte@chromium.org</owner>
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The actual interval between log upload start and previous log upload
    finished within the same process. A value of 0 indicates there was no
    previous upload. Prior to M71, logging for this metric was broken.
  </summary>
</histogram>

<histogram name="UKM.BuildAndStoreLogIsEmpty" enum="Boolean">
  <owner>bmcquade@chromium.org</owner>
  <owner>holte@chromium.org</owner>
  <owner>rkaplow@chromium.org</owner>
  <summary>
    Emitted when UKM Service attempts to build and store a log. Emits true if it
    was empty (no sources or entries) which means no log is written, false
    otherwise.
  </summary>
</histogram>

<histogram name="UKM.Entries.Dropped" enum="UkmDataDroppedReason">
  <owner>holte@chromium.org</owner>
  <owner>rkaplow@chromium.org</owner>
  <summary>
    Number of UKM entries that are dropped. Categorized by the cause of it being
    dropped.
  </summary>
</histogram>

<histogram name="UKM.Entries.SerializedCount">
  <obsolete>
    Deprecated 2/2018 by UKM.Entries.SerializedCount2.
  </obsolete>
  <owner>holte@chromium.org</owner>
  <owner>rkaplow@chromium.org</owner>
  <summary>Number of serialized UKM entries when storing a UKM log.</summary>
</histogram>

<histogram name="UKM.Entries.SerializedCount2">
  <owner>holte@chromium.org</owner>
  <owner>rkaplow@chromium.org</owner>
  <summary>Number of serialized UKM entries when storing a UKM log.</summary>
</histogram>

<histogram name="UKM.InitSequence" enum="UmaInitSequence">
  <owner>holte@chromium.org</owner>
  <owner>rkaplow@chromium.org</owner>
  <summary>
    Logged during UkmService initialization whether the init task or the initial
    log timer completed first. The expectation is the vast majority of the time,
    the init task should complete first. If metrics show otherwise, then it may
    indicate there's a bug in the UkmService init sequence and that it should be
    investigated.
  </summary>
</histogram>

<histogram name="UKM.LogSize.OnSuccess" units="KB">
  <owner>holte@chromium.org</owner>
  <owner>rkaplow@chromium.org</owner>
  <summary>
    Size in kilobytes (after compression) of an uploaded UKM log. Recorded after
    a successful UKM upload.
  </summary>
</histogram>

<histogram name="UKM.LogUpload.Canceled.CellularConstraint"
    enum="BooleanCanceled">
  <owner>holte@chromium.org</owner>
  <owner>rkaplow@chromium.org</owner>
  <summary>
    Logs whether a log was not uploaded due to cellular log throttling logic.
    Android only.
  </summary>
</histogram>

<histogram name="UKM.LogUpload.ResponseOrErrorCode"
    enum="CombinedHttpResponseAndNetErrorCode">
  <owner>holte@chromium.org</owner>
  <owner>rkaplow@chromium.org</owner>
  <summary>
    HTTP response codes and network errors encountered by UKM when attempting to
    upload logs to the server.
  </summary>
</histogram>

<histogram name="UKM.LogUploader.UploadSize" units="bytes">
  <obsolete>
    Removed in favor of UKM.LogSize.OnSuccess
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <owner>holte@chromium.org</owner>
  <summary>
    Reports total upload length in bytes when the UKM service type is used.
  </summary>
</histogram>

<histogram name="UKM.PersistentLogRecall.Status"
    enum="PersistedLogsLogReadStatus">
  <owner>holte@chromium.org</owner>
  <owner>rkaplow@chromium.org</owner>
  <summary>The status when loading UKM PersistedLogs from Prefs.</summary>
</histogram>

<histogram name="UKM.ResetReason" enum="UkmResetReason">
  <owner>bmcquade@chromium.org</owner>
  <owner>holte@chromium.org</owner>
  <owner>rkaplow@chromium.org</owner>
  <summary>
    Recorded when a UKM client state (client_id, session_id) is reset. This
    emits the reason the resetting was triggered.
  </summary>
</histogram>

<histogram name="UKM.Sources.Dropped" enum="UkmDataDroppedReason">
  <owner>holte@chromium.org</owner>
  <owner>rkaplow@chromium.org</owner>
  <summary>
    Number of UKM sources that are dropped. Categorized by the cause of it being
    dropped.
  </summary>
</histogram>

<histogram name="UKM.Sources.KeptSourcesCount" units="sources">
  <owner>asvitkine@chromium.org</owner>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    Number of unsent UKM sources that were kept in-memory to be potentially
    transmitted in the next log.
  </summary>
</histogram>

<histogram name="UKM.Sources.SerializedCount" units="sources">
  <obsolete>
    Deprecated 10/2018 by UKM.Sources.SerializedCount2.
  </obsolete>
  <owner>holte@chromium.org</owner>
  <owner>rkaplow@chromium.org</owner>
  <summary>Number of serialized UKM sources when storing a UKM log.</summary>
</histogram>

<histogram name="UKM.Sources.SerializedCount2" units="sources">
  <owner>holte@chromium.org</owner>
  <owner>rkaplow@chromium.org</owner>
  <summary>Number of serialized UKM sources when storing a UKM log.</summary>
</histogram>

<histogram name="UKM.Sources.UnmatchedSourcesCount" units="sources">
  <owner>bmcquade@chromium.org</owner>
  <owner>rkaplow@chromium.org</owner>
  <summary>
    Number of UKM sources that were not sent because they did not match a
    navigation source URL.
  </summary>
</histogram>

<histogram name="UKM.Sources.UnsentSourcesCount" units="sources">
  <owner>asvitkine@chromium.org</owner>
  <owner>bmcquade@chromium.org</owner>
  <summary>
    Number of UKM sources that were not sent because they had no associated
    entries.
  </summary>
</histogram>

<histogram name="UKM.SyncDisable.Info" enum="UkmSyncDisableInfo">
  <owner>bcwhite@chromium.org</owner>
  <owner>rkaplow@chromium.org</owner>
  <summary>
    Information about the determination by the SyncDisableObserver on why it
    enabled or disabled UKM based on Sync status. This is recorded every time a
    change is detected in Sync (which may be several just at startup).
  </summary>
</histogram>

<histogram name="UKM.SyncDisable.Purge" enum="Boolean"
    expires_after="2019-05-01">
  <owner>bcwhite@chromium.org</owner>
  <owner>rkaplow@chromium.org</owner>
  <summary>
    Logged in the UpdateSyncState call from the UKM Sync observer. This records
    if the Sync change will trigger a purge of the local UKM data.
  </summary>
</histogram>

<histogram name="UKM.UnsentLogs.DroppedSize" units="bytes">
  <owner>holte@chromium.org</owner>
  <owner>rkaplow@chromium.org</owner>
  <summary>
    Number of bytes in an excessively large log that was discarded while
    persisting UKM logs to disk to retry during next chrome run.
  </summary>
</histogram>

<histogram name="UKM.UnsentLogs.NumDropped">
  <owner>holte@chromium.org</owner>
  <owner>rkaplow@chromium.org</owner>
  <summary>
    Counter for number of UKM unsent logs removed from persistent storage.
  </summary>
</histogram>

<histogram name="UKM.Upload.ResponseCode" enum="HttpResponseCode">
  <obsolete>
    Replaced by UKM.LogUpload.ResponseOrErrorCode
  </obsolete>
  <owner>holte@chromium.org</owner>
  <owner>rkaplow@chromium.org</owner>
  <summary>
    For each upload to the UKM server, log the response received from the
    server.
  </summary>
</histogram>

<histogram name="UMA.ActualLogUploadInterval" units="minutes">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The actual interval between log upload start and previous log upload
    finished within the same process. A value of 0 indicates there was no
    previous upload. Prior to M71, logging for this metric was broken.
  </summary>
</histogram>

<histogram name="UMA.AntiVirusMetricsProvider.Result"
    enum="AntiVirusMetricsProviderResult">
  <owner>wfh@chromium.org</owner>
  <summary>
    Records the result of the attempt to enumerate the installed AntiVirus on
    the machine. This is recorded once during metrics initialization.
  </summary>
</histogram>

<histogram name="UMA.CleanExitBeaconConsistency" enum="UmaCleanExitConsistency">
  <owner>siggi@chromium.org</owner>
  <summary>
    Reports the combined state of distinct clean exit beacons stored in Local
    State and the Windows registry. They are normally expected to be identical.
  </summary>
</histogram>

<histogram name="UMA.ClientIdBackupRecoveredWithAge" units="hours">
  <owner>gab@chromium.org</owner>
  <summary>
    Recorded when we are somehow missing the client ID stored in Local State yet
    are able to recover it from a backup location along with the backed up
    installation date. This report carries the age in hours of the recovered
    client id.
  </summary>
</histogram>

<histogram name="UMA.ClientIdMigrated" enum="BooleanMigrated">
  <obsolete>
    Removed in M45.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Recorded when the one-time UMA client id reset was performed (and the client
    id of this user was migrated).
  </summary>
</histogram>

<histogram name="UMA.CollectExternalEventsTime" units="ms">
  <obsolete>
    Deprecated as of August 2015. The histogram showed no unexpected slowness,
    and a profiler is a better tool for identifying any future issues.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The time to run the external metrics collection task (Chrome OS).
  </summary>
</histogram>

<histogram name="UMA.ComputeCurrentSigninStatus"
    enum="ComputeCurrentSigninStatus">
  <obsolete>
    Deprecated as of Jun 2016. The histogram was added for debugging purpose and
    is not needed anymore.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <owner>yiyaoliu@chromium.org</owner>
  <summary>
    Records attempts to compute the current the signin status and error
    encountered when computing.
  </summary>
</histogram>

<histogram name="UMA.CreatePersistentHistogram.Result"
    enum="CreatePersistentHistogramResult">
  <obsolete>
    Removed April, 2018 as the information has never shown any problems.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    Records attempts to create histograms in presistent space and any errors
    encountered when doing so.
  </summary>
</histogram>

<histogram name="UMA.Debug.EnableCrashUpload.DeferredStartUpAsyncTaskDuration"
    units="ms">
  <owner>wnwen@chromium.org</owner>
  <summary>
    Measures how much time it took to complete all async deferred startup tasks
    on the background thread. Only logged on Android.
  </summary>
</histogram>

<histogram name="UMA.Debug.EnableCrashUpload.DeferredStartUpCompleteTime"
    units="ms">
  <owner>wnwen@chromium.org</owner>
  <summary>
    Measures how much time since application was first in foreground till all
    deferred tasks are done. Only logged on Android.
  </summary>
</histogram>

<histogram name="UMA.Debug.EnableCrashUpload.DeferredStartUpDuration"
    units="ms">
  <obsolete>
    Deprecated 01/2017 for
    UMA.Debug.EnableCrashUploadDeferredStartupAsyncTaskDuration.
  </obsolete>
  <owner>wnwen@chromium.org</owner>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Measures how much time it took to complete deferred startup tasks on the UI
    thread. Only logged on Android.
  </summary>
</histogram>

<histogram name="UMA.Debug.EnableCrashUpload.DeferredStartUpDurationAsync"
    units="ms">
  <owner>wnwen@chromium.org</owner>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Measures how much time it took to complete async deferred startup tasks on
    the background thread. Only logged on Android.
  </summary>
</histogram>

<histogram name="UMA.Debug.EnableCrashUpload.DeferredStartUpMaxTaskDuration"
    units="ms">
  <owner>wnwen@chromium.org</owner>
  <summary>
    Measures the maximum amount of time a single deferred startup task took.
  </summary>
</histogram>

<histogram name="UMA.Debug.EnableCrashUpload.DeferredStartUptime" units="ms">
  <obsolete>
    Replaced by UMA.Debug.EnableCrashUpload.DeferredStartUptime2
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Measures how much time since start up it took for onDeferredStartup() to be
    called, which schedules enablePotentialCrashUploading() to be executed on an
    async task. Only logged on Android.
  </summary>
</histogram>

<histogram name="UMA.Debug.EnableCrashUpload.DeferredStartUptime2" units="ms">
  <obsolete>
    Deprecated 2017. No longer tracked.
  </obsolete>
  <owner>wnwen@chromium.org</owner>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Measures how much time since application was first in foreground till
    deferred tasks are initialized and queued on the idle handler. Only logged
    on Android.
  </summary>
</histogram>

<histogram name="UMA.Debug.EnableCrashUpload.PostDeferredStartUptime"
    units="ms">
  <obsolete>
    Replaced by UMA.Debug.EnableCrashUpload.PostDeferredStartUptime2
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Measures how much time since start up it took before ChromeActivity's
    postDeferredStartupIfNeeded() was called. Only logged on Android.
  </summary>
</histogram>

<histogram name="UMA.Debug.EnableCrashUpload.PostDeferredStartUptime2"
    units="ms">
  <obsolete>
    Deprecated 2017. No longer tracked.
  </obsolete>
  <owner>wnwen@chromium.org</owner>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Measures how much time since application was first in foreground till
    ChromeActivity's postDeferredStartupIfNeeded() was called exactly once. Only
    logged on Android.
  </summary>
</histogram>

<histogram name="UMA.Debug.EnableCrashUpload.Uptime" units="ms">
  <obsolete>
    Replaced by UMA.Debug.EnableCrashUpload.Uptime2
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Measures how much time since start up it took before crash reporting was
    enabled via enablePotentialCrashUploading() as part of deferred start up.
    Only logged on Android.
  </summary>
</histogram>

<histogram name="UMA.Debug.EnableCrashUpload.Uptime2" units="ms">
  <obsolete>
    Replaced by UMA.Debug.EnableCrashUpload.Uptime3
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Measures how much time since start up it took before crash reporting was
    enabled via enablePotentialCrashUploading() as part of deferred start up.
    Only logged on Android.
  </summary>
</histogram>

<histogram name="UMA.Debug.EnableCrashUpload.Uptime3" units="ms">
  <obsolete>
    Deprecated 2017. No longer tracked.
  </obsolete>
  <owner>wnwen@chromium.org</owner>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Measures how much time since application was first in foreground till crash
    reporting was enabled as part of deferred start up. Only logged on Android.
  </summary>
</histogram>

<histogram name="UMA.Discarded Log Events">
  <obsolete>
    Replaced by UMA.Truncate* metrics.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The number of events that would be discarded at log transmission time
    because the event count was already too large. Note that this doesn't
    measure actual discards - in case the UMAThrottleEvents feature is disabled,
    the discards won't occur.
  </summary>
</histogram>

<histogram name="UMA.EnrollmentStatus" enum="EnrollmentStatus">
  <owner>asvitkine@chromium.org</owner>
  <owner>kaznacheev@chromium.org</owner>
  <summary>
    Logs the device enrollment status for Chrome OS device. Logged with every
    UMA upload.
  </summary>
</histogram>

<histogram name="UMA.EntropySourceType" enum="UmaEntropySourceType"
    expires_after="2018-08-30">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Logs the entropy source type that was used for field trial randomization.
    Logged once at each start up.
  </summary>
</histogram>

<histogram name="UMA.ExternalExperiment.GroupCount" units="groups"
    expires_after="2018-08-30">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Logged on Android whenever an external experiment is registered. The logged
    value is the number of groups in the experiment. This will not be logged at
    all if there are no external experiments, but will be logged on group
    transitions (e.g. when going from 1 to 0 groups).
  </summary>
</histogram>

<histogram name="UMA.FieldTrialAllocator.Size" units="bytes">
  <obsolete>
    Deprecated 11/2016 for UMA.FieldTrialAllocator.Used
  </obsolete>
  <owner>lawrencewu@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Size, before padding, of objects allocated from persistent memory in the
    browser process for field trials. Updated on each subprocess launch.
  </summary>
</histogram>

<histogram name="UMA.FieldTrialsEnabledBenchmarking" enum="BooleanUsage">
  <obsolete>
    Deprecated 2012. No longer tracked.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Log whether the --enable-benchmarking flag was set, which causes field
    trials to only use the default group.
  </summary>
</histogram>

<histogram name="UMA.FileMetricsProvider.AccessResult"
    enum="FileMetricsProviderAccessResult">
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    Records attempts to access a file for the purpose of extracting metrics.
  </summary>
</histogram>

<histogram name="UMA.FileMetricsProvider.DeletedFiles">
  <obsolete>
    Removed April, 2018 as the information it provides is no longer useful.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    The number of old metrics files for which a delete was attempted. This is
    logged once with each upload operation. Values greater than 1 indicate that
    the files are not deletable by the browser and must be cleaned up by
    whatever process is creating them.
  </summary>
</histogram>

<histogram name="UMA.FileMetricsProvider.DirectoryFiles">
  <obsolete>
    Removed April, 2018 as no problems were ever indicated.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    The number of metrics files in a directory that need to be uploaded. This is
    logged once with each upload operation.
  </summary>
</histogram>

<histogram name="UMA.FileMetricsProvider.EmbeddedProfile.DroppedFileAge"
    units="minutes">
  <obsolete>
    Deprecated 07/2017. Was only for short-term analysis. About 95% of dropped
    files were less than 1 day old.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    Records the last-modified age of a file that was dropped for lack of an
    embedded profile.
  </summary>
</histogram>

<histogram name="UMA.FileMetricsProvider.EmbeddedProfile.DroppedHistogramCount">
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    Records the number of histograms present in a file that was dropped for lack
    of an embedded profile.
  </summary>
</histogram>

<histogram name="UMA.FileMetricsProvider.EmbeddedProfile.RecordTime" units="ms"
    expires_after="M71">
  <owner>bcwhite@chromium.org</owner>
  <summary>
    Tracks the time used to record all histograms from a file with an embedded
    profile.
  </summary>
</histogram>

<histogram name="UMA.FileMetricsProvider.EmbeddedProfileResult"
    enum="FileMetricsProviderEmbeddedProfileResult">
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    Records attempts to upload metrics from files with embedded system profiles.
  </summary>
</histogram>

<histogram name="UMA.FileMetricsProvider.Happening"
    enum="FileMetricsProviderHappening">
  <obsolete>
    This metrics was to provide information for crbug/760317 which has been
    resolved. Removed February, 2018.
  </obsolete>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    Records various happenings within the FileMetricsProvider for debugging
    purposes.
  </summary>
</histogram>

<histogram name="UMA.FileMetricsProvider.InitialAccessResult"
    enum="FileMetricsProviderAccessResult">
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    Records attempts to access a file for the purpose of extracting initial
    stability metrics.
  </summary>
</histogram>

<histogram name="UMA.FileMetricsProvider.InitialCheckTime.File" units="ms">
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    Records how much wall time was spent checking and mapping an initial metrics
    file on disk.
  </summary>
</histogram>

<histogram name="UMA.FileMetricsProvider.InitialCheckTime.Total" units="ms">
  <obsolete>
    Removed April, 2018 as the information it provides is no longer useful.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    Records how much wall time was spent checking and mapping initial metrics
    from all files on disk.
  </summary>
</histogram>

<histogram name="UMA.FileMetricsProvider.InitialSnapshotTime.File" units="ms">
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    Records how much wall time was spent collecting initial stability metrics
    from a file on disk.
  </summary>
</histogram>

<histogram name="UMA.FileMetricsProvider.InitialSnapshotTime.Total" units="ms">
  <obsolete>
    Removed April, 2018 as the information it provides is no longer useful.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    Records how much wall time was spent collecting initial stability metrics
    from all files on disk.
  </summary>
</histogram>

<histogram name="UMA.FileMetricsProvider.SnapshotTime.File" units="ms">
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    Records how much wall time was spent collecting metrics from a file on disk.
  </summary>
</histogram>

<histogram name="UMA.FileMetricsProvider.SnapshotTime.Total" units="ms">
  <obsolete>
    Removed April, 2018 as the information it provides is no longer useful.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    Records how much wall time was spent collecting metrics from all files on
    disk.
  </summary>
</histogram>

<histogram name="UMA.GeneratedLowEntropySource" enum="Boolean">
  <obsolete>
    Deprecated as of August 2015. No longer tracked.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    For each attempt to generate the low entropy source, log whether or not the
    load required generating a new low entropy source.
  </summary>
</histogram>

<histogram name="UMA.Histograms.Activity" enum="HistogramActivityReport">
  <obsolete>
    Deprecated as of October 2017. No longer tracked.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    Type and flags of every histogram created plus other activities. Counts are
    not mutually-exclusive except for the different types.
  </summary>
</histogram>

<histogram name="UMA.InitSequence" enum="UmaInitSequence">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Logged during MetricsService initialization whether the init task or the
    initial log timer completed first. The expectation is the vast majority of
    the time, the init task should complete first. If metrics show otherwise,
    then it may indicate there's a bug in the MetricsService init sequence and
    that it should be investigated.
  </summary>
</histogram>

<histogram name="UMA.IsClonedInstall" enum="BooleanCloned">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    This is logged with a value of true in every log when the UMA client code
    has detected that this is a potentially cloned install and has set the pref
    to reset its UMA client id on the next startup.
  </summary>
</histogram>

<histogram name="UMA.Large Accumulated Log Not Persisted" units="bytes"
    expires_after="2018-08-30">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Number of bytes in an excessively large log that was discarded at shutdown
    instead of being saved to disk to retry during next chrome run.
  </summary>
</histogram>

<histogram name="UMA.Large Rejected Log was Discarded" units="bytes"
    expires_after="2018-08-30">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Number of bytes in a log was was rejected by server, and then discarded.
  </summary>
</histogram>

<histogram name="UMA.LoadLogsTime" units="ms">
  <obsolete>
    Deprecated as of August 2015. The histograms showed no unexpected slowness,
    and a profiler is a better tool for identifying any future issues.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The time spent to load (de-serialize) unsent logs from local state, recorded
    during the MetricsService startup sequence.
  </summary>
</histogram>

<histogram name="UMA.LocalPersistentMemoryAllocator.Failures.Posix"
    enum="PopularOSErrno">
  <owner>bcwhite@chromium.org</owner>
  <summary>
    Failures, as reported in errno, encountered while allocating local
    persistent memory under Posix.
  </summary>
</histogram>

<histogram name="UMA.LocalPersistentMemoryAllocator.Failures.Win"
    enum="WinGetLastError">
  <owner>bcwhite@chromium.org</owner>
  <summary>
    Failures, as reported by GetLastError(), encountered while allocating local
    persistent memory under Windows.
  </summary>
</histogram>

<histogram name="UMA.LogLoadComplete called">
  <obsolete>
    No longer tracked.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Simple counter of the number of times LogLoadComplete was called (bug
    demonstration, as we're called more often than once per page load :-/ )
  </summary>
</histogram>

<histogram name="UMA.LogSize.OnSuccess" units="KB">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Size in kilobytes (after compression) of an uploaded UMA log. Recorded after
    a successful UMA upload.
  </summary>
</histogram>

<histogram name="UMA.LogUpload.Canceled.CellularConstraint"
    enum="BooleanCanceled" expires_after="2019-04-30">
  <owner>holte@chromium.org</owner>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Logs whether a log was not uploaded due to cellular log throttling logic.
    Android only.
  </summary>
</histogram>

<histogram name="UMA.LogUpload.ConnetionType" enum="NetworkConnectionType">
  <obsolete>
    Used for analyzing UMA log uploads on cellular connection, but necessary
    after the analysis is finished.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <owner>gayane@chromium.org</owner>
  <summary>
    The network connection type for each successful metrics log upload.
  </summary>
</histogram>

<histogram name="UMA.LogUpload.ResponseOrErrorCode"
    enum="CombinedHttpResponseAndNetErrorCode">
  <owner>holte@chromium.org</owner>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    HTTP response codes and network errors encountered by UMA when attempting to
    upload logs to the server through an HTTPS connection.
  </summary>
</histogram>

<histogram name="UMA.LogUpload.ResponseOrErrorCode.HTTP"
    enum="CombinedHttpResponseAndNetErrorCode">
  <owner>holte@chromium.org</owner>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    HTTP response codes and network errors encountered by UMA when attempting to
    upload logs to the server through an HTTP connection.
  </summary>
</histogram>

<histogram name="UMA.LogUploader.UploadSize" units="bytes">
  <obsolete>
    Removed in favor of UMA.LogSize.OnSuccess
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <owner>holte@chromium.org</owner>
  <summary>
    Reports total upload length in bytes when the UMA service type is used.
  </summary>
</histogram>

<histogram name="UMA.LowEntropySource3Value" expires_after="2019-08-30">
  <owner>asvitkine@chromium.org</owner>
  <owner>mpearson@chromium.org</owner>
  <summary>
    Distribution of the new low entropy source value. Corresponds to
    metrics::prefs::kMetricsLowEntropySource. Used for field trial
    randomization. Recorded on startup.
  </summary>
</histogram>

<histogram name="UMA.LowEntropySourceValue" expires_after="2019-08-30">
  <owner>asvitkine@chromium.org</owner>
  <owner>mpearson@chromium.org</owner>
  <summary>
    Distribution of the old low entropy source value. Corresponds to
    metrics::prefs::kMetricsOldLowEntropySource. Used for field trial
    randomization on clients that already have it, but not created on new
    installs. Recorded on startup.
  </summary>
</histogram>

<histogram name="UMA.MachineIdState" enum="UmaMachineIdState">
  <owner>jwd@chromium.org</owner>
  <summary>
    Tracks if the machine ID is generated successfully and if it changes from
    one run to the next. The machine ID is a 24-bit hash of machine
    characteristics. It is expected to change if an install of Chrome is copied
    to multiple machines. This check happens once per browser startup.
  </summary>
</histogram>

<histogram name="UMA.MetricsIDsReset" enum="BooleanHit">
  <owner>jwd@chromium.org</owner>
  <summary>
    A count of the number of times the metrics ids (client id and low entropy
    source) have been reset due to a cloned install being detected.
  </summary>
</histogram>

<histogram name="UMA.MetricsReporting.Toggle" enum="MetricsReportingChange">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Logged when user successfully enables/disables MetricsReporting or when an
    error occurs.
  </summary>
</histogram>

<histogram name="UMA.MetricsService.DeletedDirectorySize.Failure" units="KB">
  <obsolete>
    This metrics was to provide information for crbug/760317 which has been
    resolved. Removed February, 2018.
  </obsolete>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    Records the size of the metrics directory size, after failing to be deleted.
    This is a temporary metric that will be removed in M63 or M64.
  </summary>
</histogram>

<histogram name="UMA.MetricsService.DeletedDirectorySize.Success" units="KB">
  <obsolete>
    This metrics was to provide information for crbug/760317 which has been
    resolved. Removed February, 2018.
  </obsolete>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    Records the size of the metrics directory size, after being successfully
    deleted. This should always be zero unless there is a bug in the return
    code. This is a temporary metric that will be removed in M63 or M64.
  </summary>
</histogram>

<histogram name="UMA.MetricsService.RecordCurrentHistograms.Time" units="ms">
  <obsolete>
    Removed February, 2018 because persistent metrics are fully launched with no
    observable change in operation time.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    Records how much wall time was spent merging, taking snapshots, and
    recording histograms for reporting to UMA.
  </summary>
</histogram>

<histogram name="UMA.NegativeSamples.Histogram" enum="HistogramNameHash">
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    The lower 32 bits of the ID of the histogram that went negative.
  </summary>
</histogram>

<histogram name="UMA.NegativeSamples.Increment" units="increment">
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    The amount of increment that caused a sample count to become negative.
  </summary>
</histogram>

<histogram name="UMA.NegativeSamples.Reason" enum="NegativeSampleReason">
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    Reasons why a negative sample count would have been created. Currently, only
    negative samples from persistent sparse histograms are being checked.
  </summary>
</histogram>

<histogram name="UMA.Perf.GetData" enum="GetPerfDataOutcome">
  <obsolete>
    Deprecated 01/2019 in b/110205489 being split into ChromeOS.CWP.CollectPerf
    and ChromeOS.CWP.UploadPerf.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    A count of successes and various failure modes related to collecting and
    processing performance data obtained through &quot;perf&quot; on Chrome OS.
  </summary>
</histogram>

<histogram base="true" name="UMA.PersistentAllocator.Allocs" units="bytes">
  <obsolete>
    Deprecated 2/2017 for Issue 689315 which indicated they weren't being used.
  </obsolete>
  <owner>bcwhite@chromium.org</owner>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Size, before padding, of objects allocated from persistent memory. This is
    updated with every allocation.
  </summary>
</histogram>

<histogram base="true" name="UMA.PersistentAllocator.Errors"
    enum="PersistentAllocatorErrors">
  <owner>bcwhite@chromium.org</owner>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Errors detected by the persistent memory allocator. These are set when they
    occur.
  </summary>
</histogram>

<histogram base="true" name="UMA.PersistentAllocator.UsedPct" units="%">
  <owner>bcwhite@chromium.org</owner>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Percentage of persistent memory segment that has been allocated. This is
    updated only once per reporting cycle.
  </summary>
</histogram>

<histogram name="UMA.PersistentHistograms.InitResult"
    enum="PersistentHistogramsInitResult">
  <owner>bcwhite@chromium.org</owner>
  <summary>
    A count of successes and failures for the creation of various forms of
    persistent memory used to store histograms.
  </summary>
</histogram>

<histogram name="UMA.ProfilesCount.AfterErase">
  <obsolete>
    Deprecated as of Jun 2016. The histogram was added for debugging purpose and
    is not needed anymore.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <owner>yiyaoliu@chromium.org</owner>
  <summary>
    Record the number of loaded profiles when a profile is erased from the
    profiles map kept by profile manager.
  </summary>
</histogram>

<histogram name="UMA.ProfileSignInStatus" enum="ProfileSigninStatus"
    expires_after="never">
<!-- expires-never: For the signin_status filter in dynamic table. -->

  <owner>asvitkine@chromium.org</owner>
  <owner>isherman@chromium.org</owner>
  <summary>
    An enum representing the signin status of all opened profiles during one UMA
    session.
  </summary>
</histogram>

<histogram name="UMA.ProtoCompressionRatio" units="%">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Compression ratio of the serialized protobuf that will be uploaded to the
    UMA server. This serialized protobuf is compressed using gzip.
  </summary>
</histogram>

<histogram name="UMA.ProtoGzipped" enum="Boolean">
  <obsolete>
    Deprecated as of Sep, 2013. Gzipping protobufs is now the default.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>Was the UMA protobuf uploaded earlier compressed or not.</summary>
</histogram>

<histogram name="UMA.ProtoGzippedKBSaved" units="KB">
  <obsolete>
    Deprecated as of August 2015. See UMA.ProtoCompressionRatio instead.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Kilobytes saved from gzipping the protobufs before uploading them.
  </summary>
</histogram>

<histogram name="UMA.SamplingRatePerMille" units="samples permille">
  <owner>jwd@chromium.org</owner>
  <summary>
    Sample rate applied to this client, expressed as number of clients per 1000
    that are in the sample. Recorded on every log upload.
  </summary>
</histogram>

<histogram name="UMA.StoreLogsTime" units="ms">
  <obsolete>
    Deprecated as of August 2015. The histograms showed no unexpected slowness,
    and a profiler is a better tool for identifying any future issues.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The time spent to store unsent logs to local state, which is done
    periodically and also during start up if there was an initial stability log.
  </summary>
</histogram>

<histogram name="UMA.SubprocessMetricsProvider.SubprocessCount"
    units="subprocesses">
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    The number of subprocesses from which persistent metrics were collected,
    logged once with every reporting cycle.
  </summary>
</histogram>

<histogram name="UMA.SubprocessMetricsProvider.UntrackedProcesses"
    enum="SubprocessType">
  <owner>asvitkine@chromium.org</owner>
  <owner>bcwhite@chromium.org</owner>
  <summary>
    The number of subprocesses, by type, from which persistent metrics are NOT
    collected because there is no information about this (likely new) process
    type. Process numbers 1000 or greater are &quot;custom&quot; processes used
    by embedders.
  </summary>
</histogram>

<histogram name="UMA.SyntheticTrials.Count">
  <obsolete>
    Deprecated as of August 2015.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The number of synthetic field trials added to the UMA log when the system
    profile is recorded. Since this is done prior to capturing the histograms
    from the current process, this will generally be logged once per UMA log.
  </summary>
</histogram>

<histogram name="UMA.TruncatedEvents.Omnibox" units="events">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The number of omnibox events that existed in the metrics log before we
    truncated them to save bandwidth.
  </summary>
</histogram>

<histogram name="UMA.TruncatedEvents.UserAction" units="events">
  <owner>rkaplow@chromium.org</owner>
  <summary>
    The number of user actions events that existed in the metrics log before we
    truncated them to save bandwidth.
  </summary>
</histogram>

<histogram name="UMA.Unacceptable_Log_Discarded">
  <obsolete>
    Deprecated as of May, 2012 (i.e. Chrome 21+). Replaced by the
    UMA.UploadResponseStatus.XML and UMA.UploadResponseStatus.Protobuf
    histograms.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>The server returned a 400 code, and we discarded a log.</summary>
  <details>
    This tends to indicate that a syntax error is present in a log, such as
    would appear when a bogus XML tag is included, or the XML is not balanced
    and well structured.
  </details>
</histogram>

<histogram name="UMA.UnsentLogs.Dropped" expires_after="2019-04-30">
  <owner>holte@chromium.org</owner>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Counter for number of UMA unsent logs removed from persistent storage.
  </summary>
</histogram>

<histogram name="UMA.UploadCreation" enum="BooleanSuccess">
  <obsolete>
    Deprecated as of August 2015. This failure case no longer exists.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    For each attempted UMA upload, log whether the upload was successfully
    constructed. An upload might fail to be constructed, for example, if we try
    to upload before the system is fully initialized; or if serialization of the
    data fails.
  </summary>
</histogram>

<histogram name="UMA.UploadResponseStatus.Protobuf"
    enum="UmaUploadResponseStatus">
  <obsolete>
    Replaced by UMA.LogUpload.ResponseOrErrorCode
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    For each upload to the protocol buffer (v2) UMA server, log whether the
    upload was successful, or whether there was an error.
  </summary>
</histogram>

<histogram name="UMA.UploadResponseStatus.XML" enum="UmaUploadResponseStatus">
  <obsolete>
    Deprecated 2013. No longer tracked.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    For each upload to the XML (v1) UMA server, log whether the upload was
    successful, or whether there was an error.
  </summary>
</histogram>

<histogram name="UMA.UsedResetVariationsFlag" enum="BooleanUsage">
  <obsolete>
    No longer tracked.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Log whether the --reset-variation-state flag was set before the low entropy
    source was requested.
  </summary>
</histogram>

<histogram name="UMA.XMLNodeDumpTime" units="ms">
  <obsolete>
    Deprecated 2013. No longer tracked.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The time spent in converting the XML tree into a character buffer when
    closing a metrics log (Chrome OS).
  </summary>
</histogram>

<histogram name="UMA.XMLWriterDestructionTime" units="ms">
  <obsolete>
    Deprecated 2013. No longer tracked.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The time spent in freeing the XML writer and tree when closing a metrics log
    (Chrome OS).
  </summary>
</histogram>

<histogram name="UncompressAndParseSkiaVectorAsset" units="microseconds">
  <owner>malaykeshav@chromium.org</owner>
  <summary>
    Records the time spent in uncompressing a gzipped animation file.
  </summary>
</histogram>

<histogram name="UnifiedConsent.ConsentBump.Action"
    enum="UnifiedConsentBumpAction">
  <obsolete>
    Removed 2018/11, because the consent bump was removed.
  </obsolete>
  <owner>tangltom@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>
    The action the user takes when the unified consent bump is shown.
  </summary>
</histogram>

<histogram name="UnifiedConsent.ConsentBump.EligibleAtStartup" enum="Boolean">
  <obsolete>
    Removed 2018/11, because the consent bump was removed.
  </obsolete>
  <owner>droger@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <owner>tangltom@chromium.org</owner>
  <summary>
    Boolean indicating whether the user is eligible for seeing the consent bump.
    This metric is recorded at every startup when Unified Consent is enabled.
    Note: There can be multiple entries per user.
  </summary>
</histogram>

<histogram name="UnifiedConsent.ConsentBump.SuppressReason"
    enum="UnifiedConsentBumpSuppressReason">
  <obsolete>
    Removed 2018/11, because the consent bump was removed.
  </obsolete>
  <owner>tangltom@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>
    The reason the consent bump isn't shown to the user. This is recorded at
    startup during the migration to Unified Consent.
  </summary>
</histogram>

<histogram name="UnifiedConsent.RevokeReason" enum="UnifiedConsentRevokeReason">
  <obsolete>
    Removed 2018/11 because it's no longer necessary.
  </obsolete>
  <owner>droger@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <owner>tangltom@chromium.org</owner>
  <summary>
    The reason the unified consent was revoked. This is recorded every time the
    consent state changes from &quot;unified consent given&quot; to
    &quot;unified consent not given&quot;.
  </summary>
</histogram>

<histogram name="UnifiedConsent.SyncAndGoogleServicesSettings"
    enum="UnifiedConsentSyncAndGoogleServicesSettings"
    expires_after="2019-08-21">
  <owner>tangltom@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    State of the user settings for Sync and Google services, recorded at
    startup. Multiple samples may be recorded at once, except for 'None' which
    is recorded when no other bucket is used.
  </summary>
</histogram>

<histogram
    name="UnifiedConsent.SyncAndGoogleServicesSettings.AfterAdvancedOptIn.SyncDataTypesOff"
    enum="UnifiedConsentSyncDataTypesOffAfterAdvancedOptIn"
    expires_after="2020-01-31">
  <owner>tangltom@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>
    All *off* sync data types are recorded when the user confirmed the sync
    setup after going through the advanced opt-in flow.
  </summary>
</histogram>

<histogram name="UpdateClient.BackgroundDownloaderJobs" units="jobs">
  <owner>sorin@chromium.org</owner>
  <summary>
    The number of download jobs found in the Windows BITS queue. This value is
    expected to be zero in most cases, or a small number otherwise. Large values
    indicate a problem with the job creation or clean up code. The metric is
    recorded before a new BITS job is created and inserted into BITS queue.
  </summary>
</histogram>

<histogram name="UpdateClient.BackgroundDownloaderNewJob" enum="Boolean">
  <owner>sorin@chromium.org</owner>
  <summary>
    True if a new BITS job was created to download the url, or false, if an
    existing job was found in the BITS queue. The metric is recorded when the
    component updater background downloader is asked to download a CRX.
  </summary>
</histogram>

<histogram name="UpdateEngine.Attempt.ConnectionType"
    enum="UpdateEngineConnectionType">
  <owner>senj@chromium.org</owner>
  <summary>
    The network connection type when the attempt begins. Possible values include
    &quot;Unknown&quot;, &quot;Ethernet&quot;, &quot;Wifi&quot;,
    &quot;Wimax&quot;, &quot;Bluetooth&quot;, &quot;Cellular&quot;,
    &quot;Tethered Ethernet&quot;, &quot;Tethered Wifi&quot;.

    This is reported when an update attempt ends.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.Attempt.DownloadErrorCode"
    enum="UpdateEngineDownloadErrorCode">
  <owner>senj@chromium.org</owner>
  <summary>
    A more detailed description of the last Payload transfer error when
    downloading the payload.

    This is reported when an attempt ends with the &quot;Payload Download
    Error&quot; result.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.Attempt.DownloadSource"
    enum="UpdateEngineDownloadSource">
  <owner>senj@chromium.org</owner>
  <summary>
    The download source used, possible values include &quot;HTTPS Server&quot;,
    &quot;HTTP Server&quot; and &quot;HTTP Peer&quot;.

    This is reported when an update attempt ends.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.Attempt.DurationMinutes" units="minutes">
  <owner>senj@chromium.org</owner>
  <summary>
    The number of minutes the update attempt took including the time the device
    spent sleeping.

    This is reported when an update attempt ends.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.Attempt.DurationUptimeMinutes" units="minutes">
  <owner>senj@chromium.org</owner>
  <summary>
    The number of minutes the update attempt took excluding the time the device
    spent sleeping.

    This is reported when an update attempt ends.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.Attempt.InternalErrorCode"
    enum="UpdateEngineErrorCode">
  <owner>senj@chromium.org</owner>
  <summary>
    A more detailed description of the last internal error. The possible values
    correspond to the ErrorCode enumeration in the update_engine source code.

    This is reported when an attempt ends with the InternalError result.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.Attempt.Number" units="count">
  <owner>senj@chromium.org</owner>
  <summary>
    The attempt number which starts at 0 for the initial attempt and keeps
    increasing for subsequent attempts.

    This is reported when an update attempt ends.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.Attempt.PayloadBytesDownloadedMiB" units="MiB">
  <owner>senj@chromium.org</owner>
  <summary>
    The number of payload mebibytes (1048576 bytes) actually download.

    This is reported when an update attempt ends.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.Attempt.PayloadDownloadSpeedKBps" units="KBps">
  <owner>senj@chromium.org</owner>
  <summary>
    The payload download speed, in kilobytes per second (1000 bytes/second).
    This is calculated as the number of bytes downloaded divided by the duration
    of the attempt (excluding time spent sleeping).

    This is reported when an update attempt ends.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.Attempt.PayloadSizeMiB" units="MiB">
  <owner>senj@chromium.org</owner>
  <summary>
    The payload size, in mebibytes (1048576 bytes).

    This is reported when an update attempt ends.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.Attempt.PayloadType"
    enum="UpdateEnginePayloadFormat">
  <owner>senj@chromium.org</owner>
  <summary>
    The payload type, possible values include &quot;Delta&quot; (if Omaha
    specified to download a delta payload); and &quot;Full&quot; (if Omaha
    specified to download a full payload); and &quot;ForcedFull&quot; (if the
    client specified that it would only accept a full payload).

    This is reported when an update attempt ends.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.Attempt.Result" enum="UpdateEngineAttemptResult">
  <owner>senj@chromium.org</owner>
  <summary>
    The result of the update attempt.

    This is reported when an update attempt ends.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.Attempt.TimeSinceLastAttemptMinutes"
    units="minutes">
  <owner>senj@chromium.org</owner>
  <summary>
    The number of minutes since the last attempt including the time the device
    spent sleeping.

    This is reported when an update attempt ends but only if there was a
    previous attempt for the same update.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.Attempt.TimeSinceLastAttemptUptimeMinutes"
    units="minutes">
  <owner>senj@chromium.org</owner>
  <summary>
    The number of minutes since the last attempt excluding the time the device
    spent sleeping.

    This is reported when an update attempt ends but only if there was a
    previous attempt for the same update.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.CertificateCheck.Download"
    enum="UpdateEngineCertificateCheckStatus">
  <owner>senj@chromium.org</owner>
  <summary>
    The status of the certificate check done when downloading a payload over
    HTTPS. Note that most downloads are done over HTTP.

    This is reported on every HTTPS connection to the payload download server.
    Connection drops on the same payload may report different values.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.CertificateCheck.UpdateCheck"
    enum="UpdateEngineCertificateCheckStatus">
  <owner>senj@chromium.org</owner>
  <summary>
    The status of the certificate check done when querying Omaha for a new
    version.

    This is reported on every update check.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.Check.DownloadErrorCode"
    enum="UpdateEngineDownloadErrorCode">
  <owner>senj@chromium.org</owner>
  <summary>
    If unable to download a response from Omaha, a more detailed error code is
    reported in this metric.

    This is reported on every update check resulting in &quot;Download
    error&quot;.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.Check.Reaction" enum="UpdateEngineCheckReaction">
  <owner>senj@chromium.org</owner>
  <summary>
    If there is an update available, this metric will track what the device does
    with the information. Possible values include &quot;Applying update&quot;,
    &quot;Deferring update&quot;, &quot;Ignoring update&quot;, and &quot;Backing
    off&quot;.

    This is reported on update checks resulting in &quot;Update available&quot;.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.Check.Result" enum="UpdateEngineCheckResult">
  <owner>senj@chromium.org</owner>
  <summary>
    The response from Omaha. Possible values include &quot;No update
    available&quot;, &quot;Update available&quot;, &quot;Download error&quot;,
    &quot;Response parsing error&quot;, and &quot;Reboot pending&quot;.

    This is reported on every update check.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.Check.RollbackTargetVersion"
    enum="UpdateEngineChromeOsVersionPrefix">
  <owner>poromov@chromium.org</owner>
  <summary>
    First section of the Chrome OS target version set by device policy and sent
    to Omaha if rollback is also allowed. This is a sparse histogram, since the
    possible valid values are stable Chrome OS version prefixes (usually one per
    milestone).

    Example value: 10323 (meaning M65 stable).

    This is reported on every update check if the TargetVersionPrefix device
    policy is set and the value of the RollbackToTargetVersion device policy is
    one of the values allowing rollback.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.Check.TargetVersion"
    enum="UpdateEngineChromeOsVersionPrefix">
  <owner>poromov@chromium.org</owner>
  <summary>
    First section of the Chrome OS target version set by device policy and sent
    to Omaha. This is a sparse histogram, since the possible valid values are
    stable Chrome OS version prefixes (usually one per milestone).

    Example value: 10323 (meaning M65 stable).

    This is reported on every update check if the TargetVersionPrefix device
    policy is set.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.Check.TimeSinceLastCheckMinutes" units="minutes">
  <owner>senj@chromium.org</owner>
  <summary>
    The number of minutes since the last check including the time the device
    spent sleeping.

    This is reported on every update check except for the first one.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.Check.TimeSinceLastCheckUptimeMinutes"
    units="minutes">
  <owner>senj@chromium.org</owner>
  <summary>
    The number of minutes since the last check excluding the time the device
    spent sleeping.

    This is reported on every update check except for the first one.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.Daily.OSAgeDays" units="days">
  <owner>senj@chromium.org</owner>
  <summary>
    The age of the OS in days, defined as the age of the /etc/lsb-release file.

    This is reported on every update check but at most once a day.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.EnterpriseRollback.Failure"
    enum="UpdateEngineChromeOsVersionPrefix">
  <owner>poromov@chromium.org</owner>
  <summary>
    First section of the Chrome OS version to which an enterprise rollback
    (rollback initiated by the admin of the device) has failed. This is a sparse
    histogram, since the possible valid values are stable Chrome OS version
    prefixes (usually one per milestone).

    Example value: 10323 (meaning M65 stable).

    This is reported after a rollback image has failed installing.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.EnterpriseRollback.Success"
    enum="UpdateEngineChromeOsVersionPrefix">
  <owner>poromov@chromium.org</owner>
  <summary>
    First section of the Chrome OS version to which an enterprise rollback
    (rollback initiated by the admin of the device) has succeeded. This is a
    sparse histogram, since the possible valid values are stable Chrome OS
    version prefixes (usually one per milestone).

    Example value: 10323 (meaning M65 stable).

    This is reported after a rollback image has been successfully installed.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.FailedUpdateCount" units="count">
  <owner>senj@chromium.org</owner>
  <summary>
    The number of consecutive times a device has failed to boot an update that
    successfully applied.

    This is reported every time the firmware fails to boot the slot with the
    update and fell back to the slot it originally updated from.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.InstallDateProvisioningSource"
    enum="UpdateEngineInstallDateProvisioningSource">
  <owner>senj@chromium.org</owner>
  <summary>
    The source used to provision the install-date-days value sent to Omaha with
    every request.

    This is reported when OOBE (Out Of Box Experience) completes (M34 or later)
    or when upgrading to a version with install-date-days support.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.KernelKey.MaxRollforwardSetSuccess"
    enum="BooleanSuccess">
  <owner>poromov@chromium.org</owner>
  <summary>
    Whether setting the MaxKernelKeyRollforward value in the TPM succeeded.

    This is reported every time an update check happens. This is a bool value.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.KernelKey.MaxRollforwardVersion">
  <owner>poromov@chromium.org</owner>
  <summary>
    Maximum value the device can roll forward the minimum kernel key version
    value in the TPM during the next boot.

    This value is set to infinity (0xfffffffe) for devices which doesn't allow
    rollback.

    Otherwise, the value is the kernel key version of the earliest image to
    which the device is allowed to roll back.

    This is reported every time an update check happens. This is a sparse value.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.KernelKey.MinVersion">
  <owner>poromov@chromium.org</owner>
  <summary>
    Minimum kernel key version already set in the TPM. This value specifies
    which images can be booted up with verified boot.

    This is reported every time an update check happens. This is a sparse value.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.Rollback.Result" enum="BooleanSuccess">
  <owner>senj@chromium.org</owner>
  <summary>
    Whether rollback worked.

    This is reported every time there's a rollback request.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.SuccessfulUpdate.AttemptCount" units="count">
  <owner>senj@chromium.org</owner>
  <summary>
    The total number of update attempts required to update the device.

    This is reported on every successful update.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.SuccessfulUpdate.BytesDownloadedMiB" units="MiB">
  <owner>senj@chromium.org</owner>
  <summary>
    The total number of bytes downloaded in mebibytes (1048576 bytes) using all
    available sources (e.g. HTTP, HTTPS, HTTP Peer).

    This is reported on every successful update.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.SuccessfulUpdate.BytesDownloadedMiBHttpPeer"
    units="MiB">
  <owner>senj@chromium.org</owner>
  <summary>
    The total number of bytes downloaded in mebibytes (1048576 bytes) using HTTP
    from a local peer.

    This is reported on every successful update.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.SuccessfulUpdate.BytesDownloadedMiBHttpServer"
    units="MiB">
  <owner>senj@chromium.org</owner>
  <summary>
    The total number of bytes downloaded in mebibytes (1048576 bytes) using
    HTTP.

    This is reported on every successful update.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.SuccessfulUpdate.BytesDownloadedMiBHttpsServer"
    units="MiB">
  <owner>senj@chromium.org</owner>
  <summary>
    The total number of bytes downloaded in mebibytes (1048576 bytes) using
    HTTPS.

    This is reported on every successful update.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.SuccessfulUpdate.DownloadOverheadPercentage"
    units="%">
  <owner>senj@chromium.org</owner>
  <summary>
    The ratio between bytes downloaded and payload size minus 100.

    This is reported on every successful update.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.SuccessfulUpdate.DownloadSourcesUsed"
    enum="UpdateEngineDownloadSources">
  <owner>senj@chromium.org</owner>
  <summary>
    The various download sources used - this is a combination of the values
    &quot;HTTPS Server&quot;, &quot;HTTP Server&quot; and &quot;HTTP Peer&quot;.

    This is reported on every successful update.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram
    name="UpdateEngine.SuccessfulUpdate.DurationFromSeenDays.NoTimeRestriction"
    units="days">
  <owner>maybelle@chromium.org</owner>
  <owner>zentaro@chromium.org</owner>
  <summary>
    The total number of days from when an update is first seen to when an update
    is finished downloading (but before rebooting). This metric is recorded on
    enterprise-enrolled devices that do not have the
    DeviceAutoUpdateTimeRestrictions policy enabled.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram
    name="UpdateEngine.SuccessfulUpdate.DurationFromSeenDays.TimeRestricted"
    units="days">
  <owner>maybelle@chromium.org</owner>
  <owner>zentaro@chromium.org</owner>
  <summary>
    The total number of days from when an update is first seen to when an update
    is finished downloading (but before rebooting). This metric is recorded on
    devices that have the DeviceAutoUpdateTimeRestrictions policy enabled.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.SuccessfulUpdate.PayloadSizeMiB" units="MiB">
  <owner>senj@chromium.org</owner>
  <summary>
    The size of the payload, in mebibytes (1048576 bytes).

    This is reported on every successful update.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.SuccessfulUpdate.PayloadType"
    enum="UpdateEnginePayloadFormat">
  <owner>senj@chromium.org</owner>
  <summary>
    The payload type (&quot;Delta&quot;, &quot;Full&quot;,
    &quot;ForcedFull&quot;) used.

    This is reported on every successful update.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.SuccessfulUpdate.RebootCount" units="count">
  <owner>senj@chromium.org</owner>
  <summary>
    The total number of reboots during the update.

    This is reported on every successful update.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.SuccessfulUpdate.TotalDurationMinutes"
    units="minutes">
  <owner>senj@chromium.org</owner>
  <summary>
    The total number of minutes from when an update was detected until an update
    (possibly another update) was applied. This includes the time waiting for
    update checks and time the device spent sleeping.

    This is reported on every successful update.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.SuccessfulUpdate.TotalDurationUptimeMinutes"
    units="minutes">
  <owner>senj@chromium.org</owner>
  <summary>
    The total number of minutes from when an update was detected until an update
    (possibly another update) was applied. This does not include the time
    waiting for update checks and time the device spent sleeping.

    This is reported on every successful update.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.SuccessfulUpdate.UpdatesAbandonedCount"
    units="count">
  <owner>senj@chromium.org</owner>
  <summary>
    The total number of updates that were abandoned since the last successful
    update.

    This is reported on every successful update.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.SuccessfulUpdate.UrlSwitchCount" units="count">
  <owner>senj@chromium.org</owner>
  <summary>
    The total number of times the URL was switched (from e.g. HTTPS to HTTP)
    because of failures.

    This is reported on every successful update.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpdateEngine.TimeToRebootMinutes" units="minutes">
  <owner>senj@chromium.org</owner>
  <summary>
    The duration between when an update has successfully completed and the user
    is presented with the &quot;reboot arrow&quot; and when the system has
    booted into the new update.

    This is reported every time the device is rebooted after an update has been
    applied.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="UpgradeDetector.NotificationStage"
    enum="UpgradeNotificationStage">
  <owner>spqchan@chromium.org</owner>
  <summary>
    Tracks the upgrade notification stage. This is recorded with every UMA log.
  </summary>
</histogram>

<histogram name="UpgradeDetector.RollbackReason"
    enum="UpgradeDetectorRollbackReason" expires_after="M76">
  <owner>hunyadym@chromium.org</owner>
  <owner>zentaro@chromium.org</owner>
  <summary>
    Tracks what is the reason we're doing a rollback instead of an update (going
    to a more stable channel or admin-initiated enterprise rollback). We're
    showing different notifications depending on the reason.

    Sent when the device finished installing the rollback image, shows the
    notification and is waiting for reboot.

    This metric is specific to Chrome OS.
  </summary>
</histogram>

<histogram name="Uptime.ChromeExecToLoginPromptVisibleAfterLogout" units="ms">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Measures the time elapsed on Chrome OS between when Chrome is started, and
    when the login prompt is again visible after a logout. This statistic is
    only collected when preceeded by a logout.
  </summary>
</histogram>

<histogram name="Uptime.DBusCrash" units="ms">
  <owner>derat@chromium.org</owner>
  <summary>
    The system uptime on Chrome OS when the dbus-daemon process crashes,
    resulting in a reboot.
  </summary>
</histogram>

<histogram name="Uptime.LoginPromptSetupTimeAfterLogout" units="ms">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Measures the time elapsed on Chrome OS for setting up for a login after a
    logout. More specifically, it is the time between when the Cryptohome is
    unmounted (the last step in the logout process) and when the login prompt is
    again visible after a logout.
  </summary>
</histogram>

<histogram name="Uptime.Logout" units="ms">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Measures the time elapsed on Chrome OS when performing a logout. More
    specifically, it is the time between when a logout is initiated and when the
    Cryptohome is unmounted, signaling the last step in the logout process. This
    statistic is not collected when the logout is part of a restart or shutdown.
  </summary>
</histogram>

<histogram name="Uptime.LogoutToLoginPromptVisible" units="ms">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Measures the time elapsed on Chrome OS between initiating a logout and the
    next time the login prompt is visible again. This statistic is not collected
    if the machine is shutdown between the logout initiation and the prompt
    becoming visible.
  </summary>
</histogram>

<histogram name="Uptime.LogoutToUIStopAfterLogout" units="ms">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Measures the time elapsed on Chrome OS between when a logout is initiated
    and the UI has stopped (and Chrome has exited) during the logout process.
    This statistic is not collected if the logout is part of a restart or
    shutdown.
  </summary>
</histogram>

<histogram name="Uptime.OtherProcessesTerminatedToChromeExecAfterLogout"
    units="ms">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Measures the time elapsed on Chrome OS between when all user-associated
    processes have been terminated during the logout process and when Chrome is
    started again to show the login screen. Since at least ChromeOS M62,
    equivalent to Uptime.XTerminatedToChromeExecAfterLogout.
  </summary>
</histogram>

<histogram name="Uptime.ProcessesTerminatedToXTerminatedAfterLogout" units="ms">
  <obsolete>
    Deprecated 05/2018 in Issue 721891 with removal of X11. Replaced by
    Uptime.OtherProcessesTerminatedToChromeExecAfterLogout in ChromeOS M69.
    Equal to 0 since at least ChromeOS M62.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Measures the time elapsed on Chrome OS between when all user-associated
    processes (including the X server) have been terminated during the logout
    process. This statistic is not collected if the logout is part of a restart
    or shutdown.
  </summary>
</histogram>

<histogram name="Uptime.UIStopToProcessesTerminatedAfterLogout" units="ms">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Measures the time elapsed on Chrome OS between when the UI has stopped
    (Chrome has exited), and when all other associated processes have been
    terminated during the logout process. This statistic is not collected if the
    logout is part of a restart or shutdown.
  </summary>
</histogram>

<histogram name="Uptime.XTerminatedToChromeExecAfterLogout" units="ms">
  <obsolete>
    Replaced by Uptime.OtherProcessesTerminatedToChromeExecAfterLogout in
    ChromeOS M69. Equivalent to the new name since at least ChromeOS M62.
  </obsolete>
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <summary>
    Measures the time elapsed on Chrome OS between when the X server has been
    terminated from a previous logout and when Chrome is started again to show
    the login screen.
  </summary>
</histogram>

<histogram name="URLBlacklistManager.ConstructorBuildTime" units="ms">
  <obsolete>
    Served its purpose; deprecated 9/2018 in M71 (https://crbug.com/827173).
  </obsolete>
  <owner>grt@chromium.org</owner>
  <summary>
    The time it took to build and set the URL blacklist on the main thread
    within URLBlacklistManager's constructor.
  </summary>
</histogram>

<histogram name="UrlFetcher.StringResponseSize" units="KB">
  <obsolete>
    Removed 10/2017.
  </obsolete>
  <owner>mmenke@chromium.org</owner>
  <summary>
    Size (in kilobytes) of response bodies retrieved as strings from URLFetcher.
  </summary>
</histogram>

<histogram name="UserActivation.AvailabilityCheck.FrameResult"
    enum="UserActivationFrameResultEnum">
  <owner>mustaq@chromium.org</owner>
  <summary>
    Outcomes (success/failure) of transient user activation availability check
    attempts for each type of caller frame (null, ancestor, descedant, other).
  </summary>
</histogram>

<histogram name="UserActivation.Consumption.FrameResult"
    enum="UserActivationFrameResultEnum">
  <owner>mustaq@chromium.org</owner>
  <summary>
    Outcomes (success/failure) of user activation consumption attempts for each
    type of caller frame (null, ancestor, descedant, other).
  </summary>
</histogram>

<histogram name="UserCert.ContentDisposition" enum="UserCertContentDisposition">
  <obsolete>
    Removed in M57.
  </obsolete>
  <owner>rsleevi@chromium.org</owner>
  <owner>svaldez@chromium.org</owner>
  <summary>
    Distribution of Content-Disposition headers sent with x-x509-user-cert
    content types.
  </summary>
</histogram>

<histogram name="UserImage.ChangeChoice" enum="ChromeOSUserImageId">
  <owner>achuith@chromium.org</owner>
  <summary>
    Distribution of the default images that users choose in Change Picture
    dialog (Chrome OS). One sample is taken each time the user changes picture.
  </summary>
</histogram>

<histogram name="UserImage.FirstTimeChoice" enum="ChromeOSUserImageId">
  <owner>achuith@chromium.org</owner>
  <summary>
    Distribution of the default images chosen on user image screen during
    out-of-the-box experience (Chrome OS). One sample is taken each time the
    user confirms the choice by clicking OK button.
  </summary>
</histogram>

<histogram name="UserImage.LoggedIn" enum="ChromeOSUserImageId">
  <owner>achuith@chromium.org</owner>
  <summary>
    Distribution of the default images that existing users login with (Chrome
    OS). One sample is taken each time the user logs in.
  </summary>
</histogram>

<histogram name="UserImage.ProfileDownloadResult"
    enum="ProfileImageDownloadResult">
  <owner>achuith@chromium.org</owner>
  <summary>
    Profile image download result for UserManager (either on behalf of the
    Change Picture prefs page, OOBE or scheduled refresh after user login).
  </summary>
</histogram>

<histogram name="UserImage.ProfileDownloadTime" units="ms">
  <owner>achuith@chromium.org</owner>
  <summary>The time it took to download user's profile picture.</summary>
</histogram>

<histogram name="UserImage.ScreenIsShownTime" units="ms">
  <owner>achuith@chromium.org</owner>
  <summary>
    Time histogram of the &quot;Choose Picture&quot; OOBE screen display delay.
  </summary>
</histogram>

<histogram name="UserManager.LoginUserType" enum="UserType">
  <owner>achuith@chromium.org</owner>
  <summary>
    The number of users of different types that log in to the system (Chrome
    OS).
  </summary>
</histogram>

<histogram name="UserManager.LogoutToLoginDelay" units="seconds">
  <owner>alemate@chromium.org</owner>
  <owner>omrilio@chromium.org</owner>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The time between one regular user logging out and a different regular user
    logging in (Chrome OS). Delays above thirty minutes or which span system
    reboots or non-regular-user logins are not reported.
  </summary>
</histogram>

<histogram name="UserManager.ProfileEverInitializedMigrationCompleted"
    enum="BooleanCompleted">
  <owner>atwilson@chromium.org</owner>
  <summary>
    Whether the profile_ever_initialized() user attribute migration has
    completed for the current user.
  </summary>
</histogram>

<histogram name="UserManager.UserTypeChanged" enum="UserTypeChanged">
  <owner>alemate@chromium.org</owner>
  <summary>
    This is logged when new user type reported by Gaia is different from the old
    one (for existing user).
  </summary>
</histogram>

<histogram name="UserSessionManager.RestoreOnCrash.AccountIdValid"
    enum="BooleanValid">
  <owner>msarda@chromium.org</owner>
  <summary>
    The result of restoring account id on Chrome restart after crash.
  </summary>
</histogram>

<histogram name="UserSessionManager.UserPodsDisplay" enum="UserPodsDisplay">
  <owner>achuith@chromium.org</owner>
  <summary>
    Whether the user pods were enabled during login, and what could disable
    them.
  </summary>
</histogram>

<histogram name="V8.ArrayBufferBigAllocations" units="MB">
  <obsolete>
    Deprecated 5/2017 in Issue 704922. Replaced by
    V8.ArrayBufferLargeAllocations.
  </obsolete>
  <owner>gdeepti@chromium.org</owner>
  <owner>titzer@chromium.org</owner>
  <owner>kschimpf@chromium.org</owner>
  <summary>Number of bytes requested in an array buffer allocation.</summary>
</histogram>

<histogram name="V8.ArrayBufferLargeAllocations" units="MB">
  <owner>gdeepti@chromium.org</owner>
  <owner>titzer@chromium.org</owner>
  <summary>
    Number of bytes requested in array buffer allocations greater than one
    megabyte.
  </summary>
</histogram>

<histogram name="V8.ArrayBufferNewSizeFailures" units="MB">
  <owner>gdeepti@chromium.org</owner>
  <owner>titzer@chromium.org</owner>
  <summary>Array buffer sizes for which V8 failed to allocate memory.</summary>
</histogram>

<histogram name="V8.AsmModuleSizeBytes" units="bytes">
  <owner>mstarzinger@chromium.org</owner>
  <owner>titzer@chromium.org</owner>
  <owner>aseemgarg@chromium.org</owner>
  <summary>Size of asm.js module (in asm.js format).</summary>
</histogram>

<histogram name="V8.AsmWasmTranslationMicroSeconds" units="microseconds">
  <owner>mstarzinger@chromium.org</owner>
  <owner>titzer@chromium.org</owner>
  <owner>aseemgarg@chromium.org</owner>
  <summary>
    Time to convert asm.js code to WebAssembly.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.AsmWasmTranslationThroughput" units="MB/s">
  <owner>mstarzinger@chromium.org</owner>
  <owner>titzer@chromium.org</owner>
  <owner>aseemgarg@chromium.org</owner>
  <summary>
    Throughput of translation of asm.js code to WebAssembly in MB/s.
  </summary>
</histogram>

<histogram name="V8.ASTOptimization">
  <obsolete>
    This histogram is no longer present in V8.
  </obsolete>
  <owner>hablich@chromium.org</owner>
  <summary>TBD</summary>
</histogram>

<histogram name="V8.CodeCacheRejectReason" enum="V8CodeCacheRejectReason">
  <owner>yangguo@chromium.org</owner>
  <summary>
    Reason code data has been rejected when attempting to deserialize.
  </summary>
</histogram>

<histogram name="V8.CodeCacheSizeRatio" units="%">
  <owner>yangguo@chromium.org</owner>
  <summary>Cache size to source size ratio when caching compiled code.</summary>
</histogram>

<histogram name="V8.CodeCreation">
  <obsolete>
    This histogram is no longer present in V8.
  </obsolete>
  <owner>hablich@chromium.org</owner>
  <summary>TBD</summary>
</histogram>

<histogram name="V8.CodeGeneration">
  <obsolete>
    This histogram is no longer present in V8.
  </obsolete>
  <owner>hablich@chromium.org</owner>
  <summary>Time spent generating native code for functions.</summary>
</histogram>

<histogram name="V8.CodegenFractionCrankshaft" units="%">
  <obsolete>
    This histogram is no longer present in V8.
  </obsolete>
  <owner>hablich@chromium.org</owner>
  <owner>rmcilroy@chromium.org</owner>
  <summary>
    Fraction of the total generated code which was generated using the
    Crankshaft optimizing compiler, after each GC in percent.
  </summary>
</histogram>

<histogram name="V8.Compile" units="ms">
  <obsolete>
    This histogram has been replaced by V8.CompileMicroSeconds.
  </obsolete>
  <owner>hablich@chromium.org</owner>
  <owner>yangguo@chromium.org</owner>
  <summary>Time spent in V8 compiler (full codegen).</summary>
</histogram>

<histogram name="V8.CompileCacheableMicroSeconds" units="microseconds">
  <owner>yangguo@chromium.org</owner>
  <summary>
    Time spent compiling a script that may be subject to caching.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.CompileDeserialize" units="ms">
  <obsolete>
    This histogram has been replaced by V8.CompileDeserializeMicroSeconds.
  </obsolete>
  <owner>vogelheim@chromium.org</owner>
  <summary>Time spent deseriailzing code, used by V8 code caching.</summary>
</histogram>

<histogram name="V8.CompileDeserializeMicroSeconds" units="microseconds">
  <owner>vogelheim@chromium.org</owner>
  <summary>
    Time spent deseriailzing code, used by V8 code caching.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.CompileEval" units="ms">
  <obsolete>
    This histogram has been replaced by V8.CompileEvalMicroSeconds.
  </obsolete>
  <owner>yangguo@chromium.org</owner>
  <summary>Time spent in V8 compiler (full codegen) for eval.</summary>
</histogram>

<histogram name="V8.CompileEvalMicroSeconds" units="microseconds">
  <owner>yangguo@chromium.org</owner>
  <summary>
    Time spent in V8 compiler (full codegen) for eval.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.CompileHeuristicsDecision" enum="CompileHeuristicsDecision">
  <obsolete>
    This histogram has been replaced by V8.CompileTime.CacheBehaviour.
  </obsolete>
  <owner>kouhei@chromium.org</owner>
  <summary>
    V8 script compile function variant which was picked. This contains
    information such as {if,why} v8 {code,parser} was
    {produced,consumed,bypassed}.
  </summary>
</histogram>

<histogram name="V8.CompileInlineScriptMicroSeconds" units="microseconds">
  <obsolete>
    This histogram has been replaced by
    V8.CompileTimeMicroSeconds.NoCache.InlineScript.
  </obsolete>
  <owner>yangguo@chromium.org</owner>
  <summary>Time spent compiling an inline script.</summary>
</histogram>

<histogram name="V8.CompileLazy" units="ms">
  <obsolete>
    This histogram has been replaced by V8.CompileLazyMicroSeconds.
  </obsolete>
  <owner>hablich@chromium.org</owner>
  <summary>Time spent compiling functions lazily on first run.</summary>
</histogram>

<histogram name="V8.CompileLazyMicroSeconds" units="microseconds">
  <owner>hablich@chromium.org</owner>
  <summary>
    Aggregated time spent compiling functions lazily during a single script
    execution.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.CompileMicroSeconds" units="microseconds">
  <owner>yangguo@chromium.org</owner>
  <summary>
    Time spent in V8 compiler (full codegen) excluding parser.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.CompileNoncacheableMicroSeconds" units="microseconds">
  <obsolete>
    This histogram has been replaced by the subcategories of
    V8.CompileTimeMicroSeconds.NoCache
  </obsolete>
  <owner>yangguo@chromium.org</owner>
  <summary>
    Time spent compiling a script that cannot be subject to caching.
  </summary>
</histogram>

<histogram name="V8.CompileScript" units="ms">
  <obsolete>
    This histogram has been replaced by V8.CompileScriptMicroSeconds.
  </obsolete>
  <owner>yangguo@chromium.org</owner>
  <summary>
    Total time spent in compiling a script (incl. parsing/caching).

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.CompileScript.CacheBehaviour" enum="V8CacheBehaviour">
  <owner>leszeks@chromium.org</owner>
  <summary>
    The cache behaviour of compiling a V8 script, including whether we produced
    or consumed a code cache, whether we hit V8's isolate's cache, and if we
    didn't use the code cache, the reason why not.
  </summary>
</histogram>

<histogram name="V8.CompileScriptMicroSeconds" units="microseconds">
  <owner>yangguo@chromium.org</owner>
  <summary>
    Total time spent in compiling a script (incl. parsing/caching).

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.CompileScriptMicroSeconds.BackgroundThread"
    units="microseconds">
  <owner>rmcilroy@chromium.org</owner>
  <summary>
    Total time spent in compiling a script (incl. parsing) on a background
    thread.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.CompileScriptMicroSeconds.ConsumeCache"
    units="microseconds">
  <owner>leszeks@chromium.org</owner>
  <summary>
    Total time spent in compiling a script when the 'compilation' is
    deserializing it from the code cache.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.CompileScriptMicroSeconds.ConsumeCache.Failed"
    units="microseconds">
  <owner>leszeks@chromium.org</owner>
  <summary>
    Total time spent in compiling a script (incl. parsing/caching) when the
    compilation tried to deserialize it from the code cache, but failed.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.CompileScriptMicroSeconds.IsolateCacheHit"
    units="microseconds">
  <owner>leszeks@chromium.org</owner>
  <summary>
    Total time spent in compiling a script (incl. parsing/caching) in the case
    where the V8 isolate's compilation cache is hit.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.CompileScriptMicroSeconds.NoCache.CacheTooCold"
    units="microseconds">
  <owner>leszeks@chromium.org</owner>
  <summary>
    Total time spent in compiling a script (incl. parsing) when the cache is too
    cold to use.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.CompileScriptMicroSeconds.NoCache.InlineScript"
    units="microseconds">
  <owner>leszeks@chromium.org</owner>
  <summary>
    Total time spent in compiling a script (incl. parsing) when the script is an
    inline script.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.CompileScriptMicroSeconds.NoCache.Other"
    units="microseconds">
  <owner>leszeks@chromium.org</owner>
  <summary>
    Total time spent in compiling a script (incl. parsing) when we do not want
    to cache it.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.CompileScriptMicroSeconds.NoCache.ScriptTooSmall"
    units="microseconds">
  <owner>leszeks@chromium.org</owner>
  <summary>
    Total time spent in compiling a script (incl. parsing) when the script is
    too small to be cached.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.CompileScriptMicroSeconds.ProduceCache"
    units="microseconds">
  <owner>leszeks@chromium.org</owner>
  <summary>
    Total time spent in compiling a script (incl. parsing) and serializing it
    for the code cache.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.CompileSerialize" units="ms">
  <obsolete>
    This histogram has been replaced by V8.CompileSerializeMicroSeconds.
  </obsolete>
  <owner>vogelheim@chromium.org</owner>
  <summary>Time spent serializing code, used by V8 code caching.</summary>
</histogram>

<histogram name="V8.CompileSerializeMicroSeconds" units="microseconds">
  <owner>vogelheim@chromium.org</owner>
  <summary>
    Time spent serializing code, used by V8 code caching.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.DebugFeatureUsage" enum="V8DebugFeature">
  <owner>yangguo@chromium.org</owner>
  <summary>
    Debugger feature used at least once per isolate, recorded on first use.
  </summary>
</histogram>

<histogram name="V8.DeferredCodeGeneration">
  <obsolete>
    This histogram is no longer present in V8
  </obsolete>
  <owner>hablich@chromium.org</owner>
  <summary>Time spent generating deferred code stubs.</summary>
</histogram>

<histogram name="V8.DetachedContextAgeInGC">
  <owner>ulan@chromium.org</owner>
  <summary>
    Number of garbage collections that a detached global context survives,
    recorded after each major garbage collection. Values greater than 7 indicate
    a memory leak.
  </summary>
</histogram>

<histogram name="V8.ErrorsThrownPerContext" units="errors">
  <owner>hablich@chromium.org</owner>
  <summary>
    The amount of JavaScript errors thrown by V8 per context. It does not count
    custom errors and ignores catched errors thrown by V8. This is collected
    after the context is detached.
  </summary>
</histogram>

<histogram name="V8.ExecutableMemoryMax" units="bytes">
  <obsolete>
    This histogram is no longer present in V8
  </obsolete>
  <owner>hablich@chromium.org</owner>
  <summary>
    The maximum memory used to store V8 compiled code on a given process.
  </summary>
</histogram>

<histogram name="V8.Execute" units="ms">
  <owner>rmcilroy@chromium.org</owner>
  <summary>
    Time spent in JavaScript Execution, including runtime calls, callbacks, and
    lazy compilation.
  </summary>
</histogram>

<histogram name="V8.GC.ParallelTaskLatencyMicroSeconds" units="microseconds">
  <obsolete>
    Deprecated in Feb 2019. No longer tracked in V8.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Latency (post-to-schedule) of each parallel task posted during V8 garbage
    collection.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.GCBackgroundMarking" units="ms">
  <owner>ulan@chromium.org</owner>
  <summary>
    Time spent in background tasks doing marking in one GC cycle. It is recorded
    after each GC.
  </summary>
</histogram>

<histogram name="V8.GCBackgroundScavenger" units="ms">
  <owner>ulan@chromium.org</owner>
  <summary>
    Time spent in background tasks doing scavenging in one GC cycle. It is
    recorded after each GC.
  </summary>
</histogram>

<histogram name="V8.GCBackgroundSweeping" units="ms">
  <owner>ulan@chromium.org</owner>
  <summary>
    Time spent in background tasks doing sweeping in one GC cycle. It is
    recorded after each GC.
  </summary>
</histogram>

<histogram name="V8.GCCompactor" units="ms">
  <owner>hpayer@chromium.org</owner>
  <summary>Time spent in mark-sweep phase of GC.</summary>
</histogram>

<histogram name="V8.GCCompactorBackground" units="ms">
  <owner>hpayer@chromium.org</owner>
  <summary>
    Time spent in mark-sweep phase of GC in a background isolate.
  </summary>
</histogram>

<histogram name="V8.GCCompactorForeground" units="ms">
  <owner>hpayer@chromium.org</owner>
  <summary>
    Time spent in mark-sweep phase of GC in a foreground isolate.
  </summary>
</histogram>

<histogram name="V8.GCContext" units="ms">
  <owner>hpayer@chromium.org</owner>
  <summary>Time spent doing a full GC during an IdleNotification.</summary>
</histogram>

<histogram name="V8.GCFinalizeMC" units="ms">
  <owner>ulan@chromium.org</owner>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Time spent in the final atomic pause of incremental latency-optimized
    Mark-Compact GC.
  </summary>
</histogram>

<histogram name="V8.GCFinalizeMC.Clear" units="ms">
  <owner>ulan@chromium.org</owner>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Time spent in the clearing phase of incremental latency-optimized
    Mark-Compact GC.
  </summary>
</histogram>

<histogram name="V8.GCFinalizeMC.Epilogue" units="ms">
  <owner>ulan@chromium.org</owner>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Time spent in the epilogue of incremental latency-optimized Mark-Compact GC.
  </summary>
</histogram>

<histogram name="V8.GCFinalizeMC.Evacuate" units="ms">
  <owner>ulan@chromium.org</owner>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Time spent in the evacuation phase of incremental latency-optimized
    Mark-Compact GC.
  </summary>
</histogram>

<histogram name="V8.GCFinalizeMC.Finish" units="ms">
  <owner>ulan@chromium.org</owner>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Time spent in the finish phase of incremental latency-optimized Mark-Compact
    GC.
  </summary>
</histogram>

<histogram name="V8.GCFinalizeMC.Mark" units="ms">
  <owner>ulan@chromium.org</owner>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Time spent in the marking phase of incremental latency-optimized
    Mark-Compact GC.
  </summary>
</histogram>

<histogram name="V8.GCFinalizeMC.Prologue" units="ms">
  <owner>ulan@chromium.org</owner>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Time spent in the prologue of incremental latency-optimized Mark-Compact GC.
  </summary>
</histogram>

<histogram name="V8.GCFinalizeMC.Sweep" units="ms">
  <owner>ulan@chromium.org</owner>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Time spent in the sweeping phase of incremental latency-optimized
    Mark-Compact GC.
  </summary>
</histogram>

<histogram name="V8.GCFinalizeMCBackground" units="ms">
  <owner>ulan@chromium.org</owner>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Time spent in the final atomic pause of incremental latency-optimized
    Mark-Compact GC in a background isolate.
  </summary>
</histogram>

<histogram name="V8.GCFinalizeMCForeground" units="ms">
  <owner>ulan@chromium.org</owner>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Time spent in the final atomic pause of incremental latency-optimized
    Mark-Compact GC in a foreground isolate.
  </summary>
</histogram>

<histogram name="V8.GCFinalizeMCReduceMemory" units="ms">
  <owner>ulan@chromium.org</owner>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Time spent in the final atomic pause of incremental memory-optimized
    Mark-Compact GC.
  </summary>
</histogram>

<histogram name="V8.GCFinalizeMCReduceMemoryBackground" units="ms">
  <owner>ulan@chromium.org</owner>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Time spent in the final atomic pause of incremental memory-optimized
    Mark-Compact GC in a background isolate.
  </summary>
</histogram>

<histogram name="V8.GCFinalizeMCReduceMemoryForeground" units="ms">
  <owner>ulan@chromium.org</owner>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Time spent in the final atomic pause of incremental memory-optimized
    Mark-Compact GC in a foreground isolate.
  </summary>
</histogram>

<histogram name="V8.GCIdleNotification" units="ms">
  <owner>hpayer@chromium.org</owner>
  <summary>Time spent in IdleNotifications.</summary>
</histogram>

<histogram name="V8.GCIdleTimeAllottedInMS" units="ms">
  <obsolete>
    Deprecated in August 2017. No longer tracked.
  </obsolete>
  <owner>hpayer@chromium.org</owner>
  <summary>Idle time passed to V8 via IdleNotifications.</summary>
</histogram>

<histogram name="V8.GCIdleTimeLimit.Overshot" units="ms">
  <obsolete>
    Deprecated in August 2017. No longer tracked.
  </obsolete>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Milliseconds the idle time limit was overshot by the IdleNotification.
  </summary>
</histogram>

<histogram name="V8.GCIdleTimeLimit.Undershot" units="ms">
  <obsolete>
    Deprecated in August 2017. No longer tracked.
  </obsolete>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Milliseconds the idle time limit was undershot by the IdleNotification.
  </summary>
</histogram>

<histogram name="V8.GCIncrementalMarking" units="ms">
  <owner>hpayer@chromium.org</owner>
  <summary>Time spent doing incremental marking steps during GC.</summary>
</histogram>

<histogram name="V8.GCIncrementalMarkingFinalize" units="ms">
  <owner>hpayer@chromium.org</owner>
  <summary>Time spent in finalizing incremental marking.</summary>
</histogram>

<histogram name="V8.GCIncrementalMarkingReason" enum="GarbageCollectionReason">
  <owner>ulan@chromium.org</owner>
  <summary>Reason an incremental marking was started in V8.</summary>
</histogram>

<histogram name="V8.GCIncrementalMarkingStart" units="ms">
  <owner>hpayer@chromium.org</owner>
  <summary>Time spent in starting incremental marking.</summary>
</histogram>

<histogram name="V8.GCIncrementalMarkingSum" units="ms">
  <owner>ulan@chromium.org</owner>
  <summary>
    The total time spent in incremental marking steps in one GC cycle. It is
    only recorded if the time is non-zero.
  </summary>
</histogram>

<histogram name="V8.GCLowMemoryNotification" units="ms">
  <owner>hpayer@chromium.org</owner>
  <summary>Time spent in LowMemoryNotifications.</summary>
</histogram>

<histogram name="V8.GCMarkCompactor" units="ms">
  <owner>mlippautz@chromium.org</owner>
  <summary>
    Sum of all durations of individual phases within one V8 mark-compact garbage
    collection. Reported once per garbage collection.
  </summary>
</histogram>

<histogram name="V8.GCMarkCompactReason" enum="GarbageCollectionReason">
  <owner>ulan@chromium.org</owner>
  <summary>Reason a mark-compact garbage collection was started in V8.</summary>
</histogram>

<histogram name="V8.GCScavenger" units="ms">
  <owner>hpayer@chromium.org</owner>
  <summary>Time spent in scavenging phase of GC.</summary>
</histogram>

<histogram name="V8.GCScavenger.ScavengeMain" units="ms">
  <owner>mlippautz@chromium.org</owner>
  <summary>
    Wall time spent in the main scavenging phase that copies over all reachable
    objects during a V8 scavenge.
  </summary>
</histogram>

<histogram name="V8.GCScavenger.ScavengeRoots" units="ms">
  <owner>mlippautz@chromium.org</owner>
  <summary>Time spent in scavenging the roots during a V8 scavenge.</summary>
</histogram>

<histogram name="V8.GCScavengerBackground" units="ms">
  <owner>hpayer@chromium.org</owner>
  <summary>
    Time spent in scavenging phase of GC in a background isolate.
  </summary>
</histogram>

<histogram name="V8.GCScavengeReason" enum="GarbageCollectionReason">
  <owner>ulan@chromium.org</owner>
  <summary>Reason a scavenge garbage collection was started in V8.</summary>
</histogram>

<histogram name="V8.GCScavengerForeground" units="ms">
  <owner>hpayer@chromium.org</owner>
  <summary>
    Time spent in scavenging phase of GC in a foreground isolate.
  </summary>
</histogram>

<histogram name="V8.GCYoungGenerationHandling" enum="YoungGenerationHandling">
  <owner>mlippautz@chromium.org</owner>
  <summary>
    Type of garbage collection strategy used to collect the young generation.
  </summary>
</histogram>

<histogram name="V8.Initializer.LoadV8Snapshot.Result"
    enum="V8InitializerLoadV8SnapshotResult">
  <owner>oth@chromium.org</owner>
  <summary>Results from snapshot loading.</summary>
</histogram>

<histogram name="V8.Initializer.OpenV8File.Result"
    enum="V8InitializerOpenV8FileResult">
  <owner>oth@chromium.org</owner>
  <summary>Results from opening V8 snapshot files.</summary>
</histogram>

<histogram name="V8.MemoryExternalFragmentationCellSpace" units="%">
  <obsolete>
    This histogram has been replaced by V8.MemoryExternalFragmentationOldSpace.
  </obsolete>
  <owner>hpayer@chromium.org</owner>
  <summary>
    External memory fragmentation in the cell space after each GC in percent.
  </summary>
</histogram>

<histogram name="V8.MemoryExternalFragmentationCodeSpace" units="%">
  <owner>hpayer@chromium.org</owner>
  <summary>
    External memory fragmentation in the code space after each GC in percent.
  </summary>
</histogram>

<histogram name="V8.MemoryExternalFragmentationLoSpace" units="%">
  <owner>hpayer@chromium.org</owner>
  <summary>
    External memory fragmentation in the large object space after each GC in
    percent.
  </summary>
</histogram>

<histogram name="V8.MemoryExternalFragmentationMapSpace" units="%">
  <owner>hpayer@chromium.org</owner>
  <summary>
    External memory fragmentation in the map space after each GC in percent.
  </summary>
</histogram>

<histogram name="V8.MemoryExternalFragmentationOldDataSpace" units="%">
  <obsolete>
    This histogram has been replaced by V8.MemoryExternalFragmentationOldSpace.
  </obsolete>
  <owner>hpayer@chromium.org</owner>
  <summary>
    External memory fragmentation in the old data space after each GC in
    percent.
  </summary>
</histogram>

<histogram name="V8.MemoryExternalFragmentationOldPointerSpace" units="%">
  <obsolete>
    This histogram has been replaced by V8.MemoryExternalFragmentationOldSpace.
  </obsolete>
  <owner>hpayer@chromium.org</owner>
  <summary>
    External memory fragmentation in the old pointer space after each GC in
    percent.
  </summary>
</histogram>

<histogram name="V8.MemoryExternalFragmentationOldSpace" units="%">
  <owner>hpayer@chromium.org</owner>
  <summary>
    External memory fragmentation in the old space after each GC in percent.
  </summary>
</histogram>

<histogram name="V8.MemoryExternalFragmentationTotal" units="%">
  <owner>hpayer@chromium.org</owner>
  <summary>
    Total external memory fragmentation after each GC in percent.
  </summary>
</histogram>

<histogram name="V8.MemoryHeapCommitted" units="KB">
  <obsolete>
    This histogram has been replaced by Memory.Experimental.Renderer2.V8.
  </obsolete>
  <owner>ulan@chromium.org</owner>
  <summary>
    The committed memory used by V8 in KB averaged over time, logged before each
    GC.
  </summary>
</histogram>

<histogram name="V8.MemoryHeapFractionCellSpace" units="%">
  <obsolete>
    Deprecated as of 09/2017.
  </obsolete>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Fraction of the total heap used by the cell space after each GC in percent.
  </summary>
</histogram>

<histogram name="V8.MemoryHeapFractionCodeSpace" units="%">
  <obsolete>
    Deprecated as of 09/2017.
  </obsolete>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Fraction of the total heap used by the code space after each GC in percent.
  </summary>
</histogram>

<histogram name="V8.MemoryHeapFractionLoSpace" units="%">
  <obsolete>
    Deprecated as of 09/2017.
  </obsolete>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Fraction of the total heap used by the lo space after each GC in percent.
  </summary>
</histogram>

<histogram name="V8.MemoryHeapFractionMapSpace" units="%">
  <obsolete>
    Deprecated as of 09/2017.
  </obsolete>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Fraction of the total heap used by the map space after each GC in percent.
  </summary>
</histogram>

<histogram name="V8.MemoryHeapFractionNewSpace" units="%">
  <obsolete>
    Deprecated as of 09/2017.
  </obsolete>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Fraction of the total heap used by the new space after each GC in percent.
  </summary>
</histogram>

<histogram name="V8.MemoryHeapFractionOldDataSpace" units="%">
  <obsolete>
    Deprecated as of 09/2017.
  </obsolete>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Fraction of the total heap used by the old data space after each GC in
    percent.
  </summary>
</histogram>

<histogram name="V8.MemoryHeapFractionOldPointerSpace" units="%">
  <obsolete>
    Deprecated as of 09/2017.
  </obsolete>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Fraction of the total heap used by the old pointer space after each GC in
    percent.
  </summary>
</histogram>

<histogram name="V8.MemoryHeapFractionOldSpace" units="%">
  <obsolete>
    Deprecated as of 09/2017.
  </obsolete>
  <owner>hpayer@chromium.org</owner>
  <summary>
    Fraction of the total heap used by the old space after each GC in percent.
  </summary>
</histogram>

<histogram name="V8.MemoryHeapSampleCellSpaceCommitted" units="KB">
  <obsolete>
    Deprecated as of 09/2017.
  </obsolete>
  <owner>hpayer@chromium.org</owner>
  <summary>
    The size of committed memory in the cell space after each GC in KB.
  </summary>
</histogram>

<histogram name="V8.MemoryHeapSampleCodeSpaceCommitted" units="KB">
  <owner>hpayer@chromium.org</owner>
  <summary>
    The size of committed memory in the code space after each GC in KB.
  </summary>
</histogram>

<histogram name="V8.MemoryHeapSampleMapSpaceCommitted" units="KB">
  <owner>hpayer@chromium.org</owner>
  <summary>
    The size of committed memory in the map space after each GC in KB.
  </summary>
</histogram>

<histogram name="V8.MemoryHeapSampleMaximumCommitted" units="KB">
  <owner>hpayer@chromium.org</owner>
  <summary>
    The maximum size of committed memory used by V8 after each GC in KB.
  </summary>
</histogram>

<histogram name="V8.MemoryHeapSampleTotalCommitted" units="KB">
  <owner>hpayer@chromium.org</owner>
  <summary>
    The total size of committed memory used by V8 after each GC in KB.
  </summary>
</histogram>

<histogram name="V8.MemoryHeapSampleTotalUsed" units="KB">
  <owner>hpayer@chromium.org</owner>
  <summary>
    The total size of live memory used by V8 after each GC in KB.
  </summary>
</histogram>

<histogram name="V8.MemoryHeapUsed" units="KB">
  <obsolete>
    This histogram has been replaced by
    Memory.Experimental.Renderer2.V8.AllocatedObjects.
  </obsolete>
  <owner>ulan@chromium.org</owner>
  <summary>
    The live memory used by V8 in KB averaged over time, logged before each GC.
  </summary>
</histogram>

<histogram name="V8.Parse" units="ms">
  <obsolete>
    This histogram has been replaced by V8.ParseMicroSeconds.
  </obsolete>
  <owner>marja@chromium.org</owner>
  <summary>Time spent in V8 parser.</summary>
</histogram>

<histogram name="V8.ParseLazy" units="ms">
  <obsolete>
    This histogram has been replaced by V8.ParseLazyMicroSeconds.
  </obsolete>
  <owner>marja@chromium.org</owner>
  <summary>
    Time spent parsing functions when they are lazily compiled on first run.
  </summary>
</histogram>

<histogram name="V8.ParseLazyMicroSeconds" units="microseconds">
  <obsolete>
    Deprecated.
  </obsolete>
  <owner>marja@chromium.org</owner>
  <summary>
    Time spent parsing functions when they are lazily compiled on first run.
  </summary>
</histogram>

<histogram name="V8.ParseMicroSeconds" units="microseconds">
  <obsolete>
    Deprecated.
  </obsolete>
  <owner>marja@chromium.org</owner>
  <summary>Time spent in V8 parser.</summary>
</histogram>

<histogram name="V8.PreParse" units="ms">
  <obsolete>
    This histogram has been replaced by V8.PreParseMicroSeconds.
  </obsolete>
  <owner>marja@chromium.org</owner>
  <summary>Time spent preparsing source code.</summary>
</histogram>

<histogram name="V8.PreParseMicroSeconds" units="microseconds">
  <obsolete>
    Deprecated.
  </obsolete>
  <owner>marja@chromium.org</owner>
  <summary>Time spent preparsing source code.</summary>
</histogram>

<histogram name="V8.Rewriting">
  <obsolete>
    This histogram is no longer present in V8.
  </obsolete>
  <owner>hablich@chromium.org</owner>
  <summary>Time spent on rewriting ASTs before compilation.</summary>
</histogram>

<histogram name="V8.RSetLO">
  <obsolete>
    This histogram is no longer present in V8.
  </obsolete>
  <owner>hablich@chromium.org</owner>
  <summary>TBD</summary>
</histogram>

<histogram name="V8.RSetPaged">
  <obsolete>
    This histogram is no longer present in V8.
  </obsolete>
  <owner>hablich@chromium.org</owner>
  <summary>TBD</summary>
</histogram>

<histogram name="V8.ScriptCache">
  <obsolete>
    This histogram is no longer present in V8.
  </obsolete>
  <owner>yangguo@chromium.org</owner>
  <summary>
    The generation a compiled script was found in the compilation cache.
  </summary>
</histogram>

<histogram name="V8.SharedArrayAllocationSizes" units="MB">
  <owner>gdeepti@chromium.org</owner>
  <owner>titzer@chromium.org</owner>
  <summary>
    Number of megabytes requested in shared array buffer allocations.
  </summary>
</histogram>

<histogram name="V8.UsageAnalysis">
  <obsolete>
    This histogram is no longer present in V8.
  </obsolete>
  <owner>hablich@chromium.org</owner>
  <summary>Time spent analysing the usage of variables.</summary>
</histogram>

<histogram name="V8.VariableAllocation">
  <obsolete>
    This histogram is no longer present in V8.
  </obsolete>
  <owner>hablich@chromium.org</owner>
  <summary>TBD</summary>
</histogram>

<histogram name="V8.WasmAddressSpaceUsageMiB" units="MB">
  <owner>titzer@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>ahaas@chromium.org</owner>
  <summary>
    The amount of address space reserved by WebAssembly.Memory backing stores in
    MiB.
  </summary>
</histogram>

<histogram name="V8.WasmCompileFunctionMicroSeconds" units="microseconds">
  <owner>titzer@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>clemensh@chromium.org</owner>
  <summary>
    Time to compile a WebAssembly function.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.WasmCompileFunctionPeakMemoryBytes" units="bytes">
  <owner>titzer@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>clemensh@chromium.org</owner>
  <summary>Peak memory used to compile a WebAssembly function.</summary>
</histogram>

<histogram name="V8.WasmCompileModuleMicroSeconds" units="microseconds">
  <owner>titzer@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>clemensh@chromium.org</owner>
  <summary>
    Time to compile a WebAssembly module.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.WasmDecodeFunctionMicroSeconds" units="microseconds">
  <owner>titzer@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>clemensh@chromium.org</owner>
  <summary>
    Time to decode a WebAssembly function.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.WasmDecodeModuleMicroSeconds" units="microseconds">
  <owner>titzer@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>clemensh@chromium.org</owner>
  <summary>
    Time to decode a WebAssembly module.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.WasmDecodeModulePeakMemoryBytes" units="bytes">
  <owner>titzer@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>clemensh@chromium.org</owner>
  <summary>Peak memory used to decode a WebAssembly module.</summary>
</histogram>

<histogram name="V8.WasmExecutionTimeMicroSeconds" units="microseconds">
  <owner>titzer@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>herhut@chromium.org</owner>
  <owner>kschimpf@chromium.org</owner>
  <summary>
    Time spent executing WebAssembly.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.WasmFunctionSizeBytes" units="bytes">
  <owner>titzer@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>clemensh@chromium.org</owner>
  <summary>Size of a WebAssembly function in bytes.</summary>
</histogram>

<histogram name="V8.WasmFunctionsPerModule" units="functions">
  <owner>titzer@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>clemensh@chromium.org</owner>
  <summary>Function count per WebAssembly module.</summary>
</histogram>

<histogram name="V8.WasmInstantiateModuleMicroSeconds" units="microseconds">
  <owner>titzer@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>clemensh@chromium.org</owner>
  <summary>
    Time to instantiate a WebAssembly module.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.WasmLazyCompilationMicroSeconds" units="microseconds">
  <owner>titzer@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>clemensh@chromium.org</owner>
  <owner>aseemgarg@chromium.org</owner>
  <summary>
    Time for lazy compilation of WebAssembly functions. This is recorded per
    function for the functions that are lazily compiled.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="V8.WasmLazyCompilationThroughput" units="KB/s">
  <owner>titzer@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>clemensh@chromium.org</owner>
  <owner>aseemgarg@chromium.org</owner>
  <summary>
    Throughput of compilation of lazily compiled WebAssembly functions in KB/s
    (size of function in wasm format divided by time to compile it). This is
    recorded per function for functions that are lazily compiled.
  </summary>
</histogram>

<histogram name="V8.WasmMaxMemPagesCount" units="pages">
  <owner>titzer@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>ahaas@chromium.org</owner>
  <summary>
    Number of 64KiB pages a WebAssembly module declares as its maximum
    requirement.
  </summary>
</histogram>

<histogram name="V8.WasmMemoryAllocationResult" enum="WasmAllocationResult">
  <owner>titzer@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>ahaas@chromium.org</owner>
  <summary>
    The result of attempts to allocate WebAssembly.Memory buffers.
  </summary>
</histogram>

<histogram name="V8.WasmMinMemPagesCount" units="pages">
  <owner>titzer@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>ahaas@chromium.org</owner>
  <summary>
    Number of 64KiB pages a WebAssembly module declares as its minimum
    requirement.
  </summary>
</histogram>

<histogram name="V8.WasmModuleCodeSizeMiB" units="MB">
  <owner>titzer@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>clemensh@chromium.org</owner>
  <summary>
    The amount of code space in MiB used by individual WebAssembly modules.
    Recorded for each module on finalization, i.e. when it is garbage-collected.
  </summary>
</histogram>

<histogram name="V8.WasmModuleSizeBytes" units="bytes">
  <owner>titzer@chromium.org</owner>
  <owner>adamk@chromium.org</owner>
  <owner>ahaas@chromium.org</owner>
  <summary>Size of a WebAssembly module.</summary>
</histogram>

<histogram name="Variations.CreateTrials.SeedExpiry"
    enum="VariationsSeedExpiry">
  <owner>asvitkine@chromium.org</owner>
  <owner>fdoray@chromium.org</owner>
  <summary>
    The result of verifying if the variations seed is expired, recorded before
    trials are created from the seed. Expired seeds are treated as not existing.
  </summary>
</histogram>

<histogram name="Variations.DisabledNoEntropyProvider" enum="BooleanHit">
  <obsolete>
    Deprecated 1/2013. No longer tracked.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    A count of the number of times we hit the code where a field trial is
    disabled because no entropy provider was provided.
  </summary>
</histogram>

<histogram name="Variations.FailedRequestErrorCode" enum="NetErrorCodes">
  <obsolete>
    Deprecated 10/2016. Replaced by Variations.SeedFetchResponseOrErrorCode.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The counts of network error codes encountered by VariationsService when an
    attempt to fetch a variations seed from the server fails.
  </summary>
</histogram>

<histogram name="Variations.FetchNotModifiedLatency" units="ms">
  <obsolete>
    Deprecated 2/2014. No longer tracked.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The latency of a VariationsService seed fetch that results in a not modified
    response.
  </summary>
</histogram>

<histogram name="Variations.FetchOtherLatency" units="ms">
  <obsolete>
    Deprecated 2/2014. No longer tracked.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The latency of a VariationsService seed fetch that results in neither a
    success nor not modified response.
  </summary>
</histogram>

<histogram name="Variations.FetchSuccessLatency" units="ms">
  <obsolete>
    Deprecated 2/2014. No longer tracked.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The latency of a VariationsService seed fetch that results in a success
    response.
  </summary>
</histogram>

<histogram name="Variations.FirstRun.SeedConnectTime" units="ms">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The latency of connection to the variations server when fetching an initial
    variations seed during Android Chrome first run. This is included in the
    Variations.FirstRun.SeedFetchTime measurement. Only considers cases where an
    HTTP 200 result was received.
  </summary>
</histogram>

<histogram name="Variations.FirstRun.SeedFetchResult"
    enum="VariationsFirstRunSeedFetchResult">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The result of attempting to fetch an initial variations seed during Android
    Chrome first run. Records both the HTTP code and various error values in one
    enumeration.
  </summary>
</histogram>

<histogram name="Variations.FirstRun.SeedFetchTime" units="ms">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The latency of fetching an initial variations seed during Android Chrome
    first run. Only considers cases where an HTTP 200 result was received.
  </summary>
</histogram>

<histogram name="Variations.FirstRunResult" enum="VariationsFirstRunResult">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The result of attempting to import an initial variations seed during Android
    Chrome first run. Logged from VariationsSeedStore::LoadSeed when seed prefs
    do not exist.
  </summary>
</histogram>

<histogram name="Variations.GoogleUpdateRegistryLabelsNeedClearing"
    enum="BooleanNeedsClearing">
  <owner>jwd@chromium.org</owner>
  <summary>
    If the registry value for Google Update experiment labels contains
    Variations experiments, and therefore needs to have them cleared. This will
    be recorderd once per sessions, right before attempting to clear the value.
  </summary>
</histogram>

<histogram name="Variations.HeaderConstructionTime" units="microseconds">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    How long it took to create the X-Client-Data header.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="Variations.Headers.ExperimentCount">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Records number of experiment ids in the X-Client-Data header at the time the
    header is constructed.
  </summary>
</histogram>

<histogram name="Variations.Headers.URLValidationResult"
    enum="VariationsHeadersURLValidationResult">
  <owner>jwd@chromium.org</owner>
  <summary>
    The result of the check of whether to append Variations headers to a url.
  </summary>
</histogram>

<histogram name="Variations.LoadPermanentConsistencyCountryResult"
    enum="VariationsPermanentConsistencyCountryResult">
  <owner>sclittle@chromium.org</owner>
  <summary>
    Records how the country code saved in prefs used for filtering permanent
    consistency studies compares to the country code in the variations seed.
    This is recorded each time the saved country code is loaded from the pref.
  </summary>
</histogram>

<histogram name="Variations.LoadSeedSignature" enum="VariationSeedSignature"
    expires_after="2018-08-30">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The result of verifying the latest variations seed's signature, recorded
    when the seed is loaded from Local State. Not recorded when running in safe
    mode.
  </summary>
</histogram>

<histogram name="Variations.NetworkAvailability" enum="BooleanSuccess">
  <obsolete>
    Deprecated 9/2012. No longer tracked.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Whether or not the network was available when requested by the
    VariationsService.
  </summary>
</histogram>

<histogram name="Variations.RequestCount" expires_after="2018-08-30">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Number of previous requests to the variations server in the same session,
    logged each time a new request is attempted to the variations server. For
    example, the value of the 0th bucket indicates the number of initial
    requests to the server that took place.
  </summary>
</histogram>

<histogram name="Variations.ResourceRequestsAllowed"
    enum="VariationsResourceRequestsAllowedState">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Counts the number of times the VariationsService is allowed or not allowed
    to make a request due to the ResourceRequestAllowedNotifier.
  </summary>
</histogram>

<histogram name="Variations.SafeMode.FellBackToSafeMode" enum="BooleanSafeMode">
  <obsolete>
    Deprecated as of M66 / Jan 2018. Replaced by
    Variations.SafeMode.FellBackToSafeMode2.
  </obsolete>
  <owner>isherman@chromium.org</owner>
  <summary>
    Whether or not the VariationsService /would/ fall back to Safe Mode, due to
    either too many crashes or too many failures to fetch a new seed, given some
    initial/unrefined heuristics. Recorded during Chrome startup, when the
    VariationsService is created.

    This metric was only reported before Safe Mode was actually implemented, as
    a sanity-check for the forthcoming implementation.
  </summary>
</histogram>

<histogram name="Variations.SafeMode.FellBackToSafeMode2"
    enum="BooleanSafeMode">
  <owner>isherman@chromium.org</owner>
  <summary>
    Whether or not the VariationsService fell back to Safe Mode, due to either
    too many crashes or too many failures to fetch a new seed. Recorded during
    Chrome startup, immediately before field trials are created. Only recorded
    if either a recent or a safe seed was loaded successfully.
  </summary>
</histogram>

<histogram name="Variations.SafeMode.LoadSafeSeed.Result"
    enum="VariationsSeedLoadResult">
  <owner>isherman@chromium.org</owner>
  <summary>
    Records whether the safe variations seed was successfully read from local
    state on startup. Records a detailed reason on read failure. Only recorded
    when attempting to run in safe mode.
  </summary>
</histogram>

<histogram name="Variations.SafeMode.LoadSafeSeed.SignatureValidity"
    enum="VariationSeedSignature">
  <owner>isherman@chromium.org</owner>
  <summary>
    The result of verifying the safe variations seed's signature, recorded when
    the seed is loaded from Local State. Only recorded when attempting to run in
    safe mode.
  </summary>
</histogram>

<histogram name="Variations.SafeMode.StoreSafeSeed.Result"
    enum="VariationsSeedStoreResult">
  <owner>isherman@chromium.org</owner>
  <summary>
    Records the result of storing a safe variations seed (and all associated
    metadata) to the seed store.
  </summary>
</histogram>

<histogram name="Variations.SafeMode.StoreSafeSeed.SignatureValidity"
    enum="VariationSeedSignature">
  <owner>isherman@chromium.org</owner>
  <summary>
    The result of verifying the safe variations seed's signature, recorded when
    the safe seed is stored to Local State.
  </summary>
</histogram>

<histogram name="Variations.SafeMode.Streak.Crashes" units="crashes">
  <owner>isherman@chromium.org</owner>
  <summary>
    The number of consecutive crashes observed by the VariationsService, without
    a single intervening successful seed fetch. Recorded during Chrome startup,
    when the VariationsService is created.
  </summary>
</histogram>

<histogram name="Variations.SafeMode.Streak.FetchFailures" units="failures">
  <owner>isherman@chromium.org</owner>
  <summary>
    The number of consecutive failed attempts to fetch a new seed by the
    VariationsService. Recorded during Chrome startup, when the
    VariationsService is created.
  </summary>
</histogram>

<histogram name="Variations.SeedDateChange" enum="VariationsSeedDateChange">
  <owner>jwd@chromium.org</owner>
  <summary>
    Counts if a response from the variations server is the first response of the
    day or not. This is counted when a new valid seed or a 304 is received. The
    date line is computed in UTC and the times being compared are the server
    time from the server response and the stored server time from the last
    successful request.
  </summary>
</histogram>

<histogram name="Variations.SeedDateSkew.BuildTimeAheadBy" units="days">
  <obsolete>
    Deprecated as of 9/2015.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Logged on startup when creating field trials from the variations seed if the
    build time is ahead of or within 24 hours of the kVariationsSeedDate. Used
    as an experiment to see whether the build time could be used to discard very
    old seeds.
  </summary>
</histogram>

<histogram name="Variations.SeedDateSkew.BuildTimeBehindBy" units="days">
  <obsolete>
    Deprecated as of 9/2015.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Logged on startup when creating field trials from the variations seed if the
    build time is behind the kVariationsSeedDate by a day or more. Used as an
    experiment to see whether the build time could be used to discard very old
    seeds.
  </summary>
</histogram>

<histogram name="Variations.SeedDateSkew.SystemClockAheadBy" units="days">
  <obsolete>
    Deprecated as of 9/2015.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Logged on startup when creating field trials from the variations seed if the
    system clock is ahead of or within 24 hours of the kVariationsSeedDate. Used
    as an experiment to see whether the system clock could be used to discard
    very old seeds.
  </summary>
</histogram>

<histogram name="Variations.SeedDateSkew.SystemClockBehindBy" units="days">
  <obsolete>
    Deprecated as of 9/2015.
  </obsolete>
  <owner>gab@chromium.org</owner>
  <summary>
    Logged on startup when creating field trials from the variations seed if the
    system clock is behind the kVariationsSeedDate by a day or more. Used as an
    experiment to see whether the system clock could be used to discard very old
    seeds.
  </summary>
</histogram>

<histogram name="Variations.SeedEmpty" enum="VariationsSeedLoadResult">
  <obsolete>
    Deprecated in M61, and replaced by Variations.SeedLoadResult. This histogram
    incorrectly conflated failures from loading the seed with failures while
    attempting to store seeds with delta compression.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Records whether the variations seed was successfully read from local state
    on startup. Records a detailed reason on read failure.
  </summary>
</histogram>

<histogram name="Variations.SeedFetchResponseCode" enum="HttpResponseCode">
  <obsolete>
    Deprecated 10/2016. Replaced by Variations.SeedFetchResponseOrErrorCode.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The counts of HTTP response codes encountered by VariationsService when
    attempting to fetch a variations seed from the server.
  </summary>
</histogram>

<histogram name="Variations.SeedFetchResponseOrErrorCode"
    enum="CombinedHttpResponseAndNetErrorCode">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    HTTP response codes and network error encountered by VariationsService when
    attempting to fetch a variations seed from the server over an HTTPS
    connection.
  </summary>
</histogram>

<histogram name="Variations.SeedFetchResponseOrErrorCode.HTTP"
    enum="CombinedHttpResponseAndNetErrorCode">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    HTTP response codes and network error encountered by VariationsService when
    attempting to fetch a variations seed from the server over an HTTP
    connection.
  </summary>
</histogram>

<histogram name="Variations.SeedFreshness" units="minutes">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The time interval between when the variations seed was downloaded and when
    it was loaded for use. Not recorded for expired seeds, nor when the download
    time is unknown (typically, for seeds imported via first run).
  </summary>
</histogram>

<histogram name="Variations.SeedLoadBlockingTime" units="ms">
  <owner>paulmiller@chromium.org</owner>
  <summary>
    Records the time spent blocking WebView startup to wait for the variatinos
    seed. This is less than the entire time needed to load the seed, since
    startup is only blocked if loading is not complete by the time the seed is
    needed. This is logged once per WebView startup, whether or not the load was
    successful.
  </summary>
</histogram>

<histogram name="Variations.SeedLoadResult" enum="VariationsSeedLoadResult">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Records whether the latest variations seed was successfully read from local
    state on startup. Records a detailed reason on read failure. Not recorded
    when running in safe mode.
  </summary>
</histogram>

<histogram name="Variations.SeedProcessingTime" units="ms"
    expires_after="2019-04-30">
  <owner>isherman@chromium.org</owner>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Records how long it takes to load and process variations seed. This metric
    is recorded only when loading and processing of the seed is successful.
  </summary>
</histogram>

<histogram name="Variations.SeedStoreResult" enum="VariationsSeedStoreResult">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Records the result of storing the variations seed that was received from the
    server.
  </summary>
</histogram>

<histogram name="Variations.ServerStudyExpiredUniformity1Percent"
    enum="BooleanExpired">
  <obsolete>
    Deprecated 11/2012. No longer tracked.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Whether or not the 1-Percent uniformity trial from the Variations server was
    expired when loaded.
  </summary>
</histogram>

<histogram name="Variations.SimulateSeed.Duration" units="ms"
    expires_after="2018-08-30">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Records the time taken to perform variations seed simulation.

    Recorded on every variation seed simulation, which follows a fetch.
  </summary>
</histogram>

<histogram name="Variations.SimulateSeed.KillBestEffortChanges"
    expires_after="2018-08-30">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Records the result of variations seed simulation. Logs the number of
    experiment groups in the &quot;kill best effort&quot; category that are
    expected to change on a restart of the browser with the received seed.

    Recorded on every variation seed simulation, which follows a fetch.
  </summary>
</histogram>

<histogram name="Variations.SimulateSeed.KillCriticalChanges"
    expires_after="2018-08-30">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Records the result of variations seed simulation. Logs the number of
    experiment groups in the &quot;kill critical&quot; category that are
    expected to change on a restart of the browser with the received seed.

    Recorded on every variation seed simulation, which follows a fetch.
  </summary>
</histogram>

<histogram name="Variations.SimulateSeed.NormalChanges"
    expires_after="2018-08-30">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Records the result of variations seed simulation. Logs the number of
    experiment groups in the &quot;normal&quot; category that are expected to
    change on a restart of the browser with the received seed.

    Recorded on every variation seed simulation, which follows a fetch.
  </summary>
</histogram>

<histogram name="Variations.StoreSeed.DeltaSize" units="KiB">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    On successful save of a delta-compressed variations seed, records the size
    of the delta in KiB.
  </summary>
</histogram>

<histogram name="Variations.StoreSeed.DeltaSize.ReductionPercent" units="%">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    On successful save of a delta-compressed variations seed, records the size
    of the delta as a percentage of the decoded seed size.
  </summary>
</histogram>

<histogram name="Variations.StoreSeed.GzipSize" units="KiB">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Records the size of the gzip-compressed variations seed in KiB.
  </summary>
</histogram>

<histogram name="Variations.StoreSeed.GzipSize.ReductionPercent" units="%">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Records the size of the gzip-compressed variations seed as a percentage of
    the decoded seed size. Note that variations seed could be first
    delta-compressed and then gzip-compressed. In this case we record
    gzip-compressed seed size as a percentage of the delta-compressed seed size.
  </summary>
</histogram>

<histogram name="Variations.StoreSeed.HasCountry" enum="Boolean">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Records whether a country code was present when storing the variations seed.
  </summary>
</histogram>

<histogram name="Variations.StoreSeed.Size" units="KiB">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    On successful save of a non-delta-compressed variations seed, records the
    size of the received seed in KiB.
  </summary>
</histogram>

<histogram name="Variations.StoreSeedSignature" enum="VariationSeedSignature">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The result of verifying the variations seed signature, recorded when the
    variations seed is stored to Local State after being retrieved from the
    server.
  </summary>
</histogram>

<histogram name="Variations.StringsOverridden" units="strings"
    expires_after="2018-08-30">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Records the number of UI strings overriden for each study that overrides
    strings. Recorded at start up when each study is evaluated.
  </summary>
</histogram>

<histogram name="Variations.TimeSinceLastFetchAttempt" units="minutes">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    The time since the previous attempt to fetch the variations seed within the
    same session, with 0 indicating that this is the first attempt. Recorded
    when a variations seed fetch is attempted by the VariationsService.
  </summary>
</histogram>

<histogram name="Variations.UniformityTrialExpired" enum="BooleanHit">
  <obsolete>
    Deprecated 1/2013. No longer tracked.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    A count of the number of times we hit the code where the
    UMA-Uniformity-Trial-1-Percent field trial is disabled as a result of the
    expiration check.
  </summary>
</histogram>

<histogram name="Variations.UniformityTrialGroupNotActive"
    enum="UniformityTrialGroupNotActive">
  <obsolete>
    Deprecated 1/2013. No longer tracked.
  </obsolete>
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Tracks whether the UMA-Uniformity-Trial-1-Percent field trial was not active
    and which factors contributed to it.
  </summary>
</histogram>

<histogram name="Variations.UserChannel" enum="UserChannels">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Log the user channel assigned at browser startup used for evaluating the
    variations seeds.
  </summary>
</histogram>

<histogram name="Vibration.Context" enum="NavigatorVibrationType"
    expires_after="2019-01-30">
  <owner>binlu@google.com</owner>
  <summary>
    Records instances of navigator.vibrate. Includes whether or not it comes
    with a user gesture, same-origin subframe or cross-origin subframe.
  </summary>
</histogram>

<histogram name="VideoPlayer.CastAPIExtensionStatus"
    enum="VideoPlayerCastAPIExtensionStatus">
  <owner>yoshiki@chromium.org</owner>
  <summary>
    Chrome OS Video Player: the results of the cast API extension load. This is
    recorded after the initialization of the extension is finished.
  </summary>
</histogram>

<histogram name="VideoPlayer.CastedVideoLength" units="seconds">
  <owner>yoshiki@chromium.org</owner>
  <summary>
    Chrome OS Video Player: the length of casted video (in seconds).
  </summary>
</histogram>

<histogram name="VideoPlayer.NumberOfCastDevices">
  <owner>yoshiki@chromium.org</owner>
  <summary>
    Chrome OS Video Player: the number of cast devices. This is recorded when
    the cast extension finishes the discovery.
  </summary>
</histogram>

<histogram name="VideoPlayer.NumberOfOpenedFiles">
  <owner>yoshiki@chromium.org</owner>
  <summary>
    Chrome OS Video Player: the number of files being opened on launch.
  </summary>
</histogram>

<histogram name="VideoPlayer.PlayType" enum="VideoPlayerPlayType">
  <owner>yoshiki@chromium.org</owner>
  <summary>
    Chrome OS Video Player: type of playback (eg. local play, cast). This is
    recorded when a video starts playing.
  </summary>
</histogram>

<histogram name="Viewport.DidScalePage" enum="BooleanDidScalePage">
  <owner>bokan@chromium.org</owner>
  <summary>
    Tracks the proportion of non-mobile optimized (i.e. zoom disabled or layout
    width matches viewport) page views that had a user-initiated page scale
    (e.g. pinch-zoom, double-tap). Recorded on navigation to a new page - on
    Android only.
  </summary>
</histogram>

<histogram name="Viewport.MaxPageScale" enum="PageScaleFactorRange">
  <owner>bokan@chromium.org</owner>
  <summary>
    Tracks the maximum scale factor that a user has scaled to over the lifetime
    of the page. The scale is counted at pinch end (e.g. zooming to 300% and
    back out to 150% in one gesture would count as 150%). Reported only on
    non-mobile optimized pages (i.e. zoom disabled or layout width matches
    viewport) which have had a page scale changing gesture. Recorded on
    navigation to a new page - on Android only.
  </summary>
</histogram>

<histogram name="Viewport.MetaTagType" enum="MetaTagTypeEnum">
  <owner>bokan@chromium.org</owner>
  <summary>
    The viewport meta tag type seen on each page load. Only recorded on Android.
  </summary>
</histogram>

<histogram name="Viewport.OverviewZoom" units="%">
  <owner>bokan@chromium.org</owner>
  <summary>
    The screen width as a percentage of viewport width (i.e. zoom at which we
    can see the whole page). Only recorded on Android and for viewport meta tags
    with constant width.
  </summary>
</histogram>

<histogram name="VirtualKeyboard.ControllerStateTransition"
    enum="VirtualKeyboardControllerStateTransition">
  <owner>oka@chromium.org</owner>
  <summary>
    An integer representing a state transition from x to y in the form of x *
    1000 + y. If the transition is not expected, the value is negated. For
    example an expected transition from SHOWING (= 2) to SHOWN (= 1) is denoted
    as 2001, and an unexpected transition from SHOWING to SHOWING is denoted as
    -2002. See KeyboardControllerState for the correspondence between the number
    and the enum.
  </summary>
</histogram>

<histogram name="VirtualKeyboard.ControllerStateTransitionIsValid"
    enum="BooleanValid">
  <owner>oka@chromium.org</owner>
  <summary>
    Validity of a state transtion. This is equivalent to the positiveness of
    VirtualKeyboard.ControllerStateTransition.
  </summary>
</histogram>

<histogram name="VirtualKeyboard.InitLatency.FirstLoad" units="ms">
  <owner>oka@chromium.org</owner>
  <summary>Latency of the keyboard being loaded for the first time.</summary>
</histogram>

<histogram name="VirtualKeyboard.KeyboardControlEvent"
    enum="KeyboardControlEvent">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    A count of various control events that can occur on the virtual keyboard,
    such as showing and hiding.
  </summary>
</histogram>

<histogram name="VirtualKeyboard.KeystrokesBetweenBackspace">
  <obsolete>
    Deprecated 04/2016 as doesn't have data nor owner.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Counts the number of keys typed by the virtual keyboard between each
    backspace. This metric provides a rough approximation of an error rate for
    the virtual keyboard.
  </summary>
</histogram>

<histogram name="VirtualKeyboard.LingeringIntermediateState"
    enum="VirtualKeyboardControllerState">
  <owner>oka@chromium.org</owner>
  <summary>
    Records whenever an intermediate keyboard state has been active for longer
    than a fixed timeout.
  </summary>
</histogram>

<histogram name="Viz.DisplayCompositor.OverlayStrategy"
    enum="OverlayStrategies">
  <owner>dcastagna@chromium.org</owner>
  <owner>hoegsberg@chromium.org</owner>
  <summary>
    Overlay strategies used to promote Hardware Overlays, per frame. Recorded
    every time a frame is rendered by the display compositor.
  </summary>
</histogram>

<histogram name="Viz.DisplayCompositor.SurfaceEmbeddingTime" units="ms">
  <owner>jonross@chromium.org</owner>
  <summary>
    Records the delta from when a viz::LocalSurfaceId was allocated, to the time
    where it is first embedded by the Viz Service.
  </summary>
</histogram>

<histogram name="VoiceInteraction.DismissedEventSource"
    enum="VoiceInteractionEventSource">
  <owner>tedchoc@chromium.org</owner>
  <owner>yusufo@chromium.org</owner>
  <summary>
    Android: The source of a dismissed voice search, such as omnibox or NTP.
  </summary>
</histogram>

<histogram name="VoiceInteraction.FailureEventSource"
    enum="VoiceInteractionEventSource">
  <owner>tedchoc@chromium.org</owner>
  <owner>yusufo@chromium.org</owner>
  <summary>
    Android: The source of a failed voice search, such as omnibox or NTP.
  </summary>
</histogram>

<histogram name="VoiceInteraction.FinishEventSource"
    enum="VoiceInteractionEventSource">
  <owner>tedchoc@chromium.org</owner>
  <owner>yusufo@chromium.org</owner>
  <summary>
    Android: The source of a successful voice search, such as omnibox or NTP.
  </summary>
</histogram>

<histogram name="VoiceInteraction.IllegalContextRequest" enum="BooleanHit">
  <owner>muyuanli@chromium.org</owner>
  <summary>
    Counts the number of requests to retrieve voice interaction context when no
    user interaction is initiated.
  </summary>
</histogram>

<histogram name="VoiceInteraction.OpenDuration" units="ms">
  <owner>xiaohuic@chromium.org</owner>
  <summary>
    Records the time between a voice interaction session start and end.
  </summary>
</histogram>

<histogram name="VoiceInteraction.StartEventSource"
    enum="VoiceInteractionEventSource">
  <owner>tedchoc@chromium.org</owner>
  <owner>yusufo@chromium.org</owner>
  <summary>
    Android: The source of a voice search start event, such as omnibox or NTP.
  </summary>
</histogram>

<histogram name="VoiceInteraction.UserInteractionToRequestArrival" units="ms">
  <owner>muyuanli@chromium.org</owner>
  <summary>
    Records the time between user interaction and the actual request arrival.
  </summary>
</histogram>

<histogram name="VoiceInteraction.VoiceResultConfidenceValue" units="%">
  <owner>tedchoc@chromium.org</owner>
  <owner>yusufo@chromium.org</owner>
  <summary>
    Android: Records the confidence value of a successful voice search as a
    percentage.
  </summary>
</histogram>

<histogram name="VoiceInteraction.VoiceSearchResult" enum="BooleanSuccess">
  <owner>tedchoc@chromium.org</owner>
  <owner>yusufo@chromium.org</owner>
  <summary>Android: Records whether the voice search produced results.</summary>
</histogram>

<histogram name="VR.Component.Assets.DurationUntilReady.OnChromeStart"
    units="ms">
  <obsolete>
    Deprecated 02/2018 in issue 799074.
    VR.Component.Assets.DurationUntilReady.OnRegisterComponent measures the
    intended metric more accurately.
  </obsolete>
  <owner>tiborg@chromium.org</owner>
  <summary>
    Duration from starting Chrome until VR assets component is ready to use.
  </summary>
</histogram>

<histogram base="true" name="VR.Component.Assets.DurationUntilReady.OnEnter"
    units="ms">
  <owner>tiborg@chromium.org</owner>
  <summary>
    Duration from entering a VR mode until the VR assets component is ready to
    use.
  </summary>
</histogram>

<histogram name="VR.Component.Assets.DurationUntilReady.OnRegisterComponent"
    units="ms">
  <owner>tiborg@chromium.org</owner>
  <summary>
    Duration from registering VR assets component until it is ready to use.
  </summary>
</histogram>

<histogram base="true" name="VR.Component.Assets.Status.OnEnter"
    enum="VRComponentStatus">
  <owner>tiborg@chromium.org</owner>
  <summary>Status of the VR assets component when entering a VR mode.</summary>
</histogram>

<histogram name="VR.Component.Assets.VersionAndStatus.OnLoad"
    enum="VRAssetsLoadStatus">
  <owner>tiborg@chromium.org</owner>
  <summary>
    The component version and status of loading the VR assets. The value is
    encoded as (XXX)(YYY)(SSS) where XXX is the major component version, YYY the
    minor component version and SSS the status. See
    //chrome/browser/vr/assets_load_status.h for possible status values.
  </summary>
</histogram>

<histogram name="VR.Component.Assets.VersionAndStatus.OnUpdate"
    enum="VRAssetsComponentUpdateStatus">
  <owner>tiborg@chromium.org</owner>
  <summary>
    The version and update status of the VR assets component. The value is
    encoded as (XXX)(YYY)(SSS) where XXX is the major version, YYY the minor
    version and SSS the status. See
    //chrome/browser/vr/assets_component_update_status.h for possible status
    values.
  </summary>
</histogram>

<histogram name="VR.EnterVrBrowserWithoutFeatureModule" enum="BooleanSuccess"
    expires_after="2020-01-01">
  <owner>cassew@chromium.org</owner>
  <owner>samdrazin@chromium.org</owner>
  <owner>xr-dev@chromium.org</owner>
  <summary>
    Recorded every time a user tries to enter the VR browser without the VR
    feature module installed. Is success if the user could enter the VR browser
    nonetheless. Is failure if entering the VR browser was blocked (on
    smartphone VR) or started in 2D-in-VR mode (on standalones).
  </summary>
</histogram>

<histogram base="true" name="VR.NetworkConnectionType.OnEnter"
    enum="NetworkConnectionType">
  <owner>tiborg@chromium.org</owner>
  <summary>Network connection type when entering a VR mode.</summary>
</histogram>

<histogram name="VR.NetworkConnectionType.OnRegisterComponent"
    enum="NetworkConnectionType">
  <owner>tiborg@chromium.org</owner>
  <summary>
    Network connection type when registering the VR component(s).
  </summary>
</histogram>

<histogram name="VR.Session.VoiceSearch.StartedCount" units="searches">
  <owner>xr-dev@chromium.org</owner>
  <summary>
    Number of times voice search is started in a single VR session. Recorded
    when a new disjoint session has begun or when the session has ended in a
    non-continuable way.
  </summary>
</histogram>

<histogram name="VR.Shell.EncounteredSuppressedUI" enum="VRSuppressedElement">
  <owner>xr-dev@chromium.org</owner>
  <summary>
    We must suppress monocularly rendered ui elements in VR. This records which
    ui element suppressions are encountered in practice.
  </summary>
</histogram>

<histogram name="VR.Shell.EncounteredUnsupportedMode" enum="VRUnsupportedMode">
  <owner>vollick@chromium.org</owner>
  <summary>
    We must exit VR mode when browsing in certain situations. This records which
    situations are encountered in practice.
  </summary>
</histogram>

<histogram name="VR.VoiceSearch.EndState" enum="VRVoiceSearchEndState">
  <owner>xr-dev@chromium.org</owner>
  <summary>The end state of a voice search request in VR.</summary>
</histogram>

<histogram name="VR.VoiceSearch.RecordAudioOsPermissionPromptChoice"
    enum="BooleanContinueChoice">
  <owner>xr-dev@chromium.org</owner>
  <summary>
    Chrome shows a prompt when the OS's record audio permission is needed for
    voice search. The prompt gives user two choices: CANCEL or CONTINUE. This
    records the user's selection.
  </summary>
</histogram>

<histogram name="VRAutopresentedWebVR" enum="Boolean">
  <obsolete>
    Deprecated as of 02/2019, VR DLAs are no longer supported.
  </obsolete>
  <owner>ymalik@chromium.org</owner>
  <summary>
    Whether we're auto-presenting the first time we enter WebVR mode.
  </summary>
</histogram>

<histogram name="VRDisplayPresentResult" enum="VRPresentationResult">
  <owner>billorr@chromium.org</owner>
  <summary>
    The result of calls to VRDisplay::requestPresent(). Reported twice per
    requestPresent() call, once to record the call, and once to record the
    result.
  </summary>
</histogram>

<histogram name="VRFreNotComplete" enum="BooleanHit">
  <owner>ymalik@chromium.org</owner>
  <summary>
    Whether the user had been through the FRE when Chrome is launched in VR
    mode.
  </summary>
</histogram>

<histogram name="VRRuntimeVersion" units="normalized version">
  <owner>tiborg@chromium.org</owner>
  <summary>The version of the runtime being used for VR.</summary>
</histogram>

<histogram name="VRSessionNavigationCount">
  <owner>billorr@chromium.org</owner>
  <summary>
    Count of navigations while in a VR session. Logged when a new disjoint
    session has begun, or when the session has ended in a non-continuable way.
  </summary>
</histogram>

<histogram name="VRSessionTime" units="ms">
  <owner>billorr@chromium.org</owner>
  <summary>
    The duration of the VR session. Logged when a new disjoint session has
    begun, or when the session has ended in a non-continuable way.
  </summary>
</histogram>

<histogram name="VRSessionTimeFromDLA" units="ms">
  <obsolete>
    Deprecated as of 02/2019, VR DLAs are no longer supported.
  </obsolete>
  <owner>ymalik@chromium.org</owner>
  <summary>
    The duration of a single VR session initiated via a deep-linked WebVR app.
    Logged when a new disjoint session has begun, or when the session has ended
    in a non-continuable way.
  </summary>
</histogram>

<histogram name="VRSessionVideoCount">
  <owner>billorr@chromium.org</owner>
  <summary>
    Number of videos watched in a VR session. Logged when a new disjoint session
    has begun, or when the session has ended in a non-continuable way.
  </summary>
</histogram>

<histogram name="VRSessionVideoTime" units="ms">
  <owner>billorr@chromium.org</owner>
  <summary>
    The duration of a single session spent watching video in VR. Logged when a
    new disjoint session has begun, or when the session has ended in a
    non-continuable way.
  </summary>
</histogram>

<histogram name="VRViewerType" enum="VRViewerType">
  <owner>billorr@chromium.org</owner>
  <summary>The type of headset being used for VR.</summary>
</histogram>

<histogram name="Wallet.ApiCallDuration.AcceptLegalDocuments" units="ms">
  <owner>estade@chromium.org</owner>
  <summary>
    Measures the time taken by Google Online Wallet server's accept legal
    document API call.
  </summary>
</histogram>

<histogram name="Wallet.ApiCallDuration.AuthenticateInstrument" units="ms">
  <owner>estade@chromium.org</owner>
  <summary>
    Measures the time taken by Google Online Wallet server's authenticate
    instrument API call.
  </summary>
</histogram>

<histogram name="Wallet.ApiCallDuration.GetFullWallet" units="ms">
  <owner>estade@chromium.org</owner>
  <summary>
    Measures the time taken by Google Online Wallet server's get full wallet API
    call.
  </summary>
</histogram>

<histogram name="Wallet.ApiCallDuration.GetWalletItems" units="ms">
  <owner>estade@chromium.org</owner>
  <summary>
    Measures the time taken by Google Online Wallet server's get wallet items
    API call.
  </summary>
</histogram>

<histogram name="Wallet.ApiCallDuration.SaveAddress" units="ms">
  <obsolete>
    Deprecated as of 7/2013, replaced by Wallet.ApiCallDuration.SaveToWallet.
  </obsolete>
  <owner>estade@chromium.org</owner>
  <summary>
    Measures the time taken by Google Online Wallet server's save address API
    call.
  </summary>
</histogram>

<histogram name="Wallet.ApiCallDuration.SaveInstrument" units="ms">
  <obsolete>
    Deprecated as of 7/2013, replaced by Wallet.ApiCallDuration.SaveToWallet.
  </obsolete>
  <owner>estade@chromium.org</owner>
  <summary>
    Measures the time taken by Google Online Wallet server's save instrument API
    call.
  </summary>
</histogram>

<histogram name="Wallet.ApiCallDuration.SaveInstrumentAndAddress" units="ms">
  <obsolete>
    Deprecated as of 7/2013, replaced by Wallet.ApiCallDuration.SaveToWallet.
  </obsolete>
  <owner>estade@chromium.org</owner>
  <summary>
    Measures the time taken by Google Online Wallet server's save instument and
    address API call.
  </summary>
</histogram>

<histogram name="Wallet.ApiCallDuration.SaveToWallet" units="ms">
  <owner>estade@chromium.org</owner>
  <summary>
    Measures the time taken by Google Online Wallet server's save to wallet API
    call.
  </summary>
</histogram>

<histogram name="Wallet.ApiCallDuration.SendStatus" units="ms">
  <owner>estade@chromium.org</owner>
  <summary>
    Measures the time taken by Google Online Wallet server's send status API
    call.
  </summary>
</histogram>

<histogram name="Wallet.ApiCallDuration.UnknownApiCall" units="ms">
  <owner>estade@chromium.org</owner>
  <summary>
    Measures the time taken by Google Online Wallet server's unknown API calls.
  </summary>
</histogram>

<histogram name="Wallet.ApiCallDuration.UpdateAddress" units="ms">
  <obsolete>
    Deprecated as of 7/2013, replaced by Wallet.ApiCallDuration.SaveToWallet.
  </obsolete>
  <owner>estade@chromium.org</owner>
  <summary>
    Measures the time taken by Google Online Wallet server's update address API
    call.
  </summary>
</histogram>

<histogram name="Wallet.ApiCallDuration.UpdateInstrument" units="ms">
  <obsolete>
    Deprecated as of 7/2013, replaced by Wallet.ApiCallDuration.SaveToWallet.
  </obsolete>
  <owner>estade@chromium.org</owner>
  <summary>
    Measures the time taken by Google Online Wallet server's update instument
    API call.
  </summary>
</histogram>

<histogram name="Wallet.MalformedResponse" enum="WalletApiCall">
  <owner>estade@chromium.org</owner>
  <summary>
    Counts the number of times each Wallet API failed due to being unable to
    parse the response.
  </summary>
</histogram>

<histogram name="Wallet.ResponseCode" enum="HttpResponseCode">
  <owner>estade@chromium.org</owner>
  <summary>HTTP response codes seen by Wallet client.</summary>
</histogram>

<histogram name="Web.CertVerifyAgreement" enum="WebCertVerifyAgreement">
  <obsolete>
    Deprecated 08/2016 because CertVerifier is not used for web view cert
    verification.
  </obsolete>
  <owner>eugenebut@chromium.org</owner>
  <summary>
    [iOS] Reports certificate verification mismatch between SecTrust API and
    CertVerifier. SecTrust API is used for making load/no-load decision and
    CertVerifier is used for getting the reason of verification failure. It is
    expected that mismatches will happen for those 2 approaches (e.g. SecTrust
    API considers cert as good, but CertVerifier considers same cert as bad).
    This metric helps to understand how common mismatches are.
  </summary>
</histogram>

<histogram name="Web.CurrentOriginEqualsLastCommittedOrigin"
    enum="BooleanEqual">
  <owner>eugenebut@chromium.org</owner>
  <summary>
    [iOS] Reports URL matches between the return value from the WebState's
    GetLastCommittedURL and GetCurrentURL methods. It is expected the origins
    will be equal to confirm that GetCurrentURL can now be replaced with
    GetLastCommittedURL. This will be called each time WebStateImpl::
    GetCurrentURL(URLVerificationTrustLevel* trust_level) is called, which is an
    old method of obtaining the url and trust level. The trust level was only
    relevant with UIWebView, so this method is only called from code which has
    not yet been updated since UIWebView was removed.
  </summary>
</histogram>

<histogram name="Web.CurrentURLEqualsLastCommittedURL" enum="BooleanEqual">
  <obsolete>
    Deprecated as of 9/2013, replaced by
    Web.CurrentOriginEqualsLastCommittedOrigin.
  </obsolete>
  <owner>michaeldo@chromium.org</owner>
  <summary>
    [iOS] Reports URL matches between the return value from the WebState's
    GetLastCommittedURL and GetCurrentURL methods. It is expected the values
    will be equal to confirm that GetCurrentURL can now be replaced with
    GetLastCommittedURL. This will be called each time WebStateImpl::
    GetCurrentURL(URLVerificationTrustLevel* trust_level) is called, which is an
    old method of obtaining the url and trust level. The trust level was only
    relevant with UIWebView, so this method is only called from code which has
    not yet been updated since UIWebView was removed.
  </summary>
</histogram>

<histogram name="WebApk.Install.AvailableSpace.Fail" units="MB">
  <owner>hanxi@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records the available space that can be used when installing a WebAPK from
    Google Play fails. The space recorded is the available space beyond the
    system's minimum free space threshold, with a range between -1000 and 1000
    MB. Negative values mean that there is less free space available than the
    system's minimum, by the given amount.
  </summary>
</histogram>

<histogram name="WebApk.Install.AvailableSpace.Success" units="MB">
  <obsolete>
    Deprecated 2017-09. As of M64, this is no longer recorded.
  </obsolete>
  <owner>hanxi@chromium.org</owner>
  <owner>ranj@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records the available space that can be used when installing a WebAPK from
    Google Play succeeds. The space recorded is the available space beyond the
    system's minimum free space threshold, with a range between -1000 and 1000
    MB. Negative values mean that there is less free space available than the
    system's minimum, by the given amount.
  </summary>
</histogram>

<histogram name="WebApk.Install.AvailableSpaceAfterFreeUpAll.Fail" units="MB">
  <obsolete>
    Deprecated in Chrome M69.
  </obsolete>
  <owner>hanxi@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records the available space that can be used when installing a WebAPK from
    Google Play fails after freeing up cache and unimportant storage. The space
    recorded is the available space beyond the system's minimum free space
    threshold, with a range between -1000 and 1000 MB. Negative values mean that
    there is less free space available than the system's minimum, by the given
    amount.
  </summary>
</histogram>

<histogram name="WebApk.Install.AvailableSpaceAfterFreeUpCache.Fail" units="MB">
  <owner>hanxi@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records the available space that can be used when installing a WebAPK from
    Google Play fails after freeing up cache. The space recorded is the
    available space beyond the system's minimum free space threshold, with a
    range between -1000 and 1000 MB. Negative values mean that there is less
    free space available than the system's minimum, by the given amount.
  </summary>
</histogram>

<histogram
    name="WebApk.Install.AvailableSpaceAfterFreeUpUnimportantStorage.Fail"
    units="MB">
  <obsolete>
    Deprecated in Chrome M69.
  </obsolete>
  <owner>hanxi@chromium.org</owner>
  <owner>ranj@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records the available space that can be used when installing a WebAPK from
    Google Play fails after freeing up unimportant storage. The space recorded
    is the available space beyond the system's minimum free space threshold,
    with a range between -1000 and 1000 MB. Negative values mean that there is
    less free space available than the system's minimum, by the given amount.
  </summary>
</histogram>

<histogram name="WebApk.Install.ChromeCacheSize.Fail" units="MB">
  <owner>hanxi@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records the Chrome cache size when installing a WebAPK from Google Play
    fails, with a range between 0 and 1000, rounded to the nearest 10MB.
  </summary>
</histogram>

<histogram name="WebApk.Install.ChromeUnimportantStorage.Fail" units="MB">
  <obsolete>
    Deprecated in Chrome M69.
  </obsolete>
  <owner>hanxi@chromium.org</owner>
  <owner>ranj@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records the Chrome unimportant storage size when installing a WebAPK from
    Google Play fails, with a range between 0 and 1000, rounded to the nearest
    10MB.
  </summary>
</histogram>

<histogram name="WebApk.Install.GooglePlayBindDuration" units="ms">
  <obsolete>
    Deprecated in Chrome M69.
  </obsolete>
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records the amount of time that it takes to bind to the play install service
    for WebAPK installs.
  </summary>
</histogram>

<histogram name="WebApk.Install.GooglePlayErrorCode"
    enum="WebApkInstallGooglePlayErrorCode">
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records the error code when installing a WebAPK from Google Play fails. See
    go/webapk-install-googleplayerrorcode.
  </summary>
</histogram>

<histogram name="WebApk.Install.GooglePlayInstallResult"
    enum="WebApkGooglePlayInstallResult">
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records whether installing a WebAPK from Google Play succeeded. If not,
    records the reason that the install failed.
  </summary>
</histogram>

<histogram name="WebApk.Install.GooglePlayInstallState"
    enum="WebApkGooglePlayInstallState">
  <obsolete>
    Deleted in M61.
  </obsolete>
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    On web app and WebAPK installation, records whether a WebAPK could be
    installed via the Google Play flow. If not, records why the WebAPK could not
    be installed via the Google Play flow (and a web app was added to the
    homescreen instead). Warning: This metric is recorded whenever a site is
    added to the homescreeen as a web app, not just for sites with a WebAPK
    compatible Web Manifest.
  </summary>
</histogram>

<histogram name="WebApk.Install.InfoBarShown" enum="WebApkInstallInfoBarShown">
  <obsolete>
    Deprecated 2017-08. As of M62, this is no longer recorded.
  </obsolete>
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    WebAPKs are PWAs wrapped in an Android apk, installed from an app banner or
    the add to homescreen menu item. This stat tracks whether the installation
    is triggered by an app banner or by the add to homescreen menu.
  </summary>
</histogram>

<histogram name="WebApk.Install.InstallDuration" units="ms">
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    How long it takes to install a WebAPK. The time is measured from the time
    that the user initiates the install to the time that the Open button is
    shown in the infobar. This metric is only recorded when install succeeds.
  </summary>
</histogram>

<histogram name="WebApk.Install.InstallEvent" enum="WebApkInstallEvent">
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    WebAPKs are PWAs wrapped in an Android apk, installed from an app banner or
    the add to homescreen menu item. This stat tracks the WebAPKs installation
    events, including whether the infobar is ignored, whether the infobar is
    dismissed by the user before or during the installation, as well as whether
    the installation was successful.
  </summary>
</histogram>

<histogram name="WebApk.Install.InstallSource" enum="WebApkInstallSource">
  <obsolete>
    No longer recorded as of M65.
  </obsolete>
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    WebAPKs are PWAs wrapped in an Android apk, installed from an app banner or
    the add to homescreen menu item. If the installation is via an app banner,
    user could either accept to install or dismiss the infobar; while via the
    add to homescreen menu, the installation will start automatically. This stat
    tracks the ways that user accepts to install a WebAPK.
  </summary>
</histogram>

<histogram name="WebApk.Install.RequestTokenDuration" units="ms">
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records the amount of time which has elapsed from the &quot;install infobar
    showing&quot; to the &quot;install request being sent to Google Play&quot;.
    This time includes the time that it takes to request the WebAPK token and
    the time that it takes to compute the hashes for the launcher icon and the
    badge icon.
  </summary>
</histogram>

<histogram name="WebApk.Install.SpaceStatus" enum="WebApkInstallSpaceStatus">
  <owner>hanxi@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Whether there is enough space to install a WebAPK. Recorded on each attempt
    to install a WebAPK.
  </summary>
</histogram>

<histogram name="WebApk.Install.UserAction" enum="WebApkUserAction">
  <obsolete>
    Deprecated 2017-08. As of M62, this is no longer recorded.
  </obsolete>
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    WebAPKs are PWAs wrapped in an Android apk, installed from an app banner or
    the add to homescreen menu item. If the user clicks the add to homescreen
    menu, and a WebAPK has been installed before, an infobar with an open button
    will show. The open button will also show on the infobar after a successful
    installation. This stat tracks whether user clicks the open button on the
    infobar or dismiss it.
  </summary>
</histogram>

<histogram name="WebApk.Launch.NetworkError" enum="NetErrorCodes">
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records the error codes when a WebAPK is launched with network failures.
  </summary>
</histogram>

<histogram name="WebApk.LaunchInterval" units="ms">
  <obsolete>
    Deprecated 2018-01. Replaced by WebApk.LaunchInterval2
  </obsolete>
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records the amount of time since the user last launched the WebAPK from the
    homescreen. Not recorded on first launch.
  </summary>
</histogram>

<histogram name="WebApk.LaunchInterval2" units="minutes">
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records the amount of time since the user last launched the WebAPK from the
    homescreen. Not recorded on first launch.
  </summary>
</histogram>

<histogram name="WebApk.Notification.Permission.Status"
    enum="BooleanWebApkNotificationPermission">
  <owner>hanxi@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    When a WebAPK receives a notification, log whether it has permission to
    display that notification.
  </summary>
</histogram>

<histogram name="WebApk.OpenFromMenu" enum="WebApkOpenResult">
  <obsolete>
    Deprecated in Chrome M69.
  </obsolete>
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <summary>
    When a user visits a PWA for which they have a WebAPK installed, the menu
    item changes from 'Add to homescreen' to 'Open WebAPK'. This stat tracks
    whether the opening of the WebAPK is successful when this menu item is
    clicked.
  </summary>
</histogram>

<histogram name="WebApk.Permission.ChromePermissionDenied"
    enum="WebApkPermissionType">
  <obsolete>
    Deprecated 2017-11. This UMA logs extra requests. Replaced by
    ChromePermissionDenied2.
  </obsolete>
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>ranj@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    The number of Android runtime permission requests that are denied for the
    WebAPK because Chrome does not have access to that permission.
  </summary>
</histogram>

<histogram name="WebApk.Permission.ChromePermissionDenied2"
    enum="WebApkPermissionType">
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    The number of Android runtime permission requests that are denied for the
    WebAPK because Chrome does not have access to that permission.
  </summary>
</histogram>

<histogram name="WebApk.Permission.ChromeWithoutPermission"
    enum="WebApkPermissionType">
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records the amount of requests of Android runtime permissions which haven't
    been granted to Chrome when Chrome is running in WebAPK runtime.
  </summary>
</histogram>

<histogram name="WebApk.Session.TotalDuration" units="ms">
  <obsolete>
    Deprecated 2018-08 in favour of WebApk.Session.TotalDuration2.
  </obsolete>
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    The length of a WebAPK session (launch/foregrounding to backgrounding) in
    milliseconds.
  </summary>
</histogram>

<histogram name="WebApk.Session.TotalDuration2" units="ms">
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    The length of a WebAPK session (launch/foregrounding to backgrounding) in
    milliseconds.
  </summary>
</histogram>

<histogram base="true" name="WebApk.ShellApkVersion">
  <obsolete>
    Deprecated 2018-08 in favour of WebApk.ShellApkVersion2.
  </obsolete>
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records WebAPK &quot;Shell APK version&quot; when the WebAPK is launched.
    The &quot;Shell APK version&quot; is documented in shell_apk_version.gni
  </summary>
</histogram>

<histogram base="true" name="WebApk.ShellApkVersion2">
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records WebAPK &quot;Shell APK version&quot; when the WebAPK is launched.
    The &quot;Shell APK version&quot; is documented in shell_apk_version.gni
  </summary>
</histogram>

<histogram name="WebApk.Startup.Cold.ShellLaunchToSplashscreenHidden"
    units="ms">
  <owner>mheikal@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Tracks the time to splashscreen hidden starting from the launch of the
    WebAPK shell (rather than from the launch of Chrome). The splashscreen is
    hidden after the first visually non-empty paint.

    This is recorded iff: - This is a cold startup of Chrome. - Chrome has not
    been sent to the background since launch. - There was no recents entry for
    Chrome (android replays intents if a recents entry exists), which otherwise
    adds noise/long-tail to this histogram.
  </summary>
</histogram>

<histogram name="WebApk.Startup.Cold.ShellLaunchToSplashscreenVisible"
    units="ms">
  <owner>mheikal@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Tracks the time to splashscreen visible starting from the launch of the
    WebAPK shell (rather than from the launch of Chrome). The splashscreen is
    shown during postInflationStartup.

    This is recorded iff: - This is a cold startup of Chrome. - Chrome has not
    been sent to the background since launch. - There was no recents entry for
    Chrome (android replays intents if a recents entry exists), which otherwise
    adds noise/long-tail to this histogram.
  </summary>
</histogram>

<histogram name="WebApk.Update.GooglePlayUpdateResult"
    enum="WebApkGooglePlayInstallResult">
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records whether updating a WebAPK from Google Play succeeded. If not,
    records the reason that the update failed.
  </summary>
</histogram>

<histogram name="WebApk.Update.NumStaleUpdateRequestFiles" units="files">
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records the number of zombie &quot;WebAPK update request&quot; files that
    the update process failed to cleanup. Recorded for all WebAPKs whenever a
    WebAPK or webapp is launched.
  </summary>
</histogram>

<histogram name="WebApk.Update.RequestQueued" enum="WebApkUpdateRequestQueued">
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records the number of times that a WebAPK update request was queued (i.e.
    waiting for the WebAPK to be backgrounded) before being sent to the server.
  </summary>
</histogram>

<histogram name="WebApk.Update.RequestSent" enum="WebApkUpdateRequestSent">
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records the time point when a request to update a WebAPK is sent to the
    WebAPK Server.
  </summary>
</histogram>

<histogram name="WebApk.WebApkService.BindSuccess" enum="BooleanSuccess">
  <owner>hanxi@chromium.org</owner>
  <owner>pkotwicz@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records whether Chrome can bind to a WebAPK's &quot;WebAPK service&quot;.
    Recorded each time that Chrome attempts to bind to a WebAPK service.
  </summary>
</histogram>

<histogram name="Webapp.AddToHomescreenDialog.Timeout" units="ms">
  <owner>dominickn@chromium.org</owner>
  <summary>
    Records the number of milliseconds that the add to homescreen dialog
    required to check installability eligibility.
  </summary>
</histogram>

<histogram base="true" name="WebApp.Engagement"
    enum="SiteEngagementServiceEngagementType" expires_after="2021-01-01">
  <owner>calamity@chromium.org</owner>
  <owner>mgiuca@chromium.org</owner>
  <owner>loyso@chromium.org</owner>
  <summary>
    The type of engagement (navigation, user input, etc.) which led to an
    accumulation in site engagement within a web app window or tab. Should be
    collected for a subset of SiteEngagementService.EngagementType, which is
    triggered for all browsing contexts. Recorded at the time of engagement
    accumulation (e.g., when mouse is clicked).
  </summary>
</histogram>

<histogram name="Webapp.Engagement.EngagementType"
    enum="SiteEngagementServiceEngagementType" expires_after="2019-03-07">
  <obsolete>
    Removed 3/2019 because only counts PWAs. Superseded by the WebApp.Engagement
    histogram with suffixes.
  </obsolete>
  <owner>calamity@chromium.org</owner>
  <owner>mgiuca@chromium.org</owner>
  <summary>
    The type of engagement (navigation, user input, etc.) which led to an
    accumulation in site engagement within a PWA app window. Should be collected
    for a subset of SiteEngagementService.EngagementType, which is triggered for
    all browsing contexts. Recorded at the time of engagement accumulation
    (e.g., when mouse is clicked).
  </summary>
</histogram>

<histogram name="WebApp.Icon.HttpStatusCodeClassOnCreate"
    enum="HttpStatusCodeClass" expires_after="2021-01-01">
  <owner>alancutter@chromium.org</owner>
  <owner>mgiuca@chromium.org</owner>
  <owner>loyso@chromium.org</owner>
  <summary>
    The HTTP status code class returned for each icon loaded during a WebApp's
    creation. See corresponding
    Extensions.BookmarkApp.Icon.HttpStatusCodeClassOnCreate histogram for legacy
    extension-based system.
  </summary>
</histogram>

<histogram name="Webapp.Install.DisplayMode" enum="WebAppDisplayMode">
  <owner>peter@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records the display mode (as defined in the Web App Manifest spec) at the
    install time of a WebApp (including WebApks).
  </summary>
</histogram>

<histogram name="Webapp.Install.InstallEvent" enum="WebappInstallSource">
  <owner>dominickn@chromium.org</owner>
  <owner>loyso@chromium.org</owner>
  <owner>calamity@chromium.org</owner>
  <summary>
    Records the mechanism and source from which a web app installation was
    triggered, regardless of whether the installation was successful.
  </summary>
</histogram>

<histogram name="Webapp.Install.InstallSource" enum="WebAppInstallSource">
  <obsolete>
    Deprecated 2018-01 in favour of Webapp.Install.InstallEvent.
  </obsolete>
  <owner>mcgreevy@chromium.org</owner>
  <summary>
    Records the mechanism by which a web app installation was triggered,
    regardless of whether the installation was successful.
  </summary>
</histogram>

<histogram name="Webapp.InstallabilityCheckStatus.AddToHomescreenTimeout"
    enum="AddToHomescreenTimeoutStatus">
  <owner>dominickn@chromium.org</owner>
  <summary>
    Records whether or not the check that a site is or isn't a Progressive Web
    App (PWA) completes before the add to homescreen dialog on Android forcibly
    times out and falls back to generating an icon.
  </summary>
</histogram>

<histogram name="Webapp.InstallabilityCheckStatus.MenuItemAddToHomescreen"
    enum="InstallabilityCheckStatus">
  <owner>dominickn@chromium.org</owner>
  <summary>
    Records whether or not the check that a site is or isn't a Progressive Web
    App (PWA) has completed when the user taps the add to homescreen menu item
    on Android.
  </summary>
</histogram>

<histogram name="Webapp.InstallabilityCheckStatus.MenuOpen"
    enum="InstallabilityCheckStatus">
  <owner>dominickn@chromium.org</owner>
  <summary>
    Records whether or not the check that a site is or isn't a Progressive Web
    App (PWA) has completed when the user opens the menu on Android.
  </summary>
</histogram>

<histogram name="Webapp.NavigationStatus" enum="BooleanSuccess">
  <owner>peter@chromium.org</owner>
  <owner>yfriedman@chromium.org</owner>
  <summary>
    Records whether the top-level navigations in standalone Web Apps result in
    presenting the web content or showing the error page.
  </summary>
</histogram>

<histogram name="Webapp.Splashscreen.BackgroundColor" enum="SplashColorStatus">
  <owner>mlamouri@chromium.org</owner>
  <summary>
    Records the status of the splashscreen's background color (default or
    custom).
  </summary>
</histogram>

<histogram name="Webapp.Splashscreen.Duration" units="ms">
  <owner>mlamouri@chromium.org</owner>
  <summary>Records the time during which the splashscreen was visible.</summary>
</histogram>

<histogram name="Webapp.Splashscreen.Hides" enum="SplashHidesReason">
  <owner>mlamouri@chromium.org</owner>
  <summary>Records the signal that was used to hide the splashscreen.</summary>
</histogram>

<histogram name="Webapp.Splashscreen.Icon.Size" units="dp">
  <owner>mlamouri@chromium.org</owner>
  <summary>
    Records the size of the icon used to construct the splashscreen in device
    pixels (ie. real size divided by device pixel density). This is only
    recording one dimension, the icon being square.
  </summary>
</histogram>

<histogram name="Webapp.Splashscreen.Icon.Type" enum="SplashIconType">
  <owner>mlamouri@chromium.org</owner>
  <summary>
    Records the origin of the icon used to construct the splashscreen.
  </summary>
</histogram>

<histogram name="Webapp.Splashscreen.ThemeColor" enum="SplashColorStatus">
  <owner>mlamouri@chromium.org</owner>
  <summary>
    Records the status of the splashscreen's theme color (default or custom).
  </summary>
</histogram>

<histogram name="Webapp.UninstallDialogAction"
    enum="WebappUninstallDialogAction" expires_after="2019-12-30">
  <owner>benwells@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <owner>loyso@chromium.org</owner>
  <summary>
    Records the user response to the dialog shown when uninstalling a web app.
  </summary>
</histogram>

<histogram name="WebAudio.AudioBuffer.Length" units="frames">
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The length (in frames) requested by createBuffer(). Recorded for every call
    to createBuffer(). Probably many (tens or hundreds) per page.
  </summary>
</histogram>

<histogram name="WebAudio.AudioBuffer.NumberOfChannels">
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The number of channels requested by createBuffer(). Recorded for every call
    to createBuffer(). Probably many (tens or hundreds) per page.
  </summary>
</histogram>

<histogram name="WebAudio.AudioBuffer.SampleRate" units="Hz">
  <obsolete>
    Replaced by SampleRate384kHz in Issue 644683 on 2016/10 due to higher
    supported sample rates.
  </obsolete>
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The sample rate (in Hz) requested by createBuffer(). Recorded for every call
    to createBuffer(). Probably many (tens or hundreds) per page.
  </summary>
</histogram>

<histogram name="WebAudio.AudioBuffer.SampleRate384kHz" units="Hz">
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The sample rate (in Hz) requested by createBuffer(). Recorded for every call
    to createBuffer(). Probably many (tens or hundreds) per page.
  </summary>
</histogram>

<histogram name="WebAudio.AudioBuffer.SampleRateRatio">
  <obsolete>
    Replaced by SampleRateRatio384kHz in Issue 644683 on 2016/10 due to higher
    supported sample rates.
  </obsolete>
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The ratio of the buffer sample rate from createBuffer() to the context
    sample rate. This indicates if the buffer needs to be resampled. Recorded
    for every call to createBuffer(). Probably many (tens or hundreds) per page.
  </summary>
</histogram>

<histogram name="WebAudio.AudioBuffer.SampleRateRatio384kHz">
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The ratio of the buffer sample rate from createBuffer() to the context
    sample rate. This indicates if the buffer needs to be resampled. Recorded
    for every call to createBuffer(). Probably many (tens or hundreds) per page.
  </summary>
</histogram>

<histogram name="WebAudio.AudioContext.HardwareSampleRate" units="Hz">
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The hardware sample rate (in Hz) used by an AudioContext. Recorded for every
    WebAudio AudioContext that is created; probably only one or two per page.
  </summary>
</histogram>

<histogram name="WebAudio.AudioContext.MaxChannelsAvailable">
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The maximum number of (hardware) channels available in an AudioContext.
    Recorded for every WebAudio AudioContext that is created; probably only one
    or two per page.
  </summary>
</histogram>

<histogram name="WebAudio.AudioDestination.CallbackBufferSize">
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The callback buffer size (in audio frames) for WebAudio rendering between
    the WebAudio graph and the audio device thread. This can differ from the
    value recommended by the audio hardware due to internal constraints in
    WebAudio. Recorded for every WebAudio AudioContext that is created.
  </summary>
</histogram>

<histogram name="WebAudio.AudioDestination.HardwareBufferSize">
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The buffer size (in audio frames) for WebAudio rendering recommended by the
    audio hardware. Recorded for every WebAudio AudioContext that is created.
  </summary>
</histogram>

<histogram name="WebAudio.AudioParam.ValueSetterConflictCount">
  <obsolete>
    Removed 02/2018 in Issue 764396. Information no longer needed or recorded.
  </obsolete>
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The number of times the AudioParam value setter was called that also
    conflicts with an ongoing AudioParam automation. Updated when the realtime
    AudioContext is closed.
  </summary>
</histogram>

<histogram name="WebAudio.AudioParam.ValueSetterConflictPercentage">
  <obsolete>
    Removed 02/2018 in Issue 764396. Information no longer needed or recorded.
  </obsolete>
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The percentage of number of calls to an AudioParam value setter that
    conflicts with an ongoing AudioParam automation to the total number of calls
    to the value setter. Updated once when an AudioContext is closed.
  </summary>
</histogram>

<histogram name="WebAudio.AudioParam.ValueSetterCount">
  <obsolete>
    Removed 02/2018 in Issue 764396. Information no longer needed or recorded.
  </obsolete>
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The number of times the AudioParam value setter was called per tab. Updated
    when the realtime AudioContext is closed.
  </summary>
</histogram>

<histogram name="WebAudio.Autoplay" enum="WebAudioAutoplayStatus"
    expires_after="2019-06-30">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The autoplay status of an AudioContext when destroyed. This include all
    types of frames. In order to know the value only for main frames, the
    .CrossOrigin values can be substracted.
  </summary>
</histogram>

<histogram name="WebAudio.Autoplay.CrossOrigin" enum="WebAudioAutoplayStatus"
    expires_after="2019-06-30">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The autoplay status of an AudioContext when destroyed in a cross-origin
    frame.
  </summary>
</histogram>

<histogram name="WebAudio.Autoplay.UnlockType"
    enum="WebAudioAutoplayUnlockType" expires_after="2019-06-30">
  <owner>mlamouri@chromium.org</owner>
  <owner>media-dev@chromium.org</owner>
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    Records how an AudioContext was unlocked (if it was). This is recorded when
    the AudioContext is destroyed.
  </summary>
</histogram>

<histogram name="WebAudio.BiquadFilter.Q.Highpass">
  <obsolete>
    Removed in Issue 774526 on 2017/10; statistics aren't needed anymore.
  </obsolete>
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The Q value (in 0.25 dB steps) used for a highpass BiquadFilter. Recorded
    each time the value is set for a highpass filter via the .value setter or
    the automation methods linearRampToValueAtTime, exponentialValueAtTime, and
    setValueAtTime.
  </summary>
</histogram>

<histogram name="WebAudio.BiquadFilter.Q.Lowpass">
  <obsolete>
    Removed in Issue 774526 on 2017/10; statistics aren't needed anymore.
  </obsolete>
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The Q value (in 0.25 dB steps) used for a lowpass BiquadFilter. Recorded
    each time the value is set for a lowpass filter via the .value setter or the
    automation methods linearRampToValueAtTime, exponentialValueAtTime, and
    setValueAtTime.
  </summary>
</histogram>

<histogram name="WebAudio.BiquadFilter.Type" enum="BiquadFilterType">
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The type of the BiquadFilterNode. Recorded each time the type is set. This
    recorded once (to lowpass) when a biquad filter is created and also recorded
    whenever the filter type changes due to user action or programatically. It
    is unlikely the type will change more than once.
  </summary>
</histogram>

<histogram name="WebAudio.IIRFilterNode.Order">
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The order of the WebAudio IIRFilterNode. The order is one less than the
    number of feedback coefficients used in the denominator of the IIRFilter
    transfer function. Recorded each time an IIRFilter is constructed.
  </summary>
</histogram>

<histogram name="WebAudio.OfflineAudioContext.ChannelCount">
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The number of channels specified for the offline audio context. Recorded for
    every offline context created. Probably only a few per page, but could be
    potentially much more (thousands).
  </summary>
</histogram>

<histogram name="WebAudio.OfflineAudioContext.Length" units="frames">
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The length (in frames) specified for the offline audio context. Recorded for
    every offline context created. Probably only a few per page, but could be
    potentially much more (thousands).
  </summary>
</histogram>

<histogram name="WebAudio.OfflineAudioContext.SampleRate" units="Hz">
  <obsolete>
    Replaced by SampleRate384kHz in Issue 644683 on 2016/10 due to higher
    supported sample rates.
  </obsolete>
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The sample rate (in Hz) specified for the offline audio context. Recorded
    for every offline context created. Probably only a few per page, but could
    be potentially much more (thousands).
  </summary>
</histogram>

<histogram name="WebAudio.OfflineAudioContext.SampleRate384kHz" units="Hz">
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The sample rate (in Hz) specified for the offline audio context. Recorded
    for every offline context created. Probably only a few per page, but could
    be potentially much more (thousands).
  </summary>
</histogram>

<histogram name="WebAudio.PannerNode.PanningModel" enum="PanningModelType">
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    The panning model for the PannerNode. Recorded once with the default value
    at creation and once again whenver it is changed. Once changed, it is
    unlikely to be changed again. If there are any PannerNodes created at all,
    then there is probably one for each source (AudioBufferSourceNode,
    OscillatorNode, or other source).
  </summary>
</histogram>

<histogram name="WebAudio.PushPullFIFO.UnderflowGlitches" enum="Boolean">
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    Captures if WebAudio caused glitches or not due to the FIFO underflow. It is
    recorded when PushPullFIFO is destroyed. (e.g. navigating away from the
    page.)
  </summary>
</histogram>

<histogram name="WebAudio.PushPullFIFO.UnderflowPercentage" units="%">
  <owner>rtoy@chromium.org</owner>
  <owner>hongchan@chromium.org</owner>
  <summary>
    Percentage of FIFO underflow happened due to the the missed deadline of
    WebAudio rendering engine. It is recorded when PushPullFIFO is destroyed.
    (e.g. navigating away from the page.)
  </summary>
</histogram>

<histogram name="WebAudio.UserGesture" enum="UserGestureRequirement">
  <obsolete>
    Deprecated 2016-09. As of M55, this is no longer recorded.
  </obsolete>
  <owner>mlamouri@chromium.org</owner>
  <summary>
    Records whether WebAudio had a user gesture requirement and whether it was
    fulfilled.
  </summary>
</histogram>

<histogram name="WebAuthentication.AttestationPromptResult"
    enum="WebAuthenticationAttestationPromptResult">
  <owner>agl@chromium.org</owner>
  <summary>
    Tracks events related to prompting users for permission to pass WebAuthn
    attestation information back to origins. &quot;Queried&quot; means that the
    embedder was queried for a decision. (Since such decisions can be resolved
    by enterprise policy, that doesn't imply that a user saw a permissions
    prompt in every case.) Then one of four things can happen: a timeout, a
    positive or negative resolution, or the request is abandoned. The latter
    case occurs when, for example, the tab is closed or the user navigates away.
  </summary>
</histogram>

<histogram name="WebAuthentication.CredentialRequestAllowCredentialsCount"
    units="credentials" expires_after="2019-12-31">
  <owner>kenrb@chromium.org</owner>
  <owner>kpaulhamus@chromium.org</owner>
  <summary>
    When a relying party is attempting to authenticate a user using the
    WebAuthentication API, this metric reports the number of valid credentials
    that the RP has registered for the user.
  </summary>
</histogram>

<histogram name="WebAuthentication.MakeCredentialExcludeCredentialsCount"
    units="credentials" expires_after="2019-12-31">
  <owner>kenrb@chromium.org</owner>
  <summary>
    When a relying party is attempting to register a credential for a new user
    using the WebAuthentication API, this metric reports the number of existing
    credentials already registered in order to prevent re-registration.
  </summary>
</histogram>

<histogram name="WebAuthentication.RelyingPartySecurityCheckFailure"
    enum="WebAuthenticationRelyingPartySecurityCheckFailure"
    expires_after="2019-12-31">
  <owner>kenrb@chromium.org</owner>
  <summary>
    Records failures associated with verifying the relying party origin when
    that relying party is attempting to make a credential or get an assertion
    using the WebAuthentication API. Failures include when the relying party's
    origin is opaque or non-secure, or when the caller-provided relying party ID
    or app ID is not valid for this origin.
  </summary>
</histogram>

<histogram name="WebAuthentication.U2FAttestationPromptResult"
    enum="WebAuthenticationU2FAttestationPromptResult">
  <owner>agl@chromium.org</owner>
  <summary>
    Tracks events related to prompting users for permission to pass U2F
    attestation information back to origins. &quot;Queried&quot; means that the
    embedder was queried for a decision. (Since such decisions can be resolved
    by enterprise policy, that doesn't imply that a user saw a permissions
    prompt in every case.) Then either a positive or negative result can happen.
    However, note some complications: a negative will be recorded when the tab
    is closed or the user navigates away, and a positive result will be recorded
    when the user accepts the permission prompt but the request has already
    timed out.
  </summary>
</histogram>

<histogram name="WebController.CertVerificationErrorsCacheHit"
    enum="BooleanCacheHit">
  <owner>eugenebut@chromium.org</owner>
  <summary>
    [iOS] Report cache hit/miss for WKWebView cert verification. WKWebView Web
    Controller has a cache of pending cert verification results to avoid extra
    verifications when presenting SSL interstitial. This metric helps to
    understand whether or not cache miss is possible.
  </summary>
</histogram>

<histogram name="WebController.EmptyNavigationManagerCausedByStopLoading"
    enum="Boolean">
  <owner>eugenebut@chromium.org</owner>
  <summary>
    [iOS] Chrome for iOS crashes because NavigationManager does not have any
    navigation items and visible navigation item is dereferenced
    (crbug.com/565457). The assumption is that crash occurs if pending load was
    stopped for a child window. This metric will prove or disprove that
    assumption.
  </summary>
</histogram>

<histogram name="WebController.ExternalURLRequestBlocking"
    enum="IOSExternalURLRequestStatus">
  <owner>mrefaat@chromium.org</owner>
  <summary>
    [iOS] Measures the proportion of external URL requests that originate from a
    subframe without any user interaction (e.g. an advertisement contains an
    iframe directed at the App Store).
  </summary>
</histogram>

<histogram
    name="WebController.StartProvisionalNavigationExitedWithEmptyNavigationManager"
    enum="BooleanHit">
  <obsolete>
    Deprecated 2017-02. This metric disproved the assumption mentioned in the
    summary and it is no longer needed.
  </obsolete>
  <owner>eugenebut@chromium.org</owner>
  <summary>
    Chrome for iOS crashes in |didCommitNavigation:| if Navigation Manager is
    empty. It's unclear how the app can get into this state and one assumption
    is that didStartProvisionalNavigation: does not add a pending navigation.
    This metric is logged when didStartProvisionalNavigation: fails to add a
    pending item.
  </summary>
</histogram>

<histogram name="WebController.WKWebViewHasCertForSecureConnection"
    enum="BooleanHasCert">
  <owner>eugenebut@google.com</owner>
  <summary>
    Whether or not WKWebView has provided a valid -certificateChain when loaded
    a page over a secure connection.
  </summary>
</histogram>

<histogram name="WebCore.Animation.CSSProperties" enum="MappedCSSProperties">
  <obsolete>
    This has been superseded by Blink.UseCounter.CSSProperties which does not
    count multiple times per page load. See https://crbug.com/458925.
  </obsolete>
  <owner>ajuma@chromium.org</owner>
  <summary>
    Counts the number of times each CSS property is animated. There is no limit
    on the number of times each property is counted per page view -- a property
    that is animated multiple times during a single page view is counted each
    time it animates.
  </summary>
</histogram>

<histogram name="WebCore.CanvasContextUsage" enum="CanvasContextUsage">
  <obsolete>
    Deprecated 10/2018 with Blink.Canvas.IsComposited,
    Blink.Canvas.ResourceProviderIsAccelerated,
    Blink.Canvas.ResourceProviderType and Blink.Canvas.2DLayerBridgeIsDeferred
  </obsolete>
  <owner>zmin@chromium.org</owner>
  <owner>junov@chromium.org</owner>
  <summary>
    The usage of Canvas 2D Context API. Logged when the particular API is used.
  </summary>
</histogram>

<histogram name="WebCore.DistillabilityUs" units="microseconds">
  <owner>wychen@chromium.org</owner>
  <summary>
    The time spent on collecting the statistics of the document in the main
    frame. These statistics would be used as features to classify whether the
    page is suitable for DOM distiller.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this metric to have an abnormal distribution. When considering
    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
    solution.
  </summary>
</histogram>

<histogram name="WebCore.Document.execCommand" enum="MappedEditingCommands">
  <owner>yoichio@chromium.org</owner>
  <summary>
    Counts the number of times each document.execCommand is executed. This
    doesn't count commands not supported by Blink.
  </summary>
</histogram>

<histogram name="WebCore.Editing.Commands" enum="MappedEditingCommands">
  <owner>yoichio@chromium.org</owner>
  <summary>
    Counts the number of times each Editor::Command::execute is called. This
    doesn't count commands not supported by Blink.
  </summary>
</histogram>

<histogram name="WebCore.FeatureObserver" enum="FeatureObserver">
  <obsolete>
    As of M57 this has been superseded by Blink.UseCounter.Features which fixes
    a number of issues. See https://crbug.com/676837.
  </obsolete>
  <owner>rbyers@chromium.org</owner>
  <summary>
    Count of how many page loads use various features. The PageVisits bucket is
    incremented for each page load, and the other buckets incremented at most
    once per PageVisit via the WebCore::UseCounter class.
  </summary>
</histogram>

<histogram name="WebCore.FeatureObserver.CSSProperties"
    enum="MappedCSSProperties">
  <obsolete>
    As of M57 this has been superseded by Blink.UseCounter.CSSProperties which
    fixes a number of issues. See https://crbug.com/676837.
  </obsolete>
  <owner>mikelawther@chromium.org</owner>
  <summary>
    Records usage of CSS properties used on a page, either statically or
    dynamically, from the time the page is initialised to when it is closed or
    navigated away from. Each property is counted at most once per page per
    view.
  </summary>
</histogram>

<histogram name="WebCore.FindInPage.ScopingTime">
  <owner>rakina@chromium.org</owner>
  <summary>
    Records how much time it takes for find-in-page scoping over the idle task
    deadline.
  </summary>
</histogram>

<histogram name="WebCore.Framebust" enum="FramebustPermissions">
  <obsolete>
    Deprecated in September 2018 for a version that also tracks if the frame is
    an ad frame.
  </obsolete>
  <owner>japhet@chromium.org</owner>
  <summary>
    Records instances of child frames navigating the top frame. Includes whether
    or not the navigation would have been permitted if not for our special case
    for 'framebusting', the practice of ensuring a given document is never
    displayed in a frame.
  </summary>
</histogram>

<histogram name="WebCore.Framebust.ClickThroughPosition"
    enum="ListItemPosition" expires_after="2020-01-30">
  <owner>japhet@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The position of the URL in the framebust UI list (desktop only) when it is
    clicked. Note that this UI surface is shared with the tab-under
    intervention, so elements in the list could come from either features. This
    metric will only be logged when a URL from the framebust (3p redirect)
    intervention is clicked.
  </summary>
</histogram>

<histogram name="WebCore.Framebust.InterventionOutcome"
    enum="FramebustInterventionOutcome" expires_after="2020-01-30">
  <owner>japhet@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The (android only) outcome of a particular framebust infobar. Recorded when
    the user either closes the infobar or declines the intervention by clicking
    the link.
  </summary>
</histogram>

<histogram name="WebCore.Framebust2" enum="FramebustPermissionsPlusAds">
  <owner>japhet@chromium.org</owner>
  <owner>jkarlin@chromium.org</owner>
  <summary>
    Records instances of child frames navigating the top frame. Includes whether
    or not the navigation would have been permitted if not for our special case
    for 'framebusting', the practice of ensuring a given document is never
    displayed in a frame. It also includes whether the frame that initiated the
    navigation was an ad frame or not.
  </summary>
</histogram>

<histogram name="WebCore.HTMLDocumentParser.PreloadScannerAppCacheDelayTime"
    units="microseconds" expires_after="2019-06-30">
  <owner>yoavweiss@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Time in which requests have been delayed after being discovered by the
    HTMLPreloadScanner, due to document element not being yet available, which
    is required for AppCache support. Recorded per document.
  </summary>
</histogram>

<histogram
    name="WebCore.HTMLDocumentParser.PreloadScannerAppCacheDelayTime.MainFrame"
    units="microseconds" expires_after="2019-06-30">
  <owner>yoavweiss@chromium.org</owner>
  <owner>csharrison@chromium.org</owner>
  <summary>
    Time in which requests have been delayed after being discovered by the
    HTMLPreloadScanner, due to document element not being yet available, which
    is required for AppCache support. Recorded per document, but applies only to
    main frames.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.BackingStore.ConsistencyError"
    enum="IDBLevelDBBackingStoreInternalErrorType">
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Methods that encountered consistency errors. Such errors probably point to a
    bug in our code.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.BackingStore.InternalError"
    enum="IDBLevelDBBackingStoreInternalErrorType">
  <obsolete>
    As of chrome 26, use {Consistency, Read, Write}Error instead.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Count of internal IndexedDB errors (data corruption, I/O errors, etc)
    encountered.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.BackingStore.OpenStatus"
    enum="IDBLevelDBBackingStoreOpenResult">
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Count of the different success and failure modes when opening an IndexedDB
    backing store - clean open, successful open with recovery, failed recovery,
    etc. Includes all hosts.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.BackingStore.OpenStatus.Docs"
    enum="IDBLevelDBBackingStoreOpenResult">
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Count of the different success and failure modes when opening an IndexedDB
    backing store - clean open, successful open with recovery, failed recovery,
    etc. Only for docs.google.com.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.BackingStore.OverlyLargeOriginLength"
    units="characters">
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Length of leveldb directories that cause paths to not fit in the filesystem,
    either because the individual component is too long or the overall path is
    larger than MAX_PATH.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.BackingStore.ReadError"
    enum="IDBLevelDBBackingStoreInternalErrorType">
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Methods that encountered leveldb errors while trying to read from disk.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.BackingStore.WriteError"
    enum="IDBLevelDBBackingStoreInternalErrorType">
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Methods that encountered leveldb errors while trying to write to disk.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.Context.ForceCloseReason"
    enum="IDBContextForcedCloseReason">
  <owner>cmumford@chromium.org</owner>
  <summary>The reason that a forced-close of a backing store occurred.</summary>
</histogram>

<histogram name="WebCore.IndexedDB.Database.OutstandingTransactionCount"
    units="transactions">
  <owner>jsbell@chromium.org</owner>
  <summary>
    Number of outstanding transactions (running, blocked) in database when a new
    transaction is created.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.DestroyCorruptBackingStoreStatus"
    enum="LevelDBStatus">
  <owner>cmumford@chromium.org</owner>
  <summary>
    Count of the results when attempting to destroy a corrupt Indexed DB backing
    store.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.FrontEndAPICalls"
    enum="IndexedDatabaseMethods">
  <obsolete>
    Deprecated as of July 2018.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Count total number of front end API calls of IndexedDB methods.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDB.CloseTime" units="ms">
  <owner>cmumford@chromium.org</owner>
  <summary>
    The time that it takes to close IndexedDB's LevelDB backing store.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDB.FreeDiskSpaceFailure"
    enum="LevelDBErrorCount">
  <obsolete>
    Deprecated 1/19. Metric never actually worked, as -1 / 1024 yields 0.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Count of how many times LevelDBDatabase got an error trying to check free
    disk space.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDB.OpenFailureFreeDiskSpace" units="Kb">
  <obsolete>
    Deprecated 1/19. Use Quota.AvailableDiskSpace instead.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Amount of free disk space on the partition/volume/etc where LevelDB failed
    to open.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDB.OpenSuccessFreeDiskSpace" units="Kb">
  <obsolete>
    Deprecated 1/19. Use Quota.AvailableDiskSpace instead.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Amount of free disk space on the partition/volume/etc where LevelDB was
    successfully opened.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDB.OpenTime" units="ms">
  <owner>cmumford@chromium.org</owner>
  <summary>
    The time that it takes to open IndexedDB's LevelDB backing store.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDB.PutTime" units="ms">
  <owner>cmumford@chromium.org</owner>
  <summary>
    The time that it takes to write the data IndexedDB to the LevelDB backing
    store for a put operation.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDB.Transaction.CommitTime" units="ms">
  <obsolete>
    Removed in M72.
  </obsolete>
  <owner>cmumford@chromium.org</owner>
  <summary>
    The time that it takes to commit an IndexedDB transaction to its LevelDB
    backing store.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDB.WriteTime" units="ms">
  <owner>cmumford@chromium.org</owner>
  <summary>
    The time that it takes to write data to an IndexedDB's LevelDB backing
    store.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDBOpenErrors" enum="LevelDBErrorTypes">
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Error classes returned by LevelDB when it failed to open a database.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDBOpenErrors.BFE"
    enum="PlatformFileError">
  <owner>cmumford@chromium.org</owner>
  <summary>
    Errors (base::File::Error) encountered by a single LevelDBEnv method when
    opening an IndexedDB instance.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDBOpenErrors.Corruption"
    enum="LevelDBCorruptionTypes">
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Types of corruption that LevelDB encounters when opening a database.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDBOpenErrors.EnvMethod"
    enum="LevelDBIOErrorMethods">
  <owner>dgrogan@chromium.org</owner>
  <summary>
    LevelDBEnv methods that generated IO errors when opening a database.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDBOpenErrors.Errno"
    enum="PopularOSErrno">
  <obsolete>
    Deprecated 2015-05. As of M43 use WebCore.IndexedDB.LevelDBOpenErrors.BFE.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Errno errors encountered by a single LevelDBEnv method when opening an
    IndexedDB instance.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDBOpenErrors.PFE"
    enum="PlatformFileError">
  <obsolete>
    Deprecated 2015-05. As of M43 use WebCore.IndexedDB.LevelDBOpenErrors.BFE.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>
    PlatformFileErrors encountered by a single LevelDBEnv method when opening an
    IndexedDB instance.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDBReadErrors" enum="LevelDBErrorTypes">
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Error classes returned by LevelDB when it failed to read a database.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDBReadErrors.BFE"
    enum="PlatformFileError">
  <owner>cmumford@chromium.org</owner>
  <summary>
    Errors (base::File::Error) encountered by a single LevelDBEnv method when
    reading from an IndexedDB instance.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDBReadErrors.Corruption"
    enum="LevelDBCorruptionTypes">
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Types of corruption that LevelDB encounters when reading a database.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDBReadErrors.EnvMethod"
    enum="LevelDBIOErrorMethods">
  <owner>dgrogan@chromium.org</owner>
  <summary>
    LevelDBEnv methods that generated IO errors when reading a database.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDBReadErrors.Errno"
    enum="PopularOSErrno">
  <obsolete>
    Deprecated 2015-05. As of M43 use WebCore.IndexedDB.LevelDBReadErrors.BFE.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Errno errors encountered by a single LevelDBEnv method when reading an
    IndexedDB instance.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDBReadErrors.PFE"
    enum="PlatformFileError">
  <obsolete>
    Deprecated 2015-05. As of M43 use WebCore.IndexedDB.LevelDBReadErrors.BFE.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>
    PlatformFileErrors encountered by a single LevelDBEnv method when opening an
    IndexedDB instance.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDBWriteErrors" enum="LevelDBErrorTypes">
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Error classes returned by LevelDB when it failed to write to a database.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDBWriteErrors.BFE"
    enum="PlatformFileError">
  <owner>cmumford@chromium.org</owner>
  <summary>
    Errors (base::File::Error) encountered by a single LevelDBEnv method when
    writing to an IndexedDB instance.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDBWriteErrors.Corruption"
    enum="LevelDBCorruptionTypes">
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Types of corruption returned by LevelDB when it failed to write to a
    database.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDBWriteErrors.EnvMethod"
    enum="LevelDBIOErrorMethods">
  <owner>dgrogan@chromium.org</owner>
  <summary>
    LevelDBEnv methods that generated IO errors when writing to a database.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDBWriteErrors.Errno"
    enum="PopularOSErrno">
  <obsolete>
    Deprecated 2015-05. As of M43 use WebCore.IndexedDB.LevelDBWriteErrors.BFE.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>
    Errno errors encountered by a single LevelDBEnv method when writing to an
    IndexedDB instance.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.LevelDBWriteErrors.PFE"
    enum="PlatformFileError">
  <obsolete>
    Deprecated 2015-05. As of M43 use WebCore.IndexedDB.LevelDBWriteErrors.BFE.
  </obsolete>
  <owner>dgrogan@chromium.org</owner>
  <summary>
    PlatformFileErrors encountered by a single LevelDBEnv method when writing to
    an IndexedDB instance.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.ObjectStore.IndexEntry.KeyType"
    enum="IDBKeyType">
  <owner>jsbell@chromium.org</owner>
  <summary>
    The type of key (number, string, etc.) used for an index entry for a record
    being newly stored or updated in an Indexed DB object store. For array keys,
    the types of sub-keys are not recorded.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.ObjectStore.Record.KeyType"
    enum="IDBKeyType">
  <owner>jsbell@chromium.org</owner>
  <summary>
    The type of key (number, string, etc.) used for a record being newly stored
    or updated in an Indexed DB object store. For array keys, the types of
    sub-keys are not recorded.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.OpenTime.Blocked" units="ms">
  <obsolete>
    Deprecated 2018-11. No longer needed.
  </obsolete>
  <owner>cmumford@chromium.org</owner>
  <summary>
    The delay between the receipt of the request to open an IndexedDB database
    and the firing of the blocked event.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.OpenTime.Error" units="ms">
  <obsolete>
    Deprecated 2018-11. No longer needed.
  </obsolete>
  <owner>cmumford@chromium.org</owner>
  <summary>
    The delay between the receipt of the request to open an IndexedDB database
    and the firing of the error event.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.OpenTime.Success" units="ms">
  <obsolete>
    Deprecated 2018-11. No longer needed.
  </obsolete>
  <owner>cmumford@chromium.org</owner>
  <summary>
    The delay between the receipt of the request to open an IndexedDB database
    and the firing of the success event.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.OpenTime.UpgradeNeeded" units="ms">
  <obsolete>
    Deprecated 2018-11. No longer needed.
  </obsolete>
  <owner>cmumford@chromium.org</owner>
  <summary>
    The delay between the receipt of the request to open an IndexedDB database
    and the firing of the upgradeneeded event.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.PutBlobsCount" units="blobs">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The number of blobs being saved in an IndexedDB object store 'put'
    operation. Recorded for every 'put' operation.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.PutBlobsTotalSize" units="KB">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The total size of the blobs being saved in an IndexedDB object store 'put'
    operation. Recorded for every 'put' operation, except when there are no
    attached blobs or a blob has an unknown size.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.PutKeySize" units="KB">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The size of the IndexedDB key used in an IndexedDB object store 'put'
    operation. Recorded for every 'put' operation.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.PutValueSize" units="KB">
  <obsolete>
    Replaced with WebCore.IndexedDB.PutValueSize2 on 6/2017
  </obsolete>
  <owner>dmurph@chromium.org</owner>
  <summary>
    The size of the IndexedDB value used in an IndexedDB object store 'put'
    operation. Recorded for every 'put' operation.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.PutValueSize2" units="KB">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The size of the IndexedDB value used in an IndexedDB object store 'put'
    operation. Recorded for every 'put' operation.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.Schema.Index.KeyPathType"
    enum="IDBKeyPathType">
  <owner>jsbell@chromium.org</owner>
  <summary>
    Records the 'keyPath' type (none, string, or array) during IDBObjectStore's
    createIndex operation. See http://www.w3.org/TR/IndexedDB/
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.Schema.Index.MultiEntry" enum="Boolean">
  <owner>jsbell@chromium.org</owner>
  <summary>
    Records the 'multiEntry' flag value during IDBObjectStore's createIndex
    operation. See http://www.w3.org/TR/IndexedDB/
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.Schema.Index.Unique" enum="Boolean">
  <owner>jsbell@chromium.org</owner>
  <summary>
    Records the 'unique' flag value during IDBObjectStore's createIndex
    operation. See http://www.w3.org/TR/IndexedDB/
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.Schema.ObjectStore.AutoIncrement"
    enum="Boolean">
  <owner>jsbell@chromium.org</owner>
  <summary>
    Records the 'autoIncrement' flag value during IDBDatabase's
    createObjectStore operation. See http://www.w3.org/TR/IndexedDB/
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.Schema.ObjectStore.KeyPathType"
    enum="IDBKeyPathType">
  <owner>jsbell@chromium.org</owner>
  <summary>
    Records the 'keyPath' type (none, string, or array) during IDBDatabase's
    createObjectStore operation. See http://www.w3.org/TR/IndexedDB/
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.SchemaV2HasBlobs" enum="Boolean">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Records if a v2 schema has blob keys in the database, which means the
    database is corrupt. These databases will eventually be wiped as corrupt.
    Recorded when the IndexedDB backing store for an origin is first opened,
    which happens when a IndexedDB database connection is opened or when
    database names are fetched. Note: The backing store stays alive for
    subsequent connections, and sticks around for a couple seconds after the
    last connection is closed. See WebCore.IndexedDB.SchemaV2HasBlobs.Docs for
    the Docs-only version.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.SchemaV2HasBlobs.Docs" enum="Boolean">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Records if a v2 schema has blob keys in the database, which means the
    database is corrupt. These databases will eventually be wiped as corrupt.
    Recorded when the IndexedDB backing store for an origin is first opened,
    which happens when a IndexedDB database connection is opened or when
    database names are fetched. Note: The backing store stays alive for
    subsequent connections, and sticks around for a couple seconds after the
    last connection is closed. Only for docs.google.com. Note that these samples
    will also be recorded in WebCore.IndexedDB.SchemaV2HasBlobs.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.SchemaVersion" units="version">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Records the schema version of the IndexedDB database read from disk.
    Recorded when the IndexedDB backing store for an origin is first opened,
    which happens when a IndexedDB database connection is opened or when
    database names are fetched. Note: The backing store stays alive for
    subsequent connections, and sticks around for a couple seconds after the
    last connection is closed. See WebCore.IndexedDB.SchemaVersion.Docs for the
    Docs-only version.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.SchemaVersion.Docs" units="version">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Records the schema version of the IndexedDB database read from disk.
    Recorded when the IndexedDB backing store for an origin is first opened,
    which happens when a IndexedDB database connection is opened or when
    database names are fetched. Note: The backing store stays alive for
    subsequent connections, and sticks around for a couple seconds after the
    last connection is closed. Only for docs.google.com. Note that these samples
    will also be recorded in WebCore.IndexedDB.SchemaVersion.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.TombstoneSweeper.DeletedTombstonesSize"
    units="bytes">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Records the total size of tombstones deleted by the IndexedDB Tombstone
    Sweeper. Recorded on the browser side (back end) when the sweeper has
    completed scanning and it is in the 'deletion' mode. See
    https://goo.gl/coKwA7.
  </summary>
</histogram>

<histogram
    name="WebCore.IndexedDB.TombstoneSweeper.DeletionCommitTime.Complete"
    units="ms">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Records the time it takes for the IndexedDB Tombstone Sweeper to commit
    tombstone deletions. Recorded on the browser side (back end) when the
    sweeper has completed a round of sweeping and, it's in 'deletion' mode, and
    it has tombstones to delete. See https://goo.gl/coKwA7.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.TombstoneSweeper.DeletionTotalTime.Complete"
    units="ms">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Records the time it takes for the IndexedDB Tombstone Sweeper to fully sweep
    the indexes. Recorded on the browser side (back end) when the sweeper has
    completed sweeping all indexes (so partial sweeps are not recorded) and it
    is in 'deletion' mode. See https://goo.gl/coKwA7.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.TombstoneSweeper.DeletionWriteError"
    units="LevelDBStatus">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Records when an error occurs during deletion of index tombstones by the
    IndexedDB Tombstone Sweeper. Recorded on the browser side (back end) when
    the sweeper has completed a round of sweeping and, it's in 'deletion' mode,
    and it has tombstones to delete. See https://goo.gl/coKwA7.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.TombstoneSweeper.IndexScanPercent"
    units="%/5">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Recorded on the browser side (back end) when the IndexedDB Tombstone Sweeper
    has completed scanning. Records the percentage of the indexes the scanner
    fully scanned before it was stopped. To reduce the number of buckets, the
    recorded value is the percentage divided by 5. See https://goo.gl/coKwA7.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.TombstoneSweeper.NumDeletedTombstones"
    units="Index Tombstones">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Records the number of tombstones deleted by the IndexedDB Tombstone Sweeper.
    Recorded on the browser side (back end) when the sweeper has completed
    scanning and it is in 'deletion' mode. See https://goo.gl/coKwA7.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.TombstoneSweeper.NumTombstones"
    units="Index Tombstones">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Records the number of tombstones encountered by the IndexedDB Tombstone
    Sweeper. Recorded on the browser side (back end) when the sweeper has
    completed scanning and it is in 'statistics' mode. See
    https://goo.gl/coKwA7.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.TombstoneSweeper.StatsTotalTime.Complete"
    units="ms">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Records the time it takes for the IndexedDB Tombstone Sweeper to fully scan
    the indexes. Recorded on the browser side (back end) when the sweeper has
    completed scanning all indexes (so partial scans are not recorded) and it is
    in 'statistics' mode. See https://goo.gl/coKwA7.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.TombstoneSweeper.SweepError"
    enum="LevelDBStatus">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Recorded on the browser side (back end) when the IndexedDB Tombstone Sweeper
    encounters an error while sweeping. See https://goo.gl/coKwA7.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.TombstoneSweeper.TombstonesSize"
    units="bytes">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Records the total size of tombstones encountered by the IndexedDB Tombstone
    Sweeper. Recorded on the browser side (back end) when the sweeper has
    completed scanning and it is in the 'statistics' mode. See
    https://goo.gl/coKwA7.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.Transaction.ReadOnly.SizeOnCommit"
    units="KB">
  <obsolete>
    Replaced with WebCore.IndexedDB.Transaction.ReadOnly.SizeOnCommit2 on 6/2017
  </obsolete>
  <owner>dmurph@chromium.org</owner>
  <summary>
    The total temporary size of an IndexedDB ReadOnly Transaction. Since this is
    a readonly transaction, the size should only be &gt;0 when the transaction
    is removing tombstone index keys. Recorded on transaction commit.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.Transaction.ReadOnly.SizeOnCommit2"
    units="KB">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The total temporary size of an IndexedDB ReadOnly Transaction. Since this is
    a readonly transaction, the size should only be &gt;0 when the transaction
    is removing tombstone index keys. Recorded on transaction commit.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.Transaction.ReadOnly.TimeActive" units="ms">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The time it takes for an IndexedDB ReadOnly Transaction to commit, starting
    from when it starts executing tasks (when it is scheduled). Recorded on
    transaction commit.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.Transaction.ReadWrite.SizeOnCommit"
    units="KB">
  <obsolete>
    Replaced with WebCore.IndexedDB.Transaction.ReadWrite.SizeOnCommit2 on
    6/2017
  </obsolete>
  <owner>dmurph@chromium.org</owner>
  <summary>
    The total temporary size of an IndexedDB ReadWrite Transaction. This is the
    memory that is temporarily stored before writing to disk. Recorded on
    transaction commit.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.Transaction.ReadWrite.SizeOnCommit2"
    units="KB">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The total temporary size of an IndexedDB ReadWrite Transaction. This is the
    memory that is temporarily stored before writing to disk. Recorded on
    transaction commit.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.Transaction.ReadWrite.TimeActive" units="ms">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The time it takes for an IndexedDB ReadWrite Transaction to commit, starting
    from when it starts executing tasks (when it is scheduled). Recorded on
    transaction commit.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.Transaction.VersionChange.SizeOnCommit"
    units="KB">
  <obsolete>
    Replaced with WebCore.IndexedDB.Transaction.VersionChange.SizeOnCommit2 on
    6/2017
  </obsolete>
  <owner>dmurph@chromium.org</owner>
  <summary>
    The total temporary size of an IndexedDB VersionChange Transaction. This is
    the memory that is temporarily stored before writing to disk. Version change
    transactions happen when creating a database or updating a current database
    schema. Recorded on transaction commit.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.Transaction.VersionChange.SizeOnCommit2"
    units="KB">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The total temporary size of an IndexedDB VersionChange Transaction. This is
    the memory that is temporarily stored before writing to disk. Version change
    transactions happen when creating a database or updating a current database
    schema. Recorded on transaction commit.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.Transaction.VersionChange.TimeActive"
    units="ms">
  <owner>dmurph@chromium.org</owner>
  <summary>
    The time it takes for an IndexedDB VersionChange Transaction to commit,
    starting from when it starts executing tasks (when it is scheduled). Version
    change transactions happen when creating a database or updating a current
    database schema. Recorded on transaction commit.
  </summary>
</histogram>

<histogram name="WebCore.IndexedDB.TransactionAbortReason" enum="IDBException">
  <owner>dmurph@chromium.org</owner>
  <summary>
    Recorded on the browser side (back end) when an IndexedDB transaction is
    aborted, specifically recording the reason for the abort. This can be
    triggered by javascript code on the renderer, errors or force closes on the
    backend, or by the transaction timeout timer.
  </summary>
</histogram>

<histogram name="WebCore.PreloadDelayMs" units="ms">
  <obsolete>
    Deprecated, preloads are issued on the main thread now, so this is less
    useful.
  </obsolete>
  <owner>csharrison@chromium.org</owner>
  <summary>
    The delay between when the preload scanner discovers a resource on the
    parser thread and when the preload request is issued on the main thread.
  </summary>
</histogram>

<histogram name="WebCore.ResourceFetcher.ActionUponResourceRequest"
    enum="ActionUponResourceRequest">
  <owner>clamy@chromium.org</owner>
  <summary>
    The resulting action (e.g. load resource, use resource from in-memory
    cache...) upon a resource request.
  </summary>
</histogram>

<histogram name="WebCore.ResourceFetcher.HitCount">
  <obsolete>
    Deprecated April 2017.
  </obsolete>
  <owner>clamy@chromium.org</owner>
  <summary>
    Number of dead resources found in the memory cache over the lifetime of the
    ResourceFetcher.
  </summary>
</histogram>

<histogram name="WebCore.ResourceFetcher.LoadCount">
  <obsolete>
    Deprecated April 2017.
  </obsolete>
  <owner>clamy@chromium.org</owner>
  <summary>
    Number of resources that needed to be loaded by the ResourceFetcher over its
    lifetime.
  </summary>
</histogram>

<histogram name="WebCore.ResourceFetcher.ResourceHasClientUponCacheHit"
    enum="ResourceHasClient">
  <owner>clamy@chromium.org</owner>
  <summary>
    Whether the resource in the cache is being used by at least one client (live
    resource) or not (dead resource) upon a cache hit.
  </summary>
</histogram>

<histogram name="WebCore.ResourceFetcher.ResourceTypeUponCacheHit"
    enum="ResourceType">
  <obsolete>
    This metric has been not recorded at least since 2016/01. The displayed enum
    labels might be unreliable because C++ enum values of blink::Resource::Type
    have been changed over time.
  </obsolete>
  <owner>clamy@chromium.org</owner>
  <summary>
    The type of the resource (e.g. image, script...) upon a cache hit.
  </summary>
</histogram>

<histogram name="WebCore.ResourceFetcher.RevalidateCount">
  <obsolete>
    Deprecated April 2017.
  </obsolete>
  <owner>clamy@chromium.org</owner>
  <summary>
    Number of dead resources that needed to be revalidated by the
    ResourceFetcher over its lifetime.
  </summary>
</histogram>

<histogram name="WebCore.ScriptedIdleTaskController.IdleCallbackDeadline"
    units="ms">
  <obsolete>
    Deprecated November 2017.
  </obsolete>
  <owner>rmcilroy@chromium.org</owner>
  <summary>
    The amount of time allotted to a requestIdleCallback callback, i.e., the
    difference between the time when it is called and when its deadline expires.
  </summary>
</histogram>

<histogram name="WebCore.ScriptedIdleTaskController.IdleCallbackOverrun"
    units="ms">
  <owner>rmcilroy@chromium.org</owner>
  <summary>
    The amount of time by which a requestIdleCallback callback overran its
    deadline. Callbacks which don't overrun their deadline will report an
    overrun of 0.
  </summary>
</histogram>

<histogram name="WebCore.Scripts.Async.NotStreamingReason"
    enum="NotStreamingReason">
  <owner>marja@chromium.org</owner>
  <summary>Reason for not streaming an async script.</summary>
</histogram>

<histogram name="WebCore.Scripts.Async.StartedStreaming" enum="BooleanStreamed">
  <owner>marja@chromium.org</owner>
  <summary>Whether an async script was streamed or not.</summary>
</histogram>

<histogram name="WebCore.Scripts.Deferred.NotStreamingReason"
    enum="NotStreamingReason">
  <owner>marja@chromium.org</owner>
  <summary>Reason for not streaming a deferred script.</summary>
</histogram>

<histogram name="WebCore.Scripts.Deferred.StartedStreaming"
    enum="BooleanStreamed">
  <owner>marja@chromium.org</owner>
  <summary>Whether a deferred script was streamed or not.</summary>
</histogram>

<histogram name="WebCore.Scripts.Other.NotStreamingReason"
    enum="NotStreamingReason">
  <owner>rmcilroy@chromium.org</owner>
  <summary>
    Reason for not streaming an other (not async, deferred or parser blocking)
    script.
  </summary>
</histogram>

<histogram name="WebCore.Scripts.Other.StartedStreaming" enum="BooleanStreamed">
  <owner>rmcilroy@chromium.org</owner>
  <summary>
    Whether an other (not async, deferred or parser blocking) script was
    streamed or not.
  </summary>
</histogram>

<histogram name="WebCore.Scripts.ParsingBlocking.AlreadyLoaded"
    enum="BooleanLoaded">
  <obsolete>
    Deprecated as this data was needed for streaming investigations, no longer
    needed.
  </obsolete>
  <owner>marja@chromium.org</owner>
  <summary>
    Whether a parsing blocking script was already preloaded from the net or the
    cache by the time it was needed.
  </summary>
</histogram>

<histogram name="WebCore.Scripts.ParsingBlocking.NotStreamingReason"
    enum="NotStreamingReason">
  <owner>marja@chromium.org</owner>
  <summary>Reason for not streaming a parsing blocking script.</summary>
</histogram>

<histogram name="WebCore.Scripts.ParsingBlocking.StartedStreaming"
    enum="BooleanStreamed">
  <owner>marja@chromium.org</owner>
  <summary>Whether a parsing blocking script was streamed or not.</summary>
</histogram>

<histogram name="WebCore.Scripts.ParsingBlocking.TimeBetweenLoadedAndCompiled"
    units="ms">
  <obsolete>
    Deprecated as this data was needed for streaming investigations, no longer
    needed.
  </obsolete>
  <owner>marja@chromium.org</owner>
  <summary>
    Time between the events &quot;script is loaded&quot; and &quot;script is
    compiled&quot; for parsing blocking scripts.
  </summary>
</histogram>

<histogram name="WebCore.SpellChecker.RequestInterval" units="ms">
  <owner>xiaochengh@chromium.org</owner>
  <summary>
    The amount of time between consecutive spellcheck requests made by Blink,
    with the exception that requests made simultaneously checking different
    parts of the same editing host count as only one request.
  </summary>
</histogram>

<histogram name="WebCore.UseCounter_TEST.CSSProperties"
    enum="MappedCSSProperties">
  <obsolete>
    Temporary histogram replaced by Blink.UseCounter.CSSProperties.
  </obsolete>
  <owner>rbyers@chromium.org</owner>
</histogram>

<histogram name="WebCore.UseCounter_TEST.Features" enum="FeatureObserver">
  <obsolete>
    Temporary histogram replaced by Blink.UseCounter.Features.
  </obsolete>
  <owner>rbyers@chromium.org</owner>
</histogram>

<histogram name="WebCore.UseCounter_TEST.SVGImage.CSSProperties"
    enum="MappedCSSProperties">
  <obsolete>
    Temporary histogram replaced by Blink.UseCounter.SVGImage.CSSProperties.
  </obsolete>
  <owner>rbyers@chromium.org</owner>
</histogram>

<histogram name="WebCore.UseCounter_TEST.SVGImage.Features"
    enum="FeatureObserver">
  <obsolete>
    Temporary histogram replaced by Blink.UseCounter.SVGImage.Features.
  </obsolete>
  <owner>rbyers@chromium.org</owner>
</histogram>

<histogram name="WebCore.V8DOMWindowShell.createContext.IsolatedWorld"
    units="ms">
  <obsolete>
    Deprecated 05/2013, we no longer have the code that uses this metric.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Duration of time taken to create a V8 Context for an isolated world.
  </summary>
</histogram>

<histogram name="WebCore.V8DOMWindowShell.createContext.MainWorld" units="ms">
  <obsolete>
    Deprecated 05/2013, we no longer have the code that uses this metric.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Duration of time taken to create a V8 Context for the main world.
  </summary>
</histogram>

<histogram name="WebCore.WebSocket.BinaryTypeChangesAfterOpen">
  <obsolete>
    Deprecate 2017-06, as we've collected enough data to discuss. (see issue
    584616).
  </obsolete>
  <owner>yhirano@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    Count the number of changes to WebSocket.binaryType after the connection
    opened, per connection. Assignments that match the existing binaryType are
    not counted. This is recorded after WebSocket close, whether explicit or due
    to error or navigation. It is not recorded if the render process is
    destroyed before the WebSocket is closed.
  </summary>
</histogram>

<histogram name="WebCore.WebSocket.HandshakeResult"
    enum="WebSocketHandshakeResult">
  <obsolete>
    Deprecated 2014-06 when we replaced the WebSocket implementation (see issue
    226931).
  </obsolete>
  <owner>yhirano@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    Count the number of WebSocket handshake for each result. Use this histogram
    as a baseline for investigating feature usage counters.
  </summary>
</histogram>

<histogram name="WebCore.WebSocket.MessageSize.Receive" units="bytes">
  <owner>yhirano@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    The sizes of binary WebSocket messages received, broken down by type. One
    entry per message. Clamped to 100 MB.
  </summary>
</histogram>

<histogram name="WebCore.WebSocket.MessageSize.Send" units="bytes">
  <owner>yhirano@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    The sizes of binary WebSocket messages sent, broken down by type. One entry
    per message. Clamped to 100 MB.
  </summary>
</histogram>

<histogram name="WebCore.WebSocket.PerMessageDeflateContextTakeOverMode"
    enum="WebSocketPerMessageDeflateContextTakeOverMode">
  <obsolete>
    Deprecated 2014-06 when we replaced the WebSocket implementation (see issue
    226931).
  </obsolete>
  <owner>yhirano@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    Count the number of WebSockets that accepted permessage-deflate extension
    for each context take over mode. Used by the old Blink-based WebSocket
    implementation.
  </summary>
</histogram>

<histogram name="WebCore.WebSocket.ReceiveType" enum="WebSocketReceiveType">
  <owner>yhirano@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    Count the number of messages for each message type and set binary type.
  </summary>
</histogram>

<histogram name="WebCore.WebSocket.SendType" enum="WebSocketSendType">
  <owner>yhirano@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    Count the number of send() method calls on WebSockets for each argument
    type.
  </summary>
</histogram>

<histogram name="WebCore.XHR.send.ArrayBufferOrView"
    enum="XMLHttpRequestSendArrayBufferOrView">
  <obsolete>
    Deprecated as of 7/2014. This histogram was used to determine when it would
    be ok to remove the deprecated XMLHttpRequest.send(ArrayBuffer) overload.
    The support for ArrayBuffer was un-deprecated in the WHATWG spec for XHR,
    and subsequently un-deprecated in Blink.
  </obsolete>
  <owner>costan@gmail.com</owner>
  <summary>
    Count the number of XHR.send() calls for each argument type to see when we
    can deprecate the ArrayBuffer type support.
  </summary>
</histogram>

<histogram name="WebFont.BlankTextShownTime" units="ms">
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    A histogram tracking the time we spent showing blank text because a web font
    wasn't available by the time we needed it. Measured once per @font-face that
    ended up showing blank text.
  </summary>
</histogram>

<histogram name="WebFont.CacheHit" enum="WebFontCacheHit">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Recorded upon web fonts load. Counts the number of times web font is loaded
    from cache (disk cache or memory cache), fetched over network, or served
    from data URL.
  </summary>
</histogram>

<histogram name="WebFont.CORSSuccess" enum="BooleanSuccess">
  <owner>bashi@chromium.org</owner>
  <owner>kenjibaheux@chromium.org</owner>
  <summary>The success or failure of web fonts CORS-enabled fetching.</summary>
</histogram>

<histogram name="WebFont.DecodeSpeed" units="KB/s">
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Uncompressed font image size divided by the duration of time OTS takes to
    decode the font image, in kilobytes per second.
  </summary>
</histogram>

<histogram name="WebFont.DiskCache.EntryAge.Evict" units="hours">
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Recorded upon an eviction of a cache entry for a font in Google Fonts.
    Records the age of the cache entry.
  </summary>
</histogram>

<histogram name="WebFont.DiskCache.EntryAge.Hit" units="hours">
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Recorded upon a cache hit for a font in Google Fonts. Records the age of the
    cache entry.
  </summary>
</histogram>

<histogram name="WebFont.DiskCache.ReuseCount.Evict">
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    When a cache entry for a font in Google Fonts is evicted, records the reuse
    count of the cache entry.
  </summary>
</histogram>

<histogram name="WebFont.DiskCache.ReuseCount.Hit">
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Recorded upon a cache hit for a font in Google Fonts. Records the reuse
    count of the cache entry.
  </summary>
</histogram>

<histogram name="WebFont.DiskCacheHit" enum="WebFontDiskCacheHit">
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Whether the font was in the cache or not. &quot;Previously in the
    cache&quot; means there was an evicted entry for the font in the cache.
    Recorded upon a disk cache query for a font in Google Fonts.
  </summary>
</histogram>

<histogram name="WebFont.DownloadTime.0.Under10KB" units="ms">
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The time it takes for a webfont download to finish, for webfonts of under
    10KB.
  </summary>
</histogram>

<histogram name="WebFont.DownloadTime.1.10KBTo50KB" units="ms">
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The time it takes for a webfont download to finish, for webfonts of
    10KB-50KB.
  </summary>
</histogram>

<histogram name="WebFont.DownloadTime.2.50KBTo100KB" units="ms">
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The time it takes for a webfont download to finish, for webfonts of
    50KB-100KB.
  </summary>
</histogram>

<histogram name="WebFont.DownloadTime.3.100KBTo1MB" units="ms">
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The time it takes for a webfont download to finish, for webfonts of
    100KB-1MB.
  </summary>
</histogram>

<histogram name="WebFont.DownloadTime.4.Over1MB" units="ms">
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The time it takes for a webfont download to finish, for webfonts of over
    1MB.
  </summary>
</histogram>

<histogram name="WebFont.DownloadTime.LoadError" units="ms">
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The time taken for a webfont download that failed. Includes aborted
    requests.
  </summary>
</histogram>

<histogram name="WebFont.FontDisplayValue" enum="FontDisplayValue">
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The value of font-display @font-face descriptor. Counted only when
    explicitly specified in the @font-face rule.
  </summary>
</histogram>

<histogram name="WebFont.HadBlankText" enum="BooleanHadBlankText">
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    This metrics is logged when a page that use web fonts is loaded. The value
    is whether we had to wait on at least one web font and ended up showing
    blank text, or not.
  </summary>
</histogram>

<histogram name="WebFont.InterventionResult" enum="WebFontInterventionResult">
  <obsolete>
    Deprecated 10/2017. Related field trial has finished rolling out.
  </obsolete>
  <owner>toyoshim@chromium.org</owner>
  <owner>kenjibaheux@chromium.org</owner>
  <summary>
    For each WebFont load attempt, records whether User Agent Intervention was
    triggered, and whether the request (would have) timed out or not. The
    intervention takes adaptive behaviors to handle loading timeouts to improve
    user experiences on slow networks.
  </summary>
</histogram>

<histogram name="WebFont.InterventionResult.MissedCache"
    enum="WebFontInterventionResult">
  <obsolete>
    Deprecated 10/2017. Related field trial has finished rolling out.
  </obsolete>
  <owner>toyoshim@chromium.org</owner>
  <owner>kenjibaheux@chromium.org</owner>
  <summary>
    Like InterventionResult, this records whether User Agent Intervention was
    triggered, and whether the request (would have) timed out or not. But this
    version records only when data actually comes from network, not from disk or
    memory cache, and is not provided in a data URL format.
  </summary>
</histogram>

<histogram name="WebFont.LayoutLatency" units="ms">
  <obsolete>
    Renamed to WebFont.StyleRecalcToDownloadLatency for clarity.
  </obsolete>
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The time from when the webfont was referenced by a calculated style for the
    first time to the start of the font download.
  </summary>
</histogram>

<histogram name="WebFont.LoadLimitOnDiskCacheMiss" enum="WebFontLoadLimitState">
  <owner>ksakamoto@chromium.org</owner>
  <owner>shaochuan@chromium.org</owner>
  <owner>toyoshim@chromium.org</owner>
  <summary>
    The load limit state when the first disk-cache-only request fails by cache
    miss, if WebFonts cache-aware timeout adaptation is enabled and applicable.
  </summary>
</histogram>

<histogram name="WebFont.LoadTime.0.Under10KB" units="ms">
  <obsolete>
    Deprecated as of 8/2013, replaced by WebFont.DownloadTime.0.Under10KB.
  </obsolete>
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The time it takes for a webfont download to finish, for webfonts of under
    10KB.
  </summary>
</histogram>

<histogram name="WebFont.LoadTime.1.10KBTo50KB" units="ms">
  <obsolete>
    Deprecated as of 8/2013, replaced by WebFont.DownloadTime.1.10KBTo50KB.
  </obsolete>
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The time it takes for a webfont download to finish, for webfonts of
    10KB-50KB.
  </summary>
</histogram>

<histogram name="WebFont.LoadTime.2.50KBTo100KB" units="ms">
  <obsolete>
    Deprecated as of 8/2013, replaced by WebFont.DownloadTime.2.50KBTo100KB.
  </obsolete>
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The time it takes for a webfont download to finish, for webfonts of
    50KB-100KB.
  </summary>
</histogram>

<histogram name="WebFont.LoadTime.3.100KBTo1MB" units="ms">
  <obsolete>
    Deprecated as of 8/2013, replaced by WebFont.DownloadTime.3.100KBTo1MB.
  </obsolete>
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The time it takes for a webfont download to finish, for webfonts of
    100KB-1MB.
  </summary>
</histogram>

<histogram name="WebFont.LoadTime.4.Over1MB" units="ms">
  <obsolete>
    Deprecated as of 8/2013, replaced by WebFont.DownloadTime.4.Over1MB.
  </obsolete>
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The time it takes for a webfont download to finish, for webfonts of over
    1MB.
  </summary>
</histogram>

<histogram name="WebFont.LoadTime.LoadError" units="ms">
  <obsolete>
    Deprecated as of 8/2013, replaced by WebFont.DownloadTime.LoadError.
  </obsolete>
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The time taken for a webfont download that failed. Includes aborted
    requests.
  </summary>
</histogram>

<histogram name="WebFont.LocalFontUsed" enum="BooleanUsage">
  <owner>hajimehoshi@chromium.org</owner>
  <owner>kenjibaheux@chromium.org</owner>
  <owner>kouhei@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    Whether a locallly installed font is actually used when @font-face had local
    sources.
  </summary>
</histogram>

<histogram name="WebFont.PackageFormat" enum="WebFontPackageFormat">
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The packaging format of the font file (e.g. SFNT, WOFF ...) upon a webfont
    load.
  </summary>
</histogram>

<histogram name="WebFont.Resource.StyleRecalcToDownloadLatency" units="ms">
  <obsolete>
    Deprecated 11/2013. No longer tracked.
  </obsolete>
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The time from when the webfont was referenced by a calculated style for the
    first time to the start of the font download. Recorded at most once for each
    FontResource object (not recorded if the font is retrieved from the memory
    cache).
  </summary>
</histogram>

<histogram name="WebFont.Resource.UsageType" enum="WebFontUsageType">
  <obsolete>
    Deprecated 11/2013. No longer tracked.
  </obsolete>
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    For each webfont, this records (a) if the font was 'styled', i.e. referenced
    by a calculated style for a RenderText before the font data was used, and
    (b) if the font was actually used or not, i.e. the renderer requested the
    font data or not. (A Font can be used without being styled, for example when
    drawn by a Canvas 2D Context.) This is recorded upon a download request of a
    webfont, or destruction of a FontResource object. Recorded at most once for
    each FontResource object in the renderer's memory cahce.
  </summary>
</histogram>

<histogram name="WebFont.StyleRecalcToDownloadLatency" units="ms">
  <obsolete>
    Deprecated as of 9/2013, replaced by
    WebFont.Resource.StyleRecalcToDownloadLatency.
  </obsolete>
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The time from when the webfont was referenced by a calculated style for the
    first time to the start of the font download.
  </summary>
</histogram>

<histogram name="WebFont.UsageType" enum="WebFontUsageType">
  <obsolete>
    Deprecated as of 9/2013, replaced by WebFont.Resource.UsageType.
  </obsolete>
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    For each webfont, this records (a) if the font was 'styled', i.e. referenced
    by a calculated style for a RenderText before the font data was used, and
    (b) if the font was actually used or not, i.e. the renderer requested the
    font data or not. (A Font can be used without being styled, for example when
    drawn by a Canvas 2D Context.) This is recorded upon a download request of a
    webfont, or destruction of a CSSFontFaceSource object. Recorded at most once
    for each url() source of @font-face CSS rule.
  </summary>
</histogram>

<histogram name="WebFont.WebFontsInPage">
  <owner>kenjibaheux@chromium.org</owner>
  <owner>ksakamoto@chromium.org</owner>
  <summary>
    The number of webfonts used in a page. This is recorded when the first
    layout is done, and so will not count webfonts dynamically loaded by
    scripts.
  </summary>
</histogram>

<histogram name="WebHistory.LocalResultMissingOnServer" units="%"
    expires_after="2018-08-30">
  <owner>zea@chromium.org</owner>
  <summary>
    Percentage of results that are present locally but are not returned by the
    web history API call. Recorded every time a signed-in user visits the
    chrome://history page and the results from the web history are received.
  </summary>
</histogram>

<histogram name="WebHistory.OAuthTokenCompletion" enum="BooleanSuccess"
    expires_after="2018-08-30">
  <owner>zea@chromium.org</owner>
  <summary>
    Whether getting the OAuth token was successful for a web history query. On
    visits to the chrome://history page this token is obtained and then used to
    get the user's synced web history.
  </summary>
</histogram>

<histogram name="WebHistory.OAuthTokenResponseCode" units="code"
    expires_after="2018-08-30">
  <owner>zea@chromium.org</owner>
  <summary>
    HTTP Response code returned by the server when trying to fetch the OAuth
    token for a web history query.
  </summary>
</histogram>

<histogram name="WebHistory.QueryCompletion" enum="WebHistoryStatus">
  <owner>zea@chromium.org</owner>
  <summary>
    Whether the web history API call was successful. Every time a signed-in user
    visits the chrome://history page this query is executed to get the user's
    synced web history. If successful, the local and remote results are merged
    and shown in the history page.
  </summary>
</histogram>

<histogram name="WebHistory.ResponseTime" units="ms" expires_after="2018-08-30">
  <owner>zea@chromium.org</owner>
  <summary>
    Time it took for the web history to reply. Recorded when the web history API
    call triggered by visiting chrome://history receives the data, measuring how
    much time it took for the server to reply.
  </summary>
</histogram>

<histogram name="WebP.DecodedImageFormat" enum="WebpDecodedFormat">
  <owner>droger@chromium.org</owner>
  <summary>
    Histogram for the format of decoded WebP images on iOS, as Chrome re-encodes
    WebP images on that platform.
  </summary>
</histogram>

<histogram name="WebRTC.AecDelayBasedQuality" enum="DelayBasedEchoQuality">
  <owner>hlundin@chromium.org</owner>
  <summary>
    Captures if the estimated delay between rendered and captured audio is out
    of bounds which can cause the Echo Cancellation to fail. This is logged
    roughly once every 5 seconds. The values are logged in four buckets
    reflecting how well the Echo Cancellation likely performs based on the
    estimated delay.
  </summary>
</histogram>

<histogram name="WebRTC.AecFilterHasDivergence" units="%">
  <owner>grunell@chromium.org</owner>
  <owner>minyue@chromium.org</owner>
  <summary>
    The percentage of measurement periods during a capture stream's lifetime
    when the echo canceler's filter is considered to have diverged at least
    once. A diverged filter could mean that there was echo och ducking
    experienced. The measurement period size is fixed and in the order of one
    second. The first measurement period is larger, typically 2-3 seconds.
    Capture streams with shorter lifetimes (i.e. no data available) are not
    recorded here.
  </summary>
</histogram>

<histogram name="WebRTC.ApplicationMaxConsecutiveBytesDiscard">
  <obsolete>
    Deprecated as of 12/2014, replaced by
    WebRTC.ApplicationMaxConsecutiveBytesDiscard.v2.
  </obsolete>
  <owner>guoweis@chromium.org</owner>
  <summary>
    The maximum consecutive discarded bytes caused by not enough buffer
    available in WebRTC's socket implementation. This happens when WebRTC
    IpcPacketSocket's throttling mechanism kicks in.
  </summary>
</histogram>

<histogram name="WebRTC.ApplicationMaxConsecutiveBytesDiscard.v2">
  <owner>guoweis@chromium.org</owner>
  <summary>
    The maximum consecutive discarded bytes caused by not enough buffer
    available in WebRTC's socket implementation. This happens when WebRTC
    IpcPacketSocket's throttling mechanism kicks in. The maximum bucket is
    expanded from previous version to provide more insight when upper layer
    feeds a lot of packets.
  </summary>
</histogram>

<histogram name="WebRTC.ApplicationPercentPacketsDiscarded" units="%">
  <owner>guoweis@chromium.org</owner>
  <summary>
    The percentage of packets discarded by WebRTC's socket layer due to
    EWOULDBLOCKs when WebRTC IpcPacketSocket's throttling mechanism kicks in.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.AecDelayAdjustmentMsAgnosticValue" units="ms">
  <owner>hlundin@chromium.org</owner>
  <summary>
    The AEC in WebRTC will sometimes realign the far- and near-end signal
    buffers to keep in sync with delay changes in the echo path. This metric
    logs each such realignment, storing the delay change in ms, when the change
    is triggered by a shift in the signal based delay estimation (a.k.a
    delay-agnostic).
  </summary>
</histogram>

<histogram name="WebRTC.Audio.AecDelayAdjustmentMsSystemValue" units="ms">
  <owner>hlundin@chromium.org</owner>
  <summary>
    The AEC in WebRTC will sometimes realign the far- and near-end signal
    buffers to keep in sync with delay changes in the echo path. This metric
    logs each such realignment, storing the delay change in ms, when the change
    is triggered by a shift in system reported delay.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.AecSystemDelayJump" units="ms">
  <owner>hlundin@chromium.org</owner>
  <summary>
    The AEC in WebRTC keeps a buffer to mimic the audio buffers in the lower
    layers. This histogram logs a sudden positive jump in buffer size. Since we
    detect jumps in the capture thread, only positive values are feasible. Note
    that the difference in milliseconds is logged and not the actual AEC system
    delay value. Sampled every time the AEC system delay changes more than 50
    milliseconds.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.Agc.DigitalGainApplied" units="dB"
    expires_after="2019-03-01">
  <owner>aleloi@chromium.org</owner>
  <summary>
    Logs adaptive digital compression gain that is applied by AgcManagerDirect.
    A log call is made once per second. The compression gain is applied to the
    microphone signal at the end of the processing chain.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.Agc.DigitalGainUpdated" units="dB"
    expires_after="2019-03-01">
  <owner>aleloi@chromium.org</owner>
  <summary>
    Logs adaptive digital compression gain that is applied by AgcManagerDirect.
    A log call is made every time the gain changes. The compression gain is
    applied to the microphone signal at the end of the processing chain.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.Agc2.DigitalGainApplied" units="dB"
    expires_after="2019-09-01">
  <owner>aleloi@chromium.org</owner>
  <summary>
    Logs adaptive digital compression gain that is applied by
    AdaptiveDigitalGainApplier in GainController2. A log call is made once per
    second. The compression gain is applied to the microphone signal at the end
    of the processing chain.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.Agc2.EstimatedNoiseLevel" units="dBFS (negated)"
    expires_after="2019-09-01">
  <owner>aleloi@chromium.org</owner>
  <summary>
    This histogram reports the noise level estimation done in GainController2. A
    value is reported every second. The unit is inverted dBFS. The scale goes
    from 0 (very loud noise) to 100 (very faint noise).
  </summary>
</histogram>

<histogram name="WebRTC.Audio.Agc2.FixedDigitalGainCurveRegion.Identity"
    units="seconds" expires_after="2019-09-01">
  <owner>aleloi@chromium.org</owner>
  <summary>
    The Fixed-Digital part of the AGC protects from saturation by reducing the
    level of too loud signals. This metric shows how long the level estimate
    stays in the 'Identity' region. In this region no attenuating gain is
    applied. This metric is logged from the Fixed Digital limiter in
    GainController2.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.Agc2.FixedDigitalGainCurveRegion.Knee"
    units="seconds" expires_after="2019-09-01">
  <owner>aleloi@chromium.org</owner>
  <summary>
    The Fixed-Digital part of the AGC protects from saturation by reducing the
    level of too loud signals. This metric shows how long the level estimate
    stays in the 'Knee' region. In this region some attenuating gain is applied.
    This metric is logged from the Fixed Digital limiter in GainController2.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.Agc2.FixedDigitalGainCurveRegion.Limiter"
    units="seconds" expires_after="2019-09-01">
  <owner>aleloi@chromium.org</owner>
  <summary>
    The Fixed-Digital part of the AGC protects from saturation by reducing the
    level of too loud signals. This metric shows how long the level estimate
    stays in the 'Limiter' region. In this region some more attenuating gain is
    applied. This metric is logged from the Fixed Digital limiter in
    GainController2.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.Agc2.FixedDigitalGainCurveRegion.Saturation"
    units="seconds" expires_after="2019-09-01">
  <owner>aleloi@chromium.org</owner>
  <summary>
    The Fixed-Digital part of the AGC protects from saturation by reducing the
    level of too loud signals. This metric shows how long the level estimate
    stays in the 'Saturation' region. In this region much attenuating gain is
    applied. This metric is logged from the Fixed Digital limiter in
    GainController2.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.AgcClippingAdjustmentAllowed" enum="Boolean">
  <owner>hlundin@chromium.org</owner>
  <summary>
    The automatic gain control (AGC) in WebRTC tries to adjust the microphone
    gain to maintain a strong audio level, but without clipping (saturation).
    The histogram will log a value every time input clipping is detected. The
    value is a boolean, with &quot;true&quot; meaning that the gain was in fact
    adjusted in response to the detected clipping, and &quot;false&quot; meaning
    that adjustment was not allowed due to limiting boundaries in the algorithm.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.AgcSetLevel" units="level">
  <owner>hlundin@chromium.org</owner>
  <summary>
    The automatic gain control (AGC) in WebRTC tries to adjust the microphone
    gain to maintain a strong audio level, but without clipping (saturation).
    The histogram will log a new value every time the AGC changes the target
    level.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.ApmCaptureInputLevelAverageRms"
    units="dBFS (negated)">
  <owner>hlundin@chromium.org</owner>
  <summary>
    This histogram reports the average RMS of the signal coming in to WebRTC's
    Audio Processing Module, prior to any WebRTC processing. A new value is
    reported every 10 seconds, and the average is over the latest interval. The
    metric is negated dBFS, meaning that 0 is a full-scale signal, while 127
    corresponds to -127 dBFS (very faint).
  </summary>
</histogram>

<histogram name="WebRTC.Audio.ApmCaptureInputLevelPeakRms"
    units="dBFS (negated)">
  <owner>hlundin@chromium.org</owner>
  <summary>
    This histogram reports the peak RMS of the signal coming in to WebRTC's
    Audio Processing Module, prior to any WebRTC processing. A new value is
    reported every 10 seconds, and the peak is the RMS of the strongest 10 ms
    block over the latest interval. The metric is negated dBFS, meaning that 0
    is a full-scale signal, while 127 corresponds to -127 dBFS (very faint).
  </summary>
</histogram>

<histogram name="WebRTC.Audio.ApmCaptureOutputLevelAverageRms"
    units="dBFS (negated)">
  <owner>peah@chromium.org</owner>
  <summary>
    This histogram reports the average RMS of the signal in the output of
    WebRTC's Audio Processing Module, after all audio WebRTC processing. A new
    value is reported every 10 seconds, and the average is over the latest
    interval. The metric is negated dBFS, meaning that 0 is a full-scale signal,
    while 127 corresponds to -127 dBFS (very faint).
  </summary>
</histogram>

<histogram name="WebRTC.Audio.ApmCaptureOutputLevelPeakRms"
    units="dBFS (negated)">
  <owner>peah@chromium.org</owner>
  <summary>
    This histogram reports the peak RMS of the signal in the output of WebRTC's
    Audio Processing Module, after all WebRTC audio processing. A new value is
    reported every 10 seconds, and the peak is the RMS of the strongest 10 ms
    block over the latest interval. The metric is negated dBFS, meaning that 0
    is a full-scale signal, while 127 corresponds to -127 dBFS (very faint).
  </summary>
</histogram>

<histogram name="WebRTC.Audio.AudioMixer.FixedDigitalGainCurveRegion.Identity"
    units="seconds" expires_after="2019-09-01">
  <owner>aleloi@chromium.org</owner>
  <summary>
    The Fixed-Digital part of the AGC protects from saturation by reducing the
    level of too loud signals. This metric shows how long the level estimate
    stays in the 'Identity' region. In this region no attenuating gain is
    applied. This metric is logged from the Fixed Digital limiter in the Audio
    Mixer.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.AudioMixer.FixedDigitalGainCurveRegion.Knee"
    units="seconds" expires_after="2019-09-01">
  <owner>aleloi@chromium.org</owner>
  <summary>
    The Fixed-Digital part of the AGC protects from saturation by reducing the
    level of too loud signals. This metric shows how long the level estimate
    stays in the 'Knee' region. In this region some attenuating gain is applied.
    This metric is logged from the Fixed Digital limiter in the Audio Mixer.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.AudioMixer.FixedDigitalGainCurveRegion.Limiter"
    units="seconds" expires_after="2019-09-01">
  <owner>aleloi@chromium.org</owner>
  <summary>
    The Fixed-Digital part of the AGC protects from saturation by reducing the
    level of too loud signals. This metric shows how long the level estimate
    stays in the 'Limiter' region. In this region some more attenuating gain is
    applied. This metric is logged from the Fixed Digital limiter in the Audio
    Mixer.
  </summary>
</histogram>

<histogram
    name="WebRTC.Audio.AudioMixer.FixedDigitalGainCurveRegion.Saturation"
    units="seconds" expires_after="2019-09-01">
  <owner>aleloi@chromium.org</owner>
  <summary>
    The Fixed-Digital part of the AGC protects from saturation by reducing the
    level of too loud signals. This metric shows how long the level estimate
    stays in the 'Saturation' region. In this region much attenuating gain is
    applied. This metric is logged from the Fixed Digital limiter in the Audio
    Mixer.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.AudioMixer.MixingRate" enum="WebRtcNativeRate">
  <owner>aleloi@chromium.org</owner>
  <summary>
    Reports the sampling rate at which audio mixing is done. Lower rates result
    in faster processing, higher rates can give higher quality.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.AudioMixer.NumIncomingActiveStreams"
    units="count">
  <owner>aleloi@chromium.org</owner>
  <summary>
    Reports the number of active incoming streams in the WebRTC audio mixer. An
    incoming stream is active if it is not muted. When multiple sterams are
    active, adding them can result in saturation and limiting is needed.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.AudioMixer.NumIncomingStreams" units="count">
  <owner>aleloi@chromium.org</owner>
  <summary>
    Reports the number of streams in the WebRTC audio mixer. The mixer queries
    all streams for audio and preferred sampling rate. The number of streams
    affects mixing decisions. Whether to mix in floating points or use a limiter
    depends on the number of incoming streams.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.AverageExcessBufferDelayMs" units="ms">
  <owner>hlundin@chromium.org</owner>
  <summary>
    Measures the average waiting time in the buffer for each packet. The waiting
    time is the time elapsed from the packet arrives until it is decoded. The
    metric is calculated as the average over one minute, and is logged at the
    end of each such interval. A well tuned target buffer level should lead to a
    low value.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.DelayedPacketOutageEventMs" units="ms">
  <owner>hlundin@chromium.org</owner>
  <summary>
    Measures the duration of each packet loss concealment (a.k.a. expand) event
    that is not followed by a merge operation. The outage is measured in
    milliseconds, with a range between 0 and 2000 ms. This gives an indication
    of how well the jitter buffer's level adaptation is working. If the chosen
    target level is too low, this value will increase.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.DelayedPacketOutageEventsPerMinute"
    units="events/minute">
  <owner>hlundin@chromium.org</owner>
  <summary>
    Counts the number of delayed packet outage events per minute. The range is
    between 0 and 100 (corresponds to more 1.6 events per second). See
    WebRTC.Audio.DelayedPacketOutageEventMs for the definition of a delayed
    packet outage event, and the interpretation of such events.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.ActiveRender" enum="Boolean">
  <owner>peah@chromium.org</owner>
  <summary>
    This histogram logs a value indicating whether the WebRTC echo canceller
    detects that there is active content in the render signal. A new value is
    logged every 10 seconds and the logged value is averaged over this period.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.BufferDelay" units="Blocks">
  <owner>peah@chromium.org</owner>
  <summary>
    This histogram logs the applied render buffer delay used in the WebRTC echo
    canceller. A new value is logged every 10 seconds and the logged value
    constitutes the current buffer delay at the time when the value is logged.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.CaptureSaturation" enum="Boolean">
  <owner>peah@chromium.org</owner>
  <summary>
    This histogram logs a value every time the WebRTC echo canceller has
    detected saturation in the capture signal. A new value is logged every 10
    seconds and the logged value indicates whether the capture signal has been
    saturated during the last 10 seconds.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.Clockdrift" enum="ClockdriftLevel"
    expires_after="2019-11-30">
  <owner>gustaf@chromium.org</owner>
  <summary>
    This histogram logs whether clockdrift is detected in the WebRTC echo
    canceller. A new value is logged every 10 seconds.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.ComfortNoiseBand0"
    units="dBFS (negated)">
  <owner>peah@chromium.org</owner>
  <summary>
    This histogram logs the level of the comfort noise in the WebRTC echo
    canceller in the lower 4 kHz. A new value is logged every 10 seconds.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.ComfortNoiseBand1"
    units="dBFS (negated)">
  <owner>peah@chromium.org</owner>
  <summary>
    This histogram logs the level of the comfort noise in the WebRTC echo
    canceller between 4 and 8 kHz. A new value is logged every 10 seconds.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.DelayChanges"
    enum="WebRTCEventFrequency">
  <owner>peah@chromium.org</owner>
  <summary>
    This histogram logs the frequency of echo path delay changes that are
    detected by the delay estimator in the WebRTC echo canceller. A new value is
    logged every 10 seconds and the logged value indicates how frequent delay
    changes have been during the last 10 seconds.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.EchoPathDelay" units="Blocks">
  <owner>peah@chromium.org</owner>
  <summary>
    This histogram logs the estimated echo path delay in 64 sample blocks as
    seen by the delay estimator in the WebRTC echo canceller. A new value is
    logged every 10 seconds and the logged value is the estimate of the delay of
    the echo path at the time when the value is logged.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.Erl" units="dB (shifted)">
  <owner>gustaf@chromium.org</owner>
  <summary>
    This histogram logs the echo return loss achieved by the WebRTC echo
    canceller as described in ITU G.168. When the echo canceller is being used,
    one value is logged every 10 seconds per ongoing WebRTC call.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.ErlBand0" units="dB (shifted)">
  <owner>peah@chromium.org</owner>
  <summary>
    This histogram logs the echo return loss achieved by the WebRTC echo
    canceller in the lower 4 kHz. A new value is logged every 10 seconds.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.ErlBand1" units="dB (shifted)">
  <owner>peah@chromium.org</owner>
  <summary>
    This histogram logs the echo return loss achieved by the WebRTC echo
    canceller between 4 and 8 kHz. A new value is logged every 10 seconds.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.Erle" units="dB">
  <owner>gustaf@chromium.org</owner>
  <summary>
    This histogram logs the echo return loss enhancement achieved by the WebRTC
    echo canceller as described in ITU G.168. When the echo canceller is being
    used, one value is logged every 10 seconds per ongoing WebRTC call.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.ErleBand0" units="dB (shifted)">
  <owner>peah@chromium.org</owner>
  <summary>
    This histogram logs the echo return loss enhancement achieved by the WebRTC
    echo canceller in the lower 4 kHz. A new value is logged every 10 seconds.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.ErleBand1" units="dB (shifted)">
  <owner>peah@chromium.org</owner>
  <summary>
    This histogram logs the echo return loss enhancement achieved by the WebRTC
    echo canceller between 4 and 8 kHz. A new value is logged every 10 seconds.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.FilterDelay" units="Blocks">
  <owner>peah@chromium.org</owner>
  <summary>
    This histogram logs the estimated echo path delay in 64 sample blocks as
    seen by the linear filter delay in the WebRTC echo canceller. The value 0
    means that no delay could be estimated from the linear filter, otherwise the
    logged delay corresponds to the actual delay + 1. A new value is logged
    every 10 seconds and the logged value is the estimate of the filter delay at
    the time when the value is logged.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.MaxCaptureJitter"
    units="frames (10 ms)" expires_after="2019-05-01">
  <owner>peah@chromium.org</owner>
  <owner>gustaf@chromium.org</owner>
  <summary>
    This histogram logs the observed maximum number of capture API calls in a
    row in the unit of frames (10 ms). A new value is logged every 10 seconds.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.MaxRenderJitter"
    units="frames (10 ms)" expires_after="2019-05-01">
  <owner>peah@chromium.org</owner>
  <owner>gustaf@chromium.org</owner>
  <summary>
    This histogram logs the observed maximum number of render API calls in a row
    in the unit of frames (10 ms). A new value is logged every 10 seconds.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.MaxSkewShiftCount"
    units="events/minute">
  <owner>peah@chromium.org</owner>
  <summary>
    This histogram logs the number of times per minute that the WebRTC echo
    canceller detects a shift in the skew between the total number of render and
    capture calls. The metric is reported once per minute and the report is done
    also for the case of 0 detected skew shifts have been detected. The amount
    of skew shifts per minute is capped to 20. The metric is reported separately
    for each render process. The metric is only reported for render processes
    where the WebRTC echo canceller is active in and there is both audio being
    played out and captured simultaneously. The reporting is only done when the
    browser is awake.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.MinCaptureJitter"
    units="frames (10 ms)" expires_after="2019-05-01">
  <owner>peah@chromium.org</owner>
  <owner>gustaf@chromium.org</owner>
  <summary>
    This histogram logs the observed minimum number of capture API calls in a
    row in the unit of frames (10 ms). A new value is logged every 10 seconds.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.MinRenderJitter"
    units="frames (10 ms)" expires_after="2019-05-01">
  <owner>peah@chromium.org</owner>
  <owner>gustaf@chromium.org</owner>
  <summary>
    This histogram logs the observed minimum number of render API calls in a row
    in the unit of frames (10 ms). A new value is logged every 10 seconds.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.ModelBasedAecFeasible"
    enum="Boolean">
  <owner>peah@chromium.org</owner>
  <summary>
    This histogram logs a value every time the WebRTC echo canceller deems that
    echo path is possible to model using any of the the echo canceller echo path
    models. A new value is logged every 10 seconds and the logged value is the
    feasibility assessment at the time when the value is logged.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.ReliableDelayEstimates"
    enum="WebRTCAecDelayEstimateReliability">
  <owner>peah@chromium.org</owner>
  <summary>
    This histogram logs the assessed reliability of the delay estimates produced
    by the delay estimator in the WebRTC echo canceller. A new value is logged
    every 10 seconds and the logged value is a meausure based on how often
    during that period the delay estimate was reliable.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.RenderOverruns"
    enum="WebRTCEventFrequency">
  <owner>peah@chromium.org</owner>
  <summary>
    This histogram logs the frequency of overruns in the render buffer of the
    WebRTC echo canceller. A new value is logged every 10 seconds and the logged
    value is a meausure that indicates how often overruns occurred.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.RenderUnderruns"
    enum="WebRTCEventFrequency">
  <owner>peah@chromium.org</owner>
  <summary>
    This histogram logs the frequency of underruns in the render buffer of the
    WebRTC echo canceller. A new value is logged every 10 seconds and the logged
    value is a meausure that indicates how often underruns occurred.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.SuppressorGainBand0"
    units="dB (negated)">
  <owner>peah@chromium.org</owner>
  <summary>
    This histogram logs the echo suppressor gain in the WebRTC echo canceller in
    the lower 4 kHz. A new value is logged every 10 seconds.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.SuppressorGainBand1"
    units="dB (negated)">
  <owner>peah@chromium.org</owner>
  <summary>
    This histogram logs the echo suppressor gain in the WebRTC echo canceller
    between 4 and 8 kHz. A new value is logged every 10 seconds.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.EchoCanceller.UsableLinearEstimate"
    enum="Boolean">
  <owner>peah@chromium.org</owner>
  <summary>
    This histogram logs a value every time the WebRTC echo canceller deems that
    the linear filter in the echo canceller is sufficiently well adapted to be
    usable. A new value is logged every 10 seconds and the logged value is the
    assessment of whether the filter is usable at the time when the value is
    logged.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.Encoder.CodecType" enum="WebRtcAudioCodecs">
  <owner>aleloi@chromium.org</owner>
  <summary>
    Histogram of audio codec usage. Every sample corresponds to 5 seconds of
    encoding with that codec.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.ExpandRatePercent" units="%">
  <owner>hlundin@chromium.org</owner>
  <summary>
    Measures the expand rate for an incoming WebRTC audio stream. The expand
    rate is the fraction of samples that are generated through loss-concealemnt
    algorithms instead of being decoded from incoming media packets. The metric
    is calculated as the percent over a 10 second internval, and is logged at
    the end of each such interval.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.JitterBufferFullPerMinute" units="events/minute">
  <owner>minyue@chromium.org</owner>
  <summary>
    Frequency that audio packets hits the capacity of WebRTC jitter buffer. A
    larger value indicates that the capacity is not big enough, and/or audio
    packets are not processed quickly enough. The metric is recorded every
    minute.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.NumOfAecSystemDelayJumps" units="jumps">
  <owner>hlundin@chromium.org</owner>
  <summary>
    Number of triggered WebRTC.Audio.AecSystemDelayJump during a call. This is
    recorded when a WebRTC based call has ended. AecSystemDelayJump can be
    triggered when, for example, the capture thread is stalled, which can harm
    the AEC. NumOfAecSystemDelayJumps shows how often this occurs in general as
    well as during a call.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.NumOfPlatformReportedStreamDelayJumps"
    units="jumps">
  <owner>hlundin@chromium.org</owner>
  <summary>
    Number of triggered WebRTC.Audio.PlatformReportedStreamDelayJump during a
    call. This is recorded when a WebRTC based call has ended.
    PlatformReportedStreamDelayJump can be triggered when, for example, the
    capture thread is stalled, which can harm the AEC.
    NumOfPlatformReportedStreamDelayJumps shows how often this occurs in general
    as well as during a call.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.PlatformReportedStreamDelayJump" units="ms">
  <owner>hlundin@chromium.org</owner>
  <summary>
    The difference in stream delay reported to WebRTC by Chrome. Since we detect
    jumps in the capture thread, only positive values are feasible. Note that
    the difference in milliseconds is logged and not the actual stream delay
    value. Sampled every time the stream delay changes more than 50
    milliseconds.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.ReceiverDelayEstimateMs" units="ms">
  <owner>hlundin@chromium.org</owner>
  <summary>
    The sum of the jitter buffer delay and the sound card's buffering delay for
    the receiving side. That is, the sum of the metrics
    WebRTC.Audio.ReceiverDeviceDelayMs and
    WebRTC.Audio.ReceiverJitterBufferDelayMs. Sampled once every 10 ms when
    WebRTC audio is playing.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.ReceiverDeviceDelayMs" units="ms">
  <owner>hlundin@chromium.org</owner>
  <summary>
    The sound card's buffering delay for the receiving side. Sampled once every
    10 ms when WebRTC audio is playing.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.ReceiverJitterBufferDelayMs" units="ms">
  <owner>hlundin@chromium.org</owner>
  <summary>
    The jitter buffer delay for the receiving side. Sampled once every 10 ms
    when WebRTC audio is playing.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.ResidualEchoDetector.EchoLikelihood" units="%">
  <owner>hlundin@chromium.org</owner>
  <owner>ivoc@chromium.org</owner>
  <summary>
    The estimated likelihood percentage of echo as detected by the residual echo
    detector. The residual echo detector can be used to detect cases where the
    AEC (hardware or software) is not functioning properly. The detector can be
    non-causal and operates on larger timescales with more delay than the
    regular AEC.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.SpeechExpandRatePercent" units="%">
  <owner>hlundin@chromium.org</owner>
  <summary>
    Measures the audible expand rate for an incoming WebRTC audio stream. The
    metric is very similar to WebRTC.Audio.ExpandRate, with the difference that
    this metric only reports loss-concealement that generates audible samples.
    The metric is calculated as the percent over a 10 second internval, and is
    logged at the end of each such interval.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.TargetBitrateInKbps" units="kbps">
  <owner>hlundin@chromium.org</owner>
  <summary>
    The target bitrate in kbps that the audio codec should try to produce on
    average. Sampled every time the rate is updated.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.TargetJitterBufferDelayMs" units="ms">
  <owner>hlundin@chromium.org</owner>
  <summary>
    The target jitter buffer delay for the receiving side. Sampled once every 10
    ms per WebRTC receive stream when WebRTC audio is playing.
  </summary>
</histogram>

<histogram name="WebRTC.AudioCaptureTime" units="ms">
  <obsolete>
    Removed from code 2014/2/25.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Duration in milliseconds of WebRTC audio capture session.</summary>
</histogram>

<histogram name="WebRTC.AudioInputChannelLayout" enum="ChannelLayout">
  <owner>henrika@chromium.org</owner>
  <summary>Audio input channel layout in WebRTC.</summary>
</histogram>

<histogram name="WebRTC.AudioInputFramesPerBuffer" enum="AudioFramesPerBuffer">
  <obsolete>
    No longer exists in the code as of 2014/2/25.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Size of WebRTC audio input buffers (in audio frames).</summary>
</histogram>

<histogram name="WebRTC.AudioInputFramesPerBufferUnexpected"
    units="audio frames">
  <obsolete>
    No longer exists in the code as of 2014/2/25.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Size of WebRTC audio input buffers (atypical values, in audio frames).
  </summary>
</histogram>

<histogram name="WebRTC.AudioInputSampleRate" enum="AudioSampleRate">
  <owner>henrika@chromium.org</owner>
  <summary>Audio input sample rate for WebRTC (in Hz).</summary>
</histogram>

<histogram name="WebRTC.AudioInputSampleRateUnexpected" units="Hz">
  <owner>henrika@chromium.org</owner>
  <summary>
    Audio input sample rate for WebRTC (atypical values, in Hz).
  </summary>
</histogram>

<histogram name="WebRTC.AudioOutputChannelLayout" enum="ChannelLayout">
  <obsolete>
    Removed from code on 2014/2/25.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Audio output channel layout in WebRTC.</summary>
</histogram>

<histogram name="WebRTC.AudioOutputFramesPerBuffer" enum="AudioFramesPerBuffer">
  <obsolete>
    Removed from code Sep 2014.
  </obsolete>
  <owner>henrika@chromium.org</owner>
  <summary>Size of WebRTC audio output buffers (in audio frames).</summary>
</histogram>

<histogram name="WebRTC.AudioOutputFramesPerBufferUnexpected"
    units="audio frames">
  <obsolete>
    Removed from code Sep 2014.
  </obsolete>
  <owner>henrika@chromium.org</owner>
  <summary>
    Size of WebRTC audio output buffers (atypical values, in audio frames).
  </summary>
</histogram>

<histogram name="WebRTC.AudioOutputSampleRate" enum="AudioSampleRate">
  <owner>henrika@chromium.org</owner>
  <summary>Audio output sample rate for WebRTC (in Hz).</summary>
</histogram>

<histogram name="WebRTC.AudioOutputSampleRateUnexpected" units="Hz">
  <owner>henrika@chromium.org</owner>
  <summary>
    Audio output sample rate for WebRTC (atypical values, in Hz).
  </summary>
</histogram>

<histogram name="WebRTC.AudioRenderTime" units="ms">
  <obsolete>
    Removed from code 2014/2/25.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Duration in milliseconds of WebRTC audio render session.</summary>
</histogram>

<histogram name="WebRTC.AudioRenderTimes" units="ms">
  <obsolete>
    Deprecated as of Aug 2016, replaced by
    Media.Audio.Render.GetSourceDataTime.WebRTC.
  </obsolete>
  <owner>henrika@chromium.org</owner>
  <summary>
    Measures the time spent in WebRtcAudioRenderer::SourceCallback. Sampled 10
    times per second.
  </summary>
</histogram>

<histogram name="WebRTC.BWE.InitialBandwidthEstimate" units="kbps">
  <owner>holmer@chromium.org</owner>
  <summary>The bandwidth estimate 2 seconds into a WebRTC call.</summary>
</histogram>

<histogram name="WebRTC.BWE.InitiallyLostPackets" units="packets">
  <owner>holmer@chromium.org</owner>
  <summary>
    The number of video packets lost durig the first 2 seconds in a WebRTC call.
  </summary>
</histogram>

<histogram name="WebRTC.BWE.InitialRtt" units="ms">
  <owner>holmer@chromium.org</owner>
  <summary>
    The round-trip time as measured 2 seconds into a WebRTC call.
  </summary>
</histogram>

<histogram name="WebRTC.BWE.InitialVsConvergedDiff" units="kbps">
  <owner>holmer@chromium.org</owner>
  <summary>
    The difference between the bandwidth estimate at 2 seconds and 20 seconds
    into a WebRTC call, with a min at 0, which is supposed to capture the how
    much the initial bandwidth estimate overshot the actual bandwidth available.
  </summary>
</histogram>

<histogram name="WebRTC.BWE.MidCallProbing.Initiated" units="kbps">
  <owner>philipel@chromium.org</owner>
  <summary>
    The bitrate that will be probed, triggered by an update to the max
    configured bitrate.
  </summary>
</histogram>

<histogram name="WebRTC.BWE.MidCallProbing.ProbedKbps" units="kbps">
  <owner>philipel@chromium.org</owner>
  <summary>
    The resulting bitrate probed, triggered by an update to the max configured
    bitrate.
  </summary>
</histogram>

<histogram name="WebRTC.BWE.MidCallProbing.Success" units="kbps">
  <owner>philipel@chromium.org</owner>
  <summary>
    A successful probing attempt for a given bitrate, triggered by an update to
    the max configured bitrate. NOTE! This is not the resulting bitrate from a
    probing attempt, see WebRTC.BWE.MidCallProbing.ProbedKbps.
  </summary>
</histogram>

<histogram name="WebRTC.BWE.RampUpTimeTo1000kbpsInMs" units="ms">
  <owner>holmer@chromium.org</owner>
  <summary>
    The time it takes the estimated bandwidth to reach 1000 kbps from the first
    RTCP packet received. Used to measure the bandwidth ramp-up time.
  </summary>
</histogram>

<histogram name="WebRTC.BWE.RampUpTimeTo2000kbpsInMs" units="ms">
  <owner>holmer@chromium.org</owner>
  <summary>
    The time it takes the estimated bandwidth to reach 2000 kbps from the first
    RTCP packet received. Used to measure the bandwidth ramp-up time.
  </summary>
</histogram>

<histogram name="WebRTC.BWE.RampUpTimeTo500kbpsInMs" units="ms">
  <owner>holmer@chromium.org</owner>
  <summary>
    The time it takes the estimated bandwidth to reach 500 kbps from the first
    RTCP packet received. Used to measure the bandwidth ramp-up time.
  </summary>
</histogram>

<histogram name="WebRTC.BWE.Types" enum="WebRtcBweType">
  <owner>holmer@chromium.org</owner>
  <summary>
    The bandwidth estimation used in WebRTC calls. Records whether the BWE is
    running on the sender or the receiver and what BWE related RTP header
    extensions are in use.
  </summary>
</histogram>

<histogram name="WebRTC.Call.AudioBitrateReceivedInKbps" units="kbps">
  <owner>holmer@chromium.org</owner>
  <summary>
    Average audio bitrate received during a call, counted from first packet
    received until Call instance is destroyed. Only mesured for calls that are
    at least 10 seconds long.
  </summary>
</histogram>

<histogram name="WebRTC.Call.BitrateReceivedInKbps" units="kbps">
  <owner>holmer@chromium.org</owner>
  <summary>
    Average total bitrate received during a call (audio + video + RTCP), counted
    from first packet received until Call instance is destroyed. Only mesured
    for calls that are at least 10 seconds long.
  </summary>
</histogram>

<histogram name="WebRTC.Call.EstimatedSendBitrateInKbps" units="kbps">
  <owner>holmer@chromium.org</owner>
  <summary>
    Average estimated send bitrate during a call, counted from first packet sent
    until Call instance is destroyed. Only mesured for calls that are at least
    10 seconds long.
  </summary>
</histogram>

<histogram name="WebRTC.Call.LifetimeInSeconds" units="seconds">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The lifetime of a call. Recorded when a Call instance is destroyed.
  </summary>
</histogram>

<histogram name="WebRTC.Call.PacerBitrateInKbps" units="kbps">
  <owner>holmer@chromium.org</owner>
  <summary>
    Average pacer bitrate during a call, counted from first packet sent until
    Call instance is destroyed. Only mesured for calls that are at least 10
    seconds long.
  </summary>
</histogram>

<histogram name="WebRTC.Call.RtcpBitrateReceivedInBps" units="bits/s">
  <owner>holmer@chromium.org</owner>
  <summary>
    Average RTCP bitrate received during a call, counted from first packet
    received until Call instance is destroyed. Only mesured for calls that are
    at least 10 seconds long.
  </summary>
</histogram>

<histogram name="WebRTC.Call.TimeReceivingAudioRtpPacketsInSeconds" units="s">
  <owner>saza@chromium.org</owner>
  <summary>
    The amount of time between the arrival of the first and last audio RTP
    packets to pass through a Call object. This is logged when the Call object
    is destroyed. This is only logged if audio RTP packets are at some point in
    time received, and is a way to omit temporary objects that do not send any
    actual media.
  </summary>
</histogram>

<histogram name="WebRTC.Call.TimeReceivingVideoRtpPacketsInSeconds" units="s">
  <owner>saza@chromium.org</owner>
  <summary>
    The amount of time between the arrival of the first and last video RTP
    packets to pass through a Call object. This is logged when the Call object
    is destroyed. This is only logged if video RTP packets are at some point in
    time received, and is a way to omit temporary objects that do not send any
    actual media.
  </summary>
</histogram>

<histogram name="WebRTC.Call.TimeSendingAudioRtpPacketsInSeconds" units="s">
  <obsolete>
    Deprecated 11/2018 due to little use and high implementation complexity.
  </obsolete>
  <owner>saza@chromium.org</owner>
  <summary>
    The amount of time between sending the first and the last audio RTP packets
    through the audiostreams of a Call object. This is logged when the Call
    object is destroyed. This is only logged if audio RTP packets are at some
    point in time received, and is a way to omit temporary objects that do not
    send any actual media.
  </summary>
</histogram>

<histogram name="WebRTC.Call.VideoBitrateReceivedInKbps" units="kbps">
  <owner>holmer@chromium.org</owner>
  <summary>
    Average video bitrate received during a call, counted from first packet
    received until Call instance is destroyed. Only mesured for calls that are
    at least 10 seconds long.
  </summary>
</histogram>

<histogram name="WebRTC.DataChannelCounters" enum="DataChannelCounters">
  <owner>perkj@chromium.org</owner>
  <summary>
    Counters on creation, opening, and a few main attributes of data channels.
  </summary>
</histogram>

<histogram name="WebRTC.DataChannelMaxRetransmits">
  <owner>perkj@chromium.org</owner>
  <summary>
    The maximum number of retransmissions that are attempted in unreliable mode.
    It is set to the value used in the configuration when a RTCDataChannel is
    created.
  </summary>
</histogram>

<histogram name="WebRTC.DataChannelMaxRetransmitTime" units="ms">
  <owner>perkj@chromium.org</owner>
  <summary>
    The length of the time window during which transmissions and retransmissions
    may occur in unreliable mode. It is set to the value used in the
    configuration when a RTCDataChannel is created.
  </summary>
</histogram>

<histogram name="WebRTC.DesktopCaptureCounters" enum="DesktopCaptureCounters">
  <owner>braveyao@chromium.org</owner>
  <summary>
    Counters on creation of DesktopCaptureDevice and the first capture call.
  </summary>
</histogram>

<histogram name="WebRTC.ICE.TcpSocketWriteErrorCode" enum="SocketErrorCode">
  <owner>zhihuang@chromium.org</owner>
  <summary>
    Counters on different types of TCP socket error code. Collected when we hit
    the error code when writing.
  </summary>
</histogram>

<histogram name="WebRTC.ICE.UdpSocketWriteErrorCode" enum="SocketErrorCode">
  <owner>zhihuang@chromium.org</owner>
  <summary>
    Counters on different types of UDP socket error code. Collected when we hit
    the error code when writing.
  </summary>
</histogram>

<histogram name="WebRTC.NAT.Metrics" enum="NatTypeCounters">
  <owner>guoweis@chromium.org</owner>
  <summary>
    Counters on various types of NAT observed. This is logged once per session.
  </summary>
</histogram>

<histogram name="WebRTC.NumDataChannelsPerPeerConnection">
  <owner>perkj@chromium.org</owner>
  <summary>
    Number of data channels created per PeerConnection. Sample added to the
    histogram when the PeerConnection is destroyed. Note that this is done
    purely on the renderer side, so no sample will be generated when the
    renderer process is destroyed (as in the fast shutdown path for the
    renderer) before the PeerConnection is destroyed.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.AddIceCandidate"
    enum="AddIceCandidateResult" expires_after="M72">
  <owner>hta@chromium.org</owner>
  <summary>
    Outcomes of adding ICE candidates to a PeerConnection. Used to check the
    theory that failures in candidate addition are ignored by applications.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.CallSetupState.AnswererState"
    enum="PeerConnectionAnswererState">
  <owner>hbos@chromium.org</owner>
  <summary>
    Setting up a call involves a number of steps; this enum describes which
    &quot;answerer step&quot; the peer connection reached in its most successful
    attempt. See blink::AnswererState for more information.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.CallSetupState.CallSetupState"
    enum="PeerConnectionCallSetupState">
  <owner>hbos@chromium.org</owner>
  <summary>
    Setting up a call involves a number of steps; this enum describes the status
    of the most successful attempt. See blink::CallSetupState for more
    information.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.CallSetupState.OffererState"
    enum="PeerConnectionOffererState">
  <owner>hbos@chromium.org</owner>
  <summary>
    Setting up a call involves a number of steps; this enum describes which
    &quot;answerer step&quot; the peer connection reached in its most successful
    attempt. See blink::OffererState for more information.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.CallSetupStateWithGum.AnswererState"
    enum="PeerConnectionAnswererState">
  <owner>hbos@chromium.org</owner>
  <summary>
    Setting up a call involves a number of steps; this enum describes which
    &quot;answerer step&quot; the peer connection reached in its most successful
    attempt. See blink::AnswererState for more information. This is the same as
    &quot;WebRTC.PeerConnection.CallSetupState.AnswererState&quot; except it is
    only reported for peer connections on pages where getUserMedia() has been
    called.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.CallSetupStateWithGum.CallSetupState"
    enum="PeerConnectionCallSetupState">
  <owner>hbos@chromium.org</owner>
  <summary>
    Setting up a call involves a number of steps; this enum describes the status
    of the most successful attempt. See blink::CallSetupState for more
    information. This is the same as
    &quot;WebRTC.PeerConnection.CallSetupState.CallSetupState&quot; except it is
    only reported for peer connections on pages where getUserMedia() has been
    called.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.CallSetupStateWithGum.OffererState"
    enum="PeerConnectionOffererState">
  <owner>hbos@chromium.org</owner>
  <summary>
    Setting up a call involves a number of steps; this enum describes which
    &quot;answerer step&quot; the peer connection reached in its most successful
    attempt. See blink::OffererState for more information. This is the same as
    &quot;WebRTC.PeerConnection.CallSetupState.OffererState&quot; except it is
    only reported for peer connections on pages where getUserMedia() has been
    called.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.CandidatePairType"
    enum="IceCandidatePairTypes">
  <owner>qingsi@google.com</owner>
  <owner>jeroendb@google.com</owner>
  <summary>
    Counters of various ICE Endpoint types. These values are logged for the
    first selected candidate pair of a PeerConnection.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.ConnectionState"
    enum="IceConnectionStates">
  <owner>qingsi@google.com</owner>
  <owner>jeroendb@google.com</owner>
  <summary>
    Counters of ICE Connection states. These values are logged when the
    PeerConnection gets into that state for the first time or after the ICE
    restart.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.DtlsHandshakeError"
    enum="DtlsHandshakeError">
  <owner>zhihuang@chromium.org</owner>
  <summary>
    Records the error whenever the Dtls handshake fails. There are only two
    types of errors, incompatitable cipher suite and unknown error, for now.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.IceRegatheringReason"
    enum="IceRegatheringReason">
  <owner>honghaiz@chromium.org</owner>
  <summary>Records the reasons for ICE re-gathering.</summary>
</histogram>

<histogram name="WebRTC.PeerConnection.IceRestartState" enum="IceRestartState">
  <owner>honghaiz@chromium.org</owner>
  <summary>
    Records the transport channel states when ICE restart happens.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.IPMetrics" enum="PeerConnectionCounters">
  <owner>qingsi@google.com</owner>
  <owner>jeroendb@google.com</owner>
  <summary>
    Counters on IPv4 and IPv6 usage in PeerConnection. These values are logged
    once per PeerConnection.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.IPPermissionStatus"
    enum="IPPermissionStatus">
  <owner>qingsi@google.com</owner>
  <owner>jeroendb@google.com</owner>
  <summary>
    Whether the permission to collect the local IP addresses in WebRTC has been
    requested and/or granted. This is collected the first time when networks
    updated event is reported or if never reported, during the destruction phase
    of a call.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.IPv4Interfaces">
  <owner>qingsi@google.com</owner>
  <owner>jeroendb@google.com</owner>
  <summary>
    Number of IPv4 network interfaces discovered in a PeerConnection Session.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.IPv4LocalCandidates">
  <owner>qingsi@google.com</owner>
  <owner>jeroendb@google.com</owner>
  <summary>
    Number of IPv4 local Candidates gathered in a PeerConnection Session once
    the ICE address gathering process reaches the Completed status. To avoid
    miscounting, this only includes the first m line's first component.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.IPv6Interfaces">
  <owner>qingsi@google.com</owner>
  <owner>jeroendb@google.com</owner>
  <summary>
    Number of IPv6 network interfaces discovered in a PeerConnection Session.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.IPv6LocalCandidates">
  <owner>qingsi@google.com</owner>
  <owner>jeroendb@google.com</owner>
  <summary>
    Number of IPv6 local Candidates gathered in a PeerConnection Session once
    the ICE address gathering process reaches the Completed status. To avoid
    miscounting, this only includes the first m line's first component.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.KeyProtocol"
    enum="PeerConnectionKeyProtocol">
  <owner>hta@chromium.org</owner>
  <summary>
    What key exchange protocol (DTLS or SDES) is used to establish the crypto
    keys for a PeerConnection's RTP transport.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.KeyProtocolByMedia"
    enum="PeerConnectionKeyProtocolByMedia">
  <owner>hta@chromium.org</owner>
  <summary>
    What key exchange protocol (DTLS or SDES) is used to establish the crypto
    keys for a PeerConnection's RTP transport, specified per media type.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.OfferExtmapAllowMixed"
    enum="PeerConnectionOfferExtmapAllowMixed">
  <owner>kron@chromium.org</owner>
  <summary>
    What setting for the SDP attribute extmap-allow-mixed has been asked for by
    the creator of a PeerConnection. This is specified to the constructor
    through the dictionary property offerExtmapAllowMixed which can be set to
    either true or false. A default value will be used if it's not specified.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.RtcpMux" enum="PeerConnectionRtcpMux">
  <owner>pthatcher@chromium.org</owner>
  <summary>
    Whether RTCP-mux is used for the PeerConnection (both the local and remote
    description enable RTCP-mux). Recorded after SetLocalDescription and
    SetRemoteDescription are called, once per PeerConnection.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.SdpComplexUsage.CreateAnswer"
    enum="PeerConnectionSdpUsageCategory">
  <owner>hbos@chromium.org</owner>
  <summary>
    The SDP usage category (&quot;safe&quot;, &quot;unsafe&quot; or
    &quot;unknown&quot;) of createAnswer(). Using complex SDP without explicitly
    specifying the sdpSemantics is considered unsafe in this context because
    such usage is sensitive to the rollout of a different default SDP semantic.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.SdpComplexUsage.CreateOffer"
    enum="PeerConnectionSdpUsageCategory">
  <owner>hbos@chromium.org</owner>
  <summary>
    The SDP usage category (&quot;safe&quot;, &quot;unsafe&quot; or
    &quot;unknown&quot;) of createOffer(). Using complex SDP without explicitly
    specifying the sdpSemantics is considered unsafe in this context because
    such usage is sensitive to the rollout of a different default SDP semantic.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.SdpComplexUsage.SetLocalAnswer"
    enum="PeerConnectionSdpUsageCategory">
  <owner>hbos@chromium.org</owner>
  <summary>
    The SDP usage category (&quot;safe&quot;, &quot;unsafe&quot; or
    &quot;unknown&quot;) of setLocalDescription(answer). Using complex SDP
    without explicitly specifying the sdpSemantics is considered unsafe in this
    context because such usage is sensitive to the rollout of a different
    default SDP semantic.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.SdpComplexUsage.SetLocalOffer"
    enum="PeerConnectionSdpUsageCategory">
  <owner>hbos@chromium.org</owner>
  <summary>
    The SDP usage category (&quot;safe&quot;, &quot;unsafe&quot; or
    &quot;unknown&quot;) of setLocalDescription(offer). Using complex SDP
    without explicitly specifying the sdpSemantics is considered unsafe in this
    context because such usage is sensitive to the rollout of a different
    default SDP semantic.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.SdpComplexUsage.SetRemoteAnswer"
    enum="PeerConnectionSdpUsageCategory">
  <owner>hbos@chromium.org</owner>
  <summary>
    The SDP usage category (&quot;safe&quot;, &quot;unsafe&quot; or
    &quot;unknown&quot;) of setRemoteDescription(answer). Using complex SDP
    without explicitly specifying the sdpSemantics is considered unsafe in this
    context because such usage is sensitive to the rollout of a different
    default SDP semantic.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.SdpComplexUsage.SetRemoteOffer"
    enum="PeerConnectionSdpUsageCategory">
  <owner>hbos@chromium.org</owner>
  <summary>
    The SDP usage category (&quot;safe&quot;, &quot;unsafe&quot; or
    &quot;unknown&quot;) of setRemoteDescription(offer). Using complex SDP
    without explicitly specifying the sdpSemantics is considered unsafe in this
    context because such usage is sensitive to the rollout of a different
    default SDP semantic.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.SdpFormatReceived"
    enum="PeerConnectionSdpFormatReceived">
  <owner>steveanton@chromium.org</owner>
  <summary>
    What SDP format is received in the remote offer. The value &quot;no
    tracks&quot; means that no audio or video tracks were received. The value
    &quot;simple&quot; means that at most one audio and at most one video track
    was received. The value &quot;complex&quot; means that more than one audio
    or more than one video track was received, and how this was signaled is
    indicated (&quot;Plan B&quot; meaning with a=ssrc lines within the same m=
    section and &quot;Unified Plan&quot; meaning with a separate m= section).
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.SdpSemanticNegotiated"
    enum="PeerConnectionSdpSemanticNegotiated">
  <owner>hta@chromium.org</owner>
  <summary>
    What SDP semantic (Unified Plan or Plan B) was detected when completing
    negotiation of a PeerConnection. This is recorded when accepting an SDP
    Answer. The value &quot;mixed&quot; means that the accepted answer included
    both types of marker in the SDP. The value &quot;none&quot; will happen when
    the answerer sends no media.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.SdpSemanticRequested"
    enum="PeerConnectionSdpSemanticRequested">
  <owner>hta@chromium.org</owner>
  <summary>
    What SDP semantic (Unified Plan, Plan B or &quot;use default&quot;) has been
    asked for by the creator of a PeerConnection.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.SelectedRtcpMuxPolicy"
    enum="PeerConnectionRtcpMuxPolicy">
  <obsolete>
    Deprecated on Dec 2016. This histogram is used to gauge the risk of making
    the change for issue 6030. The decision has been made and this is not needed
    any more.
  </obsolete>
  <owner>zhihuang@chromium.org</owner>
  <summary>
    Whether the application specified a value for RTCP-mux policy, and if so,
    which value, &quot;Require&quot; or &quot;Negotiate&quot;. Recorded after
    parsing the configuration when creating the RTCPeerConnection.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.Simulcast.ApplyLocalDescription"
    enum="SimulcastApiVersion">
  <owner>amithi@chromium.org</owner>
  <summary>
    Was simulcast applied to the local description and with which API surface.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.Simulcast.ApplyRemoteDescription"
    enum="SimulcastApiVersion">
  <owner>amithi@chromium.org</owner>
  <summary>
    Was simulcast applied to the remote description and with which API surface.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.Simulcast.Disabled">
  <owner>amithi@chromium.org</owner>
  <summary>
    Simulcast was disabled because it is not supported by the remote party. This
    is a counter that can take on only a single value (1).
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.Simulcast.NumberOfSendEncodings">
  <owner>amithi@chromium.org</owner>
  <summary>
    Counts the number of send encodings given to PeerConnection::AddTransceiver.
    This histogram will be used to understand if and how the API is used.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.SrtcpUnprotectError"
    enum="SrtpErrorCode">
  <owner>steveanton@chromium.org</owner>
  <summary>
    What error code is reported by libsrtp when failing to unprotect an incoming
    SRTCP (secured media control) packet.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.SrtpCryptoSuite"
    enum="DTLS_SRTPCryptoSuite">
  <owner>qingsi@google.com</owner>
  <owner>jeroendb@google.com</owner>
  <summary>
    Counters on the type of SRTP crypto suites used by WebRTC. This is collected
    whenever the transport signals the OnCompleted event.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.SrtpUnprotectError" enum="SrtpErrorCode">
  <owner>steveanton@chromium.org</owner>
  <summary>
    What error code is reported by libsrtp when failing to unprotect an incoming
    SRTP (secured media) packet.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.SslCipherSuite" enum="SSLCipherSuite">
  <owner>qingsi@google.com</owner>
  <owner>jeroendb@google.com</owner>
  <summary>
    Counters on the type of SSL cipher suites used by WebRTC. This is collected
    whenever the transport signals the OnCompleted event.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.TimeToConnect" units="ms">
  <owner>qingsi@google.com</owner>
  <owner>jeroendb@google.com</owner>
  <summary>Time to setup a peer to peer call with PeerConnection.</summary>
</histogram>

<histogram name="WebRTC.PeerConnection.TimeToNetworkUpdated" units="ms">
  <owner>qingsi@google.com</owner>
  <owner>jeroendb@google.com</owner>
  <summary>
    Time to receive the first SignalNetworksChanged from the request to start
    updating network in PeerConnection.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.UsagePattern"
    enum="WebRtcPeerConnectionUsagePattern">
  <owner>hta@chromium.org</owner>
  <summary>
    Capsule history of a WebRTC PeerConnection, encoded as a sequence of bits
    encapsulated in an integer. Only a few values will be deemed interesting,
    but the interesting values may change over time.
  </summary>
</histogram>

<histogram name="WebRTC.ReceivedAudioTrackDuration" units="ms">
  <owner>perkj@chromium.org</owner>
  <summary>
    Durations of audio tracks received over a PeerConnection. The stopwatch
    starts when the track first becomes connected, and ends when it is
    disconnected or very soon thereafter.
  </summary>
</histogram>

<histogram name="WebRTC.ReceivedVideoTrackDuration" units="ms">
  <owner>perkj@chromium.org</owner>
  <summary>
    Durations of video tracks received over a PeerConnection. The stopwatch
    starts when the track first becomes connected, and ends when it is
    disconnected or very soon thereafter.
  </summary>
</histogram>

<histogram name="WebRTC.ReliableDataChannelMessageSize" units="bytes">
  <owner>perkj@chromium.org</owner>
  <summary>
    Sizes of messages sent over reliable data channels. The size of an
    individual message is added to the histogram as a sample immediately when a
    message is sent.
  </summary>
</histogram>

<histogram name="WebRTC.ScreenCaptureTime" units="ms">
  <owner>jiayl@chromium.org</owner>
  <summary>Time for capturing one frame in screen capturing.</summary>
</histogram>

<histogram name="WebRTC.SentAudioTrackDuration" units="ms">
  <owner>perkj@chromium.org</owner>
  <summary>
    Durations of audio tracks sent over a PeerConnection. The stopwatch starts
    when the track first becomes connected, and ends when it is disconnected or
    very soon thereafter.
  </summary>
</histogram>

<histogram name="WebRTC.SentVideoTrackDuration" units="ms">
  <owner>perkj@chromium.org</owner>
  <summary>
    Durations of video tracks sent over a PeerConnection. The stopwatch starts
    when the track first becomes connected, and ends when it is disconnected or
    very soon thereafter.
  </summary>
</histogram>

<histogram name="WebRTC.Stun.BatchSuccessPercent" units="%">
  <owner>qingsi@google.com</owner>
  <owner>jeroendb@google.com</owner>
  <summary>
    For clients using a shared source port per STUN binding request toward the
    specified servers, success rate for requests which received a response with
    various intervals between requests. Only the first instance of renderers
    will conduct the trial and log this result. The STUN binding requests are
    grouped into multiple batches and the success rate is calculated for an
    individual batch.
  </summary>
</histogram>

<histogram name="WebRTC.Stun.ResponseLatency" units="ms">
  <owner>qingsi@google.com</owner>
  <owner>jeroendb@google.com</owner>
  <summary>
    For clients using a shared source port per STUN binding request, average RTT
    for requests which received a response with various intervals between
    requests. Only the first instance of renderers will conduct the trial and
    log this result.
  </summary>
</histogram>

<histogram name="WebRTC.Stun.SuccessPercent" units="%">
  <owner>qingsi@google.com</owner>
  <owner>jeroendb@google.com</owner>
  <summary>
    For clients using a shared source port per STUN binding request, success
    rate for requests which received a response with various intervals between
    requests. Only the first instance of renderers will conduct the trial and
    log this result.
  </summary>
</histogram>

<histogram name="WebRTC.SystemMaxConsecutiveBytesDelayed">
  <owner>qingsi@google.com</owner>
  <owner>jeroendb@google.com</owner>
  <summary>
    The maximum of consecutive delayed bytes caused by EWOULDBLOCKs from system.
    This happens when system can't send any packet synchronously at that moment.
  </summary>
</histogram>

<histogram name="WebRTC.SystemPercentPacketsDelayed" units="%">
  <owner>qingsi@google.com</owner>
  <owner>jeroendb@google.com</owner>
  <summary>
    The percentage of packets delayed due to ERR_IO_PENDING from system in a
    WebRTC socket. This happens when system can't send any packet synchronously
    at that moment.
  </summary>
</histogram>

<histogram name="WebRTC.SystemSendPacketDuration" units="ms">
  <owner>qingsi@google.com</owner>
  <owner>jeroendb@google.com</owner>
  <summary>
    The duration that it takes to send out a packet in system layer. This
    includes both the queuing time (under the condition when socket returns
    EWOULDBLOCK from system) as well as the time system takes to finish the
    asynchronous send. For UDP, it's the time from P2PSocketHostUdp::Send to
    P2PSocketHostUdp::HandleSendResult. Tcp part is to be implemented.
  </summary>
</histogram>

<histogram name="WebRTC.UnreliableDataChannelMessageSize" units="bytes">
  <owner>perkj@chromium.org</owner>
  <summary>
    Sizes of messages sent over unreliable data channels. The size of an
    individual message is added to the histogram as a sample immediately when a
    message is sent.
  </summary>
</histogram>

<histogram name="WebRTC.UserMediaRequest.NoResultState"
    enum="MediaStreamRequestState">
  <owner>andresp@chromium.org</owner>
  <summary>
    The state of a UserMediaRequest when it gets destroyed before having a
    result.

    Note: &quot;Explicitly Cancelled&quot; means
    MediaStreamImpl::cancelUserMediaRequest was called and not necessarily that
    the user cancelled. Those are likely tracked as UserMediaRequest with a
    result of permission denied.
  </summary>
</histogram>

<histogram name="WebRTC.UserMediaRequest.Result"
    enum="MediaStreamRequestResult">
  <obsolete>
    Replaced by WebRTC.UserMediaRequest.Result2 in Feb 2018.
  </obsolete>
  <owner>andresp@chromium.org</owner>
  <summary>
    Counters for UserMediaRequests results such as failure reasons.
  </summary>
</histogram>

<histogram name="WebRTC.UserMediaRequest.Result2"
    enum="MediaStreamRequestResult2">
  <owner>grunell@chromium.org</owner>
  <summary>
    Counters for UserMediaRequests results such as failure reasons. The standard
    specification error names are in parenthesis.
  </summary>
</histogram>

<histogram name="WebRTC.Video.AdaptChangesPerMinute" units="changes/minute">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The average number of adaptation changes per minute for a sent video stream.
    Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.AverageRoundTripTimeInMilliseconds" units="ms">
  <owner>holmer@chromium.org</owner>
  <summary>
    The average round-trip time of a WebRTC call in milliseconds. Recorded when
    a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.AVSyncOffsetInMs" units="ms">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The absolute value of the sync offset between a rendered video frame and the
    latest played audio frame is measured per video frame. The average offset
    per received video stream is recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.BadCall.Any" units="%">
  <owner>sprang@chromium.org</owner>
  <summary>
    Fraction of time the call was classified as bad because of any reason.
  </summary>
</histogram>

<histogram name="WebRTC.Video.BadCall.FrameRate" units="%">
  <owner>sprang@chromium.org</owner>
  <summary>
    Fraction of time the call was classified as bad because of low framerate.
  </summary>
</histogram>

<histogram name="WebRTC.Video.BadCall.FrameRateVariance" units="%">
  <owner>sprang@chromium.org</owner>
  <summary>
    Fraction of time the call was classified as bad because of high framerate
    variance.
  </summary>
</histogram>

<histogram name="WebRTC.Video.BadCall.Qp" units="%">
  <owner>sprang@chromium.org</owner>
  <summary>
    Fraction of time the call was classified as bad because of high qp.
  </summary>
</histogram>

<histogram name="WebRTC.Video.BandwidthLimitedResolutionInPercent" units="%">
  <owner>asapersson@chromium.org</owner>
  <summary>
    Percentage of sent frames that are limited in resolution due to bandwidth
    for a sent video stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.BandwidthLimitedResolutionsDisabled"
    units="disabled resolutions">
  <owner>asapersson@chromium.org</owner>
  <summary>
    For frames that are limited in resolution due to bandwidth, the average
    number of disabled resolutions is recorded for a sent video stream. Recorded
    when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.BitrateReceivedInKbps" units="kbps">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of received bits per second for a received video stream. Recorded
    when a stream is removed. The total number of bytes is divided by the time
    the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.BitrateSentInKbps" units="kbps">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of sent bits per second for a sent video stream. Recorded when a
    stream is removed. The total number of bytes is divided by the time the
    video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.CompleteFramesReceivedPerSecond" units="fps">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of complete frames received per second for a received video
    stream. Recorded when a stream is removed. The total number of frames is
    divided by the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.CpuLimitedResolutionInPercent" units="%">
  <owner>asapersson@chromium.org</owner>
  <summary>
    Percentage of frames that are limited in resolution due to CPU for a sent
    video stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.CurrentDelayInMs" units="ms">
  <owner>asapersson@chromium.org</owner>
  <summary>
    Average current delay for a received video stream. This is the actual delay
    imposed on frames (where the goal is to reach the target delay (see
    WebRTC.Video.TargetDelayInMs)). Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Decoded.Vp8.Qp" units="qp value">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The average QP (quantizer value) per frame for a received VP8 video stream.
    Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.DecodedFramesPerSecond" units="fps">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of decoded frames per second for a received video stream.
    Recorded when a stream is removed. The total number of frames is divided by
    the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.DecodeTimeInMs" units="ms">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The average decode time per frame for a received video stream. Recorded when
    a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.DelayedFramesToRenderer" units="%">
  <owner>asapersson@chromium.org</owner>
  <summary>
    Percentage of delayed frames to renderer for a received video stream.
    Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.DelayedFramesToRenderer_AvgDelayInMs" units="ms">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The average delay of delayed frames to renderer for a received video stream.
    Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.DiscardedPacketsInPercent" units="%">
  <owner>asapersson@chromium.org</owner>
  <summary>
    Percentage of discarded packets by the jitter buffer due to arriving too
    late for a received video stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.DroppedFrames.Capturer" units="frames">
  <owner>ilnik@chromium.org</owner>
  <summary>
    Total number of frames dropped by a capturer for a sent video stream.
    Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.DroppedFrames.Encoder" units="frames">
  <owner>ilnik@chromium.org</owner>
  <summary>
    Total number of frames dropped by an encoder's internal rate limiter for a
    sent video stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.DroppedFrames.EncoderQueue" units="frames">
  <owner>ilnik@chromium.org</owner>
  <summary>
    Total number of frames dropped because encoder queue is full for a sent
    video stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.DroppedFrames.Ratelimiter" units="frames">
  <owner>ilnik@chromium.org</owner>
  <summary>
    Total number of frames dropped by a WebRTC rate limiter (in MediaOpt) for a
    sent video stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.DroppedFrames.Receiver" units="frames">
  <owner>ilnik@chromium.org</owner>
  <summary>
    Total number of frames dropped by a WebRTC on the receive side because they
    are incomplete or undecodable.
  </summary>
</histogram>

<histogram name="WebRTC.Video.DuplicatedPacketsInPercent" units="%">
  <owner>asapersson@chromium.org</owner>
  <summary>
    Percentage of duplicated packets in the jitter buffer for a received video
    stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Encoded.Qp" units="qp value">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The average QP (quantizer value) per frame for a sent video stream. Recorded
    when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Encoder.CodecType" enum="WebRtcVideoCodecs">
  <owner>asapersson@chromium.org</owner>
  <summary>
    Configured video codec for a sent video stream. Recorded when a
    VideoSendStream is destroyed (for streams whose lifetime is longer than 10
    seconds).
  </summary>
</histogram>

<histogram name="WebRTC.Video.EncodeTimeInMs" units="ms">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The average encode time per frame for a sent video stream. Recorded when a
    stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.EndToEndDelayInMs" units="ms">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The average end-to-end delay per frame for a received video stream. Recorded
    when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.EndToEndDelayMaxInMs" units="ms">
  <owner>ilnik@chromium.org</owner>
  <summary>
    The maximum end-to-end delay per frame for a received video stream. Recorded
    when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.FecBitrateReceivedInKbps" units="kbps">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of received FEC bits per second for a received video stream.
    Recorded when a stream is removed. The total number of bytes is divided by
    the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.FecBitrateSentInKbps" units="kbps">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of sent FEC bits per second for a sent video stream. Recorded
    when a stream is removed. The total number of bytes is divided by the time
    the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.FirPacketsReceivedPerMinute"
    units="packets/minute">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of received RTCP FIR packets per minute for a sent video stream.
    Recorded when a stream is removed. The total number of packets is divided by
    the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.FirPacketsSentPerMinute" units="packets/minute">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of sent RTCP FIR packets per minute for a received video stream.
    Recorded when a stream is removed. The total number of packets is divided by
    the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.H264DecoderImpl.Event"
    enum="WebRtcH264DecoderImplEvent">
  <owner>hbos@chromium.org</owner>
  <summary>
    The number of |H264DecoderImpl| events, such as an initialization or
    decoding error, that have occurred. At most one Init and one Error is
    reported per |H264DecoderImpl| instance. This is to avoid the same event
    from being reported multiple times (e.g. if there is an error you might
    re-initialize or get a decode error every frame which would otherwise
    pollute the data).
  </summary>
</histogram>

<histogram name="WebRTC.Video.H264EncoderImpl.Event"
    enum="WebRtcH264EncoderImplEvent">
  <owner>hbos@chromium.org</owner>
  <summary>
    The number of |H264EncoderImpl| events, such as an initialization or
    encoding error, that have occurred. At most one Init and one Error is
    reported per |H264EncoderImpl| instance. This is to avoid the same event
    from being reported multiple times (e.g. if there is an error you might
    re-initialize or get an encode error every frame which would otherwise
    pollute the data).
  </summary>
</histogram>

<histogram name="WebRTC.Video.InputFramesPerSecond" units="fps">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of incoming frames per second for a sent video stream. Recorded
    when a stream is removed. The total number of frames is divided by the time
    the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.InputHeightInPixels" units="pixels">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The average input height per frame (for incoming frames to video engine) for
    a sent video stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.InputWidthInPixels" units="pixels">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The average input width per frame (for incoming frames to video engine) for
    a sent video stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.InterframeDelay95PercentileInMs" units="ms">
  <owner>ilnik@chromium.org</owner>
  <summary>
    The 95th percentile of interframe delay for a received video stream.
    Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.InterframeDelayInMs" units="ms">
  <owner>ilnik@chromium.org</owner>
  <summary>
    The average interframe delay for a received video stream. Recorded when a
    stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.InterframeDelayMaxInMs" units="ms">
  <owner>ilnik@chromium.org</owner>
  <summary>
    The maximum interframe delay for a received video stream. Recorded when a
    stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.JitterBufferDelayInMs" units="ms">
  <owner>asapersson@chromium.org</owner>
  <summary>
    Average jitter buffer delay for a received video stream. Recorded when a
    stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.KeyFramesReceivedInPermille" units="permille">
  <owner>asapersson@chromium.org</owner>
  <summary>
    Permille of frames that are key frames for a received video stream. Recorded
    when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.KeyFramesSentInPermille" units="permille">
  <owner>asapersson@chromium.org</owner>
  <summary>
    Permille of frames that are key frames for a sent video stream. Recorded
    when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.MeanFreezeDurationMs" units="ms">
  <owner>ilnik@chromium.org</owner>
  <summary>
    The average duration of a freeze in video playback. Recorded when a received
    stream is removed or content type changes.
  </summary>
</histogram>

<histogram name="WebRTC.Video.MeanTimeBetweenFreezesMs" units="ms">
  <owner>ilnik@chromium.org</owner>
  <summary>
    The average duration of a smooth video playback. Recorded when a received
    stream is removed or content type changes.
  </summary>
</histogram>

<histogram name="WebRTC.Video.MediaBitrateReceivedInKbps" units="kbps">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of received media payload bits per second for a received video
    stream. Recorded when a stream is removed. The total number of bytes is
    divided by the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.MediaBitrateSentInKbps" units="kbps">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of sent media payload bits per second for a sent video stream.
    Recorded when a stream is removed. The total number of bytes is divided by
    the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.NackPacketsReceivedPerMinute"
    units="packets/minute">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of received RTCP NACK packets per minute for a sent video stream.
    Recorded when a stream is removed. The total number of packets is divided by
    the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.NackPacketsSentPerMinute" units="packets/minute">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of sent RTCP NACK packets per minute for a received video stream.
    Recorded when a stream is removed. The total number of packets is divided by
    the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.NumberFreezesPerMinute" units="freezes/minute">
  <owner>ssilkin@chromium.org</owner>
  <summary>
    The number of video freezes per minute for a received video stream. Recorded
    when a stream is removed or content type changes.
  </summary>
</histogram>

<histogram name="WebRTC.Video.NumberOfPauseEvents" units="pause events">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of times a video stream has been paused/resumed during a call.
    Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.NumberResolutionDownswitchesPerMinute"
    units="switches/minute">
  <owner>ilnik@chromium.org</owner>
  <summary>
    The average number of resolution down-switches per minute for a received
    video stream. Recorded when a stream is removed or content type changes.
  </summary>
</histogram>

<histogram name="WebRTC.Video.OnewayDelayInMs" units="ms">
  <owner>asapersson@chromium.org</owner>
  <summary>
    Average delay (network delay (rtt/2) + jitter delay + decode time + render
    delay) for a received video stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.PaddingBitrateReceivedInKbps" units="kbps">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of received padding bits per second for a received video stream.
    Recorded when a stream is removed. The total number of bytes is divided by
    the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.PaddingBitrateSentInKbps" units="kbps">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of sent padding bits per second for a sent video stream. Recorded
    when a stream is removed. The total number of bytes is divided by the time
    the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.PausedTimeInPercent" units="%">
  <owner>asapersson@chromium.org</owner>
  <summary>
    Percentage of time that the video has been paused for a sent video stream.
    Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.PliPacketsReceivedPerMinute"
    units="packets/minute">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of received RTCP PLI packets per minute for a sent video stream.
    Recorded when a stream is removed. The total number of packets is divided by
    the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.PliPacketsSentPerMinute" units="packets/minute">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of sent RTCP PLI packets per minute for a received video stream.
    Recorded when a stream is removed. The total number of packets is divided by
    the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.QualityLimitedResolutionDownscales"
    units="downscales">
  <owner>asapersson@chromium.org</owner>
  <summary>
    For frames that are downscaled in resolution due to quality, the average
    number of downscales is recorded for a sent video stream. Recorded when a
    stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.QualityLimitedResolutionInPercent" units="%">
  <owner>asapersson@chromium.org</owner>
  <summary>
    Percentage of sent frames that are downscaled in resolution due to quality
    for a sent video stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.ReceivedFecPacketsInPercent" units="%">
  <owner>asapersson@chromium.org</owner>
  <summary>
    Percentage of received FEC packets for a received video stream. Recorded
    when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.ReceivedHeightInPixels" units="pixels">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The average received height per frame for a received video stream. Recorded
    when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.ReceivedPacketsLostInPercent" units="%">
  <owner>asapersson@chromium.org</owner>
  <summary>
    Percentage of received packets lost for a received video stream. Recorded
    when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.ReceivedWidthInPixels" units="pixels">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The average received width per frame for a received video stream. Recorded
    when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.ReceiveStreamLifetimeInSeconds" units="seconds">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The lifetime of a video receive stream. Recorded when a VideoReceiveStream
    instance is destroyed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.RecoveredMediaPacketsInPercentOfFec" units="%">
  <owner>asapersson@chromium.org</owner>
  <summary>
    Percentage of recovered media packets from FEC packets for a received video
    stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.RenderFramesPerSecond" units="fps">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of sent frames to the renderer per second for a received video
    stream. Recorded when a stream is removed. The total number of frames is
    divided by the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.RenderSqrtPixelsPerSecond" units="pps">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of pixels (sqrt(width*height)) of sent frames to the renderer per
    second for a received video stream. Recorded when a stream is removed. The
    total number of pixels is divided by the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.RetransmittedBitrateReceivedInKbps" units="kbps">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of retransmitted bits per second for a received video stream.
    Recorded when a stream is removed. The total number of bytes is divided by
    the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.RetransmittedBitrateSentInKbps" units="kbps">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of retransmitted bits per second for a sent video stream.
    Recorded when a stream is removed. The total number of bytes is divided by
    the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.RtpToNtpFreqOffsetInKhz" units="kHz">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The absolute value of the difference between the estimated frequency during
    RTP timestamp to NTP time conversion and the actual value (i.e. 90 kHz) is
    measured per received video frame. The max offset during 40 second intervals
    is stored. The average of these stored offsets per received video stream is
    recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.RtxBitrateReceivedInKbps" units="kbps">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of received bits over RTX per second for a received video stream.
    Recorded when a stream is removed. The total number of bytes is divided by
    the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.RtxBitrateSentInKbps" units="kbps">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of sent bits over RTX per second for a sent video stream.
    Recorded when a stream is removed. The total number of bytes is divided by
    the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.BandwidthLimitedResolutionInPercent"
    units="%">
  <owner>sprang@chromium.org</owner>
  <summary>
    Percentage of sent frames that are limited in resolution due to bandwidth
    for a sent (screen content) video stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.BandwidthLimitedResolutionsDisabled"
    units="disabled resolutions">
  <owner>sprang@chromium.org</owner>
  <summary>
    For frames that are limited in resolution due to bandwidth, the average
    number of disabled resolutions is recorded for a sent (screen content) video
    stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.BitrateSentInKbps" units="kbps">
  <owner>sprang@chromium.org</owner>
  <summary>
    The number of sent bits per second for a sent screenshare stream. Recorded
    when a stream is removed. The total number of bytes is divided by the time
    the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.Decoded.Vp8.Qp" units="qp value">
  <owner>ilnik@chromium.org</owner>
  <summary>
    The average QP (quantizer value) per frame for a received VP8 screenshare
    stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.DroppedFrames.Capturer"
    units="frames">
  <owner>ilnik@chromium.org</owner>
  <summary>
    Total number of frames dropped by a capturer for a sent screenshare stream.
    Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.DroppedFrames.Encoder" units="frames">
  <owner>ilnik@chromium.org</owner>
  <summary>
    Total number of frames dropped by an encoder's internal rate limiter for a
    sent screenshare stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.DroppedFrames.EncoderQueue"
    units="frames">
  <owner>ilnik@chromium.org</owner>
  <summary>
    Total number of frames dropped because encoder queue is full for a sent
    screenshare stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.DroppedFrames.Ratelimiter"
    units="frames">
  <owner>ilnik@chromium.org</owner>
  <summary>
    Total number of frames dropped by a WebRTC rate limiter (in MediaOpt) for a
    sent screenshare stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.EncodeTimeInMs" units="ms">
  <owner>sprang@chromium.org</owner>
  <summary>
    The average encode time per frame for a sent (screen content) video stream.
    Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.EndToEndDelayInMs" units="ms">
  <owner>ilnik@chromium.org</owner>
  <summary>
    The average end-to-end delay per frame for a received screenshare stream.
    Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.EndToEndDelayMaxInMs" units="ms">
  <owner>ilnik@chromium.org</owner>
  <summary>
    The maximum end-to-end delay per frame for a received screenshare stream.
    Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.FecBitrateSentInKbps" units="kbps">
  <owner>sprang@chromium.org</owner>
  <summary>
    The number of sent FEC bits per second for a sent screenshare stream.
    Recorded when a stream is removed. The total number of bytes is divided by
    the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.FirPacketsReceivedPerMinute"
    units="packets/minute">
  <owner>sprang@chromium.org</owner>
  <summary>
    The number of received RTCP FIR packets per minute for a sent screenshare
    stream. Recorded when a stream is removed. The total number of packets is
    divided by the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.FramesPerDrop"
    units="sent/dropped ratio">
  <owner>sprang@chromium.org</owner>
  <summary>
    Ratio of sent frames to dropped frames at the encoder. The value is reported
    when a stream is removed and is calculated as the total number frames sent
    divided by the number of dropped frames.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.FramesPerOvershoot"
    units="sent/overshoot ratio">
  <owner>sprang@chromium.org</owner>
  <summary>
    Ratio of sent frames to number of re-encoded frames (due to target bitrate
    overshoot). The value is reported when a stream is removed and is calculated
    as the total number frames sent divided by the number of re-encoded frames.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.InputFramesPerSecond" units="fps">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of incoming frames per second for a sent (screen content) video
    stream. Recorded when a stream is removed. The total number of frames is
    divided by the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.InputHeightInPixels" units="pixels">
  <owner>sprang@chromium.org</owner>
  <summary>
    The average input height per frame (for incoming frames to video engine) for
    a sent (screen content) video stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.InputWidthInPixels" units="pixels">
  <owner>sprang@chromium.org</owner>
  <summary>
    The average input width per frame (for incoming frames to video engine) for
    a sent (screen content) video stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.InterframeDelay95PercentileInMs"
    units="ms">
  <owner>ilnik@chromium.org</owner>
  <summary>
    The 95th percentile of interframe delay for a received screenshare stream.
    Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.InterframeDelayInMs" units="ms">
  <owner>ilnik@chromium.org</owner>
  <summary>
    The average interframe delay for a received screenshare stream. Recorded
    when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.InterframeDelayMaxInMs" units="ms">
  <owner>ilnik@chromium.org</owner>
  <summary>
    The maximum interframe delay for a received screenshare stream. Recorded
    when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.KeyFramesReceivedInPermille"
    units="permille">
  <owner>ilnik@chromium.org</owner>
  <summary>
    Permille of frames that are key frames for a received screenshare stream.
    Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.KeyFramesSentInPermille"
    units="permille">
  <owner>sprang@chromium.org</owner>
  <summary>
    Permille of frames that are key frames for a sent (screen content) video
    stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.Layer0">
  <owner>sprang@chromium.org</owner>
  <summary>
    Stats for the lower layer (TL0) of a screenshare stream in conference mode.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.Layer1">
  <owner>sprang@chromium.org</owner>
  <summary>
    Stats for the higher layer (TL1) of a screenshare stream in conference mode.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.MeanFreezeDurationMs" units="ms">
  <owner>ilnik@chromium.org</owner>
  <summary>
    The average duration of a freeze in screenshare playback. Recorded then a
    received stream is removed or content type changes.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.MeanTimeBetweenFreezesMs" units="ms">
  <owner>ilnik@chromium.org</owner>
  <summary>
    The average duration of a smooth video playback for screenshare stream.
    Recorded when a received stream is removed or content type changes.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.MediaBitrateReceivedInKbps"
    units="kbps">
  <owner>ilnik@chromium.org</owner>
  <summary>
    The number of received media payload bits per second for a received
    screenshare stream. Recorded when a stream is removed. The total number of
    bytes is divided by the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.MediaBitrateSentInKbps" units="kbps">
  <owner>sprang@chromium.org</owner>
  <summary>
    The number of sent media payload bits per second for a sent screenshare
    stream. Recorded when a stream is removed. The total number of bytes is
    divided by the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.NackPacketsReceivedPerMinute"
    units="packets/minute">
  <owner>sprang@chromium.org</owner>
  <summary>
    The number of received RTCP NACK packets per minute for a sent screenshare
    stream. Recorded when a stream is removed. The total number of packets is
    divided by the time the video stream exists.
  </summary>
</histogram>

<histogram
    name="WebRTC.Video.Screenshare.NumberResolutionDownswitchesPerMinute"
    units="switches/minute">
  <owner>ilnik@chromium.org</owner>
  <summary>
    The average number of resolution down-switches per minute for a receive
    screenshare stream. Recorded when a stream is removed or content type
    changes.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.PaddingBitrateSentInKbps"
    units="kbps">
  <owner>sprang@chromium.org</owner>
  <summary>
    The number of sent padding bits per second for a sent screenshare stream.
    Recorded when a stream is removed. The total number of bytes is divided by
    the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.PliPacketsReceivedPerMinute"
    units="packets/minute">
  <owner>sprang@chromium.org</owner>
  <summary>
    The number of received RTCP PLI packets per minute for a sent screenshare
    stream. Recorded when a stream is removed. The total number of packets is
    divided by the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.QualityLimitedResolutionDownscales"
    units="downscales">
  <owner>sprang@chromium.org</owner>
  <summary>
    For frames that are downscaled in resolution due to quality, the average
    number of downscales is recorded for a sent (screen content) video stream.
    Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.QualityLimitedResolutionInPercent"
    units="%">
  <owner>sprang@chromium.org</owner>
  <summary>
    Percentage of sent frames that are downscaled in resolution due to quality
    for a sent (screen content) video stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.ReceivedHeightInPixels"
    units="pixels">
  <owner>ilnik@chromium.org</owner>
  <summary>
    The average received height per frame for a received screenshare stream.
    Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.ReceivedPacketsLostInPercent"
    units="%">
  <owner>ilnik@chromium.org</owner>
  <summary>
    Percentage of received packets lost for a received screenshare stream.
    Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.ReceivedWidthInPixels" units="pixels">
  <owner>ilnik@chromium.org</owner>
  <summary>
    The average received width per frame for a received screenshare stream.
    Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.ReceiveStreamLifetimeInSeconds"
    units="seconds">
  <owner>ilnik@chromium.org</owner>
  <summary>
    The lifetime of a screenshare receive stream. Recorded when a
    VideoReceiveStream instance is destroyed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.RetransmittedBitrateSentInKbps"
    units="kbps">
  <owner>sprang@chromium.org</owner>
  <summary>
    The number of retransmitted bits per second for a sent screenshare stream.
    Recorded when a stream is removed. The total number of bytes is divided by
    the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.RtxBitrateSentInKbps" units="kbps">
  <owner>sprang@chromium.org</owner>
  <summary>
    The number of sent bits over RTX per second for a sent screenshare stream.
    Recorded when a stream is removed. The total number of bytes is divided by
    the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.SendSideDelayInMs" units="ms">
  <owner>sprang@chromium.org</owner>
  <summary>
    The average delay (of average delays) of sent packets for a sent (screen
    content) video stream. Recorded when a stream is removed. The delay is
    measured from a frame is input to video engine until a packet is sent to the
    network. For each sent packet, the average delay of all sent packets over
    the last second is reported. The average of these reported delays is
    recorded.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.SendSideDelayMaxInMs" units="ms">
  <owner>sprang@chromium.org</owner>
  <summary>
    The average delay (of max delays) of sent packets for a sent (screen
    content) video stream. Recorded when a stream is removed. The delay is
    measured from a frame is input to video engine until a packet is sent to the
    network. For each sent packet, the maximum delay of all sent packets over
    the last second is reported. The average of these reported delays is
    recorded.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.SentFramesPerSecond" units="fps">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of sent frames per second for a sent (screen content) video
    stream. Recorded when a stream is removed. The total number of frames is
    divided by the time the video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.SentHeightInPixels" units="pixels">
  <owner>sprang@chromium.org</owner>
  <summary>
    The average sent height per frame for a sent (screen content) video stream.
    Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.SentPacketsLostInPercent" units="%">
  <owner>sprang@chromium.org</owner>
  <summary>
    Percentage of sent packets lost for a sent screenshare stream. Recorded when
    a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.SentToInputFpsRatioPercent" units="%">
  <owner>ilnik@chromium.org</owner>
  <summary>
    Ratio between Screenshare.SentFramesPerSecond and
    Screenshare.InputFramesPerSecond in percents. Recorded when a stream is
    removed. The total number of sent frames is divided by the total number of
    input frames and multiplied by 100.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.SentWidthInPixels" units="pixels">
  <owner>sprang@chromium.org</owner>
  <summary>
    The average sent width per frame for a sent (screen content) video stream.
    Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.TimeInBlockyVideoPercentage"
    units="%">
  <owner>ilnik@chromium.org</owner>
  <summary>
    Percentage of time the received screenshare stream playbacks low quality
    blocky video. Recorded when a stream is removed or content type changes.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.TimeInHdPercentage" units="%">
  <owner>ilnik@chromium.org</owner>
  <summary>
    Percentage of time the received screenshare stream playbacks HD resolution.
    Recorded when a stream is removed or content type changes.
  </summary>
</histogram>

<histogram name="WebRTC.Video.Screenshare.UniqueNackRequestsReceivedInPercent"
    units="%">
  <owner>sprang@chromium.org</owner>
  <summary>
    Percentage of unique RTCP NACK requests that are received in response to a
    sent screenshare stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.SendDelayInMs" units="ms">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The average send delay of sent packets for a sent video stream. Recorded
    when a stream is removed. The delay is measured from a packet is sent to the
    transport until leaving the socket.
  </summary>
</histogram>

<histogram name="WebRTC.Video.SendSideDelayInMs" units="ms">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The average delay (of average delays) of sent packets for a sent video
    stream. Recorded when a stream is removed. The delay is measured from a
    frame is input to video engine until a packet is sent to the network. For
    each sent packet, the average delay of all sent packets over the last second
    is reported. The average of these reported delays is recorded.
  </summary>
</histogram>

<histogram name="WebRTC.Video.SendSideDelayMaxInMs" units="ms">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The average delay (of max delays) of sent packets for a sent video stream.
    Recorded when a stream is removed. The delay is measured from a frame is
    input to video engine until a packet is sent to the network. For each sent
    packet, the maximum delay of all sent packets over the last second is
    reported. The average of these reported delays is recorded.
  </summary>
</histogram>

<histogram name="WebRTC.Video.SendStreamLifetimeInSeconds" units="seconds">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The lifetime of a video send stream. Recorded when a VideoSendStream
    instance is destroyed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.SentFramesPerSecond" units="fps">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The number of sent frames per second for a sent video stream. Recorded when
    a stream is removed. The total number of frames is divided by the time the
    video stream exists.
  </summary>
</histogram>

<histogram name="WebRTC.Video.SentHeightInPixels" units="pixels">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The average sent height per frame for a sent video stream. Recorded when a
    stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.SentPacketsLostInPercent" units="%">
  <owner>asapersson@chromium.org</owner>
  <summary>
    Percentage of sent packets lost for a sent video stream. Recorded when a
    stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.SentToInputFpsRatioPercent" units="%">
  <owner>ilnik@chromium.org</owner>
  <summary>
    Ratio between SentFramesPerSecond and InputFramesPerSecond in percents.
    Recorded when a stream is removed. The total number of sent frames is
    divided by the total number of input frames and multiplied by 100.
  </summary>
</histogram>

<histogram name="WebRTC.Video.SentWidthInPixels" units="pixels">
  <owner>asapersson@chromium.org</owner>
  <summary>
    The average sent width per frame for a sent video stream. Recorded when a
    stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.TargetDelayInMs" units="ms">
  <owner>asapersson@chromium.org</owner>
  <summary>
    Average target delay (jitter delay + decode time + render delay) for a
    received video stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.TimeInBlockyVideoPercentage" units="%">
  <owner>ilnik@chromium.org</owner>
  <summary>
    Percentage of time the receive video stream playbacks low quality blocky
    video. Recorded when a stream is removed or content type changes.
  </summary>
</histogram>

<histogram name="WebRTC.Video.TimeInHdPercentage" units="%">
  <owner>ilnik@chromium.org</owner>
  <summary>
    Percentage of time the receive video stream playbacks HD resolution.
    Recorded when a stream is removed or content type changes.
  </summary>
</histogram>

<histogram name="WebRTC.Video.UniqueNackRequestsReceivedInPercent" units="%">
  <owner>asapersson@chromium.org</owner>
  <summary>
    Percentage of unique RTCP NACK requests that are received in response to a
    sent video stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.UniqueNackRequestsSentInPercent" units="%">
  <owner>asapersson@chromium.org</owner>
  <summary>
    Percentage of unique RTCP NACK requests that are sent in response to a
    received video stream. Recorded when a stream is removed.
  </summary>
</histogram>

<histogram name="WebRTC.Video.VP8DecoderImpl.TooManyPendingFrames"
    units="counts">
  <owner>perkj@chromium.org</owner>
  <summary>
    Counts occurences of if the VP8 software decoder runs out of buffers due to
    that they are not returned to the buffer pool. See http://crbug/652923 and
    http://crbug/542522.
  </summary>
</histogram>

<histogram name="WebRTC.webkitApiCount" enum="WebRTCAPIName">
  <owner>guidou@chromium.org</owner>
  <owner>hbos@chromium.org</owner>
  <owner>mcasas@chromium.org</owner>
  <owner>emircan@chromium.org</owner>
  <summary>Counts number of calls to WebRTC APIs from JavaScript.</summary>
</histogram>

<histogram name="WebRTC.webkitApiCountPerSession" enum="WebRTCAPIName">
  <owner>perkj@chromium.org</owner>
  <summary>
    Counts the number of calls to WebRTC APIs from JavaScript once per session.
    A session is a crude estimate since its implemented as the lifetime of the
    render process that called the WebRTC API.
  </summary>
</histogram>

<histogram name="WebRTC.webkitApiCountUniqueByOrigin" enum="WebRTCAPIName">
  <obsolete>
    Deprecated as of r253828 (27 Feb 2014).
  </obsolete>
  <owner>tommi@chromium.org</owner>
  <summary>
    Counts number of calls to WebRTC APIs from JavaScript, once per origin per
    renderer process.
  </summary>
</histogram>

<histogram name="WebRTC.WindowCaptureTime" units="ms">
  <owner>jiayl@chromium.org</owner>
  <summary>Time for capturing one frame in window capturing.</summary>
</histogram>

<histogram base="true" name="WebRtcTextLogging"
    enum="WebRtcLoggingWebAppIdHash" expires_after="2019-07-01">
  <owner>grunell@chromium.org</owner>
  <summary>
    Counts the number of WebRTC text log events per web application. Suffixed by
    event.
  </summary>
</histogram>

<histogram name="WebRtcTextLogging.UploadFailureNetErrorCode"
    enum="NetErrorCodes" expires_after="2019-07-01">
  <owner>grunell@chromium.org</owner>
  <summary>
    Network error codes for WebRTC text log upload failures. Recorded when an
    upload attempt fails.
  </summary>
</histogram>

<histogram name="WebRtcTextLogging.UploadFailureReason"
    enum="WebRtcLoggingUploadFailureReason" expires_after="2019-07-01">
  <owner>grunell@chromium.org</owner>
  <summary>
    Counts upload failures for WebRTC text log. Error codes for network errors
    are logged in WebRtcTextLogging.UploadFailureNetErrorCode. Recorded when an
    upload attempt fails.
  </summary>
</histogram>

<histogram name="WebShare.ApiCount" enum="WebShareMethod">
  <owner>mgiuca@chromium.org</owner>
  <summary>
    Counts the number of calls to navigator.share. Includes both successful and
    failed shares.
  </summary>
</histogram>

<histogram name="WebShare.ShareOutcome" enum="WebShareOutcome">
  <owner>mgiuca@chromium.org</owner>
  <summary>
    Records the outcome of calls to navigator.share. This will not count any
    calls that never complete (e.g., if the page closes while the picker is
    open). Therefore, DO NOT look at the raw percentages of this histogram;
    instead, compare these numbers with the WebShare.ApiCount.Share total.

    NOTE: At the moment, if the user cancels the picker, its recording will be
    delayed, and possibly never recorded (https://crbug.com/636274), so that
    will account for a discrepancy between ShareOutcome and ApiCount.Share.
  </summary>
</histogram>

<histogram name="WebsiteSettings.Action" enum="WebsiteSettingsAction">
  <owner>estark@chromium.org</owner>
  <summary>
    Tracks actions with the website setting (a.k.a. page info / origin info)
    bubble, such as opening it up or clicking on the Connection tab.
  </summary>
</histogram>

<histogram name="WebsiteSettings.Action.HttpsUrl" enum="WebsiteSettingsAction">
  <obsolete>
    Deprecated October 2016 in favor of Security.PageInfo.Action.HttpsUrl.Valid,
    Security.PageInfo.Action.HttpsUrl.Dangerous, and
    Security.PageInfo.Action.HttpsUrl.Downgraded.
  </obsolete>
  <owner>estark@chromium.org</owner>
  <summary>
    Tracks WebsiteSettings actions that take place on an HTTPS URL. This
    completely disregards security status.
  </summary>
</histogram>

<histogram name="WebsiteSettings.AllSitesAction"
    enum="WebSiteSettingsAllSitesAction" expires_after="2019-08-27">
  <owner>mxcai@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <summary>
    Tracks actions with the &quot;All Sites&quot; page in website settings.
  </summary>
</histogram>

<histogram name="WebsiteSettings.Menu.PermissionChanged" enum="ContentType">
  <owner>miguelg@chromium.org</owner>
  <owner>finnur@chromium.org</owner>
  <summary>
    Count of how often a specific content type (permission) is changed using the
    content settings menu.

    Note: The values of this metric collected for Chrome 49 (early 2016) are
    innacurate and should not be trusted. crbug.com/589255.
  </summary>
</histogram>

<histogram name="WebsiteSettings.Menu.PermissionChanged.Allowed"
    enum="ContentType">
  <owner>miguelg@chromium.org</owner>
  <owner>finnur@chromium.org</owner>
  <summary>
    Count of how often a specific content type (permission) is set to 'Allowed'
    using the content settings menu.

    Note: The values of this metric collected for Chrome 49 (early 2016) are
    innacurate and should not be trusted. crbug.com/589255.
  </summary>
</histogram>

<histogram name="WebsiteSettings.Menu.PermissionChanged.Ask" enum="ContentType">
  <owner>miguelg@chromium.org</owner>
  <owner>finnur@chromium.org</owner>
  <summary>
    Count of how often a specific content type (permission) is set to 'Ask'
    using the content settings menu.
  </summary>
</histogram>

<histogram name="WebsiteSettings.Menu.PermissionChanged.Blocked"
    enum="ContentType">
  <owner>miguelg@chromium.org</owner>
  <owner>finnur@chromium.org</owner>
  <summary>
    Count of how often a specific content type (permission) is set to 'Blocked'
    using the content settings menu.

    Note: The values of this metric collected for Chrome 49 (early 2016) are
    innacurate and should not be trusted. crbug.com/589255.
  </summary>
</histogram>

<histogram name="WebsiteSettings.Menu.PermissionChanged.Reset"
    enum="ContentType">
  <owner>miguelg@chromium.org</owner>
  <owner>finnur@chromium.org</owner>
  <summary>
    Count of how often a specific content type (permission) is reset to the
    default value using the content settings menu.

    Note: The values of this metric collected for Chrome 49 (early 2016) are
    innacurate and should not be trusted. crbug.com/589255.
  </summary>
</histogram>

<histogram name="WebsiteSettings.Menu.PermissionChanged.SessionOnly"
    enum="ContentType">
  <owner>timloh@chromium.org</owner>
  <summary>
    Count of how often a specific content type (permission) is changed to the
    session only value using the content settings menu. This option only exists
    for cookies.
  </summary>
</histogram>

<histogram name="WebsiteSettings.OriginInfo.PermissionChanged"
    enum="ContentType">
  <owner>engedy@chromium.org</owner>
  <summary>
    Count of how often a specific content type (permission) is changed using the
    Origin Info dialog.

    Note: The values of this metric collected for Chrome 49 (early 2016) are
    innacurate and should not be trusted. crbug.com/589255.
  </summary>
</histogram>

<histogram name="WebsiteSettings.OriginInfo.PermissionChanged.Allowed"
    enum="ContentType">
  <owner>engedy@chromium.org</owner>
  <summary>
    Count of how often a specific content type (permission) is set to 'Allowed'
    using the Origin Info dialog.

    Note: The values of this metric collected for Chrome 49 (early 2016) are
    innacurate and should not be trusted. crbug.com/589255.
  </summary>
</histogram>

<histogram name="WebsiteSettings.OriginInfo.PermissionChanged.Blocked"
    enum="ContentType">
  <owner>engedy@chromium.org</owner>
  <summary>
    Count of how often a specific content type (permission) is set to 'Blocked'
    using the Origin Info dialog.

    Note: The values of this metric collected for Chrome 49 (early 2016) are
    innacurate and should not be trusted. crbug.com/589255.
  </summary>
</histogram>

<histogram name="WebsiteSettings.PermissionChanged" enum="ContentType">
  <obsolete>
    Deprecated 12/2014 in Issue 433776, and replaced by
    WebsiteSettings.OriginInfo.PermissionChanged.
  </obsolete>
  <owner>sashab@chromium.org</owner>
  <summary>
    Count of how often a specific content type (permission) is changed using the
    Page Info UI.

    Note: The values of this metric collected for Chrome 49 (early 2016) are
    innacurate and should not be trusted. crbug.com/589255.
  </summary>
</histogram>

<histogram name="websql.Async.OpenTime.Error" units="ms">
  <obsolete>
    Deprecated 12/2018. We're no longer monitoring WebSQL performance.
  </obsolete>
  <owner>cmumford@chromium.org</owner>
  <summary>
    The time required to try (and fail) to open a Web SQL database.
  </summary>
</histogram>

<histogram name="websql.Async.OpenTime.Success" units="ms">
  <obsolete>
    Deprecated 12/2018. We're no longer monitoring WebSQL performance.
  </obsolete>
  <owner>cmumford@chromium.org</owner>
  <summary>The time required to successfully open a Web SQL database.</summary>
</histogram>

<histogram name="websql.OpenDatabase" enum="BooleanSecure">
  <owner>michaeln@chromium.org</owner>
  <summary>
    Counts the number of WebSQL databases opened for secure vs insecure origins.
  </summary>
</histogram>

<histogram name="Webstore.ExtensionInstallResult" enum="BooleanSuccess">
  <owner>jackhou@chromium.org</owner>
  <summary>
    The success or failure of all extension installs from the webstore. This
    includes those initiated by sync.
  </summary>
</histogram>

<histogram name="WebstoreWidgetApp.Close" enum="SuggestAppsDialogCloseReason">
  <obsolete>
    There is no remaining code that is emmiting this metric. It was removed at
    an unknown time.
  </obsolete>
  <owner>joshwoodward@google.com</owner>
  <summary>
    Webstore Widget app: the reason why the suggest apps dialog was closed.
  </summary>
</histogram>

<histogram name="WebstoreWidgetApp.Install" enum="SuggestAppsDialogInstall">
  <obsolete>
    There is no remaining code that is emmiting this metric. It was removed at
    an unknown time.
  </obsolete>
  <owner>joshwoodward@google.com</owner>
  <summary>
    Webstore Widget app: whether the Webstore item user selected was
    successfully installed or not.
  </summary>
</histogram>

<histogram name="WebstoreWidgetApp.Load" enum="SuggestAppsDialogLoad">
  <obsolete>
    There is no remaining code that is emmiting this metric. It was removed at
    an unknown time.
  </obsolete>
  <owner>joshwoodward@google.com</owner>
  <summary>
    Webstore Widget app: whether the initialization of the dialog succeeded or
    not.
  </summary>
</histogram>

<histogram name="WebstoreWidgetApp.LoadTime" units="ms">
  <obsolete>
    There is no remaining code that is emmiting this metric. It was removed at
    an unknown time.
  </obsolete>
  <owner>joshwoodward@google.com</owner>
  <summary>
    Webstore Widget app: time to load the widget contained in the app. Measured
    between the moment window appears and the moment all the contents in the app
    including the Chrome Webstore widget are ready.
  </summary>
</histogram>

<histogram name="WebUI.CreatedForUrl" enum="WebUIUrlHashes">
  <owner>dbeam@chromium.org</owner>
  <summary>URLs for which Chrome creates WebUIControllers.</summary>
</histogram>

<histogram name="WebUI.Settings.PathVisited" enum="WebUISettingsPathHashes">
  <owner>dschuyler@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <owner>bettes@chromium.org</owner>
  <summary>
    Paths within chrome://settings visited. For evaluating popularity and
    priorities for chrome://settings GUI.
  </summary>
</histogram>

<histogram name="WebUsb.ChooserClosed" enum="WebUsbChooserClosed">
  <owner>reillyg@chromium.org</owner>
  <owner>juncai@chromium.org</owner>
  <summary>
    Records the reason why the WebUSB device chooser was closed.
  </summary>
</histogram>

<histogram name="WebUsb.DetectorInitialization" units="ms">
  <owner>reillyg@chromium.org</owner>
  <owner>juncai@chromium.org</owner>
  <summary>
    Records the time spent initializing the WebUSB detector module.
  </summary>
</histogram>

<histogram name="WebUsb.NotificationClosed" enum="WebUsbNotificationClosed">
  <owner>reillyg@chromium.org</owner>
  <owner>juncai@chromium.org</owner>
  <summary>
    Records the reason why the &quot;WebUSB device detected&quot; notification
    was dismissed.
  </summary>
</histogram>

<histogram name="WebUsb.PermissionRevoked" enum="WebUsbPermissionRevoked">
  <owner>reillyg@chromium.org</owner>
  <owner>juncai@chromium.org</owner>
  <summary>
    Records when the user revokes permission for an origin to connect to a USB
    device using the WebUSB API.
  </summary>
</histogram>

<histogram name="WebView.ApiCall" enum="WebViewApiCall">
  <owner>changwan@chromium.org</owner>
  <owner>ntfschr@chromium.org</owner>
  <owner>paulmiller@chromium.org</owner>
  <summary>Records calls to WebView APIs in WebViewChromium.</summary>
</histogram>

<histogram name="WebView.LoadDataWithBaseUrl.HistoryUrl" enum="HistoryUrlType">
  <obsolete>
    Obsolete 04/04/2018 as it has been replaced by
    Android.WebView.LoadDataWithBaseUrl.HistoryUrl.
  </obsolete>
  <owner>jamwalla@chromium.org</owner>
  <summary>
    Records whether the historyUrl parameter to loadDataWithBaseUrl is empty/
    null, the same as the baseUrl parameter, or different from baseUrl.
  </summary>
</histogram>

<histogram name="Welcome.SignInPromptResult" enum="WelcomeSignInPromptOutcome">
  <owner>tmartino@chromium.org</owner>
  <summary>
    Records the result of promoting sign-in via the Welcome page.
  </summary>
</histogram>

<histogram name="Welcome.Win10.DefaultPromptResult" enum="BooleanDefault">
  <owner>tmartino@chromium.org</owner>
  <summary>
    Records whether or not Chrome was the default browser when the user left the
    Win10-specific Welcome page.
  </summary>
</histogram>

<histogram name="Welcome.Win10.NewPromoPageAdded" enum="BooleanShown">
  <owner>pmonette@chromium.org</owner>
  <owner>tmartino@chromium.org</owner>
  <summary>
    Emits a &quot;true&quot; sample when the revamped WebUI-based welcome page
    is added to the startup tabs list. This means that barring an error on
    startup, it was shown to the user. This histogram can only be recorded
    during first-run flow, when the EnableWelcomeWin10 experiment is enabled.
  </summary>
</histogram>

<histogram name="Welcome.Win10.OriginalPromoPageAdded" enum="BooleanShown">
  <owner>pmonette@chromium.org</owner>
  <owner>tmartino@chromium.org</owner>
  <summary>
    Emits a &quot;true&quot; sample when the old external welcome page is added
    to the startup tabs list. This means that barring an error on startup, it
    was shown to the user. This histogram can only be recorded during first-run
    flow, when the EnableWelcomeWin10 experiment is disabled.
  </summary>
</histogram>

<histogram name="Welcome.Win10.PinCheckTimedOut" enum="BooleanTimedOut">
  <owner>pmonette@chromium.org</owner>
  <owner>tmartino@chromium.org</owner>
  <summary>
    Records whether or not the check that verifies if Chrome is pinned to the
    taskbar has timed out. This check is done when the welcome page is opened in
    order to determine which instructions to display to the user.
  </summary>
</histogram>

<histogram name="Welcome.Win10.PinnedPromptResult" enum="BooleanPinned">
  <owner>tmartino@chromium.org</owner>
  <summary>
    Records whether or not Chrome was pinned to the taskbar when the user left
    the Win10-specific Welcome page.
  </summary>
</histogram>

<histogram name="WheelScrolling.WasLatched" enum="BooleanLatched">
  <owner>sahel@chromium.org</owner>
  <summary>
    Records whether or not a GSU event with wheel source is latched to the
    current scrolling element. It is false for the first GSU event of every
    scrolling sequence and true for the rest of the GSU events.
  </summary>
</histogram>

<histogram name="Win8.PageLoad" enum="Win8PageLoadType">
  <owner>zturner@chromium.org</owner>
  <summary>
    Count of page loads in each of the 2 different environments (metro/desktop)
    on Windows 8.
  </summary>
</histogram>

<histogram name="WindowManager.AppWindowCountPerLoad">
  <owner>kuscher@chromium.org</owner>
  <summary>
    The number of app windows open when a load completes. This includes windows
    opened by an app shortcut, or apps opened in a popup. This only counts v1
    apps.
  </summary>
</histogram>

<histogram name="WindowManager.PanelWindowCountPerLoad">
  <obsolete>
    Deprecated 4/2013. No longer tracked.
  </obsolete>
  <owner>kuscher@chromium.org</owner>
  <summary>
    The number of panel windows open when a load completes. Panels are windows
    docked to the bottom of the OS desktop, which are visible to the user even
    while the user is interacting with other applications.
  </summary>
</histogram>

<histogram name="WindowManager.PopUpWindowCountPerLoad">
  <owner>kuscher@chromium.org</owner>
  <summary>
    The number of popup windows open when a load completes. Popup windows only
    have one content area (no multiple tabs) and a stripped down toolbar
    consisting only of a read-only address bar.
  </summary>
</histogram>

<histogram name="WindowManager.TabbedWindowCountPerLoad">
  <owner>kuscher@chromium.org</owner>
  <summary>
    The number of tabbed windows open when a load completes. A tabbed window is
    a normal browser window which can have one or more tabs.
  </summary>
</histogram>

<histogram name="WindowOcclusionChanged" enum="WindowOcclusionState"
    expires_after="2019-12-02">
  <owner>davidbienvenu@chromium.org</owner>
  <owner>fdoray@chromium.org</owner>
  <summary>
    A top level window's occlusion state. Recorded each time the state changes.
  </summary>
</histogram>

<histogram name="Windows.ComputeNativeWindowOcclusionTime" units="microseconds">
  <owner>fdoray@chromium.org</owner>
  <summary>
    The amount of CPU time a call to ComputeNativeWindowOcclusionStatus() takes.
  </summary>
</histogram>

<histogram name="Windows.CreateThreadTime" units="ms">
  <owner>stanisc@chromium.org</owner>
  <summary>
    Time spent inside CreateThread() Windows API call creating a single thread.
  </summary>
</histogram>

<histogram base="true" name="Windows.FilesystemError" enum="WinGetLastError">
  <owner>grt@chromium.org</owner>
  <summary>
    The Windows error code relating to a failed attempt to operate on a file or
    a directory.
  </summary>
</histogram>

<histogram name="Windows.GetVersionExVersion" enum="WindowsVersion">
  <owner>wfh@chromium.org</owner>
  <owner>brucedawson@chromium.org</owner>
  <summary>
    The Windows version (base::win::Version) as reported by GetVersionEx(). This
    is queried shortly after startup.
  </summary>
</histogram>

<histogram name="Windows.HasHighResolutionTimeTicks" enum="Boolean">
  <owner>gab@chromium.org</owner>
  <summary>
    The value of TimeTicks::IsHighResolution(). Reported once per browser
    session, on startup.
  </summary>
</histogram>

<histogram name="Windows.HighResolutionTimerUsage" units="%">
  <owner>stanisc@chromium.org</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.InCompatibilityMode" enum="BooleanCompatibilityMode">
  <owner>wfh@chromium.org</owner>
  <owner>brucedawson@chromium.org</owner>
  <summary>
    A boolean used to indicate when the Windows version reported by
    GetVersionEx() and the Windows version reported by VerQueryValue() on
    kernel32 do not match. This is queried shortly after startup.
  </summary>
</histogram>

<histogram name="Windows.InspectModule.ConnectionError"
    enum="BooleanConnectionError">
  <owner>pmonette@chromium.org</owner>
  <summary>
    Whether connection error has happened for the UtilWin service. Every time a
    connection is made to the service, a &quot;false&quot; value is reported to
    provide a baseline. Every time a mojo connection error happens, a
    &quot;true&quot; value is reported, which typically means the utility
    process crashed.
  </summary>
</histogram>

<histogram name="Windows.IsPinnedToTaskbar" enum="IsPinnedToTaskbarResult">
  <owner>pmonette@chromium.org</owner>
  <summary>
    Indicates whether Chrome is pinned to the Windows taskbar for the current
    user. Recorded shortly after startup.
  </summary>
</histogram>

<histogram name="Windows.IsPinnedToTaskbar.ProcessError" enum="BooleanError">
  <owner>pmonette@chromium.org</owner>
  <summary>
    Indicates whether a connection error occured between the browser and the
    shell handler process. This is usually caused by a crash in the utility
    process. This is logged every time the pinned state is queried.
  </summary>
</histogram>

<histogram name="Windows.Kernel32Version" enum="WindowsVersion">
  <owner>wfh@chromium.org</owner>
  <owner>brucedawson@chromium.org</owner>
  <summary>
    The Windows version (base::win::Version) as reported by VeryQueryValue() on
    kernel32.dll. This is queried shortly after startup.
  </summary>
</histogram>

<histogram name="Windows.ModuleInspector.ReadCacheResult"
    enum="InspectionResultsCacheReadResult" expires_after="M78">
  <owner>chrisha@chromium.org</owner>
  <owner>pmonette@chromium.org</owner>
  <summary>
    The result of reading the InspectionResultsCache from disk. The cache is
    read once at startup when the ModuleInspector needs it.
  </summary>
</histogram>

<histogram name="Windows.ModuleInspector.WriteCacheResult"
    enum="BooleanSuccess" expires_after="M78">
  <owner>chrisha@chromium.org</owner>
  <owner>pmonette@chromium.org</owner>
  <summary>
    The result of writing the InspectionResultsCache to disk. This is done every
    time the ModuleDatabase becomes idle.
  </summary>
</histogram>

<histogram name="Windows.NativeWindowVisibility" units="windows">
  <owner>fdoray@chromium.org</owner>
  <summary>
    The number of Chrome browser windows in a given visibility state. This is
    computed using ComputeNativeWindowOcclusionStatus() and is recorded every 10
    minutes.
  </summary>
</histogram>

<histogram name="Windows.OOPSelectFileDialog.ProcessError" enum="BooleanError">
  <owner>pmonette@chromium.org</owner>
  <summary>
    Indicates whether a connection error occured between the browser and the
    shell handler process. This is usually caused by a crash in the utility
    process. This is logged every time SelectFile() function is called and the
    WinOOPSelectFileDialog feature is enabled.
  </summary>
</histogram>

<histogram name="Windows.ParentProcessNameHash" enum="ProcessNameHash">
  <owner>wfh@chromium.org</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 base="true" name="Windows.PostOperationState"
    enum="PostOperationState">
  <owner>grt@chromium.org</owner>
  <summary>
    The state of an item in the filesystem following an operation on it.
  </summary>
</histogram>

<histogram name="Windows.Tablet" enum="BooleanTablet">
  <owner>zturner@chromium.org</owner>
  <summary>Count of browser launches from a Windows tablet pc.</summary>
</histogram>

<histogram name="Windows.Win32kRendererLockdown" enum="BooleanEnabled">
  <obsolete>
    Deprecated 10/2016 as this is enabled by default so provides no useful data.
  </obsolete>
  <owner>wfh@chromium.org</owner>
  <summary>
    Count of browser launches where Win32k renderer lockdown is enabled.
  </summary>
</histogram>

<histogram name="WinJumplist.Action" enum="WinJumplistCategory">
  <owner>noms@chromium.org</owner>
  <summary>The type of category clicked in the Windows Jumplist</summary>
</histogram>

<histogram name="WinJumplist.CreateIconFilesCount">
  <obsolete>
    Obsolete 07/06/2017 as we are no long recording this metric.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>
    The number of jumplist icons requested to create per jumplist update. It is
    recorded whenever UpdateJumpList() is called.
  </summary>
</histogram>

<histogram name="WinJumplist.CreateIconFilesDuration" units="ms">
  <obsolete>
    Obsolete 07/06/2017 as we are no long recording this metric.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>
    Time spent in CreateIconFiles(). This method is called whenever there is a
    jumplist update and the JumpListIcons folder is empty.
  </summary>
</histogram>

<histogram name="WinJumplist.DeleteDirectoryContentDuration" units="ms">
  <obsolete>
    Obsolete 07/06/2016 as we are no long recording this metric.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>Time spent in DeleteDirectoryContentAndLogRuntime().</summary>
</histogram>

<histogram name="WinJumplist.DeleteDirectoryDuration" units="ms">
  <obsolete>
    Obsolete 04/25/2017 as we are no long recording this metric.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>Time spent in DeleteDirectoryAndLogResults().</summary>
</histogram>

<histogram name="WinJumplist.DeleteStatusJumpListIcons"
    enum="JumplisticonsDeleteCategory">
  <obsolete>
    Obsolete 04/25/2017 as we are no long recording this metric.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>
    This metric records the detailed delete result of JumpListIcons directory.
  </summary>
</histogram>

<histogram name="WinJumplist.DeleteStatusJumpListIconsOld"
    enum="JumplisticonsDeleteCategory">
  <obsolete>
    Obsolete 04/25/2017 as we are no long recording this metric.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>
    This metric records the detailed delete result of JumpListIconsOld
    directory.
  </summary>
</histogram>

<histogram name="WinJumplist.DetailedFolderMoveResults"
    enum="JumplistIconsDetailedFolderMoveCategory">
  <obsolete>
    Obsolete 12/13/2016 as we are no long recording this metric.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>
    This metric is recorded when folder JumpListIcons is moved (can be rename or
    copy and delete) to JumpListIconsOld. This happens when tabs are closed,
    mostly visited URLs get updated, etc. There are several key steps in this
    folder move operation. Before the move operation, there is another step that
    JumpListIconsOld folder is deleted. The status of these steps are put
    together and recorded in this metric. The failure of any of these steps is
    suspected to be related to a known issue.
  </summary>
</histogram>

<histogram name="WinJumplist.DetailedFolderResults"
    enum="JumplistIconsDetailedFolderOperationCategory">
  <obsolete>
    Obsolete 03/10/2017 as it is replaced by DetailedFolderResultsDeleteUpdated.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>
    This metric is recorded when folders JumpListIcons and JumpListIconsOld get
    updated. These two folders are updated when tabs are closed, mostly visited
    URLs get updated, etc. These two folders are updated as follows 1)
    JumpListIconsOld with its content get deleted; 2) if step 1 succeeds,
    JumpListIcons is moved, 3) if any of the previous steps fails, JumpListIcons
    is deleted, 4) A new JumpListIcons folder is created. The status of these 4
    file operations are put together and recorded in this metric. The failure of
    any of these file operations is suspected to be related to a known issue.
  </summary>
</histogram>

<histogram name="WinJumplist.DetailedFolderResultsDeleteUpdated"
    enum="JumplistIconsDetailedFolderOperationDeleteUpdatedCategory">
  <obsolete>
    Obsolete 03/20/2017. New metrics named WinJumplist.DeleteStatusJumpListIcons
    and WinJumplist.DeleteStatusJumpListIconsOld are used instead.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>
    This metric is recorded when folders JumpListIcons and JumpListIconsOld get
    updated. These two folders are updated when tabs are closed, mostly visited
    URLs get updated, etc. These two folders are updated as follows 1)
    JumpListIconsOld with its content get deleted; 2) if step 1 succeeds,
    JumpListIcons is renamed to JumpListIconsOld, 3) if any of the previous
    steps fails, JumpListIcons is deleted, 4) A new JumpListIcons folder is
    created if deletion of JumpListIcons' content succeeds (only fail to delete
    the directory is okay). The status of these 4 file operations are put
    together and recorded in this metric. The failure of any of these file
    operations is suspected to be related to a known issue.
  </summary>
</histogram>

<histogram name="WinJumplist.DirectoryStatusJumpListIcons"
    enum="JumpListIconsFolderExistOrEmptyCategory">
  <obsolete>
    Obsolete 04/25/2017 as we are no long recording this metric.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>
    This metric records whether the folder JumpListIcons exists; and if it does,
    whether it is empty or non-empty.
  </summary>
</histogram>

<histogram name="WinJumplist.DirectoryStatusJumpListIconsOld"
    enum="JumpListIconsFolderExistOrEmptyCategory">
  <obsolete>
    Obsolete 04/25/2017 as we are no long recording this metric.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>
    This metric records whether the folder JumpListIconsOld exists; and if it
    does, whether it is empty or non-empty.
  </summary>
</histogram>

<histogram name="WinJumplist.FolderMoveResults"
    enum="JumplistIconsFolderMoveCategory">
  <obsolete>
    Obsolete 12/08/2016. DetailedFolderMoveResults is used for more detailed
    analysis.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>
    This metric is recorded when folder JumpListIcons is moved (can be rename or
    copy and delete) to JumpListIconsOld. This happens when tabs are closed,
    mostly visited URLs get updated, etc. There are 3 possible steps in this
    folder move operation. Before the move operation, there is another step that
    JumpListIconsOld folder is deleted. The status of these steps are put
    together and recorded in this metric. The failure of any of these steps is
    suspected to be related to a known issue listed below.
    https://bugs.chromium.org/p/chromium/issues/detail?id=179576
  </summary>
</histogram>

<histogram name="WinJumplist.FolderResults" enum="JumplisticonsfolderCategory">
  <obsolete>
    Obsolete 12/13/2016, as we are now recording DetailedFolderResults.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>
    This metric is recorded when folders JumpListIcons and JumpListIconsOld get
    updated. These two folders are updated when tabs are closed, mostly visited
    URLs get updated, etc. These two folders are updated as follows 1)
    JumpListIconsOld with its content get deleted; 2) JumpListIcons is moved, 3)
    A new JumpListIcons folder is created. The status of these three file
    operations are put together and recorded in this metric. The failure of any
    of these file operations is suspected to be related to a known issue.
  </summary>
</histogram>

<histogram name="WinJumplist.NotificationTimeInterval" units="ms">
  <obsolete>
    Obsolete 07/10/2017 as it's no longer needed.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>
    The time interval between two adjacent update notifications if it's less
    than 3500 ms.
  </summary>
</histogram>

<histogram name="WinJumplist.NotificationTimeInterval2" units="ms">
  <obsolete>
    Obsolete 07/23/2017 as it's no longer needed.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>
    The time interval between two adjacent update notifications. A zero value
    indicates the interval is greater than 3500 ms.
  </summary>
</histogram>

<histogram name="WinJumplist.OnFaviconDataAvailableDuration" units="ms">
  <obsolete>
    Obsolete 06/22/2017 as it's no longer needed.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>Time spent in OnFaviconDataAvailable().</summary>
</histogram>

<histogram name="WinJumplist.RatioAddCategoryTime" units="scaled ratio">
  <obsolete>
    Obsolete 07/23/2017 as it's no longer needed.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>
    The ratio of the duration spent adding the most-visited category compared to
    the duration spent adding the recently-closed category, multiplied by 10.
  </summary>
</histogram>

<histogram name="WinJumplist.StartLoadingFaviconDuration" units="ms">
  <obsolete>
    Obsolete 06/22/2017 as it's no longer needed.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>Time spent in StartLoadingFavicon().</summary>
</histogram>

<histogram name="WinJumplist.UpdateJumpListDuration" units="ms">
  <obsolete>
    Obsolete 04/20/2017 as it's no longer accurate due to the code change.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>
    Time spent in UpdateJumpList(). This method is called whenever there is a
    jumplist update.
  </summary>
</histogram>

<histogram name="WinJumplistUpdater.AddCustomCategoryDuration" units="ms">
  <obsolete>
    Obsolete 07/26/2017 as it's no longer needed.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>Time spent in JumpListUpdater::AddCustomCategory.</summary>
</histogram>

<histogram name="WinJumplistUpdater.AddTasksDuration" units="ms">
  <obsolete>
    Obsolete 07/10/2017 as it's no longer needed.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>Time spent in JumpListUpdater::AddTasks.</summary>
</histogram>

<histogram name="WinJumplistUpdater.BeginUpdateDuration" units="ms">
  <obsolete>
    Obsolete 07/26/2017 as it's no longer needed.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>Time spent in JumpListUpdater::BeginUpdate.</summary>
</histogram>

<histogram name="WinJumplistUpdater.CommitUpdateDuration" units="ms">
  <obsolete>
    Obsolete 07/26/2017 as it's no longer needed.
  </obsolete>
  <owner>chengx@chromium.org</owner>
  <summary>Time spent in JumpListUpdater::CommitUpdate.</summary>
</histogram>

<histogram name="WinTimeTicks.FailedToChangeCores" enum="WindowsVersion">
  <obsolete>
    Removed 01/2017.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Incremented each time the TimeTicks field trial runs on a machine with
    multiple cores, but failed to change thread affinity. Broken down by Windows
    version.
  </summary>
</histogram>

<histogram name="WinTimeTicks.MinResolutionNanoseconds" units="nanoseconds">
  <obsolete>
    Removed 01/2017.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The smallest non-zero delta reported by subsequent calls to
    QueryPerformanceCounter.
  </summary>
</histogram>

<histogram name="WinTimeTicks.NonStopTsc">
  <obsolete>
    Removed 01/2017.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    True if the CPU's timestamp counter ticks at a constant rate regardless of
    CPU frequency.
  </summary>
</histogram>

<histogram name="WinTimeTicks.TickedBackwards" enum="WindowsVersion">
  <obsolete>
    Removed 01/2017.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of times the TimeTicks field trial failed because
    QueryPerformanceCounter ticked backwards. Broken down by Windows version.
  </summary>
</histogram>

<histogram name="WinTimeTicks.VersionSuccessful" enum="WindowsVersion">
  <obsolete>
    Removed 01/2017.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of times the TimeTicks field trial succeeded. Broken down by
    Windows version.
  </summary>
</histogram>

<histogram name="WinTimeTicks.VersionTotal" enum="WindowsVersion">
  <obsolete>
    Removed 01/2017.
  </obsolete>
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    The number of times the TimeTicks field trial ran for comparison with
    WinTimeTicks.VersionSuccess. Broken down by Windows version.
  </summary>
</histogram>

<histogram name="Worker.TopLevelScript.OriginType.RequestUrl.DedicatedWorker"
    enum="WorkerTopLevelScriptOriginType" expires_after="M76">
  <owner>hiroshige@chromium.org</owner>
  <owner>nhiroki@chromium.org</owner>
  <summary>
    Type of worker top-level script's request URL's origin, relative to parent
    execution context's origin, recorded on each successful classic dedicated
    worker creation.
  </summary>
</histogram>

<histogram name="WorkerScheduler.WorkerThreadLoad" units="%">
  <owner>kinuko@chromium.org</owner>
  <summary>
    Worker thread load, i.e. percentage of time spent on running tasks. This
    metric is emitted at most once per kWorkerThreadLoadTrackerReportingInterval
    sec per worker thread amortized. E.g. if a worker ran a single task for X
    seconds and then went to idle for Y seconds before it shuts down, and
    assuming the interval rate was 1 sec, we get X samples for 100% and Y
    samples for 0%.
  </summary>
</histogram>

<histogram name="WorkerThread.DebuggerTask.Time" units="ms">
  <obsolete>
    Deprecated on 2018-02.
  </obsolete>
  <owner>nhiroki@chromium.org</owner>
  <summary>The time taken for running a debugger task on WorkerThread.</summary>
</histogram>

<histogram name="WorkerThread.ExitCode" enum="WorkerThreadExitCode">
  <owner>nhiroki@chromium.org</owner>
  <summary>Records the exit code of WorkerThread.</summary>
</histogram>

<histogram name="WorkerThread.Runtime" units="ms">
  <owner>kinuko@chromium.org</owner>
  <summary>
    The amount of time a worker thread ran for. Starts recording when a worker
    scheduler for the thread is created, and stops when the scheduler is shut
    down.
  </summary>
</histogram>

<histogram name="WorkerThread.Task.Time" units="ms">
  <obsolete>
    Deprecated on 2018-02. The sample count was overflowing. crbug.com/809672.
  </obsolete>
  <owner>nhiroki@chromium.org</owner>
  <summary>The time taken for running a worker task on WorkerThread.</summary>
</histogram>

<histogram name="WrenchMenu.MenuAction" enum="WrenchMenuAction">
  <owner>ainslie@chromium.org</owner>
  <owner>edwardjung@chromium.org</owner>
  <summary>Number of times that each menu item is clicked.</summary>
</histogram>

<histogram name="WrenchMenu.OpeningAnimationFrameTimes" units="ms">
  <owner>kkimlabs@chromium.org</owner>
  <summary>
    Frame times of the Android wrench menu opening animation. For example, if
    the menu opening animation runs exactly at 60fps for a second, then each
    frame time is 16ms, and a total of 60 values of 16ms are recorded. If the
    animation is janky, we will see values greater than 16ms in the histogram.
  </summary>
</histogram>

<histogram name="WrenchMenu.RecentTabsSubMenu" enum="RecentTabsAction">
  <owner>rpop@chromium.org</owner>
  <summary>
    The number of times each tab or window restore option in the Recent Tabs
    submenu is clicked.
  </summary>
</histogram>

<histogram name="WrenchMenu.TimeToAction">
  <owner>ainslie@chromium.org</owner>
  <owner>edwardjung@chromium.org</owner>
  <summary>
    The time a user takes to select a menu item after opening the menu.
  </summary>
</histogram>

<histogram name="WrenchMenu.TouchDuration" units="ms">
  <owner>kkimlabs@chromium.org</owner>
  <summary>
    Time difference between touch down and touch up on Android wrench button.
  </summary>
</histogram>

<histogram name="XHR.Async.PageDismissal" enum="XHRPageDismissalState">
  <owner>panicker@chromium.org</owner>
  <summary>
    Records occurence of async XHR during page dismissal state (unload,
    beforeunload, pagehide etc).
  </summary>
</histogram>

<histogram name="XHR.Sync.PageDismissal" enum="XHRPageDismissalState">
  <owner>panicker@chromium.org</owner>
  <summary>
    Records occurence of sync XHR during page dismissal state (unload,
    beforeunload, pagehide etc).
  </summary>
</histogram>

<histogram name="XHR.Sync.PageDismissal_forbidden" enum="XHRPageDismissalState"
    expires_after="2019-06-01">
  <owner>kdillon@chromium.org, panicker@chromium.org</owner>
  <summary>
    Records occurence of sync XHR requests during page dismissal state (unload,
    beforeunload, pagehide etc) that were forbidden.
  </summary>
</histogram>

<histogram name="XR.RuntimeAvailable" enum="XRRuntimeAvailable">
  <owner>billorr@chromium.org</owner>
  <summary>
    Indicates which VR APIs are installed. Recorded shortly after startup.
  </summary>
</histogram>

<histogram name="XR.VRSession.StartAction" enum="VRSessionStartAction">
  <owner>billorr@chromium.org</owner>
  <summary>
    The action that triggered the transition into Chrome in VR, either from 2D
    or another VR app.
  </summary>
</histogram>

<histogram name="XR.WebXR.PresentationSession" enum="VRPresentationStartAction">
  <owner>billorr@chromium.org</owner>
  <summary>
    The action that triggered VR presentation, which is the display of web
    content on a VR device.
  </summary>
</histogram>

<histogram name="XR.WebXR.RenderPath.Used" enum="XRRenderPath">
  <owner>klausw@chromium.org</owner>
  <summary>
    Records the WebXR/WebVR render path used for presentation on presentation
    start. The render path is affected by overrides and device capabilities.
  </summary>
</histogram>

<histogram name="ZeroSuggest.AllResults">
  <owner>hfung@chromium.org</owner>
  <summary>
    The number of results (either query or URL) from ZeroSuggest. This is set
    every time a successful response from ZeroSuggest is received, which can be
    every time the user focuses on the omnibox.
  </summary>
</histogram>

<histogram name="ZeroSuggest.QueryResults">
  <owner>hfung@chromium.org</owner>
  <summary>
    The number of query results returned from ZeroSuggest. This is set every
    time a successful response from ZeroSuggest is received, which can be every
    time the user focuses on the omnibox.
  </summary>
</histogram>

<histogram name="ZeroSuggest.URLResults">
  <owner>hfung@chromium.org</owner>
  <summary>
    The number of URL results returned from ZeroSuggest. This is set every time
    a successful response from ZeroSuggest is received, which can be every time
    the user focuses on the omnibox.
  </summary>
</histogram>

</histograms>

<!-- Histogram suffixes list -->

<histogram_suffixes_list>

<histogram_suffixes name="AccessibilityScreenReaderImage" separator=".">
  <suffix name="ExplicitlyUnlabeled" label="explicitly unlabeled image"/>
  <suffix name="Labeled" label="labeled image"/>
  <suffix name="Unlabeled" label="unlabeled image"/>
  <affected-histogram name="Accessibility.ScreenReader.Image.MinSize"/>
  <affected-histogram name="Accessibility.ScreenReader.Image.SizeRatio"/>
</histogram_suffixes>

<histogram_suffixes name="AccessorySheetType" separator=".">
  <suffix name="Passwords" label="Password suggestions and generation."/>
  <affected-histogram name="KeyboardAccessory.AccessorySheetSuggestionCount"/>
  <affected-histogram
      name="KeyboardAccessory.AccessorySheetSuggestionsSelected"/>
  <affected-histogram name="KeyboardAccessory.AccessorySheetTriggered"/>
</histogram_suffixes>

<histogram_suffixes name="AccountInvestigationReportingType" separator="_">
  <suffix name="OnChange"
      label="Driven from a change in signin status or change in content area
             GAIA accounts."/>
  <suffix name="Periodic" label="Emitted once per 24 hours."/>
  <affected-histogram name="Signin.CookieJar.ChromeAccountRelation"/>
  <affected-histogram name="Signin.CookieJar.SignedInCount"/>
  <affected-histogram name="Signin.CookieJar.SignedOutCount"/>
  <affected-histogram name="Signin.CookieJar.StableAge"/>
  <affected-histogram name="Signin.CookieJar.TotalCount"/>
  <affected-histogram name="Signin.IsShared"/>
</histogram_suffixes>

<histogram_suffixes name="AccountManagerMigrationSteps" separator=".">
  <suffix name="ArcAccountsMigration"/>
  <suffix name="ContentAreaAccountsMigration"/>
  <suffix name="DeviceAccountMigration"/>
  <affected-histogram name="AccountManager.Migrations.StepResult"/>
</histogram_suffixes>

<histogram_suffixes name="ActiveNetworkState" separator="_">
  <suffix name="Offline"
      label="network manager thinks that the active network is offline"/>
  <suffix name="Online"
      label="network manager thinks that the active network is online"/>
  <suffix name="RestrictedPool"
      label="network manager thinks that the active network is behind portal"/>
  <affected-histogram name="CaptivePortal.OOBE.DiscrepancyWithShill"/>
  <affected-histogram name="CaptivePortal.Session.DiscrepancyWithShill"/>
</histogram_suffixes>

<histogram_suffixes name="ActivityType" separator=".">
  <suffix name="CustomTabs" label="CustomTabs"/>
  <suffix name="TabbedMode" label="TabbedMode"/>
  <suffix name="WebApk" label="WebApk"/>
  <suffix name="WebApp" label="WebApp"/>
  <affected-histogram name="MobileStartup.IntentToCreationTime"/>
</histogram_suffixes>

<histogram_suffixes name="ActivityType" separator=".">
  <suffix name="Tabbed"
      label="Chrome starts up with intent to ChromeTabbedActivity"/>
  <suffix name="WebApk" label="Chrome starts up with intent to WebApkActivity"/>
  <affected-histogram name="Startup.Android.Cold.TimeToFirstContentfulPaint"/>
  <affected-histogram name="Startup.Android.Cold.TimeToFirstNavigationCommit"/>
</histogram_suffixes>

<histogram_suffixes name="AdResourceMimeTypes" separator=".">
  <suffix name="CSS" label="Resources identified by text/css."/>
  <suffix name="HTML" label="Resources identified by text/html."/>
  <suffix name="Image"
      label="Resources identified by any supported image mime type."/>
  <suffix name="JS"
      label="Resources identified by any supported javascript mime type."/>
  <suffix name="Other"
      label="Resources identified by any mime type that did match any
             supported css, html, image, javascript, or video mime types."/>
  <suffix name="Video" label="Resources identified by video/*."/>
  <affected-histogram name="Ads.ResourceUsage.Size.Cache.Mime"/>
  <affected-histogram name="Ads.ResourceUsage.Size.Mime"/>
  <affected-histogram name="Ads.ResourceUsage.Size.Network.Mime"/>
</histogram_suffixes>

<histogram_suffixes name="AdResourceSizes" separator=".">
  <suffix name="Mainframe.AdResource"
      label="Mainframe resources tagged as ads."/>
  <suffix name="Mainframe.VanillaResource"
      label="Mainframe resources not tagged as ads."/>
  <suffix base="true" name="Mime"
      label="Size of ad resources identified by the response header mime
             type."/>
  <suffix name="Subframe.AdResource" label="Subframe resources tagged as ads."/>
  <suffix name="Subframe.VanillaResource"
      label="Subframe resources not tagged as ads."/>
  <affected-histogram name="Ads.ResourceUsage.Size.Cache"/>
  <affected-histogram name="Ads.ResourceUsage.Size.Network"/>
</histogram_suffixes>

<histogram_suffixes name="AdsPageLoadMetrics" separator="." ordering="prefix">
  <suffix name="Clients.Ads.All" label="Includes all discovered ads.">
    <obsolete>
      Deprecated January 2019 as we're transitioning to only using
      SubresourceFilter data.
    </obsolete>
  </suffix>
  <suffix name="Clients.Ads.Google" label="Includes only Google ads.">
    <obsolete>
      Deprecated January 2019 as we're transitioning to only using
      SubresourceFilter data.
    </obsolete>
  </suffix>
  <suffix name="Clients.Ads.SubresourceFilter"
      label="Includes only ads discovered by the SubresourceFilter.">
    <obsolete>
      Deprecated January 2019, as these metrics only use subresource filter data
      and metrics are being split out by visibility.
    </obsolete>
  </suffix>
  <affected-histogram name="PageLoad.Bytes.AdFrames.Aggregate.Network"/>
  <affected-histogram name="PageLoad.Bytes.AdFrames.Aggregate.PercentNetwork"/>
  <affected-histogram name="PageLoad.Bytes.AdFrames.Aggregate.Total"/>
  <affected-histogram name="PageLoad.Bytes.AdFrames.PerFrame.Network"/>
  <affected-histogram name="PageLoad.Bytes.AdFrames.PerFrame.PercentNetwork"/>
  <affected-histogram name="PageLoad.Bytes.AdFrames.PerFrame.Total"/>
  <affected-histogram name="PageLoad.Bytes.FullPage.Network"/>
  <affected-histogram name="PageLoad.Bytes.FullPage.Network.PercentAds"/>
  <affected-histogram name="PageLoad.Bytes.FullPage.Total"/>
  <affected-histogram name="PageLoad.Bytes.FullPage.Total.PercentAds"/>
  <affected-histogram name="PageLoad.Bytes.NonAdFrames.Aggregate.Total"/>
  <affected-histogram
      name="PageLoad.FrameCounts.AdFrames.PerFrame.CrossOrigin"/>
  <affected-histogram
      name="PageLoad.FrameCounts.AdFrames.PerFrame.OriginStatus"/>
  <affected-histogram name="PageLoad.FrameCounts.AnyParentFrame.AdFrames"/>
</histogram_suffixes>

<histogram_suffixes name="AdsPageLoadMetricsBytes" separator=".">
  <suffix base="true" name="AdFrames.Aggregate"
      label="Includes resources loaded across all ad frames on a page."/>
  <suffix base="true" name="AdFrames.PerFrame"
      label="Includes resources loaded for a single ad frame."/>
  <suffix base="true" name="FullPage"
      label="Includes all resources loaded by the page."/>
  <suffix name="NonAdFrames.Aggregate.Total"
      label="The size (in KB) of all of the page's resources except for those
             loaded in ad frames."/>
  <affected-histogram name="PageLoad.Clients.Ads.Bytes"/>
  <affected-histogram name="PageLoad.Clients.Ads.NonVisible.Bytes"/>
  <affected-histogram name="PageLoad.Clients.Ads.Visible.Bytes"/>
</histogram_suffixes>

<histogram_suffixes name="AdsPageLoadMetricsMainFrameBytes" separator=".">
  <suffix base="true" name="MainFrame"
      label="Only includes resources loaded directly in the main frame."/>
  <suffix base="true" name="MainFrame.Ads"
      label="Only includes resources loaded directly in the main frame that
             were identified to be ad resources."/>
  <affected-histogram name="PageLoad.Clients.Ads.Bytes"/>
</histogram_suffixes>

<histogram_suffixes name="AdsPageLoadMetricsNetworkBytes" separator=".">
  <suffix name="Network"
      label="The size (in KB) of all of resources that loaded over the
             network."/>
  <suffix name="Total" label="The size (in KB) of the resources loaded."/>
  <affected-histogram name="PageLoad.Clients.Ads.Bytes.AdFrames.Aggregate"/>
  <affected-histogram name="PageLoad.Clients.Ads.Bytes.AdFrames.PerFrame"/>
  <affected-histogram name="PageLoad.Clients.Ads.Bytes.FullPage"/>
  <affected-histogram name="PageLoad.Clients.Ads.Bytes.MainFrame"/>
  <affected-histogram name="PageLoad.Clients.Ads.Bytes.MainFrame.Ads"/>
  <affected-histogram
      name="PageLoad.Clients.Ads.NonVisible.Bytes.AdFrames.Aggregate"/>
  <affected-histogram
      name="PageLoad.Clients.Ads.NonVisible.Bytes.AdFrames.PerFrame"/>
  <affected-histogram name="PageLoad.Clients.Ads.NonVisible.Bytes.FullPage"/>
  <affected-histogram
      name="PageLoad.Clients.Ads.Visible.Bytes.AdFrames.Aggregate"/>
  <affected-histogram
      name="PageLoad.Clients.Ads.Visible.Bytes.AdFrames.PerFrame"/>
  <affected-histogram name="PageLoad.Clients.Ads.Visible.Bytes.FullPage"/>
</histogram_suffixes>

<histogram_suffixes name="AdsPageLoadMetricsPercentAds" separator=".">
  <suffix name="PercentAds"
      label="The percentage of bytes loaded from within ad frames."/>
  <affected-histogram name="PageLoad.Clients.Ads.Bytes.FullPage.Network"/>
  <affected-histogram name="PageLoad.Clients.Ads.Bytes.FullPage.Total"/>
  <affected-histogram
      name="PageLoad.Clients.Ads.NonVisible.Bytes.FullPage.Network"/>
  <affected-histogram
      name="PageLoad.Clients.Ads.NonVisible.Bytes.FullPage.Total"/>
  <affected-histogram
      name="PageLoad.Clients.Ads.Visible.Bytes.FullPage.Network"/>
  <affected-histogram name="PageLoad.Clients.Ads.Visible.Bytes.FullPage.Total"/>
</histogram_suffixes>

<histogram_suffixes name="AdsPageLoadMetricsPercentNetwork" separator=".">
  <suffix name="PercentNetwork"
      label="The percentage of bytes that were loaded over the network."/>
  <affected-histogram name="PageLoad.Clients.Ads.Bytes.AdFrames.Aggregate"/>
  <affected-histogram name="PageLoad.Clients.Ads.Bytes.AdFrames.PerFrame"/>
  <affected-histogram
      name="PageLoad.Clients.Ads.NonVisible.Bytes.AdFrames.Aggregate"/>
  <affected-histogram
      name="PageLoad.Clients.Ads.NonVisible.Bytes.AdFrames.PerFrame"/>
  <affected-histogram
      name="PageLoad.Clients.Ads.Visible.Bytes.AdFrames.Aggregate"/>
  <affected-histogram
      name="PageLoad.Clients.Ads.Visible.Bytes.AdFrames.PerFrame"/>
</histogram_suffixes>

<histogram_suffixes name="AdsPageLoadMetricsSameOriginBytes" separator=".">
  <suffix name="PercentSameOrigin"
      label="The percentage of bytes loaded from the same origin as the root
             frame of the page or ad."/>
  <suffix name="SameOrigin"
      label="The number of bytes loaded from the same origin as the root
             frame of the page or ad."/>
  <affected-histogram name="PageLoad.Clients.Ads.Bytes.AdFrames.PerFrame"/>
  <affected-histogram name="PageLoad.Clients.Ads.Bytes.FullPage"/>
  <affected-histogram
      name="PageLoad.Clients.Ads.NonVisible.Bytes.AdFrames.PerFrame"/>
  <affected-histogram
      name="PageLoad.Clients.Ads.Visible.Bytes.AdFrames.PerFrame"/>
</histogram_suffixes>

<histogram_suffixes name="AdsPageLoadMetricVisibilityType" separator="."
    ordering="prefix">
  <suffix name="Clients.Ads" label="Includes all ad iframes."/>
  <suffix name="Clients.Ads.NonVisible"
      label="Only includes ad frames that have a display: none style, or have
             an area less than or equal to 16 pixels."/>
  <suffix name="Clients.Ads.Visible"
      label="Only includes ad frames that have a display != none style and
             have an area greater than 16 pixels."/>
  <affected-histogram name="PageLoad.Bytes"/>
  <affected-histogram
      name="PageLoad.FrameCounts.AdFrames.PerFrame.OriginStatus"/>
  <affected-histogram
      name="PageLoad.FrameCounts.AdFrames.PerFrame.SizeIntervention"/>
  <affected-histogram
      name="PageLoad.FrameCounts.AdFrames.PerFrame.SizeIntervention.MediaStatus"/>
  <affected-histogram
      name="PageLoad.FrameCounts.AdFrames.PerFrame.SmallestDimension"/>
  <affected-histogram
      name="PageLoad.FrameCounts.AdFrames.PerFrame.SqrtNumberOfPixels"/>
  <affected-histogram
      name="PageLoad.FrameCounts.AdFrames.PerFrame.UserActivation"/>
  <affected-histogram name="PageLoad.FrameCounts.AnyParentFrame.AdFrames"/>
</histogram_suffixes>

<histogram_suffixes name="AffiliationDummyData" separator=".">
  <suffix name="OnStartup"
      label="with the dummy data being requested shortly after start-up"/>
  <suffix name="Periodic"
      label="with the dummy data being requested periodically later"/>
  <affected-histogram
      name="PasswordManager.AffiliationDummyData.RequestResultCount"/>
  <affected-histogram
      name="PasswordManager.AffiliationDummyData.RequestSuccess"/>
</histogram_suffixes>

<histogram_suffixes name="AlternateProtocol" separator="_">
  <suffix name="AlternateProtocol_http"
      label="(with alternate protocol available and spdy is used"/>
  <suffix name="AlternateProtocol_spdy"
      label="with alternate protocol available but http is used"/>
  <affected-histogram name="PLT.StartToCommit_LinkLoadNormal"/>
  <affected-histogram name="PLT.StartToCommit_NormalLoad"/>
  <affected-histogram name="PLT.StartToFinish_LinkLoadNormal"/>
  <affected-histogram name="PLT.StartToFinish_NormalLoad"/>
</histogram_suffixes>

<histogram_suffixes name="AnchorElementMetrics" separator="." ordering="prefix">
  <suffix name="Clicked" label="Clicked by the user, on click"/>
  <suffix name="Visible" label="Intersects with the viewport, on page load"/>
  <affected-histogram name="AnchorElementMetrics.ContainsImage"/>
  <affected-histogram name="AnchorElementMetrics.DocumentEngagementScore"/>
  <affected-histogram name="AnchorElementMetrics.HrefEngagementScore2"/>
  <affected-histogram name="AnchorElementMetrics.HrefEngagementScoreExternal"/>
  <affected-histogram name="AnchorElementMetrics.IsInIFrame"/>
  <affected-histogram name="AnchorElementMetrics.IsSameHost"/>
  <affected-histogram name="AnchorElementMetrics.IsUrlIncrementedByOne"/>
  <affected-histogram name="AnchorElementMetrics.RatioArea"/>
  <affected-histogram
      name="AnchorElementMetrics.RatioDistanceCenterToVisibleTop"/>
  <affected-histogram name="AnchorElementMetrics.RatioDistanceRootBottom"/>
  <affected-histogram name="AnchorElementMetrics.RatioDistanceRootTop"/>
  <affected-histogram name="AnchorElementMetrics.RatioDistanceTopToVisibleTop"/>
  <affected-histogram name="AnchorElementMetrics.RatioVisibleArea"/>
</histogram_suffixes>

<histogram_suffixes name="AndroidBootProgressEvents" separator="_">
  <suffix name="ams_ready" label="For the boot_progress_ams_ready event."/>
  <suffix name="enable_screen"
      label="For the boot_progress_enable_screen event."/>
  <suffix name="pms_data_scan_start"
      label="For the boot_progress_pms_data_scan_start event."/>
  <suffix name="pms_ready" label="For the boot_progress_pms_ready event."/>
  <suffix name="pms_scan_end"
      label="For the boot_progress_pms_scan_end event."/>
  <suffix name="pms_start" label="For the boot_progress_pms_start event."/>
  <suffix name="pms_system_scan_start"
      label="For the boot_progress_pms_system_scan_start event."/>
  <suffix name="preload_end" label="For the boot_progress_preload_end event."/>
  <suffix name="preload_start"
      label="For the boot_progress_preload_start event."/>
  <suffix name="start" label="For the boot_progress_start event."/>
  <suffix name="system_run" label="For the boot_progress_system_run event."/>
  <affected-histogram name="Arc.boot_progress"/>
</histogram_suffixes>

<histogram_suffixes name="AndroidBootTypes" separator=".">
  <suffix name="FirstBoot" label="For the very first boot, aka opt-in."/>
  <suffix name="FirstBootAfterUpdate"
      label="For the first boot after Chrome OS update."/>
  <suffix name="RegularBoot" label="For a regular boot."/>
  <affected-histogram name="Arc.AndroidBootTime"/>
  <affected-histogram name="Arc.boot_progress_ams_ready"/>
  <affected-histogram name="Arc.boot_progress_enable_screen"/>
  <affected-histogram name="Arc.boot_progress_pms_data_scan_start"/>
  <affected-histogram name="Arc.boot_progress_pms_ready"/>
  <affected-histogram name="Arc.boot_progress_pms_scan_end"/>
  <affected-histogram name="Arc.boot_progress_pms_start"/>
  <affected-histogram name="Arc.boot_progress_pms_system_scan_start"/>
  <affected-histogram name="Arc.boot_progress_preload_end"/>
  <affected-histogram name="Arc.boot_progress_preload_start"/>
  <affected-histogram name="Arc.boot_progress_start"/>
  <affected-histogram name="Arc.boot_progress_system_run"/>
</histogram_suffixes>

<histogram_suffixes name="AndroidCrashUploadTypes" separator="_">
  <suffix name="Browser" label="Measures browser crash uploads."/>
  <suffix name="GPU" label="Measures GPU crash uploads."/>
  <suffix name="Other" label="Measures other crash uploads."/>
  <suffix name="Renderer" label="Measures renderer crash uploads."/>
  <affected-histogram name="Tab.AndroidCrashUpload"/>
</histogram_suffixes>

<histogram_suffixes name="AndroidDownloadTypes" separator=".">
  <suffix name="Audio"/>
  <suffix name="Document"/>
  <suffix name="Image"/>
  <suffix name="OfflinePage"/>
  <suffix name="Other"/>
  <suffix name="PrefetchedOfflinePage"/>
  <suffix name="Total"/>
  <suffix name="Video"/>
  <affected-histogram name="Android.DownloadManager.InitialCount"/>
  <affected-histogram name="Android.DownloadManager.InitialCount.Viewed"/>
  <affected-histogram
      name="Android.DownloadManager.Thumbnail.MaxRequiredStretch"/>
</histogram_suffixes>

<histogram_suffixes name="AndroidFeatureModuleName" separator=".">
  <suffix name="ar" label="Augmented Reality Module"/>
  <suffix name="tab_ui" label="Tab Management Module"/>
  <suffix name="vr" label="Virtual Reality Module"/>
  <affected-histogram name="Android.FeatureModules.CachedInstallDuration"/>
  <affected-histogram name="Android.FeatureModules.InstallStatus"/>
  <affected-histogram name="Android.FeatureModules.UncachedInstallDuration"/>
</histogram_suffixes>

<histogram_suffixes name="AndroidGATTEvents" separator=".">
  <suffix name="onCharacteristicRead.Status"/>
  <suffix name="onCharacteristicWrite.Status"/>
  <suffix name="onConnectionStateChange.Status.Connected"
      label="While Connected"/>
  <suffix name="onConnectionStateChange.Status.Disconnected"
      label="While Disonnected"/>
  <suffix name="onConnectionStateChange.Status.InvalidState"
      label="While InvalidState"/>
  <suffix name="onDescriptorRead.Status"/>
  <suffix name="onDescriptorWrite.Status"/>
  <suffix name="onServicesDiscovered.Status.Connected" label="While Connected"/>
  <suffix name="onServicesDiscovered.Status.Disconnected"
      label="While Disconnected"/>
  <affected-histogram name="Bluetooth.Web.Android"/>
</histogram_suffixes>

<histogram_suffixes name="AndroidGetAccountsTypes" separator="_">
  <suffix name="AccountManager" label="Using Android AccountManager API"/>
  <suffix name="GoogleAuthUtil" label="Using GoogleAuthUtil API"/>
  <affected-histogram name="Signin.AndroidGetAccountsTime"/>
  <affected-histogram name="Signin.AndroidGetAccountsTimeUiThread"/>
</histogram_suffixes>

<histogram_suffixes name="AndroidProcessType" separator=".">
  <suffix name="Browser" label="Browser process"/>
  <suffix name="ChildService"
      label="Child service process (renderer, GPU, etc.)"/>
  <affected-histogram name="Android.MemoryPressureNotification"/>
</histogram_suffixes>

<histogram_suffixes name="AndroidTabPersistentStoreTime" separator=".">
  <suffix name="CleanupAllEncryptedTime">
    <obsolete>
      Original code deleted in a refactoring.
    </obsolete>
  </suffix>
  <suffix name="LoadStateInternalPrefetchTime"/>
  <suffix name="LoadStateInternalTime"/>
  <suffix name="LoadStateTime"/>
  <suffix name="MergeStateInternalFetchTime"/>
  <suffix name="MergeStateInternalTime"/>
  <suffix name="ReadMergedStateTime"/>
  <suffix name="ReadSavedStateTime"/>
  <suffix name="RestoreTabPrefetchTime"/>
  <suffix name="RestoreTabTime"/>
  <suffix name="SaveListTime"/>
  <suffix name="SaveStateTime"/>
  <suffix name="SaveTabsTime"/>
  <affected-histogram name="Android.StrictMode.TabPersistentStore"/>
</histogram_suffixes>

<histogram_suffixes name="AppListFirstPaintWarmStartFast" separator="">
  <obsolete>
    Deprecated 03/2018 with Mash AppList refactoring.
  </obsolete>
  <suffix name="" label="Normal start."/>
  <suffix name="Fast"
      label="Fast start by skipping normal chrome.dll startup."/>
  <affected-histogram name="Startup.AppListFirstPaintWarmStart"/>
</histogram_suffixes>

<histogram_suffixes name="AppListFolderExperiment" separator=".">
  <suffix name="FullscreenAppListDisabled" label="Peeking Launcher Disabled"/>
  <suffix name="FullscreenAppListEnabled" label="Peeking Launcher Enabled"/>
  <affected-histogram name="Apps.AppsInFolders"/>
</histogram_suffixes>

<histogram_suffixes name="AppUIComponent" separator=".">
  <suffix name="AppGrid" label="App - Fullscreen Launcher"/>
  <suffix name="Desktop" label="Desktop"/>
  <suffix name="SearchResult" label="Launcher App Search Result"/>
  <suffix name="Shelf" label="Shelf"/>
  <suffix name="ShelfButton" label="ShelfButton"/>
  <suffix name="SuggestedAppFullscreen"
      label="Suggested App, Fullscreen Launcher"/>
  <suffix name="SuggestedAppPeeking" label="Suggested App, Peeking Launcher"/>
  <affected-histogram name="Apps.ContextMenuShowSource"/>
  <affected-histogram name="Apps.ContextMenuUserJourneyTime"/>
</histogram_suffixes>

<histogram_suffixes name="ArcUserTypes" separator=".">
  <suffix name="ActiveDirectory" label="User with active directory account"/>
  <suffix name="Child" label="User with child accounts."/>
  <suffix name="DemoMode" label="Demo devices with a demo mode robot account."/>
  <suffix name="Managed" label="User with forced Play Store feature"/>
  <suffix name="OfflineDemoMode" label="Offline enrolled demo mode devices."/>
  <suffix name="RobotAccount"
      label="Managed devices with a robot account (Public Session or Kiosk)"/>
  <suffix name="Unmanaged" label="User with optional Play Store feature"/>
  <affected-histogram name="Arc.PlayAutoInstallRequest.State"/>
  <affected-histogram name="Arc.PlayAutoInstallRequest.TimeDelta"/>
  <affected-histogram name="Arc.PlayStoreShown.TimeDelta"/>
  <affected-histogram name="Arc.Provisioning.Result"/>
  <affected-histogram name="Arc.Provisioning.TimeDelta.Failure"/>
  <affected-histogram name="Arc.Provisioning.TimeDelta.Success"/>
  <affected-histogram name="Arc.Reauthorization.Result"/>
  <affected-histogram name="Arc.StateByUserType"/>
</histogram_suffixes>

<histogram_suffixes name="AsyncDNSPref" separator="_">
  <suffix name="Disabled"/>
  <suffix name="Enabled"/>
  <affected-histogram name="AsyncDNS.PrefDefaultSource"/>
  <affected-histogram name="AsyncDNS.PrefSource"/>
</histogram_suffixes>

<histogram_suffixes name="AsyncSlowStart" separator="_">
  <suffix name="AsyncSlowStart" label="Async Slow Start on"/>
  <suffix name="AsyncSlowStart_off" label="Async Slow Start off"/>
  <suffix name="AsyncSlowStart_on" label="Async Slow Start on"/>
  <affected-histogram name="Net.Transaction_Connected_New"/>
  <affected-histogram name="Renderer4.StartToFinish"/>
</histogram_suffixes>

<histogram_suffixes name="AttemptResultCode" separator="_">
  <obsolete>
    Deprecated 2016/03. The async set-as-default experiments are finished.
  </obsolete>
  <suffix name="Abandoned"/>
  <suffix name="Failure"/>
  <suffix name="NoErrorsNotDefault"/>
  <suffix name="Retry"/>
  <suffix name="Success"/>
  <affected-histogram name="DefaultBrowser.AsyncSetAsDefault.Duration"/>
  <affected-histogram name="DefaultBrowser.SetDefaultAsyncDuration"/>
</histogram_suffixes>

<histogram_suffixes name="AudioLatency" separator=".">
  <suffix name="LatencyExactMs" label="Exact latency in milliseconds"/>
  <suffix name="LatencyInteractive" label="Interactive latency"/>
  <suffix name="LatencyPlayback" label="Playback latency"/>
  <suffix name="LatencyRtc" label="RTC latency"/>
  <affected-histogram name="Media.Audio.Render.BrowserCallbackRegularity"/>
</histogram_suffixes>

<histogram_suffixes name="AudioSystemInfoRequest" separator=".">
  <suffix name="GetAssociatedOutputDeviceID"
      label="SystemInfo::GetAssociatedOutputDeviceID()"/>
  <suffix name="GetInputDeviceDescriptions"
      label="SystemInfo::GetInputDeviceDescriptions()"/>
  <suffix name="GetInputDeviceInfo" label="SystemInfo::GetInputDeviceInfo()"/>
  <suffix name="GetInputStreamParameters"
      label="SystemInfo::GetInputStreamParameters()"/>
  <suffix name="GetOutputDeviceDescriptions"
      label="SystemInfo::GetOutputDeviceDescriptions()"/>
  <suffix name="GetOutputStreamParameters"
      label="SystemInfo::GetOutputStreamParameters()"/>
  <suffix name="HasInputDevices" label="SystemInfo::HasInputDevices()"/>
  <suffix name="HasOutputDevices" label="SystemInfo::HasOutputDevices()"/>
  <affected-histogram name="Media.AudioService.SystemInfoClient"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillCreditCardInfoBarSaveType" separator=".">
  <suffix name="Local" label="Local credit card save"/>
  <suffix name="Server" label="Server/upload credit card save"/>
  <affected-histogram name="Autofill.CreditCardInfoBar"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillCreditCardType" separator=".">
  <suffix name="Local" label="Local"/>
  <suffix name="Server" label="Server (Google Payments)"/>
  <affected-histogram name="Autofill.DaysSinceLastUse.StoredCreditCard"/>
  <affected-histogram name="Autofill.SaveCardReachedPersonalDataManager"/>
  <affected-histogram name="Autofill.SaveCardWithFirstAndLastNameComplete"/>
  <affected-histogram name="Autofill.SaveCardWithFirstAndLastNameOffered"/>
  <affected-histogram name="Autofill.StoredCreditCardCount"/>
  <affected-histogram name="Autofill.StoredCreditCardDisusedCount"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillDataAvailability" separator=".">
  <suffix name="WithBothServerAndLocalData"
      label="both server and local autofill data"/>
  <suffix name="WithNoData" label="no autofill data"/>
  <suffix name="WithOnlyLocalData" label="only local autofill data"/>
  <suffix name="WithOnlyServerData" label="only server autofill data"/>
  <affected-histogram name="Autofill.FormEvents.Address"/>
  <affected-histogram name="Autofill.FormEvents.CreditCard"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillFieldPredictionSource" separator=".">
  <suffix name="Heuristic"
      label="Field type predictions using local heuristics."/>
  <suffix name="Overall"
      label="Field type prediction as seen by the user after combining the
             heuristic and crowd sourced predictions."/>
  <suffix name="Server"
      label="Field types based on crowd-sourced prediction fetched from the
             Autofill Server"/>
  <affected-histogram name="Autofill.FieldPrediction"/>
  <affected-histogram name="Autofill.FieldPredictionQuality.Aggregate"/>
  <affected-histogram name="Autofill.FieldPredictionQuality.ByFieldType"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillFormType" separator=".">
  <suffix name="Address" label="Address form"/>
  <suffix name="CreditCard" label="Credit card form"/>
  <suffix name="Password" label="Password form"/>
  <suffix name="Unknown" label="Unknown form type"/>
  <affected-histogram
      name="Autofill.FillDuration.FromInteraction.WithAutofill"/>
  <affected-histogram
      name="Autofill.FillDuration.FromInteraction.WithoutAutofill"/>
  <affected-histogram name="Autofill.UserHappiness"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillFrame" separator=".">
  <suffix name="IsInIFrame" label="form is in an iframe"/>
  <suffix name="IsInMainFrame" label="form is in the main frame"/>
  <affected-histogram name="Autofill.FormEvents.Address"/>
  <affected-histogram name="Autofill.FormEvents.CreditCard"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillLocalCardMigrationBubbleShow" separator=".">
  <suffix name="FirstShow" label="First time bubble is shown"/>
  <suffix name="Reshows" label="Bubble was reopened after being closed"/>
  <affected-histogram name="Autofill.LocalCardMigrationBubbleOffer"/>
  <affected-histogram name="Autofill.LocalCardMigrationBubbleUserInteraction"/>
</histogram_suffixes>

<histogram_suffixes
    name="AutofillLocalCardMigrationDialogDurationWithCloseEvent" separator=".">
  <suffix name="Accepted"
      label="The dialog was closed due to the user clicking the save button."/>
  <suffix name="Closed"
      label="The dialog was closed due to the user clicking the view cards or
             done button."/>
  <suffix name="Denied"
      label="The dialog was closed due to the user clicking the cancel
             button."/>
  <affected-histogram name="Autofill.LocalCardMigrationDialogActiveDuration"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillLocalCardMigrationOrigin" separator=".">
  <suffix name="SettingsPage" label="Trigger from settings page"/>
  <suffix name="UseOfLocalCard"
      label="Trigger from submitted form with local card"/>
  <suffix name="UseOfServerCard"
      label="Trigger from submitted form with server card"/>
  <affected-histogram name="Autofill.LocalCardMigrationOrigin"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillManageCardsPrompt" separator=".">
  <suffix name="Local" label="Card was saved locally"/>
  <suffix name="Upload" label="Card was uploaded to server"/>
  <affected-histogram name="Autofill.ManageCardsPrompt"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillPayloadCompressionType" separator=".">
  <suffix name="Query" label="Query request compression"/>
  <suffix name="Upload" label="Upload request compression"/>
  <affected-histogram name="Autofill.PayloadCompressionRatio"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillRealPanResultGroups" separator=".">
  <suffix name="Failure" label="Failure"/>
  <suffix name="NetworkError" label="Network errors"/>
  <suffix name="Success" label="Success"/>
  <affected-histogram name="Autofill.UnmaskPrompt.GetRealPanDuration"/>
  <affected-histogram name="Autofill.UnmaskPrompt.UnmaskingDuration"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillSaveCreditCardPromptDestination"
    separator=".">
  <suffix name="Local" label="to local storage"/>
  <suffix name="Upload" label="to upload"/>
  <affected-histogram name="Autofill.SaveCreditCardPrompt"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillSaveCreditCardPromptFromNonFocusableForm"
    separator=".">
  <suffix name="FromNonFocusableForm"
      label="Prompt shown from non-focusable forms"/>
  <affected-histogram name="Autofill.CreditCardInfoBar.Local"/>
  <affected-histogram name="Autofill.CreditCardInfoBar.Server"/>
  <affected-histogram name="Autofill.SaveCreditCardPrompt.Local.FirstShow"/>
  <affected-histogram name="Autofill.SaveCreditCardPrompt.Local.Reshows"/>
  <affected-histogram name="Autofill.SaveCreditCardPrompt.Upload.FirstShow"/>
  <affected-histogram name="Autofill.SaveCreditCardPrompt.Upload.Reshows"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillSaveCreditCardPromptPreviousUserDecision"
    separator=".">
  <suffix name="NoPreviousDecision"
      label="User previous decision not on record"/>
  <suffix name="PreviouslyAccepted"
      label="User had previously accepted save credit card prompt"/>
  <suffix name="PreviouslyDenied"
      label="User had previously denied save credit card prompt"/>
  <affected-histogram name="Autofill.CreditCardInfoBar.Local"/>
  <affected-histogram name="Autofill.CreditCardInfoBar.Server"/>
  <affected-histogram name="Autofill.SaveCreditCardPrompt.Local.FirstShow"/>
  <affected-histogram name="Autofill.SaveCreditCardPrompt.Local.Reshows"/>
  <affected-histogram name="Autofill.SaveCreditCardPrompt.Upload.FirstShow"/>
  <affected-histogram name="Autofill.SaveCreditCardPrompt.Upload.Reshows"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillSaveCreditCardPromptRequestingCardholderName"
    separator=".">
  <suffix name="RequestingCardholderName"
      label="Cardholder name was explicitly requested in prompt or infobar"/>
  <affected-histogram name="Autofill.CreditCardInfoBar.Local"/>
  <affected-histogram name="Autofill.CreditCardInfoBar.Server"/>
  <affected-histogram name="Autofill.SaveCreditCardPrompt.Upload.FirstShow"/>
  <affected-histogram name="Autofill.SaveCreditCardPrompt.Upload.Reshows"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillSaveCreditCardPromptRequestingExpirationDate"
    separator=".">
  <suffix name="RequestingExpirationDate"
      label="Expiration date was explicitly requested in prompt or infobar"/>
  <affected-histogram name="Autofill.CreditCardInfoBar.Local"/>
  <affected-histogram name="Autofill.CreditCardInfoBar.Server"/>
  <affected-histogram name="Autofill.SaveCreditCardPrompt.Upload.FirstShow"/>
  <affected-histogram name="Autofill.SaveCreditCardPrompt.Upload.Reshows"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillSaveCreditCardPromptShow" separator=".">
  <suffix name="FirstShow"
      label="first time prompt is shown for a single credit card submit"/>
  <suffix name="Reshows" label="all shows after the first one, combined"/>
  <affected-histogram name="Autofill.SaveCreditCardPrompt.Local"/>
  <affected-histogram name="Autofill.SaveCreditCardPrompt.Upload"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillServerExperiments" separator="_">
  <obsolete>
    Deprecated as of at least 2013. Current autofill experiments rely on Finch
    rather than a custom experimentation setup.
  </obsolete>
  <suffix name="ar1" label="Acceptance ratio: 1.0"/>
  <suffix name="ar2" label="Acceptance ratio: 2.0"/>
  <suffix name="ar4" label="Acceptance ratio: 4.0"/>
  <suffix name="ar04wr3fs4"
      label="Acceptance ratio: 0.4; winner lead ratio: 3.0; min form score: 4"/>
  <suffix name="ar05wlr15"
      label="Acceptance ratio: 0.5; winner lead ratio: 1.5"/>
  <suffix name="ar05wlr25"
      label="Acceptance ratio: 0.5; winner lead ratio: 2.5"/>
  <suffix name="ar05wr15fs5"
      label="Acceptance ratio: 0.5; winner lead ratio: 1.5; min form score: 5"/>
  <suffix name="ar06" label="Acceptance ratio: 0.6"/>
  <suffix name="fp05" label="Probability picker algorithm, p=0.5"/>
  <suffix name="fp05cc03"
      label="Probability picker algorithm, p=0.5; p_ccname=0.3"/>
  <suffix name="fp05cc03e1"
      label="Probability picker algorithm, p=0.5 for cc and company name
             fields; p_ccname_given_other_cc_fields=0.3; with fallback to the
             default algorithm;"/>
  <suffix name="fp05cco03"
      label="Probability picker algorithm, p=0.5;
             p_ccname_given_other_cc_fields=0.3"/>
  <suffix name="fp05cco03cstd"
      label="Probability picker algorithm, p=0.5;
             p_ccname_given_other_cc_fields=0.3; with fallback to the default
             algorithm"/>
  <suffix name="fp025" label="Probability picker algorithm, p=0.25"/>
  <suffix name="tbar1" label="Use only Toolbar upload data"/>
  <affected-histogram name="Autofill.Quality"/>
  <affected-histogram name="AutoFill.Quality"/>
  <affected-histogram name="Autofill.Quality.HeuristicType"/>
  <affected-histogram name="Autofill.Quality.HeuristicType.ByFieldType"/>
  <affected-histogram name="Autofill.Quality.PredictedType"/>
  <affected-histogram name="Autofill.Quality.PredictedType.ByFieldType"/>
  <affected-histogram name="Autofill.Quality.ServerType"/>
  <affected-histogram name="Autofill.Quality.ServerType.ByFieldType"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillStoredServerCardType" separator=".">
  <suffix name="Masked" label="Masked cards"/>
  <suffix name="Unmasked" label="Unmasked cards (locally cached)"/>
  <affected-histogram name="Autofill.DaysSinceLastUse.StoredCreditCard.Server"/>
  <affected-histogram name="Autofill.StoredCreditCardCount.Server"/>
  <affected-histogram name="Autofill.StoredCreditCardDisusedCount.Server"/>
  <affected-histogram name="Autofill.StoredServerCreditCardCount"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillStrikesExpiredProjectType" separator=".">
  <suffix name="CreditCardSave" label="Credit card save"/>
  <suffix name="LocalCardMigration" label="Local card migration"/>
  <affected-histogram
      name="Autofill.StrikeDatabase.StrikesPresentWhenStrikeExpired"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillSyncState" separator=".">
  <suffix name="SignedIn" label="Signed in"/>
  <suffix name="SignedInAndSyncFeature" label="Signed in and sync feature"/>
  <suffix name="SignedInAndWalletSyncTransportEnabled"
      label="Signed in and sync transport enabled for Wallet data types"/>
  <suffix name="SignedOut" label="Signed out"/>
  <suffix name="Unknown" label="Unknown"/>
  <affected-histogram
      name="Autofill.FormEvents.Address.WithBothServerAndLocalData"/>
  <affected-histogram name="Autofill.FormEvents.Address.WithNoData"/>
  <affected-histogram name="Autofill.FormEvents.Address.WithOnlyLocalData"/>
  <affected-histogram name="Autofill.FormEvents.Address.WithOnlyServerData"/>
  <affected-histogram
      name="Autofill.FormEvents.CreditCard.WithBothServerAndLocalData"/>
  <affected-histogram name="Autofill.FormEvents.CreditCard.WithNoData"/>
  <affected-histogram name="Autofill.FormEvents.CreditCard.WithOnlyLocalData"/>
  <affected-histogram name="Autofill.FormEvents.CreditCard.WithOnlyServerData"/>
  <affected-histogram name="Autofill.IsEnabled.PageLoad"/>
  <affected-histogram name="Autofill.SaveCreditCardPrompt.Local.FirstShow"/>
  <affected-histogram name="Autofill.SaveCreditCardPrompt.Local.Reshows"/>
  <affected-histogram name="Autofill.SaveCreditCardPrompt.Upload.FirstShow"/>
  <affected-histogram name="Autofill.SaveCreditCardPrompt.Upload.Reshows"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillUnmaskPromptCloseReasonEvents" separator=".">
  <suffix name="AbandonUnmasking" label="Abandon unmasking"/>
  <suffix name="Failure" label="Failure"/>
  <suffix name="NoAttempts" label="No attempts"/>
  <suffix name="Success" label="Success"/>
  <affected-histogram name="Autofill.UnmaskPrompt.Duration"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillUploadEvents" separator=".">
  <suffix name="DomMutationAfterXhr" label="DOM Mutation After XHR"/>
  <suffix name="FormSubmission" label="Form Submission"/>
  <suffix name="FrameDetached" label="Frame Detached"/>
  <suffix name="None" label="None"/>
  <suffix name="ProbablyFormSubmitted" label="Probable Form Submission"/>
  <suffix name="SameDocumentNavigation" label="Same Document Navigation"/>
  <suffix name="Unknown" label="Unknown"/>
  <suffix name="XhrSucceeded" label="XHR Succeeded"/>
  <affected-histogram name="Autofill.UploadEvent"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillWalletCardsDiff" separator=".">
  <suffix name="Added" label="Added"/>
  <suffix name="AddedOrRemoved" label="Added or removed"/>
  <suffix name="Removed" label="Removed"/>
  <affected-histogram name="Autofill.WalletAddresses">
    <obsolete>
      Replaced with Autofill.WalletAddresses2 in 2018/12.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="Autofill.WalletAddresses2"/>
  <affected-histogram name="Autofill.WalletCards">
    <obsolete>
      Replaced with Autofill.WalletAddresses2 in 2018/12.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="Autofill.WalletCards2"/>
</histogram_suffixes>

<histogram_suffixes name="BackgroundFetchDatabaseStorageErrors" separator=".">
  <suffix name="CleanupTask" label="CleanupTask"/>
  <suffix name="CreateMetadataTask" label="CreateMetadata DatabaseTask"/>
  <suffix name="DeleteRegistrationTask"
      label="DeleteRegistration DatabaseTask"/>
  <suffix name="GetDeveloperIdsTask" label="GetDeveloperIds DatabaseTask"/>
  <suffix name="GetInitializationDataTask"
      label="GetInitializationData DatabaseTask"/>
  <suffix name="GetRegistrationTask" label="GetRegistration DatabaseTask"/>
  <suffix name="GetRequestBlobTask" label="GetRequestBlob DatabaseTask"/>
  <suffix name="GetSettledFetchesTask" label="GetSettledFetches DatabaseTask"/>
  <suffix name="MarkRegistrationForDeletionTask"
      label="MarkRegistrationForDeletion DatabaseTask"/>
  <suffix name="MarkRequestCompleteTask"
      label="MarkRequestComplete DatabaseTask"/>
  <suffix name="MatchRequestsTask" label="MatchRequests DatabaseTask"/>
  <suffix name="StartNextPendingRequestTask"
      label="StartNextPendingRequest DatabaseTask"/>
  <suffix name="UpdateRegistrationUITask"
      label="UpdateRegistrationUI DatabaseTask"/>
  <affected-histogram name="BackgroundFetch.Storage"/>
</histogram_suffixes>

<histogram_suffixes name="BackgroundFetchEvents" separator=".">
  <suffix name="AbortEvent" label="BackgroundFetchAbortEvent"/>
  <suffix name="ClickEvent" label="BackgroundFetchClickEvent"/>
  <suffix name="FailEvent" label="BackgroundFetchFailEvent"/>
  <suffix name="FetchedEvent" label="BackgroundFetchedEvent"/>
  <suffix name="SuccessEvent" label="BackgroundFetchSuccessEvent"/>
  <affected-histogram name="BackgroundFetch.EventDispatchFailure.Dispatch"/>
  <affected-histogram name="BackgroundFetch.EventDispatchFailure.FindWorker"/>
  <affected-histogram name="BackgroundFetch.EventDispatchFailure.StartWorker"/>
  <affected-histogram name="BackgroundFetch.EventDispatchResult"/>
</histogram_suffixes>

<histogram_suffixes name="BackgroundFetchManagerAPIsDuration" separator=".">
  <suffix name="FetchDuration" label="Duration of fetch"/>
  <suffix name="GetDuration" label="Duration of get"/>
  <suffix name="GetIdsDuration" label="Duration of getIds"/>
  <affected-histogram name="BackgroundFetch.Manager"/>
</histogram_suffixes>

<histogram_suffixes name="BadBlockCounts" separator=".">
  <suffix name="Backupsys" label="backupsys partition"/>
  <suffix name="Bbt" label="bbt partition"/>
  <suffix name="Block0" label="block0 partition"/>
  <suffix name="Bootloader" label="bootloader partition"/>
  <suffix name="Cache" label="cache partition"/>
  <suffix name="Factory_store" label="factory_store partition"/>
  <suffix name="Fts" label="fts partition"/>
  <suffix name="Kernel" label="kernel partition"/>
  <suffix name="Postbootloader" label="postbootloader partition"/>
  <suffix name="Postbootloader-B" label="postbootloader-B partition"/>
  <suffix name="Prebootloader" label="prebootloader partition"/>
  <suffix name="Recovery" label="recovery partition"/>
  <suffix name="Rootfs" label="rootfs partition"/>
  <suffix name="Total" label="total partition"/>
  <suffix name="TZ" label="TZ partition"/>
  <suffix name="TZ-B" label="TZ-B partition"/>
  <suffix name="Userdata" label="userdata partition"/>
  <affected-histogram name="Platform.Storage.Flash.BadBlocks"/>
</histogram_suffixes>

<histogram_suffixes name="BatchStunPingParameters" separator=".">
  <suffix name="1ms.1" label="1ms gap, 1st batch"/>
  <suffix name="1ms.2" label="1ms gap, 2nd batch"/>
  <suffix name="1ms.3" label="1ms gap, 3rd batch"/>
  <suffix name="5ms.1" label="5ms gap, 1st batch"/>
  <suffix name="5ms.2" label="5ms gap, 2nd batch"/>
  <suffix name="5ms.3" label="5ms gap, 3rd batch"/>
  <suffix name="10ms.1" label="10ms gap, 1st batch"/>
  <suffix name="10ms.2" label="10ms gap, 2nd batch"/>
  <suffix name="10ms.3" label="10ms gap, 3rd batch"/>
  <suffix name="25ms.1" label="25ms gap, 1st batch"/>
  <suffix name="25ms.2" label="25ms gap, 2nd batch"/>
  <suffix name="25ms.3" label="25ms gap, 3rd batch"/>
  <suffix name="50ms.1" label="50ms gap, 1st batch"/>
  <suffix name="50ms.2" label="50ms gap, 2nd batch"/>
  <suffix name="50ms.3" label="50ms gap, 3rd batch"/>
  <affected-histogram name="WebRTC.Stun.BatchSuccessPercent.NoNAT"/>
  <affected-histogram name="WebRTC.Stun.BatchSuccessPercent.NonSymNAT"/>
  <affected-histogram name="WebRTC.Stun.BatchSuccessPercent.SymNAT"/>
  <affected-histogram name="WebRTC.Stun.BatchSuccessPercent.UnknownNAT"/>
</histogram_suffixes>

<histogram_suffixes name="BitstreamAudioFormats" separator=".">
  <suffix name="AC3" label="Dolby Digital / AC3"/>
  <suffix name="DTS" label="DTS"/>
  <suffix name="DTS-HD" label="DTS-HD"/>
  <suffix name="EAC3" label="Dolby Digital Plus / EAC3"/>
  <suffix name="TrueHD" label="Dolby TrueHD"/>
  <affected-histogram name="Media.Audio.Bitstream"/>
</histogram_suffixes>

<histogram_suffixes name="BlinkCanvasDrawImageSizeType" separator=".">
  <suffix name="Canvas.CPU"/>
  <suffix name="Canvas.GPU"/>
  <suffix name="CssImage"/>
  <suffix name="ImageBitmap"/>
  <suffix name="ImageElement"/>
  <suffix name="OffscreenCanvas.CPU"/>
  <suffix name="OffscreenCanvas.GPU"/>
  <suffix name="SVG"/>
  <suffix name="Unknown"/>
  <suffix name="Video"/>
  <affected-histogram name="Blink.Canvas.DrawImage.SqrtNumberOfPixels"/>
</histogram_suffixes>

<histogram_suffixes name="BlinkCanvasDrawImageType" separator=".">
  <suffix base="true" name="Canvas"/>
  <suffix base="true" name="CssImage"/>
  <suffix base="true" name="ImageBitmap"/>
  <suffix base="true" name="ImageElement"/>
  <suffix base="true" name="OffscreenCanvas"/>
  <suffix base="true" name="Others">
    <obsolete>
      Deprecated 10/2018 with the addition of CssImage and Unknown.
    </obsolete>
  </suffix>
  <suffix base="true" name="SVG"/>
  <suffix base="true" name="Unknown"/>
  <suffix base="true" name="Video"/>
  <affected-histogram name="Blink.Canvas.DrawImage.Duration"/>
</histogram_suffixes>

<histogram_suffixes name="BlinkCanvasDurationBySource" separator=".">
  <suffix name="CPU"/>
  <suffix name="DisplayList">
    <obsolete>
      Deprecated 11/2017 with removal of Display List Canvas 2D mode.
    </obsolete>
  </suffix>
  <suffix name="GPU"/>
  <affected-histogram name="Blink.Canvas.DrawImage.Duration.Canvas"/>
  <affected-histogram name="Blink.Canvas.DrawImage.Duration.CssImage"/>
  <affected-histogram name="Blink.Canvas.DrawImage.Duration.ImageBitmap"/>
  <affected-histogram name="Blink.Canvas.DrawImage.Duration.ImageElement"/>
  <affected-histogram name="Blink.Canvas.DrawImage.Duration.OffscreenCanvas"/>
  <affected-histogram name="Blink.Canvas.DrawImage.Duration.SVG"/>
  <affected-histogram name="Blink.Canvas.DrawImage.Duration.Unknown"/>
  <affected-histogram name="Blink.Canvas.DrawImage.Duration.Video"/>
  <affected-histogram name="Blink.Canvas.GetImageData"/>
  <affected-histogram name="Blink.Canvas.PutImageData"/>
</histogram_suffixes>

<histogram_suffixes name="BlinkCanvasOffscreenCommitType" separator=".">
  <suffix name="GPUCanvasGPUCompositingMain"/>
  <suffix name="GPUCanvasGPUCompositingWorker"/>
  <suffix name="GPUCanvasSoftwareCompositingMain"/>
  <suffix name="GPUCanvasSoftwareCompositingWorker"/>
  <suffix name="SoftwareCanvasGPUCompositingMain"/>
  <suffix name="SoftwareCanvasGPUCompositingWorker"/>
  <suffix name="SoftwareCanvasSoftwareCompositingMain"/>
  <suffix name="SoftwareCanvasSoftwareCompositingWorker"/>
  <affected-histogram name="Blink.Canvas.OffscreenCommitTimer"/>
</histogram_suffixes>

<histogram_suffixes name="BlinkCanvasToBlobIdleEncodAndDelayType" separator=".">
  <suffix name="JPEG"/>
  <suffix name="PNG"/>
  <affected-histogram name="Blink.Canvas.ToBlob.CompleteEncodingDelay"/>
  <affected-histogram name="Blink.Canvas.ToBlob.IdleEncodeDuration">
    <obsolete>
      Replaced with Blink.Canvas.ToBlob.CompleteEncodingDelay in 2017/12.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="Blink.Canvas.ToBlob.InitiateEncodingDelay"/>
</histogram_suffixes>

<histogram_suffixes name="BlinkCanvasToBlobType" separator=".">
  <suffix name="JPEG"/>
  <suffix name="PNG"/>
  <suffix name="WEBP"/>
  <affected-histogram name="Blink.Canvas.ToBlob.ScaledDuration"/>
</histogram_suffixes>

<histogram_suffixes name="BlinkCanvasToDataURLMimeType" separator=".">
  <suffix name="BMP">
    <obsolete>
      Removed in Oct 2016
    </obsolete>
  </suffix>
  <suffix name="GIF">
    <obsolete>
      Removed in Oct 2016
    </obsolete>
  </suffix>
  <suffix name="ICON">
    <obsolete>
      Removed in Oct 2016
    </obsolete>
  </suffix>
  <suffix name="JPEG"/>
  <suffix name="PNG"/>
  <suffix name="TIFF">
    <obsolete>
      Removed in Oct 2016
    </obsolete>
  </suffix>
  <suffix name="Unknown">
    <obsolete>
      Removed in Oct 2016
    </obsolete>
  </suffix>
  <suffix name="WEBP"/>
  <affected-histogram name="Blink.Canvas.ToDataURLScaledDuration"/>
</histogram_suffixes>

<histogram_suffixes name="BlinkCompositingLayerCount" separator=".">
  <suffix name="ActiveAnimation"/>
  <suffix name="AssumedOverlap"/>
  <suffix name="IndirectComposited"/>
  <suffix name="Overlap"/>
  <suffix name="TotalComposited"/>
  <affected-histogram name="Blink.Compositing.LayerPromotionCount"/>
</histogram_suffixes>

<histogram_suffixes name="BlinkGCReason" separator="_">
  <suffix name="ConservativeGC" label="Conservative GC"/>
  <suffix name="ForcedGC" label="Forced GC"/>
  <suffix name="IdleGC" label="Idle GC"/>
  <suffix name="IncrementalIdleGC" label="Idle GC with incremental marking"/>
  <suffix name="IncrementalV8FollowupGC"
      label="V8 follow-up GC with incremental marking"/>
  <suffix name="MemoryPressureGC" label="Memory pressure GC"/>
  <suffix name="PageNavigationGC" label="Page navigation GC"/>
  <suffix name="PreciseGC" label="Precise GC"/>
  <suffix name="Testing" label="Testing GC"/>
  <suffix name="ThreadTerminationGC" label="Thread termination GC"/>
  <affected-histogram name="BlinkGC.AtomicPhaseMarking"/>
  <affected-histogram name="BlinkGC.CollectionRate"/>
  <affected-histogram name="BlinkGC.TimeForTotalCollectGarbage"/>
</histogram_suffixes>

<histogram_suffixes name="BlinkLazyLoadEffectiveConnectionTypeSuffixes"
    separator=".">
  <suffix name="2G" label="2G effective connection type"/>
  <suffix name="3G" label="3G effective connection type"/>
  <suffix name="4G" label="4G effective connection type"/>
  <suffix name="Offline" label="Offline effective connection type"/>
  <suffix name="Slow2G" label="Slow-2G effective connection type"/>
  <suffix name="Unknown" label="Unknown effective connection type"/>
  <affected-histogram
      name="Blink.LazyLoad.CrossOriginFrames.InitialDeferralAction"/>
</histogram_suffixes>

<histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" separator=".">
  <suffix name="1msTo5ms" label="Ratio when main frame between 1ms and 5ms."/>
  <suffix name="LessThan1ms" label="Ratio when main frame shorter than 1ms."/>
  <suffix name="MoreThan5ms" label="Ratio when main frame longer than 5ms."/>
  <affected-histogram name="Blink.MainFrame.CompositingCommitRatio"/>
  <affected-histogram name="Blink.MainFrame.CompositingRatio"/>
  <affected-histogram name="Blink.MainFrame.ForcedStyleAndLayoutRatio"/>
  <affected-histogram name="Blink.MainFrame.IntersectionObservationRatio"/>
  <affected-histogram name="Blink.MainFrame.PaintRatio"/>
  <affected-histogram name="Blink.MainFrame.PrePaintRatio"/>
  <affected-histogram name="Blink.MainFrame.StyleAndLayoutRatio"/>
</histogram_suffixes>

<histogram_suffixes name="BlinkVisibleLoadTimeSuffixes" separator=".">
  <suffix name="2G" label="2G effective connection type"/>
  <suffix name="3G" label="3G effective connection type"/>
  <suffix name="4G" label="4G effective connection type"/>
  <suffix name="Slow2G" label="Slow-2G effective connection type"/>
  <affected-histogram
      name="Blink.VisibleLoadTime.LazyLoadEligibleFrames.AboveTheFold"/>
  <affected-histogram
      name="Blink.VisibleLoadTime.LazyLoadEligibleFrames.BelowTheFold"/>
  <affected-histogram name="Blink.VisibleLoadTime.LazyLoadImages.AboveTheFold"/>
  <affected-histogram name="Blink.VisibleLoadTime.LazyLoadImages.BelowTheFold"/>
</histogram_suffixes>

<histogram_suffixes name="CachedImageFetcherClients" separator=".">
  <suffix name="AssistantDetails"
      label="Showing cache patterns only for AssistantDetails."/>
  <suffix name="ContextualSuggestions"
      label="Showing cache patterns only for ContextualSuggestions."/>
  <suffix name="Feed" label="Showing cache patterns only for Feed."/>
  <suffix name="Internal" label="Showing cache patterns only for Internal."/>
  <suffix name="NewTabPageAnimatedLogo"
      label="Showing cache patterns only for NewTabPageAnimatedLogo."/>
  <suffix name="OfflinePages"
      label="Showing cache patterns only for OfflinePages."/>
  <affected-histogram name="CachedImageFetcher.Events"/>
  <affected-histogram name="CachedImageFetcher.ImageLoadFromCacheTime"/>
  <affected-histogram name="CachedImageFetcher.ImageLoadFromCacheTimeJava"/>
  <affected-histogram name="CachedImageFetcher.ImageLoadFromNativeTimeJava"/>
  <affected-histogram
      name="CachedImageFetcher.ImageLoadFromNetworkAfterCacheHit"/>
  <affected-histogram name="CachedImageFetcher.ImageLoadFromNetworkTime"/>
</histogram_suffixes>

<histogram_suffixes name="CachedResourceType" separator=".">
  <suffix name="Audio"
      label="Showing cache patterns only for audio resources."/>
  <suffix name="CSS" label="Showing cache patterns only for CSS resources."/>
  <suffix name="Font" label="Showing cache patterns only for font resources."/>
  <suffix name="Image"
      label="Showing cache patterns only for image resources."/>
  <suffix name="JavaScript"
      label="Showing cache patterns only for JavaScript resources."/>
  <suffix name="MainFrameHTML"
      label="Showing cache patterns only for main-frame HTML resources."/>
  <suffix name="NonMainFrameHTML"
      label="Showing cache patterns only for non-main-frame HTML resources."/>
  <suffix name="NonTinyImage"
      label="Showing cache patterns only for image resources with
             content-length &gt;= 100 bytes."/>
  <suffix name="TinyImage"
      label="Showing cache patterns only for image resources with
             content-length less than 100 bytes."/>
  <suffix name="Video"
      label="Showing cache patterns only for video resources."/>
  <affected-histogram name="HttpCache.Pattern"/>
  <affected-histogram
      name="HttpCache.StaleEntry.FreshnessPeriodsSinceLastUsed"/>
  <affected-histogram name="HttpCache.ValidationCause"/>
</histogram_suffixes>

<histogram_suffixes name="CacheInstance" separator="." ordering="prefix">
  <suffix name="App"
      label="Collected from the HTML5 Application Cache instance."/>
  <suffix name="Http" label="Collected from the HTTP Cache instance."/>
  <suffix name="Media" label="Collected from the Media Cache instance."/>
  <affected-histogram name="SimpleCache.CacheSizeOnInit"/>
  <affected-histogram name="SimpleCache.CheckCRCResult"/>
  <affected-histogram name="SimpleCache.ConsistencyResult"/>
  <affected-histogram
      name="SimpleCache.ConsistencyResultAfterIndexFilesDeleted"/>
  <affected-histogram name="SimpleCache.CreationToIndex"/>
  <affected-histogram name="SimpleCache.CreationToIndexFail"/>
  <affected-histogram
      name="SimpleCache.DidDeleteIndexFilesAfterFailedConsistency"/>
  <affected-histogram name="SimpleCache.DiskCloseLatency"/>
  <affected-histogram name="SimpleCache.DiskCreateLatency"/>
  <affected-histogram name="SimpleCache.DiskDoomLatency"/>
  <affected-histogram name="SimpleCache.DiskOpenLatency"/>
  <affected-histogram name="SimpleCache.DiskOpenStream2NonTinyLatency"/>
  <affected-histogram name="SimpleCache.DiskOpenStream2TinyLatency"/>
  <affected-histogram name="SimpleCache.DiskWriteLatency"/>
  <affected-histogram name="SimpleCache.EntryCreatedAndStream2Omitted"/>
  <affected-histogram name="SimpleCache.EntryCreationResult"/>
  <affected-histogram name="SimpleCache.EntryCreationTime"/>
  <affected-histogram name="SimpleCache.EntryOpenedAndStream2Removed"/>
  <affected-histogram name="SimpleCache.EntryOperationsPending"/>
  <affected-histogram name="SimpleCache.EntryTrailerPrefetchDelta"/>
  <affected-histogram name="SimpleCache.EntryTrailerPrefetchSize"/>
  <affected-histogram name="SimpleCache.EntryTrailerSize"/>
  <affected-histogram name="SimpleCache.Eviction.CacheSizeOnStart"/>
  <affected-histogram name="SimpleCache.Eviction.CacheSizeOnStart2"/>
  <affected-histogram name="SimpleCache.Eviction.EntryCount"/>
  <affected-histogram name="SimpleCache.Eviction.MaxCacheSizeOnStart"/>
  <affected-histogram name="SimpleCache.Eviction.MaxCacheSizeOnStart2"/>
  <affected-histogram name="SimpleCache.Eviction.Result"/>
  <affected-histogram name="SimpleCache.Eviction.SizeOfEvicted"/>
  <affected-histogram name="SimpleCache.Eviction.SizeOfEvicted2"/>
  <affected-histogram name="SimpleCache.Eviction.SizeWhenDone"/>
  <affected-histogram name="SimpleCache.Eviction.SizeWhenDone2"/>
  <affected-histogram name="SimpleCache.Eviction.TimeToDone"/>
  <affected-histogram name="SimpleCache.Eviction.TimeToSelectEntries"/>
  <affected-histogram name="SimpleCache.FileDescriptorLimitHard">
    <obsolete>
      Removed January 2018, as the limit is independent of the backend type.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="SimpleCache.FileDescriptorLimitSoft">
    <obsolete>
      Removed January 2018, as the limit is independent of the backend type.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="SimpleCache.FileDescriptorLimitStatus">
    <obsolete>
      Removed January 2018, as the limit is independent of the backend type.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="SimpleCache.GlobalOpenEntryCount"/>
  <affected-histogram name="SimpleCache.HeaderSize"/>
  <affected-histogram name="SimpleCache.HeaderSizeChange"/>
  <affected-histogram name="SimpleCache.HeaderSizeDecreaseAbsolute"/>
  <affected-histogram name="SimpleCache.HeaderSizeDecreasePercentage"/>
  <affected-histogram name="SimpleCache.HeaderSizeIncreaseAbsolute"/>
  <affected-histogram name="SimpleCache.HeaderSizeIncreasePercentage"/>
  <affected-histogram name="SimpleCache.IndexCorrupt"/>
  <affected-histogram name="SimpleCache.IndexCreatedEntryCount"/>
  <affected-histogram name="SimpleCache.IndexEntriesLoaded"/>
  <affected-histogram name="SimpleCache.IndexEntriesRestored"/>
  <affected-histogram name="SimpleCache.IndexFileStateOnLoad"/>
  <affected-histogram name="SimpleCache.IndexInitializationWaiters"/>
  <affected-histogram name="SimpleCache.IndexInitializeMethod"/>
  <affected-histogram name="SimpleCache.IndexLoadTime"/>
  <affected-histogram name="SimpleCache.IndexNumEntriesOnInit"/>
  <affected-histogram name="SimpleCache.IndexNumEntriesOnWrite"/>
  <affected-histogram name="SimpleCache.IndexRestoreTime"/>
  <affected-histogram name="SimpleCache.IndexWriteInterval.Background"/>
  <affected-histogram name="SimpleCache.IndexWriteInterval.Foreground"/>
  <affected-histogram name="SimpleCache.IndexWriteReason"/>
  <affected-histogram name="SimpleCache.IndexWriteReasonAtLoad"/>
  <affected-histogram name="SimpleCache.IndexWriteToDiskTime.Background"/>
  <affected-histogram name="SimpleCache.IndexWriteToDiskTime.Foreground"/>
  <affected-histogram name="SimpleCache.KeyMatchedOnOpen"/>
  <affected-histogram name="SimpleCache.LastClusterLossPercent"/>
  <affected-histogram name="SimpleCache.LastClusterSize"/>
  <affected-histogram name="SimpleCache.MaxCacheSizeOnInit"/>
  <affected-histogram name="SimpleCache.NumOpsBlockedByPendingDoom"/>
  <affected-histogram name="SimpleCache.OpenEntryIndexState"/>
  <affected-histogram
      name="SimpleCache.OriginalConsistencyResultBeforeSuccessfulRetry"/>
  <affected-histogram name="SimpleCache.PercentFullOnInit"/>
  <affected-histogram name="SimpleCache.QueueLatency.CreateEntry"/>
  <affected-histogram name="SimpleCache.QueueLatency.OpenEntry"/>
  <affected-histogram name="SimpleCache.QueueLatency.OpenOrCreateEntry"/>
  <affected-histogram name="SimpleCache.QueueLatency.PendingDoom"/>
  <affected-histogram name="SimpleCache.ReadIsParallelizable"/>
  <affected-histogram name="SimpleCache.ReadResult"/>
  <affected-histogram name="SimpleCache.ReadStream1FromPrefetched"/>
  <affected-histogram name="SimpleCache.RetryConsistencyResult"/>
  <affected-histogram name="SimpleCache.StaleIndexExtraEntryCount"/>
  <affected-histogram name="SimpleCache.StaleIndexMissedEntryCount"/>
  <affected-histogram name="SimpleCache.StaleIndexQuality"/>
  <affected-histogram name="SimpleCache.SyncCheckEOFHasCrc"/>
  <affected-histogram name="SimpleCache.SyncCheckEOFResult"/>
  <affected-histogram name="SimpleCache.SyncCloseResult"/>
  <affected-histogram name="SimpleCache.SyncCreatePlatformFileError"/>
  <affected-histogram name="SimpleCache.SyncCreatePlatformFileError_WithIndex"/>
  <affected-histogram
      name="SimpleCache.SyncCreatePlatformFileError_WithoutIndex"/>
  <affected-histogram name="SimpleCache.SyncCreateResult"/>
  <affected-histogram name="SimpleCache.SyncCreateResult_WithIndex"/>
  <affected-histogram name="SimpleCache.SyncCreateResult_WithoutIndex"/>
  <affected-histogram name="SimpleCache.SyncKeySHA256Result"/>
  <affected-histogram name="SimpleCache.SyncOpenDidPrefetch"/>
  <affected-histogram name="SimpleCache.SyncOpenEntryAge"/>
  <affected-histogram name="SimpleCache.SyncOpenPlatformFileError"/>
  <affected-histogram name="SimpleCache.SyncOpenPlatformFileError_WithIndex"/>
  <affected-histogram
      name="SimpleCache.SyncOpenPlatformFileError_WithoutIndex"/>
  <affected-histogram name="SimpleCache.SyncOpenPrefetchMode"/>
  <affected-histogram name="SimpleCache.SyncOpenResult"/>
  <affected-histogram name="SimpleCache.SyncOpenResult_WithIndex"/>
  <affected-histogram name="SimpleCache.SyncOpenResult_WithoutIndex"/>
  <affected-histogram name="SimpleCache.SyncWriteResult"/>
  <affected-histogram name="SimpleCache.WriteDependencyType"/>
  <affected-histogram name="SimpleCache.WriteResult"/>
  <affected-histogram name="SimpleCache.WriteResult2"/>
</histogram_suffixes>

<histogram_suffixes name="CacheListSize" separator="_">
  <obsolete>
    Experiments no longer active.
  </obsolete>
  <suffix name="CacheListSize_12" label="Control"/>
  <suffix name="CacheListSize_13" label="Extended deleted list (2x)"/>
  <suffix name="CacheListSize_14" label="Out of the experiment"/>
  <affected-histogram name="DiskCache.TotalIOTime"/>
  <affected-histogram name="Net.HttpJob.TotalTime"/>
  <affected-histogram name="Net.HttpJob.TotalTimeCached"/>
  <affected-histogram name="Net.HttpJob.TotalTimeCancel"/>
  <affected-histogram name="Net.HttpJob.TotalTimeNotCached"/>
  <affected-histogram name="Net.HttpJob.TotalTimeSuccess"/>
  <affected-histogram name="PLT.Abandoned"/>
  <affected-histogram name="PLT.BeginToFinish"/>
  <affected-histogram name="PLT.BeginToFinish_HistoryLoad"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadCacheOnly"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadNormal"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadReload"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadStaleOk"/>
  <affected-histogram name="PLT.BeginToFinish_NormalLoad"/>
  <affected-histogram name="PLT.BeginToFinish_Reload"/>
</histogram_suffixes>

<histogram_suffixes name="CacheSensitivityAnalysis" separator="_">
  <obsolete>
    Experiments no longer active.
  </obsolete>
  <suffix name="100" label="100% slowdown"/>
  <suffix name="100A" label="100% slowdown, Group A"/>
  <suffix name="100B" label="100% slowdown, Group B"/>
  <suffix name="200A" label="200% slowdown, Group A"/>
  <suffix name="200B" label="200% slowdown, Group B"/>
  <suffix name="400A" label="400% slowdown, Group A"/>
  <suffix name="400B" label="400% slowdown, Group B"/>
  <suffix name="Control" label="Control group"/>
  <suffix name="ControlA" label="Control, Group A"/>
  <suffix name="ControlB" label="Control, Group B"/>
  <suffix name="No" label="Turned off"/>
  <affected-histogram name="Net.HttpJob.TotalTime"/>
  <affected-histogram name="Net.HttpJob.TotalTimeCached"/>
  <affected-histogram name="Net.HttpJob.TotalTimeCancel"/>
  <affected-histogram name="Net.HttpJob.TotalTimeNotCached"/>
  <affected-histogram name="Net.HttpJob.TotalTimeSuccess"/>
  <affected-histogram name="PLT.BeginToFinish_CacheSensitivity"/>
  <affected-histogram name="PLT.BeginToFinishDoc_CacheSensitivity"/>
  <affected-histogram name="PLT.BeginToFirstPaint_CacheSensitivity"/>
  <affected-histogram name="PLT.CommitToFirstPaint_CacheSensitivity"/>
</histogram_suffixes>

<histogram_suffixes name="CacheSensitivityHistograms" separator="_">
  <suffix name="CacheSensitivity" label="Cache Sensivitiy Analysis"/>
  <affected-histogram name="PLT.BeginToFinish"/>
  <affected-histogram name="PLT.BeginToFinishDoc"/>
  <affected-histogram name="PLT.BeginToFirstPaint"/>
  <affected-histogram name="PLT.CommitToFirstPaint"/>
</histogram_suffixes>

<histogram_suffixes name="CacheSensitivityHistograms" separator="_">
  <suffix name="CacheSensitivity" label="Cache Sensivitiy Analysis"/>
  <affected-histogram name="PLT.BeginToFinish"/>
  <affected-histogram name="PLT.BeginToFinishDoc"/>
  <affected-histogram name="PLT.BeginToFirstPaint"/>
  <affected-histogram name="PLT.CommitToFirstPaint"/>
</histogram_suffixes>

<histogram_suffixes name="CacheThrottle" separator="_">
  <suffix name="CacheThrottle_Off" label="Control group."/>
  <suffix name="CacheThrottle_On" label="Throttling payload requests."/>
  <affected-histogram name="DiskCache.TotalIOTime"/>
  <affected-histogram name="PLT.Abandoned"/>
  <affected-histogram name="PLT.BeginToFinish"/>
  <affected-histogram name="PLT.BeginToFinish_HistoryLoad"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadCacheOnly"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadNormal"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadReload"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadStaleOk"/>
  <affected-histogram name="PLT.BeginToFinish_NormalLoad"/>
  <affected-histogram name="PLT.BeginToFinish_Reload"/>
</histogram_suffixes>

<histogram_suffixes name="CanvasRequestedImageMimeTypeFunctions" separator="_">
  <suffix name="convertToBlobPromise"
      label="Image formats passed to OffscreenCanvas.convertToBlob (promise)"/>
  <suffix name="toBlobCallback"
      label="Image formats passed to canvas.toBlob (callback)"/>
  <suffix name="toDataURL" label="Image formats passed to canvas.toDataURL"/>
  <affected-histogram name="Blink.Canvas.RequestedImageMimeTypes"/>
</histogram_suffixes>

<histogram_suffixes name="CertificateTransparencyProtocol" separator=".">
  <suffix name="QUIC"/>
  <suffix name="SSL"/>
  <affected-histogram
      name="Net.CertificateTransparency.ConnectionComplianceStatus2"/>
  <affected-histogram
      name="Net.CertificateTransparency.CTRequiredConnectionComplianceStatus2"/>
  <affected-histogram name="Net.CertificateTransparency.EVCompliance2"/>
</histogram_suffixes>

<histogram_suffixes name="CertificateTypeAlgorithms" separator=".">
  <owner>rsleevi@chromium.org</owner>
  <suffix name="DH" label="DH"/>
  <suffix name="DSA" label="DSA"/>
  <suffix name="ECDH" label="ECDH"/>
  <suffix name="ECDSA" label="ECDSA"/>
  <suffix name="RSA" label="RSA"/>
  <suffix name="Unknown" label="SPKI unrecognized by cert library"/>
  <suffix name="Unsupported" label="Un-histogrammed type - please fix"/>
  <affected-histogram name="CertificateType.BR.Intermediate"/>
  <affected-histogram name="CertificateType.BR.Leaf"/>
  <affected-histogram name="CertificateType.BR.Root"/>
  <affected-histogram name="CertificateType.NonBR.Intermediate"/>
  <affected-histogram name="CertificateType.NonBR.Leaf"/>
  <affected-histogram name="CertificateType.NonBR.Root"/>
  <affected-histogram name="CertificateType2.BR.Intermediate"/>
  <affected-histogram name="CertificateType2.BR.Leaf"/>
  <affected-histogram name="CertificateType2.BR.Root"/>
  <affected-histogram name="CertificateType2.NonBR.Intermediate"/>
  <affected-histogram name="CertificateType2.NonBR.Leaf"/>
  <affected-histogram name="CertificateType2.NonBR.Root"/>
</histogram_suffixes>

<histogram_suffixes name="CertificateTypeBRValidity" separator=".">
  <obsolete>
    Deprecated as of 8/2013. This histogram only considered the leaf certificate
    expiry date as a proxy for whether a certificate was in-scope for the BRs,
    but did not consider the issuance date. As some CAs have issued long-lived
    certs prior to the BRs, this disproportionately reported those certs as
    being subject to the BRs, but non-compliant, when in reality they're not
    subject.
  </obsolete>
  <suffix name="BR"
      label="The *leaf* certificate of the chain expires after 2013-12-31,
             meaning that it should be in scope for the Baseline
             Requirement's key size requirements"/>
  <suffix name="NonBR"
      label="The *leaf* certificate of the chain expires on or before
             2013-12-31"/>
  <affected-histogram name="CertificateType"/>
</histogram_suffixes>

<histogram_suffixes name="CertificateTypeBRValidity2" separator=".">
  <suffix name="BR"
      label="The *leaf* certificate of the chain expires after 2013-12-31 and
             was issued on or after 2012-07-01, as judged by the notBefore,
             meaning that it should be in scope for the Baseline
             Requirement's key size requirements"/>
  <suffix name="NonBR"
      label="The *leaf* certificate of the chain expires on or before
             2013-12-31 or was issued before 2012-07-01"/>
  <affected-histogram name="CertificateType2"/>
</histogram_suffixes>

<histogram_suffixes name="CertificateTypeChainPosition" separator=".">
  <suffix name="Intermediate" label="Intermediate's SPKI"/>
  <suffix name="Leaf" label="Leaf's SPKI"/>
  <suffix name="Root" label="Root's SPKI"/>
  <affected-histogram name="CertificateType.BR"/>
  <affected-histogram name="CertificateType.NonBR"/>
  <affected-histogram name="CertificateType2.BR"/>
  <affected-histogram name="CertificateType2.NonBR"/>
</histogram_suffixes>

<histogram_suffixes name="CertIo" separator="">
  <obsolete>
    Deprecated as of 01/2016. CertCacheTrial has been removed.
    https://crbug.com/522312
  </obsolete>
  <suffix name="ReadFailure"
      label="failure rate of reading a certificate from the disk cache"/>
  <suffix name="ReadSuccess"
      label="success rate of reading a certificate from the disk cache"/>
  <suffix name="WriteFailure"
      label="failure rate of writing a certificate to the disk cache"/>
  <suffix name="WriteSuccess"
      label="success rate of writing a certificate to the disk cache"/>
  <affected-histogram name="DiskBasedCertCache.CertIo"/>
</histogram_suffixes>

<histogram_suffixes name="ChromeActivityName" separator=".">
  <suffix name="ChromeTabbedActivity"
      label="Activity launched in TABBED mode on Android"/>
  <suffix name="CustomTabActivity"
      label="Activity launched with a CUSTOM TAB on Android"/>
  <suffix name="DocumentActivity"
      label="Activity launched in DOCUMENT mode (Tabs and apps together) on
             Android"/>
  <affected-histogram name="MobileStartup.ToolbarFirstDrawTime"/>
  <affected-histogram name="MobileStartup.ToolbarFirstDrawTime2"/>
  <affected-histogram name="MobileStartup.ToolbarFirstFocusStartupState"/>
  <affected-histogram name="MobileStartup.ToolbarFirstFocusTime"/>
  <affected-histogram name="MobileStartup.ToolbarFirstFocusTime2"/>
  <affected-histogram name="MobileStartup.ToolbarInflationTime"/>
</histogram_suffixes>

<histogram_suffixes name="ChromeCleanerDialogDoneReason" separator="_">
  <suffix name="Accepted" label="User accepted the prompt."/>
  <suffix name="Canceled" label="User clicked the cancel button."/>
  <suffix name="DetailsButtonClicked" label="User clicked the details button."/>
  <suffix name="Dismissed"
      label="User dismissed the prompt, for example by pressing ESC."/>
  <affected-histogram name="SoftwareReporter.PromptDialog.TimeUntilDone"/>
</histogram_suffixes>

<histogram_suffixes name="ChromeCleanerFetchCompletedReason" separator="_">
  <suffix name="DownloadFailure"
      label="Download failed without an OK HTTP response code."/>
  <suffix name="DownloadSuccess" label="Download succeeded."/>
  <suffix name="NetworkError" label="Download failed due to a network error."/>
  <affected-histogram name="SoftwareReporter.Cleaner.NumberOfDownloadAttempts">
    <obsolete>
      Removed Jan 2018
    </obsolete>
  </affected-histogram>
  <affected-histogram name="SoftwareReporter.Cleaner.TimeToCompleteDownload"/>
</histogram_suffixes>

<histogram_suffixes name="ChromeContentBrowserClientMetricSuffixes"
    separator=".">
  <suffix name="docs" label="Custom histogram for Google Docs"/>
  <suffix name="search"
      label="Custom histogram for the Google Search results page"/>
  <affected-histogram
      name="ServiceWorker.ActivatedWorkerPreparationForMainFrame.Type"/>
</histogram_suffixes>

<histogram_suffixes name="ChromeOS.MachineIdRegen.AgeSeconds" separator="_">
  <suffix name="Network"/>
  <suffix name="Periodic"/>
  <suffix name="Unknown"/>
  <affected-histogram name="ChromeOS.MachineIdRegen.AgeSeconds"/>
</histogram_suffixes>

<histogram_suffixes name="Clients.StaleWhileRevalidateExperiment" separator="."
    ordering="prefix">
  <suffix name="Clients.StaleWhileRevalidateExperiment"
      label="Timing was recorded on one of the domains of focus for
             stale-while-revalidate"/>
  <affected-histogram name="PageLoad.Timing2.NavigationToFirstLayout"/>
  <affected-histogram name="PageLoad.Timing2.NavigationToFirstTextPaint"/>
  <affected-histogram name="PageLoad.Timing2.NavigationToLoadEventFired"/>
</histogram_suffixes>

<histogram_suffixes name="ClockResolution" separator=".">
  <obsolete>
    These were temporary metrics intended to understand whether high/low
    resolution clocks adversely impact page load metrics. After collecting a few
    months of data it was determined that clock resolution doesn't adversely
    impact our metrics, and that these histograms were no longer needed.
  </obsolete>
  <suffix name="HighResolutionClock"
      label="base::TimeTicks::IsHighResolution() is true for this measurement"/>
  <suffix name="LowResolutionClock"
      label="base::TimeTicks::IsHighResolution() is false for this
             measurement"/>
  <affected-histogram name="PageLoad.Timing2.NavigationToFirstContentfulPaint"/>
</histogram_suffixes>

<histogram_suffixes name="CloudPrintRequests" separator=".">
  <suffix name="DownloadData" label="Download data request"/>
  <suffix name="Other" label="Other requests"/>
  <suffix name="Register" label="Register request"/>
  <suffix name="UpdatePrinter" label="Update printer request"/>
  <affected-histogram name="CloudPrint.UrlFetcherDownloadSize"/>
  <affected-histogram name="CloudPrint.UrlFetcherRequestTime"/>
  <affected-histogram name="CloudPrint.UrlFetcherRetries"/>
  <affected-histogram name="CloudPrint.UrlFetcherUploadSize"/>
</histogram_suffixes>

<histogram_suffixes name="CompositorPendingTreeType" separator=".">
  <suffix name="Impl" label="Impl side invalidation initiated pending tree"/>
  <suffix name="Main" label="Commit initiated pending tree"/>
  <affected-histogram
      name="Scheduling.Renderer.ReadyToActivateToActivationDuration2"/>
</histogram_suffixes>

<histogram_suffixes name="CompositorTimingHistoryProcess" separator="."
    ordering="prefix">
  <suffix name="Browser"/>
  <suffix name="Renderer"/>
  <affected-histogram name="Scheduling.BeginImplFrameLatency2"/>
  <affected-histogram name="Scheduling.BeginMainFrameQueueDurationCritical2"/>
  <affected-histogram name="Scheduling.BeginMainFrameStartToCommitDuration2"/>
  <affected-histogram name="Scheduling.CommitToReadyToActivateDuration2"/>
  <affected-histogram name="Scheduling.DrawDuration2"/>
  <affected-histogram
      name="Scheduling.DrawIntervalWithMainThreadCompositableAnimations2"/>
  <affected-histogram name="Scheduling.InvalidationToReadyToActivateDuration2"/>
  <affected-histogram name="Scheduling.PrepareTilesDuration2"/>
  <affected-histogram name="Scheduling.SwapAckWasFast"/>
  <affected-histogram name="Scheduling.SwapToAckLatency2"/>
</histogram_suffixes>

<histogram_suffixes name="CompositorTimingHistoryProcess2" separator="."
    ordering="prefix">
  <suffix name="Browser"/>
  <suffix name="Renderer"/>
  <affected-histogram name="Scheduling.ImageInvalidationUpdateDuration"/>
</histogram_suffixes>

<histogram_suffixes name="CompositorTimingHistoryProcessObsolete" separator="."
    ordering="prefix">
  <obsolete>
    These used an old bucketing scheme that that had too many buckets and were
    an inefficient usage of UMA bandwidth. They have been replaced by new
    metrics of the same name with a &quot;2&quot; appended to them.
  </obsolete>
  <suffix name="Browser"/>
  <suffix name="Renderer"/>
  <affected-histogram name="Scheduling.ActivateDuration"/>
  <affected-histogram name="Scheduling.BeginMainFrameIntervalCritical"/>
  <affected-histogram name="Scheduling.BeginMainFrameIntervalNotCritical"/>
  <affected-histogram name="Scheduling.BeginMainFrameQueueDurationCritical"/>
  <affected-histogram name="Scheduling.BeginMainFrameQueueDurationNotCritical"/>
  <affected-histogram name="Scheduling.BeginMainFrameStartToCommitDuration"/>
  <affected-histogram name="Scheduling.BeginMainFrameToCommitDuration"/>
  <affected-histogram name="Scheduling.CommitInterval"/>
  <affected-histogram name="Scheduling.CommitToReadyToActivateDuration"/>
  <affected-histogram name="Scheduling.DrawDuration"/>
  <affected-histogram name="Scheduling.DrawInterval"/>
  <affected-histogram name="Scheduling.MainAndImplFrameTimeDelta"/>
  <affected-histogram name="Scheduling.PrepareTilesDuration"/>
  <affected-histogram name="Scheduling.SwapToAckLatency"/>
</histogram_suffixes>

<histogram_suffixes name="CompositorTimingHistorySubcategory" separator=".">
  <obsolete>
    Estimates don't need long term monitoring.
  </obsolete>
  <suffix name="NotUsedForEstimate"
      label="Samples that don't affect estimates. For example, because we are
             coming out of idle."/>
  <suffix name="Overestimate"
      label="Tracks when the compositor's estimates were too high and by how
             much."/>
  <suffix name="Underestimate"
      label="Tracks when the compositor's estimates were too low and by how
             much."/>
  <affected-histogram name="Scheduling.Browser.ActivateDuration"/>
  <affected-histogram name="Scheduling.Browser.BeginMainFrameToCommitDuration"/>
  <affected-histogram
      name="Scheduling.Browser.CommitToReadyToActivateDuration"/>
  <affected-histogram name="Scheduling.Browser.DrawDuration"/>
  <affected-histogram name="Scheduling.Browser.PrepareTilesDuration"/>
  <affected-histogram name="Scheduling.Renderer.ActivateDuration"/>
  <affected-histogram
      name="Scheduling.Renderer.BeginMainFrameToCommitDuration"/>
  <affected-histogram
      name="Scheduling.Renderer.CommitToReadyToActivateDuration"/>
  <affected-histogram name="Scheduling.Renderer.DrawDuration"/>
  <affected-histogram name="Scheduling.Renderer.PrepareTilesDuration"/>
</histogram_suffixes>

<histogram_suffixes name="CompositorTimingHistorySubcategory2" separator=".">
  <obsolete>
    Estimates don't need long term monitoring.
  </obsolete>
  <suffix name="NotUsedForEstimate"
      label="Samples that don't affect estimates. For example, because we are
             coming out of idle."/>
  <affected-histogram
      name="Scheduling.Browser.BeginMainFrameQueueDurationCritical"/>
  <affected-histogram
      name="Scheduling.Browser.BeginMainFrameQueueDurationNotCritical"/>
  <affected-histogram
      name="Scheduling.Browser.BeginMainFrameStartToCommitDuration"/>
  <affected-histogram
      name="Scheduling.Renderer.BeginMainFrameQueueDurationCritical"/>
  <affected-histogram
      name="Scheduling.Renderer.BeginMainFrameQueueDurationNotCritical"/>
  <affected-histogram
      name="Scheduling.Renderer.BeginMainFrameStartToCommitDuration"/>
</histogram_suffixes>

<histogram_suffixes name="CompositorTreePriority" separator=".">
  <suffix name="NewContent" label="New content/pending tree takes priority."/>
  <suffix name="Same" label="Same priority for both trees."/>
  <suffix name="Smoothness" label="Smoothness takes priority."/>
  <affected-histogram
      name="Scheduling.Browser.CommitToReadyToActivateDuration2"/>
  <affected-histogram
      name="Scheduling.Browser.InvalidationToReadyToActivateDuration2"/>
  <affected-histogram
      name="Scheduling.Renderer.CommitToReadyToActivateDuration2"/>
  <affected-histogram
      name="Scheduling.Renderer.InvalidationToReadyToActivateDuration2"/>
</histogram_suffixes>

<histogram_suffixes name="ConnCountImpact" separator="_">
  <suffix name="conn_count_4" label="with 4 persistent connections per host"/>
  <suffix name="conn_count_5" label="with 5 persistent connections per host"/>
  <suffix name="conn_count_6" label="with 6 persistent connections per host"/>
  <suffix name="conn_count_7" label="with 7 persistent connections per host"/>
  <suffix name="conn_count_8" label="with 8 persistent connections per host"/>
  <suffix name="conn_count_9" label="with 9 persistent connections per host"/>
  <suffix name="conn_count_16" label="with 16 persistent connections per host"/>
  <affected-histogram name="Net.Transaction_Connected_New"/>
  <affected-histogram name="PLT.Abandoned"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadNormal"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadReload"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadStaleOk"/>
  <affected-histogram name="PLT.BeginToFinish_NormalLoad"/>
  <affected-histogram name="Renderer4.Abandoned"/>
  <affected-histogram name="Renderer4.BeginToFinish_LinkLoadNormal"/>
  <affected-histogram name="Renderer4.BeginToFinish_LinkLoadReload"/>
  <affected-histogram name="Renderer4.BeginToFinish_LinkLoadStaleOk"/>
  <affected-histogram name="Renderer4.BeginToFinish_NormalLoad"/>
</histogram_suffixes>

<histogram_suffixes name="ConnectionMigrationCause" separator=".">
  <suffix name="OnMigrateBackToDefaultNetwork"/>
  <suffix name="OnNetworkConnected"/>
  <suffix name="OnNetworkDisconnected"/>
  <suffix name="OnNetworkMadeDefault"/>
  <suffix name="OnPathDegrading"/>
  <suffix name="OnWriteError"/>
  <suffix name="Unknown"/>
  <affected-histogram name="Net.QuicSession.ConnectionMigration"/>
  <affected-histogram name="Net.QuicSession.ConnectionMigrationProbeSuccess"/>
  <affected-histogram
      name="Net.QuicSession.HandshakeStatusOnConnectionMigration"/>
</histogram_suffixes>

<histogram_suffixes name="ConnectivityDetectorProbe" separator=".">
  <suffix name="Default"/>
  <suffix name="Fallback"/>
  <affected-histogram name="ConnectivityDetector.Probe.HttpResponseCode"/>
  <affected-histogram name="ConnectivityDetector.Probe.Result"/>
</histogram_suffixes>

<histogram_suffixes name="ConnectivityDiagnostics" separator=".">
  <suffix name="0" label="INTERNET_DISCONNECTED"/>
  <suffix name="1" label="CHROME_VERSION"/>
  <suffix name="2" label="CHROMEOS_VERSION"/>
  <suffix name="3" label="DNS_RESOLVER_PRESENT"/>
  <suffix name="4" label="CAPTIVE_PORTAL_DNS"/>
  <suffix name="5" label="CAPTIVE_PORTAL_HTTP"/>
  <suffix name="6" label="FIREWALL_80"/>
  <suffix name="7" label="FIREWALL_443"/>
  <suffix name="8" label="RESOLVER_LATENCY"/>
  <suffix name="9" label="HTTP_LATENCY"/>
  <suffix name="10" label="NIC_SIGNAL_STRENGTH"/>
  <suffix name="11" label="PING_GATEWAY"/>
  <affected-histogram name="ConnectivityDiagnostics.TestVerdict"/>
  <affected-histogram name="ConnectivityDiagnostics.TimeTaken"/>
</histogram_suffixes>

<histogram_suffixes name="ConnnectBackupJobs" separator="_">
  <suffix name="ConnectBackupJobsDisabled"/>
  <suffix name="ConnectBackupJobsEnabled"/>
  <affected-histogram name="Net.PreconnectUtilization"/>
  <affected-histogram name="Net.PreconnectUtilization2"/>
  <affected-histogram name="PLT.Abandoned"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadNormal"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadReload"/>
  <affected-histogram name="PLT.BeginToFinish_NormalLoad"/>
  <affected-histogram name="PLT.LoadType"/>
</histogram_suffixes>

<histogram_suffixes name="ContentSetting" separator=".">
  <suffix name="Allow" label="Allow"/>
  <suffix name="Ask" label="Ask"/>
  <suffix name="Block" label="Block"/>
  <suffix name="DetectImportantContent" label="Detect important content"/>
  <suffix name="SessionOnly" label="Session only"/>
  <affected-histogram name="ContentSettings.Exceptions.cookies"/>
  <affected-histogram name="ContentSettings.Exceptions.popups"/>
  <affected-histogram name="ContentSettings.Exceptions.subresource-filter"/>
</histogram_suffixes>

<histogram_suffixes name="ContentSettingsType" separator=".">
  <suffix name="app-banner" label="App banner exceptions"/>
  <suffix name="auto-select-certificate" label="Auto-select cert exceptions"/>
  <suffix name="automatic-downloads" label="Automatic downloads exceptions"/>
  <suffix name="autoplay" label="Autoplay exception"/>
  <suffix name="background-sync" label="Background sync exceptions"/>
  <suffix name="bluetooth-guard" label="Bluetooth guard exceptions"/>
  <suffix name="cookies" label="Cookies exceptions"/>
  <suffix name="durable-storage" label="Durable Storage Exceptions"/>
  <suffix name="fullscreen" label="Fullscreen exceptions"/>
  <suffix name="geolocation" label="Geolocation exceptions"/>
  <suffix name="images" label="Images exceptions"/>
  <suffix name="javascript" label="JavaScript exceptions"/>
  <suffix name="keygen" label="Keygen exceptions"/>
  <suffix name="media-engagement" label="Media engagement exceptions"/>
  <suffix name="media-stream-camera" label="Camera exceptions"/>
  <suffix name="media-stream-mic" label="Microphone exceptions"/>
  <suffix name="midi-sysex" label="Midi exceptions"/>
  <suffix name="mixed-script" label="Mixed script exceptions"/>
  <suffix name="mouselock" label="Mouse lock exceptions"/>
  <suffix name="notifications" label="Notification exceptions"/>
  <suffix name="plugins" label="Plugins exceptions"/>
  <suffix name="popups" label="Popups exceptions"/>
  <suffix name="ppapi-broker" label="Ppapi broker exceptions"/>
  <suffix name="protected-media-identifier" label="Protected media exceptions"/>
  <suffix name="protocol-handler" label="Protocol handler exceptions"/>
  <suffix name="push-messaging" label="Push messaging exceptions"/>
  <suffix name="site-engagement" label="Site engagement exceptions"/>
  <suffix name="sound" label="Sound exceptions"/>
  <suffix name="ssl-cert-decisions" label="SSL cert decisions exceptions"/>
  <suffix name="subresource-filter" label="Subresource filter exceptions"/>
  <suffix name="usb-chooser-data" label="USB chooser data exceptions"/>
  <affected-histogram name="ContentSettings.Exceptions"/>
</histogram_suffixes>

<histogram_suffixes name="ContentSuggestionCategory" separator=".">
  <suffix name="Articles" label="Articles for you"/>
  <suffix name="Bookmarks" label="Bookmarks"/>
  <suffix name="Contextual" label="Contextual suggestions"/>
  <suffix name="Downloads" label="Downloads"/>
  <suffix name="Experimental" label="Experimental"/>
  <suffix name="ForeignTabs" label="Open tabs on other devices"/>
  <suffix name="PhysicalWeb" label="Physical Web pages"/>
  <suffix name="ReadingList" label="Reading List entries"/>
  <suffix name="RecentTabs" label="Recent (offline) tabs"/>
  <affected-histogram
      name="NewTabPage.ContentSuggestions.CountOnNtpOpenedIfVisible"/>
  <affected-histogram name="NewTabPage.ContentSuggestions.DismissedUnvisited"/>
  <affected-histogram name="NewTabPage.ContentSuggestions.DismissedVisited"/>
  <affected-histogram name="NewTabPage.ContentSuggestions.MenuOpened"/>
  <affected-histogram name="NewTabPage.ContentSuggestions.MenuOpenedAge"/>
  <affected-histogram name="NewTabPage.ContentSuggestions.MenuOpenedScore"/>
  <affected-histogram
      name="NewTabPage.ContentSuggestions.MenuOpenedScoreNormalized"/>
  <affected-histogram name="NewTabPage.ContentSuggestions.MoreButtonClicked"/>
  <affected-histogram name="NewTabPage.ContentSuggestions.MoreButtonShown"/>
  <affected-histogram name="NewTabPage.ContentSuggestions.OpenDisposition"/>
  <affected-histogram name="NewTabPage.ContentSuggestions.Opened"/>
  <affected-histogram name="NewTabPage.ContentSuggestions.OpenedAge"/>
  <affected-histogram name="NewTabPage.ContentSuggestions.OpenedCategoryIndex"/>
  <affected-histogram name="NewTabPage.ContentSuggestions.OpenedScore"/>
  <affected-histogram
      name="NewTabPage.ContentSuggestions.OpenedScoreNormalized"/>
  <affected-histogram name="NewTabPage.ContentSuggestions.Shown"/>
  <affected-histogram name="NewTabPage.ContentSuggestions.ShownAge"/>
  <affected-histogram name="NewTabPage.ContentSuggestions.ShownScore"/>
  <affected-histogram
      name="NewTabPage.ContentSuggestions.ShownScoreNormalized"/>
  <affected-histogram name="NewTabPage.ContentSuggestions.VisitDuration"/>
</histogram_suffixes>

<histogram_suffixes name="ContentSuggestionUndoableActions" separator=".">
  <suffix name="Commit" label="Action was committed"/>
  <suffix name="Undo" label="Action was undone"/>
  <affected-histogram
      name="ContentSuggestions.Feed.InterestHeader.NotInterestedInSource"/>
  <affected-histogram
      name="ContentSuggestions.Feed.InterestHeader.NotInterestedInTopic"/>
  <affected-histogram name="NewTabPage.ContentSuggestions.DismissedUnvisited"/>
  <affected-histogram name="NewTabPage.ContentSuggestions.DismissedVisited"/>
</histogram_suffixes>

<histogram_suffixes name="ContextMenuFromApp" separator=".">
  <suffix name="FromApp" label="The source of the context menu was an app."/>
  <suffix name="NotFromApp"
      label="The source of the context menu was shelf or wallpaper."/>
  <affected-histogram name="Apps.ContextMenuExecuteCommand"/>
</histogram_suffixes>

<histogram_suffixes name="ContextMenuType" separator=".">
  <suffix name="Image"
      label="The context menu was shown for a (non-link) image"/>
  <suffix name="ImageLink"
      label="The context menu was shown for an image which is also a link"/>
  <suffix name="Link"
      label="The context menu was shown for a (non-image) link"/>
  <suffix name="MisspelledWord"
      label="The context menu was shown for a misspelt word"/>
  <suffix name="SelectedText"
      label="The context menu was shown for a text selection"/>
  <suffix name="Video" label="The context menu was shown for a video"/>
  <affected-histogram name="ContextMenu.SelectedOption"/>
</histogram_suffixes>

<histogram_suffixes name="ContextType" separator=".">
  <suffix name="BlimpRenderCompositor"
      label="BlimpCompositor compositor command buffer context">
    <obsolete>
      Deprecated and removed from code as of 02/2017.
    </obsolete>
  </suffix>
  <suffix name="BlimpRenderWorker"
      label="BlimpCompositor worker command buffer context">
    <obsolete>
      Deprecated and removed from code as of 02/2017.
    </obsolete>
  </suffix>
  <suffix name="BrowserCompositor"
      label="A BrowserCompositor GPU command buffer context"/>
  <suffix name="BrowserMainThread"
      label="A BrowserMainThread GPU command buffer context"/>
  <suffix name="DisplayCompositor"
      label="A display compositor GPU command buffer context"/>
  <suffix name="Media" label="The media worker command buffer context"/>
  <suffix name="MusClient" label="A mus client command buffer context"/>
  <suffix name="RenderCompositor"
      label="A RenderCompositor GPU command buffer context"/>
  <suffix name="RenderMainThread"
      label="A RenderMainThread GPU command buffer context"/>
  <suffix name="RenderWorker"
      label="A RenderWorker GPU command buffer context"/>
  <suffix name="UICompositor" label="The UI compositor command buffer context">
    <obsolete>
      Deprecated and removed from code as of 07/2018.
    </obsolete>
  </suffix>
  <suffix name="Unknown" label="A GPU command buffer context of unknown type"/>
  <suffix name="VideoAccelerator"
      label="A VideoAccelerator GPU command buffer context"/>
  <suffix name="VideoCapture"
      label="A VideoCapture GPU command buffer context"/>
  <suffix name="WebGL" label="A WebGL GPU command buffer context"/>
  <suffix name="WebGPU" label="A WebGPU control command buffer context"/>
  <suffix name="XRCompositing" label="Command buffer used for XR compositing"/>
  <affected-histogram name="GPU.ContextLost"/>
</histogram_suffixes>

<histogram_suffixes name="ContextualSearchQuickActionCategory" separator=".">
  <suffix name="Address"/>
  <suffix name="Email"/>
  <suffix name="Event"/>
  <suffix name="None"/>
  <suffix name="Phone"/>
  <suffix name="Website"/>
  <affected-histogram name="Search.ContextualSearchQuickActions.Clicked"/>
  <affected-histogram
      name="Search.ContextualSearchQuickActions.IntentResolution"/>
  <affected-histogram name="Search.ContextualSearchQuickActions.ResultsSeen"/>
</histogram_suffixes>

<histogram_suffixes name="ContextualSuggestionsPageViewSource" separator=".">
  <suffix name="ContextualSuggestions"
      label="For contextual suggestions navigations"/>
  <suffix name="Other" label="For non contextual suggestions navigations"/>
  <affected-histogram name="ContextualSuggestions.PageViewClickLength"/>
  <affected-histogram name="ContextualSuggestions.PageViewTime"/>
</histogram_suffixes>

<histogram_suffixes name="CookieConnectionType" separator="">
  <suffix name="NonSecure" label="For non-secure,"/>
  <suffix name="Secure" label="For secure,"/>
  <affected-histogram name="Cookie.AgeFor"/>
  <affected-histogram name="Cookie.AllAgesFor"/>
</histogram_suffixes>

<histogram_suffixes name="CookieSiteAffinity" separator="">
  <suffix name="CrossSiteRequest" label="cross-site requests."/>
  <suffix name="SameSiteRequest" label="same-site requests."/>
  <affected-histogram name="Cookie.AgeForNonSecure"/>
  <affected-histogram name="Cookie.AgeForSecure"/>
  <affected-histogram name="Cookie.AllAgesForNonSecure"/>
  <affected-histogram name="Cookie.AllAgesForSecure"/>
</histogram_suffixes>

<histogram_suffixes name="CreditCardScanSuccess" separator="_">
  <suffix name="Cancelled" label="Credit card scan was cancelled."/>
  <suffix name="Completed" label="Credit card scan completed."/>
  <affected-histogram name="Autofill.ScanCreditCard.Duration"/>
</histogram_suffixes>

<histogram_suffixes name="CrosFirstRunStep" separator="">
  <suffix name="AppList"/>
  <suffix name="Help"/>
  <suffix name="Tray"/>
  <affected-histogram name="CrosFirstRun.TimeSpentOnStep"/>
</histogram_suffixes>

<histogram_suffixes name="CryptohomeAsyncDBusMethod" separator=".">
  <suffix name="AsyncTpmAttestationCreateCertRequest"/>
  <suffix name="AsyncTpmAttestationCreateEnrollRequest"/>
  <suffix name="AsyncTpmAttestationEnroll"/>
  <suffix name="AsyncTpmAttestationFinishCertRequest"/>
  <suffix name="TpmAttestationRegisterKey"/>
  <suffix name="TpmAttestationSignEnterpriseVaChallenge"/>
  <suffix name="TpmAttestationSignSimpleChallenge"/>
  <affected-histogram name="Cryptohome.AsyncDBusRequest"/>
</histogram_suffixes>

<histogram_suffixes name="CryptohomeClientDBusMethod" separator=".">
  <suffix name="AddKeyEx"/>
  <suffix name="AsyncDoesUsersExist"/>
  <suffix name="AsyncMigrateKey"/>
  <suffix name="AsyncMount"/>
  <suffix name="AsyncMountGuest"/>
  <suffix name="AsyncRemove"/>
  <suffix name="AsyncRemoveTrackedSubdirectories"/>
  <suffix name="AsyncTpmAttestationCreateCertRequest"/>
  <suffix name="AsyncTpmAttestationCreateCertRequestByProfile"/>
  <suffix name="AsyncTpmAttestationCreateEnrollRequest"/>
  <suffix name="AsyncTpmAttestationCreateEnrollRequestNew"/>
  <suffix name="AsyncTpmAttestationEnroll"/>
  <suffix name="AsyncTpmAttestationEnrollNew"/>
  <suffix name="AsyncTpmAttestationFinishCertRequest"/>
  <suffix name="CheckKeyEx"/>
  <suffix name="FinalizeBootLockbox"/>
  <suffix name="FlushAndSignBootAttributes"/>
  <suffix name="GetAccountDiskUsage"/>
  <suffix name="GetBootAttribute"/>
  <suffix name="GetCurrentSpaceForGid"/>
  <suffix name="GetCurrentSpaceForUid"/>
  <suffix name="GetEndorsementInfo"/>
  <suffix name="GetFirmwareManagementParameters"/>
  <suffix name="GetKeyDataEx"/>
  <suffix name="GetLoginStatus"/>
  <suffix name="GetSanitizedUsername"/>
  <suffix name="GetStatusString"/>
  <suffix name="GetSupportedKeyPolicies"/>
  <suffix name="GetSystemSalt"/>
  <suffix name="GetTpmStatus"/>
  <suffix name="InstallAttributesCount"/>
  <suffix name="InstallAttributesFinalize"/>
  <suffix name="InstallAttributesGet"/>
  <suffix name="InstallAttributesIsFirstInstall"/>
  <suffix name="InstallAttributesIsInvalid"/>
  <suffix name="InstallAttributesIsReady"/>
  <suffix name="InstallAttributesIsSecure"/>
  <suffix name="InstallAttributesSet"/>
  <suffix name="IsMounted"/>
  <suffix name="IsQuotaSupported"/>
  <suffix name="MigrateKey"/>
  <suffix name="MigrateKeyEx"/>
  <suffix name="MigrateToDircrypto"/>
  <suffix name="Mount"/>
  <suffix name="MountEx"/>
  <suffix name="MountGuest"/>
  <suffix name="MountGuestEx"/>
  <suffix name="NeedsDircryptoMigration"/>
  <suffix name="Pkcs11GetTpmTokenInfo"/>
  <suffix name="Pkcs11GetTpmTokenInfoForUser"/>
  <suffix name="Pkcs11IsTpmTokenReady"/>
  <suffix name="RemoveEx"/>
  <suffix name="RemoveFirmwareManagementParameters"/>
  <suffix name="RemoveKeyEx"/>
  <suffix name="RemoveTrackedSubdirectories"/>
  <suffix name="RenameCryptohome"/>
  <suffix name="SetBootAttribute"/>
  <suffix name="SetFirmwareManagementParameters"/>
  <suffix name="SignBootLockbox"/>
  <suffix name="TpmAttestationCreateCertRequest"/>
  <suffix name="TpmAttestationCreateEnrollRequest"/>
  <suffix name="TpmAttestationDeleteKeys"/>
  <suffix name="TpmAttestationDoesKeyExist"/>
  <suffix name="TpmAttestationEnroll"/>
  <suffix name="TpmAttestationFinishCertRequest"/>
  <suffix name="TpmAttestationGetCertificate"/>
  <suffix name="TpmAttestationGetEnrollmentId"/>
  <suffix name="TpmAttestationGetKeyPayload"/>
  <suffix name="TpmAttestationGetPublicKey"/>
  <suffix name="TpmAttestationRegisterKey"/>
  <suffix name="TpmAttestationSetKeyPayload"/>
  <suffix name="TpmAttestationSignEnterpriseChallenge"/>
  <suffix name="TpmAttestationSignEnterpriseVaChallenge"/>
  <suffix name="TpmAttestationSignSimpleChallenge"/>
  <suffix name="TpmCanAttemptOwnership"/>
  <suffix name="TpmClearStoredPassword"/>
  <suffix name="TpmGetPassword"/>
  <suffix name="TpmGetVersionStructured"/>
  <suffix name="TpmIsAttestationEnrolled"/>
  <suffix name="TpmIsAttestationPrepared"/>
  <suffix name="TpmIsBeingOwned"/>
  <suffix name="TpmIsEnabled"/>
  <suffix name="TpmIsOwned"/>
  <suffix name="TpmIsReady"/>
  <suffix name="Unmount"/>
  <suffix name="UpdateKeyEx"/>
  <suffix name="VerifyBootLockbox"/>
  <affected-histogram name="CryptohomeClient"/>
</histogram_suffixes>

<histogram_suffixes name="CurrentTabState" separator="_">
  <suffix name="Active"
      label="For an active tab which is shown foreground in a browser window."/>
  <suffix name="Detached"
      label="For a tab that is being dragged by user to outside of the
             browser window."/>
  <suffix name="Inactive"
      label="For tabs in background and not shown to user."/>
  <suffix name="Initial" label="For a tab that is just being created."/>
  <affected-histogram name="Tabs.StateTransfer.Target"/>
  <affected-histogram name="Tabs.StateTransfer.Time"/>
</histogram_suffixes>

<histogram_suffixes name="CustomTabOpenSource" separator=".">
  <suffix name="MediaLauncherActivity"
      label="CustomTab opened by MediaLauncherActivity."/>
  <suffix name="Other" label="CustomTab opened by other apps."/>
  <suffix name="TWA" label="CustomTab opened by Trusted Web Activity."/>
  <suffix name="WebApk" label="CustomTab opened by WebApk."/>
  <suffix name="Webapp" label="CustomTab opened by Webapp."/>
  <affected-histogram name="CustomTab.SessionDuration"/>
</histogram_suffixes>

<histogram_suffixes name="CustomTabs.DetachedResourceRequestFinalStatus"
    separator=".">
  <suffix name="Failure" label="Failed detached request"/>
  <suffix name="Success" label="Successful detached request"/>
  <affected-histogram name="CustomTabs.DetachedResourceRequest.Duration"/>
  <affected-histogram name="CustomTabs.DetachedResourceRequest.RedirectsCount"/>
  <affected-histogram name="CustomTabs.ResourcePrefetch.Duration"/>
</histogram_suffixes>

<histogram_suffixes name="DataReductionProxy" separator="_">
  <obsolete>
    Deprecated 9/2016.
  </obsolete>
  <suffix name="DataReductionProxy"
      label="Only page loads through the data reduction proxy are considered."/>
  <suffix name="HTTPS_DataReductionProxy"
      label="Only page loads through the data reduction proxy through an HTTP
             tunnel for HTTPS origins are considered."/>
  <affected-histogram name="PLT.NT_Connect"/>
  <affected-histogram name="PLT.NT_DelayBeforeConnect"/>
  <affected-histogram name="PLT.NT_DelayBeforeDomainLookup"/>
  <affected-histogram name="PLT.NT_DelayBeforeDomLoading"/>
  <affected-histogram name="PLT.NT_DelayBeforeFetch"/>
  <affected-histogram name="PLT.NT_DelayBeforeFetchRedirect"/>
  <affected-histogram name="PLT.NT_DelayBeforeLoadEvent"/>
  <affected-histogram name="PLT.NT_DelayBeforeRequest"/>
  <affected-histogram name="PLT.NT_DomainLookup"/>
  <affected-histogram name="PLT.NT_DomContentLoaded"/>
  <affected-histogram name="PLT.NT_DomInteractive"/>
  <affected-histogram name="PLT.NT_DomLoading"/>
  <affected-histogram name="PLT.NT_LoadEvent"/>
  <affected-histogram name="PLT.NT_Redirect"/>
  <affected-histogram name="PLT.NT_Request"/>
  <affected-histogram name="PLT.NT_Response"/>
  <affected-histogram name="PLT.PT_BeginToCommit"/>
  <affected-histogram name="PLT.PT_BeginToFinish"/>
  <affected-histogram name="PLT.PT_BeginToFinishDoc"/>
  <affected-histogram name="PLT.PT_CommitToFinish"/>
  <affected-histogram name="PLT.PT_CommitToFinishDoc"/>
  <affected-histogram name="PLT.PT_FinishDocToFinish"/>
  <affected-histogram name="PLT.PT_RequestToCommit"/>
  <affected-histogram name="PLT.PT_RequestToDomContentLoaded"/>
  <affected-histogram name="PLT.PT_RequestToFinish"/>
  <affected-histogram name="PLT.PT_RequestToFinishDoc"/>
  <affected-histogram name="PLT.PT_RequestToStart"/>
  <affected-histogram name="PLT.PT_StartToCommit"/>
  <affected-histogram name="PLT.PT_StartToFinish"/>
</histogram_suffixes>

<histogram_suffixes
    name="DataReductionProxy.LoFi.Accuracy.DifferentRecordingIntervals"
    separator=".">
  <suffix name="15"
      label="Recorded approximately 15 seconds after navigation start"/>
  <suffix name="30"
      label="Recorded approximately 30 seconds after navigation start"/>
  <suffix name="60"
      label="Recorded approximately 60 seconds after navigation start"/>
  <affected-histogram name="DataReductionProxy.LoFi.Accuracy"/>
</histogram_suffixes>

<histogram_suffixes name="DataReductionProxy.MimeType" separator="_">
  <suffix name="Application" label="Application mime-type"/>
  <suffix name="Unknown"
      label="Deprecated. Moved to UnknownMime in M46. Unknown mime-type"/>
  <suffix name="UnknownMime" label="Unknown mime-type"/>
  <suffix name="Video" label="Video mime-type"/>
  <affected-histogram name="Net.DailyContentLength"/>
  <affected-histogram name="Net.DailyContentLength_DataReductionProxyEnabled"/>
  <affected-histogram name="Net.DailyContentLength_ViaDataReductionProxy"/>
  <affected-histogram name="Net.DailyOriginalContentLength"/>
  <affected-histogram
      name="Net.DailyOriginalContentLength_DataReductionProxyEnabled"/>
  <affected-histogram
      name="Net.DailyOriginalContentLength_ViaDataReductionProxy"/>
</histogram_suffixes>

<histogram_suffixes name="DataReductionProxy.NetworkTypes" separator=".">
  <suffix name="2G" label="On 2G network"/>
  <suffix name="3G" label="On 3G Network"/>
  <suffix name="4G" label="On 4G network"/>
  <suffix name="Bluetooth" label="On Bluetooth network"/>
  <suffix name="Ethernet" label="On Ethernet network"/>
  <suffix name="None" label="With no detected network"/>
  <suffix name="Unknown" label="On Unknown network"/>
  <suffix name="WiFi" label="On WiFi network"/>
  <affected-histogram name="DataReductionProxy.AutoLoFiAccuracy"/>
  <affected-histogram name="DataReductionProxy.AutoLoFiRequestHeaderState"/>
  <affected-histogram name="DataReductionProxy.LoFi.Accuracy.15"/>
  <affected-histogram name="DataReductionProxy.LoFi.Accuracy.30"/>
  <affected-histogram name="DataReductionProxy.LoFi.Accuracy.60"/>
  <affected-histogram name="DataReductionProxy.LoFi.ImplicitOptOutAction"/>
</histogram_suffixes>

<histogram_suffixes
    name="DataReductionProxy.WarmupURL.FetchAttemptsBeforeSuccess"
    separator=".">
  <suffix name="Insecure.Core"
      label="Records fetch attempts for the first core insecure data
             reduction proxy"/>
  <suffix name="Insecure.NonCore"
      label="Records fetch attempts for the first non-core insecure data
             reduction proxy"/>
  <suffix name="Secure.Core"
      label="Records fetch attempts for the first core secure data reduction
             proxy"/>
  <suffix name="Secure.NonCore"
      label="Records fetch attempts for the first non-core secure data
             reduction proxy"/>
  <affected-histogram
      name="DataReductionProxy.WarmupURL.FetchAttemptsBeforeSuccess"/>
</histogram_suffixes>

<histogram_suffixes name="DataReductionProxy.WithValidOCL.LoFiOn" separator=".">
  <obsolete>
    Deprecated 04/2018.
  </obsolete>
  <suffix name="LoFiOn"
      label="Only page loads through the data reduction proxy with Lo-Fi On
             are considered."/>
  <affected-histogram name="Net.HttpContentLengthDifferenceWithValidOCL"/>
  <affected-histogram name="Net.HttpContentLengthWithValidOCL"/>
  <affected-histogram name="Net.HttpOriginalContentLengthWithValidOCL"/>
</histogram_suffixes>

<histogram_suffixes name="DataReductionProxy_AutoLoFi" separator="_">
  <obsolete>
    Deprecated 09/2016.
  </obsolete>
  <suffix name="DataReductionProxy_AutoLoFiOff"
      label="Only page loads through the data reduction proxy with auto LoFi
             disabled are considered."/>
  <suffix name="DataReductionProxy_AutoLoFiOn"
      label="Only page loads through the data reduction proxy with auto LoFi
             enabled are considered."/>
  <suffix name="HTTPS_DataReductionProxy_AutoLoFiOff"
      label="Only page loads through the data reduction proxy through an HTTP
             tunnel for HTTPS origins with auto LoFi disabled are considered."/>
  <suffix name="HTTPS_DataReductionProxy_AutoLoFiOn"
      label="Only page loads through the data reduction proxy through an HTTP
             tunnel for HTTPS origins with auto LoFi enabled are considered."/>
  <affected-histogram name="PLT.BeginToFirstPaint"/>
  <affected-histogram name="PLT.PT_BeginToFinish"/>
  <affected-histogram name="PLT.PT_CommitToFinish"/>
  <affected-histogram name="PLT.PT_RequestToDomContentLoaded"/>
  <affected-histogram name="PLT.PT_RequestToFinish"/>
  <affected-histogram name="PLT.PT_StartToFinish"/>
</histogram_suffixes>

<histogram_suffixes name="DataReductionProxy_TamperingFingerprints"
    separator="_">
  <suffix name="ChromeProxy"
      label="for each carrier, number of tamperings detected on Chrome-Proxy
             header"/>
  <suffix name="CompressionRatio_Image"
      label="the histogram of compression ratio of images"/>
  <suffix name="CompressionRatio_Image_0_10KB"
      label="the histogram of compression ratio of images whose sizes are in
             the range of 0-10KB"/>
  <suffix name="CompressionRatio_Image_10_100KB"
      label="the histogram of compression ratio of images whose sizes are in
             the range of 10-100KB"/>
  <suffix name="CompressionRatio_Image_100_500KB"
      label="the histogram of compression ratio of images whose sizes are in
             the range of 100-500KB"/>
  <suffix name="CompressionRatio_Image_500KB"
      label="the histogram of compression ratio of images whose sizes are
             larger than 500KB"/>
  <suffix name="CompressionRatio_Image_GIF"
      label="the histogram of compression ratio of GIF images"/>
  <suffix name="CompressionRatio_Image_JPG"
      label="the histogram of compression ratio of JPG images"/>
  <suffix name="CompressionRatio_Image_PNG"
      label="the histogram of compression ratio of PNG images"/>
  <suffix name="CompressionRatio_Image_WEBP"
      label="the histogram of compression ratio of WEBP images"/>
  <suffix name="CompressionRatio_Video"
      label="the histogram of compression ratio of videos"/>
  <suffix name="ContentLength"
      label="for each carrier, total number of responses whose Content-Length
             header has been tampered with"/>
  <suffix name="ContentLength_CSS"
      label="for each carrier, number of CSS responses whose Content-Length
             header has been tampered with"/>
  <suffix name="ContentLength_Image"
      label="for each carrier, number of image responses whose Content-Length
             header has been tampered with"/>
  <suffix name="ContentLength_Image_GIF"
      label="for each carrier, number of GIF image responses whose
             Content-Length header has been tampered with"/>
  <suffix name="ContentLength_Image_JPG"
      label="for each carrier, number of JPEG image responses whose
             Content-Length header has been tampered with"/>
  <suffix name="ContentLength_Image_PNG"
      label="for each carrier, number of PNG image responses whose
             Content-Length header has been tampered with"/>
  <suffix name="ContentLength_Image_WEBP"
      label="for each carrier, number of WebP image responses whose
             Content-Length header has been tampered with"/>
  <suffix name="ContentLength_JS"
      label="for each carrier, number of JavaScript responses whose
             Content-Length header has been tampered with"/>
  <suffix name="ContentLength_Other"
      label="for each carrier, number of other type responses whose
             Content-Length header has been tampered with"/>
  <suffix name="ContentLength_Video"
      label="for each carrier, number of video responses whose Content-Length
             header has been tampered with"/>
  <suffix name="OtherHeaders"
      label="for each carrier, number of tamperings detected on a list of
             headers"/>
  <suffix name="Via"
      label="for each carrier, number of tamperings detected on Via header"/>
  <suffix name="Via_Missing"
      label="for each carrier, number of responses whose data reduction
             proxy's Via header is missing"/>
  <affected-histogram name="DataReductionProxy.HeaderTamperedHTTP"/>
  <affected-histogram name="DataReductionProxy.HeaderTamperedHTTPS"/>
</histogram_suffixes>

<histogram_suffixes name="DataReductionProxy_TamperingTotal" separator="_">
  <suffix name="Total" label="total number of tamperings detected"/>
  <affected-histogram name="DataReductionProxy.HeaderTamperDetectionHTTP"/>
  <affected-histogram name="DataReductionProxy.HeaderTamperDetectionHTTP_CSS"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperDetectionHTTP_Image"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperDetectionHTTP_Image_0_10KB"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperDetectionHTTP_Image_100_500KB"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperDetectionHTTP_Image_10_100KB"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperDetectionHTTP_Image_500KB"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperDetectionHTTP_Image_GIF"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperDetectionHTTP_Image_JPG"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperDetectionHTTP_Image_PNG"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperDetectionHTTP_Image_WEBP"/>
  <affected-histogram name="DataReductionProxy.HeaderTamperDetectionHTTP_JS"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperDetectionHTTP_Video"/>
  <affected-histogram name="DataReductionProxy.HeaderTamperDetectionHTTPS"/>
  <affected-histogram name="DataReductionProxy.HeaderTamperDetectionHTTPS_CSS"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperDetectionHTTPS_Image"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperDetectionHTTPS_Image_0_10KB"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperDetectionHTTPS_Image_100_500KB"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperDetectionHTTPS_Image_10_100KB"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperDetectionHTTPS_Image_500KB"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperDetectionHTTPS_Image_GIF"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperDetectionHTTPS_Image_JPG"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperDetectionHTTPS_Image_PNG"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperDetectionHTTPS_Image_WEBP"/>
  <affected-histogram name="DataReductionProxy.HeaderTamperDetectionHTTPS_JS"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperDetectionHTTPS_Video"/>
  <affected-histogram name="DataReductionProxy.HeaderTamperDetectionPassHTTP"/>
  <affected-histogram name="DataReductionProxy.HeaderTamperDetectionPassHTTPS"/>
  <affected-histogram name="DataReductionProxy.HeaderTamperedHTTP_ChromeProxy"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperedHTTP_ContentLength"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperedHTTP_ContentLength_CSS"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperedHTTP_ContentLength_Image"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperedHTTP_ContentLength_JS"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperedHTTP_ContentLength_Other"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperedHTTP_OtherHeaders"/>
  <affected-histogram name="DataReductionProxy.HeaderTamperedHTTP_Via"/>
  <affected-histogram name="DataReductionProxy.HeaderTamperedHTTP_Via_Missing"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperedHTTPS_ChromeProxy"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperedHTTPS_ContentLength"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperedHTTPS_ContentLength_CSS"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperedHTTPS_ContentLength_Image"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperedHTTPS_ContentLength_JS"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperedHTTPS_ContentLength_Other"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperedHTTPS_OtherHeaders"/>
  <affected-histogram name="DataReductionProxy.HeaderTamperedHTTPS_Via"/>
  <affected-histogram
      name="DataReductionProxy.HeaderTamperedHTTPS_Via_Missing"/>
</histogram_suffixes>

<histogram_suffixes name="DataReductionProxy_TotalCounts" separator="_">
  <suffix name="CSS" label="CSS count"/>
  <suffix name="Image" label="image count"/>
  <suffix name="Image_0_10KB" label="image counts of 0-10KB"/>
  <suffix name="Image_10_100KB" label="image counts of 10-100KB"/>
  <suffix name="Image_100_500KB" label="image counts of 100-500KB"/>
  <suffix name="Image_500KB" label="image counts of more than 500KB"/>
  <suffix name="Image_GIF" label="GIF image count"/>
  <suffix name="Image_JPG" label="JPG image count"/>
  <suffix name="Image_PNG" label="PNG image count"/>
  <suffix name="Image_WEBP" label="WEBP image count"/>
  <suffix name="JS" label="JavaScript count"/>
  <suffix name="Video" label="Video count"/>
  <affected-histogram name="DataReductionProxy.HeaderTamperDetectionHTTP"/>
  <affected-histogram name="DataReductionProxy.HeaderTamperDetectionHTTPS"/>
</histogram_suffixes>

<histogram_suffixes name="DataReductionProxyBypassedBytes" separator=".">
  <suffix name="Current" label="Bypass due to explicit instruction"/>
  <suffix name="CurrentApplicationOctetStream"
      label="Bypass due to explicit instruction for
             'application/octet-stream' content type"/>
  <suffix name="CurrentAudioVideo"
      label="Bypass due to explicit instruction for audio/video"/>
  <suffix name="LocalBypassRules"
      label="Bypass due to client-side bypass rules or because the proxy
             config was missing at the client"/>
  <suffix name="LongAll" label="Long bypass"/>
  <suffix name="LongTriggeringRequest" label="Triggering request long bypass"/>
  <suffix name="Malformed407"
      label="Bypass due to 407 response from proxy without a challenge"/>
  <suffix name="ManagedProxyConfig"
      label="Deprecated 1/9/2014 (M-41). Bypass due to a managed config"/>
  <suffix name="MediumAll" label="Medium bypass"/>
  <suffix name="MediumTriggeringRequest"
      label="Triggering request medium bypass"/>
  <suffix name="MissingViaHeader4xx"
      label="Bypass due to a 4xx missing via header"/>
  <suffix name="MissingViaHeaderOther"
      label="Bypass due to other missing via header"/>
  <suffix name="NetworkErrorOther" label="Bypass due to any network error"/>
  <suffix name="NetworkErrorProxyCertificateInvalid"
      label="Bypass due to invalid proxy certificate"/>
  <suffix name="NetworkErrorProxyConnectionFailed"
      label="Bypass due to failed proxy connection"/>
  <suffix name="NetworkErrorTimedOut" label="Bypass due to network timeout"/>
  <suffix name="ProxyOverridden"
      label="Bypass due to another proxy taking precedence"/>
  <suffix name="ShortAll" label="Short bypass"/>
  <suffix name="ShortAudioVideo"
      label="Triggering request short bypass due to audio/video"/>
  <suffix name="ShortTriggeringRequest"
      label="Triggering request short bypass"/>
  <suffix name="SSL" label="Bypass due to SSL"/>
  <suffix name="Status500HttpInternalServerError"
      label="Bypass due to internal server error"/>
  <suffix name="Status502HttpBadGateway"
      label="Bypass because the request URI was too long"/>
  <suffix name="Status503HttpServiceUnavailable"
      label="Bypass due to a 503 response"/>
  <suffix name="URLRedirectCycle" label="Bypass due to URL redirect cycle"/>
  <affected-histogram name="DataReductionProxy.BypassedBytes"/>
</histogram_suffixes>

<histogram_suffixes name="DataReductionProxyConfigFetchLostBytes" separator="_">
  <obsolete>
    Removed in Feb 2016.
  </obsolete>
  <suffix name="0" label="Bucket 0 for gathering multiple data points."/>
  <suffix name="1" label="Bucket 1 for gathering multiple data points."/>
  <suffix name="2" label="Bucket 2 for gathering multiple data points."/>
  <suffix name="3" label="Bucket 3 for gathering multiple data points."/>
  <suffix name="4" label="Bucket 4 for gathering multiple data points."/>
  <suffix name="5" label="Bucket 5 for gathering multiple data points."/>
  <suffix name="6" label="Bucket 6 for gathering multiple data points."/>
  <suffix name="7" label="Bucket 7 for gathering multiple data points."/>
  <suffix name="8" label="Bucket 8 for gathering multiple data points."/>
  <suffix name="9" label="Bucket 9 for gathering multiple data points."/>
  <affected-histogram name="DataReductionProxy.ConfigFetchLostBytesCL"/>
  <affected-histogram name="DataReductionProxy.ConfigFetchLostBytesDiff"/>
  <affected-histogram name="DataReductionProxy.ConfigFetchLostBytesOCL"/>
</histogram_suffixes>

<histogram_suffixes name="DataReductionProxyMissingViaHeaderBytes"
    separator=".">
  <obsolete>
    Removed 2018/04.
  </obsolete>
  <suffix name="4xx" label="Response with 4xx response code"/>
  <suffix name="Other" label="Other response"/>
  <affected-histogram name="DataReductionProxy.MissingViaHeader.Bytes"/>
</histogram_suffixes>

<histogram_suffixes name="DataReductionProxyMissingViaHeaderResponseCode"
    separator=".">
  <suffix name="Fallback" label="Fallback data reduction proxy"/>
  <suffix name="Primary" label="Primary data reduction proxy"/>
  <affected-histogram name="DataReductionProxy.MissingViaHeader.ResponseCode"/>
</histogram_suffixes>

<histogram_suffixes name="DataReductionProxyRequestCompletionErrorCodes"
    separator=".">
  <suffix name="Fallback" label="Fallback data reduction proxy"/>
  <suffix name="Primary" label="Primary data reduction proxy"/>
  <affected-histogram name="DataReductionProxy.RequestCompletionErrorCodes"/>
</histogram_suffixes>

<histogram_suffixes
    name="DataReductionProxyRequestCompletionErrorCodesMainFrame" separator=".">
  <suffix name="Fallback" label="Fallback data reduction proxy"/>
  <suffix name="Primary" label="Primary data reduction proxy"/>
  <affected-histogram
      name="DataReductionProxy.RequestCompletionErrorCodes.MainFrame"/>
</histogram_suffixes>

<histogram_suffixes name="DataSaverEnabled" separator=".">
  <suffix name="DataSaverDisabled" label="Data Saver is disabled"/>
  <suffix name="DataSaverEnabled" label="Data Saver is enabled"/>
  <affected-histogram name="Previews.ContentLength"/>
  <affected-histogram name="Previews.DataInflation"/>
  <affected-histogram name="Previews.DataInflationPercent"/>
  <affected-histogram name="Previews.DataSavings"/>
  <affected-histogram name="Previews.DataSavingsPercent"/>
  <affected-histogram name="Previews.OriginalContentLength"/>
</histogram_suffixes>

<histogram_suffixes name="DataSaverProxyTypes" separator=".">
  <suffix name="InsecureProxy.Core"
      label="Over an insecure, core data saver proxy."/>
  <suffix name="InsecureProxy.NonCore"
      label="Over an insecure, non-core data saver proxy."/>
  <owner>tbansal@chromium.org</owner>
  <suffix name="SecureProxy.Core"
      label="Over a secure, core data saver proxy."/>
  <suffix name="SecureProxy.NonCore"
      label="Over a secure, non-core data saver proxy."/>
  <affected-histogram
      name="DataReductionProxy.WarmupURLFetcherCallback.SuccessfulFetch"/>
</histogram_suffixes>

<histogram_suffixes name="DataUsageReportSubmissionBytes" separator=".">
  <suffix name="Failed"
      label="Platform external data use observer reported the submission as
             failed"/>
  <suffix name="Lost"
      label="Lost before it could be submitted to platform external data use
             observer"/>
  <suffix name="Successful"
      label="Platform external data use observer reported the submission as
             successful"/>
  <suffix name="TimedOut"
      label="Submission of the report to the platform external data use
             observer timed out"/>
  <affected-histogram name="DataUsage.ReportSubmission.Bytes"/>
</histogram_suffixes>

<histogram_suffixes name="DataUse.AppTabState.Dimensions" separator=".">
  <suffix name="Downstream.AppBackground"/>
  <suffix name="Downstream.AppForeground.TabBackground"/>
  <suffix name="Downstream.AppForeground.TabForeground"/>
  <suffix name="Upstream.AppBackground"/>
  <suffix name="Upstream.AppForeground.TabBackground"/>
  <suffix name="Upstream.AppForeground.TabForeground"/>
  <affected-histogram name="DataUse.AppTabState"/>
</histogram_suffixes>

<histogram_suffixes name="DataUse.Bytes" separator=".">
  <suffix name="Delegate" label="As reported by the network delegate."/>
  <suffix name="OS"
      label="As reported by the operating system. Currently logged only on
             Android."/>
  <affected-histogram name="DataUse.BytesReceived"/>
  <affected-histogram name="DataUse.BytesSent"/>
</histogram_suffixes>

<histogram_suffixes name="DataUse.Dimensions" separator=".">
  <suffix name="Downstream.Background.Cellular"/>
  <suffix name="Downstream.Background.NotCellular"/>
  <suffix name="Downstream.Foreground.Cellular"/>
  <suffix name="Downstream.Foreground.NotCellular"/>
  <suffix name="Downstream.Unknown.Cellular"/>
  <suffix name="Downstream.Unknown.NotCellular"/>
  <suffix name="Upstream.Background.Cellular"/>
  <suffix name="Upstream.Background.NotCellular"/>
  <suffix name="Upstream.Foreground.Cellular"/>
  <suffix name="Upstream.Foreground.NotCellular"/>
  <suffix name="Upstream.Unknown.Cellular"/>
  <suffix name="Upstream.Unknown.NotCellular"/>
  <affected-histogram name="DataUse.TrafficSize.System"/>
  <affected-histogram name="DataUse.TrafficSize.User"/>
</histogram_suffixes>

<histogram_suffixes name="DataUse.Dimensions.AllServices" separator=".">
  <obsolete>
    Replaced by version without network-type breakdown in June, 2018.
  </obsolete>
  <suffix name="Downstream.Background.Cellular">
    <obsolete>
      Replaced by KB version in October, 2017.
    </obsolete>
  </suffix>
  <suffix name="Downstream.Background.CellularKB"/>
  <suffix name="Downstream.Background.NotCellular">
    <obsolete>
      Replaced by KB version in October, 2017.
    </obsolete>
  </suffix>
  <suffix name="Downstream.Background.NotCellularKB"/>
  <suffix name="Downstream.Foreground.Cellular">
    <obsolete>
      Replaced by KB version in October, 2017.
    </obsolete>
  </suffix>
  <suffix name="Downstream.Foreground.CellularKB"/>
  <suffix name="Downstream.Foreground.NotCellular">
    <obsolete>
      Replaced by KB version in October, 2017.
    </obsolete>
  </suffix>
  <suffix name="Downstream.Foreground.NotCellularKB"/>
  <suffix name="Downstream.Unknown.Cellular">
    <obsolete>
      Replaced by KB version in October, 2017.
    </obsolete>
  </suffix>
  <suffix name="Downstream.Unknown.CellularKB"/>
  <suffix name="Downstream.Unknown.NotCellular">
    <obsolete>
      Replaced by KB version in October, 2017.
    </obsolete>
  </suffix>
  <suffix name="Downstream.Unknown.NotCellularKB"/>
  <suffix name="Upstream.Background.Cellular">
    <obsolete>
      Replaced by KB version in October, 2017.
    </obsolete>
  </suffix>
  <suffix name="Upstream.Background.CellularKB"/>
  <suffix name="Upstream.Background.NotCellular">
    <obsolete>
      Replaced by KB version in October, 2017.
    </obsolete>
  </suffix>
  <suffix name="Upstream.Background.NotCellularKB"/>
  <suffix name="Upstream.Foreground.Cellular">
    <obsolete>
      Replaced by KB version in October, 2017.
    </obsolete>
  </suffix>
  <suffix name="Upstream.Foreground.CellularKB"/>
  <suffix name="Upstream.Foreground.NotCellular">
    <obsolete>
      Replaced by KB version in October, 2017.
    </obsolete>
  </suffix>
  <suffix name="Upstream.Foreground.NotCellularKB"/>
  <suffix name="Upstream.Unknown.Cellular">
    <obsolete>
      Replaced by KB version in October, 2017.
    </obsolete>
  </suffix>
  <suffix name="Upstream.Unknown.CellularKB"/>
  <suffix name="Upstream.Unknown.NotCellular">
    <obsolete>
      Replaced by KB version in October, 2017.
    </obsolete>
  </suffix>
  <suffix name="Upstream.Unknown.NotCellularKB"/>
  <affected-histogram name="DataUse.MessageSize.AllServices"/>
</histogram_suffixes>

<histogram_suffixes name="DataUse.Dimensions.AllServicesKB" separator=".">
  <suffix name="Downstream.Background"/>
  <suffix name="Downstream.Foreground"/>
  <suffix name="Upstream.Background"/>
  <suffix name="Upstream.Foreground"/>
  <affected-histogram name="DataReductionProxy.LastWeekAggregateKB.Services"/>
  <affected-histogram name="DataReductionProxy.ThisWeekAggregateKB.Services"/>
  <affected-histogram name="DataUse.AllServicesKB"/>
</histogram_suffixes>

<histogram_suffixes name="DataUse.Service.Types" separator=".">
  <obsolete>
    Deprecated Oct 2018
  </obsolete>
  <suffix name="Autofill"/>
  <suffix name="DomainReliability"/>
  <suffix name="GAIA"/>
  <suffix name="GCMDriver"/>
  <suffix name="GoogleURLTracker"/>
  <suffix name="ImageFetcherUntagged"/>
  <suffix name="Invalidation"/>
  <suffix name="LargeIconService"/>
  <suffix name="MachineIntelligence"/>
  <suffix name="NotTagged"/>
  <suffix name="NTPSnippets">
    <obsolete>
      Deprecated March 2017
    </obsolete>
  </suffix>
  <suffix name="NTPSnippetsSuggestions"/>
  <suffix name="NTPSnippetsThumbnails"/>
  <suffix name="Omnibox"/>
  <suffix name="Policy"/>
  <suffix name="ProfileDownloader"/>
  <suffix name="Rappor"/>
  <suffix name="SafeBrowsing"/>
  <suffix name="SpellChecker"/>
  <suffix name="Suggestions"/>
  <suffix name="Sync"/>
  <suffix name="Translate"/>
  <suffix name="UMA"/>
  <suffix name="UpdateClient"/>
  <suffix name="Variations"/>
  <suffix name="WebResourceService"/>
  <affected-histogram name="DataUse.MessageSize"/>
</histogram_suffixes>

<histogram_suffixes name="DataUse.TrafficSource" separator=".">
  <suffix name="System"/>
  <suffix name="User"/>
  <affected-histogram name="DataUse.BackgroundToDataRecievedPerByte"/>
  <affected-histogram name="DataUse.BackgroundToFirstDownstream"/>
</histogram_suffixes>

<histogram_suffixes name="DefaultAppsExperiment" separator="_">
  <suffix name="NoDefaultApps" label="User's without default apps installed"/>
  <suffix name="WithDefaultApps" label="User's with default apps installed"/>
  <affected-histogram name="Extensions.AppTabLaunchType"/>
  <affected-histogram name="Extensions.ExtensionInstalled"/>
  <affected-histogram name="Extensions.ExtensionUninstalled"/>
  <affected-histogram name="NewTabPage.DefaultPageType"/>
  <affected-histogram name="NewTabPage.SelectedPageType"/>
  <affected-histogram name="NtpHandler.AttachShownPageType"/>
  <affected-histogram name="NtpHandler.SelectedShownPageType"/>
  <affected-histogram name="Profile.AppCount"/>
</histogram_suffixes>

<histogram_suffixes name="DefaultPinnedApps" separator="_">
  <obsolete>
    Deprecated as of 12/2013. Default pinned apps trial is finished.
  </obsolete>
  <suffix name="Alternate"/>
  <suffix name="Control"/>
  <suffix name="Existing"/>
  <affected-histogram name="Cros.ClickOnShelf"/>
</histogram_suffixes>

<histogram_suffixes name="DeprecatedPrerenderSource" separator="_"
    ordering="prefix">
  <obsolete>
    Deprecated August 2016
  </obsolete>
  <suffix name="" label="All prerenders."/>
  <suffix name="exp1" label="Likelihood threshold experiment 1.">
    <obsolete>
      Deprecated April 2015
    </obsolete>
  </suffix>
  <suffix name="exp2" label="Likelihood threshold experiment 2.">
    <obsolete>
      Deprecated April 2015
    </obsolete>
  </suffix>
  <suffix name="exp3" label="Likelihood threshold experiment 3.">
    <obsolete>
      Deprecated April 2015
    </obsolete>
  </suffix>
  <suffix name="exp4" label="Likelihood threshold experiment 4.">
    <obsolete>
      Deprecated April 2015
    </obsolete>
  </suffix>
  <suffix name="exp5" label="Likelihood threshold experiment 5.">
    <obsolete>
      Deprecated April 2015
    </obsolete>
  </suffix>
  <suffix name="exp6" label="Likelihood threshold experiment 6.">
    <obsolete>
      Deprecated April 2015
    </obsolete>
  </suffix>
  <suffix name="exp7" label="Likelihood threshold experiment 7.">
    <obsolete>
      Deprecated April 2015
    </obsolete>
  </suffix>
  <suffix name="exp8" label="Likelihood threshold experiment 8.">
    <obsolete>
      Deprecated April 2015
    </obsolete>
  </suffix>
  <suffix name="exp9" label="Likelihood threshold experiment 9.">
    <obsolete>
      Deprecated April 2015
    </obsolete>
  </suffix>
  <suffix name="externalrequest" label="Externally triggered prerender."/>
  <suffix name="externalrequestforced"
      label="Forced prerender regardless of network."/>
  <suffix name="gws" label="GWS triggered prerender."/>
  <suffix name="Instant" label="Instant search prerender.">
    <obsolete>
      Deprecated October 2017
    </obsolete>
  </suffix>
  <suffix name="localpredictor" label="Local predictor triggered prerender.">
    <obsolete>
      Deprecated April 2015
    </obsolete>
  </suffix>
  <suffix name="offline"
      label="Prerender triggered for saving a page for offline use.">
    <obsolete>
      Deprecated October 2017
    </obsolete>
  </suffix>
  <suffix name="omnibox" label="Triggered from the omnibox."/>
  <suffix name="wash" label="Multiple sources could have triggered.">
    <obsolete>
      Deprecated April 2017
    </obsolete>
  </suffix>
  <suffix name="web" label="Link triggered prerender."/>
  <suffix name="webcross"
      label="Link triggered prerender, rel=prerender, cross domain."/>
  <suffix name="webnext" label="Link triggered prerender, rel=next."/>
  <suffix name="websame"
      label="Link triggered prerender, rel=prerender, same domain."/>
  <affected-histogram name="Prerender.FinalStatus_Prerender5minTTL"/>
  <affected-histogram name="Prerender.FinalStatus_PrerenderControl"/>
  <affected-histogram name="Prerender.FinalStatus_PrerenderEnabled"/>
  <affected-histogram name="Prerender.FinalStatus_PrerenderMatchComplete"/>
  <affected-histogram name="Prerender.FinalStatus_PrerenderMulti"/>
  <affected-histogram name="Prerender.FinalStatus_PrerenderNoUse"/>
  <affected-histogram name="Prerender.FinalStatusMatchComplete"/>
  <affected-histogram
      name="Prerender.FinalStatusMatchComplete_Prerender5minTTL"/>
  <affected-histogram
      name="Prerender.FinalStatusMatchComplete_PrerenderControl"/>
  <affected-histogram
      name="Prerender.FinalStatusMatchComplete_PrerenderEnabled"/>
  <affected-histogram
      name="Prerender.FinalStatusMatchComplete_PrerenderMatchComplete"/>
  <affected-histogram name="Prerender.FinalStatusMatchComplete_PrerenderMulti"/>
  <affected-histogram name="Prerender.FinalStatusMatchComplete_PrerenderNoUse"/>
  <affected-histogram name="Prerender.FractionPixelsFinalAtSwapin"/>
  <affected-histogram
      name="Prerender.FractionPixelsFinalAtSwapin_Prerender5minTTL"/>
  <affected-histogram
      name="Prerender.FractionPixelsFinalAtSwapin_PrerenderControl"/>
  <affected-histogram
      name="Prerender.FractionPixelsFinalAtSwapin_PrerenderEnabled"/>
  <affected-histogram
      name="Prerender.FractionPixelsFinalAtSwapin_PrerenderMatchComplete"/>
  <affected-histogram
      name="Prerender.FractionPixelsFinalAtSwapin_PrerenderMulti"/>
  <affected-histogram
      name="Prerender.FractionPixelsFinalAtSwapin_PrerenderNoUse"/>
  <affected-histogram name="Prerender.LocalPredictorEvent"/>
  <affected-histogram name="Prerender.LocalPredictorEvent_Prerender5minTTL"/>
  <affected-histogram name="Prerender.LocalPredictorEvent_PrerenderControl"/>
  <affected-histogram name="Prerender.LocalPredictorEvent_PrerenderEnabled"/>
  <affected-histogram
      name="Prerender.LocalPredictorEvent_PrerenderMatchComplete"/>
  <affected-histogram name="Prerender.LocalPredictorEvent_PrerenderMulti"/>
  <affected-histogram name="Prerender.LocalPredictorEvent_PrerenderNoUse"/>
  <affected-histogram name="Prerender.PerceivedPLT_Prerender5minTTL"/>
  <affected-histogram name="Prerender.PerceivedPLT_PrerenderControl"/>
  <affected-histogram name="Prerender.PerceivedPLT_PrerenderEnabled"/>
  <affected-histogram name="Prerender.PerceivedPLT_PrerenderMatchComplete"/>
  <affected-histogram name="Prerender.PerceivedPLT_PrerenderMulti"/>
  <affected-histogram name="Prerender.PerceivedPLT_PrerenderNoUse"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMiss_Prerender5minTTL"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMiss_PrerenderControl"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMiss_PrerenderEnabled"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMiss_PrerenderMatchComplete"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMiss_PrerenderMulti"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMiss_PrerenderNoUse"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissAnyOnly_Prerender5minTTL"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissAnyOnly_PrerenderControl"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissAnyOnly_PrerenderEnabled"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissAnyOnly_PrerenderMatchComplete"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissAnyOnly_PrerenderMulti"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissAnyOnly_PrerenderNoUse"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissBoth_Prerender5minTTL"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissBoth_PrerenderControl"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissBoth_PrerenderEnabled"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissBoth_PrerenderMatchComplete"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissBoth_PrerenderMulti"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissBoth_PrerenderNoUse"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissNonOverlapping_Prerender5minTTL"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissNonOverlapping_PrerenderControl"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissNonOverlapping_PrerenderEnabled"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissNonOverlapping_PrerenderMatchComplete"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissNonOverlapping_PrerenderMulti"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissNonOverlapping_PrerenderNoUse"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissNonOverlappingOnly_Prerender5minTTL"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissNonOverlappingOnly_PrerenderControl"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissNonOverlappingOnly_PrerenderEnabled"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissNonOverlappingOnly_PrerenderMatchComplete"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissNonOverlappingOnly_PrerenderMulti"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissNonOverlappingOnly_PrerenderNoUse"/>
  <affected-histogram name="Prerender.PerceivedPLTMatched_Prerender5minTTL"/>
  <affected-histogram name="Prerender.PerceivedPLTMatched_PrerenderControl"/>
  <affected-histogram name="Prerender.PerceivedPLTMatched_PrerenderEnabled"/>
  <affected-histogram
      name="Prerender.PerceivedPLTMatched_PrerenderMatchComplete"/>
  <affected-histogram name="Prerender.PerceivedPLTMatched_PrerenderMulti"/>
  <affected-histogram name="Prerender.PerceivedPLTMatched_PrerenderNoUse"/>
  <affected-histogram name="Prerender.PerceivedPLTMatchedComplete"/>
  <affected-histogram
      name="Prerender.PerceivedPLTMatchedComplete_Prerender5minTTL"/>
  <affected-histogram
      name="Prerender.PerceivedPLTMatchedComplete_PrerenderControl"/>
  <affected-histogram
      name="Prerender.PerceivedPLTMatchedComplete_PrerenderEnabled"/>
  <affected-histogram
      name="Prerender.PerceivedPLTMatchedComplete_PrerenderMatchComplete"/>
  <affected-histogram
      name="Prerender.PerceivedPLTMatchedComplete_PrerenderMulti"/>
  <affected-histogram
      name="Prerender.PerceivedPLTMatchedComplete_PrerenderNoUse"/>
  <affected-histogram name="Prerender.PerceivedPLTWindowed_PrerenderEnabled"/>
  <affected-histogram
      name="Prerender.PerceivedPLTWindowNotMatched_Prerender5minTTL"/>
  <affected-histogram
      name="Prerender.PerceivedPLTWindowNotMatched_PrerenderControl"/>
  <affected-histogram
      name="Prerender.PerceivedPLTWindowNotMatched_PrerenderEnabled"/>
  <affected-histogram
      name="Prerender.PerceivedPLTWindowNotMatched_PrerenderMatchComplete"/>
  <affected-histogram
      name="Prerender.PerceivedPLTWindowNotMatched_PrerenderMulti"/>
  <affected-histogram
      name="Prerender.PerceivedPLTWindowNotMatched_PrerenderNoUse"/>
  <affected-histogram name="Prerender.PercentLoadDoneAtSwapin"/>
  <affected-histogram
      name="Prerender.PercentLoadDoneAtSwapin_Prerender5minTTL"/>
  <affected-histogram
      name="Prerender.PercentLoadDoneAtSwapin_PrerenderControl"/>
  <affected-histogram
      name="Prerender.PercentLoadDoneAtSwapin_PrerenderEnabled"/>
  <affected-histogram
      name="Prerender.PercentLoadDoneAtSwapin_PrerenderMatchComplete"/>
  <affected-histogram name="Prerender.PercentLoadDoneAtSwapin_PrerenderMulti"/>
  <affected-histogram name="Prerender.PercentLoadDoneAtSwapin_PrerenderNoUse"/>
  <affected-histogram
      name="Prerender.PrerenderNotSwappedInPLT_Prerender5minTTL"/>
  <affected-histogram
      name="Prerender.PrerenderNotSwappedInPLT_PrerenderControl"/>
  <affected-histogram
      name="Prerender.PrerenderNotSwappedInPLT_PrerenderEnabled"/>
  <affected-histogram
      name="Prerender.PrerenderNotSwappedInPLT_PrerenderMatchComplete"/>
  <affected-histogram name="Prerender.PrerenderNotSwappedInPLT_PrerenderMulti"/>
  <affected-histogram name="Prerender.PrerenderNotSwappedInPLT_PrerenderNoUse"/>
  <affected-histogram
      name="Prerender.SimulatedLocalBrowsingBaselinePLT_Prerender5minTTL"/>
  <affected-histogram
      name="Prerender.SimulatedLocalBrowsingBaselinePLT_PrerenderControl"/>
  <affected-histogram
      name="Prerender.SimulatedLocalBrowsingBaselinePLT_PrerenderEnabled"/>
  <affected-histogram
      name="Prerender.SimulatedLocalBrowsingBaselinePLT_PrerenderMatchComplete"/>
  <affected-histogram
      name="Prerender.SimulatedLocalBrowsingBaselinePLT_PrerenderMulti"/>
  <affected-histogram
      name="Prerender.SimulatedLocalBrowsingBaselinePLT_PrerenderNoUse"/>
  <affected-histogram
      name="Prerender.SimulatedLocalBrowsingPLT_Prerender5minTTL"/>
  <affected-histogram
      name="Prerender.SimulatedLocalBrowsingPLT_PrerenderControl"/>
  <affected-histogram
      name="Prerender.SimulatedLocalBrowsingPLT_PrerenderEnabled"/>
  <affected-histogram
      name="Prerender.SimulatedLocalBrowsingPLT_PrerenderMatchComplete"/>
  <affected-histogram
      name="Prerender.SimulatedLocalBrowsingPLT_PrerenderMulti"/>
  <affected-histogram
      name="Prerender.SimulatedLocalBrowsingPLT_PrerenderNoUse"/>
</histogram_suffixes>

<histogram_suffixes name="DesktopIOSEntryPoints" separator="."
    ordering="prefix">
  <obsolete>
    Deprecated 11/2018 in issue 894963.
  </obsolete>
  <suffix name="BookmarksFootNote"/>
  <suffix name="BookmarksNewBubble"/>
  <suffix name="HistoryPage"/>
  <suffix name="SavePasswordsNewBubble"/>
  <affected-histogram name="DesktopIOSPromotion.DismissalReason"/>
  <affected-histogram name="DesktopIOSPromotion.SMSToSigninTime"/>
</histogram_suffixes>

<histogram_suffixes name="DesktopIOSPromotionSMSSent" separator="."
    ordering="prefix">
  <obsolete>
    Deprecated 11/2018 in issue 894963.
  </obsolete>
  <suffix name="NoSMS" label="No SMS was sent from the promotion."/>
  <suffix name="SMSSent" label="SMS sent from the promotion."/>
  <affected-histogram name="DesktopIOSPromotion.IOSSigninReason"/>
  <affected-histogram name="DesktopIOSPromotion.VariationSigninReason"/>
</histogram_suffixes>

<histogram_suffixes name="DialogTypes" separator="." ordering="prefix">
  <suffix name="BubbleDialogDelegateView"
      label="Counts dialog boxes created using BubbleDialogDelegateView.
             These are a subset of those created with DialogDelegateView
             (which, in turn, are a subset of those created with
             DialogDelegate)."/>
  <suffix name="DialogDelegate"
      label="Counts dialog boxes created using DialogDelegate."/>
  <suffix name="DialogDelegateView"
      label="Counts dialog boxes created using DialogDelegateView. These are
             a subset of those created with DialogDelegate."/>
  <affected-histogram name="Dialog.Create"/>
</histogram_suffixes>

<histogram_suffixes name="DiscardReason" separator=".">
  <suffix name="Extension" label="An extension discarded a tab."/>
  <suffix name="Proactive"
      label="The browser proactively discarded a tab to avoid entering a
             memory pressure state."/>
  <suffix name="Urgent"
      label="The browser urgently discarded a tab because there was memory
             pressure."/>
  <affected-histogram name="Discarding.DiscardsPer10Minutes"/>
  <affected-histogram name="Discarding.OnlineOnReload"/>
  <affected-histogram name="Discarding.ReloadsPer10Minutes"/>
</histogram_suffixes>

<histogram_suffixes name="DiskUsagePerUserCount" separator=".">
  <suffix name="1User" label="Only 1 user exists on device."/>
  <suffix name="2Users" label="2 users exist on device."/>
  <suffix name="3Users" label="3 users exist on device."/>
  <suffix name="4Users" label="4 users exist on device."/>
  <suffix name="5Users" label="5 users exist on device."/>
  <suffix name="6Users" label="6 users exist on device."/>
  <suffix name="7OrMoreUsers" label="7 or more users exist on device."/>
  <affected-histogram name="Platform.DiskUsage.Cache_Avg"/>
  <affected-histogram name="Platform.DiskUsage.Cache_Max"/>
  <affected-histogram name="Platform.DiskUsage.Downloads_Avg"/>
  <affected-histogram name="Platform.DiskUsage.Downloads_Max"/>
  <affected-histogram name="Platform.DiskUsage.GCache_Avg"/>
  <affected-histogram name="Platform.DiskUsage.GCache_Max"/>
  <affected-histogram name="Platform.DiskUsage.LeastUsedAccountDays"/>
</histogram_suffixes>

<histogram_suffixes name="DisplaySchedulerNotDrawReason" separator=".">
  <obsolete>
    Deprecated after M72 since no longer needed.
  </obsolete>
  <suffix name="DrawNotNeeded" label="DrawNotNeeded"/>
  <suffix name="NotVisible" label="NotVisible"/>
  <suffix name="OutputSurfaceLost" label="OutputSurfaceLost"/>
  <suffix name="RootFrameMissing" label="RootFrameMissing"/>
  <affected-histogram name="DisplayScheduler.ShouldNotDraw"/>
</histogram_suffixes>

<histogram_suffixes name="DNS.HostCache.UpdateStale.AddressListDeltaType"
    separator="_">
  <suffix name="Disjoint" label="All different addresses."/>
  <suffix name="Identical" label="Same addresses, in the same order."/>
  <suffix name="Overlap" label="Some same addreses, some different."/>
  <suffix name="Reordered" label="Same addresses, in a different order."/>
  <affected-histogram name="DNS.HostCache.UpdateStale.ExpiredBy"/>
  <affected-histogram name="DNS.HostCache.UpdateStale.NetworkChanges"/>
</histogram_suffixes>

<histogram_suffixes name="DnsImpact2" separator="_">
  <suffix name="disabled_prefetch"
      label="DNS pre-resolving is disabled in these clients"/>
  <suffix name="disabled_prefetch_4_connections"
      label="DNS pre-resolving is disabled in these clients, and a maximum of
             4 connections per host was allowed"/>
  <suffix name="enabled_prefetch_4_connections"
      label="a maximum of 4 connections per host was allowed in these clients"/>
  <suffix name="parallel_4_prefetch"
      label="DNS pre-resolving was only doing 4 concurrent speculative
             resolutions in this test"/>
  <affected-histogram name="Net.Dns_Resolution_And_TCP_Connection_Latency"/>
  <affected-histogram name="Net.TCP_Connection_Idle_Sockets">
    <with-suffix name="disabled_prefetch"/>
    <with-suffix name="disabled_prefetch_4_connections"/>
    <with-suffix name="enabled_prefetch_4_connections"/>
  </affected-histogram>
  <affected-histogram name="Net.TCP_Connection_Latency"/>
  <affected-histogram name="Net.Transaction_Connected"/>
  <affected-histogram name="Net.Transaction_Connected_New"/>
  <affected-histogram name="Net.Transaction_Connected_New_b"/>
  <affected-histogram name="Net.Transaction_Connected_Under_10"/>
  <affected-histogram name="Net.Transaction_Latency"/>
  <affected-histogram name="Net.Transaction_Latency_b"/>
  <affected-histogram name="Net.Transaction_Latency_Total"/>
  <affected-histogram name="Net.Transaction_Latency_Total_New_Connection"/>
  <affected-histogram
      name="Net.Transaction_Latency_Total_New_Connection_Under_10"/>
  <affected-histogram name="Net.Transaction_Latency_Total_Under_10"/>
  <affected-histogram name="Net.Transaction_Latency_Under_10"/>
  <affected-histogram name="PLT.RequestToFinish">
    <with-suffix name="parallel_4_prefetch"/>
  </affected-histogram>
</histogram_suffixes>

<histogram_suffixes name="DnsImpact3" separator="_">
  <suffix name="disabled_prefetch" label="with DNS pre-resolving disabled"/>
  <suffix name="parallel_4_prefetch"
      label="with only 4 concurrent speculative resolutions done in parallel"/>
  <affected-histogram name="Net.Transaction_Connected_New">
    <with-suffix name="disabled_prefetch"/>
  </affected-histogram>
  <affected-histogram name="Renderer2.FinishDocToFinish"/>
  <affected-histogram name="Renderer2.RequestToFinish"/>
  <affected-histogram name="Renderer2.RequestToFinish_L">
    <with-suffix name="disabled_prefetch"/>
  </affected-histogram>
  <affected-histogram name="Renderer2.RequestToFirstLayout"/>
  <affected-histogram name="Renderer2.RequestToStart"/>
  <affected-histogram name="Renderer2.StartToFinish"/>
  <affected-histogram name="Renderer2.StartToFinishDoc"/>
  <affected-histogram name="Renderer2.StartToFirstLayout"/>
  <affected-histogram name="Renderer4.RequestToFinish">
    <with-suffix name="parallel_4_prefetch"/>
  </affected-histogram>
  <affected-histogram name="Renderer4.StartToFinish">
    <with-suffix name="parallel_4_prefetch"/>
  </affected-histogram>
</histogram_suffixes>

<histogram_suffixes name="DnsParallelism" separator="_">
  <suffix name="parallel_6"
      label="with only 6 concurrent resolutions done in parallel"/>
  <suffix name="parallel_7"
      label="with only 7 concurrent resolutions done in parallel"/>
  <suffix name="parallel_8"
      label="with only 8 concurrent resolutions done in parallel"/>
  <suffix name="parallel_9"
      label="with only 9 concurrent resolutions done in parallel"/>
  <suffix name="parallel_10"
      label="with only 10 concurrent resolutions done in parallel"/>
  <suffix name="parallel_14"
      label="with only 14 concurrent resolutions done in parallel"/>
  <suffix name="parallel_20"
      label="with only 20 concurrent resolutions done in parallel"/>
  <suffix name="parallel_default"
      label="with the default number of concurrent resolutions done in
             parallel"/>
  <affected-histogram name="DNS.ResolveCategory"/>
  <affected-histogram name="DNS.ResolveSuccess"/>
</histogram_suffixes>

<histogram_suffixes name="DnsTotalTimeType" separator=".">
  <suffix name="Async" label="using Chromium's resolver"/>
  <suffix name="AsyncPrivateSupportsDoh"
      label="using Chromium's resolver, with a DNS server that supports
             DNS-over-HTTPS"/>
  <suffix name="System" label="using the system resolver"/>
  <suffix name="SystemPrivate"
      label="using the system resolver using private DNS"/>
  <suffix name="SystemSupportsDoh"
      label="using the system resolver, with a DNS server that supports
             DNS-over-HTTPS. Note that on Android the DNS servers are not
             passed to native code when private DNS is used so we cannot
             detect when private DNS is used with servers that support
             DNS-over-HTTPS, so this bucket will fall into the SystemPrivate
             bucket."/>
  <affected-histogram name="Net.DNS.TotalTimeTyped"/>
</histogram_suffixes>

<histogram_suffixes name="DocsSpecific" separator=".">
  <suffix name="Docs" label="Only for docs.google.com"/>
  <affected-histogram name="appcache.MainResourceResponseRetrieval"/>
  <affected-histogram name="appcache.SubResourceResponseRetrieval"/>
  <affected-histogram name="appcache.UpdateJobResult"/>
  <affected-histogram name="appcache.UpdateProgressAtPointOfFaliure"/>
  <affected-histogram name="appcache.UpdateWasOffOriginAtPointOfFailure"/>
  <affected-histogram name="appcache.UpdateWasStalledAtPointOfFailure"/>
</histogram_suffixes>

<histogram_suffixes name="DomainGoogle" separator="">
  <suffix name="Google" label="only Google cookies are recorded."/>
  <suffix name="Other" label="only NON-Google cookies are recorded."/>
  <affected-histogram name="Cookie.ReinstatedCookies"/>
</histogram_suffixes>

<histogram_suffixes name="DOMStorageCachePurgeReason" separator=".">
  <suffix name="AggressivePurgeTriggered"
      label="Aggressive purge was triggered on memory pressure."/>
  <suffix name="AreaCountLimitExceeded"
      label="Storage areas count exceeded limit."/>
  <suffix name="InactiveOnLowEndDevice"
      label="Inactive areas found in low end device."/>
  <suffix name="ModeratePurgeTriggered"
      label="Moderate purge was triggered on memory pressure."/>
  <suffix name="SizeLimitExceeded" label="Cache size exceeded limit."/>
  <affected-histogram name="LocalStorage.BrowserLocalStorageCachePurgedInKB"/>
  <affected-histogram name="LocalStorageContext.CachePurgedInKB"/>
  <affected-histogram name="SessionStorageContext.CachePurgedInKB"/>
</histogram_suffixes>

<histogram_suffixes name="Download.Parallelizable" separator=".">
  <suffix name="Parallelizable" label="Parallelizable download."/>
  <affected-histogram name="Download.DownloadSize"/>
</histogram_suffixes>

<histogram_suffixes name="Download.Service.CleanUpReason" separator=".">
  <suffix name="HardRecovery" label="File is deleted in hard recovery."/>
  <suffix name="Orphaned" label="No client associated with the file."/>
  <suffix name="Timeout" label="File is deleted after timeout."/>
  <suffix name="Unknown" label="No database entry associated with the file."/>
  <affected-histogram name="Download.Service.Files.CleanUp.External"/>
  <affected-histogram name="Download.Service.Files.CleanUp.Failure"/>
  <affected-histogram name="Download.Service.Files.CleanUp.Success"/>
</histogram_suffixes>

<histogram_suffixes name="Download.Service.Client" separator=".">
  <suffix name="BackgroundFetch" label="Background fetch."/>
  <suffix name="Debugging" label="Debugging client."/>
  <suffix name="MountainInternal" label="Mountain internal client."/>
  <suffix name="OfflinePage" label="Offline page prefetch."/>
  <suffix name="PluginVmImage" label="PluginVm image."/>
  <affected-histogram name="Download.Service.Request.ClientAction"/>
  <affected-histogram name="Download.Service.Request.StartResponse"/>
  <affected-histogram name="Download.Service.Request.StartResult"/>
  <affected-histogram name="Download.Service.Upload.HasUploadData"/>
</histogram_suffixes>

<histogram_suffixes name="Download.Service.CompletionType" separator=".">
  <suffix name="Abort" label="Abort."/>
  <suffix name="Cancel" label="Cancel."/>
  <suffix name="Fail" label="Fail."/>
  <suffix name="Succeed" label="Succeed."/>
  <suffix name="Timeout" label="Timeout."/>
  <suffix name="Unknown" label="Unknown."/>
  <affected-histogram name="Download.Service.Finish.FileSize"/>
</histogram_suffixes>

<histogram_suffixes name="Download.Service.EntryState" separator=".">
  <suffix name="Active" label="The active state."/>
  <suffix name="Available" label="The available state."/>
  <suffix name="Complete" label="The complte state."/>
  <suffix name="New" label="The initial state."/>
  <suffix name="Paused" label="The paused state."/>
  <affected-histogram name="Download.Service.Db.Records"/>
</histogram_suffixes>

<histogram_suffixes name="Download.Service.StartUpStep" separator=".">
  <suffix name="Initialization" label="The initialization start up step."/>
  <suffix name="Recovery" label="The recovery start up step."/>
  <affected-histogram name="Download.Service.StartUpStatus"/>
</histogram_suffixes>

<histogram_suffixes name="Download.Service.TaskType" separator=".">
  <suffix name="CleanUpTask" label="Clean up task."/>
  <suffix name="DownloadTask" label="Download task."/>
  <affected-histogram name="Download.Service.TaskScheduler.Status"/>
</histogram_suffixes>

<histogram_suffixes name="DownloadableStringsTimeouts" separator=".">
  <suffix name="RetryLater" label="Failed with RETRY_LATER error."/>
  <suffix name="ServiceError" label="Failed with SERVICE_ERROR error."/>
  <suffix name="UpdateCheckError"
      label="Failed with UPDATE_CHECK_ERROR error."/>
  <affected-histogram name="DownloadableStrings.Timeout"/>
</histogram_suffixes>

<histogram_suffixes name="DownloadDangerPromptResponse" separator=".">
  <suffix name="Proceed"
      label="The user clicked through and recovered the download."/>
  <suffix name="Shown" label="The user was shown the prompt."/>
  <affected-histogram name="Download.DownloadDangerPrompt.DangerousContent"/>
  <affected-histogram name="Download.DownloadDangerPrompt.DangerousFile"/>
  <affected-histogram name="Download.DownloadDangerPrompt.DangerousHost"/>
  <affected-histogram name="Download.DownloadDangerPrompt.DangerousURL"/>
  <affected-histogram name="Download.DownloadDangerPrompt.PotentiallyUnwanted"/>
  <affected-histogram name="Download.DownloadDangerPrompt.UncommonContent"/>
</histogram_suffixes>

<histogram_suffixes name="DownloadDangerPromptType" separator=".">
  <suffix name="DangerousContent" label="File marked DANGEROUS_CONTENT"/>
  <suffix name="DangerousFile" label="File marked DANGEROUS_FILE"/>
  <suffix name="DangerousHost" label="File marked DANGEROUS_HOST"/>
  <suffix name="DangerousURL" label="File marked DANGEROUS_URL"/>
  <suffix name="PotentiallyUnwanted" label="File marked POTENTIALLY_UNWANTED"/>
  <suffix name="UncommonContent" label="File marked UNCOMMON_CONTENT"/>
  <affected-histogram name="Download.DownloadDangerPrompt"/>
</histogram_suffixes>

<histogram_suffixes name="DownloadSource" separator=".">
  <suffix name="ContextMenu" label="ContextMenu."/>
  <suffix name="DragAndDrop" label="DragAndDrop."/>
  <suffix name="ExtensionAPI" label="ExtensionAPI."/>
  <suffix name="ExtensionInstaller" label="ExtensionInstaller."/>
  <suffix name="FromRenderer" label="FromRenderer."/>
  <suffix name="InternalAPI" label="InternalAPI."/>
  <suffix name="Navigation" label="Navigation."/>
  <suffix name="OfflinePage" label="OfflinePage."/>
  <suffix name="Retry" label="Retry."/>
  <suffix name="UnknownSource" label="UnknownSource."/>
  <suffix name="WebContentsAPI" label="WebContentsAPI."/>
  <affected-histogram name="Download.Counts"/>
  <affected-histogram name="Download.InterruptedReason"/>
</histogram_suffixes>

<histogram_suffixes name="DownloadType" separator=".">
  <suffix name="Transient" label="Transient download."/>
  <suffix name="UserDownload" label="User download."/>
  <affected-histogram name="Download.PathGenerationEvent"/>
  <affected-histogram name="Download.PathValidationResult"/>
</histogram_suffixes>

<histogram_suffixes name="DownloadWithUnsupportedScheme" separator=".">
  <suffix name="ContentIdScheme" label="downloads with cid scheme"/>
  <suffix name="ContentScheme" label="downloads with content scheme"/>
  <suffix name="FileSystemScheme" label="downloads with filesystem scheme"/>
  <suffix name="FtpScheme" label="downloads with ftp scheme"/>
  <suffix name="GopherScheme" label="downloads with gopher scheme"/>
  <suffix name="JavaScriptScheme" label="downloads with javascript scheme"/>
  <suffix name="LocalFileScheme" label="downloads with file:/// scheme"/>
  <suffix name="OtherUnsupportedScheme" label="Other unsupported schemes"/>
  <suffix name="RemoteFileScheme" label="downloads with file:// scheme"/>
  <suffix name="WSOrWSSScheme" label="downloads with ws or wss scheme"/>
  <affected-histogram name="SBClientDownload.UnsupportedScheme"/>
</histogram_suffixes>

<histogram_suffixes name="DrawQuadsType" separator=".">
  <suffix name="" label=""/>
  <suffix name="Removed"
      label="Captures only draw quads that have removed by draw occlusion.">
    <obsolete>
      Deprecated as of 03/2018. We'd learned enough from this metric and it made
      no sense to keep it around.
    </obsolete>
  </suffix>
  <suffix name="Resized"
      label="Captures only draw quads that have changed size by draw
             occlusion.">
    <obsolete>
      Deprecated as of 03/2018. We'd learned enough from this metric and it made
      no sense to keep it around.
    </obsolete>
  </suffix>
  <suffix name="Skipped"
      label="Captures only draw quads that are too small to apply draw
             occlusion.">
    <obsolete>
      Deprecated as of 03/2018. We'd learned enough from this metric and it made
      no sense to keep it around.
    </obsolete>
  </suffix>
  <suffix name="Smaller"
      label="Captures only draw quads that are smaller than the layer
             occlusion minimum size (160x160).">
    <obsolete>
      Deprecated as of 03/2018. We'd learned enough from this metric and it made
      no sense to keep it around.
    </obsolete>
  </suffix>
  <suffix name="With.Complex.Transform"
      label="Captures only draw quads that need to go through no scale and no
             translation transforms.">
    <obsolete>
      Deprecated as of 03/2018. We'd learned enough from this metric and it made
      no sense to keep it around.
    </obsolete>
  </suffix>
  <affected-histogram name="Compositing.Display.Draw.Quads"/>
</histogram_suffixes>

<histogram_suffixes name="DriveCommonTimings" separator=".">
  <suffix name="FailTime"/>
  <suffix name="SuccessTime"/>
  <affected-histogram name="DriveCommon.Lifecycle.MountTime"/>
  <affected-histogram name="DriveCommon.LocalSearch.OfflineSearchTime"/>
  <affected-histogram name="DriveCommon.LocalSearch.SharedSearchTime"/>
  <affected-histogram name="DriveCommon.LocalSearch.TextSearchTime"/>
  <affected-histogram name="DriveCommon.RemoteSearch.SharedSearchTime"/>
  <affected-histogram name="DriveCommon.RemoteSearch.TextSearchTime"/>
</histogram_suffixes>

<histogram_suffixes name="DualCertVerifierTrial" separator="_">
  <suffix name="TrialPrimary"/>
  <suffix name="TrialSecondary"/>
  <affected-histogram name="Net.CertVerifier_First_Job_Latency"/>
  <affected-histogram name="Net.CertVerifier_Job_Latency"/>
</histogram_suffixes>

<histogram_suffixes name="EmePromise" separator=".">
  <suffix name="CloseSession" label="CloseSession promises only."/>
  <suffix name="CreateSession" label="CreateSession promises only.">
    <obsolete>
      Replaced by GenerateRequest.
    </obsolete>
  </suffix>
  <suffix name="GenerateRequest" label="GenerateRequest promises only."/>
  <suffix name="LoadSession" label="LoadSession promises only."/>
  <suffix name="RemoveSession" label="RemoveSession promises only."/>
  <suffix name="UpdateSession" label="UpdateSession promises only."/>
  <affected-histogram name="Media.EME.ClearKey"/>
  <affected-histogram name="Media.EME.Unknown"/>
  <affected-histogram name="Media.EME.Widevine"/>
</histogram_suffixes>

<histogram_suffixes name="EmeTimeToResolvePromise" separator=".">
  <suffix name="GenerateRequest" label="GenerateRequest promises only."/>
  <suffix name="LoadSession" label="LoadSession promises only."/>
  <affected-histogram name="Media.EME.ClearKey.TimeTo"/>
  <affected-histogram name="Media.EME.Unknown.TimeTo"/>
  <affected-histogram name="Media.EME.Widevine.TimeTo"/>
</histogram_suffixes>

<histogram_suffixes name="EngagementScoreBuckets" separator="_">
  <owner>calamity@chromium.org</owner>
  <suffix name="0"/>
  <suffix name="10"/>
  <suffix name="20"/>
  <suffix name="30"/>
  <suffix name="40"/>
  <suffix name="50"/>
  <suffix name="60"/>
  <suffix name="70"/>
  <suffix name="80"/>
  <suffix name="90"/>
  <suffix name="100"/>
  <affected-histogram name="SiteEngagementService.EngagementScoreBucket"/>
</histogram_suffixes>

<histogram_suffixes name="Enterprise.ResourceCacheTiming" separator=".">
  <suffix name="Clear"
      label="The time to perform the 'clear' operation on a ResourceCache,
             which deletes all subkeys of given key."/>
  <suffix name="Delete"
      label="The time to perform the 'delete' operation on a ResourceCache,
             which deletes given subkey."/>
  <suffix name="FilterSubkeys"
      label="The time to perform the 'filterSubkeys' operation on a
             ResourceCache, which deletes filtered subkeys of given key."/>
  <suffix name="Init"
      label="The time to perform the initialization of a ResourceCache."/>
  <suffix name="Load"
      label="The time to perform the 'load' operation on a ResourceCache,
             which loads the content of given key."/>
  <suffix name="LoadAllSubkeys"
      label="The time to perform the 'loadAllSubkeys' operation on a
             ResourceCache, which loads the content of all subkeys of given
             key."/>
  <suffix name="PurgeOtherKeys"
      label="The time to perform the 'purgeOtherKeys' operation on a
             ResourceCache, which deletes all keys except given."/>
  <suffix name="PurgeOtherSubkeys"
      label="The time to perform the 'purgeOtherSubkeys' operation on a
             ResourceCache, which deletes all subkeys except given."/>
  <suffix name="Store"
      label="The time to perform the 'store' operation on a ResourceCache,
             which stores data under given key."/>
  <affected-histogram name="Enterprise.ResourceCacheTiming"/>
</histogram_suffixes>

<histogram_suffixes name="EnterpriseAutoEnrollmentType" separator=".">
  <suffix name="ForcedReenrollment" label="Forced Re-Enrollment"/>
  <suffix name="InitialEnrollment" label="Initial Enrollment Exchange"/>
  <affected-histogram name="Enterprise.AutoEnrollmentBucketDownloadTime"/>
  <affected-histogram name="Enterprise.AutoEnrollmentExtraTime"/>
  <affected-histogram name="Enterprise.AutoEnrollmentProtocolTime"/>
  <affected-histogram name="Enterprise.AutoEnrollmentRequestNetworkErrorCode"/>
  <affected-histogram name="Enterprise.AutoEnrollmentRequestStatus"/>
</histogram_suffixes>

<histogram_suffixes name="EnterpriseRetrievePolicyResponse" separator=".">
  <owner>emaxx@chromium.org</owner>
  <owner>igorcov@chromium.org</owner>
  <suffix name="Device" label="Device policy fetch response."/>
  <suffix name="DeviceLocalAccount"
      label="DeviceLocalAccount policy fetch response."/>
  <suffix name="User" label="User policy fetch response."/>
  <suffix name="UserDuringLogin"
      label="User policy fetch response during login."/>
  <affected-histogram name="Enterprise.RetrievePolicyResponse"/>
</histogram_suffixes>

<histogram_suffixes name="EventLatencyOS" separator=".">
  <suffix name="MOUSE_WHEEL"/>
  <suffix name="TOUCH_MOVED"/>
  <suffix name="TOUCH_PRESSED"/>
  <suffix name="TOUCH_RELEASED"/>
  <affected-histogram name="Event.Latency.OS"/>
</histogram_suffixes>

<histogram_suffixes name="ExitFunnels" separator=".">
  <suffix name="BackgroundOff"/>
  <suffix name="BackgroundOn"/>
  <suffix name="BrowserExit"/>
  <suffix name="EndSession"/>
  <suffix name="ES_CloseApp"/>
  <suffix name="ES_Critical"/>
  <suffix name="ES_Logoff"/>
  <suffix name="ES_Other"/>
  <suffix name="HungBrowserTerminated"/>
  <suffix name="KillProcess"/>
  <suffix name="LastWindowClose"/>
  <suffix name="MessageWindowHung"/>
  <suffix name="MessageWindowNotFound"/>
  <suffix name="MessageWindowVanished"/>
  <suffix name="ProcessSingletonIsShuttingDown"/>
  <suffix name="RendezvousToHungBrowser"/>
  <suffix name="SessionEnding"/>
  <suffix name="TraybarEndSession"/>
  <suffix name="TraybarExit"/>
  <suffix name="WatcherEndSession"/>
  <suffix name="WatcherLogoff"/>
  <suffix name="WatcherQueryEndSession"/>
  <suffix name="WM_ENDSESSION"/>
  <affected-histogram name="Stability.ExitFunnel"/>
</histogram_suffixes>

<histogram_suffixes name="ExpectedQueueingDurationThreshold" separator="_">
  <obsolete>
    Deprecated as of 08/2017. Replaced with ExpectedQueueingDurationThreshold.
  </obsolete>
  <suffix name="GreaterThan.10ms"
      label="Expected Queueing Time greater than 10ms."/>
  <suffix name="GreaterThan.150ms"
      label="Expected Queueing Time greater than 150ms."/>
  <suffix name="GreaterThan.300ms"
      label="Expected Queueing Time greater than 300ms."/>
  <suffix name="GreaterThan.450ms"
      label="Expected Queueing Time greater than 450ms."/>
  <suffix name="LessThan.10ms" label="Expected Queueing Time less than 10ms."/>
  <suffix name="LessThan.150ms"
      label="Expected Queueing Time less than 150ms."/>
  <suffix name="LessThan.300ms"
      label="Expected Queueing Time less than 300ms."/>
  <suffix name="LessThan.450ms"
      label="Expected Queueing Time less than 450ms."/>
  <affected-histogram
      name="RendererScheduler.QueueingDurationWhenExpectedQueueingTime"/>
</histogram_suffixes>

<histogram_suffixes name="ExtensionContextType" separator=".">
  <suffix name="BlessedExtensionContext" label="Blessed Extension Context"/>
  <suffix name="BlessedWebPageContext" label="Blessed Web Page Context"/>
  <suffix name="ContentScriptContext" label="Content Script Context"/>
  <suffix name="LockScreenExtensionContext"
      label="Lock Screen Extension Context"/>
  <suffix name="ServiceWorkerContext" label="Service Worker Context"/>
  <suffix name="UnblessedExtensionContext" label="Unblessed Extension Context"/>
  <suffix name="WebPageContext" label="(unblessed) Web Page Context"/>
  <suffix name="WebUIContext" label="WebUI Context"/>
  <affected-histogram name="Extensions.Bindings.UpdateBindingsForContextTime"/>
</histogram_suffixes>

<histogram_suffixes name="ExtensionFunctionExecutionTime" separator=".">
  <suffix name="1msTo5ms"
      label="Execution took between 1ms and 5ms (tolerable)."/>
  <suffix name="5msTo10ms" label="Execution took between 5ms and 10ms (slow)."/>
  <suffix name="LessThan1ms" label="Execution took less than 1ms (fast)."/>
  <suffix name="Over10ms" label="Execution took over 10ms (glacial)."/>
  <affected-histogram name="Extensions.Functions.FailedTime"/>
  <affected-histogram name="Extensions.Functions.SucceededTime"/>
</histogram_suffixes>

<histogram_suffixes name="ExtensionMessagingPortCreationTime" separator=".">
  <suffix name="InBeforeUnload"
      label="Created during an event handler for the 'beforeunload' event.">
    <obsolete>
      Deprecated and removed from code as of 05/2015.
    </obsolete>
  </suffix>
  <suffix name="InUnload"
      label="Created during an event handler for the 'unload' event.">
    <obsolete>
      Deprecated and removed from code as of 05/2015.
    </obsolete>
  </suffix>
  <suffix name="Normal"
      label="Created during any time other than the 'unload' or 'beforeunload'
             handlers.">
    <obsolete>
      Deprecated and removed from code as of 05/2015.
    </obsolete>
  </suffix>
  <suffix name="Total" label="The total number of ports created."/>
  <affected-histogram name="Extensions.Messaging.ExtensionPortsCreated"/>
</histogram_suffixes>

<histogram_suffixes name="ExtensionMessagingPortType" separator=".">
  <suffix name="Extension" label="A port opened to an extension context."/>
  <suffix name="NativeApp" label="A port opened to a native application."/>
  <suffix name="Tab" label="A port opened to a tab context."/>
  <affected-histogram name="Extensions.Messaging.GetPortIdAsyncTime"/>
  <affected-histogram name="Extensions.Messaging.GetPortIdSyncTime"/>
  <affected-histogram name="Extensions.Messaging.SetPortIdTime"/>
</histogram_suffixes>

<histogram_suffixes name="Extensions.WebRequest.WS_RequestHeaders"
    separator="_">
  <obsolete>
    Removed as of Jan 2019.
  </obsolete>
  <suffix name="Origin" label="origin"/>
  <suffix name="OriginOrCookie" label="origin, cookie, cookie2"/>
  <suffix name="SecOrProxy" label="origin, sec-*, proxy-*"/>
  <suffix name="SecOrProxyExceptProtocol"
      label="origin, sec-* (except for sec-websocket-protocol), proxy-*"/>
  <suffix name="Unsafe"
      label="!net::HttpUtil::IsSafeHeader (except for user-agent)"/>
  <suffix name="WebSocket"
      label="sec-websocket-*, origin, cache-control, pragma, host, upgrade,
             connection"/>
  <suffix name="WebSocketExceptProtocol"
      label="sec-websocket-* (except for sec-websocket-protocol), origin,
             cache-control, pragma, host, upgrade, connection"/>
  <affected-histogram name="Extensions.WebRequest.WS_RequestHeaders"/>
</histogram_suffixes>

<histogram_suffixes name="ExtensionsDatabaseOpen" separator=".">
  <suffix name="Rules" label="Rules backing stores"/>
  <suffix name="Settings" label="Settings backing stores"/>
  <suffix name="State" label="State backing stores"/>
  <affected-histogram name="Extensions.Database.Open"/>
</histogram_suffixes>

<histogram_suffixes name="ExtensionsDatabaseRestore" separator=".">
  <suffix name="Rules" label="Rules backing stores"/>
  <suffix name="Settings" label="Settings backing stores"/>
  <suffix name="State" label="State backing stores"/>
  <affected-histogram name="Extensions.Database.Restore"/>
</histogram_suffixes>

<histogram_suffixes name="ExtensionWebUiPageType" separator=".">
  <suffix name="MD" label="The Material Design chrome://extensions page."/>
  <suffix name="Uber" label="The Uber chrome://extensions page.">
    <obsolete>
      Deprecated and removed from code as of 04/2018.
    </obsolete>
  </suffix>
  <affected-histogram name="Extensions.WebUi.DocumentLoadedInMainFrameTime"/>
  <affected-histogram name="Extensions.WebUi.LoadCompletedInMainFrame"/>
</histogram_suffixes>

<histogram_suffixes name="ExternalExtensionEvent" separator="">
  <suffix name="NonWebstore"
      label="sideloaded extensions that don't update from the webstore"/>
  <suffix name="Webstore"
      label="sideloaded extensions that update from the webstore"/>
  <affected-histogram name="Extensions.ExternalExtensionEvent"/>
</histogram_suffixes>

<histogram_suffixes name="FaviconIconType" separator=".">
  <obsolete>
    Deprecated as of 12/2017.
  </obsolete>
  <suffix name="Favicons" label="Metrics for regular favicons."/>
  <suffix name="LargeIcons" label="Metrics for large non-touch icons."/>
  <suffix name="TouchIcons" label="Metrics for large touch icons."/>
  <affected-histogram name="Favicons.DownloadAttempts"/>
</histogram_suffixes>

<histogram_suffixes name="FeedIsSynthetic" separator="." ordering="suffix">
  <suffix name="NotSynthetic"
      label="Continuations that require making remote requests to fetch more
             articles."/>
  <suffix name="Synthetic"
      label="Continuations generated by the Feed library."/>
  <affected-histogram
      name="ContentSuggestions.Feed.TokenCompleted.ContentCount"/>
  <affected-histogram name="ContentSuggestions.Feed.TokenCompleted.TokenCount"/>
  <affected-histogram name="ContentSuggestions.Feed.TokenFailedToCompleted"/>
</histogram_suffixes>

<histogram_suffixes name="FeedOrHostOlder" separator=".">
  <suffix name="FeedIsOlder"/>
  <suffix name="HostIsOlder"/>
  <affected-histogram
      name="ContentSuggestions.Feed.Scheduler.ContentAgeDifference"/>
</histogram_suffixes>

<histogram_suffixes name="FeedSchedulerRequestType" separator=".">
  <suffix name="NoRequestWithContent"
      label="Do not make request and show current content."/>
  <suffix name="NoRequestWithTimeout"
      label="Do not make request until timeout."/>
  <suffix name="NoRequestWithWait"
      label="Do not make request and wait for existing request."/>
  <suffix name="RequestByFixedTimer" label="Request by fixed timer."/>
  <suffix name="RequestByForegrounded" label="Request by foregrounded."/>
  <suffix name="RequestByNtpShown" label="Request by NTP shown."/>
  <affected-histogram
      name="ContentSuggestions.Feed.Scheduler.ShouldRefreshResult"/>
</histogram_suffixes>

<histogram_suffixes name="FeedSpinnerType" separator=".">
  <suffix name="InfiniteFeed" label="Infinite feed"/>
  <suffix name="InitialLoad" label="Initial load"/>
  <suffix name="MoreButton" label="More button"/>
  <suffix name="SyntheticToken" label="Synthetic token"/>
  <suffix name="ZeroStateRefresh" label="Zero state refresh"/>
  <affected-histogram
      name="ContentSuggestions.Feed.FetchPendingSpinner.VisibleDuration"/>
  <affected-histogram
      name="ContentSuggestions.Feed.FetchPendingSpinner.VisibleDurationWithoutCompleting"/>
</histogram_suffixes>

<histogram_suffixes name="FeedStorageType" separator="." ordering="prefix,2">
  <suffix name="ContentStorage" label="Database for content storage."/>
  <suffix name="JournalStorage" label="Database for journal storage."/>
  <affected-histogram name="ContentSuggestions.Feed.CommitMutationCount"/>
  <affected-histogram name="ContentSuggestions.Feed.Count"/>
  <affected-histogram name="ContentSuggestions.Feed.InitialSuccess"/>
  <affected-histogram name="ContentSuggestions.Feed.LoadKeysSuccess"/>
  <affected-histogram name="ContentSuggestions.Feed.LoadKeysTime"/>
  <affected-histogram name="ContentSuggestions.Feed.LoadSuccess"/>
  <affected-histogram name="ContentSuggestions.Feed.LoadTime"/>
  <affected-histogram name="ContentSuggestions.Feed.OperationCommitSuccess"/>
  <affected-histogram name="ContentSuggestions.Feed.OperationCommitTime"/>
</histogram_suffixes>

<histogram_suffixes name="FieldPredictionSubmissionEvents" separator=".">
  <suffix name="BasedOnAutocomplete"
      label="Quality metrics based on autocomplete attributes."/>
  <suffix name="NoSubmission" label="No observed submission."/>
  <affected-histogram name="Autofill.FieldPrediction.Heuristic"/>
  <affected-histogram name="Autofill.FieldPrediction.Overall"/>
  <affected-histogram name="Autofill.FieldPrediction.Server"/>
  <affected-histogram
      name="Autofill.FieldPredictionQuality.Aggregate.Heuristic"/>
  <affected-histogram name="Autofill.FieldPredictionQuality.Aggregate.Overall"/>
  <affected-histogram name="Autofill.FieldPredictionQuality.Aggregate.Server"/>
  <affected-histogram
      name="Autofill.FieldPredictionQuality.ByFieldType.Heuristic"/>
  <affected-histogram
      name="Autofill.FieldPredictionQuality.ByFieldType.Overall"/>
  <affected-histogram
      name="Autofill.FieldPredictionQuality.ByFieldType.Server"/>
  <affected-histogram
      name="Autofill.NumberOfEditedAutofilledFieldsAtSubmission"/>
  <affected-histogram name="Autofill.Quality.HeuristicType"/>
  <affected-histogram name="Autofill.Quality.HeuristicType.ByFieldType"/>
  <affected-histogram name="Autofill.Quality.PredictedType"/>
  <affected-histogram name="Autofill.Quality.PredictedType.ByFieldType"/>
  <affected-histogram name="Autofill.Quality.ServerType"/>
  <affected-histogram name="Autofill.Quality.ServerType.ByFieldType"/>
</histogram_suffixes>

<histogram_suffixes name="FileBrowserCrostiniSharedPathsDepth" separator=".">
  <suffix name="AndroidFiles" label="Shared path in Android volume."/>
  <suffix name="Downloads" label="Shared path in Downloads volume."/>
  <suffix name="DriveComputers" label="Shared path in Drive Computers volume."/>
  <suffix name="MyDrive" label="Shared path in My Drive volume."/>
  <suffix name="Other" label="Shared path in any other volume."/>
  <suffix name="Removable" label="Shared path in removable USB volume."/>
  <suffix name="TeamDrive" label="Shared path in Team Drive volume."/>
  <affected-histogram name="FileBrowser.CrostiniSharedPaths.Depth"/>
</histogram_suffixes>

<histogram_suffixes name="FileBrowserLoad" separator=".">
  <suffix name="BackgroundLaunch"
      label="Time from onLaunched event is called to the window is created."/>
  <suffix name="BackgroundRestart" label="Time to create a window on restart."/>
  <suffix name="BackgroundScript"
      label="Time to initialize backend script to wait for events."/>
  <suffix name="Construct"
      label="Time spent constructing the main Javascript object.">
    <obsolete>
      Deprecated as of 12/2016.
    </obsolete>
  </suffix>
  <suffix name="DOM" label="Time to initialize DOM.">
    <obsolete>
      Deprecated as of 12/2016.
    </obsolete>
  </suffix>
  <suffix name="FileSystem"
      label="Time to get access to the local file system.">
    <obsolete>
      Deprecated as of 9/2013.
    </obsolete>
  </suffix>
  <suffix name="ImportElements"
      label="Time to initialize the polymer elements."/>
  <suffix name="InitBackgroundPage"
      label="Time to initialize the background page."/>
  <suffix name="InitDocuments"
      label="Time to initialize the background page and the elements."/>
  <suffix name="InitSettings" label="Time to restore user settings."/>
  <suffix name="InitUI"
      label="Time to initialize all UI after all elements are initialized."/>
  <suffix name="Parse" label="Time to parse Javascript and CSS (Deprecated).">
    <obsolete>
      Deprecated as of 12/2016.
    </obsolete>
  </suffix>
  <suffix name="Roots" label="Time to enumerate file system roots.">
    <obsolete>
      Deprecated as of 12/2016.
    </obsolete>
  </suffix>
  <suffix name="Script" label="Time to parse Javascript and CSS."/>
  <suffix name="Total"
      label="Total load time from the moment the Javascript started parsing
             till the moment the empty file list is displayed."/>
  <affected-histogram name="FileBrowser.Load"/>
</histogram_suffixes>

<histogram_suffixes name="FileOperations" separator=".">
  <suffix name="DeleteFile.NonRecursive"/>
  <suffix name="DeleteFile.Recursive"/>
  <affected-histogram name="Windows.FilesystemError"/>
  <affected-histogram name="Windows.PostOperationState"/>
</histogram_suffixes>

<histogram_suffixes name="FirstPacketSplit" separator="_">
  <suffix name="first_packet_intact"
      label="with GET/POST headers often using only 1 packet"/>
  <suffix name="first_packet_split"
      label="with all GET/POST requests using at least 2 packets"/>
  <affected-histogram name="Renderer4.Abandoned"/>
  <affected-histogram name="Renderer4.BeginToFinish_LinkLoadNormal"/>
  <affected-histogram name="Renderer4.BeginToFinish_LinkLoadReload"/>
  <affected-histogram name="Renderer4.BeginToFinish_LinkLoadStaleOk"/>
  <affected-histogram name="Renderer4.BeginToFinish_NormalLoad"/>
  <affected-histogram name="Renderer4.LoadType"/>
</histogram_suffixes>

<histogram_suffixes name="FirstUserActionType" separator="">
  <suffix name="Continuation"
      label="and performed an user action indicating that they were
             continuing a task from the last time they used the app"/>
  <suffix name="Expiration"
      label="and did not perform any user actions that indicate either a new
             task or a continued task before some timeout expired"/>
  <suffix name="NewTask"
      label="and performed an user action indicating that they were beginning
             a new task from the last time they used the app"/>
  <affected-histogram name="FirstUserAction.BackgroundTime"/>
</histogram_suffixes>

<histogram_suffixes name="FirstUserActionTypeDevice" separator="">
  <suffix name="Handset" label="(handset only)"/>
  <suffix name="Tablet" label="(tablet only)"/>
  <affected-histogram name="FirstUserAction.BackgroundTimeContinuation"/>
  <affected-histogram name="FirstUserAction.BackgroundTimeExpiration"/>
  <affected-histogram name="FirstUserAction.BackgroundTimeNewTask"/>
</histogram_suffixes>

<histogram_suffixes name="FirstUserActionTypes" separator=".">
  <suffix name="Backgrounded" label="The user sent Chrome to the background"/>
  <suffix name="Continuation"
      label="The user continued the task from the last time they used the app"/>
  <suffix name="NtpCreated" label="The user action open a NTP."/>
  <suffix name="Omnibox" label="The user interacted with the omnibox."/>
  <suffix name="SwitchTabs" label="The user switched tabs."/>
  <affected-histogram name="FirstUserAction.BackgroundTime.MainIntent"/>
</histogram_suffixes>

<histogram_suffixes name="FreedesktopNotificationCapabilitiesId" separator=".">
  <suffix name="ActionIcons" label="action-icons capability"/>
  <suffix name="Actions" label="actions capability"/>
  <suffix name="Body" label="body capability"/>
  <suffix name="BodyHyperlinks" label="body-hyperlinks capability"/>
  <suffix name="BodyImages" label="body-images capability"/>
  <suffix name="BodyMarkup" label="body-markup capability"/>
  <suffix name="IconMulti" label="icon-multi capability"/>
  <suffix name="IconStatic" label="icon-static capability"/>
  <suffix name="Persistence" label="persistence capability"/>
  <suffix name="Sound" label="sound capability"/>
  <affected-histogram name="Notifications.Freedesktop.Capabilities"/>
</histogram_suffixes>

<histogram_suffixes name="FromGWS" separator="_">
  <suffix name="FromGWS"
      label="Only page loads that are a result of a navigation from a web
             search are considered."/>
  <affected-histogram name="PLT.BeginToFinish"/>
  <affected-histogram name="PLT.BeginToFinishDoc"/>
  <affected-histogram name="PLT.BeginToFirstPaint"/>
  <affected-histogram name="PLT.CommitToFirstPaint"/>
  <affected-histogram name="PLT.PT_BeginToCommit"/>
  <affected-histogram name="PLT.PT_BeginToFinish"/>
  <affected-histogram name="PLT.PT_BeginToFinishDoc"/>
  <affected-histogram name="PLT.PT_CommitToFinish"/>
  <affected-histogram name="PLT.PT_CommitToFinishDoc"/>
  <affected-histogram name="PLT.PT_RequestToCommit"/>
  <affected-histogram name="PLT.PT_RequestToDomContentLoaded"/>
  <affected-histogram name="PLT.PT_RequestToFinish"/>
  <affected-histogram name="PLT.PT_RequestToFinishDoc"/>
  <affected-histogram name="PLT.PT_RequestToStart"/>
  <affected-histogram name="PLT.PT_StartToCommit"/>
  <affected-histogram name="PLT.PT_StartToFinish"/>
</histogram_suffixes>

<histogram_suffixes name="GaiaListAccountsRetry" separator="_">
  <suffix name="0" label="Inital request"/>
  <suffix name="1" label="1st retry"/>
  <suffix name="2" label="2nd retry"/>
  <suffix name="3" label="3rd retry"/>
  <suffix name="4" label="4th retry"/>
  <suffix name="5" label="5th retry"/>
  <suffix name="6" label="6th retry"/>
  <suffix name="7" label="7th retry"/>
  <suffix name="8" label="8th retry"/>
  <affected-histogram name="Gaia.AuthFetcher.ListAccounts.NetErrorCodes.Retry"/>
</histogram_suffixes>

<histogram_suffixes name="GeolocationSettingsDialogSource" separator=".">
  <suffix name="DSE" label="Default search engine"/>
  <suffix name="NonDSE" label="Non-default search engine"/>
  <affected-histogram name="Geolocation.SettingsDialog.AcceptEvent"/>
  <affected-histogram name="Geolocation.SettingsDialog.DenyEvent"/>
  <affected-histogram name="Geolocation.SettingsDialog.ShowEvent"/>
  <affected-histogram name="Geolocation.SettingsDialog.SuppressEvent"/>
</histogram_suffixes>

<histogram_suffixes name="Gesture" separator="_">
  <suffix name="Touch"
      label="Measure the size of scroller that users touch scroll"/>
  <suffix name="Wheel"
      label="Measure the size of scroller that users wheel scroll"/>
  <affected-histogram name="Event.Scroll.ScrollerSize.OnScroll"/>
</histogram_suffixes>

<histogram_suffixes name="GLApisWithErrorReporting" separator="_">
  <suffix name="TexImage2D" label="All GL APIs that allocate a 2D texture."/>
  <suffix name="TexImage3D" label="All GL APIs that allocate a 3D texture."/>
  <affected-histogram name="GPU.Error"/>
</histogram_suffixes>

<histogram_suffixes name="GlobalSdch" separator="_">
  <obsolete>
    Deprecated 2017-9.
  </obsolete>
  <suffix name="global_disable_sdch" label="with SDCH completely disabled"/>
  <suffix name="global_enable_sdch"
      label="with SDCH support for applicable sites"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoad"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadCacheOnly"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadNormal"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadReload"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadStaleOk"/>
  <affected-histogram name="PLT.BeginToFinish_NormalLoad"/>
  <affected-histogram name="PLT.BeginToFinishDoc_LinkLoadCacheOnly"/>
  <affected-histogram name="PLT.BeginToFinishDoc_LinkLoadNormal"/>
  <affected-histogram name="PLT.BeginToFinishDoc_LinkLoadReload"/>
  <affected-histogram name="PLT.BeginToFinishDoc_LinkLoadStaleOk"/>
  <affected-histogram name="PLT.BeginToFinishDoc_NormalLoad"/>
  <affected-histogram name="PLT.LoadType"/>
  <affected-histogram name="PLT.RequestToFinish"/>
  <affected-histogram name="PLT.StartToFinish"/>
  <affected-histogram name="Renderer4.BeginToFinish_LinkLoad"/>
  <affected-histogram name="Renderer4.BeginToFinish_LinkLoadCacheOnly"/>
  <affected-histogram name="Renderer4.BeginToFinish_LinkLoadNormal"/>
  <affected-histogram name="Renderer4.BeginToFinish_LinkLoadReload"/>
  <affected-histogram name="Renderer4.BeginToFinish_LinkLoadStaleOk"/>
  <affected-histogram name="Renderer4.BeginToFinish_NormalLoad"/>
  <affected-histogram name="Renderer4.BeginToFinishDoc_LinkLoad"/>
  <affected-histogram name="Renderer4.BeginToFinishDoc_LinkLoadCacheOnly"/>
  <affected-histogram name="Renderer4.BeginToFinishDoc_LinkLoadNormal"/>
  <affected-histogram name="Renderer4.BeginToFinishDoc_LinkLoadReload"/>
  <affected-histogram name="Renderer4.BeginToFinishDoc_LinkLoadStaleOk"/>
  <affected-histogram name="Renderer4.BeginToFinishDoc_NormalLoad"/>
  <affected-histogram name="Renderer4.LoadType"/>
  <affected-histogram name="Renderer4.RequestToFinish"/>
  <affected-histogram name="Renderer4.StartToFinish"/>
</histogram_suffixes>

<histogram_suffixes name="GoogleSearchVariations" separator="_">
  <owner>kmadhusu@chromium.org</owner>
  <suffix name="_PrerenderDisabled"
      label="Counts number of Google searches from various access points in
             the Android Chrome browser when prerendering is disabled via
             &quot;Bandwidth management&quot; settings or &quot;Privacy&quot;
             settings. Only recorded on Android."/>
  <suffix name="_PrerenderEnabled"
      label="Counts number of Google searches from various access points in
             the Android Chrome browser when prerendering is enabled via
             &quot;Bandwidth management&quot; settings or &quot;Privacy&quot;
             settings. Only recorded on Android."/>
  <affected-histogram name="GoogleSearch.AccessPoint"/>
</histogram_suffixes>

<histogram_suffixes name="GoogleUpdate.Inline.InstallStatus" separator=".">
  <suffix name="Canceled" label="Canceled"/>
  <suffix name="Downloaded" label="Downloaded"/>
  <suffix name="Downloading" label="Downloading"/>
  <suffix name="Failed" label="Failed"/>
  <suffix name="Installed" label="Installed"/>
  <suffix name="Installing" label="Installing"/>
  <suffix name="Pending" label="Pending"/>
  <suffix name="RequiresUiIntent" label="Requires UI Intent"/>
  <suffix name="Unknown" label="Unknown"/>
  <suffix name="Untracked" label="Untracked Status (Not Known to UMA)"/>
  <affected-histogram name="GoogleUpdate.Inline.StateChange.Error"/>
</histogram_suffixes>

<histogram_suffixes name="GPU.ContextType" separator=".">
  <suffix name="GLES" label="GLES Context."/>
  <suffix name="WebGL" label="WebGL Context."/>
  <affected-histogram name="GPU.ContextMemory"/>
</histogram_suffixes>

<histogram_suffixes name="GPU.DirectComposition.OverlayFormat" separator=".">
  <suffix name="BGRA" label="BGRA"/>
  <suffix name="NV12" label="NV12"/>
  <suffix name="YUY2" label="YUY2"/>
  <affected-histogram name="GPU.DirectComposition.OverlaySupportFlags2"/>
  <affected-histogram name="GPU.DirectComposition.SwapChainCreationResult"/>
</histogram_suffixes>

<histogram_suffixes name="GPU.MemorySamplingTime" separator=".">
  <suffix name="Periodic" label="Sampled periodically."/>
  <suffix name="Pressure" label="Sampled on CRITICAL memory pressure signal."/>
  <suffix name="Shutdown" label="Sampled at shutdown."/>
  <affected-histogram name="GPU.ContextMemory.GLES"/>
  <affected-histogram name="GPU.ContextMemory.WebGL"/>
</histogram_suffixes>

<histogram_suffixes name="GPU.ProtectedVideoType" separator=".">
  <suffix name="Clear" label="Clear"/>
  <suffix name="HardwareProtected" label="HardwareProtected"/>
  <suffix name="SoftwareProtected" label="SoftwareProtected"/>
  <affected-histogram name="GPU.DirectComposition.DCLayerResult2"/>
  <affected-histogram name="GPU.DirectComposition.SwapChainCreationResult3"/>
</histogram_suffixes>

<histogram_suffixes name="GPU.SoftwareProtectedType" separator=".">
  <suffix name="HasOverlaySupport" label="HasOverlaySupport"/>
  <suffix name="NoOverlaySupport" label="NoOverlaySupport"/>
  <affected-histogram
      name="GPU.DirectComposition.SwapChainCreationResult3.SoftwareProtected"/>
</histogram_suffixes>

<histogram_suffixes name="GPUBlacklistPerFeature" separator=".">
  <owner>vmiura@chromium.org</owner>
  <suffix name="Accelerated2dCanvas" label="Accelerated2dCanvas"/>
  <suffix name="GpuCompositing" label="GpuCompositing"/>
  <suffix name="GpuRasterization" label="GpuRasterization"/>
  <suffix name="Webgl" label="Webgl"/>
  <suffix name="Webgl2" label="Webgl2"/>
  <affected-histogram name="GPU.BlacklistFeatureTestResults"/>
  <affected-histogram name="GPU.BlacklistFeatureTestResultsWindows"/>
  <affected-histogram name="GPU.BlacklistFeatureTestResultsWindows2"/>
</histogram_suffixes>

<histogram_suffixes name="GpuChannelResponse" separator=".">
  <suffix name="Failure" label="Failed Request"/>
  <suffix name="Success" label="Successful Request"/>
  <affected-histogram name="GPU.EstablishGpuChannelDuration"/>
</histogram_suffixes>

<histogram_suffixes name="GraphicsPipeline" separator="." ordering="prefix">
  <suffix name="Browser" label="for browser process."/>
  <suffix name="Exo" label="for Exo clients."/>
  <suffix name="Mus" label="for Mus clients."/>
  <suffix name="OOPIF" label="for out-of-process-iframe clients."/>
  <suffix name="Renderer" label="for renderer process in general."/>
  <affected-histogram name="GraphicsPipeline.ReceivedBeginFrame"/>
  <affected-histogram
      name="GraphicsPipeline.SubmitCompositorFrameAfterBeginFrame"/>
</histogram_suffixes>

<histogram_suffixes name="GWSChromeJointExperiment" separator="_">
  <suffix name="Experiment1"
      label="Only page loads that are a result of a navigation from a web
             search under a specific web search/Chrome joint experiment.
             Unused at this moment."/>
  <suffix name="Experiment2"
      label="Only page loads that are a result of a navigation from a web
             search under a specific web search/Chrome joint experiment.
             Unused at this moment."/>
  <suffix name="Experiment3"
      label="Only page loads that are a result of a navigation from a web
             search under a specific web search/Chrome joint experiment.
             Unused at this moment."/>
  <suffix name="Experiment4"
      label="Only page loads that are a result of a navigation from a web
             search under a specific web search/Chrome joint experiment.
             Unused at this moment."/>
  <suffix name="Experiment5"
      label="Only page loads that are a result of a navigation from a web
             search under a specific web search/Chrome joint experiment.
             Unused at this moment."/>
  <suffix name="Experiment6"
      label="Only page loads that are a result of a navigation from a web
             search under a specific web search/Chrome joint experiment.
             Unused at this moment."/>
  <suffix name="Experiment7"
      label="Only page loads that are a result of a navigation from a web
             search under a specific web search/Chrome joint experiment.
             Unused at this moment."/>
  <suffix name="Experiment8"
      label="Only page loads that are a result of a navigation from a web
             search under a specific web search/Chrome joint experiment.
             Unused at this moment."/>
  <suffix name="Experiment9"
      label="Only page loads that are a result of a navigation from a web
             search under a specific web search/Chrome joint experiment.
             Unused at this moment."/>
  <suffix name="Experiment10"
      label="Only page loads that are a result of a navigation from a web
             search under a specific web search/Chrome joint experiment.
             Unused at this moment."/>
  <suffix name="Experiment11"
      label="Only page loads that are a result of a navigation from a web
             search under a specific web search/Chrome joint experiment.
             Unused at this moment."/>
  <suffix name="Experiment12"
      label="Only page loads that are a result of a navigation from a web
             search under a specific web search/Chrome joint experiment.
             Unused at this moment."/>
  <suffix name="Experiment13"
      label="Only page loads that are a result of a navigation from a web
             search under a specific web search/Chrome joint experiment.
             Unused at this moment."/>
  <suffix name="Experiment14"
      label="Only page loads that are a result of a navigation from a web
             search under a specific web search/Chrome joint experiment.
             Unused at this moment."/>
  <suffix name="Experiment15"
      label="Only page loads that are a result of a navigation from a web
             search under a specific web search/Chrome joint experiment.
             Unused at this moment."/>
  <suffix name="Experiment16"
      label="Only page loads that are a result of a navigation from a web
             search under a specific web search/Chrome joint experiment.
             Unused at this moment."/>
  <suffix name="Experiment17"
      label="Only page loads that are a result of a navigation from a web
             search under a specific web search/Chrome joint experiment.
             Unused at this moment."/>
  <suffix name="Experiment18"
      label="Only page loads that are a result of a navigation from a web
             search under a specific web search/Chrome joint experiment.
             Unused at this moment."/>
  <suffix name="Experiment19"
      label="Only page loads that are a result of a navigation from a web
             search under a specific web search/Chrome joint experiment.
             Unused at this moment."/>
  <suffix name="Experiment20"
      label="Only page loads that are a result of a navigation from a web
             search under a specific web search/Chrome joint experiment.
             Unused at this moment."/>
  <affected-histogram name="PLT.BeginToFinish_FromGWS"/>
  <affected-histogram name="PLT.BeginToFinish_NoPreview"/>
  <affected-histogram name="PLT.BeginToFinish_Preview"/>
  <affected-histogram name="PLT.BeginToFinish_WithPreview"/>
  <affected-histogram name="PLT.BeginToFinishDoc_FromGWS"/>
  <affected-histogram name="PLT.BeginToFinishDoc_NoPreview"/>
  <affected-histogram name="PLT.BeginToFinishDoc_Preview"/>
  <affected-histogram name="PLT.BeginToFinishDoc_WithPreview"/>
  <affected-histogram name="PLT.BeginToFirstPaint_FromGWS"/>
  <affected-histogram name="PLT.BeginToFirstPaint_NoPreview"/>
  <affected-histogram name="PLT.BeginToFirstPaint_Preview"/>
  <affected-histogram name="PLT.BeginToFirstPaint_WithPreview"/>
  <affected-histogram name="PLT.CommitToFirstPaint_FromGWS"/>
  <affected-histogram name="PLT.CommitToFirstPaint_NoPreview"/>
  <affected-histogram name="PLT.CommitToFirstPaint_Preview"/>
  <affected-histogram name="PLT.CommitToFirstPaint_WithPreview"/>
  <affected-histogram name="PLT.PT_BeginToCommit_FromGWS"/>
  <affected-histogram name="PLT.PT_BeginToCommit_NoPreview"/>
  <affected-histogram name="PLT.PT_BeginToCommit_Preview"/>
  <affected-histogram name="PLT.PT_BeginToCommit_WithPreview"/>
  <affected-histogram name="PLT.PT_BeginToFinish_FromGWS"/>
  <affected-histogram name="PLT.PT_BeginToFinish_NoPreview"/>
  <affected-histogram name="PLT.PT_BeginToFinish_Preview"/>
  <affected-histogram name="PLT.PT_BeginToFinish_WithPreview"/>
  <affected-histogram name="PLT.PT_BeginToFinishDoc_FromGWS"/>
  <affected-histogram name="PLT.PT_BeginToFinishDoc_NoPreview"/>
  <affected-histogram name="PLT.PT_BeginToFinishDoc_Preview"/>
  <affected-histogram name="PLT.PT_BeginToFinishDoc_WithPreview"/>
  <affected-histogram name="PLT.PT_CommitToFinish_FromGWS"/>
  <affected-histogram name="PLT.PT_CommitToFinish_NoPreview"/>
  <affected-histogram name="PLT.PT_CommitToFinish_Preview"/>
  <affected-histogram name="PLT.PT_CommitToFinish_WithPreview"/>
  <affected-histogram name="PLT.PT_CommitToFinishDoc_FromGWS"/>
  <affected-histogram name="PLT.PT_CommitToFinishDoc_NoPreview"/>
  <affected-histogram name="PLT.PT_CommitToFinishDoc_Preview"/>
  <affected-histogram name="PLT.PT_CommitToFinishDoc_WithPreview"/>
  <affected-histogram name="PLT.PT_RequestToCommit_FromGWS"/>
  <affected-histogram name="PLT.PT_RequestToCommit_NoPreview"/>
  <affected-histogram name="PLT.PT_RequestToCommit_Preview"/>
  <affected-histogram name="PLT.PT_RequestToCommit_WithPreview"/>
  <affected-histogram name="PLT.PT_RequestToDomContentLoaded_FromGWS"/>
  <affected-histogram name="PLT.PT_RequestToDomContentLoaded_NoPreview"/>
  <affected-histogram name="PLT.PT_RequestToDomContentLoaded_Preview"/>
  <affected-histogram name="PLT.PT_RequestToDomContentLoaded_WithPreview"/>
  <affected-histogram name="PLT.PT_RequestToFinish_FromGWS"/>
  <affected-histogram name="PLT.PT_RequestToFinish_NoPreview"/>
  <affected-histogram name="PLT.PT_RequestToFinish_Preview"/>
  <affected-histogram name="PLT.PT_RequestToFinish_WithPreview"/>
  <affected-histogram name="PLT.PT_RequestToFinishDoc_FromGWS"/>
  <affected-histogram name="PLT.PT_RequestToFinishDoc_NoPreview"/>
  <affected-histogram name="PLT.PT_RequestToFinishDoc_Preview"/>
  <affected-histogram name="PLT.PT_RequestToFinishDoc_WithPreview"/>
  <affected-histogram name="PLT.PT_RequestToStart_FromGWS"/>
  <affected-histogram name="PLT.PT_RequestToStart_NoPreview"/>
  <affected-histogram name="PLT.PT_RequestToStart_Preview"/>
  <affected-histogram name="PLT.PT_RequestToStart_WithPreview"/>
  <affected-histogram name="PLT.PT_StartToCommit_FromGWS"/>
  <affected-histogram name="PLT.PT_StartToCommit_NoPreview"/>
  <affected-histogram name="PLT.PT_StartToCommit_Preview"/>
  <affected-histogram name="PLT.PT_StartToCommit_WithPreview"/>
  <affected-histogram name="PLT.PT_StartToFinish_FromGWS"/>
  <affected-histogram name="PLT.PT_StartToFinish_NoPreview"/>
  <affected-histogram name="PLT.PT_StartToFinish_Preview"/>
  <affected-histogram name="PLT.PT_StartToFinish_WithPreview"/>
</histogram_suffixes>

<histogram_suffixes name="HadUserInput" separator=".">
  <obsolete>
    Deprecated as of 05/17/2017.
  </obsolete>
  <suffix name="HadUserInput" label="Had user input"/>
  <suffix name="NoUserInput" label="No user input"/>
  <affected-histogram
      name="PageLoad.Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"/>
</histogram_suffixes>

<histogram_suffixes name="HandshakeConfirmed" separator=".">
  <suffix name="HandshakeConfirmed" label="the handshake was confirmed"/>
  <affected-histogram name="Net.QuicSession.ClosedByPublicReset"/>
  <affected-histogram name="Net.QuicSession.ConnectionCloseErrorCodeClient"/>
  <affected-histogram name="Net.QuicSession.ConnectionCloseErrorCodeServer"/>
</histogram_suffixes>

<histogram_suffixes name="HighDownloadBandwidth" separator=".">
  <suffix name="HighDownloadBandwidth" label="download with high bandwidth."/>
  <affected-histogram name="Download.Parallelizable.DownloadTime"/>
  <affected-histogram name="Download.Parallelizable.FileSize"/>
</histogram_suffixes>

<histogram_suffixes name="HistogramInconsistencies" separator=".">
  <suffix name="Cronet" label="Cronet histograms."/>
  <affected-histogram name="Histogram.InconsistenciesBrowser"/>
  <affected-histogram name="Histogram.InconsistenciesBrowserUnique"/>
  <affected-histogram name="Histogram.InconsistentSnapshotBrowser"/>
</histogram_suffixes>

<histogram_suffixes name="HstsState" separator=".">
  <suffix name="HSTSNotEnabled" label="The HSTS is not enabled."/>
  <suffix name="WithHSTSEnabled" label="The HSTS is enabled."/>
  <affected-histogram
      name="PasswordManager.HttpCredentialsWithConflictingHttpsCredential"/>
  <affected-histogram
      name="PasswordManager.HttpCredentialsWithEquivalentHttpsCredential"/>
  <affected-histogram
      name="PasswordManager.HttpCredentialsWithoutMatchingHttpsCredential"/>
</histogram_suffixes>

<histogram_suffixes name="HttpCacheAccessToDoneCases" separator=".">
  <suffix name="SentRequest" label="The request was sent over the network."/>
  <suffix name="Used"
      label="A cache entry was used without using the network."/>
  <affected-histogram name="HttpCache.AccessToDone"/>
</histogram_suffixes>

<histogram_suffixes name="HttpCacheBeforeSendCases" separator=".">
  <suffix name="CantConditionalize"
      label="A cached resource existed but no conditional request could be
             written."/>
  <suffix name="NotCached" label="There was no pre-existing disk cache entry."/>
  <suffix name="Updated"
      label="A cached resource existed and was updated over the network."/>
  <suffix name="Validated"
      label="A cached resource existed and was validated over the network."/>
  <affected-histogram name="HttpCache.AfterSend"/>
  <affected-histogram name="HttpCache.BeforeSend"/>
  <affected-histogram name="HttpCache.PercentBeforeSend"/>
</histogram_suffixes>

<histogram_suffixes name="HttpJobBytes" separator=".">
  <suffix name="Cache" label="For requests served from the cache."/>
  <suffix name="Net" label="For requests served from the network."/>
  <affected-histogram name="Net.HttpJob.PrefilterBytesRead"/>
</histogram_suffixes>

<histogram_suffixes name="HttpPipeliningCompatibility" separator="_">
  <suffix name="disable_test" label="Do nothing"/>
  <suffix name="enable_test" label="Test connection for HTTP pipelining"/>
  <affected-histogram name="NetConnectivity.Pipeline.0.NetworkError"/>
  <affected-histogram name="NetConnectivity.Pipeline.0.ResponseCode"/>
  <affected-histogram name="NetConnectivity.Pipeline.0.Status"/>
  <affected-histogram name="NetConnectivity.Pipeline.1.NetworkError"/>
  <affected-histogram name="NetConnectivity.Pipeline.1.ResponseCode"/>
  <affected-histogram name="NetConnectivity.Pipeline.1.Status"/>
  <affected-histogram name="NetConnectivity.Pipeline.2.NetworkError"/>
  <affected-histogram name="NetConnectivity.Pipeline.2.ResponseCode"/>
  <affected-histogram name="NetConnectivity.Pipeline.2.Status"/>
  <affected-histogram name="NetConnectivity.Pipeline.3.NetworkError"/>
  <affected-histogram name="NetConnectivity.Pipeline.3.ResponseCode"/>
  <affected-histogram name="NetConnectivity.Pipeline.3.Status"/>
  <affected-histogram name="NetConnectivity.Pipeline.4.NetworkError"/>
  <affected-histogram name="NetConnectivity.Pipeline.4.ResponseCode"/>
  <affected-histogram name="NetConnectivity.Pipeline.4.Status"/>
  <affected-histogram name="NetConnectivity.Pipeline.5.NetworkError"/>
  <affected-histogram name="NetConnectivity.Pipeline.5.ResponseCode"/>
  <affected-histogram name="NetConnectivity.Pipeline.5.Status"/>
  <affected-histogram name="NetConnectivity.Pipeline.AllHTTP11"/>
  <affected-histogram name="NetConnectivity.Pipeline.CanarySuccess"/>
  <affected-histogram name="NetConnectivity.Pipeline.Depth"/>
  <affected-histogram name="NetConnectivity.Pipeline.Success"/>
</histogram_suffixes>

<histogram_suffixes name="HubAndSpokeNavigationUsageType" separator=".">
  <suffix name="FromDefaultSearchEngine"
      label="User navigates to a new page from default search engine result
             page"/>
  <suffix name="FromFormSubmit"
      label="User navigates to a new page from a form submit page"/>
  <suffix name="FromOther"
      label="User navigates to a new page from a page other than a default
             search engine result page or a form submit page"/>
  <affected-histogram name="Tabs.Tasks.HubAndSpokeNavigationUsage"/>
</histogram_suffixes>

<histogram_suffixes name="IdleSktToImpact" separator="_">
  <suffix name="idle_timeout_5"
      label="with 5-second unused idle socket timeout"/>
  <suffix name="idle_timeout_10"
      label="with 10-second unused idle socket timeout"/>
  <suffix name="idle_timeout_20"
      label="with 20-second unused idle socket timeout"/>
  <suffix name="idle_timeout_60"
      label="with 60-second unused idle socket timeout"/>
  <affected-histogram name="PLT.Abandoned"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadNormal"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadReload"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadStaleOk"/>
  <affected-histogram name="PLT.BeginToFinish_NormalLoad"/>
</histogram_suffixes>

<histogram_suffixes name="ImageAnnotationServiceAnnotationType" separator="."
    ordering="prefix">
  <suffix name="DescCaption"
      label="Caption annotations from the description engine"/>
  <suffix name="DescLabel"
      label="Label annotations from the description engine"/>
  <suffix name="DescOcr"
      label="OCR (text extraction) annotations from the description engine"/>
  <suffix name="DescUnknown"
      label="Annotations of an unknown type from the description engine"/>
  <suffix name="Ocr"
      label="OCR (text extraction) annotations from the specialized OCR
             engine"/>
  <affected-histogram name="ImageAnnotationService.AccessibilityV1.Confidence"/>
  <affected-histogram name="ImageAnnotationService.AccessibilityV1.Empty"/>
  <affected-histogram name="ImageAnnotationService.AccessibilityV1.Status"/>
</histogram_suffixes>

<histogram_suffixes name="ImageDecoderFileTypes" separator=".">
  <obsolete>
    Deprecated as of 11/29/2016.
  </obsolete>
  <suffix name="BMP" label="Image decoded as BMP"/>
  <suffix name="GIF" label="Image decoded as GIF"/>
  <suffix name="ICO" label="Image decoded as ICO"/>
  <suffix name="JPEG" label="Image decoded as JPEG"/>
  <suffix name="PNG" label="Image decoded as PNG"/>
  <affected-histogram name="Blink.DecodedImage.CanvasExpanded"/>
  <affected-histogram name="Blink.DecodedImage.EffectiveDimensionsLocation"/>
  <affected-histogram name="Blink.DecodedImage.XCanvasExpansion"/>
  <affected-histogram name="Blink.DecodedImage.YCanvasExpansion"/>
</histogram_suffixes>

<histogram_suffixes name="IMEAutoCorrect" separator=".">
  <suffix name="AC0" label="The auto-correct level is 0"/>
  <suffix name="AC1" label="The auto-correct level is 1"/>
  <suffix name="AC2" label="The auto-correct level is 2"/>
  <affected-histogram name="InputMethod.Commit.Index.FR"/>
  <affected-histogram name="InputMethod.Commit.Index.US"/>
  <affected-histogram name="InputMethod.Commit.Type.FR"/>
  <affected-histogram name="InputMethod.Commit.Type.US"/>
</histogram_suffixes>

<histogram_suffixes name="IMEMajorNames" separator=".">
  <suffix name="FR" label="The French keyboard input method"/>
  <suffix name="Pinyin" label="The Chinse Pinyin input method"/>
  <suffix name="US" label="The US keyboard input method"/>
  <affected-histogram name="InputMethod.Commit.Index"/>
  <affected-histogram name="InputMethod.Commit.Type"/>
</histogram_suffixes>

<histogram_suffixes name="IMEVKLatency" separator=".">
  <suffix name="BackgroundSettingsFetched"
      label="Latency for settings fetched from background"/>
  <suffix name="HtmlLoaded" label="Latency for the page is loaded"/>
  <suffix name="KeyboardCreated" label="Latency for the keyboard is created"/>
  <suffix name="KeyboardShown" label="Latency for keyboard is shown"/>
  <suffix name="KeysetLoaded" label="Latency for keyset config is loaded"/>
  <suffix name="LayoutLoaded" label="Latency for layout definition is loaded"/>
  <affected-histogram name="InputMethod.VirtualKeyboard.InitLatency"/>
</histogram_suffixes>

<histogram_suffixes name="ImmediatePageLoadTiming" separator=".">
  <obsolete>
    Deprecated by PageLoad.PaintTiming.NavigationToFirstContentfulPaint.
  </obsolete>
  <suffix name="Immediate"
      label="Logged immediately after a timing update is observed, unlike
             normal PageLoad timing metrics, which are logged at the end of a
             page's lifetime. This metric is temporary and is intended to
             help loading-dev to understand the impact of logging metrics at
             the end of a page load."/>
  <affected-histogram name="PageLoad.Timing2.NavigationToFirstContentfulPaint"/>
</histogram_suffixes>

<histogram_suffixes name="ImportantFileWriterSuffix" separator=".">
  <suffix name="BookmarkStorage"/>
  <suffix name="FeedbackReport"/>
  <affected-histogram name="ImportantFile.FileCreateError"/>
  <affected-histogram name="ImportantFile.FileDeleteError"/>
  <affected-histogram name="ImportantFile.FileOpenError"/>
  <affected-histogram name="ImportantFile.FileRenameError"/>
  <affected-histogram name="ImportantFile.FileWriteError"/>
  <affected-histogram name="ImportantFile.TempFileFailures"/>
  <affected-histogram name="ImportantFile.TimeToWrite"/>
</histogram_suffixes>

<histogram_suffixes name="IndexedDBLevelDBErrnoMethods" separator=".">
  <suffix name="NewLogger" label="ChromiumEnv::NewLogger"/>
  <suffix name="NewSequentialFile" label="ChromiumEnv::NewSequentialFile"/>
  <suffix name="NewWritableFile" label="ChromiumEnv::NewWritableFile"/>
  <suffix name="SequentialFileRead" label="ChromiumSequentialFile::Read"/>
  <suffix name="SequentialFileSkip" label="ChromiumSequentialFile::Skip"/>
  <suffix name="WritableFileAppend" label="ChromiumWritableFile::Append"/>
  <suffix name="WritableFileClose" label="ChromiumWritableFile::Close"/>
  <suffix name="WritableFileFlush" label="ChromiumWritableFile::Flush"/>
  <suffix name="WritableFileSync" label="ChromiumWritableFile::Sync"/>
  <suffix name="WritableFileSyncParent"
      label="ChromiumWritableFile::SyncParent"/>
  <affected-histogram name="WebCore.IndexedDB.LevelDBOpenErrors.Errno"/>
  <affected-histogram name="WebCore.IndexedDB.LevelDBReadErrors.Errno"/>
  <affected-histogram name="WebCore.IndexedDB.LevelDBWriteErrors.Errno"/>
</histogram_suffixes>

<histogram_suffixes name="IndexedDBLevelDBPFEMethods" separator=".">
  <suffix name="CreateDir" label="ChromiumEnv::CreateDir"/>
  <suffix name="DeleteDir" label="ChromiumEnv::DeleteDir"/>
  <suffix name="DeleteFile" label="ChromiumEnv::DeleteFile"/>
  <suffix name="GetChildren" label="ChromiumEnv::GetChildren"/>
  <suffix name="GetFileSize" label="ChromiumEnv::GetFileSize"/>
  <suffix name="LockFile" label="ChromiumEnv::LockFile"/>
  <suffix name="NewAppendableFile" label="ChromiumEnv::NewAppendableFile"/>
  <suffix name="NewRandomAccessFile" label="ChromiumEnv::NewRandomAccessFile"/>
  <suffix name="RandomAccessFileRead" label="ChromiumRandomAccessFile::Read"/>
  <suffix name="RenameFile" label="ChromiumEnv::RenameFile"/>
  <suffix name="UnlockFile" label="ChromiumEnv::UnlockFile"/>
  <affected-histogram name="WebCore.IndexedDB.LevelDBOpenErrors.PFE"/>
  <affected-histogram name="WebCore.IndexedDB.LevelDBReadErrors.PFE"/>
  <affected-histogram name="WebCore.IndexedDB.LevelDBWriteErrors.PFE"/>
</histogram_suffixes>

<histogram_suffixes name="InputEventPredictionAccuracy" separator=".">
  <suffix name="Long" label="predicted time between 20 to 35ms."/>
  <suffix name="Middle" label="predicted time between 10 to 20ms."/>
  <suffix name="Short" label="predicted time less than 10ms."/>
  <affected-histogram name="Event.InputEventPrediction.Accuracy.Mouse"/>
  <affected-histogram name="Event.InputEventPrediction.Accuracy.Scroll"/>
  <affected-histogram
      name="Event.InputEventPrediction.Accuracy.Scroll.OverPredict"/>
  <affected-histogram
      name="Event.InputEventPrediction.Accuracy.Scroll.UnderPredict"/>
  <affected-histogram name="Event.InputEventPrediction.Accuracy.Touch"/>
</histogram_suffixes>

<histogram_suffixes name="InstallerDownloadSources" separator="">
  <suffix name="HttpPeer" label="Download Source: HTTP Peer"/>
  <suffix name="HttpServer" label="Download Source: HTTP Server"/>
  <suffix name="HttpsServer" label="Download Source: HTTPS Server"/>
  <affected-histogram name="Installer.SuccessfulMBsDownloadedFrom"/>
  <affected-histogram name="Installer.TotalMBsDownloadedFrom"/>
</histogram_suffixes>

<histogram_suffixes name="Instant" separator="_">
  <suffix name="Extended" label="Suggestions + Results"/>
  <suffix name="Instant" label="Results"/>
  <affected-histogram name="Instant.SessionsStorageNamespace"/>
</histogram_suffixes>

<histogram_suffixes name="InstantExtended_QuerytoQuery" separator="_">
  <obsolete>
    All relevant histograms have been marked as obsolete as of Sep 2016.
  </obsolete>
  <owner>macourteau@chromium.org</owner>
  <suffix name="400" label="Omnibox width &lt; 400"/>
  <suffix name="700" label="Omnibox width &lt; 700"/>
  <suffix name="1200" label="Omnibox width &lt; 1200"/>
  <suffix name="large" label="Omnibox width &gt;= 1200"/>
  <affected-histogram name="InstantExtended.PercentageMatchV2_QuerytoQuery"/>
  <affected-histogram name="InstantExtended.PercentageMatchV2_QuerytoURL"/>
  <affected-histogram name="InstantExtended.PercentageMatchV2_URLtoQuery"/>
  <affected-histogram name="InstantExtended.PercentageMatchV2_URLtoURL"/>
</histogram_suffixes>

<histogram_suffixes name="InstantSearchClicks" separator="_">
  <obsolete>
    Deprecated as of 7/2015.
  </obsolete>
  <suffix name="NoPreview"
      label="Only page loads through data reduction proxy that are result of
             navigation from web search and preview version of the page shown
             are considered."/>
  <suffix name="Preview"
      label="Only page loads through data reduction proxy that are result of
             navigation from web search and preview version of the page shown
             are considered."/>
  <suffix name="WithPreview"
      label="Only page loads through data reduction proxy that are result of
             navigation from web search and preview version of the page shown
             are considered."/>
  <affected-histogram name="PLT.BeginToFinish"/>
  <affected-histogram name="PLT.BeginToFinish_ContentPrefetcherReferrer"/>
  <affected-histogram name="PLT.BeginToFinishDoc"/>
  <affected-histogram name="PLT.BeginToFinishDoc_ContentPrefetcherReferrer"/>
  <affected-histogram name="PLT.BeginToFirstPaint"/>
  <affected-histogram name="PLT.CommitToFirstPaint"/>
  <affected-histogram name="PLT.PT_BeginToCommit"/>
  <affected-histogram name="PLT.PT_BeginToFinish"/>
  <affected-histogram name="PLT.PT_BeginToFinishDoc"/>
  <affected-histogram name="PLT.PT_CommitToFinish"/>
  <affected-histogram name="PLT.PT_CommitToFinishDoc"/>
  <affected-histogram name="PLT.PT_RequestToCommit"/>
  <affected-histogram name="PLT.PT_RequestToDomContentLoaded"/>
  <affected-histogram name="PLT.PT_RequestToFinish"/>
  <affected-histogram name="PLT.PT_RequestToFinishDoc"/>
  <affected-histogram name="PLT.PT_RequestToStart"/>
  <affected-histogram name="PLT.PT_StartToCommit"/>
  <affected-histogram name="PLT.PT_StartToFinish"/>
</histogram_suffixes>

<histogram_suffixes name="IntentToFirstCommitZoom" separator=".">
  <owner>lizeb@chromium.org</owner>
  <owner>pasko@chromium.org</owner>
  <suffix name="ZoomedIn" label="Zoomed in view: shorter range, more buckets."/>
  <suffix name="ZoomedOut"
      label="Zoomed out view: longer time range, less buckets."/>
  <affected-histogram
      name="ChromeGeneratedCustomTab.IntentToFirstCommitNavigationTime2"/>
  <affected-histogram
      name="ChromeGeneratedCustomTab.IntentToFirstNavigationStartTime"/>
  <affected-histogram name="CustomTabs.IntentToFirstCommitNavigationTime2"/>
  <affected-histogram name="CustomTabs.IntentToFirstCommitNavigationTime3"/>
  <affected-histogram name="CustomTabs.IntentToFirstNavigationStartTime"/>
  <affected-histogram name="Startup.FirstCommitNavigationTime2"/>
  <affected-histogram name="Startup.FirstCommitNavigationTime3"/>
</histogram_suffixes>

<histogram_suffixes name="Interval" separator="_">
  <obsolete>
    Removed 10/2016.
  </obsolete>
  <suffix name="Interval" label="Interval between two consecutive connects is"/>
  <affected-histogram name="Net.TCP_Connection_Latency"/>
</histogram_suffixes>

<histogram_suffixes name="Interval_20ms_plus_and_minus" separator="_">
  <obsolete>
    Removed 11/2016.
  </obsolete>
  <suffix name="Interval_20ms_Minus"
      label="Interval between two consecutive connects is less than 20ms."/>
  <suffix name="Interval_20ms_Plus"
      label="Interval between two consecutive connects is greater than or
             equal to 20ms."/>
  <affected-histogram name="Net.TCP_Connection_Latency"/>
</histogram_suffixes>

<histogram_suffixes name="Interval_lt_gt_20ms" separator="_">
  <obsolete>
    Removed 11/2016.
  </obsolete>
  <suffix name="GreaterThan_20ms" label="greater than 20ms."/>
  <suffix name="LessThanOrEqual_10ms" label="less than or equal to 10ms."/>
  <suffix name="LessThanOrEqual_20ms"
      label="more than 10ms, and less than or equal to 20ms."/>
  <affected-histogram name="Net.TCP_Connection_Latency_Interval"/>
</histogram_suffixes>

<histogram_suffixes name="IOMode" separator=".">
  <suffix name="Asynchronous"/>
  <suffix name="Synchronous"/>
  <affected-histogram name="Net.QuicSession.PacketWriteTime"/>
</histogram_suffixes>

<histogram_suffixes name="iOS_PLT" separator="">
  <owner>pauljensen@chromium.org</owner>
  <suffix name="" label="not using Data Reduction Proxy"/>
  <suffix name="_DataReductionProxy" label="using Data Reduction Proxy"/>
  <affected-histogram name="Tabs.iOS_PostRedirectPLT"/>
</histogram_suffixes>

<histogram_suffixes name="IOSProductTourScreens" separator="">
  <suffix name="Incognito"/>
  <suffix name="Sync"/>
  <suffix name="Unknown"/>
  <suffix name="VoiceSearch"/>
  <affected-histogram name="ProductTour.IOSScreens"/>
</histogram_suffixes>

<histogram_suffixes name="IPHDatabase" separator=".">
  <suffix name="AvailabilityStore" label="Availability store."/>
  <suffix name="EventStore" label="Event store."/>
  <affected-histogram name="InProductHelp.Db.Init"/>
  <affected-histogram name="InProductHelp.Db.Load"/>
  <affected-histogram name="InProductHelp.Db.Update"/>
</histogram_suffixes>

<histogram_suffixes name="IPHFeatures" separator=".">
  <suffix name="IPH_BadgedReadingList"
      label="In product help badged reading list."/>
  <suffix name="IPH_Bookmark" label="In product help bookmark."/>
  <suffix name="IPH_BottomToolbarTip" label="In product help bottom toolbar."/>
  <suffix name="IPH_ChromeDuet"
      label="In product help notifying users that their buttons have moved to
             the bottom of the screen."/>
  <suffix name="IPH_ChromeHomeExpand"
      label="In product help for Chrome Home shown on cold start."/>
  <suffix name="IPH_ChromeHomeMenuHeader"
      label="In product help for Chrome Home shown as a header in the app
             menu.">
    <obsolete>
      Unused as of 03/2018
    </obsolete>
  </suffix>
  <suffix name="IPH_ChromeHomePullToRefresh"
      label="In product help for Chrome Home shown after a pull-to-refresh."/>
  <suffix name="IPH_ContextualSearch">
    <obsolete>
      Replaced with IPH_ContextualSearchWebSearch.
    </obsolete>
  </suffix>
  <suffix name="IPH_ContextualSearchOptIn"
      label="In product help for opting-in for contextual search."/>
  <suffix name="IPH_ContextualSearchPanel">
    <obsolete>
      Replaced with IPH_ContextualSearchPromotePanelOpen.
    </obsolete>
  </suffix>
  <suffix name="IPH_ContextualSearchPromotePanelOpen"
      label="In product help for opening the contextual search panel."/>
  <suffix name="IPH_ContextualSearchPromoteTap"
      label="In product help for tap trigger for contextual search."/>
  <suffix name="IPH_ContextualSearchTap">
    <obsolete>
      Replaced with IPH_ContextualSearchPromoteTap.
    </obsolete>
  </suffix>
  <suffix name="IPH_ContextualSearchWebSearch"
      label="In product help for contextual search for users who use web
             search."/>
  <suffix name="IPH_ContextualSuggestions"
      label="In product help for contextual suggestions."/>
  <suffix name="IPH_DataSaverDetail"
      label="In product help data saver detail."/>
  <suffix name="IPH_DataSaverMilestonePromo"
      label="In product help data saver milestone promo."/>
  <suffix name="IPH_DataSaverPreview"
      label="In product help data saver preview."/>
  <suffix name="IPH_DownloadHome" label="In product help download home."/>
  <suffix name="IPH_DownloadInfobarDownloadContinuing"
      label="In product help for donwload infobar to inform that downloads
             are still in progress."/>
  <suffix name="IPH_DownloadInfoBarDownloadsAreFaster"
      label="In product help for download infobar informing that downloads
             are now faster than before."/>
  <suffix name="IPH_DownloadPage" label="In product help download page."/>
  <suffix name="IPH_DownloadPageScreenshot"
      label="In product help download page for screenshot."/>
  <suffix name="IPH_DownloadSettings"
      label="In product help to access download settings from download home."/>
  <suffix name="IPH_HomePageButton" label="In product help home page button."/>
  <suffix name="IPH_HomepageTile" label="In product help homepage tile."/>
  <suffix name="IPH_IncognitoWindow" label="In product help incognito window."/>
  <suffix name="IPH_LongPressToolbarTip"
      label="In product help LongPress toolbar."/>
  <suffix name="IPH_NewIncognitoTabTip"
      label="In product help new incognito tab tip."/>
  <suffix name="IPH_NewTab" label="In product help new tab."/>
  <suffix name="IPH_NewTabPageButton"
      label="In product help new tab page button."/>
  <suffix name="IPH_NewTabTip" label="In product help new tab tip."/>
  <suffix name="IPH_PreviewsOmniboxUI"
      label="In product help for the Previews UI in the Android Omnibox."/>
  <suffix name="IPH_ReopenTab"
      label="In product help for reopening closed tabs."/>
  <suffix name="IPH_TranslateMenuButton"
      label="In product help translate menu button."/>
  <affected-histogram name="InProductHelp.NotifyEventReadyState"/>
  <affected-histogram name="InProductHelp.ShouldTriggerHelpUI"/>
</histogram_suffixes>

<histogram_suffixes name="IPProtocolType" separator="_">
  <suffix name="TCP"/>
  <suffix name="UDP"/>
  <affected-histogram name="WebRTC.PeerConnection.CandidatePairType"/>
  <affected-histogram name="WebRTC.SystemMaxConsecutiveBytesDelayed"/>
  <affected-histogram name="WebRTC.SystemPercentPacketsDelayed"/>
  <affected-histogram name="WebRTC.SystemSendPacketDuration"/>
</histogram_suffixes>

<histogram_suffixes name="IPv6_Probe" separator="_">
  <suffix name="IPv6_probe_done"
      label="with IPv6 probed for and possibly disabled"/>
  <suffix name="IPv6_probe_skipped"
      label="with IPv6 not probed, and default OS settings used"/>
  <affected-histogram name="DNS.PrefetchResolution"/>
</histogram_suffixes>

<histogram_suffixes name="JankyIntervalsPerThirtySeconds" separator=".">
  <suffix name="NonStartup"
      label="Does not include jank in the first 30 seconds [startup]."/>
  <suffix name="Startup"
      label="Only counts jank in the first 30 seconds [startup]."/>
  <affected-histogram
      name="Browser.Responsiveness.JankyIntervalsPerThirtySeconds"/>
</histogram_suffixes>

<histogram_suffixes name="JSDialogs.DialogType" separator=".">
  <suffix name="Alert" label="window.alert() dialog"/>
  <suffix name="BeforeUnload" label="dialog caused by window.onbeforeunload"/>
  <suffix name="Confirm" label="window.confirm() dialog"/>
  <suffix name="Prompt" label="window.prompt() dialog"/>
  <affected-histogram name="JSDialogs.DismissalCause"/>
  <affected-histogram name="JSDialogs.IsForemost"/>
  <affected-histogram name="JSDialogs.OriginRelationship"/>
  <affected-histogram name="JSDialogs.Scheme"/>
  <affected-histogram name="JSDialogs.SiteEngagementOfDialogs"/>
</histogram_suffixes>

<histogram_suffixes name="JSDialogs.EngagementList" separator=".">
  <obsolete>
    Deprecated 2017-10.
  </obsolete>
  <suffix name="EngagementHigher" label="site engagement &gt;= 5"/>
  <suffix name="EngagementLessThanOne" label="site engagement &lt; 1"/>
  <suffix name="EngagementNone" label="site engagement = 0"/>
  <suffix name="EngagementOneToFive" label="site engagement &gt;= 1, &lt; 5"/>
  <affected-histogram name="JSDialogs.CharacterCount"/>
</histogram_suffixes>

<histogram_suffixes name="JSDialogs.FrameType" separator=".">
  <suffix name="MainFrame" label="dialog spawned by the main frame"/>
  <suffix name="Subframe" label="dialog spawned by a subframe"/>
  <affected-histogram name="JSDialogs.CharacterCount"/>
</histogram_suffixes>

<histogram_suffixes name="JSDialogs.LeaveStay" separator=".">
  <obsolete>
    Deprecated 2017-10.
  </obsolete>
  <suffix name="Leave" label="user opted to leave the page"/>
  <suffix name="Stay" label="user opted to stay on the page"/>
  <affected-histogram name="JSDialogs.SiteEngagementOfBeforeUnload"/>
</histogram_suffixes>

<histogram_suffixes name="JSDialogs.UserGestureSinceLoad" separator=".">
  <suffix name="NoUserGestureSinceLoad"/>
  <suffix name="UserGestureSinceLoad"/>
  <affected-histogram name="JSDialogs.CharacterCount"/>
</histogram_suffixes>

<histogram_suffixes name="KeySystemPrefix" separator="." ordering="prefix,2">
  <suffix name="ClearKey" label="Clear Key key system"/>
  <suffix name="Unknown" label="Unknown key system"/>
  <suffix name="Widevine" label="Widevine key system"/>
  <affected-histogram name="Media.EME.addKey"/>
  <affected-histogram name="Media.EME.cancelKeyRequest"/>
  <affected-histogram name="Media.EME.CreateCdm"/>
  <affected-histogram name="Media.EME.CreateCdmTime"/>
  <affected-histogram name="Media.EME.generateKeyRequest"/>
  <affected-histogram name="Media.EME.KeyAdded"/>
  <affected-histogram name="Media.EME.KeyError"/>
  <affected-histogram name="Media.EME.KeyStatusSystemCode"/>
  <affected-histogram name="Media.EME.LibraryCdmAvailable"/>
  <affected-histogram name="Media.EME.SystemCode"/>
  <affected-histogram name="Media.EME.TimeTo"/>
</histogram_suffixes>

<histogram_suffixes name="KeySystemSuffix" separator=".">
  <suffix name="ClearKey" label="Clear Key key system"/>
  <suffix name="Unknown" label="Unknown key system"/>
  <suffix name="Widevine" label="Widevine key system"/>
  <affected-histogram name="Media.EME"/>
</histogram_suffixes>

<histogram_suffixes name="LateBindingExperiment" separator="_">
  <suffix name="disable_late_binding" label="socket late binding is disabled"/>
  <suffix name="enable_late_binding" label="socket late binding is enabled"/>
  <affected-histogram name="Net.SocketIdleTimeBeforeNextUse_ReusedSocket"/>
  <affected-histogram name="Net.SocketIdleTimeBeforeNextUse_UnusedSocket"/>
  <affected-histogram name="Net.SocketIdleTimeOnIOError2_ReusedSocket"/>
  <affected-histogram name="Net.SocketIdleTimeOnIOError2_UnusedSocket"/>
  <affected-histogram name="Net.TCPSocketType"/>
  <affected-histogram name="Net.Transaction_Connected"/>
  <affected-histogram name="Net.Transaction_Connected_Under_10"/>
  <affected-histogram name="Net.TransportSocketRequestTime"/>
  <affected-histogram name="Renderer4.BeginToFinish_LinkLoad"/>
  <affected-histogram name="Renderer4.BeginToFinish_LinkLoadNormal"/>
  <affected-histogram name="Renderer4.BeginToFinish_LinkLoadReload"/>
  <affected-histogram name="Renderer4.BeginToFinish_NormalLoad"/>
  <affected-histogram name="Renderer4.BeginToFinishDoc_LinkLoad"/>
  <affected-histogram name="Renderer4.BeginToFinishDoc_LinkLoadNormal"/>
  <affected-histogram name="Renderer4.BeginToFinishDoc_LinkLoadReload"/>
  <affected-histogram name="Renderer4.BeginToFinishDoc_NormalLoad"/>
  <affected-histogram name="Renderer4.RequestToFinish"/>
  <affected-histogram name="Renderer4.StartToFinish"/>
</histogram_suffixes>

<histogram_suffixes name="LECredentialOps" separator=".">
  <suffix name="Check"/>
  <suffix name="Insert"/>
  <suffix name="Remove"/>
  <suffix name="Reset"/>
  <suffix name="ResetTree"/>
  <suffix name="Sync"/>
  <suffix name="SyncOutcome"/>
  <affected-histogram name="Cryptohome.LECredential"/>
</histogram_suffixes>

<histogram_suffixes name="LECredentialOpsActions" separator=".">
  <suffix name="Backend"/>
  <suffix name="BackendGetLog"/>
  <suffix name="BackendReplayLog"/>
  <suffix name="LoadFromDisk"/>
  <suffix name="SaveToDisk"/>
  <affected-histogram name="Cryptohome.LECredential.Check"/>
  <affected-histogram name="Cryptohome.LECredential.Insert"/>
  <affected-histogram name="Cryptohome.LECredential.Remove"/>
  <affected-histogram name="Cryptohome.LECredential.Reset"/>
  <affected-histogram name="Cryptohome.LECredential.ResetTree"/>
  <affected-histogram name="Cryptohome.LECredential.Sync"/>
</histogram_suffixes>

<histogram_suffixes name="LevelDBBFEMethods" separator=".">
  <owner>cmumford@chromium.org</owner>
  <suffix name="CreateDir" label="ChromiumEnv::CreateDir"/>
  <suffix name="DeleteDir" label="ChromiumEnv::DeleteDir"/>
  <suffix name="DeleteFile" label="ChromiumEnv::DeleteFile"/>
  <suffix name="GetChildren" label="ChromiumEnv::GetChildren"/>
  <suffix name="GetFileSize" label="ChromiumEnv::GetFileSize"/>
  <suffix name="GetTestDirectory" label="ChromiumEnv::GetTestDirectory"/>
  <suffix name="LockFile" label="ChromiumEnv::LockFile"/>
  <suffix name="NewAppendableFile" label="ChromiumEnv::NewAppendableFile"/>
  <suffix name="NewLogger" label="ChromiumEnv::NewLogger"/>
  <suffix name="NewRandomAccessFile" label="ChromiumEnv::NewRandomAccessFile"/>
  <suffix name="NewSequentialFile" label="ChromiumEnv::NewSequentialFile"/>
  <suffix name="NewWritableFile" label="ChromiumEnv::NewWritableFile"/>
  <suffix name="RandomAccessFileRead" label="ChromiumRandomAccessFile::Read"/>
  <suffix name="RenameFile" label="ChromiumEnv::RenameFile"/>
  <suffix name="SequentialFileRead" label="ChromiumSequentialFile::Read"/>
  <suffix name="SequentialFileSkip" label="ChromiumSequentialFile::Skip"/>
  <suffix name="SyncParent" label="ChromiumWritableFile::SyncParent"/>
  <suffix name="UnlockFile" label="ChromiumEnv::UnlockFile"/>
  <suffix name="WritableFileAppend" label="ChromiumWritableFile::Append"/>
  <suffix name="WritableFileClose" label="ChromiumWritableFile::Close"/>
  <suffix name="WritableFileFlush" label="ChromiumWritableFile::Flush"/>
  <suffix name="WritableFileSync" label="ChromiumWritableFile::Sync"/>
  <affected-histogram name="LevelDBEnv.IDB.IOError.BFE"/>
  <affected-histogram name="LevelDBEnv.IOError.BFE"/>
  <affected-histogram name="LevelDBEnv.ServiceWorker.IOError.BFE"/>
  <affected-histogram name="MojoLevelDBEnv.IOError.BFE"/>
  <affected-histogram name="WebCore.IndexedDB.LevelDBOpenErrors.BFE"/>
  <affected-histogram name="WebCore.IndexedDB.LevelDBReadErrors.BFE"/>
  <affected-histogram name="WebCore.IndexedDB.LevelDBWriteErrors.BFE"/>
</histogram_suffixes>

<histogram_suffixes name="LevelDBClients" separator=".">
  <suffix name="BudgetManager"
      label="Database for storing budget information for origins."/>
  <suffix name="CachedImageFetcherDatabase"
      label="Database for CachedImageFetcher metadata."/>
  <suffix name="DomDistillerStore" label="Databases for DomDistillerStore"/>
  <suffix name="DownloadDB" label="Databases for in-progress download."/>
  <suffix name="FeatureEngagementTrackerAvailabilityStore"
      label="Database for FeatureEngagementTracker feature availability."/>
  <suffix name="FeatureEngagementTrackerEventStore"
      label="Database for FeatureEngagementTracker events."/>
  <suffix name="FeedContentDatabase"
      label="Database for Feed content storage."/>
  <suffix name="FeedImageDatabase" label="Databases for Feed Image Loader.">
    <obsolete>
      Deprecated since 11/18.
    </obsolete>
  </suffix>
  <suffix name="FeedJournalDatabase"
      label="Database for Feed journal storage."/>
  <suffix name="FeedStorageDatabase" label="Databases for Feed Storage.">
    <obsolete>
      Deprecated since 08/18.
    </obsolete>
  </suffix>
  <suffix name="GCMKeyStore" label="Databases for GCMKeyStore"/>
  <suffix name="ImageManager" label="Databases for ImageManager"/>
  <suffix name="Metadata" label="Metadata of shared databases"/>
  <suffix name="OfflinePageMetadataStore"
      label="Databases for OfflinePageMetadataStore"/>
  <suffix name="PreviewsHintCacheStore" label="Databases for Previews Hints"/>
  <suffix name="SharedDb" label="Shared database"/>
  <suffix name="UsageReportsBufferBackend"
      label="The result of the first attempt to open the usage reports buffer
             backend database."/>
  <affected-histogram name="LevelDB.ApproximateMemoryUse"/>
  <affected-histogram name="LevelDB.ApproximateMemTableMemoryUse"/>
  <affected-histogram name="LevelDB.Open"/>
  <affected-histogram name="ProtoDB.DestroySuccess"/>
  <affected-histogram name="ProtoDB.GetErrorStatus"/>
  <affected-histogram name="ProtoDB.GetFound"/>
  <affected-histogram name="ProtoDB.GetSuccess"/>
  <affected-histogram name="ProtoDB.InitStatus"/>
  <affected-histogram name="ProtoDB.LoadEntriesSuccess"/>
  <affected-histogram name="ProtoDB.LoadKeysAndEntriesSuccess"/>
  <affected-histogram name="ProtoDB.LoadKeysSuccess"/>
  <affected-histogram name="ProtoDB.UpdateErrorStatus"/>
  <affected-histogram name="ProtoDB.UpdateSuccess"/>
</histogram_suffixes>

<histogram_suffixes name="LevelDBEnvBackupRestore" separator="">
  <obsolete>
    Deprecated 08/2016.
  </obsolete>
  <suffix name="Backup" label="Backing up an ldb file."/>
  <suffix name="Restore" label="Restoring an ldb file."/>
  <affected-histogram name="LevelDBEnv.IDB.Table"/>
  <affected-histogram name="LevelDBEnv.ServiceWorker.Table"/>
  <affected-histogram name="LevelDBEnv.Table"/>
</histogram_suffixes>

<histogram_suffixes name="LevelDBEnvMaxFDs" separator=".">
  <obsolete>
    Deprecated as of September 20, 2017.
  </obsolete>
  <suffix name="OtherError"
      label="This histogram shows the limit when open failed for reasons
             other than exceeding the limit."/>
  <suffix name="Success"
      label="This histogram shows the limit when open succeeded."/>
  <suffix name="TooManyOpened"
      label="This histogram shows the limit when open failed because the
             limit had been reached."/>
  <affected-histogram name="LevelDBEnv.IDB.MaxFDs"/>
  <affected-histogram name="LevelDBEnv.MaxFDs"/>
  <affected-histogram name="LevelDBEnv.ServiceWorker.MaxFDs"/>
</histogram_suffixes>

<histogram_suffixes name="LevelDBEnvPlatformFileErrors" separator="">
  <suffix name="CreateDir" label="ChromiumEnv::CreateDir"/>
  <suffix name="GetChildren" label="ChromiumEnv::GetChildren"/>
  <suffix name="LockFile" label="ChromiumEnv::LockFile"/>
  <suffix name="NewRandomAccessFile" label="ChromiumEnv::NewRandomAccessFile"/>
  <suffix name="RenameFile" label="ChromiumEnv::RenameFile"/>
  <affected-histogram name="LevelDBEnv.IDB.IOError."/>
  <affected-histogram name="LevelDBEnv.IOError."/>
  <affected-histogram name="LevelDBEnv.ServiceWorker.IOError."/>
</histogram_suffixes>

<histogram_suffixes name="LevelDBEnvRetry" separator="">
  <suffix name="CreateDir" label="CreateDir"/>
  <suffix name="LockFile" label="LockFile"/>
  <suffix name="RenameFile" label="RenameFile"/>
  <affected-histogram name="LevelDBEnv.IDB.RetryRecoveredFromErrorIn"/>
  <affected-histogram name="LevelDBEnv.IDB.TimeUntilSuccessFor"/>
  <affected-histogram name="LevelDBEnv.RetryRecoveredFromErrorIn"/>
  <affected-histogram
      name="LevelDBEnv.ServiceWorker.RetryRecoveredFromErrorIn"/>
  <affected-histogram name="LevelDBEnv.ServiceWorker.TimeUntilSuccessFor"/>
  <affected-histogram name="LevelDBEnv.TimeUntilSuccessFor"/>
  <affected-histogram name="MojoLevelDBEnv.RetryRecoveredFromErrorIn"/>
  <affected-histogram name="MojoLevelDBEnv.TimeUntilSuccessFor"/>
</histogram_suffixes>

<histogram_suffixes name="LevelDBEnvRetryTimes" separator="">
  <obsolete>
    Deprecated 2013-04 in favor of LevelDBEnvRetry.
  </obsolete>
  <suffix name="LockFile" label="LockFile"/>
  <suffix name="Rename" label="RenameFile"/>
  <affected-histogram name="LevelDBEnv.IDB.TimeTo"/>
  <affected-histogram name="LevelDBEnv.TimeTo"/>
</histogram_suffixes>

<histogram_suffixes name="LevelDBEnvTypes" separator="." ordering="prefix">
  <suffix name="IDB" label="Restricted to IndexedDB LevelDB environments"/>
  <suffix name="ServiceWorker"
      label="Restricted to ServiceWorker LevelDB environments"/>
  <affected-histogram name="LevelDBEnv.IOError"/>
  <affected-histogram name="LevelDBEnv.IOError."/>
  <affected-histogram name="LevelDBEnv.IOError.BFE"/>
  <affected-histogram name="LevelDBEnv.IOError.NewLogger"/>
  <affected-histogram name="LevelDBEnv.IOError.NewSequentialFile"/>
  <affected-histogram name="LevelDBEnv.IOError.RandomAccessFile"/>
  <affected-histogram name="LevelDBEnv.IOError.WritableFileAppend"/>
  <affected-histogram name="LevelDBEnv.IOError.WritableFileFlush"/>
  <affected-histogram name="LevelDBEnv.LockFileAncestorsNotFound"/>
  <affected-histogram name="LevelDBEnv.MaxFDs"/>
  <affected-histogram name="LevelDBEnv.MissingFiles"/>
  <affected-histogram name="LevelDBEnv.RetryRecoveredFromErrorIn"/>
  <affected-histogram name="LevelDBEnv.Table"/>
  <affected-histogram name="LevelDBEnv.TimeTo"/>
  <affected-histogram name="LevelDBEnv.TimeUntilSuccessFor"/>
</histogram_suffixes>

<histogram_suffixes name="LevelDBSharedCache" separator=".">
  <owner>cmumford@chromium.org</owner>
  <suffix name="Browser"
      label="Cache shared databases whose access pattern is dictated by
             browser code."/>
  <suffix name="InMemory" label="Cache shared all in-memory databases."/>
  <suffix name="Unified" label="Cache shared by both web and browser."/>
  <suffix name="Web"
      label="whose access pattern is directly influenced by Web APIs, like
             Indexed DB, etc."/>
  <affected-histogram name="LevelDB.SharedCache.BytesUsed"/>
  <affected-histogram name="LevelDB.SharedCache.DBCount"/>
  <affected-histogram name="LevelDB.SharedCache.KBUsed"/>
</histogram_suffixes>

<histogram_suffixes name="LiveTabCountMetrics" separator=".">
  <suffix name="ByLiveTabCount.0Tabs"
      label="Recorded with 0 live tabs open in the browser."/>
  <suffix name="ByLiveTabCount.1Tab"
      label="Recorded with 1 live tab open in the browser."/>
  <suffix name="ByLiveTabCount.2Tabs"
      label="Recorded with 2 live tabs open in the browser."/>
  <suffix name="ByLiveTabCount.3To4Tabs"
      label="Recorded with between 3 and 4 live tabs open in the browser."/>
  <suffix name="ByLiveTabCount.5To7Tabs"
      label="Recorded with between 5 and 7 live tabs open in the browser."/>
  <suffix name="ByLiveTabCount.8To19Tabs"
      label="Recorded with between 8 and 19 live tabs open in the browser."/>
  <suffix name="ByLiveTabCount.8To19Tabs"
      label="Recorded with between 20 and 39 live tabs open in the browser."/>
  <suffix name="ByLiveTabCount.40OrMoreTabs"
      label="Recorded with 40 or more live tabs open in the browser."/>
  <affected-histogram
      name="PageLoad.Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"/>
  <affected-histogram name="PageLoad.InteractiveTiming.FirstInputDelay"/>
  <affected-histogram name="PageLoad.InteractiveTiming.FirstInputDelay2"/>
  <affected-histogram name="PageLoad.InteractiveTiming.FirstInputDelay3"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
</histogram_suffixes>

<histogram_suffixes name="LocalNetReqsLocalhostResources" separator=".">
  <suffix base="true" name="Localhost.DbRequests"
      label="Requests made to localhost on a database server port."/>
  <suffix base="true" name="Localhost.DevRequests"
      label="Requests made to localhost on a development server port."/>
  <suffix base="true" name="Localhost.OtherRequests"
      label="Requests made to localhost on any port not otherwise monitored
             by the other local network request metrics."/>
  <suffix base="true" name="Localhost.PrinterRequests"
      label="Requests made to localhost on a printer server port."/>
  <suffix base="true" name="Localhost.WebRequests"
      label="Requests made to localhost on a web server port."/>
  <affected-histogram name="LocalNetworkRequests.PrivatePage"/>
  <affected-histogram name="LocalNetworkRequests.PublicPage"/>
</histogram_suffixes>

<histogram_suffixes name="LocalNetReqsPrivatePage" separator=".">
  <suffix base="true" name="DifferentSubnetRequests"
      label="Requests made to local resources on a different subnet."/>
  <suffix base="true" name="PublicRequests"
      label="Requests made to public resources."/>
  <suffix base="true" name="SameSubnetRequests"
      label="Requests made to local resources on the same reserved IP space
             as the page."/>
  <affected-histogram name="LocalNetworkRequests.PrivatePage"/>
</histogram_suffixes>

<histogram_suffixes name="LocalNetReqsPublicPage" separator=".">
  <suffix base="true" name="PrivateRequests"
      label="Requests made to private resources."/>
  <suffix base="true" name="RouterRequests"
      label="Requests made to resources likely to be routers."/>
  <affected-histogram name="LocalNetworkRequests.PublicPage"/>
</histogram_suffixes>

<histogram_suffixes name="LocalNetReqsStatuses" separator=".">
  <suffix name="Failed" label="Failed requests."/>
  <suffix name="Successful" label="Successful requests."/>
  <affected-histogram
      name="LocalNetworkRequests.PrivatePage.DifferentSubnetRequests"/>
  <affected-histogram
      name="LocalNetworkRequests.PrivatePage.Localhost.DbRequests"/>
  <affected-histogram
      name="LocalNetworkRequests.PrivatePage.Localhost.DevRequests"/>
  <affected-histogram
      name="LocalNetworkRequests.PrivatePage.Localhost.OtherRequests"/>
  <affected-histogram
      name="LocalNetworkRequests.PrivatePage.Localhost.PrinterRequests"/>
  <affected-histogram
      name="LocalNetworkRequests.PrivatePage.Localhost.WebRequests"/>
  <affected-histogram name="LocalNetworkRequests.PrivatePage.PublicRequests"/>
  <affected-histogram
      name="LocalNetworkRequests.PrivatePage.SameSubnetRequests"/>
  <affected-histogram
      name="LocalNetworkRequests.PublicPage.Localhost.DbRequests"/>
  <affected-histogram
      name="LocalNetworkRequests.PublicPage.Localhost.DevRequests"/>
  <affected-histogram
      name="LocalNetworkRequests.PublicPage.Localhost.OtherRequests"/>
  <affected-histogram
      name="LocalNetworkRequests.PublicPage.Localhost.PrinterRequests"/>
  <affected-histogram
      name="LocalNetworkRequests.PublicPage.Localhost.WebRequests"/>
  <affected-histogram name="LocalNetworkRequests.PublicPage.PrivateRequests"/>
  <affected-histogram name="LocalNetworkRequests.PublicPage.RouterRequests"/>
</histogram_suffixes>

<histogram_suffixes name="LocalSiteCharacteristicsFeatures" separator=".">
  <suffix name="AudioUsageInBackground"
      label="A tab played some audio while it was in background."/>
  <suffix name="FaviconUpdateInBackground"
      label="A tab changed its favicon while it was in background."/>
  <suffix name="NotificationsUsageInBackground"
      label="A tab triggered a non-persistent notification while it was in
             background."/>
  <suffix name="TitleUpdateInBackground"
      label="A tab changed its title while it was in background."/>
  <affected-histogram
      name="ResourceCoordinator.LocalDB.ObservationTimeBeforeFirstUse"/>
</histogram_suffixes>

<histogram_suffixes name="LocalStorageContextOpenReasons" separator="">
  <suffix name="CommitErrors" label="After too many commit errors."/>
  <suffix name="InvalidVersion" label="After an invalid version was read."/>
  <suffix name="OpenFailed" label="After opening the DB failed."/>
  <suffix name="ReadVersionError"
      label="After reading the schema version failed."/>
  <affected-histogram name="LocalStorageContext.OpenResultAfter"/>
</histogram_suffixes>

<histogram_suffixes name="LocalStorageSizes" separator="">
  <suffix name="1MBTo5MB" label="DB size between 1MB and 5MB"/>
  <suffix name="100KBTo1MB" label="DB size between 100KB and 1MB"/>
  <suffix name="Under100KB" label="DB size under 100KB"/>
  <affected-histogram name="LocalStorage.BrowserTimeToPrimeLocalStorage"/>
  <affected-histogram name="LocalStorage.MojoTimeToPrimeFor"/>
  <affected-histogram name="LocalStorage.RendererTimeToPrimeLocalStorage"/>
</histogram_suffixes>

<histogram_suffixes name="LocationAttachedStatus" separator=".">
  <suffix name="LocationAttached"
      label="This histogram is for when the location was successfully
             attached to the request."/>
  <suffix name="LocationNotAttached"
      label="This histogram is for when the location was not attached to the
             request. A location may not be attached if it is too old or if
             the permissions do not allow it."/>
  <affected-histogram name="Geolocation.Header.TimeListening.BatterySaving"/>
  <affected-histogram name="Geolocation.Header.TimeListening.GpsOnly"/>
  <affected-histogram name="Geolocation.Header.TimeListening.HighAccuracy"/>
</histogram_suffixes>

<histogram_suffixes name="LocationMode" separator=".">
  <suffix name="BatterySaving"
      label="This histogram is for location mode Battery Saving."/>
  <suffix name="GpsOnly" label="This histogram is for location mode GPS Only."/>
  <suffix name="HighAccuracy"
      label="This histogram is for location mode High Accuracy."/>
  <affected-histogram name="Geolocation.Header.LocationAge"/>
  <affected-histogram name="Geolocation.Header.TimeListening"/>
</histogram_suffixes>

<histogram_suffixes name="LockExistingCachedImage" separator=".">
  <suffix name="Software.EVENTUALLY" label="Eventually bin for software"/>
  <suffix name="Software.NOW" label="Now bin for software"/>
  <suffix name="Software.SOON" label="Soon bin for software"/>
  <affected-histogram name="Renderer4.LockExistingCachedImage"/>
</histogram_suffixes>

<histogram_suffixes name="LockScreenAppDataItemOperation" separator=".">
  <suffix name="DeleteItem"/>
  <suffix name="GetRegisteredItems"/>
  <suffix name="ReadItem"/>
  <suffix name="RegisterItem"/>
  <suffix name="WriteItem"/>
  <affected-histogram
      name="Apps.LockScreen.DataItemStorage.FailedOperationDuration"/>
  <affected-histogram name="Apps.LockScreen.DataItemStorage.OperationDuration"/>
  <affected-histogram name="Apps.LockScreen.DataItemStorage.OperationResult"/>
</histogram_suffixes>

<histogram_suffixes name="LockScreenNoteTakingAppWindowState" separator=".">
  <suffix name="Background"
      label="The app window is in background (behind the lock screen)"/>
  <suffix name="Foreground"
      label="The app window is in foreground (on top of the lock screen)"/>
  <suffix name="TotalActive"
      label="The total amount of time an app window was active on lock screen"/>
  <affected-histogram name="Apps.LockScreen.NoteTakingApp.AppWindowLifeTime"/>
</histogram_suffixes>

<histogram_suffixes name="LowMemoryMargin" separator="_">
  <obsolete>
    Deprecated 12/2017. The low memory margin is a per-platform constant.
  </obsolete>
  <suffix name="0mb" label="Low memory margin set to 0MB"/>
  <suffix name="25mb" label="Low memory margin set to 25MB"/>
  <suffix name="50mb" label="Low memory margin set to 50MB"/>
  <suffix name="100mb" label="Low memory margin set to 100MB"/>
  <suffix name="200mb" label="Low memory margin set to 200MB"/>
  <suffix name="default" label="Low memory margin set to the system default"/>
  <suffix name="off" label="Low memory notification disabled"/>
  <affected-histogram name="Tabs.Discard.DiscardCount"/>
  <affected-histogram name="Tabs.Discard.InitialTime2"/>
  <affected-histogram name="Tabs.Discard.IntervalTime2"/>
  <affected-histogram name="Tabs.Discard.MemAnonymousMB"/>
  <affected-histogram name="Tabs.Discard.MemAvailableMB"/>
  <affected-histogram name="Tabs.Discard.TabCount"/>
  <affected-histogram name="Tabs.SadTab.CrashCreated"/>
  <affected-histogram name="Tabs.SadTab.KillCreated"/>
</histogram_suffixes>

<histogram_suffixes name="MacAudioInputVariants" separator="_">
  <suffix name="HighLatency"
      label="Measures the standard Mac audio driver (i.e. not low-latency)."/>
  <affected-histogram name="Media.Audio.InputStartupSuccessMac"/>
</histogram_suffixes>

<histogram_suffixes name="MachineLearningServiceRequests" separator="."
    ordering="prefix">
  <suffix name="CreateGraphExecutorResult"/>
  <suffix name="ExecuteResult"/>
  <suffix name="LoadModelResult"/>
  <affected-histogram name="MachineLearningService.CpuTimeMicrosec"/>
  <affected-histogram name="MachineLearningService.ElapsedTimeMicrosec"/>
  <affected-histogram name="MachineLearningService.PrivateMemoryDeltaKb"/>
</histogram_suffixes>

<histogram_suffixes name="MainFrameNavigation" separator="_">
  <suffix name="MainFrame" label="Main frame navigation."/>
  <affected-histogram name="ServiceWorker.NavPreload.ConcurrentTime"/>
  <affected-histogram name="ServiceWorker.NavPreload.FinishedFirst"/>
  <affected-histogram name="ServiceWorker.NavPreload.ResponseTime"/>
  <affected-histogram name="ServiceWorker.NavPreload.WorkerPreparationType"/>
  <affected-histogram name="ServiceWorker.NavPreload.WorkerWaitTime"/>
</histogram_suffixes>

<histogram_suffixes name="ManifestProperties" separator=".">
  <suffix name="display"/>
  <suffix name="gcm_sender_id"/>
  <suffix name="icons"/>
  <suffix name="name"/>
  <suffix name="orientation"/>
  <suffix name="short_name"/>
  <suffix name="start_url"/>
  <affected-histogram name="Manifest.HasProperty"/>
</histogram_suffixes>

<histogram_suffixes name="MediaAudioInputControllerTime" separator=".">
  <suffix name="CloseTime" label="Measures the time taken for DoClose()."/>
  <suffix name="CreateTime" label="Measures the time taken for DoCreate()."/>
  <suffix name="RecordTime" label="Measures the time taken for DoRecord()."/>
  <affected-histogram name="Media.AudioInputController"/>
</histogram_suffixes>

<histogram_suffixes name="MediaAudioInputDeviceManagerTime" separator=".">
  <suffix name="EnumerateOnDeviceThreadTime"
      label="Measures the time taken for EnumerateOnDeviceThread()."/>
  <suffix name="OpenOnDeviceThreadTime"
      label="Measures the time taken for OpenOnDeviceThread()."/>
  <affected-histogram name="Media.AudioInputDeviceManager"/>
</histogram_suffixes>

<histogram_suffixes name="MediaAudioOutputControllerTime" separator=".">
  <suffix name="CloseTime" label="Measures the time taken for DoClose()."/>
  <suffix name="CreateTime" label="Measures the time taken for DoCreate()."/>
  <suffix name="DeviceChangeTime"
      label="Measures the time taken for OnDeviceChange()."/>
  <suffix name="PauseTime" label="Measures the time taken for DoPause()."/>
  <suffix name="PlayTime"
      label="Measures the time taken for DoPlay(). Technically only the
             worker method AudioOutputController::PollAndStartIfDataReady()."/>
  <affected-histogram name="Media.AudioOutputController"/>
</histogram_suffixes>

<histogram_suffixes name="MediaBytesReceivedTypes" separator=".">
  <suffix name="EME"
      label="Bytes appended to EME SourceBuffers. Can include either SRC or
             MSE bytes, but is predominantly MSE."/>
  <suffix name="MSE" label="Bytes appended to all MSE SourceBuffers."/>
  <suffix name="SRC" label="Bytes received for the SRC from the network."/>
  <affected-histogram name="Ads.Media.BytesReceived"/>
  <affected-histogram name="Media.BytesReceived"/>
</histogram_suffixes>

<histogram_suffixes name="MediaControlsElements" separator=".">
  <suffix name="CastButton" label="Cast button"/>
  <suffix name="CastOverflowButton" label="Cast overflow button"/>
  <suffix name="CastOverlayButton" label="Cast overlay button"/>
  <suffix name="ClosedCaptionButton" label="Closed caption button"/>
  <suffix name="ClosedCaptionOverflowButton"
      label="Closed caption overflow button"/>
  <suffix name="DisplayCutoutFullscreenButton"
      label="Display cutout fullscreen button"/>
  <suffix name="DownloadButton" label="Download button"/>
  <suffix name="DownloadOverflowButton" label="Download overflow button"/>
  <suffix name="FullscreenButton" label="Fullscreen button"/>
  <suffix name="FullscreenOverflowButton" label="Fullscreen overflow button"/>
  <suffix name="MuteButton" label="Mute button"/>
  <suffix name="MuteOverflowButton" label="Mute overflow button"/>
  <suffix name="OverflowButton" label="Overflow button"/>
  <suffix name="PictureInPictureButton" label="Picture-in-Picture button"/>
  <suffix name="PictureInPictureOverflowButton"
      label="Picture-in-Picture overflow button"/>
  <suffix name="PlayOverlayButton" label="Play overlay button"/>
  <suffix name="PlayPauseButton" label="Play/pause button"/>
  <suffix name="PlayPauseOverflowButton" label="Play/pause overflow button"/>
  <suffix name="TimelineSlider" label="Timeline slider"/>
  <suffix name="VolumeSlider" label="Volume slider"/>
  <affected-histogram name="Media.Controls.CTR"/>
</histogram_suffixes>

<histogram_suffixes name="MediaDecoderType" separator=".">
  <suffix name="HW" label="Platform decoder"/>
  <suffix name="SW" label="Software decoder"/>
  <affected-histogram name="Media.PepperVideoDecoderOutputPictureCount"/>
</histogram_suffixes>

<histogram_suffixes name="MediaElementConfigurations" separator=".">
  <suffix name="FullscreenLandscape"/>
  <suffix name="FullscreenPortrait"/>
  <suffix name="InlineLandscape"/>
  <suffix name="InlinePortrait"/>
  <affected-histogram name="Media.Timeline.Width"/>
</histogram_suffixes>

<histogram_suffixes name="MediaLearningDroppedFrameRatioTask" separator=".">
  <suffix name="BaseTable" label="Basic features, lookup table model"/>
  <suffix name="BaseTree" label="Basic feaetures, ExtraTrees model"/>
  <suffix name="EnhancedTree" label="Basic+extra features, ExtraTrees model"/>
  <affected-histogram
      name="Media.Learning.MediaCapabilities.DroppedFrameRatioTask"/>
</histogram_suffixes>

<histogram_suffixes name="MediaPipelineStatusForStreams" separator=".">
  <suffix name="AudioOnly" label="PipelineStatus for Audio-only streams."/>
  <suffix name="AudioVideo.AV1.SW"
      label="PipelineStatus for AV streams with AV1 software decoder."/>
  <suffix name="AudioVideo.H264.DDS.HW"
      label="PipelineStatus for AV streams with H264 hardware decoder and
             that go through the DecryptingDemuxerStream (DDS)."/>
  <suffix name="AudioVideo.H264.DDS.SW"
      label="PipelineStatus for AV streams with H264 software decoder and
             that go through the DecryptingDemuxerStream (DDS)."/>
  <suffix name="AudioVideo.H264.DVD"
      label="PipelineStatus for AV streams with H264 decoder and that go
             through the DecryptingVideoDecoder (DVD)."/>
  <suffix name="AudioVideo.H264.HW"
      label="PipelineStatus for hardware decoded AV streams with H264
             decoder."/>
  <suffix name="AudioVideo.H264.SW"
      label="PipelineStatus for software decoded AV streams with H264
             decoder."/>
  <suffix name="AudioVideo.Other"
      label="PipelineStatus for the codecs that dont have an explicit metric."/>
  <suffix name="AudioVideo.VP8.DDS.HW"
      label="PipelineStatus for AV streams with VP8 hardware codec and that
             go through the DecryptingDemuxerStream (DDS)."/>
  <suffix name="AudioVideo.VP8.DDS.SW"
      label="PipelineStatus for AV streams with VP8 software codec and that
             go through the DecryptingDemuxerStream (DDS)."/>
  <suffix name="AudioVideo.VP8.DVD"
      label="PipelineStatus for AV streams with VP8 codec and that go through
             the DecryptingVideoDecoder (DVD)."/>
  <suffix name="AudioVideo.VP8.HW"
      label="PipelineStatus for AV streams with VP8 hardware decoder."/>
  <suffix name="AudioVideo.VP8.SW"
      label="PipelineStatus for AV streams with VP8 software decoder."/>
  <suffix name="AudioVideo.VP9.DDS.HW"
      label="PipelineStatus for AV streams with VP9 hardware codec and that
             go through the DecryptingDemuxerStream (DDS)."/>
  <suffix name="AudioVideo.VP9.DDS.SW"
      label="PipelineStatus for AV streams with VP9 codec and that go through
             the DecryptingDemuxerStream (DDS)."/>
  <suffix name="AudioVideo.VP9.DVD"
      label="PipelineStatus for AV streams with VP9 software codec and that
             go through the DecryptingVideoDecoder (DVD)."/>
  <suffix name="AudioVideo.VP9.HW"
      label="PipelineStatus for AV streams with VP9 hardware decoder."/>
  <suffix name="AudioVideo.VP9.SW"
      label="PipelineStatus for AV streams with VP9 software decoder."/>
  <suffix name="Unsupported" label="PipelineStatus for unsupported streams."/>
  <suffix name="VideoOnly" label="PipelineStatus for Video-only streams."/>
  <affected-histogram name="Media.PipelineStatus"/>
</histogram_suffixes>

<histogram_suffixes name="MediaRebufferingCategories" separator=".">
  <suffix name="Audio.EME" label="Metric for EME media with an audio track."/>
  <suffix name="Audio.MSE" label="Metric for MSE media with an audio track."/>
  <suffix name="Audio.SRC" label="Metric for SRC media with an audio track."/>
  <suffix name="AudioVideo.EME"
      label="Metric for EME media with both an audio and video track."/>
  <suffix name="AudioVideo.MSE"
      label="Metric for MSE media with both an audio and video track."/>
  <suffix name="AudioVideo.SRC"
      label="Metric for SRC media with both an audio and video track."/>
  <affected-histogram name="Media.MeanTimeBetweenRebuffers"/>
  <affected-histogram name="Media.RebuffersCount"/>
</histogram_suffixes>

<histogram_suffixes name="MediaRouterSuccess" separator=".">
  <suffix name="Failure" label="Failure"/>
  <suffix name="Success" label="Success"/>
  <affected-histogram name="MediaRouter.Cast.App.Availability"/>
</histogram_suffixes>

<histogram_suffixes name="MediaSessionSource" separator=".">
  <suffix name="Arc" label="ARC++ app"/>
  <suffix name="Web" label="Website"/>
  <affected-histogram name="Media.Session.AudioFocus.Abandon"/>
  <affected-histogram name="Media.Session.AudioFocus.Request"/>
  <affected-histogram name="Media.Session.AudioFocus.Type"/>
</histogram_suffixes>

<histogram_suffixes name="MediaStreamAndDecoderType" separator=".">
  <suffix name="Audio.HW" label="Platform audio decoder"/>
  <suffix name="Audio.SW" label="Software audio decoder"/>
  <suffix name="Video.HW" label="Platform video decoder"/>
  <suffix name="Video.SW" label="Software video decoder"/>
  <affected-histogram name="Media.MSE.CodecChangeTime"/>
</histogram_suffixes>

<histogram_suffixes name="MediaTimelineWidths" separator=".">
  <suffix name="32_47"/>
  <suffix name="48_79"/>
  <suffix name="80_127"/>
  <suffix name="128_255"/>
  <suffix name="256_511"/>
  <suffix name="512_inf"/>
  <affected-histogram name="Media.Timeline.DragGestureDuration"/>
  <affected-histogram name="Media.Timeline.DragPercent"/>
  <affected-histogram name="Media.Timeline.DragSumAbsTimeDelta"/>
  <affected-histogram name="Media.Timeline.DragTimeDelta"/>
  <affected-histogram name="Media.Timeline.SeekType"/>
</histogram_suffixes>

<histogram_suffixes name="MediaVideoCaptureManagerTime" separator=".">
  <suffix name="GetAvailableDevicesInfoOnDeviceThreadTime"
      label="Measures the time taken to enumerate devices and their
             capabilities, between EnumerateDevices() and
             OnDevicesInfoEnumerated()."/>
  <suffix name="StartDeviceTime"
      label="Measures the time taken for DoStartDeviceOnDeviceThread()."/>
  <suffix name="StopDeviceTime"
      label="Measures the time taken for DoStopDeviceOnDeviceThread()."/>
  <affected-histogram name="Media.VideoCaptureManager"/>
</histogram_suffixes>

<histogram_suffixes name="MediaVideoCategories" separator=".">
  <suffix name="All" label="All media with a video track."/>
  <suffix name="EME" label="EME media with a video track."/>
  <suffix name="MSE" label="MSE media with a video track."/>
  <suffix name="SRC" label="SRC media with a video track."/>
  <affected-histogram name="Media.VideoHeight.Initial"/>
</histogram_suffixes>

<histogram_suffixes name="MediaWatchTimeCategories" separator=".">
  <suffix name="Audio.AC"
      label="Watch time for all media with only an audio track on AC power."/>
  <suffix name="Audio.All"
      label="Watch time for all media with only an audio track."/>
  <suffix name="Audio.Background.AC"
      label="Background watch time for all media with only an audio track on
             AC power."/>
  <suffix name="Audio.Background.All"
      label="Background watch time for all media with only an audio track."/>
  <suffix name="Audio.Background.Battery"
      label="Background watch time for all media with only an audio track on
             battery power."/>
  <suffix name="Audio.Background.EmbeddedExperience"
      label="Background watch time for downloaded media on Android with only
             an audio track."/>
  <suffix name="Audio.Background.EME"
      label="Background watch time for EME media with only an audio track."/>
  <suffix name="Audio.Background.MSE"
      label="Background watch time for MSE media with only an audio track."/>
  <suffix name="Audio.Background.SRC"
      label="Background watch time for SRC media with only an audio track."/>
  <suffix name="Audio.Battery"
      label="Watch time for all media with only an audio track on battery
             power."/>
  <suffix name="Audio.Discarded.EME"
      label="Watch time less than 7 seconds for EME media with only an audio
             track."/>
  <suffix name="Audio.Discarded.MSE"
      label="Watch time less than 7 seconds for MSE media with only an audio
             track."/>
  <suffix name="Audio.Discarded.SRC"
      label="Watch time less than 7 seconds for SRC media with only an audio
             track."/>
  <suffix name="Audio.EmbeddedExperience"
      label="Watch time for downloaded media on Android with only an audio
             track."/>
  <suffix name="Audio.EME"
      label="Watch time for EME media with only an audio track."/>
  <suffix name="Audio.MSE"
      label="Watch time for MSE media with only an audio track."/>
  <suffix name="Audio.NativeControlsOff"
      label="Watch time for all media with only an audio track not using
             native controls."/>
  <suffix name="Audio.NativeControlsOn"
      label="Watch time for all media with only an audio track using native
             controls."/>
  <suffix name="Audio.SRC"
      label="Watch time for SRC media with only an audio track."/>
  <suffix name="AudioVideo.AC"
      label="Watch time for all media with both an audio and video track on
             AC power."/>
  <suffix name="AudioVideo.All"
      label="Watch time for all media with both an audio and video track."/>
  <suffix name="AudioVideo.Background.AC"
      label="Background watch time for all media with both an audio and video
             track on AC power."/>
  <suffix name="AudioVideo.Background.All"
      label="Background watch time for all media with both an audio and video
             track."/>
  <suffix name="AudioVideo.Background.Battery"
      label="Background watch time for all media with both an audio and video
             track on battery power."/>
  <suffix name="AudioVideo.Background.EmbeddedExperience"
      label="Background watch time for downloaded media on Android with both
             an audio and video track."/>
  <suffix name="AudioVideo.Background.EME"
      label="Background watch time for EME media with both an audio and video
             track."/>
  <suffix name="AudioVideo.Background.MSE"
      label="Background watch time for MSE media with both an audio and video
             track."/>
  <suffix name="AudioVideo.Background.SRC"
      label="Background watch time for SRC media with both an audio and video
             track."/>
  <suffix name="AudioVideo.Battery"
      label="Watch time for all media with both an audio and video track on
             battery power."/>
  <suffix name="AudioVideo.Discarded.EME"
      label="Watch time less than 7 seconds for EME media with only with both
             an audio and video track."/>
  <suffix name="AudioVideo.Discarded.MSE"
      label="Watch time less than 7 seconds for MSE media with only with both
             an audio and video track."/>
  <suffix name="AudioVideo.Discarded.SRC"
      label="Watch time less than 7 seconds for SRC media with with both an
             audio and video track."/>
  <suffix name="AudioVideo.DisplayFullscreen"
      label="Watch time for all media with both an audio and video track
             displayed in fullscreen."/>
  <suffix name="AudioVideo.DisplayInline"
      label="Watch time for all media with both an audio and video track
             displayed inline."/>
  <suffix name="AudioVideo.DisplayPictureInPicture"
      label="Watch time for all media with both an audio and video track
             displayed in picture-in-picture."/>
  <suffix name="AudioVideo.EmbeddedExperience"
      label="Watch time for downloaded media on Android with both an audio
             and video track."/>
  <suffix name="AudioVideo.EME"
      label="Watch time for EME media with both an audio and video track."/>
  <suffix name="AudioVideo.MSE"
      label="Watch time for MSE media with both an audio and video track."/>
  <suffix name="AudioVideo.Muted.All"
      label="Muted watch time for all media with both an audio and video
             track."/>
  <suffix name="AudioVideo.Muted.EME"
      label="Muted watch time for EME media with both an audio and video
             track."/>
  <suffix name="AudioVideo.Muted.MSE"
      label="Muted watch time for MSE media with both an audio and video
             track."/>
  <suffix name="AudioVideo.Muted.SRC"
      label="Muted watch time for SRC media with both an audio and video
             track."/>
  <suffix name="AudioVideo.NativeControlsOff"
      label="Watch time for all media with both an audio and video track not
             using native controls."/>
  <suffix name="AudioVideo.NativeControlsOn"
      label="Watch time for all media with both an audio and video track
             using native controls."/>
  <suffix name="AudioVideo.SRC"
      label="Watch time for SRC media with both an audio and video track."/>
  <affected-histogram name="Media.WatchTime"/>
</histogram_suffixes>

<histogram_suffixes name="MediaWMPIMemoryUsage" separator=".">
  <suffix name="Audio"/>
  <suffix name="DataSource"/>
  <suffix name="Demuxer"/>
  <suffix name="Video"/>
  <affected-histogram name="Media.WebMediaPlayerImpl.Memory"/>
</histogram_suffixes>

<histogram_suffixes name="MemoryFDsAllProcesses" separator="."
    ordering="prefix">
  <suffix name="Browser" label="Browser process"/>
  <suffix name="Chrome" label="chrome:// renderer process"/>
  <suffix name="Extension" label="Extension process"/>
  <suffix name="Gpu" label="GPU process"/>
  <suffix name="NativeClient" label="Native client process"/>
  <suffix name="NativeClientBroker" label="Native client broker process"/>
  <suffix name="PeperPlugin" label="Pepper plugin process"/>
  <suffix name="PepperPluginBroker" label="Pepper plugin broker process"/>
  <suffix name="Renderer" label="Renderer process"/>
  <suffix name="RendererAll" label="Renderer process"/>
  <suffix name="SandboxHelper" label="Sandbox helper process"/>
  <suffix name="Utility" label="Utility process"/>
  <suffix name="Zygote" label="Zygot process"/>
  <affected-histogram name="Memory.OpenFDs"/>
</histogram_suffixes>

<histogram_suffixes name="MemoryFDsBroswerGpuAndRendererProcess" separator="."
    ordering="prefix">
  <suffix name="Browser" label="Browser process"/>
  <suffix name="Gpu" label="GPU process"/>
  <suffix name="RendererAll" label="Renderer process"/>
  <affected-histogram name="Memory.OpenFDsSoftLimit"/>
</histogram_suffixes>

<histogram_suffixes name="MemoryStateTransition" separator=".">
  <suffix name="NormalToSuspended"/>
  <suffix name="NormalToThrottled"/>
  <suffix name="SuspendedToNormal"/>
  <suffix name="SuspendedToThrottled"/>
  <suffix name="ThrottledToNormal"/>
  <suffix name="ThrottledToSuspended"/>
  <affected-histogram name="Memory.Coordinator.StateDuration"/>
  <affected-histogram name="Memory.Coordinator.TotalPrivate"/>
</histogram_suffixes>

<histogram_suffixes name="Mobile.DefaultBrowser.SystemDefaultBrowser.Type"
    separator=".">
  <suffix name="ChromeNotSystem"
      label="Chrome is not a system installed browser."/>
  <suffix name="ChromeSystem" label="Chrome is a system installed browser."/>
  <affected-histogram name="Mobile.DefaultBrowser.SystemBrowserCount"/>
</histogram_suffixes>

<histogram_suffixes name="Mobile.DefaultBrowser.Type" separator=".">
  <suffix name="ChromeDefault" label="Chrome is the default browser."/>
  <suffix name="NoDefault" label="There is no default browser."/>
  <suffix name="OtherDefault" label="Another browser is the default browser."/>
  <affected-histogram name="Mobile.DefaultBrowser.BrowserCount"/>
</histogram_suffixes>

<histogram_suffixes name="MobileDownloadBytesDownloadedTypes" separator=".">
  <suffix name="ChromeNetworkStack.Failure"/>
  <suffix name="ChromeNetworkStack.Success"/>
  <suffix name="DownloadManager.Failure"/>
  <suffix name="DownloadManager.Success"/>
  <affected-histogram name="MobileDownload.BytesDownloaded"/>
</histogram_suffixes>

<histogram_suffixes name="MobileDownloadBytesWastedTypes" separator=".">
  <suffix name="Cancel" label="Recorded upon download Cancel."/>
  <suffix name="Failure" label="Recorded upon download failure."/>
  <suffix name="Success" label="Recorded upon download success."/>
  <affected-histogram name="MobileDownload.BytesWasted.ChromeNetworkStack"/>
</histogram_suffixes>

<histogram_suffixes name="MobileDownloadDownloadTimeTypes" separator=".">
  <suffix name="ChromeNetworkStack.Cancel"/>
  <suffix name="ChromeNetworkStack.Failure"/>
  <suffix name="ChromeNetworkStack.Success"/>
  <suffix name="DownloadManager.Failure"/>
  <suffix name="DownloadManager.Success"/>
  <affected-histogram name="MobileDownload.DownloadTime"/>
</histogram_suffixes>

<histogram_suffixes name="MobileDownloadInterruptionsCountTypes" separator=".">
  <suffix name="ChromeNetworkStack.Cancel"/>
  <suffix name="ChromeNetworkStack.Failure"/>
  <suffix name="ChromeNetworkStack.Success"/>
  <affected-histogram name="MobileDownload.InterruptionsCount"/>
</histogram_suffixes>

<histogram_suffixes name="MobileDownloadResumptionsCountTypes" separator=".">
  <suffix name="Automatic"/>
  <suffix name="Manual"/>
  <suffix name="Total"/>
  <affected-histogram name="MobileDownload.ResumptionsCount"/>
</histogram_suffixes>

<histogram_suffixes name="MobileFreEntryType" separator=".">
  <suffix name="MainIntent" label="Icon click"/>
  <suffix name="ViewIntent" label="VIEW intent"/>
  <affected-histogram name="MobileFre.Progress"/>
</histogram_suffixes>

<histogram_suffixes name="MobileFreSignInChoiceEntryType" separator=".">
  <obsolete>
    Removed from code as of 08/2016.
  </obsolete>
  <suffix name="MainIntent" label="Icon click"/>
  <suffix name="ViewIntent" label="VIEW intent"/>
  <affected-histogram name="MobileFre.SignInChoice"/>
</histogram_suffixes>

<histogram_suffixes name="MobileFreSignInChoiceNumberOfAccounts" separator=".">
  <obsolete>
    Removed from code as of 08/2016.
  </obsolete>
  <suffix name="ManyAccounts" label="Two or more accounts"/>
  <suffix name="OneAccount" label="One account"/>
  <suffix name="ZeroAccounts" label="Zero accounts"/>
  <affected-histogram name="MobileFre.SignInChoice.MainIntent"/>
  <affected-histogram name="MobileFre.SignInChoice.ViewIntent"/>
</histogram_suffixes>

<histogram_suffixes name="ModuleIntegrityVerificationType" separator=".">
  <suffix name="WithByteSet"
      label="The version of the Module Integrity Verifier that uses a hash set
             to track relocations.">
    <obsolete>
      Deprecated and removed from code as of 05/2015.
    </obsolete>
  </suffix>
  <suffix name="WithoutByteSet"
      label="The version of the Module Integrity Verifier that doesn't use a
             hash set to track relocations."/>
  <affected-histogram name="ModuleIntegrityVerification.BytesModified"/>
  <affected-histogram name="ModuleIntegrityVerification.Difference"/>
</histogram_suffixes>

<histogram_suffixes name="MultiTabLoading" separator=".">
  <obsolete>
    Removed from code as of 03/2018.
  </obsolete>
  <suffix name="MultiTabLoading" label="There were multiple loading tabs."/>
  <affected-histogram
      name="Net.ResourceDispatcherHost.PeakOutstandingRequests"/>
</histogram_suffixes>

<histogram_suffixes name="NativeWindowVisibility" separator=".">
  <suffix name="Hidden"
      label="The native window is not visible because it is in a minimized
             window"/>
  <suffix name="Occluded"
      label="The native window is fully covered by other windows"/>
  <suffix name="Visible"
      label="The native window is visible or partially visible."/>
  <affected-histogram name="Windows.NativeWindowVisibility"/>
</histogram_suffixes>

<histogram_suffixes name="NatType" separator=".">
  <suffix name="NoNAT"/>
  <suffix name="NonSymNAT"/>
  <suffix name="SymNAT"/>
  <suffix name="UnknownNAT"/>
  <affected-histogram name="WebRTC.Stun.BatchSuccessPercent"/>
  <affected-histogram name="WebRTC.Stun.ResponseLatency"/>
  <affected-histogram name="WebRTC.Stun.SuccessPercent"/>
</histogram_suffixes>

<histogram_suffixes name="NavigationCharacteristic" separator="_">
  <suffix name="ExistingRenderer_BeforeUnloadDiscounted"
      label="Navigation reused an existing renderer process. Time spent in
             beforeunload subtracted."/>
  <suffix name="NewRenderer_BeforeUnloadDiscounted"
      label="Navigation spawned a new renderer process. Time spent in
             beforeunload subtracted."/>
  <suffix name="SessionRestored"
      label="Navigation caused by restoring a tab from a previous session
             (whether from a crash or a continued session) either spawning or
             reusing a renderer. Time spent in beforeunload subtracted.">
    <obsolete>
      Replaced by the likely named entry. It had a misleading name as it also
      has the before-unload time discounted.
    </obsolete>
  </suffix>
  <suffix name="SessionRestored_BeforeUnloadDiscounted"
      label="Navigation caused by restoring a tab from a previous session
             (whether from a crash or a continued session) either spawning or
             reusing a renderer. Time spent in beforeunload subtracted."/>
  <affected-histogram name="Navigation.TimeToCommit"/>
  <affected-histogram name="Navigation.TimeToURLJobStart"/>
</histogram_suffixes>

<histogram_suffixes name="NavigationFrameType" separator=".">
  <suffix name="MainFrame" label="Navigation in the main frame."/>
  <suffix name="Subframe" label="Navigation in a subframe."/>
  <affected-histogram name="Navigation.StartToCommit"/>
  <affected-histogram name="Navigation.StartToCommit.CrossProcess"/>
  <affected-histogram name="Navigation.StartToCommit.SameProcess"/>
  <affected-histogram name="Navigation.TimeToReadyToCommit"/>
  <affected-histogram name="Navigation.TimeToReadyToCommit2"/>
</histogram_suffixes>

<histogram_suffixes name="NavigationPredictor.DSEAffix" separator="."
    ordering="prefix">
  <suffix name="OnDSE"
      label="Recorded only for pages whose URL matches the URL of the search
             results page of the user's default search engine."/>
  <suffix name="OnNonDSE"
      label="Recorded only for pages whose URL does not match the URL of the
             search results page of the user's default search engine."/>
  <affected-histogram name="NavigationPredictor.AccuracyActionTaken"/>
  <affected-histogram name="NavigationPredictor.ActionTaken"/>
</histogram_suffixes>

<histogram_suffixes name="NavigationPreloadEnabled" separator="_">
  <suffix name="NavigationPreloadEnabled" label="Navigation preload occurred."/>
  <affected-histogram
      name="ServiceWorker.ActivatedWorkerPreparationForMainFrame.Time"/>
  <affected-histogram
      name="ServiceWorker.ActivatedWorkerPreparationForMainFrame.Time_StartWorkerExistingProcess">
    <obsolete>
      Deprecated as of June 2017, in favor of
      ServiceWorker.ActivatedWorkerPreparationForMainFrame.Time_WorkerStartOccurred_NavigationPreloadEnabled.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="ServiceWorker.ActivatedWorkerPreparationForMainFrame.Time_WorkerStartOccurred"/>
  <affected-histogram
      name="ServiceWorker.ActivatedWorkerPreparationForMainFrame.Type"/>
</histogram_suffixes>

<histogram_suffixes name="NavigationPreloadOrWorkerFirst" separator="_">
  <obsolete>
    Deprecated as of June 2017.
  </obsolete>
  <suffix name="NavPreloadFirst"
      label="The navigation preload response arrived before the service
             worker finished preparing."/>
  <suffix name="SWStartFirst"
      label="The service worker finished preparing before the navigation
             preload response arrived."/>
  <affected-histogram name="ServiceWorker.NavigationPreload.ConcurrentTime"/>
</histogram_suffixes>

<histogram_suffixes name="NavigationProcessType" separator=".">
  <suffix name="CrossProcess" label="Cross process navigation."/>
  <suffix name="SameProcess" label="Same process navigation."/>
  <affected-histogram name="Navigation.StartToCommit"/>
  <affected-histogram name="Navigation.TimeToReadyToCommit"/>
  <affected-histogram name="Navigation.TimeToReadyToCommit2"/>
</histogram_suffixes>

<histogram_suffixes name="NavigationType" separator=".">
  <suffix name="ExistingPageBrowserInitiated"
      label="existing page browser-initiated navigation"/>
  <suffix name="ExistingPageDifferentDocumentIntendedAsNew"
      label="existing page navigation which is intended as new"/>
  <suffix name="ExistingPageDifferentDocumentRendererInitiated"
      label="existing page renderer-initiated navigation"/>
  <suffix name="ExistingPageRestoredBrowserInitiated"
      label="existing page browser-initiated navigation which is restored"/>
  <suffix name="ExistingPageSameDocumentBrowserInitiated"
      label="in-document existing page browser-initiated navigation"/>
  <suffix name="ExistingPageSameDocumentIntendedAsNew"
      label="in-document existing page navigation which is intended as new"/>
  <suffix name="ExistingPageSameDocumentRendererInitiated"
      label="in-document existing page renderer-initiated navigation"/>
  <suffix name="ExistingPageSameDocumentRestoredBrowserInitiated"
      label="in-document existing page browser-initiated navigation which is
             restored"/>
  <suffix name="NewPageInPage" label="in-document new page navigation"/>
  <suffix name="NewPageInPageOriginMismatch"
      label="in-document new page navigation with a non-matching origin"/>
  <suffix name="NewPageNoMatchingEntry"
      label="new page navigation with no matching entry"/>
  <suffix name="NewPagePendingEntryMatches"
      label="new page navigation which found a pending entry"/>
  <suffix name="NewSubFrame" label="new subframe navigation"/>
  <suffix name="SamePage" label="same page navigation"/>
  <affected-histogram name="Navigation.SecureSchemeHasSSLStatus"/>
</histogram_suffixes>

<histogram_suffixes name="NavigationTypeTiming" separator=".">
  <suffix name="BackForward" label="History (back/forward) navigation"/>
  <suffix name="BackgroundProcessPriority"
      label="process priority = background"/>
  <suffix name="ForegroundProcessPriority"
      label="process priority = foreground"/>
  <suffix name="NewNavigation" label="New navigation"/>
  <suffix name="Reload" label="Reload"/>
  <affected-histogram name="Navigation.IsSameProcess"/>
  <affected-histogram name="Navigation.ReadyToCommitUntilCommit"/>
  <affected-histogram name="Navigation.ReadyToCommitUntilCommit2"/>
  <affected-histogram name="Navigation.Renderer.ReadyToCommitUntilCommit"/>
  <affected-histogram name="Navigation.StartToCommit"/>
  <affected-histogram name="Navigation.StartToCommit.CrossProcess"/>
  <affected-histogram name="Navigation.StartToCommit.CrossProcess.MainFrame"/>
  <affected-histogram name="Navigation.StartToCommit.CrossProcess.Subframe"/>
  <affected-histogram name="Navigation.StartToCommit.MainFrame"/>
  <affected-histogram name="Navigation.StartToCommit.SameProcess"/>
  <affected-histogram name="Navigation.StartToCommit.SameProcess.MainFrame"/>
  <affected-histogram name="Navigation.StartToCommit.SameProcess.Subframe"/>
  <affected-histogram name="Navigation.StartToCommit.Subframe"/>
  <affected-histogram name="Navigation.TimeToReadyToCommit"/>
  <affected-histogram name="Navigation.TimeToReadyToCommit.CrossProcess"/>
  <affected-histogram name="Navigation.TimeToReadyToCommit.MainFrame"/>
  <affected-histogram name="Navigation.TimeToReadyToCommit.SameProcess"/>
  <affected-histogram name="Navigation.TimeToReadyToCommit.Subframe"/>
  <affected-histogram name="Navigation.TimeToReadyToCommit2"/>
  <affected-histogram name="Navigation.TimeToReadyToCommit2.CrossProcess"/>
  <affected-histogram name="Navigation.TimeToReadyToCommit2.MainFrame"/>
  <affected-histogram name="Navigation.TimeToReadyToCommit2.SameProcess"/>
  <affected-histogram name="Navigation.TimeToReadyToCommit2.Subframe"/>
</histogram_suffixes>

<histogram_suffixes name="Net.BidirectionalStreamExperiment" separator=".">
  <suffix name="HTTP2" label="Bidirectional stream that use HTTP2 protocol"/>
  <owner>mef@chromium.org</owner>
  <owner>pauljensen@chromium.org</owner>
  <suffix name="QUIC" label="Bidirectional streams that use QUIC protocol"/>
  <affected-histogram name="Net.BidirectionalStream.ReceivedBytes"/>
  <affected-histogram name="Net.BidirectionalStream.SentBytes"/>
  <affected-histogram name="Net.BidirectionalStream.TimeToReadEnd"/>
  <affected-histogram name="Net.BidirectionalStream.TimeToReadStart"/>
  <affected-histogram name="Net.BidirectionalStream.TimeToSendEnd"/>
  <affected-histogram name="Net.BidirectionalStream.TimeToSendStart"/>
</histogram_suffixes>

<histogram_suffixes name="Net.DNS.AddressFamily" separator=".">
  <suffix name="IPV4" label="Requests for ADDRESS_FAMILY_IPV4."/>
  <suffix name="IPV6" label="Requests for ADDRESS_FAMILY_IPV6."/>
  <suffix name="UNSPEC" label="Requests for ADDRESS_FAMILY_UNSPEC."/>
  <affected-histogram name="Net.DNS.ResolveFailureTime"/>
  <affected-histogram name="Net.DNS.ResolveSuccessTime"/>
</histogram_suffixes>

<histogram_suffixes name="Net.DNS.Priorities" separator=".">
  <suffix name="HIGHEST" label="Jobs with priority HIGHEST."/>
  <suffix name="IDLE" label="Jobs with priority IDLE."/>
  <suffix name="LOW" label="Jobs with priority LOW."/>
  <suffix name="LOWEST" label="Jobs with priority LOWEST."/>
  <suffix name="MEDIUM" label="Jobs with priority MEDIUM."/>
  <suffix name="THROTTLED" label="Jobs with priority THROTTLED."/>
  <affected-histogram name="Net.DNS.JobQueueTime"/>
  <affected-histogram name="Net.DNS.JobQueueTimeAfterChange"/>
</histogram_suffixes>

<histogram_suffixes name="Net.DNS.Speculative" separator=".">
  <obsolete>
    Deprecated 02/2018.
  </obsolete>
  <suffix name="Speculative" label="Speculative resolutions only."/>
  <affected-histogram name="Net.DNS.ResolveFailureTime"/>
  <affected-histogram name="Net.DNS.ResolveSuccessTime"/>
  <affected-histogram name="Net.DNS.TotalTime"/>
  <affected-histogram name="Net.DNS.TotalTimeNotCached"/>
</histogram_suffixes>

<histogram_suffixes name="Net.HttpJob.TotalTimeSuccess.Priorities"
    separator=".">
  <suffix name="Priority0" label="THROTTLED or MINIMUM_PRIORITY"/>
  <suffix name="Priority1" label="IDLE"/>
  <suffix name="Priority2" label="LOWEST or DEFAULT_PRIORITY"/>
  <suffix name="Priority3" label="LOW"/>
  <suffix name="Priority4" label="MEDIUM"/>
  <suffix name="Priority5" label="HIGHEST or MAXIMUM_PRIORITY"/>
  <affected-histogram name="Net.HttpJob.TotalTimeSuccess"/>
  <affected-histogram name="ResourceScheduler.RequestQueuingDuration"/>
</histogram_suffixes>

<histogram_suffixes name="Net.QuicClientHelloRejectReasons.QuicIsSecureOrNot"
    separator=".">
  <owner>rch@chromium.org</owner>
  <suffix name="Insecure" label="for insecure QUIC.">
    <obsolete>
      Deprecated and removed from code as of 10/2015.
    </obsolete>
  </suffix>
  <suffix name="Secure" label="for secure QUIC."/>
  <suffix name="TooMany"
      label="for secure QUIC when there were too many rejects."/>
  <affected-histogram name="Net.QuicClientHelloRejectReasons"/>
</histogram_suffixes>

<histogram_suffixes name="Net.QuicSession.21CumulativePackets" separator="_">
  <owner>rch@chromium.org</owner>
  <suffix name="First21"
      label="Only the first group of 21 packets in a connection via"/>
  <suffix name="Some21s"
      label="After the first 21, this records data for some groups of 21
             consecutive sequence nmubers, arriving via."/>
  <affected-histogram name="Net.QuicSession.21CumulativePacketsReceived"/>
</histogram_suffixes>

<histogram_suffixes name="Net.QuicSession.6PacketPatterns" separator="_">
  <owner>rch@chromium.org</owner>
  <suffix name="First6"
      label="Only the first group of 6 packets in a connection via"/>
  <suffix name="Some6s"
      label="After the first 6, this records patterns for some groups of 6
             consecutive sequence numbers, arriving via."/>
  <affected-histogram name="Net.QuicSession.6PacketsPatternsReceived"/>
</histogram_suffixes>

<histogram_suffixes name="Net.QuicSession.PacketReceived" separator="_">
  <owner>rch@chromium.org</owner>
  <suffix name="Ack"
      label="Only packets that were received by Chrome as well being part of
             connections via"/>
  <suffix name="IsAnAck"
      label="Only packets that were probably solo ACK packets when received
             by Chrome as well being part of connections via"/>
  <suffix name="IsNotAck"
      label="Only packets that were probably NOT solo ACK packets when
             received by Chrome as well being part of connections via"/>
  <suffix name="Nack"
      label="Only packets that were missed by Chrome as well being part of
             connections via"/>
  <affected-histogram name="Net.QuicSession.PacketReceived"/>
</histogram_suffixes>

<histogram_suffixes name="Net.QuicSession.PacketReceived_CONNECTION_TYPE"
    separator="_">
  <suffix name="CONNECTION_2G" label="mobile 2G are tallied."/>
  <suffix name="CONNECTION_3G" label="mobile 3G are tallied."/>
  <suffix name="CONNECTION_4G" label="mobile 4G are tallied."/>
  <suffix name="CONNECTION_BLUETOOTH"
      label="Bluetooth are tallied, but this may include connections to a
             mobile hotspot."/>
  <suffix name="CONNECTION_ETHERNET"
      label="ethernet are tallied, but this may include connections to a WiFi
             bridge."/>
  <suffix name="CONNECTION_NONE"
      label="NO(?) network are tallied (should be empty)."/>
  <owner>rch@chromium.org</owner>
  <suffix name="CONNECTION_UNKNOWN" label="WiFi are tallied."/>
  <suffix name="CONNECTION_WIFI"
      label="WiFi are tallied, but this may include connections to a mobile
             hotspot. Also check similar histograms that end in WIFI_802.11*
             for more details on some platforms."/>
  <suffix name="CONNECTION_WIFI_802.11a" label="802.11a are tallied."/>
  <suffix name="CONNECTION_WIFI_802.11b" label="802.11b are tallied."/>
  <suffix name="CONNECTION_WIFI_802.11g" label="802.11g are tallied."/>
  <suffix name="CONNECTION_WIFI_802.11n" label="802.11n are tallied."/>
  <suffix name="CONNECTION_WIFI_ANCIENT"
      label="802.11 that are no longer standard are tallied."/>
  <affected-histogram
      name="Net.QuicSession.21CumulativePacketsReceived_First21"/>
  <affected-histogram
      name="Net.QuicSession.21CumulativePacketsReceived_Some21s"/>
  <affected-histogram name="Net.QuicSession.6PacketsPatternsReceived_First6"/>
  <affected-histogram name="Net.QuicSession.6PacketsPatternsReceived_Some6s"/>
  <affected-histogram name="Net.QuicSession.PacketLossRate"/>
  <affected-histogram name="Net.QuicSession.PacketReceived_Ack"/>
  <affected-histogram name="Net.QuicSession.PacketReceived_IsAnAck"/>
  <affected-histogram name="Net.QuicSession.PacketReceived_IsNotAck"/>
  <affected-histogram name="Net.QuicSession.PacketReceived_Nack"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity" separator=".">
  <suffix name="53.1K" label="1K bytes of data on port 53."/>
  <suffix name="53.1K.NoProxy"
      label="1K bytes of data on port 53 with no proxy."/>
  <suffix name="53.1K.RTT" label="1K bytes of data on port 53 successfully."/>
  <suffix name="53.1K.RTT.NoProxy"
      label="1K bytes of data on port 53 successfully with no proxy."/>
  <suffix name="53.100B" label="100 bytes of data on port 53."/>
  <suffix name="53.100B.NoProxy"
      label="100 bytes of data on port 53 with no proxy."/>
  <suffix name="53.100B.RTT"
      label="100 bytes of data on port 53 successfully."/>
  <suffix name="53.100B.RTT.NoProxy"
      label="100 bytes of data on port 53 successfully with no proxy."/>
  <suffix name="80.1K" label="1K bytes of data on port 80."/>
  <suffix name="80.1K.NoProxy"
      label="1K bytes of data on port 80 with no proxy."/>
  <suffix name="80.1K.RTT" label="1K bytes of data on port 80 successfully."/>
  <suffix name="80.1K.RTT.NoProxy"
      label="1K bytes of data on port 80 successfully with no proxy."/>
  <suffix name="80.100B" label="100 bytes of data on port 80."/>
  <suffix name="80.100B.NoProxy"
      label="100 bytes of data on port 80 with no proxy."/>
  <suffix name="80.100B.RTT"
      label="100 bytes of data on port 80 successfully."/>
  <suffix name="80.100B.RTT.NoProxy"
      label="100 bytes of data on port 80 successfully with no proxy."/>
  <suffix name="587.1K" label="1K bytes of data on port 587."/>
  <suffix name="587.1K.NoProxy"
      label="1K bytes of data on port 587 with no proxy."/>
  <suffix name="587.1K.RTT" label="1K bytes of data on port 587 successfully."/>
  <suffix name="587.1K.RTT.NoProxy"
      label="1K bytes of data on port 587 successfully with no proxy."/>
  <suffix name="587.100B" label="100 bytes of data on port 587."/>
  <suffix name="587.100B.NoProxy"
      label="100 bytes of data on port 587 with no proxy."/>
  <suffix name="587.100B.RTT"
      label="100 bytes of data on port 587 successfully."/>
  <suffix name="587.100B.RTT.NoProxy"
      label="100 bytes of data on port 587 successfully with no proxy."/>
  <suffix name="6121.1K" label="1K bytes of data on port 6121."/>
  <suffix name="6121.1K.NoProxy"
      label="1K bytes of data on port 6121 with no proxy."/>
  <suffix name="6121.1K.RTT"
      label="1K bytes of data on port 6121 successfully."/>
  <suffix name="6121.1K.RTT.NoProxy"
      label="1K bytes of data on port 6121 successfully with no proxy."/>
  <suffix name="6121.100B" label="100 bytes of data on port 6121."/>
  <suffix name="6121.100B.NoProxy"
      label="100 bytes of data on port 6121 with no proxy."/>
  <suffix name="6121.100B.RTT"
      label="100 bytes of data on port 6121 successfully."/>
  <suffix name="6121.100B.RTT.NoProxy"
      label="100 bytes of data on port 6121 successfully with no proxy."/>
  <suffix name="8080.1K" label="1K bytes of data on port 8080."/>
  <suffix name="8080.1K.NoProxy"
      label="1K bytes of data on port 8080 with no proxy."/>
  <suffix name="8080.1K.RTT"
      label="1K bytes of data on port 8080 successfully."/>
  <suffix name="8080.1K.RTT.NoProxy"
      label="1K bytes of data on port 8080 successfully with no proxy."/>
  <suffix name="8080.100B" label="100 bytes of data on port 8080."/>
  <suffix name="8080.100B.NoProxy"
      label="100 bytes of data on port 8080 with no proxy."/>
  <suffix name="8080.100B.RTT"
      label="100 bytes of data on port 8080 successfully."/>
  <suffix name="8080.100B.RTT.NoProxy"
      label="100 bytes of data on port 8080 successfully with no proxy."/>
  <affected-histogram name="NetConnectivity.TCP.Status"/>
  <affected-histogram name="NetConnectivity.TCP.Success"/>
  <affected-histogram name="NetConnectivity.UDP.PacketLoss"/>
  <affected-histogram name="NetConnectivity.UDP.PacketLoss6"/>
  <affected-histogram name="NetConnectivity.UDP.Status"/>
  <affected-histogram name="NetConnectivity.UDP.Success"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity2" separator=".">
  <suffix name="AcksReceivedFromFirst2Packets" label="2 packets."/>
  <suffix name="AcksReceivedFromFirst3Packets" label="3 packets."/>
  <suffix name="AcksReceivedFromFirst4Packets" label="4 packets."/>
  <suffix name="AcksReceivedFromFirst5Packets" label="5 packets."/>
  <suffix name="AcksReceivedFromFirst6Packets" label="6 packets."/>
  <suffix name="AcksReceivedFromFirst7Packets" label="7 packets."/>
  <suffix name="AcksReceivedFromFirst8Packets" label="8 packets."/>
  <suffix name="AcksReceivedFromFirst9Packets" label="9 packets."/>
  <suffix name="AcksReceivedFromFirst10Packets" label="10 packets."/>
  <suffix name="AcksReceivedFromFirst11Packets" label="11 packets."/>
  <suffix name="AcksReceivedFromFirst12Packets" label="12 packets."/>
  <suffix name="AcksReceivedFromFirst13Packets" label="13 packets."/>
  <suffix name="AcksReceivedFromFirst14Packets" label="14 packets."/>
  <suffix name="AcksReceivedFromFirst15Packets" label="15 packets."/>
  <suffix name="AcksReceivedFromFirst16Packets" label="16 packets."/>
  <suffix name="AcksReceivedFromFirst17Packets" label="17 packets."/>
  <suffix name="AcksReceivedFromFirst18Packets" label="18 packets."/>
  <suffix name="AcksReceivedFromFirst19Packets" label="19 packets."/>
  <suffix name="AcksReceivedFromFirst20Packets" label="20 packets."/>
  <suffix name="AcksReceivedFromFirst21Packets" label="21 packets."/>
  <affected-histogram name="NetConnectivity.Sent21"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity2a" separator=".">
  <suffix name="6121.1K" label="1K bytes of data is sent on port 6121."/>
  <suffix name="6121.100B" label="100 bytes of data is sent on port 6121."/>
  <suffix name="6121.500B" label="500 bytes of data is sent on port 6121."/>
  <affected-histogram name="NetConnectivity2.Sent21.AckReceivedForNthPacket"/>
  <affected-histogram name="NetConnectivity2.Sent21.GotAnAck"/>
  <affected-histogram name="NetConnectivity2.Sent21.PacketsSent"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity2b" separator=".">
  <suffix name="AcksReceivedFromFirst2Packets.6121.100B"
      label="2 packets. 100 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst3Packets.6121.100B"
      label="3 packets. 100 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst4Packets.6121.100B"
      label="4 packets. 100 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst5Packets.6121.100B"
      label="5 packets. 100 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst6Packets.6121.100B"
      label="6 packets. 100 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst7Packets.6121.100B"
      label="7 packets. 100 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst8Packets.6121.100B"
      label="8 packets. 100 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst9Packets.6121.100B"
      label="9 packets. 100 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst10Packets.6121.100B"
      label="10 packets. 100 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst11Packets.6121.100B"
      label="11 packets. 100 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst12Packets.6121.100B"
      label="12 packets. 100 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst13Packets.6121.100B"
      label="13 packets. 100 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst14Packets.6121.100B"
      label="14 packets. 100 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst15Packets.6121.100B"
      label="15 packets. 100 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst16Packets.6121.100B"
      label="16 packets. 100 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst17Packets.6121.100B"
      label="17 packets. 100 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst18Packets.6121.100B"
      label="18 packets. 100 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst19Packets.6121.100B"
      label="19 packets. 100 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst20Packets.6121.100B"
      label="20 packets. 100 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst21Packets.6121.100B"
      label="21 packets. 100 bytes of data is sent on port 6121."/>
  <affected-histogram name="NetConnectivity2.Sent21"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity2c" separator=".">
  <suffix name="6121.1K" label="1K bytes of data is sent on port 6121."/>
  <suffix name="6121.1K.NoProxy"
      label="1K bytes of data is sent on port 6121 with no proxy."/>
  <suffix name="6121.100B" label="100 bytes of data is sent on port 6121."/>
  <suffix name="6121.100B.NoProxy"
      label="100 bytes of data is sent on port 6121 with no proxy."/>
  <suffix name="6121.500B" label="500 bytes of data is sent on port 6121."/>
  <suffix name="6121.500B.NoProxy"
      label="500 bytes of data is sent on port 6121 with no proxy."/>
  <affected-histogram name="NetConnectivity2.Send6.PacketsSent"/>
  <affected-histogram name="NetConnectivity2.Send6.SeriesAcked"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity2d" separator=".">
  <suffix name="AcksReceivedFromFirst2Packets.6121.500B"
      label="2 packets. 500 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst3Packets.6121.500B"
      label="3 packets. 500 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst4Packets.6121.500B"
      label="4 packets. 500 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst5Packets.6121.500B"
      label="5 packets. 500 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst6Packets.6121.500B"
      label="6 packets. 500 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst7Packets.6121.500B"
      label="7 packets. 500 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst8Packets.6121.500B"
      label="8 packets. 500 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst9Packets.6121.500B"
      label="9 packets. 500 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst10Packets.6121.500B"
      label="10 packets. 500 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst11Packets.6121.500B"
      label="11 packets. 500 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst12Packets.6121.500B"
      label="12 packets. 500 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst13Packets.6121.500B"
      label="13 packets. 500 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst14Packets.6121.500B"
      label="14 packets. 500 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst15Packets.6121.500B"
      label="15 packets. 500 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst16Packets.6121.500B"
      label="16 packets. 500 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst17Packets.6121.500B"
      label="17 packets. 500 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst18Packets.6121.500B"
      label="18 packets. 500 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst19Packets.6121.500B"
      label="19 packets. 500 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst20Packets.6121.500B"
      label="20 packets. 500 bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst21Packets.6121.500B"
      label="21 packets. 500 bytes of data is sent on port 6121."/>
  <affected-histogram name="NetConnectivity2.Sent21"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity2e" separator=".">
  <suffix name="AcksReceivedFromFirst2Packets.6121.1K"
      label="2 packets. 1K bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst3Packets.6121.1K"
      label="3 packets. 1K bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst4Packets.6121.1K"
      label="4 packets. 1K bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst5Packets.6121.1K"
      label="5 packets. 1K bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst6Packets.6121.1K"
      label="6 packets. 1K bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst7Packets.6121.1K"
      label="7 packets. 1K bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst8Packets.6121.1K"
      label="8 packets. 1K bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst9Packets.6121.1K"
      label="9 packets. 1K bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst10Packets.6121.1K"
      label="10 packets. 1K bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst11Packets.6121.1K"
      label="11 packets. 1K bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst12Packets.6121.1K"
      label="12 packets. 1K bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst13Packets.6121.1K"
      label="13 packets. 1K bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst14Packets.6121.1K"
      label="14 packets. 1K bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst15Packets.6121.1K"
      label="15 packets. 1K bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst16Packets.6121.1K"
      label="16 packets. 1K bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst17Packets.6121.1K"
      label="17 packets. 1K bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst18Packets.6121.1K"
      label="18 packets. 1K bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst19Packets.6121.1K"
      label="19 packets. 1K bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst20Packets.6121.1K"
      label="20 packets. 1K bytes of data is sent on port 6121."/>
  <suffix name="AcksReceivedFromFirst21Packets.6121.1K"
      label="21 packets. 1K bytes of data is sent on port 6121."/>
  <affected-histogram name="NetConnectivity2.Sent21"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity3a" separator=".">
  <suffix name="NonPacedPacket"
      label="In this histogram results are only shown if at least two packets
             were ACKed in the Startup Test. Packets were sent as rapidly as
             possible."/>
  <suffix name="PacedPacket"
      label="In this histogram results are only shown if at least two packets
             were ACKed in the Startup Test. Packets are sent at equal
             intervals. The interval is selected to match the bandwidth
             discovered during the StartPacket test."/>
  <suffix name="StartPacket"
      label="Packets are sent as rapidly as possible, just after successfully
             sending an UMA upload. Each packet was numbered, as was its ACK
             sent back by Google. If no packets (of the 21) were ever ACKed,
             then the port is assumed to be blocked, and no data is recorded
             in this histogram."/>
  <affected-histogram name="NetConnectivity3"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity3aa" separator=".">
  <suffix name="Sent21"
      label="This histogram shows the number of echo responses received from
             the first"/>
  <affected-histogram name="NetConnectivity3.NonPacedPacket"/>
  <affected-histogram name="NetConnectivity3.PacedPacket"/>
  <affected-histogram name="NetConnectivity3.StartPacket"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity3AckReceivedForNthPacket"
    separator=".">
  <suffix name="Sent21.AckReceivedForNthPacket"
      label="Each packet was numbered, as was its ACK sent back by Google.
             This histogram records, for each packet number, how often we
             received an ACK for that packet."/>
  <affected-histogram name="NetConnectivity3.NonPacedPacket"/>
  <affected-histogram name="NetConnectivity3.PacedPacket"/>
  <affected-histogram name="NetConnectivity3.StartPacket"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity3AcksReceivedFromFirst" separator=".">
  <suffix name="AcksReceivedFromFirst02Packets" label="2 packets."/>
  <suffix name="AcksReceivedFromFirst03Packets" label="3 packets."/>
  <suffix name="AcksReceivedFromFirst04Packets" label="4 packets."/>
  <suffix name="AcksReceivedFromFirst05Packets" label="5 packets."/>
  <suffix name="AcksReceivedFromFirst06Packets" label="6 packets."/>
  <suffix name="AcksReceivedFromFirst07Packets" label="7 packets."/>
  <suffix name="AcksReceivedFromFirst08Packets" label="8 packets."/>
  <suffix name="AcksReceivedFromFirst09Packets" label="9 packets."/>
  <suffix name="AcksReceivedFromFirst10Packets" label="10 packets."/>
  <suffix name="AcksReceivedFromFirst11Packets" label="11 packets."/>
  <suffix name="AcksReceivedFromFirst12Packets" label="12 packets."/>
  <suffix name="AcksReceivedFromFirst13Packets" label="13 packets."/>
  <suffix name="AcksReceivedFromFirst14Packets" label="14 packets."/>
  <suffix name="AcksReceivedFromFirst15Packets" label="15 packets."/>
  <suffix name="AcksReceivedFromFirst16Packets" label="16 packets."/>
  <suffix name="AcksReceivedFromFirst17Packets" label="17 packets."/>
  <suffix name="AcksReceivedFromFirst18Packets" label="18 packets."/>
  <suffix name="AcksReceivedFromFirst19Packets" label="19 packets."/>
  <suffix name="AcksReceivedFromFirst20Packets" label="20 packets."/>
  <suffix name="AcksReceivedFromFirst21Packets" label="21 packets."/>
  <affected-histogram name="NetConnectivity3.NonPacedPacket.Sent21"/>
  <affected-histogram name="NetConnectivity3.PacedPacket.Sent21"/>
  <affected-histogram name="NetConnectivity3.StartPacket.Sent21"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity3GotAnAck" separator=".">
  <suffix name="Sent21.GotAnAck"
      label="The histogram shows if we ever got an ACK for a packet in our
             series of 21."/>
  <affected-histogram name="NetConnectivity3.NonPacedPacket"/>
  <affected-histogram name="NetConnectivity3.PacedPacket"/>
  <affected-histogram name="NetConnectivity3.StartPacket"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity3PacketDelay1" separator=".">
  <suffix name="Sent21.443"
      label="This histogram shows the difference between the time when we
             have received 1st byte from the server and the last time when we
             have received data from the server on port 443."/>
  <suffix name="Sent21.6121"
      label="This histogram shows the difference between the time when we
             have received 1st byte from the server and the last time when we
             have received data from the server on port 6121."/>
  <affected-histogram name="NetConnectivity3.NonPacedPacket"/>
  <affected-histogram name="NetConnectivity3.PacedPacket"/>
  <affected-histogram name="NetConnectivity3.StartPacket"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity3PacketDelay2" separator=".">
  <suffix name="443.100B.PacketDelay"
      label="100 bytes of data is sent on port 443."/>
  <suffix name="443.500B.PacketDelay"
      label="500 bytes of data is sent on port 443."/>
  <suffix name="443.1200B.PacketDelay"
      label="1200 bytes of data is sent on port 443."/>
  <suffix name="6121.100B.PacketDelay"
      label="100 bytes of data is sent on port 6121."/>
  <suffix name="6121.500B.PacketDelay"
      label="500 bytes of data is sent on port 6121."/>
  <suffix name="6121.1200B.PacketDelay"
      label="1200 bytes of data is sent on port 6121."/>
  <affected-histogram name="NetConnectivity3.NonPacedPacket.Sent21"/>
  <affected-histogram name="NetConnectivity3.PacedPacket.Sent21"/>
  <affected-histogram name="NetConnectivity3.StartPacket.Sent21"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity3PacketRTT" separator=".">
  <suffix name="Sent21.Success.RTT" label="The histogram shows the RTT for"/>
  <affected-histogram name="NetConnectivity3.NonPacedPacket"/>
  <affected-histogram name="NetConnectivity3.PacedPacket"/>
  <affected-histogram name="NetConnectivity3.StartPacket"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity3Packets" separator=".">
  <suffix name="Packet01" label="1st packet."/>
  <suffix name="Packet02" label="2nd packet."/>
  <suffix name="Packet03" label="3rd packet."/>
  <suffix name="Packet10" label="10th packet."/>
  <suffix name="Packet20" label="20th packet."/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.Success.RTT"/>
  <affected-histogram name="NetConnectivity3.PacedPacket.Sent21.Success.RTT"/>
  <affected-histogram name="NetConnectivity3.StartPacket.Sent21.Success.RTT"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity3PacketsSent" separator=".">
  <suffix name="Send6.SeriesAcked"
      label="Chrome sends 6 UDP packets in a row to test to see if there is a
             probabalistic dependency in packet loss for consecutive packets.
             We record a bit vector of packets received, where the least
             significant bit is a 1 if the first packet was received, etc.
             For example, if all packets other than packet 2 and 4 are
             responded to, then we'd have a sample (in binary) of 110101B, or
             53."/>
  <suffix name="Sent21.PacketsSent"
      label="This histogram records how many packets (out of 21 attempted)
             were sent to the server via UDP."/>
  <affected-histogram name="NetConnectivity3.NonPacedPacket"/>
  <affected-histogram name="NetConnectivity3.PacedPacket"/>
  <affected-histogram name="NetConnectivity3.StartPacket"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity3PacketsSentBytes" separator=".">
  <suffix name="443.100B" label="100 bytes of data is sent on port 443."/>
  <suffix name="443.500B" label="500 bytes of data is sent on port 443."/>
  <suffix name="443.1200B" label="1200 bytes of data is sent on port 443."/>
  <suffix name="6121.100B" label="100 bytes of data is sent on port 6121."/>
  <suffix name="6121.500B" label="500 bytes of data is sent on port 6121."/>
  <suffix name="6121.1200B" label="1200 bytes of data is sent on port 6121."/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.AckReceivedForNthPacket"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.AcksReceivedFromFirst02Packets"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.AcksReceivedFromFirst03Packets"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.AcksReceivedFromFirst04Packets"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.AcksReceivedFromFirst05Packets"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.AcksReceivedFromFirst06Packets"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.AcksReceivedFromFirst07Packets"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.AcksReceivedFromFirst08Packets"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.AcksReceivedFromFirst09Packets"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.AcksReceivedFromFirst10Packets"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.AcksReceivedFromFirst11Packets"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.AcksReceivedFromFirst12Packets"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.AcksReceivedFromFirst13Packets"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.AcksReceivedFromFirst14Packets"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.AcksReceivedFromFirst15Packets"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.AcksReceivedFromFirst16Packets"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.AcksReceivedFromFirst17Packets"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.AcksReceivedFromFirst18Packets"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.AcksReceivedFromFirst19Packets"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.AcksReceivedFromFirst20Packets"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.AcksReceivedFromFirst21Packets"/>
  <affected-histogram name="NetConnectivity3.NonPacedPacket.Sent21.GotAnAck"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.PacketsSent"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.Success.RTT.Packet01"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.Success.RTT.Packet02"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.Success.RTT.Packet03"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.Success.RTT.Packet10"/>
  <affected-histogram
      name="NetConnectivity3.NonPacedPacket.Sent21.Success.RTT.Packet20"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.AckReceivedForNthPacket"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.AcksReceivedFromFirst02Packets"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.AcksReceivedFromFirst03Packets"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.AcksReceivedFromFirst04Packets"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.AcksReceivedFromFirst05Packets"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.AcksReceivedFromFirst06Packets"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.AcksReceivedFromFirst07Packets"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.AcksReceivedFromFirst08Packets"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.AcksReceivedFromFirst09Packets"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.AcksReceivedFromFirst10Packets"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.AcksReceivedFromFirst11Packets"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.AcksReceivedFromFirst12Packets"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.AcksReceivedFromFirst13Packets"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.AcksReceivedFromFirst14Packets"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.AcksReceivedFromFirst15Packets"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.AcksReceivedFromFirst16Packets"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.AcksReceivedFromFirst17Packets"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.AcksReceivedFromFirst18Packets"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.AcksReceivedFromFirst19Packets"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.AcksReceivedFromFirst20Packets"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.AcksReceivedFromFirst21Packets"/>
  <affected-histogram name="NetConnectivity3.PacedPacket.Sent21.GotAnAck"/>
  <affected-histogram name="NetConnectivity3.PacedPacket.Sent21.PacketsSent"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.Success.RTT.Packet01"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.Success.RTT.Packet02"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.Success.RTT.Packet03"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.Success.RTT.Packet10"/>
  <affected-histogram
      name="NetConnectivity3.PacedPacket.Sent21.Success.RTT.Packet20"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.AckReceivedForNthPacket"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.AcksReceivedFromFirst02Packets"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.AcksReceivedFromFirst03Packets"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.AcksReceivedFromFirst04Packets"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.AcksReceivedFromFirst05Packets"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.AcksReceivedFromFirst06Packets"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.AcksReceivedFromFirst07Packets"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.AcksReceivedFromFirst08Packets"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.AcksReceivedFromFirst09Packets"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.AcksReceivedFromFirst10Packets"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.AcksReceivedFromFirst11Packets"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.AcksReceivedFromFirst12Packets"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.AcksReceivedFromFirst13Packets"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.AcksReceivedFromFirst14Packets"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.AcksReceivedFromFirst15Packets"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.AcksReceivedFromFirst16Packets"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.AcksReceivedFromFirst17Packets"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.AcksReceivedFromFirst18Packets"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.AcksReceivedFromFirst19Packets"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.AcksReceivedFromFirst20Packets"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.AcksReceivedFromFirst21Packets"/>
  <affected-histogram name="NetConnectivity3.StartPacket.Sent21.GotAnAck"/>
  <affected-histogram name="NetConnectivity3.StartPacket.Sent21.PacketsSent"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.Success.RTT.Packet01"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.Success.RTT.Packet02"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.Success.RTT.Packet03"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.Success.RTT.Packet10"/>
  <affected-histogram
      name="NetConnectivity3.StartPacket.Sent21.Success.RTT.Packet20"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity3Send6Acked" separator=".">
  <suffix name="443.100B" label="100 bytes of data is sent on port 443."/>
  <suffix name="443.100B.NoProxy"
      label="100 bytes of data is sent on port 443 with no proxy."/>
  <suffix name="443.500B" label="500 bytes of data is sent on port 443."/>
  <suffix name="443.500B.NoProxy"
      label="500 bytes of data is sent on port 443 with no proxy."/>
  <suffix name="443.1200B" label="1200 bytes of data is sent on port 443."/>
  <suffix name="443.1200B.NoProxy"
      label="1200 bytes of data is sent on port 443 with no proxy."/>
  <suffix name="6121.100B" label="100 bytes of data is sent on port 6121."/>
  <suffix name="6121.100B.NoProxy"
      label="100 bytes of data is sent on port 6121 with no proxy."/>
  <suffix name="6121.500B" label="500 bytes of data is sent on port 6121."/>
  <suffix name="6121.500B.NoProxy"
      label="500 bytes of data is sent on port 6121 with no proxy."/>
  <suffix name="6121.1200B" label="1200 bytes of data is sent on port 6121."/>
  <suffix name="6121.1200B.NoProxy"
      label="1200 bytes of data is sent on port 6121 with no proxy."/>
  <affected-histogram name="NetConnectivity3.NonPacedPacket.Send6.SeriesAcked"/>
  <affected-histogram name="NetConnectivity3.PacedPacket.Send6.SeriesAcked"/>
  <affected-histogram name="NetConnectivity3.StartPacket.Send6.PacketsSent"/>
  <affected-histogram name="NetConnectivity3.StartPacket.Send6.SeriesAcked"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity4a" separator=".">
  <suffix name="NATBind.Sent2"
      label="Two packets were sent spreading over a random period, to test if
             the NAT dropped the binding. Afterwords, an extra (short) packet
             was sent with renewed NAT binding to test whether the network
             that was used to deliver the first packet is still connected.
             Results are only shown in this histogram if at least ten packets
             were received in the StartPacket test."/>
  <suffix name="NonPacedPacket"
      label="21 Packets were sent as rapidly as possible. Results are only
             shown in this histogram if at least two packets were received in
             the StartPacket Test."/>
  <suffix name="PacedPacket"
      label="21 Packets were sent at equal intervals, which were selected to
             match the bandwidth discovered during the StartPacket test.
             Results are only shown in this histogram if at least two packets
             were received in the StartPacket Test."/>
  <suffix name="StartPacket"
      label="21 Packets were sent as rapidly as possible, just after the
             client successfully sent a UMA upload. Each packet was numbered
             when it was sent by Google."/>
  <affected-histogram name="NetConnectivity4"/>
  <affected-histogram name="NetConnectivity5"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity4NATBindPacketReceives" separator=".">
  <suffix name="Bind.Failure"
      label="Only when the second packet never arrived (we wait for 10 extra
             seconds) and the first and the extra (short) packets arrived did
             we record the duration in seconds between the sendings of the
             first two packets in this histogram."/>
  <suffix name="Bind.Success"
      label="Only when all three packets including the extra (short) packet
             arrived did we record the duration in seconds between the
             sendings of the first two packets in this histogram."/>
  <suffix name="Connectivity.Failure"
      label="Only when the extra (short) packet (with renewed NAT binding)
             never arrived (we wait for 10 extra seconds) did we record the
             duration in seconds between the sendings of the first two
             packets in this histogram."/>
  <suffix name="Connectivity.Success"
      label="Only when the extra (short) packet arrived did we record the
             duration in seconds between the sendings of the first two
             packets in this histogram."/>
  <suffix name="SendToLastRecvDelay"
      label="This histogram records the time duration (in milliseconds)
             between the client sending the request and the receiving of the
             second packet sent from the server, excluding the idle time
             between sendings of the first two packets. Results are only
             shown if the first two packets are both received."/>
  <affected-histogram name="NetConnectivity4.NATBind.Sent2"/>
  <affected-histogram name="NetConnectivity5.NATBind.Sent2"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity4PacketFirst6" separator=".">
  <suffix name="First6.SeriesRecv"
      label="This histogram records a bit vector of the first 6 packets sent,
             where the least significant bit is a 1 if the first packet was
             received, etc. For example, if all packets other than packet 2
             and 4 are received, then we'd have a sample (in binary) of
             110101B, or 53."/>
  <suffix name="Sent21"
      label="This histogram shows the number of packets received from the
             first"/>
  <affected-histogram name="NetConnectivity4.NonPacedPacket"/>
  <affected-histogram name="NetConnectivity4.PacedPacket"/>
  <affected-histogram name="NetConnectivity4.StartPacket"/>
  <affected-histogram name="NetConnectivity5.NonPacedPacket"/>
  <affected-histogram name="NetConnectivity5.PacedPacket"/>
  <affected-histogram name="NetConnectivity5.StartPacket"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity4PacketReceives" separator=".">
  <suffix name="NumRecvFromFirst01Packets" label="1 packet."/>
  <suffix name="NumRecvFromFirst02Packets" label="2 packets."/>
  <suffix name="NumRecvFromFirst03Packets" label="3 packets."/>
  <suffix name="NumRecvFromFirst04Packets" label="4 packets."/>
  <suffix name="NumRecvFromFirst05Packets" label="5 packets."/>
  <suffix name="NumRecvFromFirst06Packets" label="6 packets."/>
  <suffix name="NumRecvFromFirst07Packets" label="7 packets."/>
  <suffix name="NumRecvFromFirst08Packets" label="8 packets."/>
  <suffix name="NumRecvFromFirst09Packets" label="9 packets."/>
  <suffix name="NumRecvFromFirst10Packets" label="10 packets."/>
  <suffix name="NumRecvFromFirst11Packets" label="11 packets."/>
  <suffix name="NumRecvFromFirst12Packets" label="12 packets."/>
  <suffix name="NumRecvFromFirst13Packets" label="13 packets."/>
  <suffix name="NumRecvFromFirst14Packets" label="14 packets."/>
  <suffix name="NumRecvFromFirst15Packets" label="15 packets."/>
  <suffix name="NumRecvFromFirst16Packets" label="16 packets."/>
  <suffix name="NumRecvFromFirst17Packets" label="17 packets."/>
  <suffix name="NumRecvFromFirst18Packets" label="18 packets."/>
  <suffix name="NumRecvFromFirst19Packets" label="19 packets."/>
  <suffix name="NumRecvFromFirst20Packets" label="20 packets."/>
  <suffix name="NumRecvFromFirst21Packets" label="21 packets."/>
  <affected-histogram name="NetConnectivity4.NonPacedPacket.Sent21"/>
  <affected-histogram name="NetConnectivity4.PacedPacket.Sent21"/>
  <affected-histogram name="NetConnectivity4.StartPacket.Sent21"/>
  <affected-histogram name="NetConnectivity5.NonPacedPacket.Sent21"/>
  <affected-histogram name="NetConnectivity5.PacedPacket.Sent21"/>
  <affected-histogram name="NetConnectivity5.StartPacket.Sent21"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity4PacketRTT" separator=".">
  <suffix name="Sent21.GotAPacket"
      label="The histogram shows if we ever got at least one packet in our
             series of 21."/>
  <suffix name="Sent21.PacketDelay"
      label="The histogram shows the average inter-arrival time between every
             two consecutive packets we receive in our series of 21
             multiplied by 20 (so this is essentially the time duration
             between the first and the last received packets)."/>
  <suffix name="Sent21.PacketsRecv"
      label="The histogram shows how many packets we receive in our series of
             21."/>
  <suffix name="Sent21.RecvNthPacket"
      label="Each packet was numbered when it was sent by Google. This
             histogram records, for each packet number, how often we received
             that packet."/>
  <suffix name="Sent21.SendToLastRecvDelay"
      label="This histogram records the time duration between the client
             sending the request and the receiving of the last packet sent
             from the server, excluding the total pacing time requested by
             the client. Results are only shown if at least two packets are
             received."/>
  <suffix name="Sent21.Success.RTT"
      label="The histogram shows the RTT for the"/>
  <affected-histogram name="NetConnectivity4.NonPacedPacket"/>
  <affected-histogram name="NetConnectivity4.PacedPacket"/>
  <affected-histogram name="NetConnectivity4.StartPacket"/>
  <affected-histogram name="NetConnectivity5.NonPacedPacket"/>
  <affected-histogram name="NetConnectivity5.PacedPacket"/>
  <affected-histogram name="NetConnectivity5.StartPacket"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity4PacketRTTSeries" separator=".">
  <suffix name="Packet01" label="1st packet."/>
  <suffix name="Packet02" label="2nd packet."/>
  <suffix name="Packet03" label="3rd packet."/>
  <suffix name="Packet10" label="10th packet."/>
  <suffix name="Packet20" label="20th packet."/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.Success.RTT"/>
  <affected-histogram name="NetConnectivity4.PacedPacket.Sent21.Success.RTT"/>
  <affected-histogram name="NetConnectivity4.StartPacket.Sent21.Success.RTT"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.Success.RTT"/>
  <affected-histogram name="NetConnectivity5.PacedPacket.Sent21.Success.RTT"/>
  <affected-histogram name="NetConnectivity5.StartPacket.Sent21.Success.RTT"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity4PacketsAll" separator=".">
  <suffix name="80.100B" label="100 bytes of data is sent on port 80."/>
  <suffix name="80.500B" label="500 bytes of data is sent on port 80."/>
  <suffix name="80.1200B" label="1200 bytes of data is sent on port 80."/>
  <suffix name="443.100B" label="100 bytes of data is sent on port 443."/>
  <suffix name="443.500B" label="500 bytes of data is sent on port 443."/>
  <suffix name="443.1200B" label="1200 bytes of data is sent on port 443."/>
  <affected-histogram name="NetConnectivity4.NATBind.Sent2.Bind.Failure"/>
  <affected-histogram name="NetConnectivity4.NATBind.Sent2.Bind.Success"/>
  <affected-histogram
      name="NetConnectivity4.NATBind.Sent2.Connectivity.Failure"/>
  <affected-histogram
      name="NetConnectivity4.NATBind.Sent2.Connectivity.Success"/>
  <affected-histogram
      name="NetConnectivity4.NATBind.Sent2.SendToLastRecvDelay"/>
  <affected-histogram name="NetConnectivity4.NonPacedPacket.Sent21.GotAPacket"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.NumRecvFromFirst01Packets"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.NumRecvFromFirst02Packets"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.NumRecvFromFirst03Packets"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.NumRecvFromFirst04Packets"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.NumRecvFromFirst05Packets"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.NumRecvFromFirst06Packets"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.NumRecvFromFirst07Packets"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.NumRecvFromFirst08Packets"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.NumRecvFromFirst09Packets"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.NumRecvFromFirst10Packets"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.NumRecvFromFirst11Packets"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.NumRecvFromFirst12Packets"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.NumRecvFromFirst13Packets"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.NumRecvFromFirst14Packets"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.NumRecvFromFirst15Packets"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.NumRecvFromFirst16Packets"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.NumRecvFromFirst17Packets"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.NumRecvFromFirst18Packets"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.NumRecvFromFirst19Packets"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.NumRecvFromFirst20Packets"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.NumRecvFromFirst21Packets"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.PacketDelay"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.PacketsRecv"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.RecvNthPacket"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.SendToLastRecvDelay"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.Success.RTT.Packet01"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.Success.RTT.Packet02"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.Success.RTT.Packet03"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.Success.RTT.Packet10"/>
  <affected-histogram
      name="NetConnectivity4.NonPacedPacket.Sent21.Success.RTT.Packet20"/>
  <affected-histogram name="NetConnectivity4.PacedPacket.Sent21.GotAPacket"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.NumRecvFromFirst01Packets"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.NumRecvFromFirst02Packets"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.NumRecvFromFirst03Packets"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.NumRecvFromFirst04Packets"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.NumRecvFromFirst05Packets"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.NumRecvFromFirst06Packets"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.NumRecvFromFirst07Packets"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.NumRecvFromFirst08Packets"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.NumRecvFromFirst09Packets"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.NumRecvFromFirst10Packets"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.NumRecvFromFirst11Packets"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.NumRecvFromFirst12Packets"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.NumRecvFromFirst13Packets"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.NumRecvFromFirst14Packets"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.NumRecvFromFirst15Packets"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.NumRecvFromFirst16Packets"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.NumRecvFromFirst17Packets"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.NumRecvFromFirst18Packets"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.NumRecvFromFirst19Packets"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.NumRecvFromFirst20Packets"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.NumRecvFromFirst21Packets"/>
  <affected-histogram name="NetConnectivity4.PacedPacket.Sent21.PacketDelay"/>
  <affected-histogram name="NetConnectivity4.PacedPacket.Sent21.PacketsRecv"/>
  <affected-histogram name="NetConnectivity4.PacedPacket.Sent21.RecvNthPacket"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.SendToLastRecvDelay"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.Success.RTT.Packet01"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.Success.RTT.Packet02"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.Success.RTT.Packet03"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.Success.RTT.Packet10"/>
  <affected-histogram
      name="NetConnectivity4.PacedPacket.Sent21.Success.RTT.Packet20"/>
  <affected-histogram name="NetConnectivity4.StartPacket.Sent21.GotAPacket"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.NumRecvFromFirst01Packets"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.NumRecvFromFirst02Packets"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.NumRecvFromFirst03Packets"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.NumRecvFromFirst04Packets"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.NumRecvFromFirst05Packets"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.NumRecvFromFirst06Packets"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.NumRecvFromFirst07Packets"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.NumRecvFromFirst08Packets"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.NumRecvFromFirst09Packets"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.NumRecvFromFirst10Packets"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.NumRecvFromFirst11Packets"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.NumRecvFromFirst12Packets"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.NumRecvFromFirst13Packets"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.NumRecvFromFirst14Packets"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.NumRecvFromFirst15Packets"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.NumRecvFromFirst16Packets"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.NumRecvFromFirst17Packets"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.NumRecvFromFirst18Packets"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.NumRecvFromFirst19Packets"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.NumRecvFromFirst20Packets"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.NumRecvFromFirst21Packets"/>
  <affected-histogram name="NetConnectivity4.StartPacket.Sent21.PacketDelay"/>
  <affected-histogram name="NetConnectivity4.StartPacket.Sent21.PacketsRecv"/>
  <affected-histogram name="NetConnectivity4.StartPacket.Sent21.RecvNthPacket"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.SendToLastRecvDelay"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.Success.RTT.Packet01"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.Success.RTT.Packet02"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.Success.RTT.Packet03"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.Success.RTT.Packet10"/>
  <affected-histogram
      name="NetConnectivity4.StartPacket.Sent21.Success.RTT.Packet20"/>
  <affected-histogram name="NetConnectivity5.NATBind.Sent2.Bind.Failure"/>
  <affected-histogram name="NetConnectivity5.NATBind.Sent2.Bind.Success"/>
  <affected-histogram
      name="NetConnectivity5.NATBind.Sent2.Connectivity.Failure"/>
  <affected-histogram
      name="NetConnectivity5.NATBind.Sent2.Connectivity.Success"/>
  <affected-histogram
      name="NetConnectivity5.NATBind.Sent2.SendToLastRecvDelay"/>
  <affected-histogram name="NetConnectivity5.NonPacedPacket.Sent21.GotAPacket"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.NumRecvFromFirst01Packets"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.NumRecvFromFirst02Packets"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.NumRecvFromFirst03Packets"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.NumRecvFromFirst04Packets"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.NumRecvFromFirst05Packets"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.NumRecvFromFirst06Packets"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.NumRecvFromFirst07Packets"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.NumRecvFromFirst08Packets"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.NumRecvFromFirst09Packets"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.NumRecvFromFirst10Packets"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.NumRecvFromFirst11Packets"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.NumRecvFromFirst12Packets"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.NumRecvFromFirst13Packets"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.NumRecvFromFirst14Packets"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.NumRecvFromFirst15Packets"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.NumRecvFromFirst16Packets"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.NumRecvFromFirst17Packets"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.NumRecvFromFirst18Packets"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.NumRecvFromFirst19Packets"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.NumRecvFromFirst20Packets"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.NumRecvFromFirst21Packets"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.PacketDelay"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.PacketsRecv"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.RecvNthPacket"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.SendToLastRecvDelay"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.Success.RTT.Packet01"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.Success.RTT.Packet02"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.Success.RTT.Packet03"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.Success.RTT.Packet10"/>
  <affected-histogram
      name="NetConnectivity5.NonPacedPacket.Sent21.Success.RTT.Packet20"/>
  <affected-histogram name="NetConnectivity5.PacedPacket.Sent21.GotAPacket"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.NumRecvFromFirst01Packets"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.NumRecvFromFirst02Packets"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.NumRecvFromFirst03Packets"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.NumRecvFromFirst04Packets"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.NumRecvFromFirst05Packets"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.NumRecvFromFirst06Packets"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.NumRecvFromFirst07Packets"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.NumRecvFromFirst08Packets"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.NumRecvFromFirst09Packets"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.NumRecvFromFirst10Packets"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.NumRecvFromFirst11Packets"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.NumRecvFromFirst12Packets"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.NumRecvFromFirst13Packets"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.NumRecvFromFirst14Packets"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.NumRecvFromFirst15Packets"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.NumRecvFromFirst16Packets"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.NumRecvFromFirst17Packets"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.NumRecvFromFirst18Packets"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.NumRecvFromFirst19Packets"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.NumRecvFromFirst20Packets"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.NumRecvFromFirst21Packets"/>
  <affected-histogram name="NetConnectivity5.PacedPacket.Sent21.PacketDelay"/>
  <affected-histogram name="NetConnectivity5.PacedPacket.Sent21.PacketsRecv"/>
  <affected-histogram name="NetConnectivity5.PacedPacket.Sent21.RecvNthPacket"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.SendToLastRecvDelay"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.Success.RTT.Packet01"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.Success.RTT.Packet02"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.Success.RTT.Packet03"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.Success.RTT.Packet10"/>
  <affected-histogram
      name="NetConnectivity5.PacedPacket.Sent21.Success.RTT.Packet20"/>
  <affected-histogram name="NetConnectivity5.StartPacket.Sent21.GotAPacket"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.NumRecvFromFirst01Packets"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.NumRecvFromFirst02Packets"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.NumRecvFromFirst03Packets"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.NumRecvFromFirst04Packets"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.NumRecvFromFirst05Packets"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.NumRecvFromFirst06Packets"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.NumRecvFromFirst07Packets"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.NumRecvFromFirst08Packets"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.NumRecvFromFirst09Packets"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.NumRecvFromFirst10Packets"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.NumRecvFromFirst11Packets"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.NumRecvFromFirst12Packets"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.NumRecvFromFirst13Packets"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.NumRecvFromFirst14Packets"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.NumRecvFromFirst15Packets"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.NumRecvFromFirst16Packets"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.NumRecvFromFirst17Packets"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.NumRecvFromFirst18Packets"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.NumRecvFromFirst19Packets"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.NumRecvFromFirst20Packets"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.NumRecvFromFirst21Packets"/>
  <affected-histogram name="NetConnectivity5.StartPacket.Sent21.PacketDelay"/>
  <affected-histogram name="NetConnectivity5.StartPacket.Sent21.PacketsRecv"/>
  <affected-histogram name="NetConnectivity5.StartPacket.Sent21.RecvNthPacket"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.SendToLastRecvDelay"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.Success.RTT.Packet01"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.Success.RTT.Packet02"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.Success.RTT.Packet03"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.Success.RTT.Packet10"/>
  <affected-histogram
      name="NetConnectivity5.StartPacket.Sent21.Success.RTT.Packet20"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity4PacketSizeTest" separator=".">
  <suffix name="PacketSizeTest.Connectivity.Failure"
      label="This histogram records the size of the packet size that was not
             received from the server."/>
  <suffix name="PacketSizeTest.Connectivity.Success"
      label="This histogram records the size of the packet size that was
             received from the server."/>
  <affected-histogram name="NetConnectivity4"/>
  <affected-histogram name="NetConnectivity5"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity4PacketSizeTestPort" separator=".">
  <suffix name="80" label="Packet is sent on port 80."/>
  <suffix name="443" label="Packet is sent on port 443."/>
  <affected-histogram
      name="NetConnectivity4.PacketSizeTest.Connectivity.Failure"/>
  <affected-histogram
      name="NetConnectivity4.PacketSizeTest.Connectivity.Success"/>
  <affected-histogram
      name="NetConnectivity5.PacketSizeTest.Connectivity.Failure"/>
  <affected-histogram
      name="NetConnectivity5.PacketSizeTest.Connectivity.Success"/>
</histogram_suffixes>

<histogram_suffixes name="NetConnectivity4SeriesRecv" separator=".">
  <suffix name="80.100B" label="100 bytes of data is sent on port 80."/>
  <suffix name="80.100B.NoProxy"
      label="100 bytes of data is sent on port 80 with no proxy."/>
  <suffix name="80.500B" label="500 bytes of data is sent on port 80."/>
  <suffix name="80.500B.NoProxy"
      label="500 bytes of data is sent on port 80 with no proxy."/>
  <suffix name="80.1200B" label="1200 bytes of data is sent on port 80."/>
  <suffix name="80.1200B.NoProxy"
      label="1200 bytes of data is sent on port 80 with no proxy."/>
  <suffix name="443.100B" label="100 bytes of data is sent on port 443."/>
  <suffix name="443.100B.NoProxy"
      label="100 bytes of data is sent on port 443 with no proxy."/>
  <suffix name="443.500B" label="500 bytes of data is sent on port 443."/>
  <suffix name="443.500B.NoProxy"
      label="500 bytes of data is sent on port 443 with no proxy."/>
  <suffix name="443.1200B" label="1200 bytes of data is sent on port 443."/>
  <suffix name="443.1200B.NoProxy"
      label="1200 bytes of data is sent on port 443 with no proxy."/>
  <affected-histogram name="NetConnectivity4.NonPacedPacket.First6.SeriesRecv"/>
  <affected-histogram name="NetConnectivity4.PacedPacket.First6.SeriesRecv"/>
  <affected-histogram name="NetConnectivity4.StartPacket.First6.SeriesRecv"/>
  <affected-histogram name="NetConnectivity5.NonPacedPacket.First6.SeriesRecv"/>
  <affected-histogram name="NetConnectivity5.PacedPacket.First6.SeriesRecv"/>
  <affected-histogram name="NetConnectivity5.StartPacket.First6.SeriesRecv"/>
</histogram_suffixes>

<histogram_suffixes name="NetErrorCodeSubtype" separator="." ordering="prefix">
  <owner>csharrison@chromium.org</owner>
  <suffix name="NTP.Google" label="The Google web NTP"/>
  <suffix name="NTP.Local" label="The local NTP"/>
  <suffix name="NTP.ThirdParty"
      label="The NTP served by a third party (e.g. Bing)"/>
  <affected-histogram name="Net.RequestTime2.ErrAborted"/>
  <affected-histogram name="Net.RequestTime2.Success"/>
</histogram_suffixes>

<histogram_suffixes name="NetHttpContentLengthType" separator=".">
  <suffix name="Http"/>
  <suffix name="Https"/>
  <suffix name="Video"/>
  <affected-histogram name="Net.HttpContentLength"/>
  <affected-histogram name="Net.HttpContentLengthV2"/>
  <affected-histogram name="Net.HttpOriginalContentLength"/>
  <affected-histogram name="Net.HttpOriginalContentLengthV2"/>
</histogram_suffixes>

<histogram_suffixes name="NetHttpContentLengthType2" separator=".">
  <suffix name="BypassedDRP"
      label="Bytes of traffic that bypassed the Data Reduction Proxy"/>
  <suffix name="Direct"
      label="Bytes of traffic that were ineligible for the Data Reduction
             Proxy"/>
  <suffix name="Other"
      label="Bytes of traffic that don't fit into the other categories of
             Net.HttpContentLength"/>
  <suffix name="ViaDRP"
      label="Bytes of traffic that passed through the Data Reduction Proxy"/>
  <affected-histogram name="Net.HttpContentLength.Http"/>
  <affected-histogram name="Net.HttpContentLength.Https"/>
  <affected-histogram name="Net.HttpContentLengthV2.Http"/>
  <affected-histogram name="Net.HttpContentLengthV2.Https"/>
  <affected-histogram name="Net.HttpOriginalContentLength.Http"/>
  <affected-histogram name="Net.HttpOriginalContentLength.Https"/>
  <affected-histogram name="Net.HttpOriginalContentLengthV2.Http"/>
  <affected-histogram name="Net.HttpOriginalContentLengthV2.Https"/>
</histogram_suffixes>

<histogram_suffixes name="NetHttpContentLengthType3" separator=".">
  <suffix name="Video" label="Bytes of video traffic"/>
  <affected-histogram name="Net.HttpContentLength.Http.BypassedDRP"/>
  <affected-histogram name="Net.HttpContentLength.Http.Direct"/>
  <affected-histogram name="Net.HttpContentLength.Http.Other"/>
  <affected-histogram name="Net.HttpContentLength.Http.ViaDRP"/>
  <affected-histogram name="Net.HttpContentLength.Https.BypassedDRP"/>
  <affected-histogram name="Net.HttpContentLength.Https.Direct"/>
  <affected-histogram name="Net.HttpContentLength.Https.Other"/>
  <affected-histogram name="Net.HttpContentLength.Https.ViaDRP"/>
  <affected-histogram name="Net.HttpContentLengthV2.Http.BypassedDRP"/>
  <affected-histogram name="Net.HttpContentLengthV2.Http.Direct"/>
  <affected-histogram name="Net.HttpContentLengthV2.Http.Other"/>
  <affected-histogram name="Net.HttpContentLengthV2.Http.ViaDRP"/>
  <affected-histogram name="Net.HttpContentLengthV2.Https.BypassedDRP"/>
  <affected-histogram name="Net.HttpContentLengthV2.Https.Direct"/>
  <affected-histogram name="Net.HttpContentLengthV2.Https.Other"/>
  <affected-histogram name="Net.HttpContentLengthV2.Https.ViaDRP"/>
  <affected-histogram name="Net.HttpOriginalContentLength.Http.BypassedDRP"/>
  <affected-histogram name="Net.HttpOriginalContentLength.Http.Direct"/>
  <affected-histogram name="Net.HttpOriginalContentLength.Http.Other"/>
  <affected-histogram name="Net.HttpOriginalContentLength.Http.ViaDRP"/>
  <affected-histogram name="Net.HttpOriginalContentLength.Https.BypassedDRP"/>
  <affected-histogram name="Net.HttpOriginalContentLength.Https.Direct"/>
  <affected-histogram name="Net.HttpOriginalContentLength.Https.Other"/>
  <affected-histogram name="Net.HttpOriginalContentLength.Https.ViaDRP"/>
  <affected-histogram name="Net.HttpOriginalContentLengthV2.Http.BypassedDRP"/>
  <affected-histogram name="Net.HttpOriginalContentLengthV2.Http.Direct"/>
  <affected-histogram name="Net.HttpOriginalContentLengthV2.Http.Other"/>
  <affected-histogram name="Net.HttpOriginalContentLengthV2.Http.ViaDRP"/>
  <affected-histogram name="Net.HttpOriginalContentLengthV2.Https.BypassedDRP"/>
  <affected-histogram name="Net.HttpOriginalContentLengthV2.Https.Direct"/>
  <affected-histogram name="Net.HttpOriginalContentLengthV2.Https.Other"/>
  <affected-histogram name="Net.HttpOriginalContentLengthV2.Https.ViaDRP"/>
</histogram_suffixes>

<histogram_suffixes name="NetHttpProxyConnectLatencySecure" separator=".">
  <owner>tbansal@chromium.org</owner>
  <suffix name="Insecure" label="Insecure proxy"/>
  <suffix name="Secure" label="Secure proxy"/>
  <affected-histogram name="Net.HttpProxy.ConnectLatency"/>
</histogram_suffixes>

<histogram_suffixes name="NetHttpProxyConnectLatencySuccess" separator=".">
  <owner>tbansal@chromium.org</owner>
  <suffix name="Error" label="Connection to proxy resulted in an error"/>
  <suffix name="Success" label="Connection to proxy was successful"/>
  <suffix name="TimedOut" label="Connection to proxy timed out"/>
  <affected-histogram name="Net.HttpProxy.ConnectLatency.Insecure"/>
  <affected-histogram name="Net.HttpProxy.ConnectLatency.Secure"/>
</histogram_suffixes>

<histogram_suffixes name="NetProxyResolverExecutionTime" separator="_">
  <suffix name="UrlOver2K" label="URL length was over 2K"/>
  <suffix name="UrlOver4K" label="URL length was over 4K"/>
  <suffix name="UrlOver8K" label="URL length was over 8K"/>
  <suffix name="UrlOver128K" label="URL length was over 128K"/>
  <affected-histogram name="Net.ProxyResolver.ExecutionTime"/>
</histogram_suffixes>

<histogram_suffixes name="NetQuicDiskCacheBackend" separator=".">
  <suffix name="DiskCache" label="DiskCache backend is using disk cache."/>
  <suffix name="MemoryCache" label="DiskCache backend is using memory cache."/>
  <owner>rch@chromium.org</owner>
  <suffix name="NoBackend" label="DiskCache didn't have a backend"/>
  <suffix name="PropertiesBasedCache" label="Preferences based cache is used."/>
  <suffix name="WaitForDataReady"
      label="Tracks the last failure reason until WaitForDataReady or its
             callback is executed. This is recorded when data is ready in
             WaitForDataReady or when the callback is executed"/>
  <affected-histogram name="Net.QuicDiskCache.APICall"/>
  <affected-histogram name="Net.QuicDiskCache.FailureReason"/>
</histogram_suffixes>

<histogram_suffixes name="NetRequestTime" separator=".">
  <suffix name="ErrAborted" label="Request aborted"/>
  <suffix name="ErrConnectionReset" label="Connection reset"/>
  <suffix name="ErrConnectionTimedOut" label="Request connection timed out"/>
  <suffix name="ErrInternetDisconnected" label="Internet disconnected"/>
  <suffix name="ErrNameNotResolved" label="Request domain not resolved"/>
  <suffix name="ErrTimedOut" label="Request timed out"/>
  <suffix name="MiscError" label="Uncategorized error"/>
  <suffix name="Success" label="Success"/>
  <affected-histogram name="Net.RequestTime"/>
  <affected-histogram name="Net.RequestTime2"/>
</histogram_suffixes>

<histogram_suffixes name="NetworkErrors" separator=".">
  <suffix name="AuthExtTimeout" label="with the last error AuthExtTimeout"/>
  <suffix name="Offline" label="with the last error Offline"/>
  <suffix name="Portal" label="with the last error Portal"/>
  <suffix name="Proxy" label="with the last error Proxy"/>
  <affected-histogram name="OOBE.ErrorScreensTime.Enrollment"/>
  <affected-histogram name="OOBE.ErrorScreensTime.Signin"/>
  <affected-histogram name="OOBE.ErrorScreensTime.Supervised"/>
  <affected-histogram name="OOBE.ErrorScreensTime.Update"/>
</histogram_suffixes>

<histogram_suffixes name="NewTabPage.BackgroundService.RequestLatency"
    separator=".">
  <suffix name="Failure" label="Failed to fetch data from background service"/>
  <suffix name="Success" label="Successfully fetched from background service"/>
  <affected-histogram
      name="NewTabPage.BackgroundService.Collections.RequestLatency"/>
  <affected-histogram
      name="NewTabPage.BackgroundService.Images.RequestLatency"/>
</histogram_suffixes>

<histogram_suffixes name="NewTabPage.OneGoogleBar.RequestLatency" separator=".">
  <suffix name="Failure" label="Failed to fetch OneGoogleBar"/>
  <suffix name="Success" label="Successfully fetched OneGoogleBar"/>
  <affected-histogram name="NewTabPage.OneGoogleBar.RequestLatency"/>
</histogram_suffixes>

<histogram_suffixes name="NewTabPage.Promos.RequestLatency" separator=".">
  <suffix name="Failure" label="Failed to fetch middle-slot Promo"/>
  <suffix name="Success" label="Successfully fetched middle-slot Promo"/>
  <affected-histogram name="NewTabPage.Promos.RequestLatency"/>
</histogram_suffixes>

<histogram_suffixes name="NewTabPage.SearchSuggestions.RequestLatency"
    separator=".">
  <suffix name="Failure" label="Failed to fetch search suggestions"/>
  <suffix name="Success" label="Successfully fetched search suggestions"/>
  <affected-histogram name="NewTabPage.SearchSuggestions.RequestLatency"/>
</histogram_suffixes>

<histogram_suffixes name="NewTabPageIconTypes" separator=".">
  <suffix name="IconsColor"
      label="Icons using a fallback color (favicon resolution too low)."/>
  <suffix name="IconsGray"
      label="Icons using a gray color (no favicon available)."/>
  <suffix name="IconsReal"
      label="Icons using an actual icon published by the site."/>
  <suffix name="Thumbnail"
      label="Not an icon but a thumbnail/screenshot of the page."/>
  <suffix name="ThumbnailFailed"
      label="Default gray box in place of a thumbnail/screenshot."/>
  <affected-histogram name="NewTabPage.MostVisited"/>
  <affected-histogram name="NewTabPage.SuggestionsImpression"/>
  <affected-histogram name="NewTabPage.TileFaviconType"/>
  <affected-histogram name="NewTabPage.TileFaviconTypeClicked"/>
</histogram_suffixes>

<histogram_suffixes name="NewTabPageLogoShownFromCache" separator=".">
  <suffix name="Fresh" label="Fresh logo from network."/>
  <suffix name="FromCache" label="Logo from cache."/>
  <affected-histogram name="NewTabPage.LogoShown"/>
</histogram_suffixes>

<histogram_suffixes name="NewTabPageProviders" separator=".">
  <suffix name="client" label="Suggestions coming from the client."/>
  <suffix name="client0">
    <obsolete>
      Hasn't been used for a while, as of 2016-07.
    </obsolete>
  </suffix>
  <suffix name="custom_links" label="User customized links."/>
  <suffix name="homepage" label="The currently set home page."/>
<!-- TODO(fhorschig): Add <obsolete> tag as soon as M-62 is rolled out. -->

  <suffix name="popular"
      label="Deprecated with M-62! Non-personalized, popular suggestions."/>
  <suffix name="popular_baked_in" label="Baked-in, popular suggestions."/>
  <suffix name="popular_fetched"
      label="Non-personalized, popular suggestions (fetched from the server)."/>
  <suffix name="server" label="Suggestions coming from the server."/>
  <suffix name="server0">
    <obsolete>
      Hasn't been used for a while, as of 2016-07.
    </obsolete>
  </suffix>
  <suffix name="server8">
    <obsolete>
      Not used anymore as of 2016-07.
    </obsolete>
  </suffix>
  <suffix name="server9">
    <obsolete>
      Has never been used.
    </obsolete>
  </suffix>
  <suffix name="server10">
    <obsolete>
      Has never been used.
    </obsolete>
  </suffix>
  <suffix name="server11">
    <obsolete>
      Has never been used.
    </obsolete>
  </suffix>
  <suffix name="whitelist"
      label="Installed whitelist entry point suggestions."/>
  <affected-histogram name="NewTabPage.MostVisited"/>
  <affected-histogram name="NewTabPage.MostVisitedAge"/>
  <affected-histogram name="NewTabPage.SuggestionsImpression"/>
  <affected-histogram name="NewTabPage.SuggestionsImpressionAge"/>
  <affected-histogram name="NewTabPage.TileTitle"/>
  <affected-histogram name="NewTabPage.TileTitleClicked"/>
  <affected-histogram name="NewTabPage.TileType"/>
  <affected-histogram name="NewTabPage.TileTypeClicked"/>
</histogram_suffixes>

<histogram_suffixes name="NewTabPageTimings" separator=".">
  <suffix name="LocalNTP" label="Loaded local NTP."/>
  <suffix name="MostLikely" label="Loaded server-side suggestions."/>
  <suffix name="MostVisited" label="Loaded client-side suggestions."/>
  <suffix name="NewTab" label="NTP loaded on a new tab."/>
  <suffix name="Startup" label="NTP loaded during browser startup."/>
  <suffix name="Web" label="Loaded server-side NTP."/>
  <affected-histogram name="NewTabPage.LoadTime"/>
  <affected-histogram name="NewTabPage.TilesReceivedTime"/>
</histogram_suffixes>

<histogram_suffixes name="NewTabPageTimingsIsGoogle" separator=".">
  <suffix name="Google" label="Default search provider is Google."/>
  <suffix name="Other" label="Default search provider is not Google."/>
  <affected-histogram name="NewTabPage.LoadTime.LocalNTP"/>
  <affected-histogram name="NewTabPage.LoadTime.Web"/>
</histogram_suffixes>

<histogram_suffixes name="NextTabState" separator="_">
  <suffix name="Active"
      label="For a tab active which is shown foreground in a browser window."/>
  <suffix name="Closed" label="For a tab that is about to be closed."/>
  <suffix name="Detached"
      label="For a tab that is being dragged by user to outside of the
             browser window."/>
  <suffix name="Inactive"
      label="For tabs in background and not shown to user."/>
  <affected-histogram name="Tabs.StateTransfer.Time_Active"/>
  <affected-histogram name="Tabs.StateTransfer.Time_Detached"/>
  <affected-histogram name="Tabs.StateTransfer.Time_Inactive"/>
</histogram_suffixes>

<histogram_suffixes name="NotificationDisplayExperiment" separator="_">
  <obsolete>
    Deprecated October 2017 (feature enabled by default).
  </obsolete>
  <suffix name="Fullscreen.Shown"
      label="A notification sent by a fullscreen app or webpage that is
             displayed."/>
  <suffix name="Fullscreen.Suppressed"
      label="A notification sent by a fullscreen app or webpage that is not
             displayed."/>
  <suffix name="Windowed"
      label="A notification sent by a non-fullscreen app or webpage."/>
  <affected-histogram name="Notifications.Display"/>
</histogram_suffixes>

<histogram_suffixes name="NotificationImageTypes" separator=".">
  <suffix name="ActionIcon"/>
  <suffix name="Badge"/>
  <suffix name="Icon"/>
  <suffix name="Image"/>
  <affected-histogram name="Notifications.LoadFailTime"/>
  <affected-histogram name="Notifications.LoadFileSize"/>
  <affected-histogram name="Notifications.LoadFinishTime"/>
  <affected-histogram name="Notifications.LoadScaleDownTime"/>
</histogram_suffixes>

<histogram_suffixes name="NQE.Accuracy.Metric.Accuracy.DiffPositiveOrNegative"
    separator=".">
  <suffix name="Negative"
      label="Estimate of the metric was lower than observed metric"/>
  <suffix name="Positive"
      label="Estimate of the metric was higher than observed metric"/>
  <affected-histogram
      name="NQE.Accuracy.DownstreamThroughputKbps.EstimatedObservedDiff"/>
  <affected-histogram
      name="NQE.Accuracy.EffectiveConnectionType.EstimatedObservedDiff"/>
  <affected-histogram name="NQE.Accuracy.HttpRTT.EstimatedObservedDiff"/>
  <affected-histogram name="NQE.Accuracy.TransportRTT.EstimatedObservedDiff"/>
  <affected-histogram
      name="NQE.ExternalEstimateProvider.RTT.Accuracy.EstimatedObservedDiff"/>
  <affected-histogram
      name="NQE.UnweightedAverage.Accuracy.HttpRTT.EstimatedObservedDiff"/>
  <affected-histogram
      name="NQE.WeightedAverage.Accuracy.HttpRTT.EstimatedObservedDiff"/>
</histogram_suffixes>

<histogram_suffixes name="NQE.Accuracy.Metric.AccuracyRecordingIntervals"
    separator=".">
  <suffix name="15"
      label="Recorded approximately 15 seconds after navigation start"/>
  <suffix name="30"
      label="Recorded approximately 30 seconds after navigation start">
    <obsolete>
      Deprecated as of 01/2017.
    </obsolete>
  </suffix>
  <suffix name="60"
      label="Recorded approximately 60 seconds after navigation start">
    <obsolete>
      Deprecated as of 01/2017.
    </obsolete>
  </suffix>
  <affected-histogram
      name="NQE.Accuracy.DownstreamThroughputKbps.EstimatedObservedDiff.Negative"/>
  <affected-histogram
      name="NQE.Accuracy.DownstreamThroughputKbps.EstimatedObservedDiff.Positive"/>
  <affected-histogram
      name="NQE.Accuracy.EffectiveConnectionType.EstimatedObservedDiff.Negative"/>
  <affected-histogram
      name="NQE.Accuracy.EffectiveConnectionType.EstimatedObservedDiff.Positive"/>
  <affected-histogram
      name="NQE.Accuracy.HttpRTT.EstimatedObservedDiff.Negative"/>
  <affected-histogram
      name="NQE.Accuracy.HttpRTT.EstimatedObservedDiff.Positive"/>
  <affected-histogram
      name="NQE.Accuracy.TransportRTT.EstimatedObservedDiff.Negative"/>
  <affected-histogram
      name="NQE.Accuracy.TransportRTT.EstimatedObservedDiff.Positive"/>
  <affected-histogram
      name="NQE.ExternalEstimateProvider.RTT.Accuracy.EstimatedObservedDiff.Negative"/>
  <affected-histogram
      name="NQE.ExternalEstimateProvider.RTT.Accuracy.EstimatedObservedDiff.Positive"/>
  <affected-histogram
      name="NQE.UnweightedAverage.Accuracy.HttpRTT.EstimatedObservedDiff.Negative"/>
  <affected-histogram
      name="NQE.UnweightedAverage.Accuracy.HttpRTT.EstimatedObservedDiff.Positive"/>
  <affected-histogram
      name="NQE.WeightedAverage.Accuracy.HttpRTT.EstimatedObservedDiff.Negative"/>
  <affected-histogram
      name="NQE.WeightedAverage.Accuracy.HttpRTT.EstimatedObservedDiff.Positive"/>
</histogram_suffixes>

<histogram_suffixes
    name="NQE.Accuracy.Metric.EffectiveConnectionType.ObservedIntervals"
    separator=".">
  <suffix name="2G" label="Observed effective connection type was 2G"/>
  <suffix name="3G" label="Observed effective connection type was 3G"/>
  <suffix name="4G" label="Observed effective connection type was 4G"/>
  <suffix name="Broadband"
      label="Observed effective connection type was Broadband"/>
  <suffix name="Offline"
      label="Observed effective connection type was Offline"/>
  <suffix name="Slow2G" label="Observed effective connection type was Slow2G"/>
  <suffix name="Unknown"
      label="Observed effective connection type was Unknown"/>
  <affected-histogram
      name="NQE.Accuracy.EffectiveConnectionType.EstimatedObservedDiff.Negative.15"/>
  <affected-histogram
      name="NQE.Accuracy.EffectiveConnectionType.EstimatedObservedDiff.Negative.30">
    <obsolete>
      Deprecated 01/2017.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="NQE.Accuracy.EffectiveConnectionType.EstimatedObservedDiff.Negative.60">
    <obsolete>
      Deprecated 01/2017.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="NQE.Accuracy.EffectiveConnectionType.EstimatedObservedDiff.Positive.15"/>
  <affected-histogram
      name="NQE.Accuracy.EffectiveConnectionType.EstimatedObservedDiff.Positive.30">
    <obsolete>
      Deprecated 01/2017.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="NQE.Accuracy.EffectiveConnectionType.EstimatedObservedDiff.Positive.60">
    <obsolete>
      Deprecated 01/2017.
    </obsolete>
  </affected-histogram>
</histogram_suffixes>

<histogram_suffixes name="NQE.Accuracy.RTT.ObservedIntervals" separator=".">
  <suffix name="0_20"
      label="Observed metric was between 0 and 20 (inclusive) units"/>
  <suffix name="20_60"
      label="Observed metric was between 20 and 60 (inclusive) units"/>
  <suffix name="60_140"
      label="Observed metric was between 60 and 140 (inclusive) units"/>
  <suffix name="140_300"
      label="Observed metric was between 140 and 300 (inclusive) units"/>
  <suffix name="300_620"
      label="Observed metric was between 300 and 620 (inclusive) units"/>
  <suffix name="620_1260"
      label="Observed metric was between 620 and 1260 (inclusive) units"/>
  <suffix name="1260_2540"
      label="Observed metric was between 1260 and 2540 (inclusive) units"/>
  <suffix name="2540_5100"
      label="Observed metric was between 2540 and 51000 (inclusive) units"/>
  <suffix name="5100_Infinity"
      label="Observed metric was greater than 5100 (inclusive) units"/>
  <affected-histogram
      name="NQE.Accuracy.DownstreamThroughputKbps.EstimatedObservedDiff.Negative.15"/>
  <affected-histogram
      name="NQE.Accuracy.DownstreamThroughputKbps.EstimatedObservedDiff.Negative.30">
    <obsolete>
      Deprecated 01/2017.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="NQE.Accuracy.DownstreamThroughputKbps.EstimatedObservedDiff.Negative.60">
    <obsolete>
      Deprecated 01/2017.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="NQE.Accuracy.DownstreamThroughputKbps.EstimatedObservedDiff.Positive.15"/>
  <affected-histogram
      name="NQE.Accuracy.DownstreamThroughputKbps.EstimatedObservedDiff.Positive.30">
    <obsolete>
      Deprecated 01/2017.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="NQE.Accuracy.DownstreamThroughputKbps.EstimatedObservedDiff.Positive.60">
    <obsolete>
      Deprecated 01/2017.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="NQE.Accuracy.HttpRTT.EstimatedObservedDiff.Negative.15"/>
  <affected-histogram
      name="NQE.Accuracy.HttpRTT.EstimatedObservedDiff.Negative.30">
    <obsolete>
      Deprecated 01/2017.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="NQE.Accuracy.HttpRTT.EstimatedObservedDiff.Negative.60">
    <obsolete>
      Deprecated 01/2017.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="NQE.Accuracy.HttpRTT.EstimatedObservedDiff.Positive.15"/>
  <affected-histogram
      name="NQE.Accuracy.HttpRTT.EstimatedObservedDiff.Positive.30">
    <obsolete>
      Deprecated 01/2017.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="NQE.Accuracy.HttpRTT.EstimatedObservedDiff.Positive.60">
    <obsolete>
      Deprecated 01/2017.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="NQE.Accuracy.TransportRTT.EstimatedObservedDiff.Negative.15"/>
  <affected-histogram
      name="NQE.Accuracy.TransportRTT.EstimatedObservedDiff.Negative.30">
    <obsolete>
      Deprecated 01/2017.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="NQE.Accuracy.TransportRTT.EstimatedObservedDiff.Negative.60">
    <obsolete>
      Deprecated 01/2017.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="NQE.Accuracy.TransportRTT.EstimatedObservedDiff.Positive.15"/>
  <affected-histogram
      name="NQE.Accuracy.TransportRTT.EstimatedObservedDiff.Positive.30">
    <obsolete>
      Deprecated 01/2017.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="NQE.Accuracy.TransportRTT.EstimatedObservedDiff.Positive.60">
    <obsolete>
      Deprecated 01/2017.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="NQE.ExternalEstimateProvider.RTT.Accuracy.EstimatedObservedDiff.Negative.15"/>
  <affected-histogram
      name="NQE.ExternalEstimateProvider.RTT.Accuracy.EstimatedObservedDiff.Negative.30">
    <obsolete>
      Deprecated 01/2017.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="NQE.ExternalEstimateProvider.RTT.Accuracy.EstimatedObservedDiff.Negative.60">
    <obsolete>
      Deprecated 01/2017.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="NQE.ExternalEstimateProvider.RTT.Accuracy.EstimatedObservedDiff.Positive.15"/>
  <affected-histogram
      name="NQE.ExternalEstimateProvider.RTT.Accuracy.EstimatedObservedDiff.Positive.30">
    <obsolete>
      Deprecated 01/2017.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="NQE.ExternalEstimateProvider.RTT.Accuracy.EstimatedObservedDiff.Positive.60">
    <obsolete>
      Deprecated 01/2017.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="NQE.UnweightedAverage.Accuracy.HttpRTT.EstimatedObservedDiff.Negative.15"/>
  <affected-histogram
      name="NQE.UnweightedAverage.Accuracy.HttpRTT.EstimatedObservedDiff.Positive.15"/>
  <affected-histogram
      name="NQE.WeightedAverage.Accuracy.HttpRTT.EstimatedObservedDiff.Negative.15"/>
  <affected-histogram
      name="NQE.WeightedAverage.Accuracy.HttpRTT.EstimatedObservedDiff.Positive.15"/>
</histogram_suffixes>

<histogram_suffixes name="NQE.DifferentPercentiles" separator=".">
  <obsolete>
    Deprecated 01/2018.
  </obsolete>
  <suffix name="Percentile0" label="0th percentile"/>
  <suffix name="Percentile10" label="10th percentile"/>
  <suffix name="Percentile50" label="50th percentile"/>
  <suffix name="Percentile90" label="90th percentile"/>
  <suffix name="Percentile100" label="100th percentile"/>
  <affected-histogram name="NQE.RTT"/>
  <affected-histogram name="NQE.TransportRTT"/>
</histogram_suffixes>

<histogram_suffixes name="NQE.DifferentPercentiles" separator=".">
  <suffix name="Percentile50" label="50th percentile"/>
  <affected-histogram name="NQE.MainFrame.Kbps"/>
  <affected-histogram name="NQE.MainFrame.RTT"/>
  <affected-histogram name="NQE.MainFrame.TransportRTT"/>
</histogram_suffixes>

<histogram_suffixes name="NQE.EstimateAvailable.MainFrame.Histograms"
    separator=".">
  <suffix name="Kbps"
      label="Records availability of the downstream throughput estimate."/>
  <suffix name="RTT" label="Records availability of the HTTP RTT estimate."/>
  <suffix name="TransportRTT"
      label="Records availability of the transport RTT estimate."/>
  <affected-histogram name="NQE.EstimateAvailable.MainFrame"/>
</histogram_suffixes>

<histogram_suffixes name="NQE.NetworkTypes" separator=".">
  <obsolete>
    Deprecated 01/2018.
  </obsolete>
  <suffix name="2G" label="On 2G network"/>
  <suffix name="3G" label="On 3G Network"/>
  <suffix name="4G" label="On 4G network"/>
  <suffix name="Bluetooth" label="On Bluetooth network"/>
  <suffix name="Ethernet" label="On Ethernet network"/>
  <suffix name="None" label="With no detected network"/>
  <suffix name="Unknown" label="On Unknown network"/>
  <suffix name="WiFi" label="On WiFi network"/>
  <affected-histogram name="NQE.FastestRTT"/>
  <affected-histogram name="NQE.MainFrame.EffectiveConnectionType">
    <obsolete>
      Deprecated 08/2017.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="NQE.MainFrame.Kbps.Percentile50">
    <obsolete>
      Deprecated 08/2017.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="NQE.MainFrame.RTT.Percentile50">
    <obsolete>
      Deprecated 08/2017.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="NQE.MainFrame.TransportRTT.Percentile50">
    <obsolete>
      Deprecated 08/2017.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="NQE.PeakKbps"/>
  <affected-histogram name="NQE.RTT.Percentile0">
    <obsolete>
      Deprecated 01/2018.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="NQE.RTT.Percentile10">
    <obsolete>
      Deprecated 01/2018.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="NQE.RTT.Percentile100">
    <obsolete>
      Deprecated 01/2018.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="NQE.RTT.Percentile50">
    <obsolete>
      Deprecated 01/2018.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="NQE.RTT.Percentile90">
    <obsolete>
      Deprecated 01/2018.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="NQE.TransportRTT.Percentile0">
    <obsolete>
      Deprecated 01/2018.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="NQE.TransportRTT.Percentile10">
    <obsolete>
      Deprecated 01/2018.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="NQE.TransportRTT.Percentile100">
    <obsolete>
      Deprecated 01/2018.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="NQE.TransportRTT.Percentile50">
    <obsolete>
      Deprecated 01/2018.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="NQE.TransportRTT.Percentile90">
    <obsolete>
      Deprecated 01/2018.
    </obsolete>
  </affected-histogram>
</histogram_suffixes>

<histogram_suffixes name="NQE.ObservationSources" separator=".">
  <suffix name="Http" label="Observed from HTTP requests"/>
  <suffix name="HttpCachedEstimate" label="Cached HTTP layer observation"/>
  <suffix name="HttpExternalEstimate" label="From external estimate provider"/>
  <suffix name="HttpPlatform" label="Synthetic HTTP layer observation"/>
  <suffix name="Quic" label="Observed from QUIC"/>
  <suffix name="Tcp" label="Observed from TCP sockets"/>
  <suffix name="TransportCachedEstimate"
      label="Cached transport layer observation"/>
  <suffix name="TransportPlatform"
      label="Synthetic transport layer observation"/>
  <affected-histogram name="NQE.Kbps.RawObservation"/>
  <affected-histogram name="NQE.RTT.RawObservation"/>
</histogram_suffixes>

<histogram_suffixes name="NumLayersBucket" separator=".">
  <obsolete>
    Deprecated 2018-07 as the non bucketed metrics are enough for future
    reference.
  </obsolete>
  <suffix name="0" label="Layer count bucket [0, 10)"/>
  <suffix name="1" label="Layer count bucket [10, 30)"/>
  <suffix name="2" label="Layer count bucket [30, 70)"/>
  <suffix name="3" label="Layer count bucket [70, 150)"/>
  <suffix name="4" label="Layer count bucket [150, infinity)"/>
  <affected-histogram name="Compositing.Browser.LayersUpdateTime"/>
  <affected-histogram name="Compositing.Renderer.LayersUpdateTime"/>
</histogram_suffixes>

<histogram_suffixes name="OffDomainInclusionAbortReason" separator=".">
  <obsolete>
    Deprecated 2016-05 as the OffDomainInclusionDetector was removed.
  </obsolete>
  <suffix name="EmptyMainFrameURL" label="The main frame URL was empty."/>
  <suffix name="HistoryLookupFailed"
      label="The lookup to the HistoryService failed."/>
  <suffix name="Incognito"
      label="The profile associated with the frame under analysis is an
             incognito profile."/>
  <suffix name="NoHistoryService"
      label="There was no HistoryService associated with the profile of the
             frame under analysis (this can happen seldomly on startup for
             early net requests, or on shutdown by the asynchronous nature of
             the analysis, but shouldn't be common)."/>
  <suffix name="NoProfile"
      label="The profile associated with the frame under analysis couldn't be
             resolved (expected to happen at a low frequency by the
             asynchronous nature of the analysis)."/>
  <affected-histogram name="SBOffDomainInclusion.Abort"/>
  <affected-histogram name="SBOffDomainInclusion2.Abort"/>
</histogram_suffixes>

<histogram_suffixes name="OfflineItemsSource" separator=".">
  <suffix name="Downloads" label="Downloads"/>
  <suffix name="OfflinePages" label="Offline pages"/>
  <affected-histogram name="Android.OfflineItems.StateAtCancel"/>
</histogram_suffixes>

<histogram_suffixes name="OfflinePagesArchiveDirectoryType" separator=".">
  <suffix name="Persistent" label="Persistent archive directory"/>
  <suffix name="Temporary" label="Temporary archive directory"/>
  <affected-histogram
      name="OfflinePages.ArchiveManager.ArchiveDirsCreationResult2"/>
</histogram_suffixes>

<histogram_suffixes name="OfflinePagesNamespace" separator=".">
  <suffix name="async_loading" label="Offline async loaded pages"/>
  <suffix name="auto_async_loading"
      label="Automatic offline async loaded pages"/>
  <suffix name="bookmark" label="Offline bookmark cache"/>
  <suffix name="browser_actions" label="Offline Browser Actions pages"/>
  <suffix name="custom_tabs" label="Offline custom tabs"/>
  <suffix name="download" label="Offline downloaded pages"/>
  <suffix name="last_n" label="Offline recent pages"/>
  <suffix name="ntp_suggestions" label="NTP suggestions offlined by the user"/>
  <suffix name="suggested_articles" label="Prefetched NTP suggestions"/>
  <affected-histogram name="OfflinePages.AccessEntryPoint"/>
  <affected-histogram
      name="OfflinePages.Background.BackgroundLoadingFailedCode"/>
  <affected-histogram
      name="OfflinePages.Background.EffectiveConnectionType.OffliningStartType"/>
  <affected-histogram
      name="OfflinePages.Background.EffectiveConnectionType.SavePageLater"/>
  <affected-histogram name="OfflinePages.Background.FinalSavePageResult"/>
  <affected-histogram name="OfflinePages.Background.LoadingErrorStatusCode"/>
  <affected-histogram name="OfflinePages.Background.OfflinerRequestStatus"/>
  <affected-histogram name="OfflinePages.Background.OffliningPreviewStatus"/>
  <affected-histogram name="OfflinePages.Background.SavePageFromCCT"/>
  <affected-histogram name="OfflinePages.Background.TimeToCanceled"/>
  <affected-histogram name="OfflinePages.Background.TimeToSaved"/>
  <affected-histogram name="OfflinePages.Background.TimeToStart"/>
  <affected-histogram name="OfflinePages.Background.TimeToStart.Svelte"/>
  <affected-histogram name="OfflinePages.ClearStoragePreRunUsage"/>
  <affected-histogram name="OfflinePages.ClearStoragePreRunUsage2"/>
  <affected-histogram name="OfflinePages.DeletePage.AccessCount"/>
  <affected-histogram name="OfflinePages.DeletePage.LastOpenToCreated"/>
  <affected-histogram name="OfflinePages.DeletePage.PageSize"/>
  <affected-histogram name="OfflinePages.DeletePage.TimeSinceLastOpen"/>
  <affected-histogram name="OfflinePages.ExpirePage.PageLifetime"/>
  <affected-histogram name="OfflinePages.ExpirePage.TimeSinceLastAccess"/>
  <affected-histogram name="OfflinePages.FirstOpenSinceCreated"/>
  <affected-histogram name="OfflinePages.MhtmlLoadResult"/>
  <affected-histogram name="OfflinePages.OpenSinceLastOpen"/>
  <affected-histogram name="OfflinePages.PageAccessInterval"/>
  <affected-histogram name="OfflinePages.PageLifetime"/>
  <affected-histogram name="OfflinePages.PageSize"/>
  <affected-histogram name="OfflinePages.PageSizeOnAccess.Offline"/>
  <affected-histogram name="OfflinePages.PageSizeOnAccess.Online"/>
  <affected-histogram name="OfflinePages.SavePage.AddPageTime"/>
  <affected-histogram name="OfflinePages.SavePage.ComputeDigestTime"/>
  <affected-histogram name="OfflinePages.SavePage.CreateArchiveTime"/>
  <affected-histogram name="OfflinePages.SavePage.PublishArchiveTime"/>
  <affected-histogram name="OfflinePages.SavePageResult"/>
  <affected-histogram name="OfflinePages.SavePageTime"/>
</histogram_suffixes>

<histogram_suffixes name="OfflinePrefechItemFinalOutcome" separator=".">
  <suffix name="Failed"
      label="For items that failed being prefetched for any reason."/>
  <suffix name="Successful" label="For items that were completed sucessfully."/>
  <affected-histogram name="OfflinePages.Prefetching.ItemLifetime"/>
</histogram_suffixes>

<histogram_suffixes name="OfflinePrefechRetriableAction" separator=".">
  <suffix name="DownloadInitiation"
      label="Action: start downloading an archive."/>
  <suffix name="GeneratePageBundle"
      label="Action: GeneratePageBundle request."/>
  <suffix name="GetOperation" label="Action: GetOperation request."/>
  <affected-histogram name="OfflinePages.Prefetching.ActionAttempts"/>
  <affected-histogram name="OfflinePages.Prefetching.ActionRetryAttempts"/>
</histogram_suffixes>

<histogram_suffixes name="OffTheRecordType" separator=".">
  <suffix name="NonOTR" label="Non off-the-record profile"/>
  <suffix name="OTR" label="Off-the-record profile"/>
  <affected-histogram name="Tab.TabUnderAction"/>
</histogram_suffixes>

<histogram_suffixes name="OmniboxFocusFirstAction" separator=".">
  <suffix name="Copy" label="Copy action was performed."/>
  <suffix name="Cut" label="Cut action was performed."/>
  <suffix name="Share" label="Share action was performed."/>
  <affected-histogram name="Omnibox.TimeUntilFirst"/>
</histogram_suffixes>

<histogram_suffixes name="OmniboxPageContext" separator=".">
  <suffix name="APP_HOME" label="home screen"/>
  <suffix name="APP_MAPS" label="maps app"/>
  <suffix name="APP_SEARCH" label="search app"/>
  <suffix name="BLANK" label="about:blank"/>
  <suffix name="HOME_PAGE" label="the user's home page"/>
  <suffix name="INSTANT_NTP_WITH_FAKEBOX_AS_STARTING_FOCUS"
      label="new tab page with fakebox as starting focus"/>
  <suffix name="INSTANT_NTP_WITH_OMNIBOX_AS_STARTING_FOCUS"
      label="new tab page with omnibox as starting focus"/>
  <suffix name="INVALID_SPEC" label="invalid spec; shouldn't happen"/>
  <suffix name="NTP"
      label="extension-replaced new tab page OR obsolete new tab page"/>
  <suffix name="OBSOLETE_INSTANT_NTP" label="obsolete: instant new tab page"/>
  <suffix name="OBSOLETE_SEARCH_RESULT_PAGE_DOING_SEARCH_TERM_REPLACEMENT"
      label="obsolete: search results page with search term replacement"/>
  <suffix name="OTHER"
      label="other (typically an arbitrary URL, not a search results page,
             new tab page, etc.)"/>
  <suffix name="SEARCH_BUTTON_AS_STARTING_FOCUS"
      label="interaction starting with the search button"/>
  <suffix name="SEARCH_RESULT_PAGE_NO_SEARCH_TERM_REPLACEMENT"
      label="search results page without search term replacement"/>
  <affected-histogram name="Omnibox.SuggestionUsed.Provider.ByPageContext"/>
  <affected-histogram
      name="Omnibox.SuggestionUsed.ProviderAndResultType.ByPageContext"/>
  <affected-histogram name="Omnibox.SuggestionUsed.SearchVsUrl.ByPageContext"/>
</histogram_suffixes>

<histogram_suffixes name="OmniboxProviderTime" separator=".">
  <suffix name="Bookmark"/>
  <suffix name="Builtin"/>
  <suffix name="Contact"/>
  <suffix name="ExtensionApp"/>
  <suffix name="HistoryContents"/>
  <suffix name="HistoryQuick"/>
  <suffix name="HistoryURL"/>
  <suffix name="Keyword"/>
  <suffix name="Search"/>
  <suffix name="Shortcuts"/>
  <suffix name="ZeroSuggest"/>
  <affected-histogram name="Omnibox.ProviderTime"/>
  <affected-histogram name="Omnibox.ProviderTime2"/>
</histogram_suffixes>

<histogram_suffixes name="OobeScreenName" separator=".">
  <suffix name="Eula"/>
  <suffix name="Hid-detection"/>
  <suffix name="Image"/>
  <suffix name="Network"/>
  <suffix name="Update"/>
  <suffix name="Wrong-hwid"/>
  <affected-histogram name="OOBE.StepCompletionTime"/>
</histogram_suffixes>

<histogram_suffixes name="OtherActivityProcesses" separator=".">
  <suffix name="gpu-process"/>
  <suffix name="ppapi"/>
  <suffix name="renderer"/>
  <suffix name="setup"/>
  <suffix name="utility"/>
  <affected-histogram name="UMA.Histograms.Activity"/>
</histogram_suffixes>

<histogram_suffixes name="OutOfRaster" separator=".">
  <suffix name="OutOfRaster"
      label="Task was not performed as part of a raster task."/>
  <affected-histogram name="Renderer4.GpuImageDecodeState.FirstLockWasted"/>
  <affected-histogram
      name="Renderer4.SoftwareImageDecodeState.FirstLockWasted"/>
</histogram_suffixes>

<histogram_suffixes name="OverlappedReadImpact" separator="_">
  <obsolete>
    Experiments no longer active.
  </obsolete>
  <suffix name="OverlappedReadDisabled" label="Non-blocking reads"/>
  <suffix name="OverlappedReadEnabled" label="Default, async reads"/>
  <affected-histogram name="Net.HttpJob.TotalTime"/>
  <affected-histogram name="Net.HttpJob.TotalTimeCached"/>
  <affected-histogram name="Net.HttpJob.TotalTimeCancel"/>
  <affected-histogram name="Net.HttpJob.TotalTimeNotCached"/>
  <affected-histogram name="Net.HttpJob.TotalTimeSuccess"/>
  <affected-histogram name="PLT.Abandoned"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadNormal"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadReload"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadStaleOk"/>
  <affected-histogram name="PLT.BeginToFinish_NormalLoad"/>
  <affected-histogram name="PLT.LoadType"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadBackgrounded" separator=".">
  <obsolete>
    Deprecated in favor of PageLoadBackgrounded2.
  </obsolete>
  <suffix name="BG"
      label="Event occurred at least partially in the background"/>
  <affected-histogram
      name="PageLoad.Timing2.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram name="PageLoad.Timing2.NavigationToFirstLayout"/>
  <affected-histogram name="PageLoad.Timing2.NavigationToFirstTextPaint"/>
  <affected-histogram name="PageLoad.Timing2.NavigationToLoadEventFired"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadBackgrounded2" separator=".">
  <suffix name="Background"
      label="The page was backgrounded at least once from navigation start to
             this event."/>
  <affected-histogram
      name="PageLoad.Clients.DocWrite.Block.ParseTiming.ParseBlockedOnScriptLoad"/>
  <affected-histogram
      name="PageLoad.Clients.DocWrite.Block.ParseTiming.ParseBlockedOnScriptLoadFromDocumentWrite"/>
  <affected-histogram
      name="PageLoad.Clients.DocWrite.Block.ParseTiming.ParseDuration"/>
  <affected-histogram
      name="PageLoad.Clients.DocWrite.Block.Timing2.ParseBlockedOnScriptLoad"/>
  <affected-histogram
      name="PageLoad.Clients.DocWrite.Block.Timing2.ParseBlockedOnScriptLoad.ParseComplete"/>
  <affected-histogram
      name="PageLoad.Clients.DocWrite.Block.Timing2.ParseBlockedOnScriptLoadFromDocumentWrite"/>
  <affected-histogram
      name="PageLoad.Clients.DocWrite.Block.Timing2.ParseBlockedOnScriptLoadFromDocumentWrite.ParseComplete"/>
  <affected-histogram
      name="PageLoad.Clients.DocWrite.Block.Timing2.ParseDuration"/>
  <affected-histogram
      name="PageLoad.Clients.MultiTabLoading.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram
      name="PageLoad.Clients.MultiTabLoading.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker.ParseTiming.NavigationToParseStart"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker.Timing2.NavigationToFirstContentfulPaint">
    <obsolete>
      Deprecated in favor of PaintTiming equivalent.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.ParseTiming.NavigationToParseStart"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram name="PageLoad.DocumentTiming.NavigationToFirstLayout"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram name="PageLoad.Events.Committed"/>
  <affected-histogram name="PageLoad.Events.Provisional"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.PaintTiming.NavigationToFirstImagePaint"/>
  <affected-histogram name="PageLoad.PaintTiming.NavigationToFirstPaint"/>
  <affected-histogram name="PageLoad.PaintTiming.NavigationToFirstTextPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.ParseStartToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.ParseTiming.NavigationToParseStart"/>
  <affected-histogram name="PageLoad.ParseTiming.ParseBlockedOnScriptLoad"/>
  <affected-histogram
      name="PageLoad.ParseTiming.ParseBlockedOnScriptLoadFromDocumentWrite"/>
  <affected-histogram name="PageLoad.ParseTiming.ParseDuration"/>
  <affected-histogram name="PageLoad.Timing2.NavigationToCommit"/>
  <affected-histogram
      name="PageLoad.Timing2.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram name="PageLoad.Timing2.NavigationToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.Timing2.NavigationToFirstImagePaint"/>
  <affected-histogram name="PageLoad.Timing2.NavigationToFirstLayout"/>
  <affected-histogram name="PageLoad.Timing2.NavigationToFirstPaint"/>
  <affected-histogram name="PageLoad.Timing2.NavigationToFirstTextPaint"/>
  <affected-histogram name="PageLoad.Timing2.NavigationToLoadEventFired"/>
  <affected-histogram name="PageLoad.Timing2.ParseBlockedOnScriptLoad"/>
  <affected-histogram
      name="PageLoad.Timing2.ParseBlockedOnScriptLoad.ParseComplete"/>
  <affected-histogram
      name="PageLoad.Timing2.ParseBlockedOnScriptLoadFromDocumentWrite"/>
  <affected-histogram
      name="PageLoad.Timing2.ParseBlockedOnScriptLoadFromDocumentWrite.ParseComplete"/>
  <affected-histogram name="PageLoad.Timing2.ParseDuration"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadEventConditions" separator=".">
  <suffix name="AfterCommit.BeforePaint"/>
  <suffix base="true" name="AfterPaint.Before1sDelayedInteraction"/>
  <suffix base="true" name="AfterPaint.BeforeInteraction"/>
  <suffix name="BeforeCommit"/>
  <suffix name="DuringParse"/>
  <affected-histogram name="PageLoad.AbortTiming.Background"/>
  <affected-histogram name="PageLoad.AbortTiming.ClientRedirect"/>
  <affected-histogram name="PageLoad.AbortTiming.Close"/>
  <affected-histogram name="PageLoad.AbortTiming.ForwardBackNavigation"/>
  <affected-histogram name="PageLoad.AbortTiming.NewNavigation"/>
  <affected-histogram name="PageLoad.AbortTiming.Other"/>
  <affected-histogram name="PageLoad.AbortTiming.Reload"/>
  <affected-histogram name="PageLoad.AbortTiming.Stop"/>
  <affected-histogram name="PageLoad.AbortTiming.UnknownNavigation"/>
  <affected-histogram name="PageLoad.Experimental.AbortTiming.Background"/>
  <affected-histogram name="PageLoad.Experimental.AbortTiming.ClientRedirect"/>
  <affected-histogram name="PageLoad.Experimental.AbortTiming.Close"/>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.ForwardBackNavigation"/>
  <affected-histogram name="PageLoad.Experimental.AbortTiming.NewNavigation"/>
  <affected-histogram name="PageLoad.Experimental.AbortTiming.Other"/>
  <affected-histogram name="PageLoad.Experimental.AbortTiming.Reload"/>
  <affected-histogram name="PageLoad.Experimental.AbortTiming.Stop"/>
  <affected-histogram name="PageLoad.Timing2.NavigationToFirstBackground">
    <obsolete>
      deprecated in favor of PageLoad.AbortTiming.Background.*
    </obsolete>
  </affected-histogram>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsAfterBuffering" separator=".">
  <suffix name="AfterBuffering"
      label="Recorded after buffering of timing updates in the browser
             process has completed."/>
  <affected-histogram name="PageLoad.Internal.OutOfOrderInterFrameTiming"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsAfterPaint" separator=".">
  <suffix name="AfterPaint"
      label="Limited to the duration of time starting after first paint, for
             page loads that reached first paint."/>
  <affected-histogram
      name="PageLoad.Clients.FromGoogleSearch.PageTiming.ForegroundDuration"/>
  <affected-histogram
      name="PageLoad.Clients.SubresourceFilter.PageTiming.ForegroundDuration"/>
  <affected-histogram name="PageLoad.PageTiming.ForegroundDuration"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsAfterRedirectToNonAmpPage"
    separator=".">
  <suffix name="RedirectToNonAmpPage"
      label="Limited to redirects to non-AMP pages."/>
  <affected-histogram
      name="PageLoad.Clients.AMP.AmpCache.ParseTiming.NavigationToParseStart"/>
  <affected-histogram
      name="PageLoad.Clients.AMP.GoogleNews.ParseTiming.NavigationToParseStart"/>
  <affected-histogram
      name="PageLoad.Clients.AMP.GoogleSearch.ParseTiming.NavigationToParseStart"/>
  <affected-histogram
      name="PageLoad.Clients.AMP.ParseTiming.NavigationToParseStart"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsAtTimingCallbackDispatch"
    separator=".">
  <suffix name="AtTimingCallbackDispatch"
      label="Evaluated at the time timing update calls are dispatched to
             observers."/>
  <affected-histogram name="PageLoad.Internal.PageLoadTimingStatus"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsCacheInfo" separator=".">
  <suffix name="NoStore" label="Main resource had cache-control: no-store"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker.PaintTiming.NavigationToFirstContentfulPaint.LoadType.ForwardBackNavigation"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker.ParseTiming.NavigationToParseStart.LoadType.ForwardBackNavigation"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.PaintTiming.NavigationToFirstContentfulPaint.LoadType.ForwardBackNavigation"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.ParseTiming.NavigationToParseStart.LoadType.ForwardBackNavigation"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint.LoadType.ForwardBackNavigation"/>
  <affected-histogram
      name="PageLoad.ParseTiming.NavigationToParseStart.LoadType.ForwardBackNavigation"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsAmp" separator="."
    ordering="prefix">
  <suffix name="Clients.AMP"
      label="AMP page load. Same page navigations are not tracked."/>
  <suffix name="Clients.AMP.AmpCache"
      label="AMP page load from the AMP cache CDN."/>
  <suffix name="Clients.AMP.GoogleNews"
      label="AMP page load in the Google News AMP viewer. Same page
             navigations are not tracked."/>
  <suffix name="Clients.AMP.GoogleSearch"
      label="AMP page load in the Google Search AMP viewer. Same page
             navigations are not tracked."/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram name="PageLoad.DocumentTiming.NavigationToFirstLayout"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.ParseTiming.NavigationToParseStart"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsAmpCachePages" separator="."
    ordering="prefix">
  <obsolete>
    Deprecated in favor of PageLoad.Clients.AMPCache2.*.
  </obsolete>
  <suffix name="Clients.AMPCache"
      label="PageLoadMetrics that are a result of a navigations to an AMP
             cache page. Same page navigations are not tracked."/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram name="PageLoad.DocumentTiming.NavigationToFirstLayout"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.ParseTiming.NavigationToParseStart"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsAmpCachePages2" separator="."
    ordering="prefix">
  <obsolete>
    Deprecated in favor of PageLoad.Clients.AMP.*.
  </obsolete>
  <suffix name="Clients.AMPCache2"
      label="PageLoadMetrics that are a result of a navigations to an AMP
             cache page. Same page navigations are not tracked."/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram name="PageLoad.DocumentTiming.NavigationToFirstLayout"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.ParseTiming.NavigationToParseStart"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsCssScanner" separator="."
    ordering="prefix">
  <obsolete>
    Deprecated September 2018
  </obsolete>
  <suffix name="Clients.CssScanner"
      label="Metrics from pages scanned by the preload scanner for @import
             CSS rules"/>
  <affected-histogram
      name="PageLoad.Experimental.PaintTiming.ParseStartToFirstMeaningfulPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.ParseStartToFirstContentfulPaint"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsDataReductionProxy"
    separator="." ordering="prefix">
  <suffix name="Clients.DataReductionProxy"
      label="PageLoadMetrics that are a result of a navigation through the
             data reduction proxy."/>
  <suffix name="Clients.DataReductionProxy.LoFiOn"
      label="PageLoadMetrics that are a result of a navigation through the
             data reduction proxy with session in LoFi enabled or control
             field trial, and when the connection was slow.">
    <obsolete>
      Deprecated 05/2018.
    </obsolete>
  </suffix>
  <suffix name="Clients.Previews.LitePages"
      label="PageLoadMetrics that are a result of a navigation through the
             data reduction proxy where a lite page response was received."/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram name="PageLoad.DocumentTiming.NavigationToFirstLayout"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram name="PageLoad.Experimental.Bytes.Network"/>
  <affected-histogram name="PageLoad.Experimental.CompletedResources.Network"/>
  <affected-histogram
      name="PageLoad.Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.PaintTiming.NavigationToFirstImagePaint"/>
  <affected-histogram name="PageLoad.PaintTiming.NavigationToFirstPaint"/>
  <affected-histogram name="PageLoad.PaintTiming.NavigationToFirstTextPaint"/>
  <affected-histogram name="PageLoad.ParseTiming.NavigationToParseStart"/>
  <affected-histogram name="PageLoad.ParseTiming.ParseBlockedOnScriptLoad"/>
  <affected-histogram name="PageLoad.ParseTiming.ParseDuration"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsDataReductionProxyResources"
    separator=".">
  <suffix name="NonProxied"
      label="Resources not loaded through data reduction proxy."/>
  <suffix name="PercentProxied"
      label="Percent of resources loaded through data reduction proxy."/>
  <suffix name="Proxied"
      label="Resources loaded through data reduction proxy."/>
  <affected-histogram
      name="PageLoad.Clients.DataReductionProxy.Experimental.CompletedResources.Network">
    <obsolete>
      Deprecated 10/2018
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="PageLoad.Clients.DataReductionProxy.Experimental.CompletedResources.Network2"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsDocWrite" separator="."
    ordering="prefix">
  <suffix name="Clients.DocWrite.Block"
      label="PageLoadMetrics from a page that has synchronous, cross-origin
             document.written scripts that could be blocked if the
             document.write script blocking feature is enabled."/>
  <affected-histogram
      name="PageLoad.Experimental.PaintTiming.ParseStartToFirstMeaningfulPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.ParseStartToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.ParseTiming.ParseBlockedOnScriptExecution"/>
  <affected-histogram
      name="PageLoad.ParseTiming.ParseBlockedOnScriptExecutionFromDocumentWrite"/>
  <affected-histogram name="PageLoad.ParseTiming.ParseBlockedOnScriptLoad"/>
  <affected-histogram
      name="PageLoad.ParseTiming.ParseBlockedOnScriptLoadFromDocumentWrite"/>
  <affected-histogram name="PageLoad.ParseTiming.ParseDuration"/>
  <affected-histogram name="PageLoad.Timing2.NavigationToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.Timing2.ParseBlockedOnScriptLoad"/>
  <affected-histogram
      name="PageLoad.Timing2.ParseBlockedOnScriptLoad.ParseComplete"/>
  <affected-histogram
      name="PageLoad.Timing2.ParseBlockedOnScriptLoadFromDocumentWrite"/>
  <affected-histogram
      name="PageLoad.Timing2.ParseBlockedOnScriptLoadFromDocumentWrite.ParseComplete"/>
  <affected-histogram name="PageLoad.Timing2.ParseDuration"/>
  <affected-histogram name="PageLoad.Timing2.ParseStartToFirstContentfulPaint"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsFromGoogleSearch" separator="."
    ordering="prefix">
  <suffix name="Clients.FromGoogleSearch"
      label="PageLoadMetrics that are a result of a navigation from a Google
             web search"/>
  <suffix name="Clients.FromGWS"
      label="PageLoadMetrics that are a result of a navigation from a Google
             web search">
    <obsolete>
      Deprecated in favor of Clients.FromGoogleSearch.
    </obsolete>
  </suffix>
  <suffix name="Clients.FromGWS2"
      label="PageLoadMetrics that are a result of a navigation from a Google
             web search">
    <obsolete>
      Deprecated in favor of Clients.FromGoogleSearch.
    </obsolete>
  </suffix>
  <affected-histogram
      name="PageLoad.AbortTiming.Close.AfterCommit.BeforePaint"/>
  <affected-histogram
      name="PageLoad.AbortTiming.Close.AfterPaint.BeforeInteraction"/>
  <affected-histogram name="PageLoad.AbortTiming.Close.BeforeCommit"/>
  <affected-histogram
      name="PageLoad.AbortTiming.ForwardBackNavigation.AfterCommit.BeforePaint"/>
  <affected-histogram
      name="PageLoad.AbortTiming.ForwardBackNavigation.AfterPaint.Before1sDelayedInteraction"/>
  <affected-histogram
      name="PageLoad.AbortTiming.NewNavigation.AfterCommit.BeforePaint"/>
  <affected-histogram
      name="PageLoad.AbortTiming.NewNavigation.AfterPaint.BeforeInteraction"/>
  <affected-histogram name="PageLoad.AbortTiming.Other.BeforeCommit"/>
  <affected-histogram
      name="PageLoad.AbortTiming.Reload.AfterCommit.BeforePaint"/>
  <affected-histogram
      name="PageLoad.AbortTiming.Reload.AfterPaint.Before1sDelayedInteraction"/>
  <affected-histogram name="PageLoad.AbortTiming.Stop.AfterCommit.BeforePaint"/>
  <affected-histogram
      name="PageLoad.AbortTiming.Stop.AfterPaint.BeforeInteraction"/>
  <affected-histogram name="PageLoad.AbortTiming.Stop.BeforeCommit"/>
  <affected-histogram
      name="PageLoad.AbortTiming.UnknownNavigation.BeforeCommit"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.Close.AfterCommit.BeforePaint"/>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.Close.AfterPaint.BeforeInteraction"/>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.Close.BeforeCommit"/>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.ForwardBackNavigation.AfterCommit.BeforePaint"/>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.ForwardBackNavigation.AfterPaint.Before1sDelayedInteraction"/>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.NewNavigation.AfterCommit.BeforePaint"/>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.NewNavigation.AfterPaint.BeforeInteraction"/>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.Other.BeforeCommit"/>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.Reload.AfterCommit.BeforePaint"/>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.Reload.AfterPaint.Before1sDelayedInteraction"/>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.Stop.AfterCommit.BeforePaint"/>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.Stop.AfterPaint.BeforeInteraction"/>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.Stop.BeforeCommit"/>
  <affected-histogram name="PageLoad.InteractiveTiming.FirstInputDelay2"/>
  <affected-histogram name="PageLoad.InteractiveTiming.FirstInputDelay3"/>
  <affected-histogram name="PageLoad.PageTiming.ForegroundDuration"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.PaintTiming.NavigationToFirstImagePaint"/>
  <affected-histogram name="PageLoad.PaintTiming.NavigationToFirstPaint"/>
  <affected-histogram name="PageLoad.PaintTiming.NavigationToFirstTextPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.ParseStartToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.ParseTiming.NavigationToParseStart"/>
  <affected-histogram name="PageLoad.ParseTiming.ParseDuration"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsLoadingPredictor" separator="."
    ordering="prefix">
  <suffix base="true" name="Clients.LoadingPredictor"
      label="PageLoadMetrics with enabled LoadingPredictor"/>
  <affected-histogram
      name="PageLoad.Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsLoadingPredictorPredictionType"
    separator=".">
  <suffix name="Preconnectable"
      label="The predictor database contained origins for preconnecting for a
             page"/>
  <affected-histogram
      name="PageLoad.Clients.LoadingPredictor.Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"/>
  <affected-histogram
      name="PageLoad.Clients.LoadingPredictor.PaintTiming.NavigationToFirstContentfulPaint"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsLoFi" separator="."
    ordering="prefix">
  <suffix name="Clients.LoFi"
      label="PageLoadMetrics that are a result of a navigation that displayed
             a LoFi image."/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram name="PageLoad.Experimental.Bytes.Network"/>
  <affected-histogram name="PageLoad.Experimental.CompletedResources.Network"/>
  <affected-histogram
      name="PageLoad.Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.PaintTiming.NavigationToFirstImagePaint"/>
  <affected-histogram name="PageLoad.ParseTiming.ParseBlockedOnScriptLoad"/>
  <affected-histogram name="PageLoad.ParseTiming.ParseDuration"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsMedia" separator="."
    ordering="prefix">
  <suffix name="Clients.MediaPageLoad"
      label="PageLoadMetrics for page loads that involved playing a media
             element."/>
  <affected-histogram name="PageLoad.Experimental.Bytes.Cache"/>
  <affected-histogram name="PageLoad.Experimental.Bytes.Network"/>
  <affected-histogram name="PageLoad.Experimental.Bytes.Total"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsMultiTabLoading" separator="."
    ordering="prefix">
  <suffix name="Clients.MultiTabLoading"
      label="PageLoadMetrics for page loads that started while there are
             other loading tabs."/>
  <suffix name="Clients.MultiTabLoading.2OrMore"
      label="PageLoadMetrics for page loads that started while there are 2 or
             more other loading tabs."/>
  <suffix name="Clients.MultiTabLoading.5OrMore"
      label="PageLoadMetrics for page loads that started while there are 5 or
             more other loading tabs."/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram
      name="PageLoad.Experimental.PaintTiming.ForegroundToFirstMeaningfulPaint"/>
  <affected-histogram
      name="PageLoad.Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.ForegroundToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsNoScriptPreview" separator="."
    ordering="prefix">
  <suffix name="Clients.NoScriptPreview"
      label="PageLoadMetrics that are a result of a navigation that tirggered
             the NoScript Preview intervention."/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram name="PageLoad.Experimental.Bytes.Network">
    <obsolete>
      Deprecated 12/2018.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="PageLoad.Experimental.Bytes.NetworkIncludingHeaders"/>
  <affected-histogram name="PageLoad.Experimental.CompletedResources.Network"/>
  <affected-histogram
      name="PageLoad.Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.ParseTiming.ParseBlockedOnScriptLoad"/>
  <affected-histogram name="PageLoad.ParseTiming.ParseDuration"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsNoServiceWorkerSpecialApps"
    separator=".">
  <suffix name="search"
      label="Custom histogram for the Google Search results page."/>
  <affected-histogram
      name="PageLoad.Clients.NoServiceWorker.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram
      name="PageLoad.Clients.NoServiceWorker.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram
      name="PageLoad.Clients.NoServiceWorker.Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"/>
  <affected-histogram
      name="PageLoad.Clients.NoServiceWorker.Experimental.PaintTiming.ParseStartToFirstMeaningfulPaint"/>
  <affected-histogram
      name="PageLoad.Clients.NoServiceWorker.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.Clients.NoServiceWorker.PaintTiming.ParseStartToFirstContentfulPaint"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsOfflinePages" separator="."
    ordering="prefix">
  <suffix name="Clients.Previews.OfflinePages"
      label="PageLoadMetrics that are a result of a navigation that shows
             users an offline page preview. Offline page previews are shown
             when a user's effective connection type is prohibitively slow."/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram name="PageLoad.DocumentTiming.NavigationToFirstLayout"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.ParseTiming.NavigationToParseStart"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsProtocol" separator="."
    ordering="prefix">
  <suffix name="Clients.Protocol.H1"
      label="PageLoadMetrics that are a result of a navigation to main
             resource over HTTP/1.1">
    <obsolete>
      Renamed to Clients.Protocol.H11
    </obsolete>
  </suffix>
  <suffix name="Clients.Protocol.H2"
      label="PageLoadMetrics that are a result of a navigation to main
             resource over HTTP/2"/>
  <suffix name="Clients.Protocol.H11"
      label="PageLoadMetrics that are a result of a navigation to main
             resource over HTTP/1.1"/>
  <suffix name="Clients.Protocol.QUIC"
      label="PageLoadMetrics that are a result of a navigation to main
             resource over QUIC"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram
      name="PageLoad.Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"/>
  <affected-histogram
      name="PageLoad.Experimental.PaintTiming.ParseStartToFirstMeaningfulPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.ParseStartToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.ParseTiming.NavigationToParseStart"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsReload" separator="."
    ordering="prefix">
  <obsolete>
    Deprecated at M53 in favor of LoadType.Reload.
  </obsolete>
  <suffix name="Clients.Reload"
      label="PageLoadMetrics from a page that is reloaded"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsResourceLoadingHintsPreview"
    separator="." ordering="prefix">
  <suffix name="Clients.ResourceLoadingHintsPreview"
      label="PageLoadMetrics that are a result of a navigation that used
             ResourceLoadingHints to show a Preview version of the page."/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram name="PageLoad.Experimental.Bytes.Network">
    <obsolete>
      Deprecated 12/2018.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="PageLoad.Experimental.Bytes.NetworkIncludingHeaders"/>
  <affected-histogram name="PageLoad.Experimental.CompletedResources.Network"/>
  <affected-histogram
      name="PageLoad.Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.ParseTiming.ParseBlockedOnScriptLoad"/>
  <affected-histogram name="PageLoad.ParseTiming.ParseDuration"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsResourcePrefetchPredictor"
    separator="." ordering="prefix">
  <obsolete>
    Deprecated at M66. No longer recorded.
  </obsolete>
  <suffix base="true" name="Clients.ResourcePrefetchPredictor"
      label="PageLoadMetrics with enabled ResourcePrefetchPredictor"/>
  <affected-histogram
      name="PageLoad.Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
</histogram_suffixes>

<histogram_suffixes
    name="PageLoadMetricsClientsResourcePrefetchPredictorPrefetchingType"
    separator=".">
  <obsolete>
    Deprecated at M66. No longer recorded.
  </obsolete>
  <suffix name="Prefetchable"
      label="The predictor database contained subresources for prediction for
             a page"/>
  <affected-histogram
      name="PageLoad.Clients.ResourcePrefetchPredictor.Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"/>
  <affected-histogram
      name="PageLoad.Clients.ResourcePrefetchPredictor.PaintTiming.NavigationToFirstContentfulPaint"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsScheme" separator="."
    ordering="prefix">
  <suffix name="Clients.Scheme.HTTP"
      label="PageLoadMetrics that are a result of a navigation to a main
             resource where the committed URL is HTTP."/>
  <suffix name="Clients.Scheme.HTTPS"
      label="PageLoadMetrics that are a result of a navigation to a main
             resource where the committed URL is HTTPS."/>
  <affected-histogram name="PageLoad.Experimental.NavigationToInteractive"/>
  <affected-histogram
      name="PageLoad.Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"/>
  <affected-histogram name="PageLoad.Internal.NavigationStartedInForeground"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.ParseStartToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.ParseTiming.NavigationToParseStart"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsServiceWorker" separator="."
    ordering="prefix">
  <suffix name="Clients.NoServiceWorker"
      label="PageLoadMetrics from a page that is not controlled by a Service
             Worker. This is intended to understand the performance impact of
             service workers on special apps using Clients.ServiceWorker">
    <obsolete>
      Deprecated on June 2018 (M69) in favor of Clients.NoServiceWorker2.
    </obsolete>
  </suffix>
  <suffix name="Clients.NoServiceWorker2"
      label="PageLoadMetrics from a page that is either not controlled by a
             service worker or is controlled by a service worker without a
             fetch event handler. This should NOT be compared to
             Clients.ServiceWorker2, see https://goo.gl/EdaGQn.">

  </suffix>
  <suffix name="Clients.ServiceWorker"
      label="PageLoadMetrics from a page that is controlled by a Service
             Worker.">
    <obsolete>
      Deprecated on June 2018 (M69) in favor of Clients.ServiceWorker2.
    </obsolete>
  </suffix>
  <suffix name="Clients.ServiceWorker2"
      label="PageLoadMetrics from a page that is controlled by a service
             worker that has a fetch event handler."/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram
      name="PageLoad.Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"/>
  <affected-histogram
      name="PageLoad.Experimental.PaintTiming.ParseStartToFirstMeaningfulPaint"/>
  <affected-histogram name="PageLoad.InteractiveTiming.FirstInputDelay"/>
  <affected-histogram name="PageLoad.InteractiveTiming.FirstInputDelay2"/>
  <affected-histogram name="PageLoad.InteractiveTiming.FirstInputDelay3"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.PaintTiming.NavigationToFirstPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.ParseStartToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.ParseTiming.NavigationToParseStart"/>
  <affected-histogram name="PageLoad.Timing2.NavigationToFirstContentfulPaint">
    <obsolete>
      Deprecated in favor of PaintTiming equivalent.
    </obsolete>
  </affected-histogram>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsServiceWorkerSpecialApps"
    separator=".">
  <suffix name="inbox" label="Custom histogram for Inbox"/>
  <suffix name="search"
      label="Custom histogram for the Google Search results page"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker.Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker.Experimental.PaintTiming.ParseStartToFirstMeaningfulPaint"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker.PaintTiming.ParseStartToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker.ParseTiming.NavigationToParseStart"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.Experimental.PaintTiming.ParseStartToFirstMeaningfulPaint"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.PaintTiming.ParseStartToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.ParseTiming.NavigationToParseStart"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsSubresourceFilter"
    separator="." ordering="prefix">
  <obsolete>
    Deprecated May 2018 (M68)
  </obsolete>
  <suffix name="Clients.SubresourceFilter"
      label="For pages with filtered subresources. Includes dryrun matches."/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram name="PageLoad.Experimental.Bytes.Cache"/>
  <affected-histogram name="PageLoad.Experimental.Bytes.Network"/>
  <affected-histogram name="PageLoad.Experimental.Bytes.Total"/>
  <affected-histogram name="PageLoad.Experimental.CompletedResources.Cache"/>
  <affected-histogram name="PageLoad.Experimental.CompletedResources.Network"/>
  <affected-histogram name="PageLoad.Experimental.CompletedResources.Total"/>
  <affected-histogram
      name="PageLoad.Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"/>
  <affected-histogram
      name="PageLoad.Experimental.PaintTiming.ParseStartToFirstMeaningfulPaint"/>
  <affected-histogram name="PageLoad.PageTiming.ForegroundDuration"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.ParseStartToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.ParseTiming.ParseBlockedOnScriptExecution"/>
  <affected-histogram
      name="PageLoad.ParseTiming.ParseBlockedOnScriptExecutionFromDocumentWrite"/>
  <affected-histogram name="PageLoad.ParseTiming.ParseBlockedOnScriptLoad"/>
  <affected-histogram
      name="PageLoad.ParseTiming.ParseBlockedOnScriptLoadFromDocumentWrite"/>
  <affected-histogram name="PageLoad.ParseTiming.ParseDuration"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsTabRestore" separator="."
    ordering="prefix">
  <suffix name="Clients.TabRestore"
      label="PageLoadMetrics that are a result of a navigation caused by a
             tab restore."/>
  <affected-histogram name="PageLoad.Experimental.Bytes.Cache"/>
  <affected-histogram name="PageLoad.Experimental.Bytes.Network"/>
  <affected-histogram name="PageLoad.Experimental.Bytes.Total"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsLoadType" separator=".">
  <suffix name="LoadType.ForwardBackNavigation"
      label="Restricted to forward/back navigations."/>
  <suffix name="LoadType.NewNavigation"
      label="Restricted to new navigations (link clicks, URLs typed into the
             URL box, etc)."/>
  <suffix name="LoadType.Reload" label="Restricted to reloaded pages."/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker.ParseTiming.NavigationToParseStart"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.ParseTiming.NavigationToParseStart"/>
  <affected-histogram
      name="PageLoad.Clients.SubresourceFilter.ActivationDecision"/>
  <affected-histogram name="PageLoad.Experimental.Bytes.Cache"/>
  <affected-histogram name="PageLoad.Experimental.Bytes.Network"/>
  <affected-histogram name="PageLoad.Experimental.Bytes.Total"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.ParseTiming.NavigationToParseStart"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsMediaPlayed" separator=".">
  <obsolete>
    Deprecated May 2018 (M68)
  </obsolete>
  <suffix name="MediaPlayed" label="Limited to pages where media was played."/>
  <affected-histogram
      name="PageLoad.Clients.SubresourceFilter.Experimental.Bytes.Cache"/>
  <affected-histogram
      name="PageLoad.Clients.SubresourceFilter.Experimental.Bytes.Network"/>
  <affected-histogram
      name="PageLoad.Clients.SubresourceFilter.Experimental.Bytes.Total"/>
  <affected-histogram
      name="PageLoad.Clients.SubresourceFilter.Experimental.CompletedResources.Cache"/>
  <affected-histogram
      name="PageLoad.Clients.SubresourceFilter.Experimental.CompletedResources.Network"/>
  <affected-histogram
      name="PageLoad.Clients.SubresourceFilter.Experimental.CompletedResources.Total"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsNoCommit" separator=".">
  <suffix name="NoCommit" label="Limited to page loads that did not commit."/>
  <affected-histogram
      name="PageLoad.Clients.FromGoogleSearch.PageTiming.ForegroundDuration"/>
  <affected-histogram name="PageLoad.PageTiming.ForegroundDuration"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsNoEndTime" separator=".">
  <suffix name="NoEndTime"
      label="The page load had no recorded end time, so an end time was
             synthesized at the time the page end notification was processed."/>
  <affected-histogram
      name="PageLoad.Experimental.PageTiming.FirstPaintToPageEnd"/>
  <affected-histogram
      name="PageLoad.Experimental.PageTiming.NavigationToPageEnd"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsNoMediaPlayed" separator=".">
  <obsolete>
    Deprecated May 2018 (M68)
  </obsolete>
  <suffix name="NoMediaPlayed"
      label="Limited to pages where no media was played."/>
  <affected-histogram
      name="PageLoad.Clients.SubresourceFilter.Experimental.Bytes.Cache"/>
  <affected-histogram
      name="PageLoad.Clients.SubresourceFilter.Experimental.Bytes.Network"/>
  <affected-histogram
      name="PageLoad.Clients.SubresourceFilter.Experimental.Bytes.Total"/>
  <affected-histogram
      name="PageLoad.Clients.SubresourceFilter.Experimental.CompletedResources.Cache"/>
  <affected-histogram
      name="PageLoad.Clients.SubresourceFilter.Experimental.CompletedResources.Network"/>
  <affected-histogram
      name="PageLoad.Clients.SubresourceFilter.Experimental.CompletedResources.Total"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsPaintInfo" separator=".">
  <suffix name="WithoutPaint"
      label="The foreground duration for page loads did not reach first
             paint."/>
  <suffix name="WithPaint"
      label="The foreground duration for page loads reached first paint."/>
  <affected-histogram
      name="PageLoad.Clients.FromGoogleSearch.PageTiming.ForegroundDuration"/>
  <affected-histogram name="PageLoad.PageTiming.ForegroundDuration"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsSignedExchange" separator="."
    ordering="prefix">
  <suffix name="Clients.SignedExchange"
      label="PageLoadMetrics for page loads for which the document was served
             through a signed exchange."/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram
      name="PageLoad.Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"/>
  <affected-histogram
      name="PageLoad.Experimental.PaintTiming.ParseStartToFirstMeaningfulPaint"/>
  <affected-histogram name="PageLoad.InteractiveTiming.FirstInputDelay"/>
  <affected-histogram name="PageLoad.InteractiveTiming.FirstInputDelay2"/>
  <affected-histogram name="PageLoad.InteractiveTiming.FirstInputDelay3"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.PaintTiming.NavigationToFirstPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.ParseStartToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.ParseTiming.NavigationToParseStart"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsUserGesture" separator=".">
  <suffix name="UserGesture"
      label="Restricted to pages loaded via a user gesture."/>
  <affected-histogram
      name="PageLoad.Clients.Reload.PaintTiming.NavigationToFirstContentfulPaint">
    <obsolete>
      Deprecated in favor of
      PageLoad.PaintTiming.NavigationToFirstContentfulPaint.LoadType.Reload.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint.LoadType.Reload"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsUserInitiated" separator=".">
  <suffix name="UserInitiated"
      label="(experimental) Page load metric that is approximately user
             initiated"/>
  <affected-histogram
      name="PageLoad.AbortTiming.ForwardBackNavigation.BeforeCommit"/>
  <affected-histogram name="PageLoad.AbortTiming.NewNavigation.BeforeCommit"/>
  <affected-histogram name="PageLoad.AbortTiming.Reload.BeforeCommit"/>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.ForwardBackNavigation.BeforeCommit">
    <obsolete>
      Deprecated in favor of UserGesture/BrowserInitiated.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.NewNavigation.BeforeCommit">
    <obsolete>
      Deprecated in favor of UserGesture/BrowserInitiated.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.Reload.BeforeCommit">
    <obsolete>
      Deprecated in favor of UserGesture/BrowserInitiated.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsUserInitiated2" separator=".">
  <suffix name="BrowserInitiated"
      label="(experimental) Page load that was initiated from the browser
             process"/>
  <suffix name="UserGesture"
      label="(experimental) Page load that has a user gesture"/>
  <suffix name="UserInputEvent">
    <obsolete>
      Deprecated in favor of UserGesture.
    </obsolete>
  </suffix>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.ForwardBackNavigation.AfterCommit.BeforePaint"/>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.ForwardBackNavigation.BeforeCommit"/>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.NewNavigation.AfterCommit.BeforePaint"/>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.NewNavigation.BeforeCommit"/>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.Reload.AfterCommit.BeforePaint"/>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.Reload.BeforeCommit"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadType" separator="_">
  <suffix name="HistoryLoad"
      label="but only for user pressing back or forward"/>
  <suffix name="LinkLoad"
      label="deprecated - see LinkLoadReload, LinkLoadNormal,
             LinkLoadStaleOk, LinkLoadCacheOnly; content initiated, commonly
             back to a posted page"/>
  <suffix name="LinkLoadCacheOnly"
      label="content initiated, commonly back to a posted page, where browser
             must ONLY use cache"/>
  <suffix name="LinkLoadNormal"
      label="content initiated, ordinary link traversal or post"/>
  <suffix name="LinkLoadReload" label="content initiated, calling reload()"/>
  <suffix name="LinkLoadStaleOk"
      label="content initiated, commonly forward or back where stale cached
             data is very acceptable"/>
  <suffix name="NormalLoad"
      label="but only for user entered URL or omnibox search"/>
  <suffix name="Reload" label="but only for user pressed reload"/>
  <suffix name="UndefLoad"
      label="should never happen... as it is only for an client-code error
             case which should not exist"/>
  <affected-histogram name="PLT.BeginToFinish"/>
  <affected-histogram name="PLT.BeginToFinishDoc"/>
  <affected-histogram name="PLT.StartToCommit">
    <with-suffix name="LinkLoadNormal"/>
    <with-suffix name="NormalLoad"/>
  </affected-histogram>
  <affected-histogram name="PLT.StartToFinish">
    <with-suffix name="LinkLoadNormal"/>
    <with-suffix name="NormalLoad"/>
  </affected-histogram>
  <affected-histogram name="Renderer4.BeginToFinish"/>
  <affected-histogram name="Renderer4.BeginToFinishDoc"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadType" separator="_">
  <suffix name="HistoryLoad"
      label="but only for user pressing back or forward"/>
  <suffix name="LinkLoad"
      label="deprecated - see LinkLoadReload, LinkLoadNormal,
             LinkLoadStaleOk, LinkLoadCacheOnly; content initiated, commonly
             back to a posted page"/>
  <suffix name="LinkLoadCacheOnly"
      label="content initiated, commonly back to a posted page, where browser
             must ONLY use cache"/>
  <suffix name="LinkLoadNormal"
      label="content initiated, ordinary link traversal or post"/>
  <suffix name="LinkLoadReload" label="content initiated, calling reload()"/>
  <suffix name="LinkLoadStaleOk"
      label="content initiated, commonly forward or back where stale cached
             data is very acceptable"/>
  <suffix name="NormalLoad"
      label="but only for user entered URL or omnibox search"/>
  <suffix name="Reload" label="but only for user pressed reload"/>
  <suffix name="UndefLoad"
      label="should never happen... as it is only for an client-code error
             case which should not exist"/>
  <affected-histogram name="PLT.BeginToFinish"/>
  <affected-histogram name="PLT.BeginToFinishDoc"/>
  <affected-histogram name="PLT.StartToCommit">
    <with-suffix name="LinkLoadNormal"/>
    <with-suffix name="NormalLoad"/>
  </affected-histogram>
  <affected-histogram name="PLT.StartToFinish">
    <with-suffix name="LinkLoadNormal"/>
    <with-suffix name="NormalLoad"/>
  </affected-histogram>
  <affected-histogram name="Renderer4.BeginToFinish"/>
  <affected-histogram name="Renderer4.BeginToFinishDoc"/>
</histogram_suffixes>

<histogram_suffixes name="ParallelDownload" separator=".">
  <suffix name="ParallelDownload"
      label="Download that uses parallel requests."/>
  <affected-histogram name="Download.Counts"/>
  <affected-histogram name="Download.InterruptedAtEndReason"/>
  <affected-histogram name="Download.InterruptedOverrunBytes"/>
  <affected-histogram name="Download.InterruptedReason"/>
  <affected-histogram name="Download.InterruptedReceivedSizeK"/>
  <affected-histogram name="Download.InterruptedTotalSizeK"/>
  <affected-histogram name="Download.InterruptedUnderrunBytes"/>
</histogram_suffixes>

<histogram_suffixes name="ParallelizableDownload" separator=".">
  <suffix name="ParallelizableDownload"
      label="Download that supports but doesn't use parallel requests."/>
  <affected-histogram name="Download.Counts"/>
</histogram_suffixes>

<histogram_suffixes name="ParallelizableDownloadBandwidth" separator=".">
  <suffix name="WithoutParallelRequests"
      label="Bandwidth without using parallel requests."/>
  <suffix name="WithParallelRequestsMultipleStreams"
      label="Bandwidth when multiple streams are active while using parallel
             requests."/>
  <suffix name="WithParallelRequestsSingleStream"
      label="Bandwidth when only a single stream is active while using
             parallel requests. Other streams are either finished or haven't
             started."/>
  <affected-histogram name="Download.ParallelizableDownloadBandwidth"/>
</histogram_suffixes>

<histogram_suffixes name="PasswordCustomPassphrase" separator=".">
  <suffix name="WithCustomPassphrase"/>
  <suffix name="WithoutCustomPassphrase"/>
  <affected-histogram name="PasswordManager.AccountsPerSite"/>
  <affected-histogram name="PasswordManager.AccountsPerSite.AutoGenerated"/>
  <affected-histogram name="PasswordManager.AccountsPerSite.UserCreated"/>
  <affected-histogram name="PasswordManager.BlacklistedSites"/>
  <affected-histogram name="PasswordManager.TimesGeneratedPasswordUsed"/>
  <affected-histogram name="PasswordManager.TimesPasswordUsed.AutoGenerated"/>
  <affected-histogram name="PasswordManager.TimesPasswordUsed.UserCreated"/>
  <affected-histogram name="PasswordManager.TotalAccounts.AutoGenerated"/>
  <affected-histogram name="PasswordManager.TotalAccounts.UserCreated"/>
</histogram_suffixes>

<histogram_suffixes name="PasswordGenerated" separator=".">
  <suffix base="true" name="AutoGenerated"/>
  <suffix base="true" name="UserCreated"/>
  <affected-histogram name="PasswordManager.AccountsPerSite"/>
  <affected-histogram name="PasswordManager.TimesPasswordUsed"/>
  <affected-histogram name="PasswordManager.TotalAccounts"/>
</histogram_suffixes>

<histogram_suffixes name="PasswordManagerMonitor" separator="_">
  <obsolete>
    Deprecated as of 03/2016.
  </obsolete>
  <suffix name="" label=""/>
  <suffix name="group_1" label="group 1"/>
  <suffix name="group_2" label="group 2"/>
  <suffix name="group_3" label="group 3"/>
  <suffix name="group_4" label="group 4"/>
  <suffix name="group_5" label="group 5"/>
  <suffix name="group_6" label="group 6"/>
  <suffix name="group_7" label="group 7"/>
  <suffix name="group_8" label="group 8"/>
  <suffix name="group_9" label="group 9"/>
  <suffix name="group_10" label="group 10"/>
  <suffix name="group_11" label="group 11"/>
  <suffix name="group_12" label="group 12"/>
  <suffix name="group_13" label="group 13"/>
  <suffix name="group_14" label="group 14"/>
  <suffix name="group_15" label="group 15"/>
  <suffix name="group_16" label="group 16"/>
  <suffix name="group_17" label="group 17"/>
  <suffix name="group_18" label="group 18"/>
  <suffix name="group_19" label="group 19"/>
  <suffix name="group_20" label="group 20"/>
  <affected-histogram name="PasswordManager.LinuxBackendStatistics"/>
  <affected-histogram name="PasswordManager.ProvisionalSaveFailure"/>
  <affected-histogram
      name="PasswordManager.SavePasswordPromptDisappearedQuickly"/>
  <affected-histogram name="PasswordManager.SavePasswordPromptDisplayed"/>
  <affected-histogram name="PasswordManager.SavePasswordPromptResponse"/>
</histogram_suffixes>

<histogram_suffixes name="PasswordManagerSuppressedAccountReason" separator=".">
  <suffix name="HTTPSNotHTTP"
      label="The credential was suppressed because it was for an HTTPS origin
             whereas the observed form was for an HTTP origin."/>
  <suffix name="PSLMatching"
      label="The credential was suppressed and not auto-filled because it was
             a PSL-match."/>
  <suffix name="SameOrganizationName"
      label="The credential was suppressed because it was for an HTTP/HTTPS
             origin that was neither an exact nor PSL-match to that of the
             observed form. Its origin had, however, the same
             organization-identifying name."/>
  <affected-histogram name="PasswordManager.SuppressedAccount.Generated"/>
  <affected-histogram name="PasswordManager.SuppressedAccount.Manual"/>
</histogram_suffixes>

<histogram_suffixes name="PasswordManagerSuppressedAccountType" separator=".">
  <suffix name="Generated" label="The password was originally auto-generated."/>
  <suffix name="Manual"
      label="The password was originally typed in by the user."/>
  <affected-histogram name="PasswordManager.SuppressedAccount"/>
</histogram_suffixes>

<histogram_suffixes name="PasswordProtectionTrigger" separator=".">
  <suffix name="AnyPasswordEntry"
      label="Password protection triggered by entering a password that
             matches either/both the sync password or a saved password This
             is a superset (and should be equal to or larger than)
             SyncPasswordEntry and ProtectedPasswordEntry"/>
  <suffix name="GSuiteSyncPasswordEntry"
      label="Password protection triggered by entering the sync password that
             is associated with a GSuite account. This is a subset of
             SyncPasswordEntry. Note that GSuite sync password reuse
             detection is only triggered if configured appropriate enterprise
             policy."/>
  <suffix name="NonGaiaEnterprisePasswordEntry"
      label="Password protection triggered by entering a password that
             matches a non-Gaia enterprise password. Note that non-Gaia
             enterprise password reuse detection is only triggered if
             configured appropriate enterprise policy."/>
  <suffix name="PasswordFieldOnFocus"
      label="Password protection triggered by password field on focus event."/>
  <suffix name="ProtectedPasswordEntry"
      label="Password protection triggered by entering a saved password that
             does NOT match the sync password. (TODO(nparker): Rename this to
             NonSyncPasswordEntry)"/>
  <suffix name="SyncPasswordEntry"
      label="Password protection triggered by entering the sync password,
             which may or may not also match a saved password. (This was
             called SyncProtectedPasswordEntry before M62)"/>
  <suffix name="SyncProtectedPasswordEntry"
      label="This was renamed by SyncPasswordEntry in M62 (it was misspelled
             in the code) . Password protection triggered by entering the sync
             password, which may or may not also match a saved password.">
    <obsolete>
      Replaced by ProtectedPasswordEntry in M62.
    </obsolete>
  </suffix>
  <affected-histogram name="PasswordProtection.ChromeSettingsAction"/>
  <affected-histogram name="PasswordProtection.InterstitialAction"/>
  <affected-histogram name="PasswordProtection.ModalWarningDialogAction"/>
  <affected-histogram name="PasswordProtection.PageInfoAction"/>
  <affected-histogram name="PasswordProtection.PasswordAlertModeOutcome"/>
  <affected-histogram name="PasswordProtection.RequestOutcome"/>
  <affected-histogram name="PasswordProtection.Verdict"/>
</histogram_suffixes>

<histogram_suffixes name="PasswordProtectionVerdict" separator=".">
  <suffix name="LowReputation"
      label="Password protection reponse with low reputation verdict"/>
  <suffix name="Phishing"
      label="Password protection response with phishing verdict"/>
  <suffix name="Safe" label="Password protection response with safe verdict"/>
  <affected-histogram name="PasswordProtection.ReferrerChainSize"/>
</histogram_suffixes>

<histogram_suffixes name="PasswordReuseSourceRealm" separator=".">
  <suffix name="FromHttpRealm"
      label="The account in question was saved on an HTTP site."/>
  <suffix name="FromHttpsRealm"
      label="The account in question was saved on a HTTPS site (including
             those with certificate issues)."/>
  <affected-histogram name="PasswordManager.AccountsReusingPassword"/>
</histogram_suffixes>

<histogram_suffixes name="PasswordReuseTargetRealm" separator=".">
  <suffix name="OnAnyRealmWithDifferentHost"
      label="The number of other accounts whose realms have different hosts
             than the account in question, and their scheme is either HTTP or
             HTTPS."/>
  <suffix name="OnHttpRealmWithDifferentHost"
      label="The number of other accounts whose realms have HTTP scheme and
             different hosts than the account in question."/>
  <suffix name="OnHttpRealmWithSameHost"
      label="The number of other accounts whose realms have HTTP scheme and
             the same host as the account in question."/>
  <suffix name="OnHttpsRealmWithDifferentHost"
      label="The number of other accounts whose realms have HTTPS scheme and
             different hosts than the account in question."/>
  <suffix name="OnHttpsRealmWithSameHost"
      label="The number of other accounts whose realms have HTTPS scheme and
             the same host as the account in question."/>
  <suffix name="OnPSLMatchingRealm"
      label="The number of other accounts whose realms are public suffix
             matches to that of the account in question (the scheme is always
             the same in these cases)."/>
  <affected-histogram
      name="PasswordManager.AccountsReusingPassword.FromHttpRealm"/>
  <affected-histogram
      name="PasswordManager.AccountsReusingPassword.FromHttpsRealm"/>
</histogram_suffixes>

<histogram_suffixes name="PasswordScheme" separator=".">
  <suffix name="Android" label="The password is for an Android app."/>
  <suffix name="Ftp" label="The scheme of the origin is FTP."/>
  <suffix name="Http" label="The scheme of the origin is HTTP."/>
  <suffix name="Https" label="The scheme of the origin is HTTPS."/>
  <suffix name="Other" label="The scheme of the origin is something else."/>
  <affected-histogram name="PasswordManager.TotalAccountsHiRes.WithScheme"/>
</histogram_suffixes>

<histogram_suffixes name="PasswordSecurityOrigin" separator=".">
  <suffix name="InsecureOrigin"
      label="The recording took place on an insecure origin."/>
  <suffix name="SecureOrigin"
      label="The recording took place on a secure origin."/>
  <affected-histogram name="PasswordManager.FillingAssistance"/>
</histogram_suffixes>

<histogram_suffixes name="PaymentRequestOutcome" separator=".">
  <suffix name="Completed" label="The Payment Request was completed"/>
  <suffix name="OtherAborted"
      label="The Payment Request was aborted but not but the user"/>
  <suffix name="UserAborted"
      label="The Payment Request was aborted by the user"/>
  <affected-histogram name="PaymentRequest.NumberOfSelectionAdds.ContactInfo"/>
  <affected-histogram
      name="PaymentRequest.NumberOfSelectionAdds.PaymentMethod"/>
  <affected-histogram
      name="PaymentRequest.NumberOfSelectionAdds.ShippingAddress"/>
  <affected-histogram
      name="PaymentRequest.NumberOfSelectionChanges.ContactInfo"/>
  <affected-histogram
      name="PaymentRequest.NumberOfSelectionChanges.PaymentMethod"/>
  <affected-histogram
      name="PaymentRequest.NumberOfSelectionChanges.ShippingAddress"/>
  <affected-histogram name="PaymentRequest.NumberOfSelectionEdits.ContactInfo"/>
  <affected-histogram
      name="PaymentRequest.NumberOfSelectionEdits.PaymentMethod"/>
  <affected-histogram
      name="PaymentRequest.NumberOfSelectionEdits.ShippingAddress"/>
  <affected-histogram
      name="PaymentRequest.NumberOfSuggestionsShown.ContactInfo"/>
  <affected-histogram
      name="PaymentRequest.NumberOfSuggestionsShown.PaymentMethod"/>
  <affected-histogram
      name="PaymentRequest.NumberOfSuggestionsShown.ShippingAddress"/>
</histogram_suffixes>

<histogram_suffixes name="PaymentRequestSection" separator=".">
  <suffix name="ContactInfo"
      label="For the contact info section of a Payment Request"/>
  <suffix name="CreditCards"
      label="For the payment method section of a Payment Request">
    <obsolete>
      Renamed to PaymentMethod.
    </obsolete>
  </suffix>
  <suffix name="PaymentMethod"
      label="For the payment method section of a Payment Request"/>
  <suffix name="ShippingAddress"
      label="For the shipping address section of a Payment Request"/>
  <affected-histogram name="PaymentRequest.NumberOfSelectionAdds"/>
  <affected-histogram name="PaymentRequest.NumberOfSelectionChanges"/>
  <affected-histogram name="PaymentRequest.NumberOfSelectionEdits"/>
  <affected-histogram name="PaymentRequest.NumberOfSuggestionsShown"/>
</histogram_suffixes>

<histogram_suffixes name="PerformanceMonitor" separator=".">
  <suffix name="BrowserProcess"/>
  <suffix name="GPUProcess"/>
  <suffix name="PluginProcess"/>
  <suffix name="PPAPIFlashProcess"/>
  <suffix name="PPAPIProcess"/>
  <suffix name="RendererExtensionEventProcess"/>
  <suffix name="RendererExtensionPersistentProcess"/>
  <suffix name="RendererProcess"/>
  <suffix name="WorkerProcess"/>
  <affected-histogram name="PerformanceMonitor.AverageCPU"/>
  <affected-histogram name="PerformanceMonitor.AverageDisk"/>
  <affected-histogram name="PerformanceMonitor.HighCPU"/>
  <affected-histogram name="PerformanceMonitor.IdleWakeups"/>
  <affected-histogram name="PerformanceMonitor.PackageExitIdleWakeups"/>
</histogram_suffixes>

<histogram_suffixes name="PermissionRequestGesture" separator=".">
  <suffix name="Gesture" label="With user gesture"/>
  <suffix name="NoGesture" label="Without user gesture"/>
  <affected-histogram name="Permissions.Prompt.Accepted"/>
  <affected-histogram name="Permissions.Prompt.Denied"/>
  <affected-histogram name="Permissions.Prompt.Shown"/>
</histogram_suffixes>

<histogram_suffixes name="PermissionRequestTypes" separator=".">
  <suffix name="AudioAndVideoCapture" label="Mic+Camera permission"/>
  <suffix name="AudioCapture" label="Microphone permission"/>
  <suffix name="Flash" label="Flash permission"/>
  <suffix name="Geolocation" label="Geolocation permission"/>
  <suffix name="MidiSysEx" label="Midi SysEx permission"/>
  <suffix name="MultipleDownload" label="Multiple downloads permission"/>
  <suffix name="Notifications" label="Notification permission"/>
  <suffix name="ProtectedMedia" label="Protected media permission"/>
  <suffix name="PushMessaging" label="Push messaging permission"/>
  <suffix name="Quota" label="Quota permission"/>
  <suffix name="RegisterProtocolHandler"
      label="registerProtocolHandler permission"/>
  <suffix name="SecurityKeyAttestation" label="Security Key attestation"/>
  <suffix name="VideoCapture" label="Camera permission"/>
  <affected-histogram name="Permissions.Engagement.Accepted"/>
  <affected-histogram name="Permissions.Engagement.Denied"/>
  <affected-histogram name="Permissions.Engagement.Dismissed"/>
  <affected-histogram name="Permissions.Engagement.Ignored"/>
</histogram_suffixes>

<histogram_suffixes name="PermissionTypes" separator=".">
  <suffix name="AudioCapture" label="Microphone permission actions"/>
  <suffix name="Flash" label="Flash permission actions"/>
  <suffix name="Geolocation" label="Geolocation permission actions"/>
  <suffix name="MidiSysEx" label="Midi SysEx permsision actions"/>
  <suffix name="Notifications" label="Notification permission actions"/>
  <suffix name="ProtectedMedia" label="Protected media permission actions"/>
  <suffix name="PushMessaging" label="Push messaging permission actions"/>
  <suffix name="VideoCapture" label="Camera permission actions"/>
  <affected-histogram name="ContentSettings.PermissionActions"/>
  <affected-histogram name="ContentSettings.PermissionActionsInsecureOrigin"/>
  <affected-histogram name="ContentSettings.PermissionActionsSecureOrigin"/>
  <affected-histogram name="Permissions.Action"/>
  <affected-histogram name="Permissions.Action.InsecureOrigin"/>
  <affected-histogram name="Permissions.Action.SecureOrigin"/>
  <affected-histogram name="Permissions.Prompt.Accepted.Persisted"/>
  <affected-histogram name="Permissions.Prompt.Accepted.PriorDismissCount"/>
  <affected-histogram name="Permissions.Prompt.Accepted.PriorIgnoreCount"/>
  <affected-histogram name="Permissions.Prompt.Denied.Persisted"/>
  <affected-histogram name="Permissions.Prompt.Denied.PriorDismissCount"/>
  <affected-histogram name="Permissions.Prompt.Denied.PriorIgnoreCount"/>
  <affected-histogram name="Permissions.Prompt.Dismissed.PriorDismissCount"/>
  <affected-histogram name="Permissions.Prompt.Dismissed.PriorIgnoreCount"/>
  <affected-histogram name="Permissions.Prompt.Ignored.PriorDismissCount"/>
  <affected-histogram name="Permissions.Prompt.Ignored.PriorIgnoreCount"/>
  <affected-histogram name="Permissions.Requested.CrossOrigin"/>
</histogram_suffixes>

<histogram_suffixes name="PersistentMemoryAllocs" separator="."
    ordering="prefix,2">
  <obsolete>
    Deprecated 2/2017 for Issue 689315 which indicated they weren't being used.
  </obsolete>
  <suffix name="BrowserMetrics" label="For browser process metrics."/>
  <suffix name="FieldTrialAllocator" label="For field-trial allocator."/>
  <suffix name="GpuMetrics" label="For GPU process metrics."/>
  <suffix name="NotificationHelperMetrics"
      label="For notification_helper process metrics."/>
  <suffix name="PpapiBrokerMetrics"
      label="For &quot;PPAPI broker&quot; process metrics."/>
  <suffix name="PpapiPluginMetrics"
      label="For &quot;PPAPI plugin&quot; process metrics."/>
  <suffix name="RendererMetrics" label="For renderer process metrics."/>
  <suffix name="SandboxHelperMetrics"
      label="For &quot;sandbox helper&quot; process metrics."/>
  <suffix name="SetupMetrics" label="For setup metrics."/>
  <suffix name="UtilityMetrics"
      label="For &quot;utility&quot; process metrics."/>
  <suffix name="ZygoteMetrics" label="For &quot;zygote&quot; process metrics."/>
  <affected-histogram name="UMA.PersistentAllocator.Allocs"/>
</histogram_suffixes>

<histogram_suffixes name="PersistentMemoryErrors" separator="."
    ordering="prefix,2">
  <suffix name="BrowserMetrics" label="For browser process metrics."/>
  <suffix name="CrashpadMetrics" label="For metrics from Crashpad."/>
  <suffix name="FieldTrialAllocator" label="For field-trial allocator."/>
  <suffix name="GpuMetrics" label="For GPU process metrics."/>
  <suffix name="NotificationHelperMetrics"
      label="For notification_helper process metrics."/>
  <suffix name="PpapiBrokerMetrics"
      label="For &quot;PPAPI broker&quot; process metrics."/>
  <suffix name="PpapiPluginMetrics"
      label="For &quot;PPAPI plugin&quot; process metrics."/>
  <suffix name="RendererMetrics" label="For renderer process metrics."/>
  <suffix name="SandboxHelperMetrics"
      label="For &quot;sandbox helper&quot; process metrics."/>
  <suffix name="SetupMetrics" label="For setup metrics."/>
  <suffix name="UtilityMetrics"
      label="For &quot;utility&quot; process metrics."/>
  <suffix name="ZygoteMetrics" label="For &quot;zygote&quot; process metrics."/>
  <affected-histogram name="UMA.PersistentAllocator.Errors"/>
</histogram_suffixes>

<histogram_suffixes name="PersistentMemoryUsedPct" separator="."
    ordering="prefix,2">
  <suffix name="BrowserMetrics" label="For browser process metrics."/>
  <suffix name="FieldTrialAllocator" label="For field-trial allocator."/>
  <suffix name="GpuMetrics" label="For GPU process metrics."/>
  <suffix name="NotificationHelperMetrics"
      label="For notification_helper process metrics."/>
  <suffix name="PpapiBrokerMetrics"
      label="For &quot;PPAPI broker&quot; process metrics."/>
  <suffix name="PpapiPluginMetrics"
      label="For &quot;PPAPI plugin&quot; process metrics."/>
  <suffix name="RendererMetrics" label="For renderer process metrics."/>
  <suffix name="SandboxHelperMetrics"
      label="For &quot;sandbox helper&quot; process metrics."/>
  <suffix name="SetupMetrics" label="For setup metrics."/>
  <suffix name="UtilityMetrics"
      label="For &quot;utility&quot; process metrics."/>
  <suffix name="ZygoteMetrics" label="For &quot;zygote&quot; process metrics."/>
  <affected-histogram name="UMA.PersistentAllocator.UsedPct"/>
</histogram_suffixes>

<histogram_suffixes name="PhysicalWebDebugActions" separator=".">
  <suffix name="ChromeStart" label="when Chrome first starts up"/>
  <suffix name="LaunchFromDiagnostics"
      label="when the user launches the ListUrlActivity from the Physical Web
             diagnostics page"/>
  <suffix name="LaunchFromPreferences"
      label="when the user launches the ListUrlActivity from the Physical Web
             preferencs screen"/>
  <affected-histogram name="PhysicalWeb.State.Bluetooth"/>
  <affected-histogram name="PhysicalWeb.State.DataConnectionActive"/>
  <affected-histogram name="PhysicalWeb.State.LocationPermission"/>
  <affected-histogram name="PhysicalWeb.State.LocationServices"/>
  <affected-histogram name="PhysicalWeb.State.Preference"/>
</histogram_suffixes>

<histogram_suffixes name="Platform.FirmwareType" separator=".">
  <suffix name="EC" label="Embedded Controller firmware"/>
  <suffix name="Main" label="Main processor firmware"/>
  <suffix name="PD" label="USB Power Delivery controller firmware"/>
  <affected-histogram name="Platform.BootMode.FirmwareWriteProtect"/>
</histogram_suffixes>

<histogram_suffixes name="PlatformEmmcLifeUsed" separator=".">
  <suffix name="TypeA" label="Memory Type A"/>
  <suffix name="TypeB" label="Memory Type B"/>
  <affected-histogram name="Platform.Emmc.LifeUsed"/>
</histogram_suffixes>

<histogram_suffixes name="PlatformFileSystem" separator="_" ordering="prefix,2">
  <suffix name="EncStateful" label="Encrypted Stateful filesystem"/>
  <suffix name="Stateful" label="Stateful filesystem /mnt/stateful"/>
  <affected-histogram name="Platform.FileSystem.ErrorCount"/>
  <affected-histogram name="Platform.FileSystem.FsckNeeded"/>
  <affected-histogram name="Platform.FileSystem.RecoveryNeeded"/>
</histogram_suffixes>

<histogram_suffixes name="PlatformMeminfoPercentage" separator="">
  <suffix name="infoActive" label="Active memory."/>
  <suffix name="infoActiveAnon"
      label="Active anonymous memory (data segments)."/>
  <suffix name="infoActiveFile"
      label="Active file-backed memory (executables, ...)."/>
  <suffix name="infoAnonPages" label="Anonymous memory (executables, ...)."/>
  <suffix name="infoBuffers" label="Buffer cache (executables, ...)."/>
  <suffix name="infoCached"
      label="size of file-backed memory minus swap and buffer cache."/>
  <suffix name="infoInactive" label="Inactive memory."/>
  <suffix name="infoInactiveAnon"
      label="Inactive anonymous memory (data segments)."/>
  <suffix name="infoInactiveFile" label="Inactive file-backed memory."/>
  <suffix name="infoMapped" label="Mapped memory."/>
  <suffix name="infoMemFree" label="Free memory."/>
  <suffix name="infoSwapUsedPercent" label="Used swap memory."/>
  <affected-histogram name="Platform.Mem"/>
</histogram_suffixes>

<histogram_suffixes name="PlatformMeminfoSize" separator="">
  <suffix name="MemFreeDerived" label="Size derived from free+buffers+cached."/>
  <suffix name="MemTotal" label="Size of total installed memory."/>
  <suffix name="MemUsedDerived"
      label="Size of &quot;Total - FreeDerived&quot; memory."/>
  <suffix name="Shmem" label="Size of shared memory."/>
  <suffix name="Slab" label="Size of slab memory."/>
  <suffix name="SwapUsed" label="Size of used swap memory."/>
  <suffix name="Unevictable" label="Size of unevictable memory."/>
  <affected-histogram name="Platform.Meminfo"/>
</histogram_suffixes>

<histogram_suffixes name="PlatformStorageUfsLifeUsed" separator=".">
  <suffix name="TypeA" label="Calculation Method A"/>
  <suffix name="TypeB" label="Calculation Method B"/>
  <affected-histogram name="Platform.Storage.Ufs.LifeUsed"/>
</histogram_suffixes>

<histogram_suffixes name="PluginFlashEngagement" separator=".">
  <obsolete>
    Deprecated 12/2017 in Issue 781644.
  </obsolete>
  <suffix name="ContentSettingAllowed" label="Engagement when Flash allowed."/>
  <suffix name="ContentSettingBlocked" label="Engagement when Flash blocked."/>
  <suffix name="NoSetting" label="Engagement when no content setting set."/>
  <affected-histogram name="Plugin.Flash.Engagement"/>
</histogram_suffixes>

<histogram_suffixes name="PNaClTranslatorTypes" separator=".">
  <suffix name="" label="All translator types"/>
  <suffix name="LLC" label="LLC-based translator"/>
  <suffix name="Subzero" label="Subzero-based translator"/>
  <affected-histogram name="NaCl.Options.PNaCl.OptLevel"/>
  <affected-histogram name="NaCl.Perf.PNaClCache.IsHit"/>
  <affected-histogram name="NaCl.Perf.PNaClLoadTime.CompileKBPerSec"/>
  <affected-histogram name="NaCl.Perf.PNaClLoadTime.CompileTime"/>
  <affected-histogram name="NaCl.Perf.PNaClLoadTime.LoadCompiler"/>
  <affected-histogram
      name="NaCl.Perf.PNaClLoadTime.PctCompiledWhenFullyDownloaded"/>
  <affected-histogram name="NaCl.Perf.PNaClLoadTime.TotalUncachedKBPerSec"/>
  <affected-histogram name="NaCl.Perf.PNaClLoadTime.TotalUncachedTime"/>
  <affected-histogram name="NaCl.Perf.Size.PexeNexeSizePct"/>
  <affected-histogram name="NaCl.Perf.Size.PNaClTranslatedNexe"/>
</histogram_suffixes>

<histogram_suffixes name="PositionVariants" separator="_">
  <suffix name="0_0" label="Only snippets on position 0"/>
  <suffix name="1_2" label="Only snippets on position 1-2"/>
  <suffix name="3_4" label="Only snippets on position 3-4"/>
  <suffix name="5_9" label="Only snippets on position 5-9"/>
  <affected-histogram name="NewTabPage.Snippets.CardClickedAge"/>
  <affected-histogram name="NewTabPage.Snippets.CardClickedScore"/>
  <affected-histogram name="NewTabPage.Snippets.CardClickedScoreNew"/>
  <affected-histogram name="NewTabPage.Snippets.CardLongPressedAge"/>
  <affected-histogram name="NewTabPage.Snippets.CardLongPressedScoreNew"/>
  <affected-histogram name="NewTabPage.Snippets.CardShownAge"/>
  <affected-histogram name="NewTabPage.Snippets.CardShownScore"/>
  <affected-histogram name="NewTabPage.Snippets.CardShownScoreNew"/>
</histogram_suffixes>

<histogram_suffixes name="PowerConsumptionSources" separator=".">
  <suffix name="CPU" label="Instantaneous power used by the CPU."/>
  <suffix name="GPU0"
      label="Instantaneous power used by the first dedicated GPU, if any."/>
  <suffix name="GPU1"
      label="Instantaneous power used by the second dedicated GPU, if any."/>
  <suffix name="GPUi"
      label="Instantaneous power used by the integrated GPU, if any."/>
  <suffix name="Total"
      label="Instantaneous power used by the whole system. May be less useful
             than other power metrics because it includes peripherals like
             the display backlight."/>
  <affected-histogram name="Power.Mac"/>
</histogram_suffixes>

<histogram_suffixes name="PowerConsumptionTimes" separator=".">
  <suffix name="All" label="Sampled once per minute."/>
  <suffix name="DuringStartup"
      label="Sampled once per second during the first 30 seconds after
             launch."/>
  <affected-histogram name="Power.Mac.CPU"/>
  <affected-histogram name="Power.Mac.GPU0"/>
  <affected-histogram name="Power.Mac.GPU1"/>
  <affected-histogram name="Power.Mac.GPUi"/>
  <affected-histogram name="Power.Mac.Total"/>
</histogram_suffixes>

<histogram_suffixes name="PpapiPluginName" separator="_">
  <suffix name="libpepflashplayer.so" label="Flash player on Linux or Cros"/>
  <suffix name="libwidevinecdmadapter.so" label="Widevine CDM on Linux or Cros">
    <obsolete>
      Deprecated March 2018
    </obsolete>
  </suffix>
  <suffix name="pepflashplayer.dll" label="Flash player on Windows"/>
  <suffix name="PepperFlashPlayer.plugin" label="Flash player on Mac"/>
  <suffix name="widevinecdmadapter.dll" label="Widevine CDM on Windows">
    <obsolete>
      Deprecated March 2018
    </obsolete>
  </suffix>
  <suffix name="widevinecdmadapter.plugin" label="Widevine CDM on Mac">
    <obsolete>
      Deprecated March 2018
    </obsolete>
  </suffix>
  <affected-histogram name="Plugin.PpapiBrokerLoadErrorCode"/>
  <affected-histogram name="Plugin.PpapiBrokerLoadResult"/>
  <affected-histogram name="Plugin.PpapiBrokerLoadTime"/>
  <affected-histogram name="Plugin.PpapiPluginLoadErrorCode"/>
  <affected-histogram name="Plugin.PpapiPluginLoadResult"/>
  <affected-histogram name="Plugin.PpapiPluginLoadTime"/>
</histogram_suffixes>

<histogram_suffixes name="PrecacheCellular" separator=".">
  <obsolete>
    Deprecated July 11 2017.
  </obsolete>
  <suffix name="Cellular"
      label="covers fetches when connected to cellular networks"/>
  <affected-histogram name="Precache.DownloadedNonPrecache"/>
  <affected-histogram name="Precache.Saved"/>
</histogram_suffixes>

<histogram_suffixes name="PreferenceFileNames" separator=".">
  <suffix name="Local_State" label="Local State file"/>
  <suffix name="Preferences" label="Preferences file"/>
  <suffix name="Secure_Preferences" label="Secure Preferences file"/>
  <affected-histogram name="Settings.JsonDataReadSizeKilobytes"/>
  <affected-histogram name="Settings.JsonDataSizeKilobytes"/>
  <affected-histogram name="Settings.JsonDataWriteCount"/>
</histogram_suffixes>

<histogram_suffixes name="Prefetch" separator="_">
  <suffix name="ContentPrefetchPrefetchOff"
      label="Prefetch is completely disabled."/>
  <suffix name="ContentPrefetchPrefetchOn"
      label="prefetch is enabled but prerender is disabled."/>
  <affected-histogram name="HttpCache.EntryLockWait"/>
  <affected-histogram name="Net.HttpTimeToFirstByte"/>
  <affected-histogram name="PLT.Abandoned"/>
  <affected-histogram name="PLT.BeginToFinish"/>
  <affected-histogram name="PLT.BeginToFinish_ContentPrefetcher"/>
  <affected-histogram name="PLT.BeginToFinish_ContentPrefetcherReferrer"/>
  <affected-histogram name="PLT.BeginToFinishDoc"/>
  <affected-histogram name="PLT.BeginToFinishDoc_ContentPrefetcher"/>
  <affected-histogram name="PLT.BeginToFinishDoc_ContentPrefetcherReferrer"/>
  <affected-histogram name="PLT.PerceivedLoadTime"/>
  <affected-histogram name="PLT.PerceivedLoadTime_PrerenderLoad"/>
</histogram_suffixes>

<histogram_suffixes name="Prerender" separator="_">
  <obsolete>
    Deprecated August 2016
  </obsolete>
  <suffix name="Prerender5minTTL"
      label="prerender is enabled, and the TTL is extended to 5 minutes."/>
  <suffix name="PrerenderControl" label="prerender is disabled."/>
  <suffix name="PrerenderEnabled" label="prerender is enabled."/>
  <suffix name="PrerenderMatchComplete"
      label="prerender is enabled, and match complete replacements are used
             to gather extended statistics."/>
  <suffix name="PrerenderMulti"
      label="prerender is enabled with multiple simultanious prerenders."/>
  <suffix name="PrerenderNoUse"
      label="prerender is enabled, but pages are not swapped in."/>
  <affected-histogram name="HttpCache.EntryLockWait"/>
  <affected-histogram name="Net.HttpTimeToFirstByte"/>
  <affected-histogram name="PLT.Abandoned"/>
  <affected-histogram name="PLT.BeginToFinish"/>
  <affected-histogram name="PLT.BeginToFinish_ContentPrefetcher"/>
  <affected-histogram name="PLT.BeginToFinish_ContentPrefetcherReferrer"/>
  <affected-histogram name="PLT.BeginToFinishDoc"/>
  <affected-histogram name="PLT.BeginToFinishDoc_ContentPrefetcher"/>
  <affected-histogram name="PLT.BeginToFinishDoc_ContentPrefetcherReferrer"/>
  <affected-histogram name="PLT.PerceivedLoadTime"/>
  <affected-histogram name="PLT.PerceivedLoadTime_PrerenderLoad"/>
  <affected-histogram name="Prerender.FinalStatus"/>
  <affected-histogram name="Prerender.FinalStatusMatchComplete"/>
  <affected-histogram name="Prerender.FractionPixelsFinalAtSwapin"/>
  <affected-histogram name="Prerender.LocalPredictorEvent"/>
  <affected-histogram name="Prerender.PerceivedPLT"/>
  <affected-histogram name="Prerender.PerceivedPLTFirstAfterMiss"/>
  <affected-histogram name="Prerender.PerceivedPLTFirstAfterMissAnyOnly"/>
  <affected-histogram name="Prerender.PerceivedPLTFirstAfterMissBoth"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissNonOverlapping"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissNonOverlappingOnly"/>
  <affected-histogram name="Prerender.PerceivedPLTMatched"/>
  <affected-histogram name="Prerender.PerceivedPLTMatchedComplete"/>
  <affected-histogram name="Prerender.PerceivedPLTWindowed"/>
  <affected-histogram name="Prerender.PerceivedPLTWindowNotMatched"/>
  <affected-histogram name="Prerender.PercentLoadDoneAtSwapin"/>
  <affected-histogram name="Prerender.PrerenderNotSwappedInPLT"/>
  <affected-histogram name="Prerender.RendererIdleTime"/>
  <affected-histogram name="Prerender.RendererPerceivedPLT"/>
  <affected-histogram name="Prerender.RendererPerceivedPLTMatched"/>
  <affected-histogram name="Prerender.RendererTimeUntilDisplay"/>
  <affected-histogram name="Prerender.SimulatedLocalBrowsingBaselinePLT"/>
  <affected-histogram name="Prerender.SimulatedLocalBrowsingPLT"/>
</histogram_suffixes>

<histogram_suffixes name="PrerenderHoverType" separator="_" ordering="prefix">
  <obsolete>
    deprecated May 10 2012
  </obsolete>
  <suffix name="HoverStats_50" label="Hover stats @ threshold 50 ms."/>
  <suffix name="HoverStats_75" label="Hover stats @ threshold 75 ms."/>
  <suffix name="HoverStats_100" label="Hover stats @ threshold 100 ms."/>
  <suffix name="HoverStats_150" label="Hover stats @ threshold 150 ms."/>
  <suffix name="HoverStats_200" label="Hover stats @ threshold 200 ms."/>
  <suffix name="HoverStats_250" label="Hover stats @ threshold 250 ms."/>
  <suffix name="HoverStats_300" label="Hover stats @ threshold 300 ms."/>
  <suffix name="HoverStats_400" label="Hover stats @ threshold 400 ms."/>
  <suffix name="HoverStats_500" label="Hover stats @ threshold 500 ms."/>
  <suffix name="HoverStats_750" label="Hover stats @ threshold 750 ms."/>
  <suffix name="HoverStats_1000" label="Hover stats @ threshold 1000 ms."/>
  <suffix name="HoverStats_1500" label="Hover stats @ threshold 1500 ms."/>
  <suffix name="HoverStats_2000" label="Hover stats @ threshold 2000 ms."/>
  <suffix name="HoverStats_3000" label="Hover stats @ threshold 3000 ms."/>
  <suffix name="HoverStats_4000" label="Hover stats @ threshold 4000 ms."/>
  <suffix name="HoverStats_5000" label="Hover stats @ threshold 5000 ms."/>
  <affected-histogram name="Prerender.Events"/>
  <affected-histogram name="Prerender.TimeToClick"/>
</histogram_suffixes>

<histogram_suffixes name="PrerenderModeType" separator="_">
  <obsolete>
    Deprecated August 2016
  </obsolete>
  <suffix name="_15MinTTL" label="PRERENDER_MODE_EXPERIMENT_15MIN_TTL_GROUP"/>
  <suffix name="_Control" label="PRERENDER_MODE_EXPERIMENT_CONTROL_GROUP"/>
  <suffix name="_Disabled" label="PRERENDER_MODE_DISABLED"/>
  <suffix name="_Enabled" label="PRERENDER_MODE_EXPERIMENT_PRERENDER_GROUP"/>
  <suffix name="_Multi"
      label="PRERENDER_MODE_EXPERIMENT_MULTI_PRERENDER_GROUP"/>
  <suffix name="_NoUse" label="PRERENDER_MODE_EXPERIMENT_NO_USE_GROUP"/>
  <affected-histogram name="Prerender.OmniboxNavigationsCouldPrerender"/>
  <affected-histogram name="Prerender.OmniboxNavigationsUsedPrerenderCount"/>
  <affected-histogram name="Prerender.OmniboxPrerenderCount"/>
</histogram_suffixes>

<histogram_suffixes name="PrerenderPrefetchAge" separator=".">
  <suffix name="Cold" label="Prefetch too old to skip revalidation."/>
  <suffix name="Reference"
      label="No prefetch. Warning: do not compare with the load times of
             prefetched pages (bias)."/>
  <suffix name="Warm" label="Prefetch skips revalidation."/>
  <affected-histogram name="Prerender.PrefetchTTFCP"/>
</histogram_suffixes>

<histogram_suffixes name="PrerenderPrefetchMainResourceType" separator=".">
  <suffix name="Cacheable" label="Main resource cacheable."/>
  <suffix name="NoStore" label="Main resource no-store."/>
  <affected-histogram name="Prerender.PrefetchTTFCP.Cold"/>
  <affected-histogram name="Prerender.PrefetchTTFCP.Reference"/>
  <affected-histogram name="Prerender.PrefetchTTFCP.Warm"/>
</histogram_suffixes>

<histogram_suffixes name="PrerenderPrefetchPaintVisibility" separator=".">
  <suffix name="Hidden" label="Page was hidden during rendering."/>
  <suffix name="Visible" label="Page visible for all of rendering."/>
  <affected-histogram name="Prerender.PerceivedTTFCPRecorded"/>
  <affected-histogram name="Prerender.PrefetchTTFCP.Cold.Cacheable"/>
  <affected-histogram name="Prerender.PrefetchTTFCP.Cold.NoStore"/>
  <affected-histogram name="Prerender.PrefetchTTFCP.Reference.Cacheable"/>
  <affected-histogram name="Prerender.PrefetchTTFCP.Reference.NoStore"/>
  <affected-histogram name="Prerender.PrefetchTTFCP.Warm.Cacheable"/>
  <affected-histogram name="Prerender.PrefetchTTFCP.Warm.NoStore"/>
</histogram_suffixes>

<histogram_suffixes name="PrerenderSource" separator="_" ordering="prefix">
  <suffix name="" label="All prerenders."/>
  <suffix name="externalrequest" label="Externally triggered prerender."/>
  <suffix name="externalrequestforced"
      label="Forced prerender regardless of network."/>
  <suffix name="gws" label="GWS triggered prerender."/>
  <suffix name="Instant" label="Instant search prerender.">
    <obsolete>
      Deprecated October 2017
    </obsolete>
  </suffix>
  <suffix name="none"
      label="No origin; in the case of prefetch TTFCP this is when no
             prefetch was involved."/>
  <suffix name="offline"
      label="Prerender triggered for saving a page for offline use.">
    <obsolete>
      Deprecated October 2017
    </obsolete>
  </suffix>
  <suffix name="omnibox" label="Triggered from the omnibox."/>
  <suffix name="wash" label="Multiple sources could have triggered.">
    <obsolete>
      Deprecated April 2017
    </obsolete>
  </suffix>
  <suffix name="web" label="Link triggered prerender."/>
  <suffix name="webcross"
      label="Link triggered prerender, rel=prerender, cross domain."/>
  <suffix name="webnext" label="Link triggered prerender, rel=next."/>
  <suffix name="websame"
      label="Link triggered prerender, rel=prerender, same domain."/>
  <affected-histogram name="Prerender.AbandonTimeUntilUsed"/>
  <affected-histogram name="Prerender.CookieSendType"/>
  <affected-histogram name="Prerender.CookieStatus"/>
  <affected-histogram name="Prerender.Event"/>
  <affected-histogram name="Prerender.FinalStatus"/>
  <affected-histogram name="Prerender.FractionPixelsFinalAtSwapin"/>
  <affected-histogram name="Prerender.LocalPredictorEvent"/>
  <affected-histogram name="Prerender.LocalPredictorTimeUntilUsed"/>
  <affected-histogram name="Prerender.NetworkBytesUsed"/>
  <affected-histogram name="Prerender.NetworkBytesWasted"/>
  <affected-histogram name="Prerender.NoStatePrefetchAge"/>
  <affected-histogram name="Prerender.NoStatePrefetchMainResourceRedirects"/>
  <affected-histogram name="Prerender.NoStatePrefetchResponseTypes"/>
  <affected-histogram name="Prerender.NoStatePrefetchSubResourceRedirects"/>
  <affected-histogram name="Prerender.PageVisitedStatus"/>
  <affected-histogram name="Prerender.PerceivedPLT"/>
  <affected-histogram name="Prerender.PerceivedPLTFirstAfterMiss"/>
  <affected-histogram name="Prerender.PerceivedPLTFirstAfterMissAnyOnly"/>
  <affected-histogram name="Prerender.PerceivedPLTFirstAfterMissBoth"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissNonOverlapping"/>
  <affected-histogram
      name="Prerender.PerceivedPLTFirstAfterMissNonOverlappingOnly"/>
  <affected-histogram name="Prerender.PerceivedPLTMatched"/>
  <affected-histogram name="Prerender.PerceivedPLTMatchedComplete"/>
  <affected-histogram name="Prerender.PerceivedPLTWindowed"/>
  <affected-histogram name="Prerender.PerceivedPLTWindowNotMatched"/>
  <affected-histogram name="Prerender.PerceivedTTFCPRecorded.Hidden"/>
  <affected-histogram name="Prerender.PerceivedTTFCPRecorded.Visible"/>
  <affected-histogram name="Prerender.PercentLoadDoneAtSwapin"/>
  <affected-histogram name="Prerender.PrefetchAge"/>
  <affected-histogram name="Prerender.PrefetchTTFCP.Cold.Cacheable.Hidden"/>
  <affected-histogram name="Prerender.PrefetchTTFCP.Cold.Cacheable.Visible"/>
  <affected-histogram name="Prerender.PrefetchTTFCP.Cold.NoStore.Hidden"/>
  <affected-histogram name="Prerender.PrefetchTTFCP.Cold.NoStore.Visible"/>
  <affected-histogram
      name="Prerender.PrefetchTTFCP.Reference.Cacheable.Hidden"/>
  <affected-histogram
      name="Prerender.PrefetchTTFCP.Reference.Cacheable.Visible"/>
  <affected-histogram name="Prerender.PrefetchTTFCP.Reference.NoStore.Hidden"/>
  <affected-histogram name="Prerender.PrefetchTTFCP.Reference.NoStore.Visible"/>
  <affected-histogram name="Prerender.PrefetchTTFCP.Warm.Cacheable.Hidden"/>
  <affected-histogram name="Prerender.PrefetchTTFCP.Warm.Cacheable.Visible"/>
  <affected-histogram name="Prerender.PrefetchTTFCP.Warm.NoStore.Hidden"/>
  <affected-histogram name="Prerender.PrefetchTTFCP.Warm.NoStore.Visible"/>
  <affected-histogram name="Prerender.PrerenderNotSwappedInPLT"/>
  <affected-histogram name="Prerender.PrerendersPerSessionCount"/>
  <affected-histogram name="Prerender.SimulatedLocalBrowsingBaselinePLT"/>
  <affected-histogram name="Prerender.SimulatedLocalBrowsingPLT"/>
  <affected-histogram name="Prerender.TimeBetweenPrerenderRequests"/>
  <affected-histogram name="Prerender.TimeSinceLastRecentVisit"/>
  <affected-histogram name="Prerender.TimeUntilUsed2"/>
</histogram_suffixes>

<histogram_suffixes name="Previews.ServerLitePage.Penalty.Types" separator=".">
  <suffix name="Bypass" label="Bypass"/>
  <suffix name="Failure" label="Failure"/>
  <suffix name="Redirect" label="Redirect"/>
  <suffix name="Success" label="Success"/>
  <affected-histogram name="Previews.ServerLitePage.Penalty"/>
</histogram_suffixes>

<histogram_suffixes name="Previews.Types" separator=".">
  <suffix name="AMPRedirection" label="AMP Redirection previews"/>
  <suffix name="LitePage" label="Lite page previews"/>
  <suffix name="LitePageRedirect" label="Lite page redirection previews"/>
  <suffix name="LoFi" label="LoFi previews"/>
  <suffix name="None" label="No preview was served"/>
  <suffix name="NoScript" label="NoScript previews"/>
  <suffix name="Offline" label="Offline previews"/>
  <suffix name="ResourceLoadingHints"
      label="Resource loading hints based previews"/>
  <affected-histogram name="Previews.EligibilityReason"/>
  <affected-histogram name="Previews.InfoBarAction"/>
  <affected-histogram name="Previews.OmniboxAction"/>
  <affected-histogram name="Previews.OptimizationFilterStatus"/>
  <affected-histogram name="Previews.OptOut.UserOptedOut"/>
  <affected-histogram name="Previews.PageEndReason"/>
  <affected-histogram name="Previews.Triggered.EffectiveConnectionType"/>
  <affected-histogram name="Previews.Triggered.EffectiveConnectionType2"/>
</histogram_suffixes>

<histogram_suffixes name="ProcessMemoryAllocator2" separator=".">
  <suffix name="BlinkGC" label="Only counting Blink GC memory."/>
  <suffix name="BlinkGC.AllocatedObjects"
      label="Only counting objects allocated using Blink GC."/>
  <suffix name="CommandBuffer"
      label="Only counting memory used by GL command buffers."/>
  <suffix name="Discardable"
      label="Only counting memory used by Discardable manager."/>
  <suffix name="Extensions.ValueStore"
      label="Only counting memory used by Extension value store database."/>
  <suffix name="JavaHeap"
      label="Only counting memory used by Java heap in Android."/>
  <suffix name="Malloc" label="Constrained to malloc allocator."/>
  <suffix name="PartitionAlloc"
      label="Only counting memory used by Partition allocator."/>
  <suffix name="PartitionAlloc.AllocatedObjects"
      label="Only counting objects allocated using Partition allocator."/>
  <suffix name="PartitionAlloc.Partitions.ArrayBuffer"
      label="Only counting memory used by Array buffer partition."/>
  <suffix name="PartitionAlloc.Partitions.Buffer"
      label="Only counting memory used by Buffer partition."/>
  <suffix name="PartitionAlloc.Partitions.FastMalloc"
      label="Only counting memory used by Fast Malloc partition."/>
  <suffix name="PartitionAlloc.Partitions.Layout"
      label="Only counting memory used by Layout partition."/>
  <suffix name="PrivateMemoryFootprint"
      label="Only counting private resident + swapped/compressed memory.">
    <obsolete>
      Removed 03/2018.
    </obsolete>
  </suffix>
  <suffix name="Resident" label="Only counting resident memory.">
    <obsolete>
      Removed 03/2018.
    </obsolete>
  </suffix>
  <suffix name="SharedMemoryFootprint" label="Only counting shared memory.">
    <obsolete>
      Removed 03/2018.
    </obsolete>
  </suffix>
  <suffix name="SiteStorage"
      label="Only counting memory used by Web storage API."/>
  <suffix name="SiteStorage.BlobStorage"
      label="Only counting memory used by in-memory blob files."/>
  <suffix name="Skia" label="Only counting memory used by Skia caches."/>
  <suffix name="Skia.SkGlyphCache"
      label="Only counting memory used by Skia glyph cache."/>
  <suffix name="Skia.SkResourceCache"
      label="Only counting memory used by Skia bitmap resource cache."/>
  <suffix name="Sync" label="Only counting memory used by Sync storage."/>
  <suffix name="V8" label="Only counting memory used by V8 javascript engine."/>
  <suffix name="V8.AllocatedObjects"
      label="Only counting objects allocated by V8 javascript engine."/>
  <affected-histogram name="Memory.Experimental.Browser2"/>
  <affected-histogram name="Memory.Experimental.Extension2"/>
  <affected-histogram name="Memory.Experimental.Gpu2"/>
  <affected-histogram name="Memory.Experimental.Renderer2"/>
  <affected-histogram name="Memory.Experimental.Utility2"/>
</histogram_suffixes>

<histogram_suffixes name="ProcessMemoryAllocatorSmall2" separator=".">
  <suffix name="DownloadService"
      label="Only counting memory used by Download service."/>
  <suffix name="FontCaches" label="Only counting memory used by font caches."/>
  <suffix name="History" label="Only counting memory used by History service."/>
  <suffix name="LevelDatabase"
      label="Only counting memory used by Level databases."/>
  <suffix name="Net"
      label="Only counting memory used by Networking sockets and caches."/>
  <suffix name="Net.UrlRequestContext"
      label="Only counting memory used by URL requests and associated http
             cache."/>
  <suffix name="OmniboxSuggestions"
      label="Only counting memory used by Omnibox suggestions provider."/>
  <suffix name="SiteStorage.IndexDB"
      label="Only counting memory used by IndexedDB API."/>
  <suffix name="SiteStorage.LocalStorage"
      label="Only counting memory used by Local storage API."/>
  <suffix name="SiteStorage.SessionStorage"
      label="Only counting memory used by Session storage API."/>
  <suffix name="Sqlite" label="Only counting memory used by Sqlite databases."/>
  <suffix name="TabRestore"
      label="Only counting memory used by tab restore page states."/>
  <suffix name="UI" label="Only counting memory used by Android UI bitmaps."/>
  <suffix name="WebCache"
      label="Only counting memory used by all resources in Blink Web Cache."/>
  <suffix name="WebCache.CSSStylesheetResources"
      label="Only counting memory used by CSS Stylesheet resources in Blink
             Web Cache."/>
  <suffix name="WebCache.EncodedSizeDuplicatedInDataUrls"
      label="Only counting memory used by data URLs of Image resources in
             Blink Web Cache."/>
  <suffix name="WebCache.FontResources"
      label="Only counting memory used by Font resources in Blink Web Cache."/>
  <suffix name="WebCache.ImageResources"
      label="Only counting memory used by Image resources in Blink Web Cache."/>
  <suffix name="WebCache.OtherResources"
      label="Only counting memory used by other resources in Blink Web Cache."/>
  <suffix name="WebCache.ScriptResources"
      label="Only counting memory used by Script resources in Blink Web
             Cache."/>
  <suffix name="WebCache.V8CodeCache"
      label="Only counting memory of v8 code cache used by Script resources
             in Blink Web Cache."/>
  <suffix name="WebCache.XSLStylesheetResources"
      label="Only counting memory used by XSL Stylesheet resources in Blink
             Web Cache."/>
  <affected-histogram name="Memory.Experimental.Browser2.Small"/>
  <affected-histogram name="Memory.Experimental.Extension2.Small"/>
  <affected-histogram name="Memory.Experimental.Gpu2.Small"/>
  <affected-histogram name="Memory.Experimental.Renderer2.Small"/>
  <affected-histogram name="Memory.Experimental.Utility2.Small"/>
</histogram_suffixes>

<histogram_suffixes name="ProcessType" separator=".">
  <suffix name="BrowserProcess" label="Browser Process"/>
  <suffix name="ExtensionProcess" label="Extension Process"/>
  <suffix name="RendererProcess"
      label="Renderer Process (not an extension process)"/>
  <affected-histogram name="Extensions.ExtensionCreationTime"/>
</histogram_suffixes>

<histogram_suffixes name="ProfileMenuGAIASource" separator=".">
  <suffix name="GAIAAddSession"
      label="GAIA-initiated interaction indicating a service type of Add a
             Session"/>
  <suffix name="GAIADefault"
      label="GAIA-initiated interaction indicating the default service type"/>
  <suffix name="GAIAIncognito"
      label="GAIA-initiated interaction indicating a service type of
             Incognito (used for DesktopMenu)"/>
  <suffix name="GAIAReAuth"
      label="GAIA-initiated interaction indicating a service type of
             Reauthenticate this user"/>
  <suffix name="GAIASignout"
      label="GAIA-initiated interaction indicating a service type of Signout"/>
  <suffix name="GAIASignoutIncognito"
      label="GAIA-initiated interaction indicating a service type of Signout
             and go Incognito (used for AndroidAccountManagementMenu)"/>
  <suffix name="GAIASignup"
      label="GAIA-initiated interaction indicating a service type of Add an
             account"/>
  <suffix name="NonGAIA" label="Interaction was not initiated from GAIA"/>
  <affected-histogram name="Profile.AndroidAccountManagementMenu"/>
  <affected-histogram name="Profile.DesktopMenu"/>
</histogram_suffixes>

<histogram_suffixes name="ProfileOpenState" separator=".">
  <suffix name="ToOpenedProfile"
      label="The profile being switched to was already loaded and had at
             least one open browser"/>
  <suffix name="ToOpenedProfileWithoutBrowser"
      label="The profile being switched to was already opened and had no
             active browsers"/>
  <suffix name="ToUnopenedProfile"
      label="The profile being switched to had not yet been loaded this
             Chrome session"/>
  <affected-histogram name="Profile.OpenMethod"/>
</histogram_suffixes>

<histogram_suffixes name="ProfilePictureDownload" separator=".">
  <suffix name="Default.LoggedIn" label="default picture, after login"/>
  <suffix name="Default.OOBE" label="default picture, in OOBE"/>
  <suffix name="Default.Preferences" label="default picture, in Prefs"/>
  <suffix name="Failure.LoggedIn" label="download has failed, after login"/>
  <suffix name="Failure.OOBE" label="download has failed, in OOBE"/>
  <suffix name="Failure.Preferences" label="download has failed, in Prefs"/>
  <suffix name="Success.LoggedIn" label="download was successful, after login"/>
  <suffix name="Success.OOBE" label="download was successful, in OOBE"/>
  <suffix name="Success.Preferences" label="download was successful, in Prefs"/>
  <affected-histogram name="UserImage.ProfileDownloadTime"/>
</histogram_suffixes>

<histogram_suffixes name="ProgressiveScan" separator="_">
  <suffix name="33Percent_4MinMax"
      label="Progressive scan @ 33%, 4 frequency bins."/>
  <suffix name="50Percent_4MinMax"
      label="Progressive scan @ 50%, 4 frequency bins."/>
  <suffix name="50Percent_8MinMax"
      label="Progressive scan @ 50%, 8 frequency bins."/>
  <suffix name="100Percent_1Min_4Max"
      label="Progressive scan @ 100%, minimum 1/maximum 4 frequencies."/>
  <suffix name="100Percent_1MinSeen_A"
      label="Progressive scan @ all previously seen frequencies (A)."/>
  <suffix name="100Percent_1MinSeen_B"
      label="Progressive scan @ all previously seen frequencies (B)."/>
  <suffix name="100Percent_8MinMax"
      label="Progressive scan @ 100%, 8 frequency bins."/>
  <suffix name="FullScan" label="Using WPA_supplicant to scan."/>
  <affected-histogram name="Network.Shill.TimeToDrop"/>
  <affected-histogram name="Network.Shill.WiFi.ScanResult"/>
  <affected-histogram name="Network.Shill.Wifi.TimeToConnect"/>
  <affected-histogram name="Network.Shill.Wifi.TimeToJoin"/>
  <affected-histogram name="Network.Shill.Wifi.TimeToScan"/>
  <affected-histogram name="Network.Shill.Wifi.TimeToScanAndConnect"/>
</histogram_suffixes>

<histogram_suffixes name="ProtectorSettingChange" separator=".">
  <obsolete>
    Deprecated 8/2013. No longer tracked.
  </obsolete>
  <suffix name="Applied" label="change has been accepted by user"/>
  <suffix name="Corrupt" label="possibly hijacked, backup invalid"/>
  <suffix name="Discarded" label="change has been reverted by user"/>
  <suffix name="Fallback" label="fallback provider used (no backup available)"/>
  <suffix name="Hijacked" label="hijacked, with a valid backup"/>
  <suffix name="Missing" label="fallback provider missing, added"/>
  <suffix name="New" label="(obsolete, was sum of Corrupt+Hijacked)"/>
  <suffix name="Restored"
      label="search provider restored by Protector before showing the bubble"/>
  <suffix name="Timeout" label="change has been ignored by user (timed out)"/>
  <affected-histogram name="Protector.SearchProvider"/>
  <affected-histogram name="Protector.StartupSettings"/>
</histogram_suffixes>

<histogram_suffixes name="ProviderPermissionType" separator=".">
  <suffix name="READ_HISTORY_BOOKMARKS"/>
  <suffix name="WRITE_HISTORY_BOOKMARKS"/>
  <affected-histogram name="Android.ChromeBrowserProvider.CallerHasPermission"/>
  <affected-histogram name="Android.ChromeBrowserProvider.SignaturePassed"/>
</histogram_suffixes>

<histogram_suffixes name="ProxyConnectionImpact" separator="_">
  <suffix name="proxy_connections_8"
      label="with 8 connections per proxy server"/>
  <suffix name="proxy_connections_16"
      label="with 16 connections per proxy server"/>
  <suffix name="proxy_connections_32"
      label="with 32 connections per proxy server"/>
  <suffix name="proxy_connections_64"
      label="with 64 connections per proxy server"/>
  <affected-histogram name="Net.HttpProxySocketRequestTime"/>
  <affected-histogram name="Net.SocksSocketRequestTime"/>
  <affected-histogram name="PLT.Abandoned"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadNormal"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadReload"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadStaleOk"/>
  <affected-histogram name="PLT.BeginToFinish_NormalLoad"/>
</histogram_suffixes>

<histogram_suffixes name="PurgeAndSuspendExperiment" separator=".">
  <suffix base="true" name="BlinkGCKB"
      label="Constrained to the BlinkGC allocator"/>
  <suffix base="true" name="DiscardableKB"
      label="Constrained to discardable memory usage"/>
  <suffix base="true" name="MallocKB" label="Constrained to malloc usage"/>
  <suffix base="true" name="PartitionAllocKB"
      label="Constrained to the ParitionAlloc allocator"/>
  <suffix base="true" name="TotalAllocatedKB"
      label="Summed over the PartitionAlloc, malloc, discardable memory,
             mainThreadIsolate() and BlinkGC allocators"/>
  <suffix base="true" name="V8MainThreadIsolateKB"
      label="Constrained to memory usage by mainThreadIsolate()"/>
  <affected-histogram name="PurgeAndSuspend.Experimental.MemoryGrowth"/>
</histogram_suffixes>

<histogram_suffixes name="PurgeAndSuspendExperimentPerHalfHour" separator=".">
  <suffix name="30min"
      label="Constrained to each allocator 30min after purging"/>
  <suffix name="60min"
      label="Constrained to each allocator 60min after purging"/>
  <suffix name="90min"
      label="Constrained to each allocator 90min after purging"/>
  <affected-histogram
      name="PurgeAndSuspend.Experimental.MemoryGrowth.BlinkGCKB"/>
  <affected-histogram
      name="PurgeAndSuspend.Experimental.MemoryGrowth.DiscardableKB"/>
  <affected-histogram
      name="PurgeAndSuspend.Experimental.MemoryGrowth.MallocKB"/>
  <affected-histogram
      name="PurgeAndSuspend.Experimental.MemoryGrowth.PartitionAllocKB"/>
  <affected-histogram
      name="PurgeAndSuspend.Experimental.MemoryGrowth.TotalAllocatedKB"/>
  <affected-histogram
      name="PurgeAndSuspend.Experimental.MemoryGrowth.V8MainThreadIsolateKB"/>
</histogram_suffixes>

<histogram_suffixes name="QueryTimeSuffix" separator=".">
  <suffix name="0" label="N = 0"/>
  <suffix name="1" label="N = 1"/>
  <suffix name="2" label="N = 2"/>
  <suffix name="3" label="N = 3"/>
  <suffix name="4" label="N = 4"/>
  <suffix name="5" label="N = 5"/>
  <affected-histogram name="Omnibox.QueryTime"/>
  <affected-histogram name="Omnibox.QueryTime2"/>
  <affected-histogram name="ShortcutsProvider.QueryIndexTime"/>
</histogram_suffixes>

<histogram_suffixes name="QueueingTimeThreshold" separator="_">
  <obsolete>
    Deprecated 04/2018.
  </obsolete>
  <suffix name="GreaterThan.10ms" label="Queueing Time greater than 10ms."/>
  <suffix name="GreaterThan.150ms" label="Queueing Time greater than 150ms."/>
  <suffix name="GreaterThan.300ms" label="Queueing Time greater than 300ms."/>
  <suffix name="GreaterThan.450ms" label="Queueing Time greater than 450ms."/>
  <suffix name="LessThan.10ms" label="Queueing Time less than 10ms."/>
  <suffix name="LessThan.150ms" label="Queueing Time less than 150ms."/>
  <suffix name="LessThan.300ms" label="Queueing Time less than 300ms."/>
  <suffix name="LessThan.450ms" label="Queueing Time less than 450ms."/>
  <affected-histogram
      name="RendererScheduler.ExpectedQueueingTimeWhenQueueingTime"/>
</histogram_suffixes>

<histogram_suffixes name="QuicConnectionType" separator="">
  <owner>rch@chromium.org</owner>
  <suffix name="ForHTTP" label="Only insecure HTTP connections are counted.">
    <obsolete>
      Deprecated 10/2015.
    </obsolete>
  </suffix>
  <suffix name="ForHTTPS" label="Only secure HTTPS connections are counted."/>
  <affected-histogram name="Net.QuicSession.ConnectRandomPort"/>
  <affected-histogram
      name="Net.QuicSession.ConnectRandomPortRequiringConfirmation"/>
  <affected-histogram name="Net.QuicSession.ConnectSelectPort">
    <obsolete>
      Deprecated 04/2016.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="Net.QuicSession.HandshakeRoundTrips"/>
</histogram_suffixes>

<histogram_suffixes name="QuicPortSelection" separator="">
  <suffix name="RandomPort"
      label="The operating system randomly selected a source port for the
             connection."/>
  <owner>rch@chromium.org</owner>
  <suffix name="SelectPort"
      label="An effort was mode to (try to) consistently connect using the
             same source port for the given server IP/port."/>
  <affected-histogram name="Net.QuicSession.Connect"/>
</histogram_suffixes>

<histogram_suffixes name="QuicSessionVerifyProofTime" separator=".">
  <suffix name="" label="Verification time for a server."/>
  <suffix name="CachedServerConfig"
      label="Verification time for a server when server config from cache is
             used."/>
  <suffix name="google" label="Verification time for www.google.com server."/>
  <affected-histogram name="Net.QuicSession.VerifyProofTime"/>
</histogram_suffixes>

<histogram_suffixes name="RasterBufferProvider" separator=".">
  <suffix name="Gpu" label="The GpuRasterBufferProvider was in use."/>
  <suffix name="OneCopy" label="The OneCopyRasterBufferProvider was in use."/>
  <affected-histogram name="Renderer4.Browser.PartialRasterPercentageSaved"/>
  <affected-histogram name="Renderer4.Renderer.PartialRasterPercentageSaved"/>
</histogram_suffixes>

<histogram_suffixes name="RasterTaskType" separator=".">
  <suffix name="" label="This metric includes both gpu and software raster.">
    <obsolete>
      Deprecated as of 02/2018. Using suffix Gpu and Software instead.
    </obsolete>
  </suffix>
  <suffix name="Gpu" label="This metric is for only gpu raster."/>
  <suffix name="Software" label="This metric is for only software raster."/>
  <affected-histogram name="Compositing.Browser.CachedImagesCount"/>
  <affected-histogram name="Compositing.Browser.RasterTask.RasterPixelsPerMs"/>
  <affected-histogram name="Compositing.Browser.RasterTask.RasterPixelsPerMs2"/>
  <affected-histogram name="Compositing.Browser.RasterTask.RasterUs"/>
  <affected-histogram name="Compositing.Renderer.CachedImagesCount"/>
  <affected-histogram name="Compositing.Renderer.RasterTask.RasterPixelsPerMs"/>
  <affected-histogram
      name="Compositing.Renderer.RasterTask.RasterPixelsPerMs2"/>
  <affected-histogram name="Compositing.Renderer.RasterTask.RasterUs"/>
  <affected-histogram name="Renderer4.ImageDecodeTaskDurationUs"/>
  <affected-histogram name="Renderer4.ImageDecodeTaskDurationUs.OutOfRaster"/>
</histogram_suffixes>

<histogram_suffixes name="RasterTaskTypeGpu" separator=".">
  <suffix name="Gpu" label="This metric is for only gpu raster."/>
  <suffix name="Oop" label="This metric is for only oop raster."/>
  <affected-histogram name="Renderer4.Browser.RasterTaskTotalDuration"/>
  <affected-histogram name="Renderer4.Renderer.RasterTaskTotalDuration"/>
</histogram_suffixes>

<histogram_suffixes name="ReadErrorSourceNetwork" separator=".">
  <suffix name="AnyNetwork"/>
  <suffix name="CurrentNetwork"
      label="This metric is for current network only."/>
  <suffix name="OtherNetworks"
      label="This metric is for old networks or networks to be migrated to
             only."/>
  <affected-histogram name="Net.QuicSession.ReadError"/>
</histogram_suffixes>

<histogram_suffixes name="ReferrerAttribution" separator=".">
  <suffix name="ApkDownloadTelemetry"
      label="APK downloads referrer attribution."/>
  <suffix name="DownloadAttribution" label="Download referrer attribution."/>
  <suffix name="MalwareInterstitialAttribution"
      label="Malware interstitial referrer attribution."/>
  <suffix name="PasswordEventAttribution"/>
  <suffix name="PhishingInterstitialAttribution"
      label="Phishing interstitial referrer attribution."/>
  <suffix name="PPAPIDownloadAttribution"
      label="PPAPI download referrer attribution."/>
  <suffix name="UwsInterstitialAttribution"
      label="UwS interstitial referrer attribution."/>
  <affected-histogram name="SafeBrowsing.ReferrerAttributionResult"/>
  <affected-histogram name="SafeBrowsing.ReferrerHasInvalidTabID"/>
  <affected-histogram name="SafeBrowsing.ReferrerURLChainSize"/>
</histogram_suffixes>

<histogram_suffixes name="RelaunchNotificationStyle" separator=".">
  <suffix name="Recommended" label="The relaunch recommended bubble."/>
  <suffix name="Required" label="The relaunch required dialog."/>
  <affected-histogram name="RelaunchNotification.ShowResult"/>
</histogram_suffixes>

<histogram_suffixes name="RemoteProcessWarmStartFast" separator="">
  <suffix name="" label="Normal start."/>
  <suffix name="Fast"
      label="Fast start by skipping normal chrome.dll startup."/>
  <affected-histogram name="Startup.WarmStartTimeFromRemoteProcessStart"/>
</histogram_suffixes>

<histogram_suffixes name="RemotingSessionDuration" separator=".">
  <suffix name="Duration0To100MilliSec"
      label="remoting sessions have duration in (0, 0.1] seconds"/>
  <suffix name="Duration1To3Sec"
      label="remoting sessions have duration in (1, 3] seconds"/>
  <suffix name="Duration3To5Sec"
      label="remoting sessions have duration in (3, 5] seconds"/>
  <suffix name="Duration5To10Sec"
      label="remoting sessions have duration in (5, 10] seconds"/>
  <suffix name="Duration10To15Sec"
      label="remoting sessions have duration in (10, 15] seconds"/>
  <suffix name="Duration100MilliSecTo1Sec"
      label="remoting sessions have duration in (0.1, 1] seconds"/>
  <affected-histogram name="Media.Remoting.SessionStopTrigger"/>
</histogram_suffixes>

<histogram_suffixes name="RendererEventLatency" separator=".">
  <suffix name="Char" label="The Char event occurs on textual keyboard input."/>
  <suffix name="ContextMenu" label="For ContextMenu event."/>
  <suffix name="GestureDoubleTap"
      label="A GestureDoubleTap occurs when the user double taps on a
             touchscreen."/>
  <suffix name="GestureFlingCancel"
      label="A GestureFlingCancel is sent to the renderer to cancel any
             active flings."/>
  <suffix name="GestureFlingStart"
      label="A GestureFlingStart is sent when the user quickly flicks on a
             touchscreen."/>
  <suffix name="GestureLongPress"
      label="A GestureLongPress is sent when the user taps down and holds
             their finger on a touchscreen."/>
  <suffix name="GestureLongTap"
      label="A GestureLongTap is sent when the user taps down on a
             touchscreen, holds their finger for a while, then releases."/>
  <suffix name="GesturePinchBegin"
      label="A GesturePinchBegin is sent when a user starts a pinch zoom
             motion on a touchscreen."/>
  <suffix name="GesturePinchEnd"
      label="A GesturePinchEnd is sent when the user releases their fingers
             from the touchscreen after performing a pinch zoom motion."/>
  <suffix name="GesturePinchUpdate"
      label="GesturePinchUpdate events are sent while the user is performing
             a pinch zoom motion on a touch screen. GesturePinchUpdate events
             are sent as the user changes the distance between their fingers."/>
  <suffix name="GestureScrollBegin"
      label="A GestureScrollBegin is sent at the beginning of a gesture
             scroll on a touchscreen."/>
  <suffix name="GestureScrollEnd"
      label="A GestureScrollEnd is sent when the user releases their finger
             after a gesture scroll on a touchscreen."/>
  <suffix name="GestureScrollUpdate"
      label="GestureScrollUpdate events are sent as the user drags their
             finger along the touchscreen during a gesture scroll."/>
  <suffix name="GestureScrollUpdateWithoutPropagation"
      label="GestureScrollUpdateWithoutPropagation events are scroll updates
             that shouldn't bubble, generated by a gesture fling."/>
  <suffix name="GestureShowPress"
      label="A GestureShowPress event is sent when the user presses down on
             the touchscreen but before a GestureTapDown."/>
  <suffix name="GestureTap"
      label="A GestureTap is sent when the user presses down and releases on
             a touchscreen."/>
  <suffix name="GestureTapCancel"
      label="A GestureTapCancel is sent to cancel a pending GestureTap event.
             For example, if the user taps down but drags their finger
             instead of releasing it."/>
  <suffix name="GestureTapDown"
      label="A GestureTapDown is sent when the user presses on the
             touchscreen in what could potentially be a full GestureTap
             event."/>
  <suffix name="GestureTapUnconfirmed"
      label="A GestureTapUnconfirmed is sent when the user taps the
             touchscreen but, due to a delay, the GestureTap isn't sent yet."/>
  <suffix name="GestureTwoFingerTap"
      label="A GestureTwoFingerTap is sent when the user presses down a
             releases on a touchscreen with two fingers."/>
  <suffix name="KeyDown"
      label="A KeyDown event is sent when a keyboard key is pressed down."/>
  <suffix name="KeyUp"
      label="A KeyUp event is sent when a depressed keyboard key is released."/>
  <suffix name="MouseDown"
      label="A MouseDown event is sent when the user click down a mouse
             button."/>
  <suffix name="MouseEnter"
      label="A MouseEnter event is sent when the mouse cursor enters the
             renderer area."/>
  <suffix name="MouseLeave"
      label="A MouseLeave event is sent when the mouse cursor leaves the
             renderer area."/>
  <suffix name="MouseMove"
      label="A MouseMove event is sent when the mouse cursor moves within the
             renderer area."/>
  <suffix name="MouseUp"
      label="A MouseUp event is sent when a depressed mouse button is
             released."/>
  <suffix name="MouseWheel"
      label="A MouseWheel event is sent when the user scrolls using the mouse
             wheel within the renderer area."/>
  <suffix name="RawKeyDown"
      label="A RawKeyDown event is a wrapper around a native key event."/>
  <suffix name="TouchCancel"
      label="A TouchCancel is used to cancel an existing touch point. For
             example, if the user drags a finger outside the bounds of the
             renderer."/>
  <suffix name="TouchEnd"
      label="A TouchEnd is send when the user lifts a finger from the
             touchscreen."/>
  <suffix name="TouchMove"
      label="A TouchMove is sent when the user moves a finger along the
             touchscreen."/>
  <suffix name="TouchStart"
      label="A TouchStart is sent when the user first touches a finger to the
             touchscreen."/>
  <suffix name="Undefined" label="For unknown or undefined events."/>
  <affected-histogram name="Event.Latency.Renderer"/>
  <affected-histogram name="Event.Latency.Renderer2"/>
  <affected-histogram name="Event.Latency.RendererImpl"/>
</histogram_suffixes>

<histogram_suffixes name="RendererMemoryAllocator" separator=".">
  <suffix base="true" name="BlinkGC"
      label="Constrained to the BlinkGC allocator"/>
  <suffix base="true" name="Discardable"
      label="Constrained to discardable memory usage"/>
  <suffix base="true" name="Malloc" label="Constrained to malloc usage"/>
  <suffix base="true" name="NonDiscardableTotalAllocated"
      label="Summed over the PartitionAlloc, malloc, mainThreadIsolate() and
             BlinkGC allocators"/>
  <suffix base="true" name="PartitionAlloc"
      label="Constrained to the PartitionAlloc allocator"/>
  <suffix base="true" name="TotalAllocated"
      label="Summed over the PartitionAlloc, malloc, discardable memory,
             mainThreadIsolate() and BlinkGC allocators"/>
  <suffix base="true" name="TotalAllocatedPerRenderView"
      label="TotalAllocated divided by the number of RenderViews"/>
  <suffix base="true" name="V8MainThreadIsolate"
      label="Constrained to memory usage by mainThreadIsolate()"/>
  <affected-histogram name="Memory.Experimental.Renderer"/>
</histogram_suffixes>

<histogram_suffixes name="RendererMemoryTiming" separator=".">
  <suffix name="AfterBackgrounded.5min"
      label="Recorded 5 minutes after backgrounded."/>
  <suffix name="AfterBackgrounded.10min"
      label="Recorded 10 minutes after backgrounded."/>
  <suffix name="AfterBackgrounded.15min"
      label="Recorded 15 minutes after backgrounded."/>
  <suffix name="DidFinishLoad"
      label="Recorded each time DidFinishLoad is called for *any* frame
             within the page."/>
  <suffix name="MainFrame.PeakDuringLoad"
      label="In the main frame, polled each time CreateURLLoader is called,
             and the maximum value is recorded when DidFinishLoad is called.">
    <obsolete>
      Deprecated as of 04/2018. No longer recorded.
    </obsolete>
  </suffix>
  <suffix name="MainFrameDidFinishLoad"
      label="Recorded when DidFinishLoad is called for the main frame."/>
  <suffix name="PeakDuringLoad"
      label="Polled each time CreateURLLoader is called, and the maximum value
             is recorded when DidFinishLoad is called.">
    <obsolete>
      Deprecated as of 04/2018. No longer recorded.
    </obsolete>
  </suffix>
  <suffix name="ServiceWorkerControlledMainFrame.PeakDuringLoad"
      label="In the main frame which is controlled by a service worker, polled
             each time CreateURLLoader is called, and the maximum value is
             recorded when DidFinishLoad is called.">
    <obsolete>
      Deprecated as of 04/2018. No longer recorded.
    </obsolete>
  </suffix>
  <suffix name="ServiceWorkerControlledMainFrameDidFinishLoad"
      label="Recorded when DidFinishLoad is called for the main frame which is
             controlled by a service worker.">
    <obsolete>
      Deprecated as of June 2018. No longer recorded. This was also being
      recorded when the page had a controller with no fetch event, which usually
      means the service worker was not running.
    </obsolete>
  </suffix>
  <affected-histogram name="Memory.Experimental.Renderer.BlinkGC"/>
  <affected-histogram name="Memory.Experimental.Renderer.Discardable"/>
  <affected-histogram name="Memory.Experimental.Renderer.Malloc"/>
  <affected-histogram
      name="Memory.Experimental.Renderer.NonDiscardableTotalAllocated"/>
  <affected-histogram name="Memory.Experimental.Renderer.PartitionAlloc"/>
  <affected-histogram name="Memory.Experimental.Renderer.TotalAllocated"/>
  <affected-histogram
      name="Memory.Experimental.Renderer.TotalAllocatedPerRenderView"/>
  <affected-histogram name="Memory.Experimental.Renderer.V8MainThreadIsolate"/>
</histogram_suffixes>

<histogram_suffixes name="RendererScheduler.AfterNthMinuteInBackgroundSplit"
    separator=".">
  <suffix name="Background.AfterFifthMinute"
      label="Time spent in tasks of a particular task type starting from the
             sixth minute after backgrounding the renderer. The renderer is
             expected to be mostly idle during this period."/>
  <suffix name="Background.AfterTenthMinute"
      label="Time spent in tasks of a particular task type starting from the
             eleventh minute after backgrounding the renderer. The renderer
             is expected to be mostly idle during this period."/>
  <affected-histogram name="RendererScheduler.TaskDurationPerTaskType2"/>
</histogram_suffixes>

<histogram_suffixes name="RendererScheduler.ExpectedQueueingTime.FrameSplit"
    separator=".">
  <suffix name="CrossOriginBackground"
      label="Expected Queueing Time from cross-origin backgrounded frames."/>
  <suffix name="CrossOriginHidden"
      label="Expected Queueing Time from cross-origin offscreen frames."/>
  <suffix name="CrossOriginVisible"
      label="Expected Queueing Time from cross-origin onscreen frames."/>
  <suffix name="MainFrameBackground"
      label="Expected Queueing Time from backgrounded main frames."/>
  <suffix name="MainFrameHidden"
      label="Expected Queueing Time from offscreen main frames."/>
  <suffix name="MainFrameVisible"
      label="Expected Queueing Time from onscreen main frames."/>
  <suffix name="Other"
      label="Expected Queueing Time from events with detached or nonexistent
             frames."/>
  <suffix name="SameOriginBackground"
      label="Expected Queueing Time from same-origin backgrounded frames."/>
  <suffix name="SameOriginHidden"
      label="Expected Queueing Time from same-origin offscreen frames."/>
  <suffix name="SameOriginVisible"
      label="Expected Queueing Time from same-origin onscreen frames."/>
  <affected-histogram
      name="RendererScheduler.ExpectedQueueingTimeByFrameStatus"/>
  <affected-histogram
      name="RendererScheduler.ExpectedQueueingTimeByFrameStatus2"/>
</histogram_suffixes>

<histogram_suffixes
    name="RendererScheduler.ExpectedQueueingTime.TaskQueueSplit" separator=".">
  <obsolete>
    Removed Febrary 2019.
  </obsolete>
  <suffix name="Compositor"
      label="Expected Queueing Time from the compositor task queue."/>
  <suffix name="Default"
      label="Expected Queueing Time from the default task queue."/>
  <suffix name="DefaultLoading"
      label="Expected Queueing Time from the default loading task queue."/>
  <suffix name="FrameLoading"
      label="Expected Queueing Time from the frame loading task queue."/>
  <suffix name="FramePausable"
      label="Expected Queueing Time from the frame pausable task queue."/>
  <suffix name="FrameThrottleable"
      label="Expected Queueing Time from the frame throttleable task queue."/>
  <suffix name="Other"
      label="Expected Queueing Time from events in any other task queue."/>
  <suffix name="Unthrottled"
      label="Expected Queueing Time from the unthrottled task queue."/>
  <affected-histogram name="RendererScheduler.ExpectedQueueingTimeByTaskQueue"/>
  <affected-histogram
      name="RendererScheduler.ExpectedQueueingTimeByTaskQueue2"/>
</histogram_suffixes>

<histogram_suffixes name="RendererScheduler.MainThreadLoadSplit" separator=".">
  <suffix name="Background"
      label="Main thread load when the renderer is backgrounded. This does
             not include extension renderers."/>
  <suffix name="Background.AfterFifthMinute"
      label="Main thread load when the renderer is backgrounded for longer
             than five minutes. This does not include extension renderers."/>
  <suffix name="Background.AfterFirstMinute"
      label="Main thread load when the renderer is backgrounded for longer
             than one minute. Most of loading tasks are expected to complete
             by then. This does not include extension renderers."/>
  <suffix name="Background.AfterTenthMinute"
      label="Main thread load when the renderer is backgrounded for longer
             than ten minutes. This does not include extension renderers."/>
  <suffix name="Extension" label="This only includes extension renderers"/>
  <suffix name="Extension.Background"
      label="Main thread load when the renderer is backgrounded. This only
             includes extension renderers."/>
  <suffix name="Extension.Foreground"
      label="Main thread load when the renderer is foregrounded. This only
             includes extension renderers."/>
  <suffix name="Foreground"
      label="Main thread load when the renderer is foregrounded. This does
             not include extension renderers."/>
  <suffix name="Foreground.AfterFirstMinute"
      label="Main thread load when the renderer is foregrounded for longer
             than one minute. Most of loading tasks are expected to complete
             by then. This does not include extension renderers."/>
  <affected-histogram name="RendererScheduler.RendererMainThreadLoad5"/>
</histogram_suffixes>

<histogram_suffixes name="RendererScheduler.ProcessVisibilityStateSplit"
    separator=".">
  <suffix name="Background"/>
  <suffix name="Foreground"/>
  <affected-histogram name="RendererScheduler.TaskCPUDurationPerThreadType"/>
  <affected-histogram name="RendererScheduler.TaskCPUDurationPerThreadType2"/>
  <affected-histogram name="RendererScheduler.TaskDurationPerTaskType"/>
  <affected-histogram name="RendererScheduler.TaskDurationPerTaskType2"/>
  <affected-histogram name="RendererScheduler.TaskDurationPerThreadType"/>
  <affected-histogram name="RendererScheduler.TaskDurationPerThreadType2"/>
</histogram_suffixes>

<histogram_suffixes name="RendererScheduler.TaskCountPerTaskLength"
    separator=".">
  <suffix name="LongerThan1s"/>
  <suffix name="LongerThan16ms"/>
  <suffix name="LongerThan50ms"/>
  <suffix name="LongerThan100ms"/>
  <suffix name="LongerThan150ms"/>
  <affected-histogram name="RendererScheduler.TaskCountPerFrameType"/>
  <affected-histogram name="RendererScheduler.TaskCountPerQueueType"/>
</histogram_suffixes>

<histogram_suffixes
    name="RendererScheduler.TaskDurationPerFrameOriginTypeSplit" separator=".">
  <suffix name="DedicatedWorker"/>
  <suffix name="DedicatedWorker.Background"/>
  <affected-histogram name="RendererScheduler.TaskDurationPerFrameOriginType"/>
</histogram_suffixes>

<histogram_suffixes name="RendererScheduler.TaskDurationPerQueueTypeSplit"
    separator=".">
  <suffix name="Background"
      label="Time spent in tasks of a particular queue type when the renderer
             is in the background."/>
  <suffix name="Background.AfterFifthMinute"
      label="Time spent in tasks of a particular queue type starting from the
             sixth minute after backgrounding the renderer. The renderer is
             expected to be mostly idle during this period."/>
  <suffix name="Background.AfterTenthMinute"
      label="Time spent in tasks of a particular type starting from the
             eleventh minute after backgrounding the renderer. The renderer
             is expected to be mostly idle during this period."/>
  <suffix name="Background.FifthMinute"
      label="Time spent in tasks of a particular queue type during the fifth
             minute after backgrounding the renderer."/>
  <suffix name="Background.FirstMinute"
      label="Time spent in tasks of a particular queue type during the first
             minute after backgrounding the renderer. A large amount of
             loading tasks are expected during this period."/>
  <suffix name="Background.FourthMinute"
      label="Time spent in tasks of a particular queue type during the fourth
             minute after backgrounding the renderer."/>
  <suffix name="Background.KeepAlive.AfterFifthMinute"
      label="Time spent in tasks of a particular queue type starting from the
             sixth minute after backgrounding the renderer when keep-alive
             signal is present."/>
  <suffix name="Background.KeepAlive.AfterTenthMinute"
      label="Time spent in tasks of a particular queue type starting from the
             eleventh minute after backgrounding the renderer when keep-alive
             signal is present."/>
  <suffix name="Background.SecondMinute"
      label="Time spent in tasks of a particular queue type during the second
             minute after backgrounding the renderer."/>
  <suffix name="Background.ThirdMinute"
      label="Time spent in tasks of a particular queue type during the third
             minute after backgrounding the renderer."/>
  <suffix name="Foreground"
      label="Time spent in tasks of a particular queue type when the renderer
             is in the foreground. Please note that individual tabs in this
             renderer can be backgrounded."/>
  <suffix name="Foreground.AfterThirdMinute"
      label="Time spent in tasks of a particular queue type starting from the
             fourth minute after foregrounding the renderer."/>
  <suffix name="Foreground.FirstMinute"
      label="Time spent in tasks of a particular queue type during the first
             minute after foregrounding the renderer."/>
  <suffix name="Foreground.SecondMinute"
      label="Time spent in tasks of a particular queue type during the second
             minute after foregrounding the renderer."/>
  <suffix name="Foreground.ThirdMinute"
      label="Time spent in tasks of a particular queue type during the third
             minute after foregrounding the renderer."/>
  <suffix name="Hidden"
      label="Time spent in tasks of a particular queue type when the renderer
             is hidden."/>
  <suffix name="HiddenMusic"
      label="Time spent in tasks of a particular queue type when the renderer
             is hidden and is playing audible sound."/>
  <suffix name="Visible"
      label="Time spent in tasks of a particular queue type when the renderer
             is visible."/>
  <affected-histogram name="RendererScheduler.TaskDurationPerQueueType2"/>
  <affected-histogram name="RendererScheduler.TaskDurationPerQueueType3"/>
</histogram_suffixes>

<histogram_suffixes name="RendererScheduler.TaskDurationPerTaskTypeSplit"
    separator=".">
  <suffix name="UseCaseInputHandling"/>
  <suffix name="UseCaseLoading"/>
  <suffix name="UseCaseNone"/>
  <affected-histogram name="RendererScheduler.TaskDurationPerTaskType2"/>
</histogram_suffixes>

<histogram_suffixes name="RendererThreadType" separator=".">
  <suffix name="Compositor"
      label="Measurement taken on the compositor thread."/>
  <suffix name="Main" label="Measurement taken on the main/render thread."/>
  <affected-histogram name="AnimatedImage.NumOfFramesSkipped"/>
</histogram_suffixes>

<histogram_suffixes name="RequestMediaKeySystemAccessKeySystems" separator=".">
  <suffix name="ClearKey" label="Requests for the Clear Key key system."/>
  <suffix name="Unknown"
      label="Requests for an unknown or unsupported key system."/>
  <suffix name="Widevine" label="Requests for the Widevine key system."/>
  <affected-histogram name="Media.EME.RequestMediaKeySystemAccess"/>
</histogram_suffixes>

<histogram_suffixes name="RequestThrottlerTypes" separator="_">
  <suffix name="SuggestionFetcher"
      label="Fetcher for content suggestions on mobile NTP">
    <obsolete>
      Deprecated in 10/2016.
    </obsolete>
  </suffix>
  <suffix name="SuggestionFetcherActiveNTPUser"
      label="Fetcher for content suggestions on mobile NTP - active NTP users"/>
  <suffix name="SuggestionFetcherActiveSuggestionsConsumer"
      label="Fetcher for content suggestions on mobile NTP - active
             suggestions consumers"/>
  <suffix name="SuggestionFetcherRareNTPUser"
      label="Fetcher for content suggestions on mobile NTP - rare NTP users"/>
  <suffix name="SuggestionThumbnailFetcher"
      label="Fetcher for article thumbnails on mobile NTP"/>
  <affected-histogram name="NewTabPage.RequestThrottler.PerDay"/>
  <affected-histogram name="NewTabPage.RequestThrottler.PerDayInteractive"/>
  <affected-histogram name="NewTabPage.RequestThrottler.RequestStatus"/>
</histogram_suffixes>

<histogram_suffixes name="ResourceLoaderSizeSlice" separator=".">
  <suffix name="InliningApplicable"
      label="Resources that the chunk inlining is applicable.">
    <obsolete>
      This experiment was turned down, see https://crbug.com/703188.
    </obsolete>
  </suffix>
  <suffix name="LT_2kB" label="Sliced for resources smaller than 2kB."/>
  <suffix name="LT_32kB"
      label="Sliced for resources smaller than 32kB and larger than 2kB."/>
  <suffix name="LT_512kB"
      label="Sliced for resources smaller than 512kB and larger than 32kB."/>
  <suffix name="Over_512kB" label="Sliced for resources larger than 512kB."/>
  <affected-histogram name="Net.ResourceLoader.ResponseStartToEnd"/>
</histogram_suffixes>

<histogram_suffixes name="ResourceLoadScheduler.FrameType" separator=".">
  <suffix name="MainframeNotThrottled" label="Main frame, not throttled"/>
  <suffix name="MainframePartiallyThrottled"
      label="Main frame, partially throttled">
    <obsolete>
      This experiment was turned down, see https://crbug.com/768325.
    </obsolete>
  </suffix>
  <suffix name="MainframeThrottled" label="Main frame, throttled"/>
  <suffix name="SubframeNotThrottled" label="Sub frame, not throttled"/>
  <suffix name="SubframePartiallyThrottled"
      label="Sub frame, partially throttled">
    <obsolete>
      This experiment was turned down, see https://crbug.com/768325.
    </obsolete>
  </suffix>
  <suffix name="SubframeThrottled" label="Sub frame, throttled"/>
  <affected-histogram name="Blink.ResourceLoadScheduler.DecodedBytes"/>
  <affected-histogram name="Blink.ResourceLoadScheduler.PeakRequests"/>
  <affected-histogram name="Blink.ResourceLoadScheduler.TotalDecodedBytes"/>
  <affected-histogram name="Blink.ResourceLoadScheduler.TotalRequestCount"/>
  <affected-histogram name="Blink.ResourceLoadScheduler.TotalTrafficBytes"/>
  <affected-histogram name="Blink.ResourceLoadScheduler.TrafficBytes"/>
</histogram_suffixes>

<histogram_suffixes name="ResourcePrefetchPredictorNetworkTypePrefetch"
    separator=".">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <suffix name="NotPrefetched"
      label="Number of non-prefetched pages on each type of network."/>
  <suffix name="Prefetched"
      label="Number of prefetched pages on each type of network."/>
  <affected-histogram name="ResourcePrefetchPredictor.NetworkType"/>
</histogram_suffixes>

<histogram_suffixes name="ResourcePrefetchPredictorPLTNetworkTypes"
    separator="_">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <suffix name="2G" label="Page load time in 2G network."/>
  <suffix name="3G" label="Page load time in 3G network."/>
  <suffix name="4G" label="Page load time in 4G network."/>
  <suffix name="Bluetooth" label="Page load time in bluetooth network."/>
  <suffix name="Cellular" label="Page load time in cellular network."/>
  <suffix name="Ethernet" label="Page load time in Ethernet."/>
  <suffix name="None" label="Page load time without network connection."/>
  <suffix name="Unknown" label="Page load time in unknown type of network."/>
  <suffix name="WiFi" label="Page load time in WiFi network."/>
  <affected-histogram name="ResourcePrefetchPredictor.PLT"/>
  <affected-histogram name="ResourcePrefetchPredictor.PLT.NotPrefetched"/>
  <affected-histogram name="ResourcePrefetchPredictor.PLT.Prefetched"/>
  <affected-histogram name="ResourcePrefetchPredictor.PLT.Prefetched.Host"/>
  <affected-histogram name="ResourcePrefetchPredictor.PLT.Prefetched.Url"/>
</histogram_suffixes>

<histogram_suffixes name="ResourcePrefetchPredictorPLTPrefetch" separator=".">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <suffix name="NotPrefetched"
      label="Page load time for non-prefetched pages."/>
  <suffix name="Prefetched" label="Page load time for prefetched pages."/>
  <affected-histogram name="ResourcePrefetchPredictor.PLT"/>
</histogram_suffixes>

<histogram_suffixes name="ResourcePrefetchPredictorPLTPrefetchType"
    separator=".">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <suffix name="Host"
      label="Page load time for prefetched pages based on main frame host."/>
  <suffix name="Url"
      label="Page load time for prefetched pages based on main frame URL."/>
  <affected-histogram name="ResourcePrefetchPredictor.PLT.Prefetched"/>
</histogram_suffixes>

<histogram_suffixes name="ResourcePrefetchPredictorPredictedStatsVariedMax"
    separator="_">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <suffix name="25"
      label="Covers statistics when the maximum subresources that can be
             prefetched is set to 25."/>
  <suffix name="50"
      label="Covers statistics when the maximum subresources that can be
             prefetched is set to 50."/>
  <affected-histogram
      name="ResourcePrefetchPredictor.Host.PredictedPrefetchCount"/>
  <affected-histogram
      name="ResourcePrefetchPredictor.Host.PredictedPrefetchFromCache_Count"/>
  <affected-histogram
      name="ResourcePrefetchPredictor.Host.PredictedPrefetchFromCache_PercentOfTotalPrefetched"/>
  <affected-histogram
      name="ResourcePrefetchPredictor.Host.PredictedPrefetchFromNetwork_Count"/>
  <affected-histogram
      name="ResourcePrefetchPredictor.Host.PredictedPrefetchFromNetwork_PercentOfTotalPrefetched"/>
  <affected-histogram
      name="ResourcePrefetchPredictor.Host.PredictedPrefetchFromNetworkPercentOfTotalFromNetwork"/>
  <affected-histogram
      name="ResourcePrefetchPredictor.Host.PredictedPrefetchMisses_Count"/>
  <affected-histogram
      name="ResourcePrefetchPredictor.Host.PredictedPrefetchMisses_PercentOfTotalPrefetched"/>
  <affected-histogram
      name="ResourcePrefetchPredictor.Url.PredictedPrefetchCount"/>
  <affected-histogram
      name="ResourcePrefetchPredictor.Url.PredictedPrefetchFromCache_Count"/>
  <affected-histogram
      name="ResourcePrefetchPredictor.Url.PredictedPrefetchFromCache_PercentOfTotalPrefetched"/>
  <affected-histogram
      name="ResourcePrefetchPredictor.Url.PredictedPrefetchFromNetwork_Count"/>
  <affected-histogram
      name="ResourcePrefetchPredictor.Url.PredictedPrefetchFromNetwork_PercentOfTotalPrefetched"/>
  <affected-histogram
      name="ResourcePrefetchPredictor.Url.PredictedPrefetchFromNetworkPercentOfTotalFromNetwork"/>
  <affected-histogram
      name="ResourcePrefetchPredictor.Url.PredictedPrefetchMisses_Count"/>
  <affected-histogram
      name="ResourcePrefetchPredictor.Url.PredictedPrefetchMisses_PercentOfTotalPrefetched"/>
</histogram_suffixes>

<histogram_suffixes name="ResourcePrefetchPredictorPredictedStatTypes"
    separator="_">
  <obsolete>
    Deprecated September 2016. No longer recorded.
  </obsolete>
  <suffix name="Count" label="Predicted accuracy stats as the raw numbers."/>
  <suffix name="PercentOfTotalPrefetched"
      label="Predicted accuracy stats as percent of total resources
             prefetched."/>
  <affected-histogram
      name="ResourcePrefetchPredictor.Host.PredictedPrefetchFromCache"/>
  <affected-histogram
      name="ResourcePrefetchPredictor.Host.PredictedPrefetchFromNetwork"/>
  <affected-histogram
      name="ResourcePrefetchPredictor.Host.PredictedPrefetchMisses"/>
  <affected-histogram
      name="ResourcePrefetchPredictor.Url.PredictedPrefetchFromCache"/>
  <affected-histogram
      name="ResourcePrefetchPredictor.Url.PredictedPrefetchFromNetwork"/>
  <affected-histogram
      name="ResourcePrefetchPredictor.Url.PredictedPrefetchMisses"/>
</histogram_suffixes>

<histogram_suffixes name="ResourceSchedulerClientBreakDown" separator="_">
  <obsolete>
    Deprecated 1/2016
  </obsolete>
  <suffix name="1Client" label="One Client in the ResourceScheduler."/>
  <suffix name="Max5Clients"
      label="Two to five Clients in the ResourceScheduler."/>
  <suffix name="Max15Clients"
      label="Six to fifteen Clients in the ResourceScheduler."/>
  <suffix name="Max30Clients"
      label="Sixteen to thirty Clients in the ResourceScheduler."/>
  <suffix name="Over30Clients"
      label="Over thirty Clients in the ResourceScheduler."/>
  <affected-histogram name="ResourceScheduler.ClientLoadedTime.Active"/>
  <affected-histogram name="ResourceScheduler.ClientLoadedTime.Background"/>
  <affected-histogram name="ResourceScheduler.ClientLoadedTime.Other"/>
  <affected-histogram
      name="ResourceScheduler.ClientLoadedTime.Other.SwitchedToActive"/>
</histogram_suffixes>

<histogram_suffixes name="ResourceSchedulerPeakDelayableRequestsInFlight"
    separator=".">
  <suffix name="LayoutBlocking"
      label="Records the highest number of delayable requests that were
             in-flight at the same time when a layout blocking request was
             in-flight. Recorded every time a layout blocking request
             finishes."/>
  <suffix name="NonDelayable"
      label="Records the highest number of delayable requests that were
             in-flight at the same time when a non-delayable request was
             in-flight. Recorded every time a non-delayable request finishes."/>
  <affected-histogram name="ResourceScheduler.PeakDelayableRequestsInFlight"/>
</histogram_suffixes>

<histogram_suffixes name="ResourceSchedulerRequestsCount" separator=".">
  <suffix name="All" label="All requests in-flight were counted."/>
  <suffix name="Delayable" label="Delayable requests in-flight were counted."/>
  <suffix name="NonDelayable"
      label="Non-delayable requests in-flight were counted."/>
  <suffix name="TotalLayoutBlocking"
      label="Layout blocking requests in-flight were counted."/>
  <affected-histogram name="ResourceScheduler.RequestsCount"/>
</histogram_suffixes>

<histogram_suffixes name="ResourceType" separator=".">
  <suffix name="CSSStyleSheet"/>
  <suffix name="Font"/>
  <suffix name="Image"/>
  <suffix name="ImportResource"/>
  <suffix name="LinkPrefetch"/>
  <suffix name="LinkSubresource"/>
  <suffix name="MainResource"/>
  <suffix name="Manifest"/>
  <suffix name="Media"/>
  <suffix name="Raw"/>
  <suffix name="Script"/>
  <suffix name="SVGDocument"/>
  <suffix name="TextTrack"/>
  <suffix name="XSLStyleSheet"/>
  <affected-histogram name="Blink.MemoryCache.RevalidationPolicy"/>
  <affected-histogram name="Blink.MemoryCache.RevalidationPolicy.Dead"/>
  <affected-histogram name="Blink.MemoryCache.RevalidationPolicy.Preload"/>
  <affected-histogram name="PreloadScanner.Counts"/>
  <affected-histogram name="PreloadScanner.Counts.Miss"/>
  <affected-histogram name="PreloadScanner.Counts2"/>
  <affected-histogram name="PreloadScanner.Counts2.Miss"/>
</histogram_suffixes>

<histogram_suffixes name="RoamSecurityType" separator=".">
  <suffix name="EAP"
      label="Records roams in a network using 802.1X authentication without
             Fast Transition"/>
  <suffix name="FTEAP"
      label="Records roams in a network using 802.1X authentication with Fast
             Transition"/>
  <suffix name="FTPSK"
      label="Records roams in a network using PSK authentication with Fast
             Transition"/>
  <suffix name="PSK"
      label="Records roams in a network using PSK authentication without Fast
             Transition"/>
  <affected-histogram name="Network.Shill.WiFi.RoamComplete"/>
  <affected-histogram name="Network.Shill.WiFi.RoamTime"/>
  <affected-histogram name="Network.Shill.WiFi.SessionLength"/>
</histogram_suffixes>

<histogram_suffixes name="SafeBrowsing.V4Store.Metrics" separator=".">
  <suffix name="AnyIpMalware" label="(Obsolete, not recorded)"/>
  <suffix name="CertCsdDownloadWhitelist"/>
  <suffix name="ChromeExtMalware"/>
  <suffix name="ChromeFilenameClientIncident" label="(Obsolete, not recorded)"/>
  <suffix name="ChromeUrlClientIncident"/>
  <suffix name="IpMalware"/>
  <suffix name="UrlBilling"/>
  <suffix name="UrlCsdDownloadWhitelist"/>
  <suffix name="UrlCsdWhitelist"/>
  <suffix name="UrlMalBin"/>
  <suffix name="UrlMalware"/>
  <suffix name="UrlSoceng"/>
  <suffix name="UrlSubresourceFilter"/>
  <suffix name="UrlSuspiciousSite"/>
  <suffix name="UrlSuspiciousSiteId" label="(Obsolete, UrlSuspiciousSite)"/>
  <suffix name="UrlUws"/>
  <affected-histogram name="SafeBrowsing.V4Database.Size"/>
  <affected-histogram
      name="SafeBrowsing.V4ProcessFullUpdate.ApplyUpdate.Result"/>
  <affected-histogram name="SafeBrowsing.V4ProcessFullUpdate.ApplyUpdate.Time"/>
  <affected-histogram
      name="SafeBrowsing.V4ProcessFullUpdate.DecodeAdditions.Result"/>
  <affected-histogram
      name="SafeBrowsing.V4ProcessFullUpdate.DecodeAdditions.Time"/>
  <affected-histogram name="SafeBrowsing.V4ProcessFullUpdate.MergeUpdate.Time"/>
  <affected-histogram
      name="SafeBrowsing.V4ProcessPartialUpdate.ApplyUpdate.Result"/>
  <affected-histogram
      name="SafeBrowsing.V4ProcessPartialUpdate.ApplyUpdate.Time"/>
  <affected-histogram
      name="SafeBrowsing.V4ProcessPartialUpdate.DecodeAdditions.Result"/>
  <affected-histogram
      name="SafeBrowsing.V4ProcessPartialUpdate.DecodeAdditions.Time"/>
  <affected-histogram
      name="SafeBrowsing.V4ProcessPartialUpdate.DecodeRemovals.Result"/>
  <affected-histogram
      name="SafeBrowsing.V4ProcessPartialUpdate.DecodeRemovals.Time"/>
  <affected-histogram
      name="SafeBrowsing.V4ProcessPartialUpdate.MergeUpdate.Time"/>
  <affected-histogram name="SafeBrowsing.V4ReadFromDisk.ApplyUpdate.Result"/>
  <affected-histogram name="SafeBrowsing.V4ReadFromDisk.ApplyUpdate.Time"/>
  <affected-histogram
      name="SafeBrowsing.V4ReadFromDisk.DecodeAdditions.Result"/>
  <affected-histogram name="SafeBrowsing.V4ReadFromDisk.DecodeAdditions.Time"/>
  <affected-histogram name="SafeBrowsing.V4ReadFromDisk.MergeUpdate.Time"/>
  <affected-histogram name="SafeBrowsing.V4Store.IsStoreValid"/>
  <affected-histogram name="SafeBrowsing.V4UnusedStoreFileExists"/>
</histogram_suffixes>

<histogram_suffixes name="SafeBrowsing.V4Store.V3.Metrics" separator=".">
  <obsolete>
    Removed in M73. See https://crbug.com/916192
  </obsolete>
  <suffix name="Bloom"/>
  <suffix name="BloomPrefixSet"/>
  <suffix name="CsdWhitelist"/>
  <suffix name="Download"/>
  <suffix name="DownloadWhitelist"/>
  <suffix name="ExtensionBlacklist"/>
  <suffix name="InclusionWhitelist"/>
  <suffix name="IPBlacklist"/>
  <suffix name="ModuleWhitelist"/>
  <suffix name="ResourceBlacklist"/>
  <suffix name="Side-EffectFreeWhitelist"/>
  <suffix name="UwSList"/>
  <suffix name="UwSListPrefixSet"/>
  <affected-histogram name="SafeBrowsing.V4UnusedStoreFileExists.V3"/>
</histogram_suffixes>

<histogram_suffixes name="SafeBrowsingLists" separator=".">
  <suffix name="Browse" label="Browse"/>
  <suffix name="CsdWhitelist" label="CsdWhitelist"/>
  <suffix name="Download" label="Download"/>
  <suffix name="DownloadWhitelist" label="DownloadWhitelist"/>
  <suffix name="ExtensionBlacklist" label="ExtensionBlacklist"/>
  <suffix name="InclusionWhitelist" label="InclusionWhitelist"/>
  <suffix name="IPBlacklist" label="IPBlacklist"/>
  <suffix name="ResourceBlacklist" label="ResourceBlacklist"/>
  <suffix name="SideEffectFreeWhitelist" label="SideEffectFreeWhitelist">
    <obsolete>
      Deprecated 4/2015.
    </obsolete>
  </suffix>
  <suffix name="UnwantedSoftware" label="UnwantedSoftware"/>
  <affected-histogram name="SB2.DatabaseSizeKilobytes"/>
  <affected-histogram name="SB2.PrefixSetSizeKilobytes"/>
</histogram_suffixes>

<histogram_suffixes name="SafeBrowsingScoutGroupValues" separator=".">
  <suffix name="NoScoutGroup"
      label="User sees the legacy Extended Reporting opt-in"/>
  <suffix name="ScoutGroup"
      label="User sees the new Extended Reporting opt-in"/>
  <affected-histogram name="SafeBrowsing.Pref.Scout"/>
</histogram_suffixes>

<histogram_suffixes name="SafeBrowsingScoutInterstitialDecisions" separator=".">
  <suffix name="First_Disabled"
      label="User saw opt-in for first time and disabled it"/>
  <suffix name="First_Enabled"
      label="User saw opt-in for first time and enabled it"/>
  <suffix name="First_LeftUnchecked"
      label="User saw opt-in for first time and left it unchecked"/>
  <suffix name="Repeat_Disabled"
      label="User saw opt-in again and changed it to disabled"/>
  <suffix name="Repeat_Enabled"
      label="User saw opt-in again and changed it to enabled"/>
  <suffix name="Repeat_LeftDisabled"
      label="User saw opt-in again and left it disabled"/>
  <suffix name="Repeat_LeftEnabled"
      label="User saw opt-in again and left it enabled"/>
  <affected-histogram name="SafeBrowsing.Pref.Scout.Decision"/>
</histogram_suffixes>

<histogram_suffixes name="SafeBrowsingScoutOptInLocations" separator=".">
  <suffix name="AndroidSettings" label="The settings UI on Android"/>
  <suffix name="ChromeSettings" label="The settings UI on Desktop"/>
  <suffix name="DownloadPopup" label="The Download Feedback popup"/>
  <suffix name="SecurityInterstitial"
      label="One of the Security Interstitials (malware, SSL, etc)"/>
  <affected-histogram name="SafeBrowsing.Pref.Scout.SetPref.SBER1Pref"/>
  <affected-histogram name="SafeBrowsing.Pref.Scout.SetPref.SBER2Pref"/>
</histogram_suffixes>

<histogram_suffixes name="SafeBrowsingScoutPrefValues" separator=".">
  <suffix name="SBER1Pref" label="Value of the legacy Extended Reporting pref"/>
  <suffix name="SBER2Pref" label="Value of the new Extended Reporting pref"/>
  <affected-histogram name="SafeBrowsing.Pref.SawInterstitial"/>
  <affected-histogram name="SafeBrowsing.Pref.Scout.NoScoutGroup"/>
  <affected-histogram name="SafeBrowsing.Pref.Scout.ScoutGroup"/>
  <affected-histogram name="SafeBrowsing.Pref.Scout.SetPref"/>
</histogram_suffixes>

<histogram_suffixes name="SafeBrowsingWebSocketElapsed" separator=".">
  <suffix name="Abandoned"
      label="Connection abandoned, or interstitial displayed and user did not
             proceed to site"/>
  <suffix name="Blocked" label="Failed SafeBrowsing check and blocked"/>
  <suffix name="Safe"
      label="Passed SafeBrowsing check, or blocked and interstitial clicked
             through"/>
  <affected-histogram name="SafeBrowsing.WebSocket.Elapsed"/>
</histogram_suffixes>

<histogram_suffixes name="SameVersionStartupCounts" separator=".">
  <suffix name="1" label="1st startup with same version"/>
  <suffix name="2" label="2nd startup with same version"/>
  <suffix name="3" label="3rd startup with same version"/>
  <suffix name="4" label="4th startup with same version"/>
  <suffix name="5" label="5th startup with same version"/>
  <suffix name="6" label="6th startup with same version"/>
  <suffix name="7" label="7th startup with same version"/>
  <suffix name="8" label="8th startup with same version"/>
  <suffix name="9" label="9th startup with same version"/>
  <suffix name="Over" label="&gt; 9th startup with same version"/>
  <affected-histogram name="Startup.BrowserMainToRendererMain"/>
  <affected-histogram name="Startup.BrowserMessageLoopStartHardFaultCount"/>
  <affected-histogram name="Startup.BrowserMessageLoopStartTime"/>
  <affected-histogram name="Startup.BrowserMessageLoopStartTimeFromMainEntry"/>
  <affected-histogram name="Startup.BrowserMessageLoopStartTimeFromMainEntry2"/>
  <affected-histogram name="Startup.BrowserMessageLoopStartTimeFromMainEntry3"/>
  <affected-histogram name="Startup.BrowserOpenTabs"/>
  <affected-histogram name="Startup.BrowserWindowDisplay"/>
  <affected-histogram name="Startup.FirstWebContents.MainFrameLoad2"/>
  <affected-histogram name="Startup.FirstWebContents.MainNavigationFinished"/>
  <affected-histogram name="Startup.FirstWebContents.MainNavigationStart"/>
  <affected-histogram name="Startup.FirstWebContents.NonEmptyPaint2"/>
  <affected-histogram name="Startup.LoadTime.ExeMainToDllMain"/>
  <affected-histogram name="Startup.LoadTime.ExeMainToDllMain2"/>
  <affected-histogram name="Startup.LoadTime.ProcessCreateToDllMain"/>
  <affected-histogram name="Startup.LoadTime.ProcessCreateToDllMain2"/>
  <affected-histogram name="Startup.LoadTime.ProcessCreateToExeMain"/>
  <affected-histogram name="Startup.LoadTime.ProcessCreateToExeMain2"/>
  <affected-histogram name="Startup.SystemUptime"/>
  <affected-histogram name="Startup.Temperature"/>
  <affected-histogram name="Startup.TimeSinceLastStartup"/>
</histogram_suffixes>

<histogram_suffixes name="SB2ResourceTypes" separator=".">
  <suffix name="Checked"
      label="Resources that were checked. Logged before the resource starts
             loading and again for each redirect."/>
  <suffix name="Safe"
      label="Resources that were checked and deemed safe. Logged when the URL
             check is completed.">
    <obsolete>
      Deprecated in 9/2016.
    </obsolete>
  </suffix>
  <suffix name="Skipped"
      label="Resources that were not checked because they are not active-ish
             content types. Only used on mobile. Logged before the resource
             request starts."/>
  <suffix name="Unsafe"
      label="Resources that were checked and classified as unsafe. Logged
             when the URL check is completed."/>
  <suffix name="UnsafePrefetchCanceled"
      label="Pre-fetched resources that were checked and classified as
             unsafe. Logged as the request is canceled."/>
  <affected-histogram name="SB2.ResourceTypes"/>
  <affected-histogram name="SB2.ResourceTypes2"/>
</histogram_suffixes>

<histogram_suffixes name="SBInterstitial" separator="_">
  <obsolete>
    deprecated November 10 2012 crrev.com/167056
  </obsolete>
  <suffix name="V1" label="version 1 interstitial"/>
  <suffix name="V2" label="version 2 interstitial"/>
  <affected-histogram name="SB2.InterstitialAction"/>
  <affected-histogram name="SB2.MalwareInterstitialTimeClosed"/>
  <affected-histogram name="SB2.MalwareInterstitialTimeDiagnostic"/>
  <affected-histogram name="SB2.MalwareInterstitialTimeLearnMore"/>
  <affected-histogram name="SB2.MalwareInterstitialTimePrivacyPolicy"/>
  <affected-histogram name="SB2.MalwareInterstitialTimeProceed"/>
  <affected-histogram name="SB2.MalwareInterstitialTimeTakeMeBack"/>
</histogram_suffixes>

<histogram_suffixes name="SchedulerDarkMatterMetrics" separator=".">
  <suffix name="Tracked"
      label="Total duration of all tasks managed by the scheduler. This
             histogram is similar to the plain .CPUTimePerThread, but it
             ensures that the number of samples matches the .Untracked
             version of the same histogram."/>
  <suffix name="Untracked"
      label="Total execution time unaccounted for by the scheduler.
             Calculated as the difference between total thread time and the
             sum of all tasks managed by the scheduler."/>
  <affected-histogram name="Scheduler.Experimental.CPUTimePerThread"/>
  <affected-histogram name="Scheduler.Experimental.Renderer.CPUTimePerThread"/>
</histogram_suffixes>

<histogram_suffixes name="SchedulerTotalDurationHistograms" separator=".">
  <suffix name="Negative"/>
  <suffix name="Positive"/>
  <affected-histogram
      name="Scheduler.Experimental.Renderer.TotalTime.Wall.MainThread"/>
</histogram_suffixes>

<histogram_suffixes name="ScreenshareLayerStats" separator=".">
  <suffix name="FrameRate"
      label="Frames per second sent, in fps. The value is reported when a
             stream is removed and is calculated as the total number of
             frames in this layer, divided by the duration of the call."/>
  <suffix name="Qp"
      label="Average quantizer (qp) of frames sent. The value is reported
             when a stream is removed and is calculated, for this layer, as
             the sum of all qp values divided the number of frames."/>
  <suffix name="TargetBitrate"
      label="Average target bitrate in kbps. The value is reported when a
             stream is removed and is calculated as the sum of all target
             bitrates for this layer (sampled after frame has been encoded)
             divided by the total number of frames for this layer."/>
  <affected-histogram name="WebRTC.Video.Screenshare.Layer0"/>
  <affected-histogram name="WebRTC.Video.Screenshare.Layer1"/>
</histogram_suffixes>

<histogram_suffixes name="ScrollUpdateHandledThread" separator="_">
  <suffix name="Impl" label="ScrollUpdate handled on impl thread"/>
  <suffix name="Main" label="ScrollUpdate handled on main thread"/>
  <affected-histogram name="Event.Latency.Scroll.Wheel.TimeToHandled2"/>
  <affected-histogram
      name="Event.Latency.ScrollBegin.Touch.HandledToRendererSwap2"/>
  <affected-histogram name="Event.Latency.ScrollBegin.Touch.TimeToHandled2"/>
  <affected-histogram
      name="Event.Latency.ScrollBegin.Wheel.HandledToRendererSwap2"/>
  <affected-histogram name="Event.Latency.ScrollBegin.Wheel.TimeToHandled2"/>
  <affected-histogram
      name="Event.Latency.ScrollInertial.Touch.HandledToRendererSwap2"/>
  <affected-histogram name="Event.Latency.ScrollInertial.Touch.TimeToHandled2"/>
  <affected-histogram name="Event.Latency.ScrollUpdate.HandledToRendererSwap"/>
  <affected-histogram
      name="Event.Latency.ScrollUpdate.Touch.HandledToRendererSwap2"/>
  <affected-histogram name="Event.Latency.ScrollUpdate.Touch.TimeToHandled2"/>
  <affected-histogram name="Event.Latency.ScrollUpdate.TouchToHandled"/>
  <affected-histogram
      name="Event.Latency.ScrollUpdate.Wheel.HandledToRendererSwap2"/>
  <affected-histogram name="Event.Latency.ScrollUpdate.Wheel.TimeToHandled2"/>
</histogram_suffixes>

<histogram_suffixes name="SearchEnginePromoDeviceType" separator=".">
  <suffix name="ExistingDevice"/>
  <suffix name="NewDevice"/>
  <affected-histogram name="Search.SearchEngineListedInPromoDialog"/>
  <affected-histogram name="Search.SearchEngineSelectionInPromoDialog"/>
</histogram_suffixes>

<histogram_suffixes name="SearchEnginePromoOrdering" separator="."
    ordering="prefix,2">
  <suffix name="First"/>
  <suffix name="Second"/>
  <suffix name="Third"/>
  <affected-histogram
      name="Search.SearchEngineListedInPromoDialog.ExistingDevice"/>
  <affected-histogram name="Search.SearchEngineListedInPromoDialog.NewDevice"/>
</histogram_suffixes>

<histogram_suffixes name="SecurityInterstitialSBType" separator="."
    ordering="prefix">
  <suffix name="billing"/>
  <suffix name="billing_subresource"/>
  <suffix name="harmful"/>
  <suffix name="harmful_subresource"/>
  <suffix name="malware"/>
  <suffix name="malware_subresource"/>
  <suffix name="origin_policy"/>
  <suffix name="phishing"/>
  <suffix name="phishing_subresource"/>
  <suffix name="social_engineering_ads"/>
  <suffix name="social_engineering_ads_subresource"/>
  <suffix name="social_engineering_landing"/>
  <suffix name="social_engineering_landing_subresource"/>
  <affected-histogram name="interstitial.decision"/>
  <affected-histogram name="interstitial.decision.repeat_visit"/>
  <affected-histogram name="interstitial.interaction"/>
</histogram_suffixes>

<histogram_suffixes name="SecurityInterstitialSBWithSourceType" separator=".">
  <suffix name="from_client_side_detection"
      label="Interstitial for a resource classified as unsafe by the client
             side detection."/>
  <suffix name="from_data_saver"
      label="Interstitial for a resource classified as unsafe by the Data
             Saver service."/>
  <suffix name="from_device"
      label="Interstitial for a resource classified as unsafe by the Safe
             Browsing database via either
             {Local,Remote}SafeBrowsingDatabaseManager."/>
  <suffix name="from_device_v4"
      label="Interstitial for a resource classified as unsafe by the Safe
             Browsing database version 4 via either
             {Local,Remote}SafeBrowsingDatabaseManager."/>
  <affected-histogram name="interstitial.harmful.decision"/>
  <affected-histogram name="interstitial.harmful.decision.repeat_visit"/>
  <affected-histogram name="interstitial.harmful.interaction"/>
  <affected-histogram name="interstitial.harmful_subresource.decision"/>
  <affected-histogram
      name="interstitial.harmful_subresource.decision.repeat_visit"/>
  <affected-histogram name="interstitial.harmful_subresource.interaction"/>
  <affected-histogram name="interstitial.malware.decision"/>
  <affected-histogram name="interstitial.malware.decision.repeat_visit"/>
  <affected-histogram name="interstitial.malware.interaction"/>
  <affected-histogram name="interstitial.malware_subresource.decision"/>
  <affected-histogram
      name="interstitial.malware_subresource.decision.repeat_visit"/>
  <affected-histogram name="interstitial.malware_subresource.interaction"/>
  <affected-histogram name="interstitial.origin_policy.decision"/>
  <affected-histogram name="interstitial.origin_policy.decision.repeat_visit"/>
  <affected-histogram name="interstitial.origin_policy.interaction"/>
  <affected-histogram name="interstitial.phishing.decision"/>
  <affected-histogram name="interstitial.phishing.decision.repeat_visit"/>
  <affected-histogram name="interstitial.phishing.interaction"/>
  <affected-histogram name="interstitial.phishing_subresource.decision"/>
  <affected-histogram
      name="interstitial.phishing_subresource.decision.repeat_visit"/>
  <affected-histogram name="interstitial.phishing_subresource.interaction"/>
  <affected-histogram name="interstitial.social_engineering_ads.decision"/>
  <affected-histogram
      name="interstitial.social_engineering_ads.decision.repeat_visit"/>
  <affected-histogram name="interstitial.social_engineering_ads.interaction"/>
  <affected-histogram
      name="interstitial.social_engineering_ads_subresource.decision"/>
  <affected-histogram
      name="interstitial.social_engineering_ads_subresource.decision.repeat_visit"/>
  <affected-histogram
      name="interstitial.social_engineering_ads_subresource.interaction"/>
  <affected-histogram name="interstitial.social_engineering_landing.decision"/>
  <affected-histogram
      name="interstitial.social_engineering_landing.decision.repeat_visit"/>
  <affected-histogram
      name="interstitial.social_engineering_landing.interaction"/>
  <affected-histogram
      name="interstitial.social_engineering_landing_subresource.decision"/>
  <affected-histogram
      name="interstitial.social_engineering_landing_subresource.decision.repeat_visit"/>
  <affected-histogram
      name="interstitial.social_engineering_landing_subresource.interaction"/>
</histogram_suffixes>

<histogram_suffixes name="SecurityInterstitialSSLType" separator="."
    ordering="prefix">
  <suffix name="bad_clock"/>
  <suffix name="ssl_nonoverridable"/>
  <suffix name="ssl_overridable"/>
  <affected-histogram name="interstitial.decision"/>
  <affected-histogram name="interstitial.decision.repeat_visit"/>
  <affected-histogram name="interstitial.interaction"/>
</histogram_suffixes>

<histogram_suffixes name="SecurityLevel" separator=".">
  <owner>cthomp@chromium.org</owner>
  <owner>estark@chromium.org</owner>
  <suffix name="DANGEROUS" label="SecurityLevel is DANGEROUS."/>
  <suffix name="EV_SECURE" label="SecurityLevel is EV_SECURE."/>
  <suffix name="HTTP_SHOW_WARNING" label="SecurityLevel is HTTP_SHOW_WARNING."/>
  <suffix name="NONE" label="SecurityLevel is NONE."/>
  <suffix name="OTHER" label="Unknown SecurityLevel."/>
  <suffix name="SECURE" label="SecurityLevel is SECURE."/>
  <suffix name="SECURE_WITH_POLICY_INSTALLED_CERT"
      label="SecurityLevel is SECURE_WITH_POLICY_INSTALLED_CERT."/>
  <affected-histogram name="Autofill.SaveCreditCardPrompt.Local"/>
  <affected-histogram name="Autofill.SaveCreditCardPrompt.Upload"/>
  <affected-histogram name="Autofill.UserHappiness.Address"/>
  <affected-histogram name="Autofill.UserHappiness.CreditCard"/>
  <affected-histogram name="Autofill.UserHappiness.Password"/>
  <affected-histogram name="Autofill.UserHappiness.Unknown"/>
  <affected-histogram name="Security.PageEndReason"/>
  <affected-histogram name="Security.PageInfo.TimeOpen"/>
  <affected-histogram name="Security.PageInfo.TimeOpen.Action"/>
  <affected-histogram name="Security.PageInfo.TimeOpen.NoAction"/>
  <affected-histogram name="Security.SiteEngagement"/>
  <affected-histogram name="Security.SiteEngagementDelta"/>
  <affected-histogram name="Security.TimeOnPage"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorker.ContextRequestType" separator=".">
  <suffix name="InstalledWorker.ImportedScript"
      label="Imported script for an installed worker"/>
  <suffix name="InstalledWorker.MainScript"
      label="Main script for an installed worker"/>
  <suffix name="NewWorker.ImportedScript"
      label="Imported script for new (not installed) worker"/>
  <suffix name="NewWorker.MainScript"
      label="Main script for a new (not installed) worker"/>
  <affected-histogram name="ServiceWorker.ContextRequestHandlerStatus"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorker.EventType" separator="_">
  <suffix name="ACTIVATE" label="ACTIVATE"/>
  <suffix name="BACKGROUND_FETCH_ABORT"/>
  <suffix name="BACKGROUND_FETCH_CLICK"/>
  <suffix name="BACKGROUND_FETCH_FAIL"/>
  <suffix name="BACKGROUND_FETCH_SUCCESS"/>
  <suffix name="COOKIE_CHANGE" label="COOKIE_CHANGE"/>
  <suffix name="FETCH_MAIN_FRAME" label="FETCH_MAIN_FRAME"/>
  <suffix name="FETCH_SHARED_WORKER" label="FETCH_SHARED_WORKER"/>
  <suffix name="FETCH_SUB_FRAME" label="FETCH_SUB_FRAME"/>
  <suffix name="FETCH_SUB_RESOURCE" label="FETCH_SUB_RESOURCE"/>
  <suffix name="FOREIGN_FETCH" label="FOREIGN_FETCH"/>
  <suffix name="GEOFENCING" label="GEOFENCING">
    <obsolete>
      Deprecated as of 5/2016 because geofencing got removed.
    </obsolete>
  </suffix>
  <suffix name="INSTALL" label="INSTALL"/>
  <suffix name="LONG_RUNNING_MESSAGE" label="LONG_RUNNING_MESSAGE"/>
  <suffix name="MESSAGE" label="MESSAGE"/>
  <suffix name="NAVIGATION_HINT" label="NAVIGATION_HINT"/>
  <suffix name="NAVIGATION_HINT_LINK_MOUSE_DOWN"
      label="NAVIGATION_HINT_LINK_MOUSE_DOWN">
    <obsolete>
      This experiment was turned down, see https://crbug.com/616502.
    </obsolete>
  </suffix>
  <suffix name="NAVIGATION_HINT_LINK_TAP_DOWN"
      label="NAVIGATION_HINT_LINK_TAP_DOWN">
    <obsolete>
      This experiment was turned down, see https://crbug.com/616502.
    </obsolete>
  </suffix>
  <suffix name="NAVIGATION_HINT_LINK_TAP_UNCONFIRMED"
      label="NAVIGATION_HINT_LINK_TAP_UNCONFIRMED">
    <obsolete>
      This experiment was turned down, see https://crbug.com/616502.
    </obsolete>
  </suffix>
  <suffix name="NOTIFICATION_CLICK" label="NOTIFICATION_CLICK"/>
  <suffix name="NOTIFICATION_CLOSE" label="NOTIFICATION_CLOSE"/>
  <suffix name="PUSH" label="PUSH"/>
  <suffix name="SYNC" label="SYNC"/>
  <suffix name="UNKNOWN" label="UNKNOWN"/>
  <affected-histogram name="ServiceWorker.EventDispatchingDelay"/>
  <affected-histogram name="ServiceWorker.StartWorker.StatusByPurpose"/>
  <affected-histogram name="ServiceWorker.StartWorker.Time_DuringStartup"/>
  <affected-histogram
      name="ServiceWorker.StartWorker.Time_ExistingReadyProcess"/>
  <affected-histogram
      name="ServiceWorker.StartWorker.Time_ExistingUnreadyProcess"/>
  <affected-histogram name="ServiceWorker.StartWorker.Time_NewProcess"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorker.FailureStreak" separator="_">
  <suffix name="1" label="Failed one time."/>
  <suffix name="2" label="Failed two times."/>
  <suffix name="3" label="Failed three times."/>
  <affected-histogram name="ServiceWorker.StartWorker.AfterFailureStreak"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorker.NavigationHint" separator=".">
  <obsolete>
    This experiment was turned down, see https://crbug.com/616502.
  </obsolete>
  <suffix name="LINK_MOUSE_DOWN" label="LINK_MOUSE_DOWN"/>
  <suffix name="LINK_TAP_DOWN" label="LINK_TAP_DOWN"/>
  <suffix name="LINK_TAP_UNCONFIRMED" label="LINK_TAP_UNCONFIRMED"/>
  <affected-histogram name="ServiceWorker.NavigationHintPrecision"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorker.NavigationHintLatency" separator="_">
  <suffix name="IsRunningNavigationHintTask"
      label="Starting a service worker for a navigation hint.">
    <obsolete>
      This experiment was turned down, see https://crbug.com/616502.
    </obsolete>
  </suffix>
  <affected-histogram name="Event.Latency.TouchToFirstScrollUpdateSwapBegin"/>
  <affected-histogram name="Event.Latency.TouchToScrollUpdateSwapBegin"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorker.ResponseSource" separator=".">
  <suffix name="CacheStorage" label="The response came from CacheStorage."/>
  <suffix name="HttpCache" label="The response came from HttpCache."/>
  <suffix name="Network" label="The response directly came from network."/>
  <suffix name="Unspecified" label="The source of a response was unspecified."/>
  <affected-histogram
      name="ServiceWorker.LoadTiming.MainFrame.MainResource.ResponseReceivedToCompleted2"/>
  <affected-histogram
      name="ServiceWorker.LoadTiming.Subresource.ResponseReceivedToCompleted2"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorker.ShutdownStatus" separator="_">
  <suffix name="InShutdown" label="Browser shutdown started."/>
  <suffix name="NotInShutdown" label="Browser shutdown has not started."/>
  <affected-histogram name="ServiceWorker.ActivateEventStatus"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorker.StartSituation2" separator=".">
  <suffix name="DuringStartup"
      label="The worker started up during browser startup."/>
  <suffix name="ExistingReadyProcess"
      label="An existing ready process was used for the worker."/>
  <suffix name="ExistingUnreadyProcess"
      label="An existing unready process was used for the worker."/>
  <suffix name="NewProcess" label="A new process was created for the worker."/>
  <affected-histogram name="ServiceWorker.StartTiming.ClockConsistency"/>
  <affected-histogram name="ServiceWorker.StartTiming.Duration"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorker.StartSituationDoNotUse" separator="_">
<!-- Use ServiceWorker.StartSituation instead, which uses standard "." separator. -->

  <suffix name="DuringStartup"
      label="The worker started up during browser startup."/>
  <suffix name="ExistingProcess">
    <obsolete>
      Deprecated as of 07/2017. Replaced by ExistingUnreadyProcess and
      ExistingReadyProcess.
    </obsolete>
  </suffix>
  <suffix name="ExistingReadyProcess"
      label="An existing ready process was used for the worker."/>
  <suffix name="ExistingUnreadyProcess"
      label="An existing unready process was used for the worker."/>
  <suffix name="NewProcess" label="A new process was created for the worker."/>
  <affected-histogram name="EmbeddedWorkerInstance.Start.StartMessageLatency"/>
  <affected-histogram name="EmbeddedWorkerInstance.Start.TimeToEvaluateScript"/>
  <affected-histogram name="EmbeddedWorkerInstance.Start.TimeToLoad.HttpCache"/>
  <affected-histogram
      name="EmbeddedWorkerInstance.Start.TimeToLoad.InstalledScript"/>
  <affected-histogram name="EmbeddedWorkerInstance.Start.TimeToLoad.Network"/>
  <affected-histogram
      name="EmbeddedWorkerInstance.Start.TimeToSendStartWorker"/>
  <affected-histogram name="EmbeddedWorkerInstance.Start.TimeToStartThread"/>
  <affected-histogram name="EmbeddedWorkerInstance.Start.TimeToURLJob"/>
  <affected-histogram name="ServiceWorker.StartWorker.Time"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorker.WorkerPreparationMode" separator="_">
  <suffix name="RunningWorker"
      label="The activated worker was already running."/>
  <suffix name="StartingWorker"
      label="The activated worker was already starting up."/>
  <suffix name="StartWorkerDuringStartup"
      label="Started a worker during browser startup."/>
  <suffix name="StartWorkerExistingProcess">
    <obsolete>
      Deprecated as of 07/2017. Replaced by StartWorkerExistingUnreadyProcess
      and StartWorkerExistingReadyProcess.
    </obsolete>
  </suffix>
  <suffix name="StartWorkerExistingReadyProcess"
      label="Started a worker in an existing ready process."/>
  <suffix name="StartWorkerExistingUnreadyProcess"
      label="Started a worker in an existing unready process."/>
  <suffix name="StartWorkerNewProcess"
      label="Started a worker in a new process."/>
  <suffix name="StoppingWorker" label="The activated worker was stopping."/>
  <affected-histogram
      name="ServiceWorker.ActivatedWorkerPreparationForMainFrame.Time"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorkerCache.Cache" separator=".">
  <suffix name="Batch">
    <obsolete>
      Deprecated as of 08/2018. Replaced by ServiceWorkerCache.Cache.Put and
      ServiceWorkerCache.Cache.Delete.
    </obsolete>
  </suffix>
  <suffix name="Delete"
      label="The time to perform the 'delete' operation on a ServiceWorker
             Cache, which deletes matching entries in the cache.">
    <obsolete>
      Deprecated as of 02/2019. Replaced by
      ServiceWorkerCache.Cache.Renderer.DeleteOne.
    </obsolete>
  </suffix>
  <suffix name="Keys">
    <obsolete>
      Deprecated as of 08/2018. Replaced by ServiceWorkerCache.Cache.Keys2 in
      order to use a larger maximum value.
    </obsolete>
  </suffix>
  <suffix name="Keys2"
      label="The time to perform the 'keys' operation on a ServiceWorker
             Cache, which returns all of the keys in the cache.">
    <obsolete>
      Deprecated as of 02/2019. Replaced by
      ServiceWorkerCache.Cache.Renderer.Keys.
    </obsolete>
  </suffix>
  <suffix name="Match">
    <obsolete>
      Deprecated as of 08/2018. Replaced by ServiceWorkerCache.Cache.Match2 in
      order to use a larger maximum value.
    </obsolete>
  </suffix>
  <suffix name="Match2"
      label="The time to perform the 'match' operation on a ServiceWorker
             Cache, which does a lookup.">
    <obsolete>
      Deprecated as of 02/2019. Replaced by
      ServiceWorkerCache.Cache.Renderer.Match.Hit.
    </obsolete>
  </suffix>
  <suffix name="MatchAll">
    <obsolete>
      Deprecated as of 08/2018. Replaced by ServiceWorkerCache.Cache.MatchAll2
      in order to use a larger maximum value.
    </obsolete>
  </suffix>
  <suffix name="MatchAll2"
      label="The time to perform the 'matchAll' operation on a ServiceWorker
             Cache, which does a mass cache lookup."/>
  <suffix name="Put"
      label="The time to perform 'put' operations on a ServiceWorker Cache,
             which writes new entries into the cache. This includes both put()
             method calls and the storage write operation performed by
             add()/addAll() method calls.">
    <obsolete>
      Deprecated as of 02/2019. Replaced by
      ServiceWorkerCache.Cache.Renderer.PutOne and
      ServiceWorkerCache.Cache.Renderer.PutMany.
    </obsolete>
  </suffix>
  <affected-histogram name="ServiceWorkerCache.Cache"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorkerCache.Cache.Delete" separator=".">
  <obsolete>
    Deprecated as of 02/2019. Not replaced with any new histogram.
  </obsolete>
  <suffix name="IgnoreSearchDisabled"
      label="The time to perform the 'delete' operation on a ServiceWorker
             Cache, which deletes matching entries in the cache, when the
             ignoreSearch option is set to false."/>
  <suffix name="IgnoreSearchEnabled"
      label="The time to perform the 'delete' operation on a ServiceWorker
             Cache, which deletes matching entries in the cache, when the
             ignoreSearch option is set to true."/>
  <affected-histogram name="ServiceWorkerCache.Cache.Delete"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorkerCache.Cache.Keys2" separator=".">
  <obsolete>
    Deprecated as of 02/2019. Not replaced with any new histogram.
  </obsolete>
  <suffix name="IgnoreSearchDisabled"
      label="The time to perform the 'keys' operation on a ServiceWorker
             Cache, which returns all matching keys in the cache, when the
             ignoreSearch option is set to false."/>
  <suffix name="IgnoreSearchEnabled"
      label="The time to perform the 'keys' operation on a ServiceWorker
             Cache, which returns all matching keys in the cache, when the
             ignoreSearch option is set to true."/>
  <affected-histogram name="ServiceWorkerCache.Cache.Keys2"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorkerCache.Cache.Match2" separator=".">
  <obsolete>
    Deprecated as of 02/2019. Replaced by
    ServiceWorkerCache.Cache.Renderer.MatchIgnoreSearch.
  </obsolete>
  <suffix name="IgnoreSearchDisabled"
      label="The time to perform the 'match' operation on a ServiceWorker
             Cache, which does a lookup, when the ignoreSearch option is set
             to false."/>
  <suffix name="IgnoreSearchEnabled"
      label="The time to perform the 'match' operation on a ServiceWorker
             Cache, which does a lookup, when the ignoreSearch option is set
             to true."/>
  <affected-histogram name="ServiceWorkerCache.Cache.Match2"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorkerCache.Cache.MatchAll2" separator=".">
  <obsolete>
    Deprecated as of 02/2019. Not replaced with any new histogram.
  </obsolete>
  <suffix name="IgnoreSearchDisabled"
      label="The time to perform the 'matchAll' operation on a ServiceWorker
             Cache, which does a mass cache lookup, when the ignoreSearch
             option is set to true."/>
  <suffix name="IgnoreSearchEnabled"
      label="The time to perform the 'matchAll' operation on a ServiceWorker
             Cache, which does a mass cache lookup, when the ignoreSearch
             option is set to true."/>
  <affected-histogram name="ServiceWorkerCache.Cache.MatchAll2"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorkerCache.Cache.MatchSuffixes" separator=".">
  <owner>wanderview@chromium.org</owner>
  <suffix name="Hit"
      label="The time to perform a 'match' operation on a given Cache that
             successfully results in a Response."/>
  <suffix name="IgnoreSearch"
      label="The time to perform a 'match' operation on a given Cache with
             the 'ignoreSearch' option set. This includes measurements for
             hits, misses, and errors."/>
  <suffix name="Miss"
      label="The time to perform a 'match' operation on a given Cache that
             completes successfully, but does not find a matching entry."/>
  <affected-histogram name="ServiceWorkerCache.Cache.Browser.Match"/>
  <affected-histogram name="ServiceWorkerCache.Cache.Renderer.Match"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorkerCache.Cache.ProcessOpSuffixes"
    separator=".">
  <owner>wanderview@chromium.org</owner>
  <suffix name="DeleteOne"
      label="The time to delete a single Request/Response entry from a Cache.
             This measurement includes times for both existing or
             non-existant entries."/>
  <suffix name="Keys"
      label="The time to perform the 'keys' operation on a given Cache. This
             includes measurements for both invocations targeting all entries
             or only entries for a specific request parameter."/>
  <suffix name="Match"
      label="The time to perform a 'match' operation on a given Cache. This
             includes measurements for all invocations, including hits,
             misses, errors, etc."/>
  <suffix name="MatchAll"
      label="The time to perform a 'matchAll' operation on a given Cache.
             This includes measurements for all invocations, including hits,
             misses, and errors. In addition requests for all Cache entries
             and for specific request params are included together in this
             histogram."/>
  <suffix name="PutMany"
      label="The time to put a multiple Request/Response entries into a given
             Cache. This may or may not include deleting existing entries
             that match any of the Requests. This includes measurements for
             both successes and failures."/>
  <suffix name="PutOne"
      label="The time to put a single Request/Response entry into a given
             Cache. This may or may not include deleting an existing entry
             matching the Request. This includes measurements for both
             successes and failures."/>
  <affected-histogram name="ServiceWorkerCache.Cache.Browser"/>
  <affected-histogram name="ServiceWorkerCache.Cache.Renderer"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorkerCache.CacheStorage" separator=".">
  <suffix name="Delete"
      label="The time to perform the 'delete' operation on a ServiceWorker
             CacheStorage, which deletes a cache.">
    <obsolete>
      Deprecated as of 02/2019. Replaced by
      ServiceWorkerCache.CacheStorage.Renderer.Delete.
    </obsolete>
  </suffix>
  <suffix name="Has"
      label="The time to perform the 'has' operation on a ServiceWorker
             CacheStorage, which returns if the cache exists.">
    <obsolete>
      Deprecated as of 02/2019. Replaced by
      ServiceWorkerCache.CacheStorage.Renderer.Has.
    </obsolete>
  </suffix>
  <suffix name="Keys"
      label="The time to perform the 'keys' operation on a ServiceWorker
             CacheStorage, which returns all of the cache names.">
    <obsolete>
      Deprecated as of 02/2019. Replaced by
      ServiceWorkerCache.CacheStorage.Renderer.Keys.
    </obsolete>
  </suffix>
  <suffix name="Match">
    <obsolete>
      Deprecated as of 08/2018. Replaced by
      ServiceWorkerCache.CacheStorage.Match2 in order to use a larger maximum
      value.
    </obsolete>
  </suffix>
  <suffix name="Match2"
      label="The time to perform the 'match' operation on a ServiceWorker
             CacheStorage, which does a shortcut cache lookup.">
    <obsolete>
      Deprecated as of 02/2019. Replaced by
      ServiceWorkerCache.CacheStorage.Renderer.Match.
    </obsolete>
  </suffix>
  <suffix name="Open"
      label="The time to perform the 'open' operation on a ServiceWorker
             CacheStorage, which gets or creates a cache.">
    <obsolete>
      Deprecated as of 02/2019. Replaced by
      ServiceWorkerCache.CacheStorage.Renderer.Open.
    </obsolete>
  </suffix>
  <affected-histogram name="ServiceWorkerCache.CacheStorage"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorkerCache.CacheStorage.Match2" separator=".">
  <obsolete>
    Deprecated as of 02/2019. Not replaced with any new histogram.
  </obsolete>
  <suffix name="IgnoreSearchDisabled"
      label="The time to perform the 'match' operation on a ServiceWorker
             Cache, which does a shortcut cache lookup, when the ignoreSearch
             option is set to false."/>
  <suffix name="IgnoreSearchEnabled"
      label="The time to perform the 'match' operation on a ServiceWorker
             Cache, which does a shortcut cache lookup, when the ignoreSearch
             option is set to true."/>
  <affected-histogram name="ServiceWorkerCache.CacheStorage.Match2"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorkerCache.CacheStorage.ProcessOpSuffixes"
    separator=".">
  <owner>wanderview@chromium.org</owner>
  <suffix name="Delete"
      label="The time to 'delete' a Cache from the origin's CacheStorage. If
             the Cache is still in use then the actual deletion may be
             deferred until the last reference is dropped. Additional time
             due to deferral is not included in this measurement."/>
  <suffix name="Has"
      label="The time to perform the 'has' operation on the origin's
             CacheStorage."/>
  <suffix name="Keys"
      label="The time to perform the 'keys' operation on the origin's
             CacheStorage."/>
  <suffix name="MatchAllCaches"
      label="The time to perform a 'match' operation against all caches
             associated with the origin's CacheStorage. This histogram
             includes measurements for hits, misses, and errors."/>
  <suffix name="MatchOneCache"
      label="The time to perform a 'match' operation against a single cache
             associated with the origin's CacheStorage. This histogram
             includes measurements for hits, misses, and errors."/>
  <suffix name="Open"
      label="The time to 'open' a Cache in the origin's CacheStorage. Some
             opening operations may happen asynchronously after the 'open'
             returns a Cache object. That deferred asynchronous work is not
             included in this measurement."/>
  <affected-histogram name="ServiceWorkerCache.CacheStorage.Browser"/>
  <affected-histogram name="ServiceWorkerCache.CacheStorage.Renderer"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorkerCache.ProcessSuffixes" separator=".">
  <owner>wanderview@chromium.org</owner>
  <suffix base="true" name="Browser"
      label="Measurements taken in the browser process on the IO thread."/>
  <suffix base="true" name="Renderer"
      label="Measurements taken in the renderer process on the javascript
             thread."/>
  <affected-histogram name="ServiceWorkerCache.Cache"/>
  <affected-histogram name="ServiceWorkerCache.CacheStorage"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorkerScheduler" separator="."
    ordering="prefix">
  <suffix name="BackgroundSyncManager"
      label="Collected from a BackgroundSyncManager instance"/>
  <suffix name="Cache" label="Collected from a CacheStorageCache instance"/>
  <suffix name="CacheStorage" label="Collected from a CacheStorage instance"/>
  <affected-histogram name="ServiceWorkerCache.Scheduler.IsOperationSlow"/>
  <affected-histogram name="ServiceWorkerCache.Scheduler.OperationDuration"/>
  <affected-histogram name="ServiceWorkerCache.Scheduler.OperationDuration2"/>
  <affected-histogram name="ServiceWorkerCache.Scheduler.QueueDuration"/>
  <affected-histogram name="ServiceWorkerCache.Scheduler.QueueDuration2"/>
  <affected-histogram name="ServiceWorkerCache.Scheduler.QueueLength"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorkerSchedulerOp" separator=".">
  <suffix name="Close"/>
  <suffix name="Delete"/>
  <suffix name="GetAllMatched"/>
  <suffix name="Has"/>
  <suffix name="Init"/>
  <suffix name="Keys"/>
  <suffix name="Match"/>
  <suffix name="MatchAll"/>
  <suffix name="Open"/>
  <suffix name="Put"/>
  <suffix name="Size"/>
  <suffix name="SizeThenClose"/>
  <suffix name="WriteIndex"/>
  <suffix name="WriteSideData"/>
  <affected-histogram
      name="ServiceWorkerCache.Cache.Scheduler.IsOperationSlow"/>
  <affected-histogram
      name="ServiceWorkerCache.Cache.Scheduler.OperationDuration2"/>
  <affected-histogram name="ServiceWorkerCache.Cache.Scheduler.QueueDuration2"/>
  <affected-histogram name="ServiceWorkerCache.Cache.Scheduler.QueueLength"/>
  <affected-histogram
      name="ServiceWorkerCache.CacheStorage.Scheduler.IsOperationSlow"/>
  <affected-histogram
      name="ServiceWorkerCache.CacheStorage.Scheduler.OperationDuration2"/>
  <affected-histogram
      name="ServiceWorkerCache.CacheStorage.Scheduler.QueueDuration2"/>
  <affected-histogram
      name="ServiceWorkerCache.CacheStorage.Scheduler.QueueLength"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorkerSpecialAppsForEventDispatchingDelay"
    separator=".">
  <obsolete>
    Removed June 2018 (M69).
  </obsolete>
  <suffix name="docs" label="Custom histogram for Google Docs and Drive"/>
  <suffix name="gmail" label="Custom histogram for GMail"/>
  <suffix name="inbox" label="Custom histogram for Inbox"/>
  <suffix name="ntp" label="Custom histogram for New Tab Page"/>
  <suffix name="plus" label="Custom histogram for Google+"/>
  <affected-histogram name="ServiceWorker.EventDispatchingDelay_ACTIVATE"/>
  <affected-histogram name="ServiceWorker.EventDispatchingDelay_COOKIE_CHANGE"/>
  <affected-histogram
      name="ServiceWorker.EventDispatchingDelay_FETCH_MAIN_FRAME"/>
  <affected-histogram
      name="ServiceWorker.EventDispatchingDelay_FETCH_SHARED_WORKER"/>
  <affected-histogram
      name="ServiceWorker.EventDispatchingDelay_FETCH_SUB_FRAME"/>
  <affected-histogram
      name="ServiceWorker.EventDispatchingDelay_FETCH_SUB_RESOURCE"/>
  <affected-histogram name="ServiceWorker.EventDispatchingDelay_FOREIGN_FETCH"/>
  <affected-histogram name="ServiceWorker.EventDispatchingDelay_GEOFENCING"/>
  <affected-histogram name="ServiceWorker.EventDispatchingDelay_INSTALL"/>
  <affected-histogram name="ServiceWorker.EventDispatchingDelay_MESSAGE"/>
  <affected-histogram
      name="ServiceWorker.EventDispatchingDelay_NAVIGATION_HINT_LINK_MOUSE_DOWN"/>
  <affected-histogram
      name="ServiceWorker.EventDispatchingDelay_NAVIGATION_HINT_LINK_TAP_DOWN"/>
  <affected-histogram
      name="ServiceWorker.EventDispatchingDelay_NAVIGATION_HINT_LINK_TAP_UNCONFIRMED"/>
  <affected-histogram
      name="ServiceWorker.EventDispatchingDelay_NOTIFICATION_CLICK"/>
  <affected-histogram
      name="ServiceWorker.EventDispatchingDelay_NOTIFICATION_CLOSE"/>
  <affected-histogram name="ServiceWorker.EventDispatchingDelay_PUSH"/>
  <affected-histogram name="ServiceWorker.EventDispatchingDelay_SYNC"/>
  <affected-histogram name="ServiceWorker.EventDispatchingDelay_UNKNOWN"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorkerStartOccurred" separator="_">
  <suffix name="WorkerStartOccurred"
      label="The worker was not already running. Worker startup occurred."/>
  <affected-histogram
      name="ServiceWorker.ActivatedWorkerPreparationForMainFrame.Time"/>
  <affected-histogram name="ServiceWorker.NavPreload.ConcurrentTime_MainFrame"/>
  <affected-histogram name="ServiceWorker.NavPreload.FinishedFirst_MainFrame"/>
  <affected-histogram name="ServiceWorker.NavPreload.ResponseTime_MainFrame"/>
  <affected-histogram name="ServiceWorker.NavPreload.WorkerWaitTime_MainFrame"/>
</histogram_suffixes>

<histogram_suffixes name="SessionRestoreTabCountMemoryPressure" separator="_">
  <suffix name="MemoryPressure"
      label="Total tabs involved in session restore that encountered memory
             pressure."/>
  <suffix name="MemoryPressure_Deferred"
      label="Tabs deferred by memory pressure."/>
  <suffix name="MemoryPressure_Loaded"
      label="Tabs fully loaded before memory pressure."/>
  <suffix name="MemoryPressure_LoadStarted"
      label="Tabs started to load before memory pressure."/>
  <suffix name="NoMemoryPressure"
      label="Total tabs involved in a session restore that did not encounter
             memory pressure."/>
  <suffix name="NoMemoryPressure_Loaded"
      label="Tabs fully loaded in a session restore that did not encounter
             memory pressure."/>
  <suffix name="NoMemoryPressure_LoadStarted"
      label="Tabs started to load in a session restore that did not encounter
             memory pressure."/>
  <affected-histogram name="SessionRestore.TabCount"/>
</histogram_suffixes>

<histogram_suffixes name="SessionRestoreTabCounts" separator="_">
  <suffix name="1" label="1 tab present"/>
  <suffix name="2" label="2 tabs present"/>
  <suffix name="3" label="3 tabs present"/>
  <suffix name="4" label="4 tabs present"/>
  <suffix name="5" label="5 tabs present"/>
  <suffix name="6" label="6 tabs present"/>
  <suffix name="7" label="7 tabs present"/>
  <suffix name="8" label="8 tabs present"/>
  <suffix name="9" label="9 tabs present"/>
  <suffix name="10" label="10 tabs present"/>
  <suffix name="11" label="11 tab present"/>
  <suffix name="12" label="12 tabs present"/>
  <suffix name="13" label="13 tabs present"/>
  <suffix name="14" label="14 tabs present"/>
  <suffix name="15" label="15 tabs present"/>
  <suffix name="16" label="16 tabs present"/>
  <suffix name="17" label="17 tabs present"/>
  <suffix name="18" label="18 tabs present"/>
  <suffix name="19" label="19 tabs present"/>
  <suffix name="20" label="20 tabs present"/>
  <affected-histogram name="SessionRestore.AllTabsLoaded"/>
  <affected-histogram name="SessionRestore.FirstTabPainted"/>
  <affected-histogram name="SessionRestore.ForegroundTabFirstLoaded"/>
  <affected-histogram name="SessionRestore.ForegroundTabFirstPaint"/>
  <affected-histogram name="SessionRestore.ForegroundTabFirstPaint2"/>
  <affected-histogram name="SessionRestore.ForegroundTabFirstPaint3"/>
</histogram_suffixes>

<histogram_suffixes name="SessionStorageContextOpenReasons" separator="">
  <suffix name="CommitErrors" label="After too many commit errors."/>
  <suffix name="InvalidVersion" label="After an invalid version was read."/>
  <suffix name="OpenFailed" label="After opening the DB failed."/>
  <suffix name="ReadNamespacesError"
      label="After reading the namespaces failed."/>
  <suffix name="ReadNextMapIdError" label="After reading the map id failed."/>
  <suffix name="ReadVersionError"
      label="After reading the schema version failed."/>
  <affected-histogram name="SessionStorageContext.OpenResultAfter"/>
</histogram_suffixes>

<histogram_suffixes name="SettingsResetPromptSettingType" separator="_">
  <suffix name="DefaultSearch" label="Reset state for default search engine."/>
  <suffix name="Homepage" label="Reset state for homepage."/>
  <suffix name="StartupUrls" label="Reset state for startup URLs."/>
  <affected-histogram name="SettingsResetPrompt.ResetState"/>
</histogram_suffixes>

<histogram_suffixes name="SetupInstallTimes" separator=".">
  <suffix name="background" label="Background; lowered priority."/>
  <affected-histogram name="Setup.Install.ApplyArchivePatchTime"/>
  <affected-histogram name="Setup.Install.HasArchivePatch"/>
  <affected-histogram name="Setup.Install.UncompressArchivePatchTime"/>
  <affected-histogram name="Setup.Install.UncompressFullArchiveTime"/>
  <affected-histogram name="Setup.Install.UnpackFullArchiveTime"/>
</histogram_suffixes>

<histogram_suffixes name="SetupInstallWin32Apis" separator=".">
  <suffix name="ChangeServiceConfig"/>
  <suffix name="CreateService"/>
  <suffix name="DeleteService"/>
  <suffix name="OpenSCManager"/>
  <affected-histogram name="Setup.Install.Win32ApiError"/>
</histogram_suffixes>

<histogram_suffixes name="ShillCumulativeTimeOnline" separator=".">
  <suffix name="Any" label="Any connection type"/>
  <suffix name="Cellular" label="Cellular connection"/>
  <suffix name="Wifi" label="WiFi connection"/>
  <affected-histogram name="Network.Shill.CumulativeTimeOnline"/>
</histogram_suffixes>

<histogram_suffixes name="ShillWiFiRememberedNetworkSecurityMode" separator=".">
  <suffix name="802_1x" label="Network is secured with 802.1x"/>
  <suffix name="none" label="Network is not secured"/>
  <suffix name="psk" label="Network is security with WPA or WPA-2 (aka RSN)"/>
  <suffix name="wep" label="Network employs WEP (Wired Equivalent Privacy)"/>
  <affected-histogram name="Network.Shill.WiFi.RememberedSystemNetworkCount"/>
  <affected-histogram name="Network.Shill.WiFi.RememberedUserNetworkCount"/>
</histogram_suffixes>

<histogram_suffixes name="ShowAppListWarmStartFast" separator="">
  <suffix name="" label="Normal start."/>
  <suffix name="Fast"
      label="Fast start by skipping normal chrome.dll startup."/>
  <affected-histogram name="Startup.ShowAppListWarmStart"/>
</histogram_suffixes>

<histogram_suffixes name="SideloadWipeout" separator="_">
  <suffix name="Disabled" label="Control group."/>
  <suffix name="Enabled" label="Sideload Wipeout Active."/>
  <affected-histogram name="DisabledExtension.ExtensionWipedStatus"/>
  <affected-histogram name="DisabledExtension.SideloadWipeoutCount"/>
  <affected-histogram name="DisabledExtension.SideloadWipeoutNeeded"/>
  <affected-histogram name="DisabledExtension.UserSelection"/>
  <affected-histogram name="Extensions.ExternalExtensionEvent"/>
  <affected-histogram name="Extensions.InstallSource"/>
  <affected-histogram name="Extensions.UpdateSource"/>
</histogram_suffixes>

<histogram_suffixes name="Signin.Actions" separator=".">
  <suffix name="AllAccessPointActions"/>
  <suffix name="AndroidAccountConsistencyFirstRunActions"
      label="Signin Flow shown on android after Account Consistency flag was
             enabled."/>
  <affected-histogram name="Signin"/>
</histogram_suffixes>

<histogram_suffixes name="Signin.ForceSigninVerificationResult" separator=".">
  <suffix name="Failure"
      label="The authenticaion token can not be verified due to persisten
             error"/>
  <suffix name="Success" label="The authenticaion token is valid"/>
  <affected-histogram name="Signin.ForceSigninVerificationTime"/>
</histogram_suffixes>

<histogram_suffixes name="Signin.ObsoleteActions" separator=".">
  <obsolete>
    Deprecated as of 12/2014.
  </obsolete>
  <suffix name="AppLauncherActions"/>
  <suffix name="ExtensionInstallBubbleActions"/>
  <suffix name="MenuActions"/>
  <suffix name="NTPLinkActions"/>
  <suffix name="OneClickActions"/>
  <suffix name="SettingsActions"/>
  <suffix name="StartPageActions"/>
  <suffix name="UnknownActions"/>
  <affected-histogram name="Signin"/>
</histogram_suffixes>

<histogram_suffixes name="Signin.Reconciler" separator=".">
  <suffix name="FirstRun"
      label="First execution of the reconciler after the profile was loaded
             or the new_profile_management flag was toggled."/>
  <suffix name="SubsequentRun"
      label="Execution of the reconciler triggered by some other change of
             state."/>
  <affected-histogram name="Signin.Reconciler.AddedToChrome"/>
  <affected-histogram name="Signin.Reconciler.AddedToCookieJar"/>
  <affected-histogram name="Signin.Reconciler.DifferentPrimaryAccounts"/>
  <affected-histogram name="Signin.Reconciler.RemovedFromCookieJar"/>
</histogram_suffixes>

<histogram_suffixes name="Signin.Reconciler.Duration" separator=".">
  <suffix name="Failure" label="Failed execution of reconciler"/>
  <suffix name="Success" label="Successful execution of reconciler"/>
  <affected-histogram name="Signin.Reconciler.Duration"/>
</histogram_suffixes>

<histogram_suffixes name="SigninAccountStatus" separator=".">
  <suffix name="NewAccount" label="Using a new account, in the sign-in promo.">
    <obsolete>
      Deprecated as of 2018-8.
    </obsolete>
  </suffix>
  <suffix name="NewAccountExistingAccount"
      label="Using a new account, in the sign-in promo, while Chrome knows
             about other accounts."/>
  <suffix name="NewAccountNoExistingAccount"
      label="Using a new account, in the sign-in promo, while Chrome does not
             know about other accounts."/>
  <suffix name="NewAccountPreDice"
      label="Using a new account on Desktop, pre-Dice."/>
  <suffix name="NotDefault"
      label="Using not the default account, in the sign-in promo."/>
  <suffix name="WithDefault"
      label="Using the default account, in the sign-in promo."/>
  <affected-histogram name="Signin.SigninCompletedAccessPoint"/>
  <affected-histogram name="Signin.SigninStartedAccessPoint"/>
</histogram_suffixes>

<histogram_suffixes name="SimpleCacheWithOrWithoutIndex" separator="_">
  <suffix name="WithIndex" label="The Simple Cache index was loaded."/>
  <suffix name="WithoutIndex"
      label="The Simple Cache index was not yet loaded."/>
  <affected-histogram name="SimpleCache.SyncCreatePlatformFileError"/>
  <affected-histogram name="SimpleCache.SyncCreateResult"/>
  <affected-histogram name="SimpleCache.SyncOpenPlatformFileError"/>
  <affected-histogram name="SimpleCache.SyncOpenResult"/>
</histogram_suffixes>

<histogram_suffixes name="SiteIsolation.XSD.MIME" separator=".">
  <suffix name="HTML" label="Classified as HTML MIME type."/>
  <suffix name="JSON" label="Classified as JSON MIME type."/>
  <suffix name="Others" label="Classified as other MIME types."/>
  <suffix name="Plain" label="Classified as plain text MIME type."/>
  <suffix name="XML" label="Classified as XML MIME type."/>
  <affected-histogram name="SiteIsolation.XSD.Browser.Blocked"/>
</histogram_suffixes>

<histogram_suffixes name="Size" separator=".">
  <suffix name="Height"/>
  <suffix name="Width"/>
  <affected-histogram name="BrowserWindow.Resize.StepBoundsChange"/>
</histogram_suffixes>

<histogram_suffixes name="SkiaDrawScaleFactorFilterQuality" separator=".">
  <suffix name="AnyFilterQuality" label="Any filter quality was used."/>
  <suffix name="HighFilterQuality" label="High filter quality was used."/>
  <suffix name="LowFilterQuality" label="Low filter quality was used."/>
  <suffix name="MediumFilterQuality" label="Medium filter quality was used."/>
  <suffix name="NoneFilterQuality" label="None filter quality was used."/>
  <affected-histogram name="Skia.DrawScaleFactor"/>
</histogram_suffixes>

<histogram_suffixes name="SocketOperation" separator=".">
  <suffix name="Connect"/>
  <suffix name="Read"/>
  <suffix name="Write"/>
  <affected-histogram name="Net.SSLProtocolErrorCipher"/>
  <affected-histogram name="Net.SSLProtocolErrorReason"/>
</histogram_suffixes>

<histogram_suffixes name="SocketType" separator="_">
  <obsolete>
    Deprecated as of 03/2015.
  </obsolete>
  <suffix name="HTTPProxy" label="HTTP proxy socket"/>
  <suffix name="SOCK" label="SOCKS socket"/>
  <suffix name="SSL" label="(Obsolete, SSL socket)"/>
  <suffix name="SSL2" label="SSL2 socket"/>
  <suffix name="SSLforHTTPSProxy"
      label="SSLClientSocket wrapping the TCPClient socket eventually used
             for connection to an HTTPS proxy"/>
  <suffix name="SSLForProxies"
      label="SSLClientSocket wrapping the TCPClient socket eventually used
             for connection to a proxy"/>
  <suffix name="TCP" label="plain, no proxy, no SSL socket"/>
  <suffix name="TCPforHTTPProxy"
      label="TCPClientSocket eventually used for connection to an HTTP proxy"/>
  <suffix name="TCPforHTTPSProxy"
      label="TCPClientSocket eventually used for connection to an HTTPS proxy"/>
  <suffix name="TCPforSOCKS"
      label="TCPClientSocket eventually used for connection to a SOCKS proxy"/>
  <affected-histogram name="Net.SocketIdleTimeBeforeNextUse_ReusedSocket"/>
  <affected-histogram name="Net.SocketIdleTimeBeforeNextUse_UnusedSocket"/>
  <affected-histogram name="Net.SocketInitErrorCodes"/>
  <affected-histogram name="Net.SocketRequestTime"/>
  <affected-histogram name="Net.SocketType"/>
</histogram_suffixes>

<histogram_suffixes name="SoftwareReporterEngine" separator="_">
  <suffix name="ESET"/>
  <suffix name="Experimental">
    <obsolete>
      Deprecated 10/2018. Replaced by ESET suffix.
    </obsolete>
  </suffix>
  <suffix name="Original">
    <obsolete>
      Deprecated 10/2018. Replaced by URZA suffix.
    </obsolete>
  </suffix>
  <suffix name="URZA"/>
  <affected-histogram name="SoftwareReporter.FoundUwSReadError"/>
  <affected-histogram name="SoftwareReporter.LogsUploadEnabled"/>
  <affected-histogram name="SoftwareReporter.LogsUploadResult"/>
  <affected-histogram name="SoftwareReporter.LogsUploadResultRegistryError"/>
  <affected-histogram name="SoftwareReporter.MajorVersion"/>
  <affected-histogram name="SoftwareReporter.MemoryUsed"/>
  <affected-histogram name="SoftwareReporter.MinorVersion"/>
  <affected-histogram name="SoftwareReporter.RunningTime"/>
  <affected-histogram name="SoftwareReporter.RunningTimeAccordingToChrome"/>
  <affected-histogram name="SoftwareReporter.RunningTimeRegistryError"/>
  <affected-histogram name="SoftwareReporter.Step"/>
</histogram_suffixes>

<histogram_suffixes name="SoftwareReporterInvocationType" separator="_">
  <suffix name="Periodic" label="Periodic run of the reporter."/>
  <suffix name="UserInitiated" label="User-initiated run of the reporter."/>
  <affected-histogram name="SoftwareReporter.ReporterSequenceResult"/>
</histogram_suffixes>

<histogram_suffixes name="SpdyCwnd" separator="_">
  <obsolete>
    Deprecated as of 07/2014.
  </obsolete>
  <suffix name="cwnd10" label="using cwnd policy static 10"/>
  <suffix name="cwnd16" label="using cwnd policy static 16"/>
  <owner>willchan@chromium.org</owner>
  <suffix name="cwnd32" label="using cwnd policy static 32"/>
  <suffix name="cwndDynamic" label="using dynamic cwnd policy"/>
  <suffix name="cwndMin10" label="using dynamic cwnd policy no lower than 10"/>
  <suffix name="cwndMin16" label="using dynamic cwnd policy no lower than 16"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadNormal"/>
  <affected-histogram name="PLT.BeginToFinish_NormalLoad"/>
  <affected-histogram name="PLT.BeginToFinish_NormalLoad"/>
  <affected-histogram name="PLT.StartToCommit_LinkLoadNormal"/>
  <affected-histogram name="PLT.StartToFinish_LinkLoadNormal"/>
  <affected-histogram name="PLT.StartToFinish_NormalLoad"/>
</histogram_suffixes>

<histogram_suffixes name="SpdyImpact" separator="_">
  <suffix name="npn_with_http"
      label="with NPN negotiated but using HTTP instead of SPDY"/>
  <suffix name="npn_with_spdy" label="with NPN negotiated and using SPDY"/>
  <affected-histogram name="Net.Transaction_Connected"/>
  <affected-histogram name="Net.Transaction_Connected_New"/>
  <affected-histogram name="Net.Transaction_Connected_New_b"/>
  <affected-histogram name="Net.Transaction_Connected_Under_10"/>
  <affected-histogram name="PLT.Abandoned"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadNormal"/>
  <affected-histogram name="PLT.BeginToFinish_NormalLoad"/>
  <affected-histogram name="PLT.StartToCommit_LinkLoadNormal"/>
  <affected-histogram name="PLT.StartToCommit_NormalLoad"/>
  <affected-histogram name="PLT.StartToFinish_LinkLoadNormal"/>
  <affected-histogram name="PLT.StartToFinish_NormalLoad"/>
</histogram_suffixes>

<histogram_suffixes name="SpdySettingsCwnd" separator="">
  <suffix name="10K" label="where at least 10KB was transferred."/>
  <suffix name="25K" label="where at least 25KB was transferred."/>
  <suffix name="50K" label="where at least 50KB was transferred."/>
  <suffix name="100K" label="where at least 100KB was transferred."/>
  <affected-histogram name="Net.SpdySettingsCwnd"/>
</histogram_suffixes>

<histogram_suffixes name="SqliteDatabases" separator=".">
  <owner>costan@google.com</owner>
  <suffix name="Activity" label="Activity"/>
  <suffix name="Affiliation" label="Affiliation"/>
  <suffix name="AppCache" label="AppCache"/>
  <suffix name="BackgroundRequestQueue" label="BackgroundRequestQueue"/>
  <suffix name="BookmarkImages" label="BookmarkImages">
    <obsolete>
      Deprecated as of 2016-1 (http://crrev.com/372327).
    </obsolete>
  </suffix>
  <suffix name="Cookie" label="Cookie"/>
  <suffix name="DatabaseTracker" label="DatabaseTracker"/>
  <suffix name="DomainBoundCerts" label="DomainBoundCerts"/>
  <suffix name="DOMStorageDatabase" label="DOMStorageDatabase"/>
  <suffix name="History" label="History"/>
  <suffix name="OfflinePageMetadata" label="OfflinePageMetadata"/>
  <suffix name="Passwords" label="Passwords"/>
  <suffix name="Precache" label="Precache">
    <obsolete>
      Deprecated July 11 2017.
    </obsolete>
  </suffix>
  <suffix name="Predictor" label="Predictor"/>
  <suffix name="PrefetchStore" label="PrefetchStore"/>
  <suffix name="PreviewsOptOut" label="PreviewsOptOut"/>
  <suffix name="Quota" label="Quota"/>
  <suffix name="Shortcuts" label="Shortcuts"/>
  <suffix name="SyncDirectory" label="SyncDirectory"/>
  <suffix name="Text" label="Text (obsolete 7/24/13)">
    <obsolete>
      Deprecated as of 2013-07.
    </obsolete>
  </suffix>
  <suffix name="Thumbnail" label="Thumbnail"/>
  <suffix name="TopSites" label="TopSites"/>
  <suffix name="Web" label="Web"/>
  <affected-histogram name="Sqlite.AutoCommitTime"/>
  <affected-histogram name="Sqlite.CommitTime"/>
  <affected-histogram name="Sqlite.Error"/>
  <affected-histogram name="Sqlite.QueryTime"/>
  <affected-histogram name="Sqlite.SizeKB"/>
  <affected-histogram name="Sqlite.Stats"/>
  <affected-histogram name="Sqlite.Stats2"/>
  <affected-histogram name="Sqlite.UpdateTime"/>
  <affected-histogram name="Sqlite.Version"/>
</histogram_suffixes>

<histogram_suffixes name="SqliteVfsOperations" separator="_">
  <obsolete>
    Removed 2018-02-06.
  </obsolete>
  <owner>costan@google.com</owner>
  <suffix name="Fetch" label="fetch"/>
  <suffix name="Read" label="read"/>
  <suffix name="Write" label="write"/>
  <affected-histogram name="Sqlite.Vfs"/>
</histogram_suffixes>

<histogram_suffixes name="SSLFalseStart" separator="_">
  <obsolete>
    Removed 2011-06-01.
  </obsolete>
  <suffix name="FalseStart_disabled"/>
  <suffix name="FalseStart_enabled"/>
  <affected-histogram name="Net.SSL_Connection_Latency"/>
  <affected-histogram name="Net.SSL_Connection_Latency_2"/>
  <affected-histogram name="PLT.BeginToFinish_LinkLoadNormal"/>
  <affected-histogram name="PLT.BeginToFinish_NormalLoad"/>
</histogram_suffixes>

<histogram_suffixes name="StaleWhileRevalidate" separator=".">
  <suffix name="Cache"/>
  <suffix name="Network"/>
  <suffix name="StaleCache"/>
  <affected-histogram
      name="PageLoad.Clients.StaleWhileRevalidate.PaintTiming.FirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.Clients.StaleWhileRevalidate.PaintTiming.ParseToFirstContentfulPaint"/>
</histogram_suffixes>

<histogram_suffixes name="StartupProfilingAbandonState" separator="_">
  <suffix name="NoLoad" label="Abandoned before first main frame load."/>
  <suffix name="NoPaint" label="Abandoned before first paint."/>
  <affected-histogram name="Startup.FirstWebContents.FinishReason"/>
</histogram_suffixes>

<histogram_suffixes name="StartupTemperature" separator=".">
  <suffix name="ColdStartup" label="Startup was cold (mostly hard faults)."/>
  <suffix name="LukewarmStartup" label="Startup was neither warm nor cold."/>
  <suffix name="WarmStartup" label="Startup was warm (almost no hard faults)."/>
  <affected-histogram
      name="LibraryLoader.PercentageOfResidentCodeBeforePrefetch"/>
  <affected-histogram name="Startup.BrowserMainToRendererMain"/>
  <affected-histogram
      name="Startup.BrowserMessageLoopStart.To.MainNavigationStart"/>
  <affected-histogram name="Startup.BrowserMessageLoopStart.To.NonEmptyPaint2"/>
  <affected-histogram name="Startup.BrowserMessageLoopStartTime"/>
  <affected-histogram name="Startup.BrowserMessageLoopStartTimeFromMainEntry"/>
  <affected-histogram
      name="Startup.BrowserMessageLoopStartTimeFromMainEntry.FirstRun"/>
  <affected-histogram
      name="Startup.BrowserMessageLoopStartTimeFromMainEntry.FirstRun2"/>
  <affected-histogram name="Startup.BrowserMessageLoopStartTimeFromMainEntry2"/>
  <affected-histogram name="Startup.BrowserMessageLoopStartTimeFromMainEntry3"/>
  <affected-histogram name="Startup.BrowserOpenTabs"/>
  <affected-histogram name="Startup.BrowserWindow.FirstPaint"/>
  <affected-histogram name="Startup.BrowserWindow.FirstPaint.CompositingEnded"/>
  <affected-histogram name="Startup.BrowserWindowDisplay"/>
  <affected-histogram name="Startup.FirstWebContents.MainFrameLoad"/>
  <affected-histogram name="Startup.FirstWebContents.MainFrameLoad2"/>
  <affected-histogram name="Startup.FirstWebContents.MainNavigationFinished"/>
  <affected-histogram name="Startup.FirstWebContents.MainNavigationStart"/>
  <affected-histogram
      name="Startup.FirstWebContents.MainNavigationStart.MultiTabs"/>
  <affected-histogram
      name="Startup.FirstWebContents.MainNavigationStart.SingleTab"/>
  <affected-histogram name="Startup.FirstWebContents.NonEmptyPaint"/>
  <affected-histogram name="Startup.FirstWebContents.NonEmptyPaint2"/>
  <affected-histogram
      name="Startup.FirstWebContents.RenderProcessHostInit.ToNonEmptyPaint"/>
  <affected-histogram name="Startup.LoadTime.ExeMainToDllMain"/>
  <affected-histogram name="Startup.LoadTime.ExeMainToDllMain2"/>
  <affected-histogram name="Startup.LoadTime.ProcessCreateToDllMain"/>
  <affected-histogram name="Startup.LoadTime.ProcessCreateToDllMain2"/>
  <affected-histogram name="Startup.LoadTime.ProcessCreateToExeMain"/>
  <affected-histogram name="Startup.LoadTime.ProcessCreateToExeMain2"/>
  <affected-histogram name="Startup.SystemUptime"/>
  <affected-histogram name="Startup.TimeSinceLastStartup"/>
</histogram_suffixes>

<histogram_suffixes name="StartupTimeBombAlarm" separator=".">
  <obsolete>
    Deprecated as of 10/2014.
  </obsolete>
  <suffix name="ThreadNowDuration" label="Duration is in thread CPU time."/>
  <suffix name="TimeDuration" label="Duration is in clock time."/>
  <suffix name="TimeTicksDuration" label="Duration is in TimeTicks time."/>
  <affected-histogram name="StartupTimeBomb.Alarm"/>
</histogram_suffixes>

<histogram_suffixes name="StartupWorkload" separator=".">
  <suffix name="MultiTabs" label="Multiple tabs instantiated on startup."/>
  <suffix name="SingleTab" label="Single tab instantiated on startup."/>
  <affected-histogram name="Startup.FirstWebContents.MainNavigationStart"/>
</histogram_suffixes>

<histogram_suffixes name="StartWorkerExistingProcess" separator="_">
  <obsolete>
    Deprecated as of June 2017.
  </obsolete>
  <suffix name="StartWorkerExistingProcess"
      label="The worker started up in an existing process"/>
  <affected-histogram name="ServiceWorker.NavigationPreload.ConcurrentTime"/>
  <affected-histogram
      name="ServiceWorker.NavigationPreload.ConcurrentTime_NavPreloadFirst"/>
  <affected-histogram
      name="ServiceWorker.NavigationPreload.ConcurrentTime_SWStartFirst"/>
  <affected-histogram
      name="ServiceWorker.NavigationPreload.FinishedBeforeStartWorker"/>
  <affected-histogram
      name="ServiceWorker.NavigationPreload.NavPreloadAfterSWStart"/>
  <affected-histogram
      name="ServiceWorker.NavigationPreload.SWStartAfterNavPreload"/>
</histogram_suffixes>

<histogram_suffixes name="StartWorkerExistingProcess2" separator="_">
  <obsolete>
    Deprecated as of June 2017.
  </obsolete>
  <suffix name="StartWorkerExistingProcess"
      label="The worker started up in an existing process"/>
  <affected-histogram name="ServiceWorker.NavPreload.ConcurrentTime_MainFrame"/>
  <affected-histogram name="ServiceWorker.NavPreload.FinishedFirst_MainFrame"/>
  <affected-histogram name="ServiceWorker.NavPreload.ResponseTime_MainFrame"/>
  <affected-histogram name="ServiceWorker.NavPreload.WorkerWaitTime_MainFrame"/>
</histogram_suffixes>

<histogram_suffixes name="Storage.BlobAppendableItems" separator=".">
  <obsolete>
    Deprecated on 12/18. Metric wasn't used for anything and wasn't useful.
  </obsolete>
  <suffix name="Blob" label="Appending a blob."/>
  <suffix name="Bytes" label="Appending bytes."/>
  <suffix name="CacheEntry" label="Appending a cache entry."/>
  <suffix name="File" label="Appending a file with a known size."/>
  <suffix name="FileSystem"
      label="Appending a filesystem object with known size."/>
  <affected-histogram name="Storage.BlobItemSize"/>
  <affected-histogram name="Storage.BlobItemSize.BlobSlice"/>
</histogram_suffixes>

<histogram_suffixes name="Storage.BlobEvictReason" separator=".">
  <suffix name="OnMemoryPressure"
      label="Eviction was triggered because of memory pressure signal."/>
  <suffix name="SizeExceededInMemoryLimit"
      label="Eviction was triggered because the total size exceeded maximum
             in memory size allwed"/>
  <suffix name="SizeExceededMaxDiskSpace"
      label="Eviction was triggered because the total size exceeded maximum
             available disk space"/>
  <affected-histogram name="Storage.Blob.SizeEvictedToDiskInKB"/>
</histogram_suffixes>

<histogram_suffixes name="Storage.Bytes" separator=".">
  <suffix name="DiskCache.AppCache" label="AppCache usage."/>
  <suffix name="DiskCache.CacheStorage" label="CacheStorage usage."/>
  <suffix name="DiskCache.ServiceWorker"
      label="ServiceWorker scriptcache usage."/>
  <suffix name="LevelDBEnv" label="Undifferentiated leveldb usage."/>
  <suffix name="LevelDBEnv.IDB" label="IndexedDB usage."/>
  <suffix name="LevelDBEnv.ServiceWorker"
      label="ServiceWorker database usage."/>
  <suffix name="MojoLevelDBEnv" label="Mojo leveldb component usage."/>
  <affected-histogram name="Storage.BytesRead"/>
  <affected-histogram name="Storage.BytesWritten"/>
</histogram_suffixes>

<histogram_suffixes name="StunPingInternal" separator=".">
  <suffix name="0ms" label="0ms between requests"/>
  <suffix name="5ms" label="5ms between requests"/>
  <suffix name="10ms" label="10ms between requests"/>
  <suffix name="15ms" label="15ms between requests"/>
  <suffix name="20ms" label="20ms between requests"/>
  <suffix name="25ms" label="25ms between requests"/>
  <suffix name="30ms" label="30ms between requests"/>
  <suffix name="35ms" label="35ms between requests"/>
  <suffix name="40ms" label="40ms between requests"/>
  <suffix name="45ms" label="45ms between requests"/>
  <suffix name="50ms" label="50ms between requests"/>
  <suffix name="100ms" label="100ms between requests"/>
  <affected-histogram name="WebRTC.Stun.ResponseLatency.NoNAT"/>
  <affected-histogram name="WebRTC.Stun.ResponseLatency.NonSymNAT"/>
  <affected-histogram name="WebRTC.Stun.ResponseLatency.SymNAT"/>
  <affected-histogram name="WebRTC.Stun.ResponseLatency.UnknownNAT"/>
  <affected-histogram name="WebRTC.Stun.SuccessPercent.NoNAT"/>
  <affected-histogram name="WebRTC.Stun.SuccessPercent.NonSymNAT"/>
  <affected-histogram name="WebRTC.Stun.SuccessPercent.SymNAT"/>
  <affected-histogram name="WebRTC.Stun.SuccessPercent.UnknownNAT"/>
</histogram_suffixes>

<histogram_suffixes name="SubresourceFilterOnlyExperiment" separator=".">
  <obsolete>
    Deprecated May 2018
  </obsolete>
  <suffix name="AbusiveAds" label="Abusive Ads pattern">
    <obsolete>
      Deprecated 11/17, no longer used.
    </obsolete>
  </suffix>
  <suffix name="AllAds" label="All Ads (BAS + Abusive) pattern">
    <obsolete>
      Deprecated 11/17, no longer used.
    </obsolete>
  </suffix>
  <suffix name="BetterAds" label="Better Ads Standard pattern"/>
  <suffix name="PhishingInterstitial" label="phishing blacklist pattern"/>
  <suffix name="SocialEngineeringAdsInterstitial"
      label="social eng ad blacklist pattern"/>
  <suffix name="SubresourceFilterOnly" label="subresource filter only pattern"/>
  <affected-histogram name="SubresourceFilter.PageLoad.FinalURLMatch"/>
  <affected-histogram name="SubresourceFilter.PageLoad.RedirectChainLength"/>
  <affected-histogram
      name="SubresourceFilter.PageLoad.RedirectChainMatchPattern">
    <obsolete>
      Obsolete as of April 2017
    </obsolete>
  </affected-histogram>
</histogram_suffixes>

<histogram_suffixes name="SweeperCompletionTypes" separator=".">
  <suffix name="Complete" label="All indexes are scanned."/>
  <suffix name="ConnectionOpened"
      label="Scanning is interrupted by an new connection to the database."/>
  <suffix name="MaxIterations"
      label="Scanning is stopped because the maximum record iteration count
             was hit."/>
  <suffix name="SweepError"
      label="Scanning is stopped because a leveldb error was encountered
             during sweeping."/>
  <suffix name="TimeoutReached" label="Scanning is stopped by the timeout."/>
  <affected-histogram
      name="WebCore.IndexedDB.TombstoneSweeper.DeletedTombstonesSize"/>
  <affected-histogram
      name="WebCore.IndexedDB.TombstoneSweeper.NumDeletedTombstones"/>
  <affected-histogram name="WebCore.IndexedDB.TombstoneSweeper.NumTombstones"/>
  <affected-histogram name="WebCore.IndexedDB.TombstoneSweeper.TombstonesSize"/>
</histogram_suffixes>

<histogram_suffixes name="SyncKeyDerivationMethod" separator=".">
  <suffix name="Pbkdf2" label="PBKDF2_HMAC_SHA1_1003"/>
  <suffix name="Scrypt8192" label="SCRYPT_8192_8_11"/>
  <affected-histogram name="Sync.Crypto.NigoriKeyDerivationDuration"/>
</histogram_suffixes>

<histogram_suffixes name="SyncModelType" separator=".">
  <suffix name="APP" label="APP"/>
  <suffix name="APP_LIST" label="APP_LIST"/>
  <suffix name="APP_NOTIFICATION" label="APP_NOTIFICATION">
    <obsolete>
      Deprecated 2/2017.
    </obsolete>
  </suffix>
  <suffix name="APP_SETTING" label="APP_SETTING"/>
  <suffix name="ARC_PACKAGE" label="ARC_PACKAGE"/>
  <suffix name="ARTICLE" label="ARTICLE">
    <obsolete>
      Deprecated 7/2018.
    </obsolete>
  </suffix>
  <suffix name="AUTOFILL" label="AUTOFILL"/>
  <suffix name="AUTOFILL_PROFILE" label="AUTOFILL_PROFILE"/>
  <suffix name="AUTOFILL_WALLET" label="AUTOFILL_WALLET"/>
  <suffix name="BOOKMARK" label="BOOKMARK"/>
  <suffix name="DEVICE_INFO" label="DEVICE_INFO"/>
  <suffix name="DICTIONARY" label="DICTIONARY"/>
  <suffix name="EXPERIMENTS" label="EXPERIMENTS"/>
  <suffix name="EXTENSION" label="EXTENSION"/>
  <suffix name="EXTENSION_SETTING" label="EXTENSION_SETTING"/>
  <suffix name="FAVICON_IMAGE" label="FAVICON_IMAGE"/>
  <suffix name="FAVICON_TRACKING" label="FAVICON_TRACKING"/>
  <suffix name="HISTORY_DELETE_DIRECTIVE" label="HISTORY_DELETE_DIRECTIVE"/>
  <suffix name="MANAGED_USER" label="MANAGED_USER">
    <obsolete>
      Deprecated 4/2018.
    </obsolete>
  </suffix>
  <suffix name="MANAGED_USER_SETTING" label="MANAGED_USER_SETTING"/>
  <suffix name="MANAGED_USER_SHARED_SETTING"
      label="MANAGED_USER_SHARED_SETTING">
    <obsolete>
      Deprecated 4/2018.
    </obsolete>
  </suffix>
  <suffix name="MANAGED_USER_WHITELIST" label="MANAGED_USER_WHITELIST"/>
  <suffix name="MOUNTAIN_SHARE" label="MOUNTAIN_SHARE"/>
  <suffix name="NIGORI" label="NIGORI"/>
  <suffix name="PASSWORD" label="PASSWORD"/>
  <suffix name="PREFERENCE" label="PREFERENCE"/>
  <suffix name="PRINTERS" label="PRINTERS"/>
  <suffix name="PRIORITY_PREFERENCE" label="PRIORITY_PREFERENCE"/>
  <suffix name="PROXY_TABS" label="PROXY_TABS"/>
  <suffix name="READING_LIST" label="READING_LIST"/>
  <suffix name="SEARCH_ENGINE" label="SEARCH_ENGINE"/>
  <suffix name="SEND_TAB_TO_SELF" label="SEND_TAB_TO_SELF"/>
  <suffix name="SESSION" label="SESSION"/>
  <suffix name="SYNCED_NOTIFICATION" label="SYNCED_NOTIFICATION">
    <obsolete>
      Deprecated in M53.
    </obsolete>
  </suffix>
  <suffix name="SYNCED_NOTIFICATION_APP_INFO"
      label="SYNCED_NOTIFICATION_APP_INFO">
    <obsolete>
      Deprecated in M53.
    </obsolete>
  </suffix>
  <suffix name="THEME" label="THEME"/>
  <suffix name="TYPED_URL" label="TYPED_URL"/>
  <suffix name="USER_CONSENT" label="USER_CONSENT"/>
  <suffix name="USER_EVENT" label="USER_EVENT"/>
  <suffix name="WALLET_METADATA" label="WALLET_METADATA"/>
  <suffix name="WIFI_CREDENTIAL" label="WIFI_CREDENTIAL"/>
  <affected-histogram name="FCMInvalidations.SubscriptionResponseCodeForTopic"/>
  <affected-histogram name="Sync.DuplicateClientTagHashInApplyPendingUpdates"/>
  <affected-histogram name="Sync.DuplicateClientTagHashInGetUpdatesResponse"/>
  <affected-histogram
      name="Sync.DuplicateClientTagHashWithDifferentServerIdsInApplyPendingUpdates"/>
  <affected-histogram name="Sync.DuplicateServerIdInApplyPendingUpdates"/>
  <affected-histogram name="Sync.E2ELatency"/>
  <affected-histogram name="Sync.ModelTypeConfigurationTime.Ephemeral"/>
  <affected-histogram name="Sync.ModelTypeCount">
    <obsolete>
      Deprecated 7/2018. Replaced by Sync.ModelTypeCount2.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="Sync.ModelTypeCount2">
    <obsolete>
      Deprecated 8/2018. Replaced by Sync.ModelTypeCount3.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="Sync.ModelTypeCount3">
    <obsolete>
      Deprecated 8/2018. Replaced by Sync.ModelTypeCount3.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="Sync.ModelTypeCount4"/>
  <affected-histogram name="Sync.ModelTypeEntityChange">
    <obsolete>
      Deprecated 10/2018. Replaced by Sync.ModelTypeEntityChange3.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="Sync.ModelTypeEntityChange2">
    <obsolete>
      Deprecated 11/2018. Replaced by Sync.ModelTypeEntityChange3.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="Sync.ModelTypeEntityChange3"/>
  <affected-histogram name="Sync.ModelTypeMemoryKB"/>
  <affected-histogram name="Sync.NonReflectionUpdateFreshnessPossiblySkewed"/>
  <affected-histogram name="Sync.ReceivedDataTypeGetUpdatesResponseWithToken"/>
  <affected-histogram name="Sync.USSMigrationEntityCount"/>
</histogram_suffixes>

<histogram_suffixes name="SyncModelTypeByMacro" separator="" ordering="prefix">
  <suffix name="AppList" label="App list"/>
  <suffix name="AppNotifications" label="App notifications">
    <obsolete>
      Deprecated 2/2017.
    </obsolete>
  </suffix>
  <suffix name="Apps" label="Apps"/>
  <suffix name="AppSettings" label="App settings"/>
  <suffix name="ArcPackage" label="Arc package"/>
  <suffix name="Article" label="Article">
    <obsolete>
      Deprecated 7/2018.
    </obsolete>
  </suffix>
  <suffix name="Autofill" label="Autocomplete"/>
  <suffix name="AutofillProfiles" label="Autofill profiles"/>
  <suffix name="AutofillWallet" label="Autofill wallet"/>
  <suffix name="AutofillWalletMetadata" label="Autofill wallet metadata"/>
  <suffix name="Bookmarks" label="Bookmarks"/>
  <suffix name="DeviceInfo" label="Device info"/>
  <suffix name="Dictionary" label="Dictionary"/>
  <suffix name="Experiments" label="Experiments"/>
  <suffix name="Extensions" label="Extensions"/>
  <suffix name="ExtensionSettings" label="Extension settings"/>
  <suffix name="FaviconImages" label="Favicon images"/>
  <suffix name="FaviconTracking" label="Favicon tracking"/>
  <suffix name="HistoryDeleteDirectives" label="History delete directives"/>
  <suffix name="ManagedUser" label="Managed user">
    <obsolete>
      Deprecated 4/2018.
    </obsolete>
  </suffix>
  <suffix name="ManagedUserSetting" label="Managed user setting"/>
  <suffix name="ManagedUserSharedSetting" label="Managed user shared setting">
    <obsolete>
      Deprecated 4/2018.
    </obsolete>
  </suffix>
  <suffix name="ManagedUserWhitelist" label="Managed user whitelist"/>
  <suffix name="MountainShares" label="Mountain shares"/>
  <suffix name="Nigori" label="Nigori"/>
  <suffix name="Passwords" label="Passwords"/>
  <suffix name="Preferences" label="Preferences"/>
  <suffix name="Printers" label="Printers"/>
  <suffix name="PriorityPreferences" label="Priority preferences"/>
  <suffix name="ReadingList" label="Reading list"/>
  <suffix name="SearchEngines" label="Search engines"/>
  <suffix name="SecurityEvents" label="Security events"/>
  <suffix name="SendTabToSelf" label="Send tab to self"/>
  <suffix name="Sessions" label="Sessions"/>
  <suffix name="SyncedNotificationAppInfo" label="Synced notification app info">
    <obsolete>
      Deprecated in M53.
    </obsolete>
  </suffix>
  <suffix name="SyncedNotifications" label="Synced notifications">
    <obsolete>
      Deprecated in M53.
    </obsolete>
  </suffix>
  <suffix name="Themes" label="Themes"/>
  <suffix name="TypedUrls" label="Typed urls"/>
  <suffix name="UserConsents" label="User consents"/>
  <suffix name="UserEvents" label="User events"/>
  <suffix name="WifiCredentials" label="Wifi credentials"/>
  <affected-histogram name="Sync.AssociationTime"/>
  <affected-histogram name="Sync.ConfigureFailure"/>
</histogram_suffixes>

<histogram_suffixes name="SyzygyStartupTime" separator="_">
  <obsolete>
    No longer logged.
  </obsolete>
  <suffix name="PreRead_0"/>
  <suffix name="PreRead_5"/>
  <suffix name="PreRead_10"/>
  <suffix name="PreRead_15"/>
  <suffix name="PreRead_20"/>
  <suffix name="PreRead_25"/>
  <suffix name="PreRead_30"/>
  <suffix name="PreRead_35"/>
  <suffix name="PreRead_40"/>
  <suffix name="PreRead_45"/>
  <suffix name="PreRead_50"/>
  <suffix name="PreRead_55"/>
  <suffix name="PreRead_60"/>
  <suffix name="PreRead_65"/>
  <suffix name="PreRead_70"/>
  <suffix name="PreRead_75"/>
  <suffix name="PreRead_80"/>
  <suffix name="PreRead_85"/>
  <suffix name="PreRead_90"/>
  <suffix name="PreRead_95"/>
  <suffix name="PreRead_100"/>
  <suffix name="PreReadDisabled"/>
  <suffix name="PreReadEnabled"/>
  <suffix name="XP_PreRead_0"/>
  <suffix name="XP_PreRead_5"/>
  <suffix name="XP_PreRead_10"/>
  <suffix name="XP_PreRead_15"/>
  <suffix name="XP_PreRead_20"/>
  <suffix name="XP_PreRead_25"/>
  <suffix name="XP_PreRead_30"/>
  <suffix name="XP_PreRead_35"/>
  <suffix name="XP_PreRead_40"/>
  <suffix name="XP_PreRead_45"/>
  <suffix name="XP_PreRead_50"/>
  <suffix name="XP_PreRead_55"/>
  <suffix name="XP_PreRead_60"/>
  <suffix name="XP_PreRead_65"/>
  <suffix name="XP_PreRead_70"/>
  <suffix name="XP_PreRead_75"/>
  <suffix name="XP_PreRead_80"/>
  <suffix name="XP_PreRead_85"/>
  <suffix name="XP_PreRead_90"/>
  <suffix name="XP_PreRead_95"/>
  <suffix name="XP_PreRead_100"/>
  <suffix name="XP_PreReadDisabled"/>
  <suffix name="XP_PreReadEnabled"/>
  <affected-histogram name="Startup.BrowserMessageLoopStartTime"/>
  <affected-histogram name="Startup.BrowserOpenTabs"/>
</histogram_suffixes>

<histogram_suffixes name="TabCreatedReason" separator=".">
  <suffix name="FromExternalApp"
      label="This bucket is for any tabs that are created because of custom
             tabs or intends from other apps. This includes tab creation via
             intent from other app, creation via homescreen link, creation
             via custom tab."/>
  <suffix name="FromManuallyCreated"
      label="This bucket is for any tabs that are created manually. This
             includes new tab creation from toolbar menu, creation from long
             press open, creation at tab switcher, creation from launcher
             shortcut menu by long press the Chrome icon."/>
  <suffix name="FromOthers" label="This is the default bucket."/>
  <suffix name="FromTargetBlank"
      label="This bucket is for any tabs that were created from a target
             blank link. e.g. tehchmeme.com will create tabs this way."/>
  <affected-histogram name="Tabs.Tasks.TabCreated.Count"/>
  <affected-histogram name="Tabs.Tasks.TabCreated.Percent"/>
</histogram_suffixes>

<histogram_suffixes name="TabletOrClamshellMode" separator=".">
  <suffix name="ClamshellMode" label="Clamshell Mode Enabled"/>
  <suffix name="TabletMode" label="Tablet Mode Enabled"/>
  <affected-histogram name="Apps.AppListFolderNameLength"/>
</histogram_suffixes>

<histogram_suffixes name="TabNewTabOnload" separator=".">
  <suffix name="Google" label="New Tab page for Google."/>
  <suffix name="Local" label="Local New Tab page."/>
  <suffix name="LocalGoogle" label="Local New Tab page for Google.">
    <obsolete>
      Removed 06/2017, never worked correctly.
    </obsolete>
  </suffix>
  <suffix name="LocalOther"
      label="Local New Tab page for a non-Google provider.">
    <obsolete>
      Removed 06/2017, never worked correctly.
    </obsolete>
  </suffix>
  <suffix name="Other" label="New Tab page for a non-Google provider."/>
  <affected-histogram name="Tab.NewTabOnload"/>
</histogram_suffixes>

<histogram_suffixes name="Tabs.SwitchLatency" separator="_">
  <suffix name="Actual"
      label="The time it takes to show a real live frame from the renderer on
             the screen after the user selects a tab. This doesn not include
             fake snapshots or other tricks, but the actual time to get real
             interactable content displayed."/>
  <suffix name="Perceived"
      label="The time it takes to show something on the screen after the user
             selects a tab. This might be a fake snapshot or it might just be
             the time it takes to show the real content if no snapshot was
             available."/>
  <affected-histogram name="Tabs.SwitchFromCloseLatency"/>
  <affected-histogram name="Tabs.SwitchFromExitLatency"/>
  <affected-histogram name="Tabs.SwitchFromNewLatency"/>
  <affected-histogram name="Tabs.SwitchFromUserLatency"/>
</histogram_suffixes>

<histogram_suffixes name="Tabs.TabUsageIntervalLength" separator="_">
  <suffix name="30" label="30 seconds"/>
  <suffix name="60" label="1 minute"/>
  <suffix name="600" label="10 minutes"/>
  <suffix name="3600" label="1 hour"/>
  <suffix name="18000" label="5 hours"/>
  <suffix name="43200" label="12 hours"/>
  <affected-histogram name="Tabs.UnusedAndClosedInInterval.Count"/>
  <affected-histogram name="Tabs.UnusedInInterval.Count"/>
  <affected-histogram name="Tabs.UsedAndClosedInInterval.Count"/>
  <affected-histogram name="Tabs.UsedInInterval.Count"/>
</histogram_suffixes>

<histogram_suffixes name="TabSwitchInputLatency" separator=".">
  <suffix name="Keyboard"
      label="The time it takes from receiving a keyboard input event that
             leads to the active tab changing to just before the TabStrip
             notifies its observers of the change."/>
  <suffix name="Mouse"
      label="The time it takes from receiving a mouse input event that leads
             to the active tab changing to just before the TabStrip notifies
             its observers of the change."/>
  <suffix name="Touch"
      label="The time it takes from receiving a touch input event that leads
             to the active tab changing to just before the TabStrip notifies
             its observers of the change."/>
  <suffix name="Wheel"
      label="The time it takes from receiving a mouse scroll event that leads
             to the active tab changing to just before the TabStrip notifies
             its observers of the change."/>
  <affected-histogram name="Browser.Tabs.InputEventToSelectionTime"/>
</histogram_suffixes>

<histogram_suffixes name="TaskSchedulerCancelledDelayedTasks" separator=".">
  <suffix name="Browser" label="TaskScheduler for the browser process."/>
  <suffix name="ContentChild"
      label="TaskSchedulers for various instantiations of
             content::ChildProcess."/>
  <suffix name="Renderer" label="TaskSchedulers for renderer processes."/>
  <affected-histogram name="TaskScheduler.NumCancelledDelayedTasks"/>
  <affected-histogram name="TaskScheduler.PercentCancelledDelayedTasks"/>
</histogram_suffixes>

<histogram_suffixes name="TaskSchedulerMayBlock" separator=".">
  <obsolete>
    Deprecated 1/2018. Merged with TaskSchedulerTaskPriority into
    TaskSchedulerTaskType to reduce suffixing.
  </obsolete>
  <suffix name="MayBlock"
      label="Applies to tasks posted with MayBlock() or
             WithBaseSyncPrimitives()."/>
  <affected-histogram name="TaskScheduler.TaskLatency.BackgroundTaskPriority">
    <obsolete>
      Deprecated 4/2017. Units changed from milliseconds to microseconds.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="TaskScheduler.TaskLatency.UserBlockingTaskPriority">
    <obsolete>
      Deprecated 4/2017. Units changed from milliseconds to microseconds.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="TaskScheduler.TaskLatency.UserVisibleTaskPriority">
    <obsolete>
      Deprecated 4/2017. Units changed from milliseconds to microseconds.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="TaskScheduler.TaskLatencyMicroseconds.BackgroundTaskPriority"/>
  <affected-histogram
      name="TaskScheduler.TaskLatencyMicroseconds.UserBlockingTaskPriority"/>
  <affected-histogram
      name="TaskScheduler.TaskLatencyMicroseconds.UserVisibleTaskPriority"/>
</histogram_suffixes>

<histogram_suffixes name="TaskSchedulerName" separator=".">
  <suffix base="true" name="Browser"
      label="TaskScheduler for the browser process."/>
  <suffix base="true" name="ContentChild"
      label="TaskSchedulers for various instantiations of
             content::ChildProcess."/>
  <suffix base="true" name="Renderer"
      label="TaskSchedulers for renderer processes."/>
  <affected-histogram name="TaskScheduler.DetachDuration"/>
  <affected-histogram name="TaskScheduler.HeartbeatLatencyMicroseconds"/>
  <affected-histogram name="TaskScheduler.NumActiveWorkers"/>
  <affected-histogram name="TaskScheduler.NumTasksBeforeDetach"/>
  <affected-histogram name="TaskScheduler.NumTasksBetweenWaits"/>
  <affected-histogram name="TaskScheduler.NumTasksRunWhileQueuing"/>
  <affected-histogram name="TaskScheduler.NumWorkers"/>
  <affected-histogram name="TaskScheduler.TaskLatencyMicroseconds"/>
</histogram_suffixes>

<histogram_suffixes name="TaskSchedulerTaskPriority" separator=".">
  <obsolete>
    Deprecated 1/2018. Merged with TaskSchedulerMayBlock into
    TaskSchedulerTaskType to reduce suffixing.
  </obsolete>
  <suffix name="BackgroundTaskPriority"
      label="Applies to tasks posted with a BACKGROUND priority."/>
  <suffix name="UserBlockingTaskPriority"
      label="Applies to tasks posted with a USER_BLOCKING priority."/>
  <suffix name="UserVisibleTaskPriority"
      label="Applies to tasks posted with a USER_VISIBLE priority."/>
  <affected-histogram name="TaskScheduler.TaskLatency">
    <obsolete>
      Deprecated 4/2017. Units changed from milliseconds to microseconds.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="TaskScheduler.TaskLatency.BackgroundFileIOPool">
    <obsolete>
      Deprecated 12/2016. Pool name removed from task latency histogram name.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="TaskScheduler.TaskLatency.BackgroundPool">
    <obsolete>
      Deprecated 12/2016. Pool name removed from task latency histogram name.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="TaskScheduler.TaskLatency.ForegroundFileIOPool">
    <obsolete>
      Deprecated 12/2016. Pool name removed from task latency histogram name.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="TaskScheduler.TaskLatency.ForegroundPool">
    <obsolete>
      Deprecated 12/2016. Pool name removed from task latency histogram name.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="TaskScheduler.TaskLatencyMicroseconds"/>
</histogram_suffixes>

<histogram_suffixes name="TaskSchedulerTaskType" separator=".">
  <suffix name="BackgroundTaskPriority"
      label="Applies to tasks posted with a BACKGROUND priority and neither
             of MayBlock() nor WithBaseSyncPrimitives()."/>
  <suffix name="BackgroundTaskPriority_MayBlock"
      label="Applies to tasks posted with a BACKGROUND priority and
             MayBlock() or WithBaseSyncPrimitives()."/>
  <suffix name="UserBlockingTaskPriority"
      label="Applies to tasks posted with a USER_BLOCKING priority and
             neither of MayBlock() nor WithBaseSyncPrimitives()."/>
  <suffix name="UserBlockingTaskPriority_MayBlock"
      label="Applies to tasks posted with a USER_BLOCKING priority and
             MayBlock() or WithBaseSyncPrimitives()."/>
  <suffix name="UserVisibleTaskPriority"
      label="Applies to tasks posted with a USER_VISIBLE priority and neither
             of MayBlock() nor WithBaseSyncPrimitives()."/>
  <suffix name="UserVisibleTaskPriority_MayBlock"
      label="Applies to tasks posted with a USER_VISIBLE priority and
             MayBlock() or WithBaseSyncPrimitives()."/>
  <affected-histogram
      name="TaskScheduler.HeartbeatLatencyMicroseconds.Browser"/>
  <affected-histogram
      name="TaskScheduler.HeartbeatLatencyMicroseconds.ContentChild"/>
  <affected-histogram
      name="TaskScheduler.HeartbeatLatencyMicroseconds.Renderer"/>
  <affected-histogram name="TaskScheduler.NumTasksRunWhileQueuing.Browser"/>
  <affected-histogram
      name="TaskScheduler.NumTasksRunWhileQueuing.ContentChild"/>
  <affected-histogram name="TaskScheduler.NumTasksRunWhileQueuing.Renderer"/>
  <affected-histogram name="TaskScheduler.TaskLatencyMicroseconds.Browser"/>
  <affected-histogram
      name="TaskScheduler.TaskLatencyMicroseconds.ContentChild"/>
  <affected-histogram name="TaskScheduler.TaskLatencyMicroseconds.Renderer"/>
</histogram_suffixes>

<histogram_suffixes name="TaskSchedulerWorkerPool" separator=".">
  <suffix name="BackgroundBlockingPool"
      label="Applies to the BackgroundBlocking worker pool.">
    <obsolete>
      Deprecated January 2019 as the pool no longer exists.
    </obsolete>
  </suffix>
  <suffix name="BackgroundFileIOPool"
      label="Applies to the BackgroundFileIO worker pool.">
    <obsolete>
      Deprecated 02/2017. Pool was renamed to BackgroundBlocking.
    </obsolete>
  </suffix>
  <suffix name="BackgroundPool" label="Applies to the Background worker pool."/>
  <suffix name="ForegroundBlockingPool"
      label="Applies to the ForegroundBlocking worker pool.">
    <obsolete>
      Deprecated January 2019 as the pool no longer exists.
    </obsolete>
  </suffix>
  <suffix name="ForegroundFileIOPool"
      label="Applies to the ForegroundFileIO worker pool.">
    <obsolete>
      Deprecated 02/2017. Pool was renamed to ForegroundBlocking.
    </obsolete>
  </suffix>
  <suffix name="ForegroundPool" label="Applies to the Foreground worker pool."/>
  <suffix name="RendererBackgroundBlockingPool"
      label="Applies to the RendererBackgroundBlocking worker pool.">
    <obsolete>
      Deprecated 01/2018. In favor of TaskSchedulerName suffix.
    </obsolete>
  </suffix>
  <suffix name="RendererBackgroundPool"
      label="Applies to the RendererBackground worker pool.">
    <obsolete>
      Deprecated 01/2018. In favor of TaskSchedulerName suffix.
    </obsolete>
  </suffix>
  <suffix name="RendererForegroundBlockingPool"
      label="Applies to the RendererForegroundBlocking worker pool.">
    <obsolete>
      Deprecated 01/2018. In favor of TaskSchedulerName suffix.
    </obsolete>
  </suffix>
  <suffix name="RendererForegroundPool"
      label="Applies to the RendererForeground worker pool.">
    <obsolete>
      Deprecated 01/2018. In favor of TaskSchedulerName suffix.
    </obsolete>
  </suffix>
  <affected-histogram name="TaskScheduler.DetachDuration">
    <obsolete>
      Deprecated 01/2018. In favor of explicit .Browser suffix.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="TaskScheduler.DetachDuration.Browser"/>
  <affected-histogram name="TaskScheduler.DetachDuration.ContentChild"/>
  <affected-histogram name="TaskScheduler.DetachDuration.Renderer"/>
  <affected-histogram name="TaskScheduler.NumActiveWorkers.Browser"/>
  <affected-histogram name="TaskScheduler.NumActiveWorkers.ContentChild"/>
  <affected-histogram name="TaskScheduler.NumActiveWorkers.Renderer"/>
  <affected-histogram name="TaskScheduler.NumTasksBeforeDetach">
    <obsolete>
      Deprecated 01/2018. In favor of explicit .Browser suffix.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="TaskScheduler.NumTasksBeforeDetach.Browser"/>
  <affected-histogram name="TaskScheduler.NumTasksBeforeDetach.ContentChild"/>
  <affected-histogram name="TaskScheduler.NumTasksBeforeDetach.Renderer"/>
  <affected-histogram name="TaskScheduler.NumTasksBetweenWaits">
    <obsolete>
      Deprecated 01/2018. In favor of explicit .Browser suffix.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="TaskScheduler.NumTasksBetweenWaits.Browser"/>
  <affected-histogram name="TaskScheduler.NumTasksBetweenWaits.ContentChild"/>
  <affected-histogram name="TaskScheduler.NumTasksBetweenWaits.Renderer"/>
  <affected-histogram name="TaskScheduler.NumWorkers.Browser"/>
  <affected-histogram name="TaskScheduler.NumWorkers.ContentChild"/>
  <affected-histogram name="TaskScheduler.NumWorkers.Renderer"/>
  <affected-histogram name="TaskScheduler.TaskLatency">
    <obsolete>
      Deprecated 12/2016. Pool name removed from task latency histogram name.
    </obsolete>
  </affected-histogram>
</histogram_suffixes>

<histogram_suffixes name="TeamDrivesSupport" separator=".">
  <suffix name="TeamDrives"/>
  <affected-histogram name="Drive.DeltaFeedLoadTime"/>
  <affected-histogram name="Drive.DirectoryFeedLoadTime"/>
  <affected-histogram name="Drive.FullFeedLoadTime"/>
</histogram_suffixes>

<histogram_suffixes name="ThisOrOtherUser" separator=".">
  <suffix name="OtherUser" label="Having a different EUID."/>
  <suffix name="ThisUser" label="Sharing the same EUID."/>
  <affected-histogram name="OSX.OtherInstances"/>
</histogram_suffixes>

<histogram_suffixes name="ThreadWatcher" separator=".">
  <suffix name="CACHE" label="where watched thread is CACHE BrowserThread."/>
  <suffix name="DB" label="where watched thread is DB BrowserThread."/>
  <suffix name="FILE" label="where watched thread is FILE BrowserThread."/>
  <suffix name="IO" label="where watched thread is IO BrowserThread."/>
  <suffix name="UI" label="where watched thread is UI BrowserThread."/>
  <affected-histogram name="ThreadWatcher.ResponseTime"/>
  <affected-histogram name="ThreadWatcher.ResponsiveThreads"/>
  <affected-histogram name="ThreadWatcher.Unresponsive"/>
  <affected-histogram name="ThreadWatcher.UnresponsiveThreads"/>
</histogram_suffixes>

<histogram_suffixes name="ThumbnailCaptureTrigger" separator=".">
  <suffix name="NavigatingAway" label="Triggered by navigating away."/>
  <suffix name="TabHidden" label="Triggered by the tab being hidden."/>
  <affected-histogram name="Thumbnails.CaptureOutcome"/>
</histogram_suffixes>

<histogram_suffixes name="ThumbnailProvider.ClientType" separator=".">
  <suffix name="DownloadHome" label="Download home"/>
  <suffix name="NTPSnippets" label="NTP snippets"/>
  <affected-histogram name="Android.ThumbnailProvider.BitmapCache.Size"/>
  <affected-histogram name="Android.ThumbnailProvider.CachedBitmap.Found"/>
</histogram_suffixes>

<histogram_suffixes name="TimestampTimebaseProcess" separator=".">
  <obsolete>
    Deprecated as of 11/2017 in Issue 650338. Using a DCHECK instead.
  </obsolete>
  <suffix name="Browser"/>
  <suffix name="Renderer"/>
  <affected-histogram name="Event.TimestampHasValidTimebase"/>
</histogram_suffixes>

<histogram_suffixes name="TotalTimeToHttpsGoogle" separator=".">
  <suffix name="NotQuic">
    <obsolete>
      Deprecated as of 08/2015. Use Net.HttpJob.*Secure.NotQuic instead.
    </obsolete>
  </suffix>
  <suffix name="Quic">
    <obsolete>
      Deprecated as of 08/2015. Use Net.HttpJob.*Secure.Quic instead.
    </obsolete>
  </suffix>
  <suffix name="Secure.NotQuic">
    <obsolete>
      Deprecated as of 08/2018. No longer used.
    </obsolete>
  </suffix>
  <suffix name="Secure.Quic"
      label="Recorded for Google servers (https) only when QUIC is used."/>
  <affected-histogram name="Net.HttpJob.TotalTime"/>
  <affected-histogram name="Net.HttpJob.TotalTimeCached">
    <obsolete>
      Deprecated 10/2016, no longer used.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="Net.HttpJob.TotalTimeNotCached"/>
</histogram_suffixes>

<histogram_suffixes name="Tps65090Fets" separator=".">
  <suffix name="Fet1" label="FET1 on tps65090 (register 0xf)"/>
  <suffix name="Fet2" label="FET2 on tps65090 (register 0x10)"/>
  <suffix name="Fet3" label="FET3 on tps65090 (register 0x11)"/>
  <suffix name="Fet4" label="FET4 on tps65090 (register 0x12)"/>
  <suffix name="Fet5" label="FET5 on tps65090 (register 0x13)"/>
  <suffix name="Fet6" label="FET6 on tps65090 (register 0x14)"/>
  <suffix name="Fet7" label="FET7 on tps65090 (register 0x15)"/>
  <affected-histogram name="Platform.Tps65090Retries"/>
</histogram_suffixes>

<histogram_suffixes name="TrackedPreferencesExternalValidators" separator=".">
  <suffix name="FromRegistry"
      label="Validation using MACs in the Windows Registry."/>
  <affected-histogram name="Settings.TrackedPreferenceChanged"/>
  <affected-histogram name="Settings.TrackedPreferenceCleared"/>
  <affected-histogram name="Settings.TrackedPreferenceInitialized"/>
  <affected-histogram name="Settings.TrackedPreferenceMigratedLegacyDeviceId"/>
  <affected-histogram name="Settings.TrackedPreferenceNullInitialized"/>
  <affected-histogram name="Settings.TrackedPreferenceTrustedInitialized"/>
  <affected-histogram name="Settings.TrackedPreferenceUnchanged"/>
</histogram_suffixes>

<histogram_suffixes name="TrackedSplitPreferences" separator=".">
  <suffix name="extensions.settings" label="Extension IDs dictionary"/>
  <affected-histogram name="Settings.TrackedSplitPreferenceChanged"/>
</histogram_suffixes>

<histogram_suffixes name="TrafficStatsAmortizerBytesDirection" separator=".">
  <obsolete>
    Deprecated 2018/07.
  </obsolete>
  <suffix name="Rx" label="Records only received network bytes."/>
  <suffix name="Tx" label="Records only transmitted network bytes."/>
  <affected-histogram
      name="TrafficStatsAmortizer.PostAmortizationRunDataUseBytes"/>
  <affected-histogram
      name="TrafficStatsAmortizer.PreAmortizationRunDataUseBytes"/>
</histogram_suffixes>

<histogram_suffixes name="UkmSourceIdTypes" separator=".">
  <suffix name="App" label="Restricted to app source id types."/>
  <suffix name="Navigation" label="Restricted to navigation source id types."/>
  <suffix name="Ukm" label="Restricted to UKM source id types."/>
  <affected-histogram name="UKM.Sources.SerializedCount2"/>
</histogram_suffixes>

<histogram_suffixes name="UnackedPackets" separator=".">
  <obsolete>
    Deprecated as of 08/2016.
  </obsolete>
  <suffix name="NoUnackedPackets"
      label="The session had no outstanding unacked packets."/>
  <suffix name="UnackedPackets"
      label="The session had outstanding unacked packets."/>
  <affected-histogram
      name="Net.QuicSession.LocallyTimedOutWithOpenStreams.TimeSinceLastReceived"/>
</histogram_suffixes>

<histogram_suffixes name="UnPackConsumer" separator="_">
  <suffix name="ChromeArchivePatch"
      label="compressed patch: chrome_patch.packed.7z holding
             chrome_patch.diff (small)."/>
  <suffix name="CompressedChromeArchive"
      label="compressed archive: chrome.packed.7z holding chrome.7z (big)."/>
  <suffix name="SetupExePatch"
      label="compressed patch: setup_patch.packed.7z holding setup_patch.diff
             (small)."/>
  <suffix name="UncompressedChromeArchive"
      label="uncompressed archive: chrome.7z holding install dir (big)."/>
  <affected-histogram name="Setup.Install.LzmaUnPackNTSTATUS"/>
  <affected-histogram name="Setup.Install.LzmaUnPackResult"/>
  <affected-histogram name="Setup.Install.LzmaUnPackStatus"/>
</histogram_suffixes>

<histogram_suffixes name="UserClasses" separator=".">
  <suffix name="ActiveNTPUser" label="Active NTP user"/>
  <suffix name="ActiveSuggestionsConsumer" label="Active suggestions consumer"/>
  <suffix name="RareNTPUser" label="Rare NTP user"/>
  <affected-histogram
      name="NewTabPage.ContentSuggestions.TimeUntilFirstShownTrigger"/>
  <affected-histogram
      name="NewTabPage.ContentSuggestions.TimeUntilFirstSoftTrigger">
    <obsolete>
      Deprecated as of July 2017, in favor of
      NewTabPage.ContentSuggestions.TimeUntilFirstShownTrigger and
      NewTabPage.ContentSuggestions.TimeUntilFirstStartupTrigger.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="NewTabPage.ContentSuggestions.TimeUntilFirstStartupTrigger"/>
  <affected-histogram
      name="NewTabPage.ContentSuggestions.TimeUntilPersistentFetch"/>
  <affected-histogram name="NewTabPage.ContentSuggestions.TimeUntilSoftFetch"/>
  <affected-histogram
      name="NewTabPage.ContentSuggestions.TimeUntilStartupFetch"/>
</histogram_suffixes>

<histogram_suffixes name="UserScriptRunLocation" separator=".">
  <suffix name="DocumentEnd" label="Scripts with run_at: document_end."/>
  <suffix name="DocumentIdle" label="Scripts with run_at: document_idle."/>
  <suffix name="DocumentStart" label="Scripts with run_at: document_start."/>
  <affected-histogram name="Extensions.InjectedScriptExecutionTime"/>
  <affected-histogram name="Extensions.LongInjectionTaskTime"/>
  <affected-histogram name="Extensions.TimeYieldedBetweenContentScriptRuns"/>
</histogram_suffixes>

<histogram_suffixes name="V8SpecialApps" separator=".">
  <suffix name="calendar" label="Custom histogram for Calendar"/>
  <suffix name="docs" label="Custom histogram for Google Docs and Drive"/>
  <suffix name="gmail" label="Custom histogram for GMail"/>
  <suffix name="inbox" label="Custom histogram for Inbox"/>
  <suffix name="plus" label="Custom histogram for Google+"/>
  <suffix name="top10"
      label="Custom histogram for Alexa's Top10 non-Google sites"/>
  <suffix name="youtube" label="Custom histogram for Youtube"/>
  <affected-histogram name="V8.MemoryExternalFragmentationTotal"/>
  <affected-histogram name="V8.MemoryHeapCommitted"/>
  <affected-histogram name="V8.MemoryHeapSampleTotalCommitted"/>
  <affected-histogram name="V8.MemoryHeapSampleTotalUsed"/>
  <affected-histogram name="V8.MemoryHeapUsed"/>
</histogram_suffixes>

<histogram_suffixes name="V8WasmSeparateAsmAndWasm" separator=".">
  <suffix name="asm" label="This histogram contains results for asm.js"/>
  <suffix name="wasm" label="This histogram contains results for WASM modules"/>
  <affected-histogram name="V8.WasmCompileFunctionMicroSeconds"/>
  <affected-histogram name="V8.WasmCompileModuleMicroSeconds"/>
  <affected-histogram name="V8.WasmDecodeFunctionMicroSeconds"/>
  <affected-histogram name="V8.WasmDecodeModuleMicroSeconds"/>
  <affected-histogram name="V8.WasmDecodeModulePeakMemoryBytes"/>
  <affected-histogram name="V8.WasmFunctionSizeBytes"/>
  <affected-histogram name="V8.WasmFunctionsPerModule"/>
  <affected-histogram name="V8.WasmInstantiateModuleMicroSeconds"/>
  <affected-histogram name="V8.WasmMaxMemPagesCount"/>
  <affected-histogram name="V8.WasmMinMemPagesCount"/>
  <affected-histogram name="V8.WasmModuleSizeBytes"/>
</histogram_suffixes>

<histogram_suffixes name="VideoAdaptationReason" separator=".">
  <suffix name="Cpu" label="Adapt reason: CPU."/>
  <suffix name="Quality" label="Adapt reason: quality."/>
  <affected-histogram name="WebRTC.Video.AdaptChangesPerMinute"/>
</histogram_suffixes>

<histogram_suffixes name="VideoCaptureFrameDrop" separator=".">
  <suffix name="DeviceCapture"/>
  <suffix name="DisplayCapture"/>
  <suffix name="GumDesktopCapture"/>
  <suffix name="GumTabCapture"/>
  <affected-histogram name="Media.VideoCapture.FrameDrop"/>
  <affected-histogram name="Media.VideoCapture.MaxFrameDropExceeded"/>
</histogram_suffixes>

<histogram_suffixes name="VideoDecodeStatsDBOperations" separator=".">
  <suffix name="Clear" label="Success status for clearing the DB"/>
  <suffix name="Destroy"
      label="Success status for destroying the DB - DEPRECATED Sept 2018"/>
  <suffix name="Initialize" label="Success status for initializing the DB."/>
  <suffix name="LoadKeys" label="Success status for loading all DB keys"/>
  <suffix name="Read" label="Success status for reading from the DB"/>
  <suffix name="Write" label="Success status for writing to the DB"/>
  <affected-histogram name="Media.VideoDecodeStatsDB.OpSuccess"/>
</histogram_suffixes>

<histogram_suffixes name="VideoEncodedQpStats" separator=".">
  <suffix name="H264"
      label="Video codec: H264. QP range: 0-51. No spatial layers."/>
  <suffix name="Vp8"
      label="Video codec: VP8. QP range: 0-127. Single stream sent."/>
  <suffix name="Vp8.S0"
      label="Video codec: VP8. QP range: 0-127. Spatial index 0."/>
  <suffix name="Vp8.S1"
      label="Video codec: VP8. QP range: 0-127. Spatial index 1."/>
  <suffix name="Vp8.S2"
      label="Video codec: VP8. QP range: 0-127. Spatial index 2."/>
  <suffix name="Vp9"
      label="Video codec: VP9. QP range: 0-255. No spatial layers."/>
  <suffix name="Vp9.S0"
      label="Video codec: VP9. QP range: 0-255. Spatial layer 0."/>
  <suffix name="Vp9.S1"
      label="Video codec: VP9. QP range: 0-255. Spatial layer 1."/>
  <suffix name="Vp9.S2"
      label="Video codec: VP9. QP range: 0-255. Spatial layer 2."/>
  <affected-histogram name="WebRTC.Video.Encoded.Qp"/>
</histogram_suffixes>

<histogram_suffixes name="Visibility" separator=".">
  <suffix name="Hidden"
      label="The tab is not visible because it is in a minimized window
             (desktop) or background app (mobile), or because it isn't active
             in its tab strip."/>
  <suffix name="Occluded"
      label="The tab is fully covered by other windows. ChromeOS and Mac OS X
             only."/>
  <suffix name="Visible"
      label="The tab is visible. Except on ChromeOS and Mac OS X, a tab fully
             covered by other windows is considered visible."/>
  <affected-histogram name="Tab.Visibility"/>
</histogram_suffixes>

<histogram_suffixes name="VR.Mode" separator=".">
  <suffix name="AllVR" label="Entered either VR Browsing or WebVR mode."/>
  <suffix name="VRBrowsing" label="Entered VR Browsing Mode."/>
  <suffix name="WebVRPresentation"
      label="Entered WebVR presentation mode (also includes splash screen)."/>
  <affected-histogram name="VR.Component.Assets.DurationUntilReady.OnEnter"/>
  <affected-histogram name="VR.Component.Assets.Status.OnEnter"/>
  <affected-histogram name="VR.NetworkConnectionType.OnEnter"/>
</histogram_suffixes>

<histogram_suffixes name="VRFreNotCompleteType" separator=".">
  <suffix name="VrBrowser" label="FRE not complete when starting Chrome"/>
  <suffix name="WebVRAutopresent"
      label="FRE not complete when starting WebVR auto-presentation"/>
  <affected-histogram name="VRFreNotComplete"/>
</histogram_suffixes>

<histogram_suffixes name="VRRuntimeVersionGVRHeadset" separator=".">
  <suffix name="Cardboard" label="GVR version used with Carboard."/>
  <suffix name="Daydream" label="GVR version used with Daydream."/>
  <suffix name="Unknown" label="GVR version used with an unknown headset."/>
  <affected-histogram name="VRRuntimeVersion.GVR"/>
</histogram_suffixes>

<histogram_suffixes name="VRRuntimeVersionPlatform" separator=".">
  <suffix name="GVR"
      label="The GVR version being used for VR. Special values: (-4) Could
             not encode GVR version; (-3) Device does not support VR; (-2)
             GVR is not installed; (-1) GVR is installed but version is too
             old to be logged."/>
  <affected-histogram name="VRRuntimeVersion"/>
</histogram_suffixes>

<histogram_suffixes name="VRSessionType" separator=".">
  <suffix name="Browser"
      label="The session is restricted to the period that the browser is
             displaying a regular page."/>
  <suffix name="Fullscreen"
      label="The session is restricted to the period that the browser is
             displaying fullscreen content."/>
  <suffix name="WebVR"
      label="The session is restricted to the period that browser is
             displaying WebVR contents."/>
  <affected-histogram name="VRSessionTime"/>
  <affected-histogram name="VRSessionTimeFromDLA"/>
  <affected-histogram name="VRSessionVideoTime"/>
</histogram_suffixes>

<histogram_suffixes name="WebApkDistributorType" separator=".">
  <suffix name="Browser" label="Installed by Chrome"/>
  <suffix name="DevicePolicy" label="Installed by device policy"/>
  <suffix name="Other" label="Installed by other sources"/>
  <affected-histogram name="WebApk.Session.TotalDuration2"/>
  <affected-histogram name="WebApk.ShellApkVersion2"/>
</histogram_suffixes>

<histogram_suffixes name="WebApkType" separator=".">
  <suffix name="BrowserApk" label="Installed by Chrome"/>
  <suffix name="UnboundApk" label="Not installed by Chrome"/>
  <affected-histogram name="WebApk.ShellApkVersion"/>
</histogram_suffixes>

<histogram_suffixes name="WebAppContainerEngagementType" separator=".">
  <suffix name="InTab" label="Happened in app running as a tab"/>
  <suffix name="InWindow" label="Happened in app running as a window"/>
  <affected-histogram name="WebApp.Engagement"/>
  <affected-histogram name="WebApp.Engagement.DefaultInstalled"/>
  <affected-histogram name="WebApp.Engagement.UserInstalled"/>
  <affected-histogram
      name="WebApp.Engagement.UserInstalled.FromCreateShortcutButton"/>
  <affected-histogram name="WebApp.Engagement.UserInstalled.FromInstallButton"/>
</histogram_suffixes>

<histogram_suffixes name="WebAppEngagementType" separator=".">
  <suffix base="true" name="DefaultInstalled" label="Happened in default app"/>
  <suffix name="MoreThanThreeUserInstalledApps"
      label="Happenned in web site for user with 4 or more user-installed
             apps"/>
  <suffix name="NoUserInstalledApps"
      label="Happenned in web site for user without user-installed apps"/>
  <suffix name="UpToThreeUserInstalledApps"
      label="Happenned in web site for user with [1-3] user-installed apps"/>
  <suffix base="true" name="UserInstalled"
      label="Happened in user-installed app"/>
  <suffix base="true" name="UserInstalled.FromCreateShortcutButton"
      label="Happened in user-installed app created via the Create Shortcut
             button"/>
  <suffix base="true" name="UserInstalled.FromInstallButton"
      label="Happened in user-installed app created via the Install button"/>
  <affected-histogram name="WebApp.Engagement"/>
</histogram_suffixes>

<histogram_suffixes name="WebBluetoothMacOSAPIs" separator=".">
  <suffix name="DidDisconnectPeripheral" label="Disconnected from peripheral"/>
  <suffix name="DidDiscoverCharacteristics" label="Discovered characteristics"/>
  <suffix name="DidDiscoverDescriptors" label="Discovered descriptors"/>
  <suffix name="DidDiscoverPrimaryServices"
      label="Discovered primary services"/>
  <suffix name="DidFailToConnectToPeripheral"
      label="Failed to connect to peripheral"/>
  <suffix name="DidUpdateNotificationState" label="Updated notification state"/>
  <suffix name="DidUpdateValue" label="Updated value for characteristic"/>
  <suffix name="DidUpdateValueForDescriptor"
      label="Updated value for descriptor"/>
  <suffix name="DidWriteValue" label="Wrote value for characteristic"/>
  <suffix name="DidWriteValueForDescriptor"
      label="Wrote value value for descriptor"/>
  <affected-histogram name="Bluetooth.MacOS.Errors"/>
</histogram_suffixes>

<histogram_suffixes name="WebFontFamily" separator="_">
  <suffix name="opensans" label="Open Sans font"/>
  <suffix name="others" label="Fonts other than Roboto and Open Sans"/>
  <suffix name="roboto" label="Roboto font"/>
  <affected-histogram name="WebFont.DiskCache.EntryAge.Evict"/>
  <affected-histogram name="WebFont.DiskCache.EntryAge.Hit"/>
  <affected-histogram name="WebFont.DiskCache.ReuseCount.Evict"/>
  <affected-histogram name="WebFont.DiskCache.ReuseCount.Hit"/>
  <affected-histogram name="WebFont.DiskCacheHit"/>
</histogram_suffixes>

<histogram_suffixes name="WebFontFormat" separator=".">
  <suffix name="SFNT" label="TrueType or OpenType fonts"/>
  <suffix name="WOFF" label="WOFF 1.0 fonts"/>
  <suffix name="WOFF2" label="WOFF 2.0 fonts"/>
  <affected-histogram name="WebFont.DecodeSpeed"/>
</histogram_suffixes>

<histogram_suffixes name="WebFontMissedCache" separator="." ordering="prefix">
  <owner>toyoshim@chromium.org</owner>
  <suffix name="MissedCache" label="On missed cache"/>
  <affected-histogram name="WebFont.DownloadTime.0.Under10KB"/>
  <affected-histogram name="WebFont.DownloadTime.1.10KBTo50KB"/>
  <affected-histogram name="WebFont.DownloadTime.2.50KBTo100KB"/>
  <affected-histogram name="WebFont.DownloadTime.3.100KBTo1MB"/>
  <affected-histogram name="WebFont.DownloadTime.4.Over1MB"/>
  <affected-histogram name="WebFont.DownloadTime.LoadError"/>
</histogram_suffixes>

<histogram_suffixes name="WebFontMissedCacheAndInterventionTriggeredOrNot"
    separator="." ordering="prefix">
  <obsolete>
    Deprecated 10/2017. Related field trial has finished rolling out.
  </obsolete>
  <owner>toyoshim@chromium.org</owner>
  <suffix name="MissedCacheAndInterventionNotTriggered"
      label="On missed cache and intervention not triggered"/>
  <suffix name="MissedCacheAndInterventionTriggered"
      label="On missed cache and intervention triggered"/>
  <affected-histogram name="WebFont.DownloadTime.1.10KBTo50KB"/>
  <affected-histogram name="WebFont.DownloadTime.1.10KBTo50KB"/>
</histogram_suffixes>

<histogram_suffixes name="WebMediaPlayerContentTypes" separator=".">
  <suffix name="Audio"/>
  <suffix name="AudioVideo"/>
  <suffix name="Video"/>
  <affected-histogram name="Media.PreloadMetadataSuspendWasIdeal"/>
</histogram_suffixes>

<histogram_suffixes name="WebMediaPlayerImplTypes" separator=".">
  <suffix name="EME"
      label="For Encrypted Media Extensions (EME) based playbacks."/>
  <suffix name="MSE"
      label="For Media Source Extensions (MSE) based playbacks."/>
  <suffix name="SRC" label="For src= playbacks."/>
  <affected-histogram name="Media.TimeToFirstFrame"/>
  <affected-histogram name="Media.TimeToMetadata"/>
  <affected-histogram name="Media.TimeToPlayReady"/>
  <affected-histogram name="Media.UnderflowDuration2"/>
</histogram_suffixes>

<histogram_suffixes name="WebRTCEchoCancellerEstimate" separator=".">
  <suffix name="Max" label="The maximum over the time interval"/>
  <suffix name="Min" label="The minimum over the time interval"/>
  <suffix name="Value" label="The last estimated value of the time interval"/>
  <affected-histogram name="WebRTC.Audio.EchoCanceller.Erl"/>
  <affected-histogram name="WebRTC.Audio.EchoCanceller.Erle"/>
</histogram_suffixes>

<histogram_suffixes name="WebRTCEchoCancellerStatisticType" separator=".">
  <suffix name="Average" label="The average over the time interval"/>
  <suffix name="Max" label="The maximum over the time interval"/>
  <suffix name="Min" label="The minimum over the time interval"/>
  <affected-histogram name="WebRTC.Audio.EchoCanceller.ComfortNoiseBand0"/>
  <affected-histogram name="WebRTC.Audio.EchoCanceller.ComfortNoiseBand1"/>
  <affected-histogram name="WebRTC.Audio.EchoCanceller.ErlBand0"/>
  <affected-histogram name="WebRTC.Audio.EchoCanceller.ErlBand1"/>
  <affected-histogram name="WebRTC.Audio.EchoCanceller.ErleBand0"/>
  <affected-histogram name="WebRTC.Audio.EchoCanceller.ErleBand1"/>
  <affected-histogram name="WebRTC.Audio.EchoCanceller.SuppressorGainBand0"/>
  <affected-histogram name="WebRTC.Audio.EchoCanceller.SuppressorGainBand1"/>
</histogram_suffixes>

<histogram_suffixes name="WebRtcLoggingEvent" separator=".">
  <suffix name="Discard" label="Discard"/>
  <suffix name="Start" label="Start"/>
  <suffix name="UploadFailed" label="Upload failed"/>
  <suffix name="UploadStarted" label="Upload started"/>
  <suffix name="UploadStoredStarted" label="Upload of a stored log started"/>
  <suffix name="UploadSuccessful" label="Upload successful"/>
  <affected-histogram name="WebRtcTextLogging"/>
</histogram_suffixes>

<histogram_suffixes name="WebRTCMediaType" separator=".">
  <suffix name="Audio" label="Audio"/>
  <suffix name="Data" label="Data"/>
  <suffix name="Video" label="Video"/>
  <affected-histogram name="WebRTC.PeerConnection.SrtpCryptoSuite"/>
  <affected-histogram name="WebRTC.PeerConnection.SslCipherSuite"/>
</histogram_suffixes>

<histogram_suffixes name="WebRTCVideoExperimentGroupId" separator=".">
  <owner>ilnik@chromium.org</owner>
  <suffix name="ExperimentGroup0"/>
  <suffix name="ExperimentGroup1"/>
  <suffix name="ExperimentGroup2"/>
  <suffix name="ExperimentGroup3"/>
  <suffix name="ExperimentGroup4"/>
  <suffix name="S0"/>
  <suffix name="S1"/>
  <suffix name="S2"/>
  <affected-histogram name="WebRTC.Video.Decoded.Vp8.Qp"/>
  <affected-histogram name="WebRTC.Video.EndToEndDelayInMs"/>
  <affected-histogram name="WebRTC.Video.EndToEndDelayMaxInMs"/>
  <affected-histogram name="WebRTC.Video.InterframeDelay95PercentileInMs"/>
  <affected-histogram name="WebRTC.Video.InterframeDelayInMs"/>
  <affected-histogram name="WebRTC.Video.InterframeDelayMaxInMs"/>
  <affected-histogram name="WebRTC.Video.KeyFramesReceivedInPermille"/>
  <affected-histogram name="WebRTC.Video.MediaBitrateReceivedInKbps"/>
  <affected-histogram name="WebRTC.Video.ReceivedHeightInPixels"/>
  <affected-histogram name="WebRTC.Video.ReceivedWidthInPixels"/>
  <affected-histogram name="WebRTC.Video.Screenshare.Decoded.Vp8.Qp"/>
  <affected-histogram name="WebRTC.Video.Screenshare.EndToEndDelayInMs"/>
  <affected-histogram name="WebRTC.Video.Screenshare.EndToEndDelayMaxInMs"/>
  <affected-histogram
      name="WebRTC.Video.Screenshare.InterframeDelay95PercentileInMs"/>
  <affected-histogram name="WebRTC.Video.Screenshare.InterframeDelayInMs"/>
  <affected-histogram name="WebRTC.Video.Screenshare.InterframeDelayMaxInMs"/>
  <affected-histogram
      name="WebRTC.Video.Screenshare.KeyFramesReceivedInPermille"/>
  <affected-histogram
      name="WebRTC.Video.Screenshare.MediaBitrateReceivedInKbps"/>
  <affected-histogram name="WebRTC.Video.Screenshare.ReceivedHeightInPixels"/>
  <affected-histogram name="WebRTC.Video.Screenshare.ReceivedWidthInPixels"/>
</histogram_suffixes>

<histogram_suffixes name="WebSocketErrorCodesVariants" separator="_">
  <suffix name="Localhost"/>
  <suffix name="NotLocalhost"/>
  <affected-histogram name="Net.WebSocket.ErrorCodes"/>
</histogram_suffixes>

<histogram_suffixes name="WebSocketMessageSizeReceive" separator=".">
  <suffix name="ArrayBuffer"/>
  <suffix name="Blob"/>
  <affected-histogram name="WebCore.WebSocket.MessageSize.Receive"/>
</histogram_suffixes>

<histogram_suffixes name="WebSocketMessageSizeSend" separator=".">
  <suffix name="ArrayBuffer"/>
  <suffix name="ArrayBufferView"/>
  <suffix name="Blob"/>
  <affected-histogram name="WebCore.WebSocket.MessageSize.Send"/>
</histogram_suffixes>

<histogram_suffixes name="WebStoreLinkExperiment" separator="_">
  <suffix name="Disabled" label="Neither extra webstore link is visible"/>
  <suffix name="FooterLink" label="Link in bottom right of footer"/>
  <suffix name="PlusIcon" label="Plus icon in apps page"/>
  <affected-histogram name="Extensions.AppLaunch"/>
  <affected-histogram name="NewTabPage.DefaultPageType"/>
</histogram_suffixes>

<histogram_suffixes name="WeekdayNames" separator="_">
  <suffix name="Friday"/>
  <suffix name="Monday"/>
  <suffix name="Saturday"/>
  <suffix name="Sunday"/>
  <suffix name="Thursday"/>
  <suffix name="Tuesday"/>
  <suffix name="Wednesday"/>
  <affected-histogram name="NewTabPage.ContentSuggestions.UsageTimeLocal"/>
</histogram_suffixes>

<histogram_suffixes name="WelcomeWin10Variant" separator="_">
  <owner>tmartino@chromium.org</owner>
  <suffix name="InlineCombined" label="Inline layout style, combined promo"/>
  <suffix name="InlineDefault"
      label="Inline layout style, default browser promo only"/>
  <suffix name="SectionedCombined"
      label="Sectioned layout style, combined promo"/>
  <suffix name="SectionedDefault"
      label="Sectioned layout style, default browser promo only"/>
  <affected-histogram name="Welcome.Win10.DefaultPromptResult"/>
  <affected-histogram name="Welcome.Win10.PinnedPromptResult"/>
</histogram_suffixes>

<histogram_suffixes name="WindowsImageCaptureOutcomeCategories" separator=".">
  <suffix name="DirectShowAnyRes" label="Using DirectShow at any resolution."/>
  <suffix name="DirectShowHighRes"
      label="Using DirectShow at high resolution (width &gt; 1920)."/>
  <suffix name="MediaFoundationAnyRes"
      label="Using MediaFoundation at any resolution."/>
  <suffix name="MediaFoundationHighRes"
      label="Using MediaFoundation at high resolution (width &gt; 1920)."/>
  <affected-histogram name="Media.VideoCapture.Windows.ImageCaptureOutcome"/>
</histogram_suffixes>

<histogram_suffixes name="WrenchMenuActionTimings" separator=".">
  <suffix name="About"/>
  <suffix name="AppInfo"/>
  <suffix name="BetaForum"/>
  <suffix name="BookmarkAllTabs"/>
  <suffix name="BookmarkOpen">
    <obsolete>
      Deprecated as of 02/2015. Use WrenchMenu.TimeToAction.OpenBookmark
      instead.
    </obsolete>
  </suffix>
  <suffix name="BookmarkPage"/>
  <suffix name="Cast"/>
  <suffix name="ChromeOSRestart"/>
  <suffix name="ClearBrowsingData"/>
  <suffix name="Copy"/>
  <suffix name="CopyUrl"/>
  <suffix name="CreateHostedApp"/>
  <suffix name="CreateShortcuts">
    <obsolete>
      Deprecated as of 04/2017. Replaced by Bookmark Apps (CreateHostedApp).
    </obsolete>
  </suffix>
  <suffix name="Cut"/>
  <suffix name="DevTools"/>
  <suffix name="DevToolsConsole"/>
  <suffix name="DevToolsDevices"/>
  <suffix name="DistillPage"/>
  <suffix name="EnterFullScreen"/>
  <suffix name="Exit"/>
  <suffix name="Feedback"/>
  <suffix name="Find"/>
  <suffix name="HelpPage"/>
  <suffix name="ImportSettings"/>
  <suffix name="ManageExtensions"/>
  <suffix name="NewIncognitoWindow"/>
  <suffix name="NewTab"/>
  <suffix name="NewWindow"/>
  <suffix name="OpenBookmark"/>
  <suffix name="OpenInChrome"/>
  <suffix name="OpenRecentTab"/>
  <suffix name="Paste"/>
  <suffix name="PinToStartScreen"/>
  <suffix name="Print"/>
  <suffix name="ProfilingEnabled"/>
  <suffix name="RecentTab">
    <obsolete>
      Deprecated as of 02/2015. Use WrenchMenu.TimeToAction.OpenRecentTab
      instead.
    </obsolete>
  </suffix>
  <suffix name="RequestTabletSite"/>
  <suffix name="RestoreTab"/>
  <suffix name="SavePage"/>
  <suffix name="Settings"/>
  <suffix name="ShowBookmarkBar"/>
  <suffix name="ShowBookmarkMgr"/>
  <suffix name="ShowDownloads"/>
  <suffix name="ShowHistory"/>
  <suffix name="ShowSyncSetup"/>
  <suffix name="SiteSettings"/>
  <suffix name="TaskManager"/>
  <suffix name="ViewSource"/>
  <suffix name="Win8MetroRestart"/>
  <suffix name="WinDesktopRestart"/>
  <suffix name="ZoomMinus"/>
  <suffix name="ZoomPlus"/>
  <affected-histogram name="WrenchMenu.TimeToAction"/>
</histogram_suffixes>

</histogram_suffixes_list>

</histogram-configuration>
