<!--
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>tengs@chromium.org</owner>
  <summary>
    Whether the Chrome OS Autoclick feature is on (checked once 45 secs after
    startup).
  </summary>
</histogram>

<histogram name="Accessibility.CrosAutoclickDelay" units="ms">
  <owner>dmazzoni@chromium.org</owner>
  <owner>kenjibaheux@google.com</owner>
  <owner>tengs@chromium.org</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.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="2019-04-01">
<!-- 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="2019-04-01">
<!-- 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.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="ActivityTracker.Collect.AnalyzerCreationError"
    enum="ActivityTrackerAnalyzerCreationError">
  <owner>manzagop@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>manzagop@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>manzagop@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>manzagop@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>manzagop@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>manzagop@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>manzagop@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>manzagop@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>manzagop@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>manzagop@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>manzagop@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.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>dfalcantara@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>dfalcantara@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">
  <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.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">
  <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">
  <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.Filter"
    enum="AndroidDownloadFilterType">
  <owner>dfalcantara@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <owner>ianwen@chromium.org</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>jming@chromium.org</owner>
  <owner>xingliu@chromium.org</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>dfalcantara@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <owner>ianwen@chromium.org</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>xingliu@chromium.org</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>dfalcantara@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <owner>ianwen@chromium.org</owner>
  <summary>Recorded when a download fails to open.</summary>
</histogram>

<histogram name="Android.DownloadManager.Item.OpenSucceeded"
    enum="AndroidDownloadFilterType">
  <owner>dfalcantara@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <owner>ianwen@chromium.org</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>
  <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>
  <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>
  <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>
  <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>
  <summary>
    The number of items selected when performing a multi-share action.
  </summary>
</histogram>

<histogram name="Android.DownloadManager.NotificationInteraction"
    enum="DownloadNotificationInteractions">
  <owner>jming@chromium.org</owner>
  <owner>xingliu@chromium.org</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>jming@chromium.org</owner>
  <owner>xingliu@chromium.org</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>jming@chromium.org</owner>
  <owner>xingliu@chromium.org</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>jming@chromium.org</owner>
  <owner>xingliu@chromium.org</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>
  <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>
  <summary>Records how users open video download files on Android.</summary>
</histogram>

<histogram name="Android.DownloadManager.OtherExtensions.InitialCount"
    enum="AndroidDownloadExtensionType">
  <owner>dfalcantara@chromium.org</owner>
  <owner>twellington@chromium.org</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>dfalcantara@chromium.org</owner>
  <owner>twellington@chromium.org</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>dfalcantara@chromium.org</owner>
  <owner>twellington@chromium.org</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>dfalcantara@chromium.org</owner>
  <owner>twellington@chromium.org</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>jming@chromium.org</owner>
  <owner>xingliu@chromium.org</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>jming@chromium.org</owner>
  <owner>xingliu@chromium.org</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>dfalcantara@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <owner>ianwen@chromium.org</owner>
  <summary>The number of downloads shared at the same time.</summary>
</histogram>

<histogram name="Android.DownloadManager.Share.FileTypes"
    enum="AndroidDownloadFilterType">
  <owner>dfalcantara@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <owner>ianwen@chromium.org</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>
  <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>dfalcantara@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <owner>ianwen@chromium.org</owner>
  <summary>The percentage of total storage downloads consume.</summary>
</histogram>

<histogram name="Android.DownloadManager.ViewRetentionTime.Audio"
    units="minutes">
  <owner>xingliu@chromium.org</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="2019-01-30">
  <owner>xingliu@chromium.org</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 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>thildebr@chromium.org</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>thildebr@chromium.org</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>thildebr@chromium.org</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>thildebr@chromium.org</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>thildebr@chromium.org</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>thildebr@chromium.org</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>thildebr@chromium.org</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>thildebr@chromium.org</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="M73">
  <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>jaekyun@chromium.org</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.MainActivity.ExplicitMainViewIntentDispatched.OnCreate"
    enum="BooleanDispatched">
  <owner>dskiba@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>dskiba@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>dskiba@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>dskiba@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>dskiba@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>dskiba@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>jaekyun@chromium.org</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.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>
  <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>
  <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.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.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>peconn@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>danielpark@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>danielpark@chromium.org</owner>
  <summary>The response code of the completed survey download request.</summary>
</histogram>

<histogram name="Android.Survey.InfoBarClosingState"
    enum="InfoBarClosingStates">
  <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.Survey.ShowSurvey" enum="BooleanSuccess">
  <owner>danielpark@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>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.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>thildebr@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>dfalcantara@chromium.org</owner>
  <summary>The number of bytes written for the tab metadata file.</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.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.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.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">
  <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="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>dfalcantara@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
    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>dfalcantara@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
    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>dfalcantara@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
    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>michaeln@chromium.org</owner>
  <summary>AppCache check response result code.</summary>
</histogram>

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

<histogram name="appcache.CompletionRunTime" units="ms">
  <owner>michaeln@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>michaeln@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>michaeln@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>michaeln@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>michaeln@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>michaeln@chromium.org</owner>
  <summary>
    How long URLRequests to be retrieved over the network are delayed.
  </summary>
</histogram>

<histogram name="appcache.MainPageLoad" enum="BooleanSecure">
  <owner>michaeln@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>michaeln@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>michaeln@chromium.org</owner>
  <summary>Identifies where a missing manifest was detected occured.</summary>
</histogram>

<histogram name="appcache.MissingManifestEntry" enum="BooleanSuccess">
  <owner>michaeln@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>michaeln@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>michaeln@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>michaeln@chromium.org</owner>
  <summary>
    Time elapsed between a background task being queued and run.
  </summary>
</histogram>

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

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

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

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

<histogram name="appcache.UpdateWasStalledAtPointOfFailure" enum="Boolean">
  <owner>michaeln@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.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.AppListBadgedAppsCount" units="apps">
  <owner>vadimt@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 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.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.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.
  </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.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.com</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.com</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>vadimt@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.EngagementTime.Background" units="seconds">
  <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="seconds">
  <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="seconds">
  <owner>maajid@google.com</owner>
  <owner>shaochuan@google.com</owner>
  <owner>shihuis@google.com</owner>
  <summary>
    Total 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 three metrics are accumulated and
    recorded to UMA once a day.
  </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.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. This is required because this value is used
    to categorize all other data in the dashboard as collected with specific
    native bridge in use.
  </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.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">
  <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. 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.
  </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="M74">
  <owner>phongo@google.com</owner>
  <owner>brunokim@google.com</owner>
  <summary>
    The result (success or the type of failure) of ARC supervision transition
    events.
  </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>varkha@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>varkha@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>varkha@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>varkha@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>varkha@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>varkha@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>varkha@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>varkha@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.Login.Lock.AuthMethod.Switched"
    enum="AuthMethodSwitchType">
  <owner>xiaoyinh@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>xiaoyinh@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>xiaoyinh@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>xiaoyinh@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>xiaoyinh@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>xiaoyinh@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>tdanderson@google.com</owner>
  <owner>bruthig@google.com</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.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>xiaoyinh@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>xiaoyinh@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>xiaoyinh@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>xiaoyinh@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>xiaoyinh@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>tdanderson@chromium.org</owner>
  <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>tdanderson@chromium.org</owner>
  <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>tdanderson@chromium.org</owner>
  <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="seconds">
  <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="seconds">
  <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>varkha@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>varkha@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>varkha@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>varkha@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>varkha@chromium.org</owner>
  <owner>tdanderson@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>varkha@chromium.org</owner>
  <owner>tdanderson@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>varkha@chromium.org</owner>
  <owner>tdanderson@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>
  <owner>tdanderson@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>tdanderson@chromium.org</owner>
  <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>
  <owner>tdanderson@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>
  <owner>tdanderson@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>varkha@chromium.org</owner>
  <owner>tdanderson@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>tdanderson@chromium.org</owner>
  <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>tdanderson@chromium.org</owner>
  <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>
  <owner>tdanderson@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>tdanderson@chromium.org</owner>
  <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.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.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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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.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="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.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.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>szhangcs@google.com</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="M74">
  <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.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" expires_after="M73">
  <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" expires_after="M73">
  <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" expires_after="M73">
  <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="2019-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.NthStrikeAdded.CreditCardSave"
    units="strikes" expires_after="2019-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.StrikeDatabaseInitFailed"
    units="attempts" expires_after="2019-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.StrikesPresentWhenLocalCardSaved"
    units="strikes" expires_after="2019-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="2019-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.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" expires_after="M73">
  <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">
  <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" expires_after="M73">
  <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"
    expires_after="M73">
  <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="M73">
  <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="M73">
  <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="M73">
  <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">
<!-- 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">
<!-- 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">
  <owner>tby@chromium.org</owner>
  <summary>Whether the ALS is enabled or the error otherwise.</summary>
</histogram>

<histogram name="AutoScreenBrightness.BrightnessMonitorStatus"
    enum="AutoScreenBrightnessBrightnessMonitorStatus">
  <owner>tby@chromium.org</owner>
  <summary>
    Whether the brightness monitor is enabled or the error otherwise.
  </summary>
</histogram>

<histogram name="AutoScreenBrightness.DailyUserAdjustment.NoAls" units="count">
  <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">
  <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">
  <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">
  <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.ParameterError"
    enum="AutoScreenBrightnessParameterError">
  <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.
  </summary>
</histogram>

<histogram name="AutoScreenBrightness.PersonalCurveValid" enum="BooleanValid">
  <owner>tby@chromium.org</owner>
  <summary>Whether the user's personal brightness curve is valid.</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 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.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>dgn@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.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="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>krstnmnlsn@chromium.org</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.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/>
  <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>hubbe@chromium.org</owner>
  <summary>Gamut properties of destination color space.</summary>
</histogram>

<histogram name="Blink.ColorGamut.Source" enum="Gamut">
  <owner>hubbe@chromium.org</owner>
  <summary>Gamut properties of image color space.</summary>
</histogram>

<histogram name="Blink.ColorSpace.Destination" enum="Gamma">
  <owner>msarett@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>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>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>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 slimming
    paint V2 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>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.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.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.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="M74">
  <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="M74">
  <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">
  <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">
  <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.Features" enum="FeatureObserver">
  <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.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.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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@chromium.org</owner>
  <summary>
    Successful GATT connection result codes. Used to better understand Android
    results.
  </summary>
</histogram>

<histogram name="Bluetooth.ConnectedDeviceCount" units="devices">
  <owner>keybuk@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>scheib@chromium.org</owner>
  <owner>device-dev@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>keybuk@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>keybuk@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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>jyasskin@chromium.org</owner>
  <owner>ortuno@chromium.org</owner>
  <owner>scheib@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 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>ltian@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>ltian@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>ramyasharma@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.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.
  </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>miguelg@chromium.org</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>avayvod@google.com</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>aberent@chromium.org</owner>
  <owner>avayvod@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>aberent@chromium.org</owner>
  <owner>avayvod@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>aberent@chromium.org</owner>
  <owner>avayvod@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>avayvod@chromium.org</owner>
  <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>aberent@chromium.org</owner>
  <owner>avayvod@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>aberent@google.com</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">
  <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.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">
  <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.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>dkrahn@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>dkrahn@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>dkrahn@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>simonb@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>ranj@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>anandc@chromium.org</owner>
  <owner>sergeyu@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>anandc@chromium.org</owner>
  <owner>sergeyu@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>anandc@chromium.org</owner>
  <owner>sergeyu@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>anandc@chromium.org</owner>
  <owner>sergeyu@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>vitalybuka@chromium.org</owner>
  <summary>Event counts in CloudPrintAuth.</summary>
</histogram>

<histogram name="CloudPrint.AvailablePrinters">
  <owner>vitalybuka@chromium.org</owner>
  <summary>The number of printers availible for registration.</summary>
</histogram>

<histogram name="CloudPrint.AvailablePrintersList">
  <owner>vitalybuka@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>vitalybuka@chromium.org</owner>
  <summary>The amount of time between capabilities updates.</summary>
</histogram>

<histogram name="CloudPrint.JobHandlerEvent"
    enum="CloudPrintJobHandlerEventType">
  <owner>vitalybuka@chromium.org</owner>
  <summary>Event counts in PrinterJobHandler.</summary>
</histogram>

<histogram name="CloudPrint.JobsDonePerInterval">
  <owner>vitalybuka@chromium.org</owner>
  <summary>The number of jobs successfully completed per hour.</summary>
</histogram>

<histogram name="CloudPrint.JobsStartedPerInterval">
  <owner>vitalybuka@chromium.org</owner>
  <summary>The number of jobs started per hour.</summary>
</histogram>

<histogram name="CloudPrint.JobStatus" enum="CloudPrintJobStatusType">
  <owner>vitalybuka@chromium.org</owner>
  <summary>Then number of job completion statuses.</summary>
