<!--
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.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.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">
  <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">
  <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.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.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="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.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. 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.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 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 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 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 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 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 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 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 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 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 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 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>
  <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">
  <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.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 click of a search result.
  </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.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.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="M71">
  <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) 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) 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="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.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.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.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.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.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.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.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">
  <owner>rogerm@chromium.org</owner>
  <summary>The HTTP response 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.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.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">
  <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.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.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">
  <owner>rogerm@chromium.org</owner>
  <summary>The HTTP response code returned on 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.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 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="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">
  <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">
  <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.

    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.Orientation" enum="DecodedImageOrientation">
  <owner>rob.buis@samsung.org</owner>
  <summary>Image orientation inferred during decode.</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.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="M71">
  <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="M71">
  <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">
<!-- 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">
<!-- 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.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 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">
  <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.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">
  <owner>anandc@chromium.org</owner>
  <owner>sergeyu@chromium.org</owner>
  <summary>
    Recorded every time a Chromoting connection enters a new state.
  </summary>
</histogram>

<histogram name="Chromoting.Connections.Durations.Closed" units="minutes">
  <owner>anandc@chromium.org</owner>
  <owner>sergeyu@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">
  <owner>anandc@chromium.org</owner>
  <owner>sergeyu@chromium.org</owner>
  <summary>The duration of sessions that failed to connect.</summary>
</histogram>

<histogram name="Chromoting.Connections.Times.ToAuthenticate" units="ms">
  <owner>anandc@chromium.org</owner>
  <owner>sergeyu@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">
  <owner>anandc@chromium.org</owner>
  <owner>sergeyu@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">
  <owner>anandc@chromium.org</owner>
  <owner>sergeyu@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">
  <owner>anandc@chromium.org</owner>
  <owner>sergeyu@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">
  <owner>anandc@chromium.org</owner>
  <owner>sergeyu@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">
  <owner>anandc@chromium.org</owner>
  <owner>sergeyu@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">
  <owner>anandc@chromium.org</owner>
  <owner>sergeyu@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">
  <owner>anandc@chromium.org</owner>
  <owner>sergeyu@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">
  <owner>anandc@chromium.org</owner>
  <owner>sergeyu@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">
  <owner>anandc@chromium.org</owner>
  <owner>sergeyu@chromium.org</owner>
  <summary>The time to paint a decoded video packet on the client.</summary>
</histogram>

<histogram name="Chromoting.Video.RoundTripLatency" units="ms">
  <owner>anandc@chromium.org</owner>
  <owner>sergeyu@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">
  <owner>anandc@chromium.org</owner>
  <owner>sergeyu@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.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.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.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">
  <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">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The number of confirmed bad modules found during module enumeration.
  </summary>
</histogram>

<histogram name="Conflicts.EnumerateLoadedModules" units="ms">
  <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">
  <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">
  <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">
  <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">
  <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">
  <owner>chrisha@chromium.org</owner>
  <summary>
    The number of suspected bad modules found during module enumeration.
  </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.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.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.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.PageViewTime" units="ms">
  <owner>fgorski@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.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="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="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.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="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 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">
  <obsolete>
    Deprecated 2018/05.
  </obsolete>
  <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="%">
  <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">
  <obsolete>
    Deprecated March 2018. Percent no longer displayed.
  </obsolete>
  <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="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 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.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">
  <owner>asanka@chromium.org</owner>
  <summary>The length of downloads for serves that accept byte ranges.</summary>
</histogram>

<histogram name="Download.AcceptRangesMissingOrInvalid.KBytes" units="KB"
    expires_after="2018-08-30">
  <owner>asanka@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"
    expires_after="2018-08-30">
  <owner>asanka@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>asanka@chromium.org</owner>
  <summary>The actual bandwidth (per read) of a download.</summary>
</histogram>

<histogram name="Download.ApiFunctions" enum="DownloadFunctions">
  <owner>asanka@chromium.org</owner>
  <summary>Downloads extension API function calls.</summary>
</histogram>

