<!--
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.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>
  <summary>
    If the user has enabled Autoclick, this is the delay set by the user for
    autoclicks to occur, in milliseconds.
  </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>zhelfins@chromium.org</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>zhelfins@chromium.org</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>zhelfins@chromium.org</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>zhelfins@chromium.org</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>
    When a web page reloads or user changes text size category in Settings,
    FontSizeTabHelper gets the category and maps it to a scaling number. This is
    hit if the category is not listed in the map defined in
    /ios/chrome/browser/web/font_size_tab_helper.mm. In that case, we should
    update the code by adding an entry for the new category in that map.
  </summary>
</histogram>

<histogram name="Accessibility.Mac.DifferentiateWithoutColor"
    enum="BooleanEnabled">
  <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">
  <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">
  <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.ReduceTransparency" enum="BooleanEnabled">
  <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 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.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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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.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.Mainframe.AdResource" units="KB"
    expires_after="2019-09-05">
  <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">
  <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">
  <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.Subframe.AdResource" units="KB"
    expires_after="2019-09-05">
  <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">
  <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.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 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.
  </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.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="M71">
  <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.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.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.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.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.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="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="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.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
    reauthorization flow.
  </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.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.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.OptInFlowStatus" enum="AssistantOptInFlowStatus">
  <owner>updowndota@chromium.org</owner>
  <summary>Record the status of the Assistant opt-in flow.</summary>
</histogram>

<histogram name="AsyncDNS.AttemptCountFail">
  <owner>mgersh@chromium.org</owner>
  <summary>
    Count of DnsAttempts before DnsTransaction completes with failure.
  </summary>
</histogram>

<histogram name="AsyncDNS.AttemptCountSuccess">
  <owner>mgersh@chromium.org</owner>
  <summary>
    Count of DnsAttempts before DnsTransaction completes successfully.
  </summary>
</histogram>

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

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

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

<histogram name="AsyncDNS.ConfigParsePosix" enum="AsyncDNSConfigParsePosix">
  <owner>mgersh@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>mgersh@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>mgersh@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>mgersh@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>mgersh@chromium.org</owner>
  <summary>
    Duration of time spent by ProcTask in failing fallback resolutions.
  </summary>
</histogram>

<histogram name="AsyncDNS.FallbackSuccess" units="ms">
  <owner>mgersh@chromium.org</owner>
  <summary>
    Duration of time spent by ProcTask in successful fallback resolutions.
  </summary>
</histogram>

<histogram name="AsyncDNS.HaveDnsConfig" enum="BooleanSuccess">
  <owner>mgersh@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>mgersh@chromium.org</owner>
  <summary>Whether DnsHosts were parsed successfully.</summary>
</histogram>

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

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

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

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

<histogram name="AsyncDNS.HostsSize" units="bytes">
  <owner>mgersh@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>mgersh@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>mgersh@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>mgersh@chromium.org</owner>
  <summary>
    Index in DnsConfig of the failing server, recorded at the time of failure.
  </summary>
</histogram>

<histogram name="AsyncDNS.ServerFailuresAfterNetworkChange">
  <owner>mgersh@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>mgersh@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>mgersh@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>mgersh@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>mgersh@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>mgersh@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>mgersh@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>mgersh@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>mgersh@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>mgersh@chromium.org</owner>
  <summary>
    Duration of time taken by DnsTCPAttempt in failed attempts. Excludes
    timeouts.
  </summary>
</histogram>

<histogram name="AsyncDNS.TCPAttemptSuccess" units="ms">
  <owner>mgersh@chromium.org</owner>
  <summary>
    Duration of time taken by DnsTCPAttempt in successful attempts.
  </summary>
</histogram>

<histogram name="AsyncDNS.TimeoutErrorHistogram" units="ms">
  <owner>mgersh@chromium.org</owner>
  <summary>
    Difference between RTT and timeout calculated using Histogram algorithm.
  </summary>
</histogram>

<histogram name="AsyncDNS.TimeoutErrorHistogramUnder" units="ms">
  <owner>mgersh@chromium.org</owner>
  <summary>
    Difference between timeout calculated using Histogram algorithm and RTT.
  </summary>
</histogram>

<histogram name="AsyncDNS.TimeoutErrorJacobson" units="ms">
  <owner>mgersh@chromium.org</owner>
  <summary>
    Difference between RTT and timeout calculated using Jacobson algorithm.
  </summary>
</histogram>

<histogram name="AsyncDNS.TimeoutErrorJacobsonUnder" units="ms">
  <owner>mgersh@chromium.org</owner>
  <summary>
    Difference between timeout calculated using Jacobson algorithm and RTT.
  </summary>
</histogram>

<histogram name="AsyncDNS.TimeoutSpentHistogram" units="ms">
  <owner>mgersh@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>mgersh@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>mgersh@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>mgersh@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>mgersh@chromium.org</owner>
  <summary>
    Same as AsyncDNS.TransactionSuccess but limited to A query type.
  </summary>
</histogram>

<histogram name="AsyncDNS.TransactionSuccess_AAAA" units="ms">
  <owner>mgersh@chromium.org</owner>
  <summary>
    Same as AsyncDNS.TransactionSuccess but limited to AAAA query type.
  </summary>