</histogram>

<histogram name="CloudPrint.NativeJobStatus"
    enum="CloudPrintNativeJobStatusType">
  <owner>vitalybuka@chromium.org</owner>
  <summary>Event counts in PrintSystem.</summary>
</histogram>

<histogram name="CloudPrint.PrepareTime" units="ms">
  <owner>vitalybuka@chromium.org</owner>
  <summary>The amount of time needed to prepare job for spooling.</summary>
</histogram>

<histogram name="CloudPrint.PrinterBlacklistSize">
  <owner>vitalybuka@chromium.org</owner>
  <summary>The number of printers user has blacklisted.</summary>
</histogram>

<histogram name="CloudPrint.PrinterWhitelistSize">
  <owner>vitalybuka@chromium.org</owner>
  <summary>The number of printers user has whitelisted.</summary>
</histogram>

<histogram name="CloudPrint.PrintingTime" units="ms">
  <owner>vitalybuka@chromium.org</owner>
  <summary>The amount of time needed to finish print job.</summary>
</histogram>

<histogram name="CloudPrint.ServiceEvents" enum="ServiceProcessEventType">
  <owner>vitalybuka@chromium.org</owner>
  <summary>Event counts in ServiceProcessControl.</summary>
</histogram>

<histogram name="CloudPrint.ServiceProcessSocketLength">
  <obsolete>
    Removed 12/2015. http://crbug.com/466644
  </obsolete>
  <owner>vitalybuka@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>vitalybuka@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>vitalybuka@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>vitalybuka@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>vitalybuka@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>vitalybuka@chromium.org</owner>
  <summary>The amount of time used to generate metafile.</summary>
</histogram>

<histogram name="CloudPrint.ServiceUtilityProcessHostEvent"
    enum="ServiceUtilityProcessHostEventType">
  <owner>vitalybuka@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>vitalybuka@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>vitalybuka@chromium.org</owner>
  <summary>The amount of time used to collect printer capabilities.</summary>
</histogram>

<histogram name="CloudPrint.SpoolingTime" units="ms">
  <owner>vitalybuka@chromium.org</owner>
  <summary>The amount of time needed to spool print job.</summary>
</histogram>

<histogram name="CloudPrint.UnregisterPrinters">
  <owner>vitalybuka@chromium.org</owner>
  <summary>The number of printers to unregister.</summary>
</histogram>

<histogram name="CloudPrint.UrlFetcherDownloadSize" units="KB">
  <owner>vitalybuka@chromium.org</owner>
  <summary>The amount of data downloaded on cloud print request.</summary>
</histogram>

<histogram name="CloudPrint.UrlFetcherRequestTime" units="ms">
  <owner>vitalybuka@chromium.org</owner>
  <summary>The amount of time needed for cloud print request.</summary>
</histogram>

<histogram name="CloudPrint.UrlFetcherRequestType"
    enum="CloudPrintUrlFetcherRequestType">
  <owner>vitalybuka@chromium.org</owner>
  <summary>Request counts to cloud print service.</summary>
</histogram>

<histogram name="CloudPrint.UrlFetcherRetries">
  <owner>vitalybuka@chromium.org</owner>
  <summary>The number of retries used to complete cloud print request.</summary>
</histogram>

<histogram name="CloudPrint.UrlFetcherUploadSize" units="KB">
  <owner>vitalybuka@chromium.org</owner>
  <summary>The amount of data uploaded with cloud print request.</summary>
</histogram>

<histogram name="CloudPrint.XmppPingTry">
  <owner>vitalybuka@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>vitalybuka@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>fsamuel@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>fsamuel@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">
  <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">
  <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">
  <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">
  <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>fsamuel@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>fsamuel@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>fsamuel@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>fsamuel@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>fsamuel@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>fsamuel@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>fsamuel@chromium.org</owner>
  <summary>
    Tracks the number of temporary references after each garbage collection
    operation.
  </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="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>kcarattini@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <owner>miguelg@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>kcarattini@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <owner>miguelg@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>kcarattini@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <owner>miguelg@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.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.Image.FetchResult"
    enum="FeedImageFetchResult" expires_after="2019-10-01">
  <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"
    expires_after="2019-10-01">
  <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"
    expires_after="2019-10-01">
  <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.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.
  </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.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.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.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.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 a token fetch completes.
  </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">
  <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>newt@chromium.org</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.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">
  <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>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="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>Please list the metric's owners. Add more owner tags as needed.</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">
  <owner>rockot@chromium.org</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>Please list the metric's owners. Add more owner tags as needed.</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>Please list the metric's owners. Add more owner tags as needed.</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.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.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.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="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.ChecksumStatus" enum="CryptohomeChecksumStatus">
  <owner>dkrahn@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.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>dkrahn@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>dkrahn@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>dkrahn@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>dkrahn@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>dkrahn@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>dkrahn@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>dkrahn@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 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.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>megjablon@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>megjablon@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>megjablon@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>megjablon@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>megjablon@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>megjablon@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.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.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>megjablon@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>megjablon@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>megjablon@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>megjablon@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>megjablon@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="M73">
  <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.IdleLogoutWarningEvent"
    enum="DemoModeIdleLogoutWarningEvent" expires_after="M73">
  <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="M73">
  <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="M73">
  <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="M73">
  <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 is idle
    for a defined period, implying that a user has finished using the device in
    Demo mode, or if and when there have been any app launches between the time
    the last recording occurred and the time 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>shrikant@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>shrikant@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>shrikant@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>shrikant@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>shrikant@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>shrikant@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>kulshin@chromium.org</owner>
  <summary>Records the error returned from CreateFontFace.</summary>
</histogram>

<histogram name="DirectWrite.Fonts.Proxy.Fallback.CacheSize" units="Count">
  <owner>kulshin@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>kulshin@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>kulshin@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>kulshin@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>kulshin@chromium.org</owner>
  <summary>Records the error returned from GetSystemFontCollection.</summary>
</histogram>

<histogram name="DirectWrite.Fonts.Proxy.LastResortFontCount" units="fonts">
  <owner>kulshin@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>kulshin@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>kulshin@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>kulshin@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>kulshin@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.MessageFilterError"
    enum="DirectWriteMessageFilterError">
  <owner>kulshin@chromium.org</owner>
  <summary>
    Errors, if any, encountered by the DirectWrite font proxy message filter.
  </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.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.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>rvargas@chromium.org</owner>
  <summary>The age of the cache's files (wall time).</summary>
</histogram>

<histogram name="DiskCache.2.FilesAge" units="hours">
  <owner>rvargas@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>Please list the metric's owners. Add more owner tags as needed.</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>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The age of the cache's files (wall time). ShaderCache.</summary>
</histogram>

<histogram name="DiskCache.SizeStats2" units="KB">
  <owner>rvargas@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">
  <owner>pauljensen@chromium.org</owner>
  <owner>mef@chromium.org</owner>
  <summary>Time 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>
  <owner>fmeawad@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>
  <owner>fmeawad@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.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>jming@chromium.org</owner>
  <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>jming@chromium.org</owner>
  <owner>xingliu@chromium.org</owner>
  <summary>Types of text files that are downloaded.</summary>
</histogram>

<histogram name="Download.ContentType.Video" enum="DownloadVideoType">
  <owner>jming@chromium.org</owner>
  <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>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</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">
  <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="2019-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>jialiul@chromium.org</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.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">
  <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.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="2019-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="2019-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 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>jialiul@chromium.org</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="2019-01-01">
  <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="2019-01-01">
  <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">
  <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">
  <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">
  <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="2019-01-01">
  <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">
  <owner>joshwoodward@google.com</owner>
  <summary>Result of drive resource metadata database initialization.</summary>
</histogram>

<histogram name="Drive.MetadataDBOpenExistingResult"
    enum="DriveMetadataDBInitStatus">
  <owner>joshwoodward@google.com</owner>
  <summary>
    Result of attempt to open existing drive resource metadata database.
  </summary>
</histogram>

<histogram name="Drive.MetadataDBValidityCheckFailureReason"
    enum="DriveMetadataDBValidityCheckFailureReason">
  <owner>bengold@chromium.org</owner>
  <owner>hashimoto@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">
  <owner>joshwoodward@google.com</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.NumberOfCacheFilesRecoveredAfterDBCorruption">
  <owner>joshwoodward@google.com</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">
  <owner>joshwoodward@google.com</owner>
  <summary>
    Number of hosted documents (spreadsheets etc.) on Drive. Logged when Drive
    is first accessed.
  </summary>
</histogram>

<histogram name="Drive.NumberOfRegularFiles">
  <owner>joshwoodward@google.com</owner>
  <summary>
    Number of regualr files on Drive. Logged when Drive is first accessed.
  </summary>
</histogram>

<histogram name="Drive.NumberOfTotalFiles">
  <owner>joshwoodward@google.com</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">
  <owner>joshwoodward@google.com</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">
  <owner>joshwoodward@google.com</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">
  <owner>joshwoodward@google.com</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">
  <owner>hirono@chromium.org</owner>
  <summary>Total file count contained in a drive batch upload request.</summary>
</histogram>

<histogram name="Drive.TotalFileSizeInBatchUpload" units="KB">
  <owner>hirono@chromium.org</owner>
  <summary>Total file size contained in a drive batch upload request.</summary>
</histogram>

<histogram name="Drive.TransferBlockedOnJobs" units="jobs">
  <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">
  <owner>hirono@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">
  <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">
  <owner>joshwoodward@google.com</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>isherman@google.com</owner>
  <owner>xiaowenx@google.com</owner>
  <owner>xiyuan@google.com</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>isherman@google.com</owner>
  <owner>xiaowenx@google.com</owner>
  <owner>xiyuan@google.com</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>isherman@google.com</owner>
  <owner>tengs@google.com</owner>
  <owner>xiaowenx@google.com</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>isherman@google.com</owner>
  <owner>xiaowenx@google.com</owner>
  <owner>xiyuan@google.com</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>isherman@google.com</owner>
  <owner>tengs@google.com</owner>
  <owner>xiaowenx@google.com</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>tengs@chromium.org</owner>
  <owner>xiaowenx@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>tengs@chromium.org</owner>
  <owner>xiaowenx@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>xiaowenx@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>xiaowenx@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>joshwoodward@google.com</owner>
  <owner>tbarzic@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>joshwoodward@google.com</owner>
  <owner>tengs@chromium.org</owner>
  <owner>isherman@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>isherman@chromium.org</owner>
  <owner>xiaowenx@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>isherman@chromium.org</owner>
  <owner>xiaowenx@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>isherman@chromium.org</owner>
  <owner>xiaowenx@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>isherman@chromium.org</owner>
  <owner>xiaowenx@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>isherman@chromium.org</owner>
  <owner>xiaowenx@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>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>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>isherman@chromium.org</owner>
  <owner>xiaowenx@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>xiaowenx@google.com</owner>
  <owner>xiyuan@google.com</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>joshwoodward@google.com</owner>
  <owner>tengs@chromium.org</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>isherman@chromium.org</owner>
  <owner>xiaowenx@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>hunyadym@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.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>hunyadym@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.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="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">
  <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">
  <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">
  <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">
  <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">
  <owner>xiaoyinh@chromium.org</owner>
  <owner>tbuckley@chromium.org</owner>
  <summary>
    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.DragDrop.Cancel" enum="DragDropEventSource">
  <owner>mfomitchev@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>mfomitchev@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>mfomitchev@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>mfomitchev@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>dtapuska@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: 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.HitTestRecursive" units="microseconds">
  <owner>dtapuska@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: 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.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">
  <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">
  <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.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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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.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">
  <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">
  <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.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>mfomitchev@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>mfomitchev@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>mfomitchev@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.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@chormium.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.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>nparker@chromium.org</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>nparker@chromium.org</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>nparker@chromium.org</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>nparker@chromium.org</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>asargent@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>asargent@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" expires_after="2018-08-30">
  <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">
  <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">
  <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">
  <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>
  <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>
  <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>
  <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>
  <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>
  <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>asargent@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>rockot@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>asargent@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>asargent@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>extensions-core@chromium.org</owner>
  <owner>poromov@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>asargent@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>asargent@chromium.org</owner>
  <summary>Net error results from URLFetcher.</summary>
</histogram>