<histogram name="Download.AttachmentServices.Duration" units="ms">
  <owner>asanka@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" expires_after="2018-08-30">
  <owner>asanka@chromium.org</owner>
  <summary>
    Result of invoking (or attempting to invoke) Windows Attachment Services API
    via IAttachmentExecute::Save().
  </summary>
</histogram>

<histogram name="Download.BandwidthDiskBytesPerSecond"
    expires_after="2018-08-30">
  <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>asanka@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>asanka@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>asanka@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>asanka@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>asanka@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>asanka@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>asanka@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>asanka@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>asanka@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>asanka@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>asanka@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"
    expires_after="2018-08-30">
  <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"
    expires_after="2018-08-30">
  <owner>asanka@chromium.org</owner>
  <summary>Time taken to query all downloads from history DB.</summary>
</histogram>

<histogram name="Download.Database.UpdateDownloadDuration" units="ms"
    expires_after="2018-08-30">
  <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" expires_after="2018-08-30">
  <owner>asanka@chromium.org</owner>
  <summary>Reason for dropping a record read in from the DB.</summary>
</histogram>

<histogram name="Download.DatabaseRemoveDownloadsCount"
    expires_after="2018-08-30">
  <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>asanka@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>asanka@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">
  <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>asanka@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>asanka@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>asanka@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>asanka@chromium.org</owner>
  <summary>The size of successfully completed downloads.</summary>
</histogram>

<histogram name="Download.DownloadWarningShown" enum="DownloadItem.DangerType">
  <owner>asanka@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>asanka@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"
    expires_after="2018-08-30">
  <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" expires_after="2018-08-30">
  <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" expires_after="2018-08-30">
  <owner>asanka@chromium.org</owner>
  <summary>
    The number of buffers in a call to DownloadManager::UpdateDownload.
  </summary>
</histogram>

<histogram name="Download.FirstOpenTime" units="ms" expires_after="2018-08-30">
  <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>asanka@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>asanka@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.InterruptedAtEndError" enum="NetErrorCodes">
  <owner>asanka@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>asanka@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>asanka@chromium.org</owner>
  <summary>
    Positive net error code that caused a download to be interrupted.
  </summary>
</histogram>

<histogram name="Download.InterruptedOverrunBytes">
  <owner>asanka@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>asanka@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>asanka@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>asanka@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" expires_after="2018-08-30">
  <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>asanka@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>asanka@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" expires_after="2018-08-30">
  <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" expires_after="2018-08-30">
  <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" expires_after="2018-08-30">
  <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" expires_after="2018-08-30">
  <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>asanka@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>asanka@chromium.org</owner>
  <summary>The number of unopened downloads, when one is opened.</summary>
</histogram>

<histogram name="Download.OpenTime" units="ms">
  <owner>asanka@chromium.org</owner>
  <summary>
    The time between a download completing and the file being opened.
  </summary>
</histogram>

<histogram name="Download.OriginStateOnFullResumption"
    enum="DownloadOriginStateOnResumption" expires_after="2018-08-30">
  <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" expires_after="2018-08-30">
  <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>asanka@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="%">
  <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="%">
  <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">
  <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">
  <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>asanka@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="%"
    expires_after="2018-08-30">
  <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>asanka@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"
    expires_after="2018-08-30">
  <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"
    expires_after="2018-08-30">
  <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" expires_after="2018-08-30">
  <owner>asanka@chromium.org</owner>
  <summary>
    The number of download items on the shelf when it closes automatically.
  </summary>
</histogram>

<histogram name="Download.ShelfSizeOnUserClose" expires_after="2018-08-30">
  <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>asanka@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" expires_after="2018-08-30">
  <owner>asanka@chromium.org</owner>
  <summary>Time between the start of a download and its completion.</summary>
</histogram>

<histogram name="Download.TimeToRenameFailureAfterInitialFailure" units="ms"
    expires_after="2018-08-30">
  <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"
    expires_after="2018-08-30">
  <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>asanka@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>asanka@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>asanka@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 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>progressive-web-metrics@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.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.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="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="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">
  <owner>asargent@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">
  <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">
  <owner>asargent@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">
  <owner>asargent@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">
  <owner>asargent@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">
  <owner>asargent@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">
  <owner>asargent@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">
  <owner>asargent@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">
  <owner>asargent@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">
  <owner>asargent@chromium.org</owner>
  <summary>The result of the verifier trying to get a new signature.</summary>