</histogram>

<histogram name="AsyncDNS.TTL" units="ms">
  <owner>mgersh@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>mgersh@chromium.org</owner>
  <summary>
    Duration of time taken by DnsUDPAttempt in failed attempts. Excludes
    timeouts.
  </summary>
</histogram>

<histogram name="AsyncDNS.UDPAttemptSuccess" units="ms">
  <owner>mgersh@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>mgersh@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>mgersh@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>mgersh@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="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.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.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.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">
  <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.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.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.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.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.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 name="Autofill.WalletAddressesAdded" units="addresses">
  <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">
  <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">
  <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 name="Autofill.WalletCardsAdded" units="credit cards">
  <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">
  <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">
  <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 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">
  <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">
  <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">
  <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.DrawImage" units="microseconds">
  <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 name="Blink.Canvas.GetImageData" units="microseconds">
  <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 name="Blink.Canvas.OffscreenCommitTimer" units="microseconds">
  <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">
  <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 name="Blink.Canvas.ToBlob.CompleteEncodingDelay"
    units="microseconds">
  <owner>junov@chromium.org</owner>
  <owner>xlai@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.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this 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.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 name="Blink.Canvas.ToBlob.IdleTaskStatus" enum="IdleTaskStatus">
  <owner>junov@chromium.org</owner>
  <owner>xlai@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 name="Blink.Canvas.ToBlob.InitiateEncodingDelay"
    units="microseconds">
  <owner>junov@chromium.org</owner>
  <owner>xlai@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.

    Warning: This metric may include reports from clients with low-resolution
    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
    will cause this 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.ToBlobDuration" units="microseconds">
  <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">
  <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 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.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.
    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.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 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.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="2018-12-31">
  <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.Header"
    enum="FeaturePolicyFeature">
  <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.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.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.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.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" expires_after="M75">
  <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.
  </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.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.ServiceTabResolveInfoQuery" units="ms">
  <owner>peconn@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">
  <owner>peconn@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>
  <summary>
    The result of Digital Asset Link verification performed when starting a
    Trusted Web Activity.
  </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="Canvas.ContextType" enum="CanvasContextType">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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="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.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"
    expires_after="M72">
  <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"
    expires_after="M72">
  <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">
  <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">
  <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">
  <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">
  <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="M71">
  <owner>rhalavati@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">
  <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">
  <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">
  <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.NetworkRequestStatusCode"
    enum="CombinedHttpResponseAndNetErrorCode">
  <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.RequestSizeKB.Compressed" units="KB">
  <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">
  <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.TokenFetchStatus"
    enum="GoogleServiceAuthError">
  <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 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.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">
  <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">
  <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.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.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.
  </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.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="M72">
  <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="M72">
  <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">
  <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">
  <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.</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.</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.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="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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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"
    expires_after="M72">
<!-- 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">
  <owner>mgersh@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">
  <owner>mgersh@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">
  <owner>mgersh@chromium.org</owner>
  <summary>The attempt that has not resolved the host successfully.</summary>
</histogram>

<histogram name="DNS.AttemptFirstFailure">
  <owner>mgersh@chromium.org</owner>
  <summary>
    The attempt that resolved the host first and the resolution was not
    successful.
  </summary>
</histogram>

<histogram name="DNS.AttemptFirstSuccess">
  <owner>mgersh@chromium.org</owner>
  <summary>
    The attempt that resolved the host first and the resolution was successful.
  </summary>
</histogram>

<histogram name="DNS.AttemptSuccess">
  <owner>mgersh@chromium.org</owner>
  <summary>The attempt that has resolved the host successfully.</summary>
</histogram>

<histogram name="DNS.AttemptSuccessDuration" units="ms">
  <owner>mgersh@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">
  <owner>mgersh@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">
  <owner>mgersh@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">
  <owner>mgersh@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">
  <owner>mgersh@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">
  <owner>mgersh@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">
  <owner>mgersh@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">
  <owner>mgersh@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">
  <owner>mgersh@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>mgersh@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>mgersh@chromium.org</owner>
  <summary>
    Whether the persisted HostCache entries were restored successfully.
  </summary>
</histogram>

<histogram name="DNS.HostCache.Set" enum="DNS.HostCache.SetOutcome">
  <owner>mgersh@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">
  <owner>mgersh@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">
  <owner>mgersh@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">
  <owner>mgersh@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">
  <owner>mgersh@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>mgersh@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>mgersh@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>mgersh@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>mgersh@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>mgersh@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>mgersh@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>mgersh@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>mgersh@chromium.org</owner>
  <summary>Time between starting and finishing DNS probe.</summary>
</histogram>

<histogram name="DnsProbe.ProbeResult" enum="DnsProbe.ProbeStatus">
  <owner>mgersh@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.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.IOSDownloadedFileAction" enum="DownloadedFileAction">
  <owner>bdibello@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">
  <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">
  <owner>stkhapugin@chromium.org</owner>
  <owner>eugenebut@chromium.org</owner>
  <owner>stuartmorgan@chromium.org</owner>
  <summary>
    HTTP status code returned when file download completes on iOS.
  </summary>
</histogram>