<histogram name="Extensions.CrxFetchFailureRetryCountGoogleUrl">
  <owner>asargent@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>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>asargent@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>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>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">
  <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.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-02-01">
  <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>asargent@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-02-01">
  <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-08-21">
  <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>asargent@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>mxnguyen@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>mxnguyen@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>mxnguyen@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>mxnguyen@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>mxnguyen@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>mxnguyen@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"
    expires_after="2018-08-30">
  <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>rpaquay@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>rpaquay@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>rpaquay@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>rpaquay@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>rpaquay@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>rpaquay@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>rpaquay@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>rpaquay@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>rpaquay@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>rpaquay@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>rpaquay@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>rpaquay@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-02-01">
  <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-02-01">
  <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@hromium.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>redevlin.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>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). 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>rpaquay@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>rpaquay@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>rpaquay@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>rpaquay@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>rpaquay@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>rpaquay@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>rpaquay@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>rpaquay@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>rpaquay@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>rpaquay@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>rpaquay@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>rpaquay@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>rpaquay@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>asargent@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>asargent@chromium.org</owner>
  <summary>
    Count the number of times a sandboxed extension unpack fails.
  </summary>
</histogram>

<histogram name="Extensions.SandboxUnpackFailureReason"
    enum="ExtensionUnpackFailureReason">
  <owner>asargent@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>asargent@chromium.org</owner>
  <summary>
    Rate at which a CRX file is unpacked in Kilobytes per second.
  </summary>
</histogram>

<histogram name="Extensions.SandboxUnpackRate1To2mB">
  <owner>asargent@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>asargent@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>asargent@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>asargent@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>asargent@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>asargent@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>asargent@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>mxnguyen@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>mxnguyen@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>mxnguyen@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>mxnguyen@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>mxnguyen@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>asargent@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>asargent@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>asargent@chromium.org</owner>
  <summary>
    Count successful CRX installs, grouped by the cause of the install.
  </summary>
</histogram>

<histogram name="Extensions.UnpackSuccessInstallSource"
    enum="ExtensionLocation">
  <owner>asargent@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">
  <owner>Please list the metric's owners. Add more owner tags as needed.</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>mxnguyen@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>mxnguyen@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@chromiumorg</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">
  <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">
  <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"
    expires_after="M69">
  <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">
  <owner>yhirano@chromiumorg</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">
  <owner>yhirano@chromiumorg</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>asargent@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.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.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.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.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">
  <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">
  <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="M76">
  <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">
  <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">
  <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">
  <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">
  <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.DownloadsCount">
  <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@gchromium.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@gchromium.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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <owner>slangley@chromium.org</owner>
  <owner>wiefangsun@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>wiefangsun@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">
  <owner>slangley@chromium.org</owner>
  <owner>wiefangsun@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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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.LoadDownloads" units="ms">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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="M75">
  <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">
  <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">
  <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="2019-12-31">
  <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="2019-12-31">
  <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">
  <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="2019-12-31">
  <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="2019-12-31">
  <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">
  <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="2019-12-31">
  <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="2019-12-31">
  <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">
  <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">
  <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>xiaoyinh@chromium.org</owner>
  <owner>zalcorn@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>xiaoyinh@chromium.org</owner>
  <owner>zalcorn@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>xiaoyinh@chromium.org</owner>
  <owner>zalcorn@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>xiaoyinh@chromium.org</owner>
  <owner>zalcorn@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>xiaoyinh@chromium.org</owner>
  <owner>zalcorn@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>xiaoyinh@chromium.org</owner>
  <owner>zalcorn@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>xiaoyinh@chromium.org</owner>
  <owner>zalcorn@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>xiaoyinh@chromium.org</owner>
  <owner>zalcorn@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>xiaoyinh@chromium.org</owner>
  <owner>zalcorn@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>xiaoyinh@chromium.org</owner>
  <owner>zalcorn@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.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="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>juyik@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>juyik@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>
  <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>juyik@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>juyik@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>juyik@chromium.org</owner>
  <summary>Number of messages in a received GCM data message burst.</summary>
</histogram>

<histogram name="GCM.ReceivedDataMessageIntervalWithinBurst" units="ms">
  <owner>juyik@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>
  <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>juyik@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>juyik@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@chromium.org</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>andrewhayden@chromium.org</owner>
  <owner>dgn@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>andrewhayden@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.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.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.DirectComposition.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.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 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.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>
  <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">
  <owner>jbauman@chromium.org</owner>
  <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>junov@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="M73">
  <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.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>merkulova@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>merkulova@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>merkulova@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="M73">
  <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>brettw@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">
  <owner>calamity@chromium.org</owner>
  <summary>
    The page of the MD History page shown to the user. Logged each time the user
    loads the MD 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>brettw@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>brettw@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>shess@chromium.org</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>shess@chromium.org</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>shess@chromium.org</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>tsergeant@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>shess@chromium.org</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>shess@chromium.org</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>shess@chromium.org</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>shess@chromium.org</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>shess@chromium.org</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>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Net error results from non-restartable cache read errors.</summary>
</histogram>

<histogram name="HttpCache.ReadErrorRestartable" enum="NetErrorCodes">
  <owner>Please list the metric's owners. Add more owner tags as needed.</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.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="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>rvargas@chromium.org</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>dfalcantara@chromium.org</owner>
  <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>dfalcantara@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>dfalcantara@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>dfalcantara@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.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">
  <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>shuchen@chromium.org</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>shuchen@chromium.org</owner>
  <summary>
    The layout type of the virtual keyboard, recorded when backspace is pressed.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.BackwardsMovesPerSwipe"
    units="moves">
  <owner>rsadam@chromium.org</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>rsadam@chromium.org</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>rsadam@chromium.org</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>yhanada@chromium.org</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>shuchen@chromium.org</owner>
  <summary>How long the virtual keyboard was visible.</summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.FocusedByStylus" enum="Boolean">
  <owner>shend@chromium.org</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>girard@chromium.org</owner>
  <summary>Text input events related to gesture typing.</summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.InitLatency" units="ms">
  <owner>shuchen@chromium.org</owner>
  <summary>
    The on-screen keyboard initialization latency in milliseconds.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.Layout" enum="IMEVKLayout">
  <owner>shuchen@chromium.org</owner>
  <summary>
    The layout of the on-screen keyboard. Logged when the specific layout is
    shown.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.LayoutSwitch">
  <owner>shuchen@chromium.org</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>rsadam@chromium.org</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>shend@chromium.org</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>girard@chromium.org</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>rsadam@chromium.org</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>rsadam@chromium.org</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>rsadam@chromium.org</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">
  <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="%">
  <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">
  <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">
  <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">
  <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">
  <owner>zeuthen@chromium.org</owner>
  <summary>
    Errors from update_engine process when running in normal mode.
  </summary>
</histogram>

<histogram name="Installer.OSAgeDays" units="days">
  <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">
  <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">
  <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.RebootToNewPartitionAttempt" units="count">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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.UpdateURLSwitches" units="count">
  <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>juyik@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>juyik@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>beaudoin@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">
  <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">
  <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">
  <owner>hansberry@chromium.org</owner>
  <summary>
    Provides the success rate of starting a Bluetooth discovery session.
  </summary>
</histogram>

<histogram name="InstantTethering.BluetoothDiscoverySessionStopped"
    enum="BooleanSuccess">
  <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">
  <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">
  <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">
  <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">
  <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).

    This metric captures the rough percentage of connections which are
    unsuccessful due to provisioning failure. It is separate from
    InstantTethering.ConnectionToHostResult.SuccessRate 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">
  <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">
  <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 histogram is the background advertisement analog of
    InstantTethering.Performance.ConnectionToHostResult.SuccessRate.
  </summary>
</histogram>

<histogram name="InstantTethering.FeatureState"
    enum="InstantTethering_FeatureState">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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.

    This histogram is the background advertisement analog of
    InstantTethering.Performance.ConnectToHostDuration.Background.
  </summary>
</histogram>

<histogram name="InstantTethering.Performance.ConnectToHotspotDuration"
    units="ms">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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>
  <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>
  <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>
  <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>
  <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>
  <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>
  <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>
  <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>
  <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.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.IPHBubbleDismissalReason" enum="BubbleDismissalReason">
  <owner>gchatz@chromium.org</owner>
  <summary>
    Tracks the reason for why the In Product Help bubble was dismissed.
  </summary>
</histogram>

<histogram name="IOS.MailtoURLRewritten" enum="Boolean">
  <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.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.RestoreNavigationItemTime" 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>gchatz@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">
  <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.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.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>blumberg@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>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>Accept languages.</summary>
</histogram>

<histogram name="LanguageUsage.ApplicationLanguage" enum="LanguageCode"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</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.
  </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>piotrs@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>thildebr@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>timbrown@chromium.org</owner>
  <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>rickyz@chromium.org</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>vitalybuka@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>vitalybuka@chromium.org</owner>
  <summary>Time between detector restarts.</summary>
</histogram>

<histogram name="LocalDiscovery.DetectorTriggerTime" units="ms">
  <owner>noamsml@chromium.org</owner>
  <owner>vitalybuka@chromium.org</owner>
  <summary>Time before detector trigger notifications.</summary>
</histogram>

<histogram name="LocalDiscovery.DevicesPage" enum="DevicesPageEvents">
  <owner>noamsml@chromium.org</owner>
  <owner>vitalybuka@chromium.org</owner>
  <summary>Records events related to devices page.</summary>
</histogram>

<histogram name="LocalDiscovery.FirewallAccessTime" units="ms">
  <owner>noamsml@chromium.org</owner>
  <owner>vitalybuka@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>vitalybuka@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>vitalybuka@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>michaeln@chromium.org</owner>
  <summary>
    Size of the HTML5 LocalStorage DB in KB in the browser-side cache.
  </summary>
</histogram>

<histogram name="LocalStorage.BrowserTimeToPrimeLocalStorage">
  <owner>michaeln@chromium.org</owner>
  <summary>
    Time to load HTML5 LocalStorage into the browser-side cache.
  </summary>
</histogram>

<histogram name="LocalStorage.CommitDelay" units="ms">
  <owner>michaeln@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>michaeln@chromium.org</owner>
  <summary>
    Size of the HTML5 LocalStorage DB in KB in the renderer-side cache.
  </summary>
</histogram>

<histogram name="LocalStorage.RendererTimeToPrimeLocalStorage">
  <owner>michaeln@chromium.org</owner>
  <summary>
    Time to load HTML5 LocalStorage into the renderer-side cache.
  </summary>
</histogram>

<histogram name="LocalStorage.TimeToPrimeLocalStorage">
  <owner>michaeln@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@chromeos.org</owner>
  <summary>Records whether a new user's priority prefs sync timed out.</summary>
</histogram>

<histogram name="Login.NewUserPriorityPrefsSyncTime" units="ms">
  <owner>alemate@chromeos.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 name="MachineLearningService.CpuUsageMilliPercent"
    units="1/1000ths of %" expires_after="2019-03-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.MojoConnectionEvent"
    enum="MachineLearningServiceMojoConnectionEvent" expires_after="2019-03-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-03-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 name="MachineLearningService.PrivateMemoryKb" units="KB"
    expires_after="2019-03-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>pam@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>pam@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>pam@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>bauerb@chromium.org</owner>
  <owner>treib@chromium.org</owner>
  <owner>pam@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>bauerb@chromium.org</owner>
  <owner>treib@chromium.org</owner>
  <owner>pam@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>bauerb@chromium.org</owner>
  <owner>treib@chromium.org</owner>
  <owner>pam@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>bauerb@chromium.org</owner>
  <owner>treib@chromium.org</owner>
  <owner>pam@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>avayvod@chromium.org</owner>
  <owner>mlamouri@chromium.org</owner>
  <owner>zhiqiang@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>timav@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>avayvod@chromium.org</owner>
  <owner>zqzhang@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.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">
  <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-02-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">
  <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 disconituity 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">
  <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">
  <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">
  <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">
  <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">
  <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, 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, 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, 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, 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, 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, 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-02-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-02-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-02-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-02-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-02-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">
  <owner>avayvod@chromium.org</owner>
  <owner>mlamouri@chromium.org</owner>
  <owner>zqzhang@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>scherkus@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.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.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>ajm@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">
  <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>jbauman@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">
  <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 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.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 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" expires_after="2019-01-01">
  <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.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.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.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>avayvod@chromium.org</owner>
  <owner>zqzhang@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>avayvod@chromium.org</owner>
  <owner>mlamouri@chromium.org</owner>
  <owner>zqzhang@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>avayvod@chromium.org</owner>
  <owner>mlamouri@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>avayvod@chromium.org</owner>
  <owner>mlamouri@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>avayvod@chromium.org</owner>
  <owner>mlamouri@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>avayvod@chromium.org</owner>
  <owner>mlamouri@chromium.org</owner>
  <summary>
    Indicate whether the native requestAudioFocus() call was successful.
  </summary>
</histogram>