</histogram>

<histogram name="ExtensionInstallVerifier.InitResult"
    enum="ExtensionInstallVerifierInitResult">
  <owner>asargent@chromium.org</owner>
  <summary>
    The result of initialization for the extension install verifier.
  </summary>
</histogram>

<histogram name="ExtensionInstallVerifier.MustRemainDisabled"
    enum="ExtensionInstallVerifierMustRemainDisabled">
  <owner>asargent@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">
  <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.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">
  <owner>rdevlin.cronin@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.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.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">
  <owner>asargent@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">
  <owner>asargent@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">
  <owner>asargent@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">
  <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.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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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="%">
  <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">
  <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">
  <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">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Number of blocking scripts injected at document end by extensions.
  </summary>
</histogram>

<histogram name="Extensions.InjectEnd_ScriptCount">
  <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">
  <owner>rdevlin.cronin@chromium.org</owner>
  <summary>
    Number of blocking scripts injected at document idle by extensions.
  </summary>
</histogram>

<histogram name="Extensions.InjectIdle_ScriptCount">
  <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">
  <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">
  <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.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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <owner>asargent@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">
  <owner>asargent@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">
  <owner>asargent@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">
  <owner>asargent@chromium.org</owner>
  <summary>Length of the initial path to the CRX to be unpacked.</summary>
</histogram>

<histogram name="Extensions.SandboxUnpackLinkFreeCrxPathLength">
  <owner>asargent@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">
  <owner>asargent@chromium.org</owner>
  <summary>Count the number of times a sandboxed CRX unpack succeeds.</summary>
</histogram>

<histogram name="Extensions.SandboxUnpackSuccessCantGetCrxSize">
  <owner>asargent@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">
  <owner>asargent@chromium.org</owner>
  <summary>
    Time taken to unpack an extension, when the unpack succeeds.
  </summary>
</histogram>

<histogram name="Extensions.SandboxUnpackTempCrxPathLength">
  <owner>asargent@chromium.org</owner>
  <summary>
    Length of the path of the temporary copy of a CRX made during unpacking.
  </summary>
</histogram>

<histogram name="Extensions.SandboxUnpackUnpackedCrxPathLength">
  <owner>asargent@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">
  <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">
  <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.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">
  <owner>asargent@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">
  <owner>asargent@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">
  <owner>asargent@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">
  <owner>asargent@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="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="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.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="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">
  <owner>jianli@chromium.org</owner>
  <summary>Number of times when gcm.unregister API is called.</summary>
</histogram>

<histogram name="GCM.CheckinCompleteTime" units="ms">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <owner>jianli@chromium.org</owner>
  <summary>
    Number of registrations restored from the persistent store at startup.
  </summary>
</histogram>

<histogram name="GCM.SendMessageStatus" enum="GCMSendMessageStatus">
  <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">
  <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">
  <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">
  <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">
  <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">
  <owner>Please list the metric's owners. Add more owner tags as needed.</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.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">
  <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.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.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.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="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.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="2018-08-30">
  <owner>mpearson@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">
  <owner>mpearson@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="2018-08-30">
  <owner>mpearson@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="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.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.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">
  <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">
  <owner>jianli@chromium.org</owner>
  <summary>Number of retries before DeleteToken succeeds.</summary>
</histogram>

<histogram name="InstanceID.Enabled" enum="BooleanEnabled">
  <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">
  <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.RequestStatus"
    enum="GCMRegistrationRequestStatus">
  <owner>juyik@chromium.org</owner>
  <summary>Status code of the outcome of GetToken request.</summary>
</histogram>

<histogram name="InstanceID.GetToken.RetryCount">
  <owner>jianli@chromium.org</owner>
  <summary>Number of retries before GetToken succeeds.</summary>
</histogram>