<histogram name="Download.IOSDownloadFileInBackground"
    enum="DownloadFileInBackground">
  <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">
  <owner>bdibello@chromium.org</owner>
  <summary>Result when a user attempts to download a file on iOS.</summary>
</histogram>

<histogram name="Download.IOSDownloadInstallDrivePromoShown" enum="Boolean">
  <owner>eugenebut@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">
  <owner>gchatz@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.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.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.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.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>weifangsun@chromium.org</owner>
  <owner>sashab@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>weifangsun@chromium.org</owner>
  <owner>sashab@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>weifangsun@chromium.org</owner>
  <owner>sashab@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="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">
  <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">
  <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.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.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 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.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>chongz@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>chongz@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>chongz@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>chongz@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.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.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.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.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="Boolean">
  <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.ExploreSitesStore.StoreEvent"
    enum="ExploreSitesStoreEvent">
  <owner>dewittj@chromium.org</owner>
  <summary>Counts when the explore sites store is opened or closed.</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">
  <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">
  <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">
  <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.CorruptPolicyExtensionResolved" units="ms">
  <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.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="Boolean" 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.
  </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.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.ForceInstalledLoadTime" units="ms">
  <owner>poromov@chromium.org</owner>
  <summary>
    The amount of time elapsed during installation of enterprise policy forced
    extensions.
  </summary>
</histogram>

<histogram name="Extensions.ForceInstalledTimedOutAndNotInstalledCount">
  <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">
  <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.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.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.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.InitiatorAccess" enum="InitiatorAccess"
    expires_after="2018-12-31">
  <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.ModifiedResponseHeaders"
    enum="WebRequestResponseHeaderType">
  <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.SpecialHeadersRemoved"
    enum="WebRequestSpecialHeaderRemoval">
  <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.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="Number of 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.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">
  <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">
  <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">
  <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">
  <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">
  <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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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.Create" enum="FileDialogType">
  <owner>sashab@chromium.org</owner>
  <owner>slangley@chromium.org</owner>
  <summary>Chrome OS File Browser opening mode.</summary>
</histogram>

<histogram name="FileBrowser.DirectoryScan" units="ms">
  <owner>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@chromium.org</owner>
  <summary>
    Tracks whether download destination is set to a Google Drive folder on
    startup.
  </summary>
</histogram>

<histogram name="FileBrowser.DownloadsCount">
  <owner>sashab@chromium.org</owner>
  <owner>slangley@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.FolderShortcut.Add">
  <owner>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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.Load" units="ms">
  <owner>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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.MenuItemSelected" enum="FileManagerMenuCommands">
  <owner>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@google.com</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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@chromium.org</owner>
  <summary>File types that were tried to be opened through browser.</summary>
</histogram>

<histogram name="FileBrowser.PhotoEditor.DisplayTime" units="ms">
  <owner>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@chromium.org</owner>
  <summary>Chrome OS Photo Editor: the type of the file opened.</summary>
</histogram>

<histogram name="FileBrowser.PhotoEditor.LoadMode" enum="PhotoEditorLoadMode">
  <owner>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@chromium.org</owner>
  <summary>Chrome OS Photo Editor: the button which the user clicked.</summary>
</histogram>

<histogram name="FileBrowser.PhotoImport.Action" enum="ExternalDeviceAction">
  <owner>sashab@chromium.org</owner>
  <owner>slangley@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">
  <owner>sashab@chromium.org</owner>
  <owner>slangley@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="%">
  <owner>sashab@chromium.org</owner>
  <owner>slangley@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">
  <owner>sashab@chromium.org</owner>
  <owner>slangley@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">
  <owner>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@chromium.org</owner>
  <summary>File types that were selected when quick view is launched.</summary>
</histogram>

<histogram name="FileBrowser.QuickView.VolumeType" enum="FileManagerVolumeType">
  <owner>sashab@chromium.org</owner>
  <owner>slangley@chromium.org</owner>
  <summary>The volume type where quick view is opened.</summary>
</histogram>

<histogram name="FileBrowser.QuickView.WayToOpen"
    enum="FileManagerQuickViewWayToOpen">
  <owner>sashab@chromium.org</owner>
  <owner>slangley@chromium.org</owner>
  <summary>How quick view was opened.</summary>
</histogram>

<histogram name="FileBrowser.Recent.LoadArcMedia" units="ms">
  <owner>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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.ViewingRootType" enum="FileManagerRootType">
  <owner>sashab@chromium.org</owner>
  <owner>slangley@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.ViewingTaskType" enum="FileManagerTaskType">
  <owner>sashab@chromium.org</owner>
  <owner>slangley@chromium.org</owner>
  <summary>
    Chrome OS File Browser: The type of the handler to be used to open files.
  </summary>
</histogram>