<histogram name="Media.Session.Stop" enum="MediaSessionActionSource">
  <owner>avayvod@chromium.org</owner>
  <owner>mlamouri@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>avayvod@chromium.org</owner>
  <owner>mlamouri@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>media-dev@chromium.org</owner>
  <owner>zqzhang@chromium.org</owner>
  <summary>
    The number of times user interacts with MediaSession sorted by action type.
  </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">
  <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>scherkus@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>avayvod@chromium.org</owner>
  <owner>mlamouri@chromium.org</owner>
  <owner>zqzhang@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>avayvod@chromium.org</owner>
  <owner>mlamouri@chromium.org</owner>
  <owner>zqzhang@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>avayvod@chromium.org</owner>
  <owner>mlamouri@chromium.org</owner>
  <owner>zqzhang@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>avayvod@chromium.org</owner>
  <owner>mlamouri@chromium.org</owner>
  <owner>zqzhang@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>avayvod@chromium.org</owner>
  <owner>mlamouri@chromium.org</owner>
  <owner>zqzhang@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>avayvod@chromium.org</owner>
  <owner>mlamouri@chromium.org</owner>
  <owner>zqzhang@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>avayvod@chromium.org</owner>
  <owner>mlamouri@chromium.org</owner>
  <owner>zqzhang@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>johnme@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>avayvod@chromium.org</owner>
  <owner>dalecurtis@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>avayvod@chromium.org</owner>
  <owner>dalecurtis@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>avayvod@chromium.org</owner>
  <owner>dalecurtis@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>avayvod@chromium.org</owner>
  <owner>dalecurtis@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.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>grunell@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>scherkus@chromium.org</owner>
  <summary>Video codec used in HTML5 media.</summary>
</histogram>

<histogram name="Media.VideoCodecProfile" enum="VideoCodecProfile">
  <owner>scherkus@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>scherkus@chromium.org</owner>
  <summary>
    Pixel format color range of HTML5 video. Emitted on video load.
  </summary>
</histogram>

<histogram name="Media.VideoDecoderFallback" enum="BooleanDidFallBack">
  <owner>watk@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>zqzhang@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>zqzhang@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>zqzhang@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>zqzhang@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>suderman@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>scherkus@chromium.org</owner>
  <summary>Visible aspect ratio of HTML5 video.</summary>
</histogram>

<histogram name="Media.VideoVisibleWidth">
  <owner>scherkus@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 base="true" name="Media.WebMediaPlayerImpl.Memory" units="KB">
  <owner>servolk@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>imcheng@chromium.org</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>imcheng@chromium.org</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>imcheng@chromium.org</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>imcheng@chromium.org</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>imcheng@chromium.org</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>imcheng@chromium.org</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>imcheng@chromium.org</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>imcheng@chromium.org</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">
  <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">
  <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">
<!-- 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">
<!-- 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>hjd@chromium.org</owner>
  <owner>primiano@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>hjd@chromium.org</owner>
  <owner>primiano@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>hjd@chromium.org</owner>
  <owner>primiano@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">
<!-- 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">
<!-- 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.RendererTimeSinceLastNavigationAtIntervention"
    units="seconds">
  <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.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">
<!-- 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">
<!-- 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 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">
  <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">
  <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@chormium.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>jamescook@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>dskiba@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.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>primiano@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>primiano@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="KB">
  <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.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.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.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.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">
  <owner>erikchen@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    A rough estimate of the private memory footprint of the renderer process.
    Recorded once per process per UMA ping.
  </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">
  <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">
  <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>
  <owner>lliabraa@chromium.org</owner>
  <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>
  <owner>lliabraa@chromium.org</owner>
  <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>gchatz@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.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.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.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>
  <summary>
    Recorded when the omnibox popup is closed. Indicates the duration it was
    open.
  </summary>
</histogram>

<histogram name="MobileOmnibox.PressedClipboardSuggestionAge" units="ms">
  <owner>jif@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>charliema@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>charliema@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>danielpark@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>miguelg@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>rvargas@chromium.org</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>fsamuel@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@chromium.org</owner>
  <summary>The error code returned by NaCl's Chrome plugin.</summary>
</histogram>

<histogram name="NaCl.LoadStatus.Plugin.InstalledApp"
    enum="NaClPluginErrorCode">
  <owner>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@chromium.org</owner>
  <summary>The error code returned by NaCl's sel_ldr.</summary>
</histogram>

<histogram name="NaCl.LoadStatus.SelLdr.InstalledApp"
    enum="NaClSelLdrErrorCode">
  <owner>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@chromium.org</owner>
  <summary>The OS/Architecture of a nexe that was loaded.</summary>
</histogram>

<histogram name="NaCl.Perf.PNaClCache.IsHit" enum="PNaClTranslationCacheEnum">
  <owner>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@chromium.org</owner>
  <summary>The size of the manifest file.</summary>
</histogram>

<histogram name="NaCl.Perf.Size.Nexe" units="KB">
  <owner>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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>sehr@chromium.org</owner>
  <owner>bradnelson@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.CacheFlags" enum="NavigationCacheEnum">
  <owner>clamy@chromium.org</owner>
  <summary>The cache flags set on back-forward navigations.</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.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.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>
  <owner>cbentzel@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>
  <owner>cbentzel@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.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">
  <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">
  <owner>haitaol@chromium.org</owner>
  <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">
  <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 in the form of &quot;Did you mean to go to
    ...&quot;.
  </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>bolian@chromium.org</owner>
  <owner>bengr@google.com</owner>
  <owner>marq@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>xunjieli@chromium.org</owner>
  <summary>Number of bytes received over this stream.</summary>
</histogram>

<histogram name="Net.BidirectionalStream.SentBytes" units="bytes">
  <owner>xunjieli@chromium.org</owner>
  <summary>Number of bytes sent over this stream.</summary>
</histogram>

<histogram name="Net.BidirectionalStream.TimeToReadEnd" units="ms">
  <owner>xunjieli@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>xunjieli@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>xunjieli@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>xunjieli@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>eranm@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>eranm@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">
  <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>eranm@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>eranm@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">
  <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>eranm@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>xunjieli@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>xunjieli@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>bolian@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>bolian@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>bolian@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>bolian@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>bolian@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>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_ViaDataReductionProxy" units="KB">
  <owner>bengr@chromium.org</owner>
  <owner>bolian@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>bolian@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>bolian@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>bolian@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>bolian@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>bolian@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>bolian@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>bolian@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>bolian@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>bolian@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>bolian@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>bolian@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>bolian@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>bolian@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>bolian@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.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>cbentzel@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>cbentzel@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">
  <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">
  <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>xunjieli@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>xunjieli@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>xunjieli@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>xunjieli@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>xunjieli@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>xunjieli@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>xunjieli@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>juliatuttle@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>juliatuttle@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, since it can send
    reports for a fraction of successful requests as well so error rates can be
    calculated.
  </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>Please list the metric's owners. Add more owner tags as needed.</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">
  <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.ProxyAuthRequested.HasConnection">
  <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>cbentzel@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>cbentzel@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.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.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.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.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@chromium.org</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@chromium.org</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>xunjieli@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>xunjieli@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>xunjieli@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>xunjieli@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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <owner>Please list the metric's owners. Add more owner tags as needed.</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">
  <owner>Please list the metric's owners. Add more owner tags as needed.</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.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.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.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@chromium.org</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.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.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"
    expires_after="M74">
  <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="M74">
  <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="M74">
  <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"
    expires_after="M74">
  <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>sfiera@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>sfiera@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>sfiera@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>dgn@chromium.org</owner>
  <owner>finkm@chromium.org</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="M74">
  <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="M74">
  <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="M74">
  <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="M74">
  <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="M74">
  <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="M74">
  <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="M74">
  <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">
  <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>beaudoin@chromium.org</owner>
  <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>beaudoin@chromium.org</owner>
  <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>
  <owner>beaudoin@chromium.org</owner>
  <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>
  <owner>beaudoin@chromium.org</owner>
  <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>
  <owner>beaudoin@chromium.org</owner>
  <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>
  <owner>beaudoin@chromium.org</owner>
  <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>
  <owner>beaudoin@chromium.org</owner>
  <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>
  <owner>beaudoin@chromium.org</owner>
  <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>
  <owner>beaudoin@chromium.org</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.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.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>
  <owner>beaudoin@chromium.org</owner>
  <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>bauerb@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.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>johnme@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>johnme@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>johnme@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>johnme@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>chengx@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>chengx@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>
  <owner>toshikikikuchi@google.com</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>johnme@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.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.
  </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.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">
  <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>miguelg@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">
  <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">
  <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">
  <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">
  <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.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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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>zelidrag@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>zelidrag@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>zelidrag@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>zelidrag@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>zelidrag@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>zelidrag@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>zelidrag@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>zelidrag@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">
  <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>zelidrag@chromium.org</owner>
  <summary>Outcome of Chrome OS GAIA cookie session restore process.</summary>
</histogram>

<histogram name="OAuth2Login.SessionRestoreTimeToFailure" units="ms">
  <owner>zelidrag@chromium.org</owner>
  <summary>How long it takes for the session restore to fail.</summary>
</histogram>

<histogram name="OAuth2Login.SessionRestoreTimeToSuccess" units="ms">
  <owner>zelidrag@chromium.org</owner>
  <summary>
    How long it takes for the session restore to finish succeessfully.
  </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>romax@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>romax@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>romax@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.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="2018-12-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>romax@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>romax@chromium.org</owner>
  <summary>Result of asking storage manager to clear storage.</summary>
</histogram>

<histogram name="OfflinePages.ClearTemporaryPages.BatchSize" units="pages">
  <owner>romax@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>romax@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>romax@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>romax@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>romax@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>romax@chromium.org</owner>
  <summary>Result of persistent page consistency check.</summary>
</histogram>

<histogram
    name="OfflinePages.ConsistencyCheck.Temporary.PagesMissingArchiveFileCount"
    units="pages">
  <owner>romax@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>romax@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>romax@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>romax@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="2018-12-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 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>romax@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">
  <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">
  <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>dfalcantara@chromium.org</owner>
  <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>romax@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>romax@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">
  <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>romax@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>romax@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>romax@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>romax@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>romax@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>romax@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>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>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">
  <owner>asvitkine@chromium.org</owner>
  <owner>mpearson@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).

    It's also possible to get insight into (b) via the UMA Task Profiler
    dashboard by looking at &quot;average queue time&quot; of the task
    DisplayScheduler::ScheduleBeginFrameDeadline.

    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>
  <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>
  <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>
  <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>
  <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>
  <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>
  <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>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="M74">
  <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.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>
  <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>
  <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>lpromero@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>
  <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>
  <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>
  <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>
  <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>
  <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>
  <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>
  <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>
  <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>
  <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>
  <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>
  <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>
  <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>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>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>kiyun@chromium.org</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>
  <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>
  <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>
  <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>
  <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>
  <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>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>
  <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>
  <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>
  <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>
  <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>lpy@chromium.org</owner>
  <owner>mpearson@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>lpy@chromium.org</owner>
  <owner>mpearson@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>lpy@chromium.org</owner>
  <owner>mpearson@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>lpy@chromium.org</owner>
  <owner>mpearson@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>lpy@chromium.org</owner>
  <owner>mpearson@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@google.com</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@google.com</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>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>lpy@chromium.org</owner>
  <owner>mpearson@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>lpy@chromium.org</owner>
  <owner>mpearson@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>lpy@chromium.org</owner>
  <owner>mpearson@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>lpy@chromium.org</owner>
  <owner>mpearson@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>lpy@chromium.org</owner>
  <owner>mpearson@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>
  <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>
  <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>
  <summary>
    Counts about the number of suggest requests the omnibox sent, invalidated,
    and replies received.
  </summary>
</histogram>

<histogram name="Omnibox.TypedLength" units="characters">
  <owner>mpearson@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>
  <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>
  <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>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>
  <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>
  <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>
  <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>
  <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>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>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>merkulova@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.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>rsgingerrs@chromium.org</owner>
  <owner>gregbenson@chromium.org</owner>
  <summary>The number of recommended apps.</summary>
</histogram>

<histogram name="OOBE.RecommendApps.Fetcher.DownloadTime" units="ms"
    expires_after="2019-08-30">
  <owner>rsgingerrs@chromium.org</owner>
  <owner>gregbenson@chromium.org</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>rsgingerrs@chromium.org</owner>
  <owner>gregbenson@chromium.org</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>rsgingerrs@chromium.org</owner>
  <owner>gregbenson@chromium.org</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>rsgingerrs@chromium.org</owner>
  <owner>gregbenson@chromium.org</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>rsgingerrs@chromium.org</owner>
  <owner>gregbenson@chromium.org</owner>
  <summary>The user action on the recommend apps screen.</summary>
</histogram>

<histogram name="OOBE.RecommendApps.Screen.SelectedAppCount"
    expires_after="2019-08-30">
  <owner>rsgingerrs@chromium.org</owner>
  <owner>gregbenson@chromium.org</owner>
  <summary>The number of apps user selected.</summary>
</histogram>