<histogram name="InstanceID.RestoredIDCount">
  <owner>jianli@chromium.org</owner>
  <summary>
    Number of Instance IDs restored from the persistent store at startup.
  </summary>
</histogram>

<histogram name="InstanceID.RestoredTokenCount">
  <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.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.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.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="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">
  <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.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="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"
    expires_after="2018-08-30">
  <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" expires_after="2018-08-30">
  <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" expires_after="2018-08-30">
  <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"
    expires_after="2018-08-30">
  <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"
    expires_after="2018-08-30">
  <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"
    expires_after="2018-08-30">
  <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"
    expires_after="2018-08-30">
  <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"
    expires_after="2018-08-30">
  <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" expires_after="2018-08-30">
  <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"
    expires_after="2018-08-30">
  <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>jrummell@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.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.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.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.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.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="2018-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="%" expires_after="2018-08-30">
  <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 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">
  <owner>scherkus@chromium.org</owner>
  <summary>
    URL scheme used with HTML5 media. (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.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.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">
  <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.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.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.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" expires_after="M70">
  <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" expires_after="M70">
  <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,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.
  </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.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.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.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>awdf@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.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.Setting.DirectoryType"
    enum="DownloadLocationDirectoryType">
  <owner>xingliu@chromium.org</owner>
  <summary>
    Records the directory type when the user selects the download directory
    through download location dialog or selects the download directory in
    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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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="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">
  <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">
  <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">
  <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.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.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.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.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.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">
  <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">
  <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.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">
  <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">
  <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">
  <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">
  <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.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.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.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">
  <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">
  <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">
  <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="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.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.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>treib@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>treib@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>treib@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>treib@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>treib@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>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.
  </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>treib@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>treib@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>treib@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>treib@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>awdf@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.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">
  <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.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.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.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>
    Can a recent page be saved or not? Logged for all attempts to save
  </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>
    Enum-based buckets reflect the number of days the Chrome was used in each
    specific way: - Not used at all during whole day. - Started, but failed to
    successfully navigate. - Only navigated to offline pages locally saved on
    the device. - Only navigated online. - Navigated to both online and offline
    pages. This data is accumulated locally and reported when connection is
    likely to succeed (usually after successful online navigation).
  </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>
    Whether the Offline Pages Prefetch was effectively enabled during the day.
    Determined by a combination of flags and user preferences. Reported at the
    same moment as OfflinePages.OfflineUsage.
  </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">
  <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 size of archive file that started being downloaded by offline page
    prefetching.
  </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>
    Enum-based buckets reflect the number of days the Offline Pages Prefetch was
    able to fetch new pages, and/or user was opening those pages. This data is
    accumulated locally when fetch operations complete or when prefetched pages
    are opened (often happens in background or while offline respectively), and
    reported when connection is likely to succeed (usually after successful
    online navigation).
  </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>
    Result of publishing downloaded page. CANCELLED means the page to publish
    isn't found. ALREADY_EXISTS means the page have already been published
    before.
  </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">
  <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">
  <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="2018-08-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"
    expires_after="2018-08-30">
  <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" expires_after="2018-08-30">
  <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.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.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.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.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="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">
  <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">
  <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.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.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.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">
  <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="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>melandory@chromium.org</owner>
  <summary>
    Records the action taken with a password credential entry on Android.
  </summary>
</histogram>

<histogram name="PasswordManager.Android.PasswordCredentialEntry.Password"
    enum="PasswordManagerAndroidWebsiteActions">
  <owner>jdoerrie@chromium.org</owner>
  <owner>melandory@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="PasswordManagerAndroidWebsiteActions">
  <owner>jdoerrie@chromium.org</owner>
  <owner>melandory@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>melandory@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>melandory@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>melandory@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.NeedToBeCleaned"
    enum="BooleanNeedsClearing">
  <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.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.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">
  <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">
  <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.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.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.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.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.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">
  <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">
  <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.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 name="PasswordManager.TotalAccounts">
  <owner>gcasto@chromium.org</owner>
  <owner>vabr@chromium.org</owner>
  <summary>
    The number of accounts stored in the password manager (across all sites)
  </summary>
</histogram>

<histogram 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="M71">
  <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" expires_after="M70">
  <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">
  <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.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 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="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">
  <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">
  <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 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="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">
  <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">
  <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">
  <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">
  <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.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="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="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.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">
  <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>asanka@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>asanka@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>asanka@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>asanka@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>asanka@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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <owner>vakh@chromium.org</owner>
  <summary>Version read from one of the PrefixSet files.</summary>
</histogram>

<histogram name="SB2.PrefixSetWrite" units="ms">
  <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.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.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">
  <owner>vakh@chromium.org</owner>
  <summary>Version read from the store file.</summary>
</histogram>

<histogram name="SB2.SubPrefixes">
  <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">
  <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">
  <owner>vakh@chromium.org</owner>
  <summary>The payload size of update requests to the server.</summary>
</histogram>

<histogram name="SB2.UpdateResult" enum="SB2UpdateResult">
  <owner>vakh@chromium.org</owner>
  <summary>Result from trying to update the SafeBrowsing data.</summary>
</histogram>

<histogram name="SB2.UpdateSize" units="bytes">
  <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">
  <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>asanka@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" expires_after="2018-08-30">
  <owner>asanka@chromium.org</owner>
  <summary>Time taken to complete a PPAPIDownloadRequest.</summary>
</histogram>

<histogram name="SBClientDownload.PPAPIDownloadRequest.RequestOutcome"
    enum="SBClientDownloadPPAPIDownloadRequestOutcome"
    expires_after="2018-08-30">
  <owner>asanka@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" expires_after="2018-08-30">
  <owner>asanka@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.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.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.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.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.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.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.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.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.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">
  <owner>mpearson@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">
  <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.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.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.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.
  </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.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.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">
  <owner>mpearson@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">
  <owner>mpearson@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.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">
  <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">
  <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">
  <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="2018-08-30">
  <owner>mpearson@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">
  <owner>mpearson@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">
  <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">
  <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">
  <owner>danielpark@chromium.org</owner>
  <summary>
    If the home button is enabled or disabled at cold-start. This is only
    recorded if the home page feature flag is enabled or the home button is
    partner provided.
  </summary>
</histogram>

<histogram name="Settings.ShowHomeButtonPreferenceStateChanged"
    enum="BooleanEnabled">
  <owner>danielpark@chromium.org</owner>
  <summary>
    The new state of the show home button preference after it is changed by the
    user.
  </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="2018-08-30">
  <owner>mpearson@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">
  <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">
  <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">
  <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.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="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.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.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="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.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::Connection.
  </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::Connection.
  </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::Connection.
  </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::Connection.
  </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.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.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">
  <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.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.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">
  <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.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.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 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.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.h 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">
  <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.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.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.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">
  <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.
  </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.
  </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.
  </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.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="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.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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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">
  <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.ShellExtensionsCount" 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 takes
    place.
  </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">
  <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">
  <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.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.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.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.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">
  <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="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.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="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">
  <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>bradnelson@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>bradnelson@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.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>bradnelson@chromium.org</owner>
  <owner>titzer@chromium.org</owner>
  <owner>eholk@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>bradnelson@chromium.org</owner>
  <owner>titzer@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>bradnelson@chromium.org</owner>
  <owner>titzer@chromium.org</owner>
  <summary>Peak memory used to compile a WebAssembly function.</summary>
</histogram>

<histogram name="V8.WasmCompileModuleMicroSeconds" units="microseconds">
  <owner>bradnelson@chromium.org</owner>
  <owner>titzer@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>bradnelson@chromium.org</owner>
  <owner>titzer@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>bradnelson@chromium.org</owner>
  <owner>titzer@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>bradnelson@chromium.org</owner>
  <owner>titzer@chromium.org</owner>
  <summary>Peak memory used to decode a WebAssembly module.</summary>
</histogram>

<histogram name="V8.WasmExecutionTimeMicroSeconds" units="microseconds">
  <owner>bradnelson@chromium.org</owner>
  <owner>titzer@chromium.org</owner>
  <owner>eholk@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>bradnelson@chromium.org</owner>
  <owner>titzer@chromium.org</owner>
  <summary>Size of a WebAssembly function.</summary>
</histogram>

<histogram name="V8.WasmFunctionsPerModule" units="functions">
  <owner>bradnelson@chromium.org</owner>
  <owner>titzer@chromium.org</owner>
  <summary>Function count in each WebAssembly module.</summary>
</histogram>

<histogram name="V8.WasmInstantiateModuleMicroSeconds" units="microseconds">
  <owner>bradnelson@chromium.org</owner>
  <owner>titzer@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>bradnelson@chromium.org</owner>
  <owner>titzer@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>bradnelson@chromium.org</owner>
  <owner>titzer@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>bradnelson@chromium.org</owner>
  <owner>titzer@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>bradnelson@chromium.org</owner>
  <owner>titzer@chromium.org</owner>
  <owner>eholk@chromium.org</owner>
  <summary>
    The result of attempts to allocate WebAssembly.Memory buffers.
  </summary>
</histogram>

<histogram name="V8.WasmMinMemPagesCount" units="pages">
  <owner>bradnelson@chromium.org</owner>
  <owner>titzer@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>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>bradnelson@chromium.org</owner>
  <owner>titzer@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">
  <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">
  <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="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">
  <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.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.Agc2.FixedDigitalGainCurveRegion.Identity"
    units="seconds">
  <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 attanuating gain is
    applied.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.Agc2.FixedDigitalGainCurveRegion.Knee"
    units="seconds">
  <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 attanuating gain is applied.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.Agc2.FixedDigitalGainCurveRegion.Limiter"
    units="seconds">
  <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 attanuating gain is
    applied.
  </summary>
</histogram>

<histogram name="WebRTC.Audio.Agc2.FixedDigitalGainCurveRegion.Saturation"
    units="seconds">
  <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 attanuating gain is
    applied.
  </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.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.AddCandidate"
    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="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="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.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="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="BackgroundFetchEvents" separator=".">
  <suffix name="AbortEvent" label="BackgroundFetchAbortEvent"/>
  <suffix name="ClickEvent" label="BackgroundFetchClickEvent"/>
  <suffix name="FailEvent" label="BackgroundFetchFailEvent"/>
  <suffix name="FetchedEvent" label="BackgroundFetchedEvent"/>
  <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="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"/>
</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.ActivateDuration2"/>
  <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.MainAndImplFrameTimeDelta2"/>
  <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="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"/>
  <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="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="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="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"/>
</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="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_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_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="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="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="LevelDBOpenResults" separator=".">
  <suffix name="BudgetManager"
      label="Database for storing budget information for origins."/>
  <suffix name="DomDistillerStore" label="Databases for DomDistillerStore"/>
  <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.Open"/>
</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="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="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="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="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">
  <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="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.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="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="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.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="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="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"
      label="The time to perform the 'batch' operation on a ServiceWorker
             Cache, which batches other basic operations."/>
  <suffix name="Keys"
      label="The time to perform the 'keys' operation on a ServiceWorker
             Cache, which returns all of the keys in the cache."/>
  <suffix name="Match"
      label="The time to perform the 'match' operation on a ServiceWorker
             Cache, which does a lookup."/>
  <suffix name="MatchAll"
      label="The time to perform the 'matchAll' operation on a ServiceWorker
             Cache, which does a mass cache lookup."/>
  <affected-histogram name="ServiceWorkerCache.Cache"/>
</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"
      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="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="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."/>
  <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="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.ModelTypeCount">
    <obsolete>
      Deprecated 7/2018. Replaced by Sync.ModelTypeCount2.
    </obsolete>
  </affected-histogram>
  <affected-histogram name="Sync.ModelTypeCount2"/>
  <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.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.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.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="VideoDecodeStatsDBOperations" separator=".">
  <suffix name="Destroy" label="Success status for destroying the DB"/>
  <suffix name="Initialize" label="Success status for initializing the DB."/>
  <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="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>