<histogram name="FileBrowser.VolumeType" enum="FileManagerVolumeType">
  <owner>sashab@chromium.org</owner>
  <owner>slangley@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>sashab@chromium.org</owner>
  <owner>slangley@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.EmailProvidersInteraction"
    enum="NuxEmailProvidersInteractions">
  <owner>scottchen@chromium.org</owner>
  <summary>
    This histogram 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">
  <owner>scottchen@chromium.org</owner>
  <summary>
    This histogram 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">
  <owner>hcarmona@chromium.org</owner>
  <summary>
    This histogram 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">
  <owner>hcarmona@chromium.org</owner>
  <summary>
    This histogram 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.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="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 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="Gaia.AuthFetcher.Multilogin.AuthErrors"
    enum="GoogleServiceAuthError" expires_after="2019-08-30">
  <owner>droger@chromium.org</owner>
  <owner>msarda@chromium.org</owner>
  <summary>
    Return the GoogleAuthError state for each request to the Multilogin Gaia
    endpoint. NONE is a success, other values are failures.
  </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">
  <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">
  <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">
  <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">
  <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">
  <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 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">
  <owner>sunnyps@chromium.org</owner>
  <summary>Which overlay format was chosen for YUV overlays.</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 name="GPU.DirectComposition.SwapchainFormat" enum="SwapchainFormat">
  <owner>jbauman@chromium.org</owner>
  <summary>What type of swapchain was actually created for an overlay.</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 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.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">
  <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="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="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="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.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">
  <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.
  </summary>
</histogram>

<histogram name="History.MonthlyURLCount">
  <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">
  <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">
  <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. 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>vabr@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>vabr@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">
  <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">
  <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.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.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">
  <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="M71">
  <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="M71">
  <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="M71">
  <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="M71">
  <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="M71">
  <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="M71">
  <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="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.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.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.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.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.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.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="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="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 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.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="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.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.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">
  <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.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.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.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.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.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">
  <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 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="M70">
  <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="%">
  <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 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.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.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">
  <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.VideoFrameColorSpace" enum="VideoFrameColorSpace">
  <owner>mcasas@chromium.org</owner>
  <owner>watk@chromium.org</owner>
  <summary>
    Color space or range used in HTML5 video. Emitted on video load.
  </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">
  <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">
  <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.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.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.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.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.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.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.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.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.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.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.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.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.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">
  <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="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.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.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.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="M72">
  <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">
  <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="MultiDeviceSetup_NotificationClicked"
    enum="MultiDeviceSetupNotification">
  <owner>jordynass@chromium.org</owner>
  <summary>
    Counts the number of each MultiDevice setup notification clicked by a user.
  </summary>
</histogram>

<histogram name="MultiDeviceSetup_NotificationShown"
    enum="MultiDeviceSetupNotification">
  <owner>jordynass@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.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">
  <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.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.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 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.DnsTask.ErrorBeforeFallback.Fast" enum="NetErrorCodes">
  <owner>mgersh@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>mgersh@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>mgersh@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>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="Net.DNS.DnsTask.SuccessTime" units="ms">
  <owner>mgersh@chromium.org</owner>
  <summary>
    Duration of time taken by DnsTask in resolutions that succeeded.
  </summary>
</histogram>

<histogram name="Net.DNS.JobQueueTime" units="ms">
  <owner>mgersh@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">
  <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.
  </summary>
</histogram>

<histogram name="Net.DNS.ProcTask.FailureTime" units="ms">
  <owner>mgersh@chromium.org</owner>
  <summary>
    Duration of time taken by ProcTask in resolutions that failed.
  </summary>
</histogram>

<histogram name="Net.DNS.ProcTask.SuccessTime" units="ms">
  <owner>mgersh@chromium.org</owner>
  <summary>
    Duration of time taken by ProcTask in resolutions that succeeded.
  </summary>
</histogram>

<histogram name="Net.DNS.ResolveCategory" enum="ResolutionCategory">
  <owner>mgersh@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>mgersh@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>mgersh@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>mgersh@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>mgersh@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>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="Net.DNS.TotalTimeNotCached" units="ms">
  <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 and
    requests that returned synchronously (such as cache hits). 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.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="Boolean"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</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.HttpAuthCacheLookupByPathPosition">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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.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.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.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.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.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.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.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.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">
  <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">
  <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">
  <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.SSLTLS13DowngradeTLS13Experiment" enum="BooleanDowngrade"
    expires_after="2019-03-31">
  <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.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">
  <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">
  <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">
  <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.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.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.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">
  <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">
  <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">
  <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.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 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 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="M72">
  <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">
  <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.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" units="Boolean">
  <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" units="Boolean">
  <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">
  <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>tsabolcec@google.com</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">
  <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.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="%">
  <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">
  <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="%">
  <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">
  <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">
  <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="%">
  <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">
  <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">
  <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="%">
  <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.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.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 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.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.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.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.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.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>ksakamoto@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>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.PaintTiming.NavigationToFirstContentfulPaint"
    units="ms">
  <owner>ksakamoto@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>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.
  </summary>
</histogram>

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

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