<histogram name="OOBE.RecommendApps.Screen.SelectedRecommendedPercentage"
    units="%" expires_after="2019-08-30">
  <owner>rsgingerrs@chromium.org</owner>
  <owner>gregbenson@chromium.org</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>rsgingerrs@chromium.org</owner>
  <owner>gregbenson@chromium.org</owner>
  <summary>Whether the reocmmend apps screen is shown.</summary>
</histogram>

<histogram name="OOBE.StepCompletionTime" units="ms">
  <owner>merkulova@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.EncryptionKeyOverwritingPreventions">
  <obsolete>
    Obsolete as of Chrome 72.
  </obsolete>
  <owner>tsabolcec@google.com</owner>
  <owner>vasilii@chromium.com</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.GetEncryptionKeyAction" enum="GetEncryptionKeyAction">
  <owner>cfroussios@chromium.org</owner>
  <owner>vasilii@chromium.com</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">
  <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.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 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.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>mfomitchev@chromium.org</owner>
  <summary>
    Overscroll gestures that were aborted before they were completed.
  </summary>
</histogram>

<histogram name="Overscroll.Cancelled3" enum="OverscrollNavigationType">
  <owner>mfomitchev@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>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.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>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="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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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 name="PageLoad.Bytes.AdFrames.Aggregate.Network" units="KB">
  <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="%">
  <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">
  <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">
  <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="%">
  <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">
  <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">
  <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="%">
  <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">
  <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="%">
  <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">
  <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.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 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">
  <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">
  <owner>jkarlin@chromium.org</owner>
  <owner>johnidel@chromium.org</owner>
  <summary>
    Total number of 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 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.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) KiloBytes 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.Bytes.Network" 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. Recorded when the page load
    is terminated.
  </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) KiloBytes loaded via the
    browser process for a page load. Recorded when the page load is terminated.
  </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.NavigationToFirstMeaningfulPaint"
    units="ms">
  <owner>ksakamoto@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.
  </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 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">
  <owner>tdresser@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.
  </summary>
</histogram>

<histogram name="PageLoad.InteractiveTiming.FirstInputTimestamp" units="ms">
  <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.InputDelay" units="ms">
  <owner>tdresser@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.
  </summary>
</histogram>

<histogram name="PageLoad.InteractiveTiming.InputTimestamp" units="ms">
  <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.LongestInputDelay" units="ms">
  <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.LongestInputTimestamp" units="ms">
  <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.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="2018-12-31">
  <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">
  <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">
  <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">
  <owner>speed-metrics-dev@chromium.org</owner>
  <summary>
    The time from navigation start to first &quot;contentful&quot; paint.
  </summary>
</histogram>

<histogram name="PageLoad.PaintTiming.NavigationToFirstImagePaint" units="ms">
  <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">
  <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.
  </summary>
</histogram>

<histogram name="PageLoad.PaintTiming.NavigationToFirstTextPaint" units="ms">
  <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">
  <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>fmeawad@chromium.org</owner>
  <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>romax@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>romax@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>romax@chromium.org</owner>
  <summary>
    Total number of CSS elements in the main frame for serialization.
  </summary>
</histogram>

<histogram name="PageSerialization.ProblemDetection.TotalImageCount">
  <owner>romax@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>thildebr@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>thildebr@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>gcasto@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>gcasto@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">
  <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">
  <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="M75">
  <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.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>tsabolcec@google.com</owner>
  <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>tsabolcec@google.com</owner>
  <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>tsabolcec@google.com</owner>
  <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.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.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.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>xunlu@chromium.org</owner>
  <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>xunlu@chromium.org</owner>
  <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">
  <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>nparker@chromium.org</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>bdea@chromium.org</owner>
  <owner>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</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-02-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.TimeIntoEncrypted"
    expires_after="2019-02-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-02-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>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</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>nparker@chromium.org</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>nparker@chromium.org</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>nparker@chromium.org</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>nparker@chromium.org</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>tsabolcec@google.com</owner>
  <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>jialiul@chromium.org</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>jialiul@chromium.org</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>jialiul@chromium.org</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.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-03-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-03-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-03-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-03-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-03-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="M74">
  <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">
  <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>nparker@chromium.org</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>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</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>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</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>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</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" expires_after="M73">
  <owner>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</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>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</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>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</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>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</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>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</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>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</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>drubery@chromium.org</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>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</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>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</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>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</owner>
  <summary>
    Verdict types returned by Safe Browsing server for password reuse events.
  </summary>
</histogram>

<histogram name="PasswordProtection.PasswordReuseSyncAccountType"
    enum="PasswordProtectionSyncAccountType">
  <owner>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</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>drubery@chromium.org</owner>
  <owner>jialiul@chromium.org</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>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</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>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</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>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</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>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</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>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</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="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>tsergeant@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>sehr@chromium.org</owner>
  <owner>bradnelson@chromium.org</owner>
  <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>jww@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>jww@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="Permissions.Action" enum="PermissionAction">
  <owner>dominickn@chromium.org</owner>
  <owner>kcarattini@chromium.org</owner>
  <owner>miguelg@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>kcarattini@chromium.org</owner>
  <owner>miguelg@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>kcarattini@chromium.org</owner>
  <owner>miguelg@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="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">
  <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.MeminfoMemFreeDerived">
  <owner>halliwell@chromium.org</owner>
  <summary>
    free + buffers + cache memory in Mbytes on Cast devices, capped at 500.
  </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>dkrahn@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>
  <owner>bccheng@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>
  <owner>bccheng@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.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.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.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.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.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.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>dkrahn@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>dkrahn@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>dkrahn@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.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.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>kdsilva@google.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>bauerb@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>
  <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>samueltan@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>samueltan@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>samueltan@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>samueltan@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.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">
  <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>megjablon@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.InfoBarAction" enum="PreviewsInfoBarAction">
  <owner>bengr@chromium.org</owner>
  <owner>megjablon@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 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">
  <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">
  <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 name="Previews.ServerLitePage.ReportedNavigationRestartPenalty"
    units="ms">
  <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.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">
  <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="PrinterService.PrinterServiceEvent"
    enum="PrinterServiceEventType">
  <owner>vitalybuka@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>vitalybuka@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>vitalybuka@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>vitalybuka@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>vitalybuka@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>vitalybuka@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>vitalybuka@chromium.org</owner>
  <summary>
    Count the number of requests received to show the manage printers dialog.
  </summary>
</histogram>

<histogram name="PrintPreview.NumberOfPrinters">
  <owner>vitalybuka@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>vitalybuka@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>vitalybuka@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>vitalybuka@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.PrintToPDF">
  <owner>vitalybuka@chromium.org</owner>
  <summary>
    The final page count (after page selection) of documents printed to PDF.
  </summary>
</histogram>

<histogram name="PrintPreview.PageCount.PrintToPrinter">
  <owner>vitalybuka@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>vitalybuka@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>vitalybuka@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>vitalybuka@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>vitalybuka@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>vitalybuka@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>alekseys@chromium.org</owner>
  <owner>vitalybuka@chromium.org</owner>
  <summary>
    Actions performed by the user interacting with print settings UI elements.
  </summary>
</histogram>

<histogram name="PrintPreview.RegeneratePreviewRequest.BeforeCancel">
  <owner>vitalybuka@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>vitalybuka@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>vitalybuka@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>vitalybuka@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>vitalybuka@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>vitalybuka@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>vitalybuka@chromium.org</owner>
  <summary>Time taken to render each PDF page for print preview.</summary>
</histogram>

<histogram name="PrintPreview.RenderToPDFTime" units="ms">
  <owner>vitalybuka@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>vitalybuka@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="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>shrikant@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>bcwhite@chromium.org</owner>
  <owner>rlp@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>rlp@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>pam@chromium.org</owner>
  <owner>rlp@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>pam@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>pam@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>mlerman@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>mlerman@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>mlerman@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>rlp@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>bcwhite@chromium.org</owner>
  <owner>rlp@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>mlerman@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>pam@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>bcwhite@chromium.org</owner>
  <owner>rlp@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>bcwhite@chromium.org</owner>
  <owner>rlp@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>bcwhite@chromium.org</owner>
  <owner>rlp@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>mlerman@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>bcwhite@chromium.org</owner>
  <owner>rlp@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>bcwhite@chromium.org</owner>
  <owner>rlp@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>mlerman@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>mlerman@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>bcwhite@chromium.org</owner>
  <owner>rlp@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>pam@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">
  <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">
  <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">
  <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">
  <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">
  <owner>rpop@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>mlerman@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>rlp@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>thildebr@chromium.org</owner>
  <summary>Whether a ProtoDB Destroy call was successful or not.</summary>
</histogram>

<histogram name="ProtoDB.GetErrorStatus" enum="LevelDBStatus">
  <owner>thildebr@chromium.org</owner>
  <summary>
    The LevelDB Status returned from a failed ProtoDatabase Get call.
  </summary>
</histogram>

<histogram name="ProtoDB.GetFound" enum="Boolean">
  <owner>thildebr@chromium.org</owner>
  <summary>Whether a ProtoDB Get call found what was requested.</summary>
</histogram>

<histogram name="ProtoDB.GetSuccess" enum="BooleanSuccess">
  <owner>thildebr@chromium.org</owner>
  <summary>Whether a ProtoDB Get call was successful or not.</summary>
</histogram>

<histogram name="ProtoDB.InitStatus" enum="LevelDBStatus">
  <owner>thildebr@chromium.org</owner>
  <summary>The LevelDB Status from a ProtoDatabase Init call.</summary>
</histogram>

<histogram name="ProtoDB.LoadEntriesSuccess" enum="BooleanSuccess">
  <owner>thildebr@chromium.org</owner>
  <summary>Whether a ProtoDB LoadEntries call was successful or not.</summary>
</histogram>

<histogram name="ProtoDB.LoadKeysAndEntriesSuccess" enum="BooleanSuccess">
  <owner>thildebr@chromium.org</owner>
  <summary>
    Whether a ProtoDB LoadKeysAndEntries call was successful or not.
  </summary>
</histogram>

<histogram name="ProtoDB.LoadKeysSuccess" enum="BooleanSuccess">
  <owner>thildebr@chromium.org</owner>
  <summary>Whether a ProtoDB LoadKeys call was successful or not.</summary>
</histogram>

<histogram name="ProtoDB.UpdateErrorStatus" enum="LevelDBStatus">
  <owner>thildebr@chromium.org</owner>
  <summary>
    The LevelDB Status returned from a failed Protodatabase UpdateEntries call.
  </summary>
</histogram>

<histogram name="ProtoDB.UpdateSuccess" enum="BooleanSuccess">
  <owner>thildebr@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>johnme@google.com</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>johnme@google.com</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>johnme@google.com</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>johnme@google.com</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>dgn@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>johnme@google.com</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>johnme@google.com</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>johnme@google.com</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>johnme@google.com</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>johnme@google.com</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>johnme@google.com</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>michaeln@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>michaeln@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>michaeln@chromium.org</owner>
  <summary>
    Amount of free disk space for the storage directory. Logged at irregular
    intervals.
  </summary>
</histogram>

<histogram name="Quota.DaysBetweenRepeatedOriginEvictions">
  <owner>calamity@chromium.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>michaeln@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>tzik@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"
    expires_after="2018-08-30">
  <owner>tzik@chromium.org</owner>
  <summary>
    Number of errors on evicting origin by QuotaTemporaryStorageEvictor in an
    hour.
  </summary>
</histogram>

<histogram name="Quota.ErrorsOnGettingUsageAndQuotaPerHour"
    expires_after="2018-08-30">
  <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>tzik@chromium.org</owner>
  <summary>
    Amount of usage used by evicted origins in an eviction round.
  </summary>
</histogram>

<histogram name="Quota.EvictedOriginAccessCount">
  <owner>calamity@chromium.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>calamity@chromium.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>tzik@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>tzik@chromium.org</owner>
  <summary>Number of eviction rounds in an hour.</summary>
</histogram>

<histogram name="Quota.FreeDiskSpaceForProfile" units="MB">
  <obsolete/>
  <owner>tzik@chromium.org</owner>
  <summary>Amount of free disk space for profile directory.</summary>
</histogram>

<histogram name="Quota.GlobalTemporaryPoolSize" units="MB">
  <owner>michaeln@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>tzik@chromium.org</owner>
  <summary>Global usage of persistent storage.</summary>
</histogram>

<histogram name="Quota.GlobalUsageOfTemporaryStorage" units="MB">
  <owner>tzik@chromium.org</owner>
  <summary>Global usage of temporary storage.</summary>
</histogram>

<histogram name="Quota.InitialTemporaryGlobalStorageQuota" units="MB">
  <obsolete/>
  <owner>tzik@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>tzik@chromium.org</owner>
  <summary>Number of evicted origins per round.</summary>
</histogram>