<histogram name="PageLoad.PaintTiming.ParseStartToFirstContentfulPaint"
    units="ms">
  <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.
  </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.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>gcasto@chromium.org</owner>
  <owner>vabr@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>gcasto@chromium.org</owner>
  <owner>vabr@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.UserEvent"
    enum="PasswordGenerationUserEvent">
  <owner>ioanap@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.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>vabr@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>gcasto@chromium.org</owner>
  <owner>vabr@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>engedy@chromium.org</owner>
  <owner>vabr@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>
  <owner>vabr@chromium.org</owner>
  <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>vabr@chromium.org</owner>
  <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.ActionsTakenWithPsl"
    enum="PasswordManagerActionsTakenWithPsl">
  <obsolete>
    Deprecated as of 3/18/2014. See PasswordManagerActionsTakenV3.
  </obsolete>
  <owner>vabr@chromium.org</owner>
  <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>vabr@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>jdoerrie@chromium.org</owner>
  <owner>vabr@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>jdoerrie@chromium.org</owner>
  <owner>vabr@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>jdoerrie@chromium.org</owner>
  <owner>vabr@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>jdoerrie@chromium.org</owner>
  <owner>vabr@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>jdoerrie@chromium.org</owner>
  <owner>vabr@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>jdoerrie@chromium.org</owner>
  <owner>vabr@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="M71">
  <owner>gemene@google.com</owner>
  <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>gcasto@chromium.org</owner>
  <owner>vabr@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="M72">
  <owner>gemene@google.com</owner>
  <owner>jdoerrie@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="M72">
  <owner>gemene@google.com</owner>
  <owner>jdoerrie@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>vabr@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.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>vabr@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>vabr@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>vabr@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>gcasto@chromium.org</owner>
  <owner>vabr@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.HttpCredentialsWithConflictingHttpsCredential"
    units="saved credentials" expires_after="M72">
  <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">
  <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">
  <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>
  <owner>vabr@chromium.org</owner>
  <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>vabr@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>vabr@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>
  <owner>vabr@chromium.org</owner>
  <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>vabr@chromium.org</owner>
  <owner>jdoerrie@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">
  <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.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>dvadym@chromium.org</owner>
  <owner>vabr@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.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>vabr@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>
  <owner>vabr@chromium.org</owner>
  <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>vabr@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>vabr@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>vabr@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.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.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>vabr@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>vabr@chromium.org</owner>
  <owner>yfriedman@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>vabr@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>
  <owner>vabr@chromium.org</owner>
  <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>
  <owner>vabr@chromium.org</owner>
  <summary>Indicates whether the save password prompt was displayed.</summary>
</histogram>

<histogram name="PasswordManager.SavePasswordPromptResponse"
    enum="SavePasswordPromptResponseType">
  <obsolete>
    Deprecated as of 03/2016.
  </obsolete>
  <owner>vabr@chromium.org</owner>
  <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>
  <owner>vabr@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>
  <owner>vabr@chromium.org</owner>
  <summary>
    Whether password manager stored passwords imported from CSV file
    successfully.
  </summary>
</histogram>

<histogram name="PasswordManager.StoreReadyWhenWiping" enum="Boolean">
  <obsolete>
    Deprecated since August 28, 2018, due to removing the corresponding feature.
  </obsolete>
  <owner>vabr@chromium.org</owner>
  <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>vabr@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>gcasto@chromium.org</owner>
  <owner>vabr@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>gcasto@chromium.org</owner>
  <owner>vabr@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>gcasto@chromium.org</owner>
  <owner>vabr@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="2018-11-01">
  <owner>dvadym@chromium.org</owner>
  <owner>vabr@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>cfroussios@chromium.org</owner>
  <owner>ioanap@chromium.org</owner>
  <owner>vabr@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>
  <owner>gcasto@chromium.org</owner>
  <owner>vabr@chromium.org</owner>
  <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>gcasto@chromium.org</owner>
  <owner>vabr@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>vabr@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>vabr@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 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.PerformanceMeasurePassedInParameter.EndMark"
    enum="PerformanceMeasurePassedInParameterType">
  <obsolete>
    Deprecated 05/2018. Made decision in issue 758385 with already acquired
    data. So this is no longer needed.
  </obsolete>
  <owner>maxlg@chromium.org</owner>
  <summary>
    The count of possible string of the endMark parameter in
    performance.measure().
  </summary>
</histogram>

<histogram name="Performance.PerformanceMeasurePassedInParameter.StartMark"
    enum="PerformanceMeasurePassedInParameterType">
  <obsolete>
    Deprecated 05/2018. Made decision in issue 758385 with already acquired
    data. So this is no longer needed.
  </obsolete>
  <owner>maxlg@chromium.org</owner>
  <summary>
    The count of possible string of the startMark parameter in
    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"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Temperature reading at sensor 0 (I2C_CPU-Die) taken every 30s.
  </summary>
</histogram>

<histogram name="Platform.Temperature.Sensor01" units="Celsius">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Temperature reading at sensor 1 (I2C_CPU-Object) taken every 30s.
  </summary>
</histogram>

<histogram name="Platform.Temperature.Sensor02" 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 2 (I2C_PCH-Die) taken every 30s.
  </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>
  <owner>vabr@chromium.org</owner>
  <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>
  <owner>vabr@chromium.org</owner>
  <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>
  <owner>vabr@chromium.org</owner>
  <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>
  <owner>vabr@chromium.org</owner>
  <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>
  <owner>vabr@chromium.org</owner>
  <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.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.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.
  </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">
  <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 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.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.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.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.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="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.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.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.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="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.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.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">
  <owner>dskelton@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">
  <owner>dskelton@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">
  <owner>dskelton@google.com</owner>
  <summary>
    Records the number of worksheets when a comma separated value spreadsheet is
    opened.
  </summary>
</histogram>

<histogram name="Quickoffice.docPageCount">
  <owner>joshwoodward@google.com</owner>
  <summary>
    Records the page count when a compound binary format document is opened.
  </summary>
</histogram>

<histogram name="Quickoffice.docParagraphCount">
  <owner>joshwoodward@google.com</owner>
  <summary>
    Records the paragraph count when a compound binary format document is
    opened.
  </summary>
</histogram>

<histogram name="Quickoffice.docSectionCount">
  <owner>joshwoodward@google.com</owner>
  <summary>
    Records the section count when a compound binary format document is opened.
  </summary>
</histogram>

<histogram name="Quickoffice.docxPageCount">
  <owner>joshwoodward@google.com</owner>
  <summary>
    Records the page count when an OOXML format document is opened.
  </summary>
</histogram>

<histogram name="Quickoffice.docxParagraphCount">
  <owner>joshwoodward@google.com</owner>
  <summary>
    Records the paragraph count when an OOXML format document is opened.
  </summary>
</histogram>

<histogram name="Quickoffice.docxSectionCount">
  <owner>joshwoodward@google.com</owner>
  <summary>
    Records the section count when an OOXML format document is opened.
  </summary>
</histogram>

<histogram name="Quickoffice.ErrorTypes" enum="QuickofficeErrorTypes">
  <owner>joshwoodward@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">
  <owner>joshwoodward@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">
  <owner>joshwoodward@google.com</owner>
  <summary>
    Records the number of slide masters when a compound binary format
    presentation is opened.
  </summary>
</histogram>

<histogram name="Quickoffice.pptSlideCount">
  <owner>joshwoodward@google.com</owner>
  <summary>
    Records the slide count when a compound binary format presentation is
    opened.
  </summary>
</histogram>

<histogram name="Quickoffice.pptxMasterCount">
  <owner>joshwoodward@google.com</owner>
  <summary>
    Records the number of slide masters when an OOXML format presentation is
    opened.
  </summary>
</histogram>

<histogram name="Quickoffice.pptxSlideCount">
  <owner>joshwoodward@google.com</owner>
  <summary>
    Records the slide count when an OOXML format presentation is opened.
  </summary>
</histogram>

<histogram name="Quickoffice.xlsFormattedCellCount">
  <owner>joshwoodward@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">
  <owner>joshwoodward@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">
  <owner>joshwoodward@google.com</owner>
  <summary>
    Records the number of worksheets when a compound binary format spreadsheet
    is opened.
  </summary>
</histogram>

<histogram name="Quickoffice.xlsxFormattedCellCount">
  <owner>joshwoodward@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">
  <owner>joshwoodward@google.com</owner>
  <summary>
    Records the number of non-empty cells when an OOXML format spreadsheet is
    opened.
  </summary>
</histogram>

<histogram name="Quickoffice.xlsxSheetCount">
  <owner>joshwoodward@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.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">
  <owner>tdresser@chromium.org</owner>
  <summary>
    For every gesture, 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, 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, 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.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">
  <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">
  <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="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="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">
  <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">
  <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.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@chrormium.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@chrormium.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.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">
  <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.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">
  <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">
  <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">
  <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">
  <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 recieved.
  </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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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="%">
  <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">
  <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="%">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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 recieved.
  </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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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.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">
  <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.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">
  <owner>falken@chromium.org</owner>
  <owner>worker-dev@chromium.org</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.
  </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.
  </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.
  </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.
  </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.
  </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>jkarlin@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">
  <owner>jkarlin@chromium.org</owner>
  <summary>
    The time in ms from when an operation is started until it completes.
  </summary>
</histogram>

<histogram name="ServiceWorkerCache.Scheduler.QueueDuration" units="ms">
  <owner>jkarlin@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.QueueLength" units="operations">
  <owner>jkarlin@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.
    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: 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.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">
  <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.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 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.LoadResult" enum="SignedExchangeLoadResult">
  <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.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.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.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.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.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.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.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>
  <summary>
    Reports the status (including error details) of token revocation requests
    after they complete.
  </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.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.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.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="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"
    enum="SiteIsolatedCodeCacheBehaviour" expires_after="2018-12-31">
  <owner>mythria@chromium.org</owner>
  <summary>
    The behaviour of site isolated 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="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.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.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="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.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.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="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 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 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.AppsAssociationTime" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>Time taken during app association.</summary>
</histogram>

<histogram name="Sync.AppsConfigureFailure" enum="SyncConfigureResult">
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of types of app configuration failures.</summary>
</histogram>

<histogram name="Sync.AppSettingsAssociationTime" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>Time taken during app settings association.</summary>
</histogram>

<histogram name="Sync.AppSettingsConfigureFailure" enum="SyncConfigureResult">
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of app settings configuration failures.
  </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 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.AutofillAssociationTime" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>Time taken during autofill association.</summary>
</histogram>

<histogram name="Sync.AutofillConfigureFailure" enum="SyncConfigureResult">
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of types of autofill configuration failures.</summary>
</histogram>

<histogram name="Sync.AutofillProfileAssociationTime" units="ms">
  <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.AutofillProfilesAssociationTime" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>Time taken during autofill profile association.</summary>
</histogram>