<histogram name="Quota.NumberOfPersistentStorageOrigins"
    expires_after="2018-08-30">
  <owner>tzik@chromium.org</owner>
  <summary>Number of origins using persistent storage.</summary>
</histogram>

<histogram name="Quota.NumberOfProtectedPersistentStorageOrigins"
    expires_after="2018-08-30">
  <owner>tzik@chromium.org</owner>
  <summary>Number of protected origins using persistent storage.</summary>
</histogram>

<histogram name="Quota.NumberOfProtectedTemporaryStorageOrigins"
    expires_after="2018-08-30">
  <owner>tzik@chromium.org</owner>
  <summary>Number of protected origins using temporary storage.</summary>
</histogram>

<histogram name="Quota.NumberOfTemporaryStorageOrigins"
    expires_after="2018-08-30">
  <owner>tzik@chromium.org</owner>
  <summary>Number of origins using temporary storage.</summary>
</histogram>

<histogram name="Quota.NumberOfUnlimitedPersistentStorageOrigins"
    expires_after="2018-08-30">
  <owner>tzik@chromium.org</owner>
  <summary>Number of unlimited origins using persistent storage.</summary>
</histogram>

<histogram name="Quota.NumberOfUnlimitedTemporaryStorageOrigins"
    expires_after="2018-08-30">
  <owner>tzik@chromium.org</owner>
  <summary>Number of unlimited origins using temporary storage.</summary>
</histogram>

<histogram name="Quota.OSAccomodationDelta" units="MB">
  <owner>michaeln@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>michaeln@chromium.org</owner>
  <summary>
    Percentage of the storage device that is free. Logged at irregular
    intervals.
  </summary>
</histogram>

<histogram name="Quota.PercentUsedByOrigin" units="%">
  <owner>michaeln@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>michaeln@chromium.org</owner>
  <summary>
    Percentage of the storage device that ia being use for temporary storage.
    Logged at irregular intervals.
  </summary>
</histogram>

<histogram name="Quota.QuotaForOrigin" units="MB">
  <owner>michaeln@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>tzik@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>tzik@chromium.org</owner>
  <summary>Time between two consecutive active eviction rounds.</summary>
</histogram>

<histogram name="Quota.TimeSpentToAEvictionRound" expires_after="2018-08-30">
  <owner>tzik@chromium.org</owner>
  <summary>Time spent to an eviction round.</summary>
</histogram>

<histogram name="Quota.TimeToGetSettings" units="ms">
  <owner>michaeln@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>michaeln@chromium.org</owner>
  <summary>
    Total disk space for the storage directory. Logged at irregular intervals.
  </summary>
</histogram>

<histogram name="Quota.UsageOverageOfTemporaryGlobalStorage" units="MB"
    expires_after="2018-08-30">
  <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>gmabard@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">
  <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">
  <owner>wiltzius@chromium.org</owner>
  <summary>Time between frames when GPU acceleration is active.</summary>
</histogram>

<histogram name="Renderer4.AccelRootPaintDurationMS">
  <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">
  <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">
  <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">
  <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">
  <owner>wiltzius@chromium.org</owner>
  <summary>TBD</summary>
</histogram>

<histogram name="Renderer4.BeginToFinishDoc">
  <owner>wiltzius@chromium.org</owner>
  <summary>TBD</summary>
</histogram>

<histogram name="Renderer4.BeginToFirstPaint" units="ms">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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>alokp@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>
  <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>alokp@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>alokp@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">
  <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">
  <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">
  <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">
  <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">
  <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>wiltzius@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">
  <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">
  <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>
  <owner>bradnelson@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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <owner>wiltzius@chromium.org</owner>
  <summary>Time to capture a renderer thumbnail.</summary>
</histogram>

<histogram name="Renderer4.tileCountCulled_Upload" units="NormalizedTiles">
  <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">
  <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>
  <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.

    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>vitalybuka@chromium.org</owner>
  <summary>Count of renderer view context menu items shown.</summary>
</histogram>

<histogram name="RenderViewContextMenu.Used" enum="RenderViewContextMenuItem">
  <owner>vitalybuka@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">
  <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">
  <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">
  <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.NumDelayableRequestsInFlightAtStart.NonDelayable"
    units="requests">
  <owner>devdeepray@chromium.org</owner>
  <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="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.TokenFetchStatus"
    enum="GoogleServiceAuthError">
  <owner>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</owner>
  <summary>
    Records the service error of refreshing OAuth2 access token during fetching
    the user's advanced protection status.
  </summary>
</histogram>

<histogram name="SafeBrowsing.ContentsSize.Height" units="DIPs"
    expires_after="M73">
  <owner>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</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="M73">
  <owner>jialiul@chromium.org</owner>
  <owner>nparker@chromium.org</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>nparker@chromium.org</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>nparker@chromium.org</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>nparker@chromium.org</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>nparker@chromium.org</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>nparker@chromium.org</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>nparker@chromium.org</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="M73">
  <owner>drubery@chromium.org</owner>
  <owner>nparker@chromium.org</owner>
  <summary>Records the default font size on user startup.</summary>
</histogram>

<histogram name="SafeBrowsing.FontSize.DefaultFixed" units="pts"
    expires_after="M73">
  <owner>drubery@chromium.org</owner>
  <owner>nparker@chromium.org</owner>
  <summary>Records the default fixed font size on user startup.</summary>
</histogram>

<histogram name="SafeBrowsing.FontSize.Minimum" units="pts" expires_after="M73">
  <owner>drubery@chromium.org</owner>
  <owner>nparker@chromium.org</owner>
  <summary>Records the minimum font size on user startup.</summary>
</histogram>

<histogram name="SafeBrowsing.FontSize.MinimumLogical" units="pts"
    expires_after="M73">
  <owner>drubery@chromium.org</owner>
  <owner>nparker@chromium.org</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>krstnmnlsn@chromium.org</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>jialiul@chromium.org</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>jialiul@chromium.org</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>nparker@chromium.org</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>vakh@chromium.org</owner>
  <summary>
    Track the parsing results of a status 200 GetV4Update request.
  </summary>
</histogram>

<histogram name="SafeBrowsing.Pref.Extended" enum="BooleanEnabled">
  <owner>nparker@chromium.org</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>nparker@chromium.org</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>jialiul@chromium.org</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>jialiul@chromium.org</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>jialiul@chromium.org</owner>
  <summary>
    The length of referrer URL chain we get from referrer attribution. This is
    incremented 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>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>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>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>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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@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.V4GetHashCheckResult"
    enum="SafeBrowsingV4GetHashCheckResult">
  <obsolete>
    Replaced by SafeBrowsing.V4GetHash.Check.Result.
  </obsolete>
  <owner>kcarattini@chromium.org</owner>
  <owner>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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">
  <owner>csharrison@chromium.org</owner>
  <owner>vakh@chromium.org</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.V4MergeUpdateTime" units="ms">
  <obsolete>
    Replaced by SafeBrowsing.V4*.MergeUpdate.Time.
  </obsolete>
  <owner>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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.V4StoreRead.Result"
    enum="SafeBrowsingV4StoreReadResult">
  <owner>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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">
  <owner>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</owner>
  <summary>
    Track the parsing results of a status 200 GetV4Update request.
  </summary>
</histogram>

<histogram name="SafeBrowsing.V4Update.ResponseSizeKB" units="KB">
  <owner>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</owner>
  <summary>
    The time it takes for SafeBrowsing to check hash of a download file.
  </summary>
</histogram>

<histogram name="SB2.DownloadUrlCheckDuration" units="ms">
  <owner>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</owner>
  <summary>Time to store one of the PrefixSet files.</summary>
</histogram>

<histogram name="SB2.RemoteCall.CanCheckUrl" enum="BooleanCanCheckUrl">
  <owner>nparker@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>nparker@chromium.org</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>nparker@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>nparker@chromium.org</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>nparker@chromium.org</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>nparker@chromium.org</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>nparker@chromium.org</owner>
  <summary>
    Resource types of resources that were inspected by Safe Browsing in the
    SafeBrowsingResourceThrottle.
  </summary>
</histogram>

<histogram name="SB2.ResourceTypes2" enum="ContentResourceType2">
  <owner>nparker@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>nparker@chromium.org</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>nparker@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>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>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>jialiul@chromium.org</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>nparker@chromium.org</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>nparker@chromium.org</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>nparker@chromium.org</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>nparker@chromium.org</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>nparker@chromium.org</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>jialiul@chromium.org</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>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>jialiul@chromium.org</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>jialiul@chromium.org</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>jialiul@chromium.org</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>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>mattm@chromium.org</owner>
  <summary>
    The net error code for all CheckClientDownloadRequest URLFetchers.
  </summary>
</histogram>

<histogram name="SBClientDownload.DownloadRequestNetworkDuration" units="ms">
  <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>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>mattm@chromium.org</owner>
  <summary>
    The size of the upload data for CheckClientDownloadRequest URLFetchers.
  </summary>
</histogram>

<histogram name="SBClientDownload.DownloadRequestResponseCode"
    enum="HttpResponseCode">
  <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>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>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>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>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>vakh@chromium.org</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>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>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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>vakh@chromium.org</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>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>jialiul@chromium.org</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>nparker@chromium.org</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">
  <owner>jialiul@chromium.org</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.ZipFileHasArchiveButNoExecutable"
    enum="Boolean">
  <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>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.ZipFileSuccess" enum="BooleanSuccess">
  <owner>nparker@chromium.org</owner>
  <summary>
    For each zip file analyzed by the SafeBrowsing download service, records if
    the unpacking was 100% successful.
  </summary>
</histogram>

<histogram name="SBClientMalware.ClassificationStart" enum="BooleanHit">
  <owner>noelutz@chromium.org</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>noelutz@chromium.org</owner>
  <summary>
    The net error code for all ClientMalwareRequest URLFetchers.
  </summary>
</histogram>

<histogram name="SBClientMalware.IPBlacklistRequestPayloadSize" units="bytes">
  <owner>noelutz@chromium.org</owner>
  <summary>
    The size of the upload data for ClientMalwareRequest URLFetchers.
  </summary>
</histogram>

<histogram name="SBClientMalware.IPBlacklistRequestResponseCode"
    enum="HttpResponseCode">
  <owner>noelutz@chromium.org</owner>
  <summary>
    For ClientMalwareRequest URLFetchers with successful status, the HTTP
    response code that was received.
  </summary>
</histogram>

<histogram name="SBClientMalware.PreClassificationCheckFail"
    enum="SBClientDetectionPreClassificationCheckFail">
  <owner>noelutz@chromium.org</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>jialiul@chromium.org</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>noelutz@chromium.org</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>jialiul@chromium.org</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>nparker@chromium.org</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>noelutz@chromium.org</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>jialiul@chromium.org</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>nparker@chromium.org</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>nparker@chromium.org</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>noelutz@chromium.org</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>noelutz@chromium.org</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>noelutz@chromium.org</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>noelutz@chromium.org</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>noelutz@chromium.org</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>jialiul@chromium.org</owner>
  <summary>
    The counts for phishing verdicts given by server side model.
  </summary>
</histogram>

<histogram name="SBClientPhishing.SkipClassificationReason"
    enum="SBClientPhishingSkipClassificationReason">
  <owner>jialiul@chromium.org</owner>
  <summary>
    The counts for various reasons why a phishing classification is skipped.
  </summary>
</histogram>

<histogram name="SBClientPhishing.TermFeatureBreakIterError">
  <owner>noelutz@chromium.org</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>noelutz@chromium.org</owner>
  <summary>
    The time that an individual chunk of term feature extraction work took.
  </summary>
</histogram>

<histogram name="SBClientPhishing.TermFeatureIterations">
  <owner>noelutz@chromium.org</owner>
  <summary>
    The number of iterations that the term feature extractor took to finish.
  </summary>
</histogram>

<histogram name="SBClientPhishing.TermFeatureTimeout">
  <owner>noelutz@chromium.org</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>noelutz@chromium.org</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>noelutz@chromium.org</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>noelutz@chromium.org</owner>
  <summary>
    The time taken to extract URL features for the phishing classifier.
  </summary>
</histogram>

<histogram name="SBDownloadFeedback.Activations" enum="DownloadItem.DangerType">
  <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>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>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>jialiul@chromium.org</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>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>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>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>nparker@chromium.org</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>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>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.

    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>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.

    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>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. 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>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.

    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>brianderson@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>brianderson@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>brianderson@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>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.Renderer.BeginMainFrameIntervalCritical2"
    units="microseconds">
  <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.Renderer.BeginMainFrameIntervalNotCritical2"
    units="microseconds">
  <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.Renderer.BeginMainFrameQueueDurationNotCritical2"
    units="microseconds">
  <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.Renderer.CommitInterval2" units="microseconds">
  <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.Renderer.DrawInterval2" units="microseconds">
  <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.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>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.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>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.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>brianderson@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.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>hamelphi@google.com</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>hamelphi@google.com</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>hamelphi@google.com</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>hamelphi@google.com</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>hamelphi@google.com</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>pedrosimonetti@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>joaodasilva@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>vadimt@chromium.org</owner>
  <summary>Time between showing and hiding the answer card.</summary>