<histogram name="Sync.AutofillProfilesConfigureFailure"
    enum="SyncConfigureResult">
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of autofill profile configuration failures.
  </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.BookmarksAssociationTime" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>Time taken during bookmark association.</summary>
</histogram>

<histogram name="Sync.BookmarksConfigureFailure" enum="SyncConfigureResult">
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of types of bookmark configuration failures.</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.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 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">
  <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.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">
  <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.DataTypeStartFailures" enum="SyncModelTypes">
  <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.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.DictionaryAssociationTime" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>Time taken during dictionary association.</summary>
</histogram>

<histogram name="Sync.DictionaryConfigureFailure" enum="SyncConfigureResult">
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of types of dictionary configuration failures.</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 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.ExtensionsAssociationTime" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>Time taken during extension association.</summary>
</histogram>

<histogram name="Sync.ExtensionsConfigureFailure" enum="SyncConfigureResult">
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of types of extension configuration failures.</summary>
</histogram>

<histogram name="Sync.ExtensionSettingsAssociationTime" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>Time taken during extension settings association.</summary>
</histogram>

<histogram name="Sync.ExtensionSettingsConfigureFailure"
    enum="SyncConfigureResult">
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of extension settings configuration failures.
  </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.FaviconImagesAssociationTime" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>Time taken during favicon images association.</summary>
</histogram>

<histogram name="Sync.FaviconImagesConfigureFailure" enum="SyncConfigureResult">
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of favicon images configuration failures.
  </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.FaviconTrackingAssociationTime" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>Time taken during favicon tracking association.</summary>
</histogram>

<histogram name="Sync.FaviconTrackingConfigureFailure"
    enum="SyncConfigureResult">
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of favicon tracking configuration failures.
  </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 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 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">
  <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.ModelTypeEntityChange"
    enum="SyncEntityChange" expires_after="2020-02-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.ModelTypeStoreInitResult"
    enum="SyncModelTypeStoreInitResult">
  <owner>pavely@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.PasswordsAssociationTime" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>Time taken during password association.</summary>
</histogram>

<histogram name="Sync.PasswordsConfigureFailure" enum="SyncConfigureResult">
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of types of password configuration failures.</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.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.PreferencesAssociationTime" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>Time taken during preference association.</summary>
</histogram>

<histogram name="Sync.PreferencesConfigureFailure" enum="SyncConfigureResult">
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of types of preference configuration failures.</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.SearchEnginesAssociationTime" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>Time taken during search engine association.</summary>
</histogram>

<histogram name="Sync.SearchEnginesConfigureFailure" enum="SyncConfigureResult">
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of search engine configuration failures.
  </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.SessionsAssociationTime" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>Time taken during session association.</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.SessionsConfigureFailure" enum="SyncConfigureResult">
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of types of session configuration failures.</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.SyncedNotificationsAssociationTime" units="ms">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>Time taken during synced notifications association.</summary>
</histogram>

<histogram name="Sync.SyncedNotificationsConfigureFailure"
    enum="SyncConfigureResult">
  <obsolete>
    Deprecated in M53.
  </obsolete>
  <owner>zea@chromium.org</owner>
  <summary>
    Enumeration of types of synced notifications configuration failures.
  </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">
  <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.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.ThemesAssociationTime" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>Time taken during theme association.</summary>
</histogram>

<histogram name="Sync.ThemesConfigureFailure" enum="SyncConfigureResult">
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of types of theme configuration failures.</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.TypedUrlsAssociationTime" units="ms">
  <owner>zea@chromium.org</owner>
  <summary>Time taken during typed url association.</summary>
</histogram>

<histogram name="Sync.TypedUrlsConfigureFailure" enum="SyncConfigureResult">
  <owner>zea@chromium.org</owner>
  <summary>Enumeration of types of typed url configuration failures.</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 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">
  <owner>jbbegue@google.com</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">
  <owner>stuartmorgan@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.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 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">
  <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.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="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.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.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="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.
  </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.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">
  <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.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.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.
  </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.ExpiredHistogram.BugReportTest" expires_after="2018-07-20">
  <owner>gayane@chromium.org</owner>
  <summary>Not logged. Used for testing histogram expiry checker.</summary>
</histogram>

<histogram name="UMA.ExpiredHistogram.Milestone.BugReportTest"
    expires_after="M68">
  <owner>gayane@chromium.org</owner>
  <summary>Not logged. Used for testing histogram expiry checker.</summary>
</histogram>

<histogram name="UMA.ExpiredHistogram.Milestone.Soon.BugReportTest"
    expires_after="M69">
  <owner>gayane@chromium.org</owner>
  <summary>Not logged. Used for testing histogram expiry checker.</summary>
</histogram>