</histogram>

<histogram name="SearchAnswer.LoadingTime" units="ms">
  <owner>vadimt@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>vadimt@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>vadimt@chromium.org</owner>
  <summary>Result of a answer server request.</summary>
</histogram>

<histogram name="SearchAnswer.ResizeAfterLoadTime" units="ms">
  <owner>vadimt@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.HTTPBad.NavigationStartedAfterUserWarnedAboutSensitiveInput"
    units="ms">
  <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">
  <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">
  <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">
  <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>
  <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>jeremyarcher@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>jeremyarcher@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" 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">
  <obsolete>
    Deprecated 2018-11 in favor of
    ServiceWorker.LoadTiming.Subresource.ForwardServiceWorkerToWorkerReady2.
  </obsolete>
  <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.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 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" 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>johnme@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>johnme@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>jeremyarcher@google.com</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="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.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">
  <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>michaeln@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 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">
  <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">
  <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>bzanotti@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>mlerman@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>mlerman@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>mlerman@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>mlerman@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>mlerman@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>mlerman@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>mlerman@chromium.org</owner>
  <summary>
    Reason fetching an OAuth2 Token failed. Available on all OSes.
  </summary>
</histogram>

<histogram name="Signin.OAuth2TokenGetRetry" enum="GoogleServiceAuthError">
  <owner>mlerman@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>mlerman@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>mlerman@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>mlerman@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>mlerman@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>mlerman@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>mlerman@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>mlerman@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>mlerman@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>mlerman@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>mlerman@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">
  <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">
  <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">
  <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">
  <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.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.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 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.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.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.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">
  <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.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="2018-12-31">
  <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="2018-12-31">
  <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>nick@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>nick@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>nick@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>nick@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.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.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.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.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.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.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.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.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>nick@chromium.org</owner>
  <summary>
    The count of all RenderFrameProxyHosts. Recorded once per UMA ping.
  </summary>
</histogram>

<histogram name="SiteIsolation.ProxyCountPerBrowsingInstance">
  <owner>nick@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="2018-12-11">
  <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.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.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.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.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>
  <owner>rlp@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">
  <owner>shess@chromium.org</owner>
  <summary>
    Record times for INSERT/UPDATE/DELETE statements run outside of an explicit
    transaction.
  </summary>
</histogram>

<histogram name="Sqlite.CloseFailure" enum="SqliteErrorCode">
  <owner>shess@chromium.org</owner>
  <summary>Error which prevented database close.</summary>
</histogram>

<histogram name="Sqlite.CommitTime" units="ms">
  <owner>shess@chromium.org</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>shess@chromium.org</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>shess@chromium.org</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>shess@chromium.org</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>shess@chromium.org</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>shess@chromium.org</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>shess@chromium.org</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>shess@chromium.org</owner>
  <summary>
    Time used to migrate History database schema to a new version.
  </summary>
</histogram>

<histogram name="Sqlite.OpenFailure" enum="SqliteErrorCode">
  <owner>shess@chromium.org</owner>
  <summary>Error which prevented database open.</summary>
</histogram>

<histogram name="Sqlite.OpenProbeFailure" enum="SqliteErrorCode">
  <owner>shess@chromium.org</owner>
  <summary>Error from first read of the database.</summary>
</histogram>

<histogram name="Sqlite.QueryTime" units="ms">
  <owner>shess@chromium.org</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>shess@chromium.org</owner>
  <summary>Errors attempting to Raze() database.</summary>
</histogram>

<histogram name="Sqlite.RazeDatabase2" enum="SqliteErrorCode">
  <owner>shess@chromium.org</owner>
  <summary>Errors on second attempt to Raze() database.</summary>
</histogram>

<histogram name="Sqlite.RazeDatabaseTruncate" enum="SqliteErrorCode">
  <owner>shess@chromium.org</owner>
  <summary>Errors truncating database for Raze().</summary>
</histogram>

<histogram name="Sqlite.RecoveryAttachError" enum="SqliteErrorCode">
  <owner>shess@chromium.org</owner>
  <summary>
    SQLite error code from failed ATTACH in sql::Recovery::Init().
  </summary>
</histogram>

<histogram name="Sqlite.RecoveryEvents" enum="SqliteRecoveryEventEnum">
  <owner>shess@chromium.org</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>shess@chromium.org</owner>
  <summary>Error from sqlite3_backup_init() in sql::Recovery.</summary>
</histogram>

<histogram name="Sqlite.RecoveryStep" enum="SqliteErrorCode">
  <owner>shess@chromium.org</owner>
  <summary>Error from sqlite3_backup_step() in sql::Recovery.</summary>
</histogram>

<histogram name="Sqlite.SizeKB" units="Kb">
  <owner>peria@chromium.org</owner>
  <owner>shess@chromium.org</owner>
  <summary>Size in kilobytes of pre-existing database at startup.</summary>
</histogram>

<histogram name="Sqlite.Stats" enum="SqliteStatsEnum">
  <owner>shess@chromium.org</owner>
  <summary>Stats for different API calls in sql/.</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">
  <owner>shess@chromium.org</owner>
  <summary>
    Record times for statements which could update the database file. Includes
    commit and autocommit time.
  </summary>
</histogram>

<histogram name="Sqlite.Version">
  <owner>shess@chromium.org</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="M74">
  <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>
  <owner>nick@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>manzagop@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>manzagop@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>manzagop@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>lpromero@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.Goog_Related" units="%">
  <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="%">
  <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="%">
  <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="%">
  <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.LaunchLocation" enum="StarsLaunchLocation">
  <owner>ianwen@chromium.org</owner>
  <summary>Logs a UI location from which a bookmark is launched.</summary>
</histogram>

<histogram name="Stars.No_Images_Snippets" units="%">
  <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="%">
  <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="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>johnme@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">
  <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">
  <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">
  <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.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">
  <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">
  <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">
  <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="Style.AuthorStyleSheet.ParseTime" units="microseconds">
  <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>manzagop@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">
  <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">
  <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">
  <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="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.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>stanisc@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>stanisc@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>stanisc@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">
  <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="M73">
  <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="M73">
  <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="M73">
  <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">
  <owner>skym@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.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>maniscalco@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 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>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>maxbogue@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>pavely@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-03-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.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 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>maxbogue@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.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 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>maxbogue@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>maxbogue@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">
  <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>maxbogue@chromium.org</owner>
  <summary>Counts directory to USS migration failures per model type.</summary>
</histogram>

<histogram name="Sync.USSMigrationSuccess" enum="SyncModelTypes">
  <owner>maxbogue@chromium.org</owner>
  <summary>Counts directory to USS migration successes per model type.</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>lliabraa@chromium.org</owner>
  <summary>
    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 name="Tab.AndroidCrashUpload" enum="BooleanSuccess">
  <owner>hzl@google.com</owner>
  <summary>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">
  <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" expires_after="2018-08-30">
  <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 idential 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>
  <owner>lliabraa@chromium.org</owner>
  <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>
    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>
  <owner>lliabraa@chromium.org</owner>
  <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>lpromero@chromium.org</owner>
  <summary>
    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>lliabraa@chromium.org</owner>
  <owner>beaudoin@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>lliabraa@chromium.org</owner>
  <owner>beaudoin@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>
  <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>lliabraa@chromium.org</owner>
  <owner>beaudoin@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>lpromero@chromium.org</owner>
  <summary>
    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>jif@chromium.org</owner>
  <summary>The orientation of the device. Recorded on page load.</summary>
</histogram>

<histogram name="Tab.PageLoadsSinceLastSwitchToEvictedTab">
  <owner>lliabraa@chromium.org</owner>
  <summary>
    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>lliabraa@chromium.org</owner>
  <summary>
    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>jaekyun@chromium.org</owner>
  <summary>
    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>
    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>
    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>
    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>gchatz@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>gchatz@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>gchatz@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>lliabraa@chromium.org</owner>
  <summary>
    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>lliabraa@chromium.org</owner>
  <summary>Load time for a successful tab restore.</summary>
</histogram>

<histogram name="Tab.RestoreUserPersistence" enum="TabRestoreUserAction">
  <owner>lliabraa@chromium.org</owner>
  <summary>
    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">
  <owner>lliabraa@chromium.org</owner>
  <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>lliabraa@chromium.org</owner>
  <summary>
    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">
  <owner>lliabraa@chromium.org</owner>
  <owner>marq@chromium.org</owner>
  <summary>
    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>lliabraa@chromium.org</owner>
  <summary>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>
  <owner>lliabraa@chromium.org</owner>
  <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>
  <owner>lliabraa@chromium.org</owner>
  <summary>
    Rank in MRU order (0 being first) when the tab was switched to foreground.
  </summary>
</histogram>

<histogram name="Tab.SwitchedToForegroundNumTabs">
  <owner>lliabraa@chromium.org</owner>
  <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>
  <owner>lliabraa@chromium.org</owner>
  <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>
  <owner>lliabraa@chromium.org</owner>
  <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>
  <owner>lliabraa@chromium.org</owner>
  <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>
  <owner>lliabraa@chromium.org</owner>
  <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>jaekyun@chromium.org</owner>
  <summary>
    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="TabManager.BackgroundTabOpening.ForegroundTab.ExpectedTaskQueueingDuration"
    units="ms">
  <owner>fmeawad@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>fmeawad@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>fmeawad@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>fmeawad@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>fmeawad@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>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. 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>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. 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>fmeawad@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>fmeawad@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>fmeawad@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>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. 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>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. 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>fmeawad@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>fmeawad@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">
  <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">
  <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>fmeawad@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>fmeawad@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>lliabraa@chromium.org</owner>
  <summary>
    The number of tabs open when the app comes out of the background.
  </summary>
</histogram>

<histogram name="Tabs.CountAtStartup" units="tabs">
  <owner>lliabraa@chromium.org</owner>
  <summary>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>lliabraa@chromium.org</owner>
  <summary>
    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">
  <owner>lliabraa@chromium.org</owner>
  <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">
  <owner>lliabraa@chromium.org</owner>
  <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">
  <owner>lliabraa@chromium.org</owner>
  <summary>
    Accuracy of the tab switch predictions made when the user enters the tab
    switcher.
  </summary>
</histogram>

<histogram name="Tabs.SpeculativeRestoreTargetStatus"
    enum="SpeculativeRestoreTabStatus">
  <owner>lliabraa@chromium.org</owner>
  <summary>
    Status of a tab recorded when the tab is targeted with speculative restore.
  </summary>
</histogram>

<histogram name="Tabs.SpeculativeRestoreTimeAhead.SideSwipe" units="ms">
  <owner>lliabraa@chromium.org</owner>
  <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">
  <owner>lliabraa@chromium.org</owner>
  <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>simonb@chromium.org</owner>
  <summary>
    Time between the event that closes a tab and the start of rendering.
  </summary>
</histogram>

<histogram name="Tabs.SwitchFromExitLatency" units="ms">
  <owner>simonb@chromium.org</owner>
  <summary>
    Time between the event that exits an app and the start of rendering.
  </summary>
</histogram>

<histogram name="Tabs.SwitchFromNewLatency" units="ms">
  <owner>simonb@chromium.org</owner>
  <summary>
    Time between the event that creates a tab and the start of rendering.
  </summary>
</histogram>

<histogram name="Tabs.SwitchFromUserLatency" units="ms">
  <owner>simonb@chromium.org</owner>
  <summary>
    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>bruthig@chromium.org</owner>
  <owner>tdanderson@chromium.org</owner>
  <summary>
    The number of tabs open in the active window when a load completes.
  </summary>
</histogram>

<histogram name="Tabs.TabCountPerLoad" units="tabs">
  <owner>bruthig@chromium.org</owner>
  <owner>tdanderson@chromium.org</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>bruthig@chromium.org</owner>
  <owner>tdanderson@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>rlanday@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-01-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-01-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-01-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.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>jessemckenna@google.com</owner>
  <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 run in a given SchedulerWorkerPool. Recorded every 59
    minutes (sampling rate is not expected to affect the distribution).
  </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">
  <summary>Events in TimeZoneRequest.</summary>
</histogram>

<histogram name="TimeZone.TimeZoneRequest.ResponseCode" enum="HttpResponseCode"
    expires_after="2018-08-30">
  <summary>Http response codes in TimeZoneRequest.</summary>
</histogram>

<histogram name="TimeZone.TimeZoneRequest.ResponseFailureTime" units="ms"
    expires_after="2018-08-30">
  <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">
  <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">
  <summary>Result of TimeZoneRequest.</summary>
</histogram>

<histogram name="TimeZone.TimeZoneRequest.Retries" expires_after="2018-08-30">
  <summary>Number of retries until the final response was recorded.</summary>
</histogram>

<histogram name="Toolbar.ActionsModel.ComponentActionsCount"
    expires_after="2018-08-30">
  <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"
    expires_after="2019-12-31">
  <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">
  <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">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>The number of times TopSitesImpl::ApplyBlacklist is called.</summary>
</histogram>

<histogram name="TopSites.NumberOfBlacklistedItems" expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</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>hayleyferr@chromium.org</owner>
  <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>hayleyferr@chromium.org</owner>
  <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>hayleyferr@chromium.org</owner>
  <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>pthammaiah@google.com</owner>
  <summary>Tracks touchpad device state.</summary>
</histogram>

<histogram name="Touchpad.Metrics" enum="TouchpadProblemType">
  <obsolete>
    Deprecated 8/2017.
  </obsolete>
  <owner>pthammaiah@google.com</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>pthammaiah@google.com</owner>
  <summary>Tracks touchpad natural scroll setting changes by the user.</summary>
</histogram>

<histogram name="Touchpad.NaturalScroll.Started" enum="BooleanEnabled">
  <owner>pthammaiah@google.com</owner>
  <summary>Tracks touchpad natural scroll setting on startup.</summary>
</histogram>

<histogram name="Touchpad.PointerSensitivity.Changed" enum="PointerSensitivity">
  <owner>pthammaiah@google.com</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>pthammaiah@google.com</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>pthammaiah@google.com</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>pthammaiah@google.com</owner>
  <summary>Tracks touchpad sensitivity setting on startup.</summary>
</histogram>

<histogram name="Touchpad.TapDragging.Changed" enum="BooleanEnabled">
  <owner>pthammaiah@google.com</owner>
  <summary>Tracks touchpad TapDragging setting changes by the user.</summary>
</histogram>

<histogram name="Touchpad.TapDragging.Started" enum="BooleanEnabled">
  <owner>pthammaiah@google.com</owner>
  <summary>Tracks touchpad TapDragging setting on startup.</summary>
</histogram>

<histogram name="Touchpad.TapToClick.Changed" enum="BooleanEnabled">
  <owner>pthammaiah@google.com</owner>
  <summary>Tracks touchpad TapToClick setting changes by the user.</summary>
</histogram>

<histogram name="Touchpad.TapToClick.Started" enum="BooleanEnabled">
  <owner>pthammaiah@google.com</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>pthammaiah@google.com</owner>
</histogram>

<histogram name="Touchpad.ThreeFingerSwipe.Started" enum="BooleanEnabled">
  <obsolete>
    Deprecated as of 7/2013.
  </obsolete>
  <owner>pthammaiah@google.com</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>abakalov@chromium.org</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>abakalov@chromium.org</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>ramyasharma@google.com</owner>
  <summary>Various user actions performed in the translate infobar.</summary>
</histogram>

<histogram name="Translate.CompactInfobar.Language.AlwaysTranslate"
    enum="CLD3LanguageCode">
  <owner>ramyasharma@google.com</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>ramyasharma@google.com</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>ramyasharma@google.com</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>ramyasharma@google.com</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>ramyasharma@google.com</owner>
  <summary>
    Records the hashcode of the language clicked on the infobar.
  </summary>
</histogram>

<histogram name="Translate.CompactInfobar.TranslationsPerPage"
    units="translations">
  <owner>ramyasharma@google.com</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>ramyasharma@google.com</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>yyushkina@chromium.org</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>renjieliu@chromium.org</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.com</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">
  <owner>fsamuel@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">
  <owner>fsamuel@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>fsamuel@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">
  <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">
  <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.LowEntropySourceValue" expires_after="2018-08-30">
  <owner>asvitkine@chromium.org</owner>
  <summary>
    Distribution of the low entropy source value used for field trial
    randomization, 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">
  <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">
  <owner>asvitkine@chromium.org</owner>
  <owner>yiyaoliu@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="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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>deymo@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>deymo@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>zeuthen@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>zeuthen@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>zeuthen@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>hunyadym@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>hunyadym@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>zeuthen@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>zeuthen@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>zeuthen@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>hunyadym@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>hunyadym@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>zeuthen@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>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 (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>hunyadym@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>hunyadym@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>hunyadym@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>zeuthen@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>bradnelson@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>bradnelson@chromium.org</owner>
  <owner>titzer@chromium.org</owner>
  <owner>kschimpf@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>bradnelson@chromium.org</owner>
  <owner>titzer@chromium.org</owner>
  <owner>kschimpf@chromium.org</owner>
  <summary>Array buffer sizes for which V8 failed to allocate memory.</summary>
</histogram>

<histogram name="V8.AsmModuleSizeBytes" units="bytes">
  <owner>bradnelson@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">
  <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>bradnelson@chromium.org</owner>
  <owner>titzer@chromium.org</owner>
  <owner>kschimpf@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">
  <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>thildebr@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>thildebr@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>thildebr@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>thildebr@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>thildebr@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>thildebr@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 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>bshe@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>asimjour@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>bshe@chromium.org</owner>
  <summary>The end state of a voice search request in VR.</summary>
</histogram>

<histogram name="VR.VoiceSearch.RecordAudioOsPermissionPromptChoice"
    enum="BooleanContinueChoice">
  <owner>bshe@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">
  <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">
  <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>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. 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>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 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>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 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>ranj@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>ranj@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>ranj@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>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.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 name="Webapp.Engagement.EngagementType"
    enum="SiteEngagementServiceEngagementType">
  <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>piotrs@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>mcgreevy@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>piotrs@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="SplashscreenColorStatus">
  <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="SplashscreenHidesReason">
  <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="SplashscreenIconType">
  <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="SplashscreenColorStatus">
  <owner>mlamouri@chromium.org</owner>
  <summary>
    Records the status of the splashscreen's theme color (default or custom).
  </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.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.Framebust2" enum="FramebustPermissionsPlusAds">
  <owner>japhet@chromium.org, 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.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">
  <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">
  <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">
  <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>jiayl@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>guoweis@chromium.org</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>guoweis@chromium.org</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>mallinath@chromium.org</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>guoweis@chromium.org</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>mallinath@chromium.org</owner>
  <summary>
    Number of IPv4 network interfaces discovered in a PeerConnection Session.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.IPv4LocalCandidates">
  <owner>guoweis@chromium.org</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>mallinath@chromium.org</owner>
  <summary>
    Number of IPv6 network interfaces discovered in a PeerConnection Session.
  </summary>
</histogram>

<histogram name="WebRTC.PeerConnection.IPv6LocalCandidates">
  <owner>guoweis@chromium.org</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.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.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>guoweis@chromium.org</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>guoweis@chromium.org</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>mallinath@chromium.org</owner>
  <summary>Time to setup a peer to peer call with PeerConnection.</summary>
</histogram>

<histogram name="WebRTC.PeerConnection.TimeToNetworkUpdated" units="ms">
  <owner>guoweis@chromium.org</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>guoweis@chromium.org</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>guoweis@chromium.org</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>guoweis@chromium.org</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>guoweis@chromium.org</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>guoweis@chromium.org</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>guoweis@chromium.org</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>perkj@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.UploadFailureReason"
    enum="WebRtcLoggingUploadFailureReason" expires_after="2019-07-01">
  <owner>grunell@chromium.org</owner>
  <summary>
    Counts upload failures for WebRTC text log. 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.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>sashab@chromium.org</owner>
  <owner>felt@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>sashab@chromium.org</owner>
  <owner>felt@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>sashab@chromium.org</owner>
  <owner>felt@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">
  <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">
  <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">
  <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">
  <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.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>scottmg@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>scottmg@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.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>scottmg@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.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="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="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>offenwanger@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>offenwanger@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="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."/>
  <suffix name="Clients.Ads.Google" label="Includes only Google ads."/>
  <suffix name="Clients.Ads.SubresourceFilter"
      label="Includes only ads discovered by the SubResourceFilter."/>
  <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="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"/>
</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.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="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="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"/>
  <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"/>
  <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="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"/>
  <affected-histogram name="Autofill.FormEvents.CreditCard"/>
  <affected-histogram name="Autofill.IsEnabled.PageLoad"/>
  <affected-histogram name="Autofill.SaveCreditCardPrompt"/>
</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"/>
</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="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="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="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.CreationToIndex"/>
  <affected-histogram name="SimpleCache.CreationToIndexFail"/>
  <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.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.PercentFullOnInit"/>
  <affected-histogram name="SimpleCache.QueueLatency.CreateEntry"/>
  <affected-histogram name="SimpleCache.QueueLatency.OpenEntry"/>
  <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.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.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="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="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="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.OnlineOnReload"/>
</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."/>
  <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="_">
  <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="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="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="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.DirectComposition.ProtectedVideoType"
    separator=".">
  <suffix name="Clear" label="Clear"/>
  <suffix name="HardwareProtected" label="HardwareProtected"/>
  <suffix name="SoftwareProtected" label="SoftwareProtected"/>
  <affected-histogram name="GPU.DirectComposition.DCLayerResult2"/>
</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="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="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_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_MediaDownload" label="In product help media download."/>
  <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="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="FeedImageDatabase" label="Databases for Feed Image Loader."/>
  <suffix name="FeedStorageDatabase" label="Databases for Feed Storage."/>
  <suffix name="GCMKeyStore" label="Databases for GCMKeyStore"/>
  <suffix name="ImageManager" label="Databases for ImageManager"/>
  <suffix name="OfflinePageMetadataStore"
      label="Databases for OfflinePageMetadataStore"/>
  <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.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="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="MediaPipelineStatusForStreams" separator=".">
  <suffix name="AudioOnly" label="PipelineStatus for Audio-only streams."/>
  <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"/>
</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"/>
</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.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"/>
</histogram_suffixes>

<histogram_suffixes name="Net.BidirectionalStreamExperiment" separator=".">
  <suffix name="HTTP2" label="Bidirectional stream that use HTTP2 protocol"/>
  <owner>xunjieli@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="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.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="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.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"/>
  <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"/>
  <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.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.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.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/UserInputEvent/BrowserInitiated.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.NewNavigation.BeforeCommit">
    <obsolete>
      Deprecated in favor of UserGesture/UserInputEvent/BrowserInitiated.
    </obsolete>
  </affected-histogram>
  <affected-histogram
      name="PageLoad.Experimental.AbortTiming.Reload.BeforeCommit">
    <obsolete>
      Deprecated in favor of UserGesture/UserInputEvent/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"
      label="(experimental) Page load that has a user input event"/>
  <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="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="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.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"/>
</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"/>
</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.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.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"/>
</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="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=".">
  <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.V4UnusedStoreFileExists"/>
</histogram_suffixes>

<histogram_suffixes name="SafeBrowsing.V4Store.V3.Metrics" separator=".">
  <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="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.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.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."/>
  <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."/>
  <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."/>
  <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."/>
  <affected-histogram name="ServiceWorkerCache.Cache"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorkerCache.Cache.Delete" separator=".">
  <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=".">
  <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=".">
  <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=".">
  <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.CacheStorage" separator=".">
  <suffix name="Delete"
      label="The time to perform the 'delete' operation on a ServiceWorker
             CacheStorage, which deletes a cache."/>
  <suffix name="Has"
      label="The time to perform the 'has' operation on a ServiceWorker
             CacheStorage, which returns if the cache exists."/>
  <suffix name="Keys"
      label="The time to perform the 'keys' operation on a ServiceWorker
             CacheStorage, which returns all of the cache names."/>
  <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."/>
  <suffix name="Open"
      label="The time to perform the 'open' operation on a ServiceWorker
             CacheStorage, which gets or creates a cache."/>
  <affected-histogram name="ServiceWorkerCache.CacheStorage"/>
</histogram_suffixes>

<histogram_suffixes name="ServiceWorkerCache.CacheStorage.Match2" separator=".">
  <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="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>shess@chromium.org</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.UpdateTime"/>
  <affected-histogram name="Sqlite.Version"/>
</histogram_suffixes>

<histogram_suffixes name="SqliteVfsOperations" separator="_">
  <obsolete>
    Removed 2018-02-06.
  </obsolete>
  <owner>shess@chromium.org</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=".">
  <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="Sync.DuplicateClientTagHashInApplyPendingUpdates"/>
  <affected-histogram name="Sync.DuplicateClientTagHashInGetUpdatesResponse"/>
  <affected-histogram
      name="Sync.DuplicateClientTagHashWithDifferentServerIdsInApplyPendingUpdates"/>
  <affected-histogram name="Sync.DuplicateServerIdInApplyPendingUpdates"/>
  <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.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="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="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="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.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."/>
  <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."/>
  <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.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="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="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.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="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>