<histogram name="UMA.ExpiredHistogram.Soon.BugReportTest"
    expires_after="2018-08-01">
  <owner>gayane@chromium.org</owner>
  <summary>Not logged. Used for testing histogram expiry checker.</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">
  <owner>asvitkine@chromium.org</owner>
  <owner>gayane@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">
  <owner>asvitkine@chromium.org</owner>
  <owner>gayane@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="UnifiedConsent.ConsentBump.Action"
    enum="UnifiedConsentBumpAction" expires_after="2019-08-01">
  <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"
    expires_after="2019-08-01">
  <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" expires_after="2019-08-01">
  <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"
    expires_after="2019-08-01">
  <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="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.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">
  <owner>gayane@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="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.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="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">
  <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">
  <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.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">
  <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">
  <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">
  <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">
  <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">
  <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="dB"
    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.
  </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.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.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.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.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">
  <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.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.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 then a recieve
    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 then a recieve
    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.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 receive
    video stream. Recorded then 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
    recieve 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 then a recieve 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 then 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 recieve screenshare stream playbacks low quality
    blocky video. Recorded then 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 recieve screenshare stream playbacks HD resolution.
    Recorded then 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 recieve video stream playbacks low quality blocky
    video. Recorded then 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 recieve video stream playbacks HD resolution.
    Recorded then 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 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">
  <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">
  <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="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.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 recieved, 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 recieved, 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 recieved, which can be every time
    the user focuses on the omnibox.
  </summary>
</histogram>

</histograms>

<!-- Histogram suffixes list -->

<histogram_suffixes_list>

<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.Mime"/>
</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="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.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="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="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="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="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="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="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="FetchSuccessEvent" 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="BlinkCanvasDrawImageType" separator=".">
  <suffix name="Canvas"/>
  <suffix name="ImageBitmap"/>
  <suffix name="OffscreenCanvas"/>
  <suffix name="Others"/>
  <suffix name="SVG"/>
  <suffix name="Video"/>
  <affected-histogram name="Blink.Canvas.DrawImage"/>
</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.Canvas"/>
  <affected-histogram name="Blink.Canvas.DrawImage.ImageBitmap"/>
  <affected-histogram name="Blink.Canvas.DrawImage.OffscreenCanvas"/>
  <affected-histogram name="Blink.Canvas.DrawImage.Others"/>
  <affected-histogram name="Blink.Canvas.DrawImage.SVG"/>
  <affected-histogram name="Blink.Canvas.DrawImage.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.ToBlobDuration"/>
</histogram_suffixes>

<histogram_suffixes name="BlinkCanvasToDataURLTime" 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.ToDataURL"/>
</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="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.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="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-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"/>
  <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=".">
  <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">
  <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">
  <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=".">
  <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="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="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="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="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="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="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="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"/>
</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="GraphicsPipeline" separator="." ordering="prefix">
  <suffix name="Browser" label="for browser process."/>
  <suffix name="Renderer" label="for renderer process."/>
  <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.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="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."/>
  <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="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"/>
</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="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="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="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="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"/>
</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 recieved
             by Chrome as well being part of connections via"/>
  <suffix name="IsNotAck"
      label="Only packets that were probably NOT solo ACK packets when
             recieved 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="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="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.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="Proxied"
      label="Resources loaded through data reduction proxy."/>
  <affected-histogram
      name="PageLoad.Clients.DataReductionProxy.Experimental.CompletedResources.Network"/>
</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="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.PaintTiming.NavigationToFirstMeaningfulPaint"/>
  <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 name="AutoGenerated"/>
  <suffix 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="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.OptimizationFilterStatus"/>
  <affected-histogram name="Previews.OptOut.UserOptedOut"/>
</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."/>
  <suffix name="Resident" label="Only counting resident memory."/>
  <suffix name="SharedMemoryFootprint" label="Only counting shared memory."/>
  <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="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="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="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.QueueDuration"/>
  <affected-histogram name="ServiceWorkerCache.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="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="Experimental"/>
  <suffix name="Original"/>
  <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="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"/>
  <suffix name="APP_SETTING" label="APP_SETTING"/>
  <suffix name="ARTICLE" label="ARTICLE"/>
  <suffix name="AUTOFILL" label="AUTOFILL"/>
  <suffix name="AUTOFILL_PROFILE" label="AUTOFILL_PROFILE"/>
  <suffix name="AUTOFILL_WALLET" label="AUTOFILL_WALLET"/>
  <suffix name="AUTOFILL_WALLET_METADATA" label="AUTOFILL_WALLET_METADATA"/>
  <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"/>
  <suffix name="MANAGED_USER_SETTING" label="MANAGED_USER_SETTING"/>
  <suffix name="MANAGED_USER_SHARED_SETTING"
      label="MANAGED_USER_SHARED_SETTING"/>
  <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="PRIORITY_PREFERENCE" label="PRIORITY_PREFERENCE"/>
  <suffix name="SEARCH_ENGINE" label="SEARCH_ENGINE"/>
  <suffix name="SESSION" label="SESSION"/>
  <suffix name="SYNCED_NOTIFICATION" label="SYNCED_NOTIFICATION"/>
  <suffix name="SYNCED_NOTIFICATION_APP_INFO"
      label="SYNCED_NOTIFICATION_APP_INFO"/>
  <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="WIFI_CREDENTIAL" label="WIFI_CREDENTIAL"/>
  <affected-histogram name="Sync.DuplicateClientTagHashInApplyPendingUpdates"/>
  <affected-histogram name="Sync.DuplicateClientTagHashInGetUpdatesResponse"/>
  <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"/>
  <affected-histogram name="Sync.ModelTypeEntityChange"/>
  <affected-histogram name="Sync.ModelTypeMemoryKB"/>
</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="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="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="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>
