<!--
Copyright 2020 The Chromium Authors
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->

<!--
This file is used to generate a comprehensive list of Dev histograms
along with a detailed description for each histogram.

For best practices on writing histogram descriptions, see
https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md

Please follow the instructions in the OWNERS file in this directory to find a
reviewer. If no OWNERS file exists, please consider signing up at
go/reviewing-metrics (Googlers only), as all subdirectories are expected to
have an OWNERS file. As a last resort you can send the CL to
chromium-metrics-reviews@google.com.
-->

<histogram-configuration>

<histograms>

<histogram name="DevTools.ActionTaken" enum="DevToolsAction"
    expires_after="2024-02-25">
  <owner>alph@chromium.org</owner>
  <owner>yangguo@chromium.org</owner>
  <owner>bmeurer@chromium.org</owner>
  <summary>Specified DevTools action has been taken.</summary>
</histogram>

<histogram name="DevTools.AnimationPlaybackRateChanged"
    enum="DevToolsAnimationPlaybackRateChanged" expires_after="2024-08-08">
  <owner>yangguo@chromium.org</owner>
  <owner>changhaohan@chromium.org</owner>
  <owner>ergunsh@chromium.org</owner>
  <summary>Playback rate is changed in Animations panel in DevTools.</summary>
</histogram>

<histogram name="DevTools.AnimationPointDragged"
    enum="DevToolsAnimationPointDragged" expires_after="2024-08-08">
  <owner>yangguo@chromium.org</owner>
  <owner>changhaohan@chromium.org</owner>
  <owner>ergunsh@chromium.org</owner>
  <summary>
    An animation's duration or delay updated visually by dragging the animation
    point in Animations panel in DevTools.
  </summary>
</histogram>

<histogram name="DevTools.BadgeActivated" enum="DevToolsBadgeActivated"
    expires_after="2024-03-03">
  <owner>ergunsh@chromium.org</owner>
  <owner>changhaohan@chromium.org</owner>
  <owner>bmeurer@chromium.org</owner>
  <summary>Records the badge usages in the Elements panel.</summary>
</histogram>

<histogram name="DevTools.BreakpointEditDialogRevealedFrom"
    enum="DevToolsBreakpointEditDialogRevealedFrom" expires_after="2024-02-04">
  <owner>yangguo@chromium.org</owner>
  <owner>jarin@chromium.org</owner>
  <owner>kimanh@chromium.org</owner>
  <summary>
    Records the ways in which the Breakpoint Edit Dialog was opened.
  </summary>
</histogram>

<histogram name="DevTools.BreakpointsRestoredFromStorageCount"
    enum="DevToolsBreakpointsRestoredFromStorageCount"
    expires_after="2024-03-01">
  <owner>jarin@chromium.org</owner>
  <owner>bmeurer@chromium.org</owner>
  <summary>
    Records the number of breakpoints restored from the storage. The breakpoint
    count is restored when the debugger is initialized.
  </summary>
</histogram>

<histogram name="DevTools.BreakpointWithConditionAdded"
    enum="DevToolsBreakpointWithConditionAdded" expires_after="2024-02-04">
  <owner>yangguo@chromium.org</owner>
  <owner>jarin@chromium.org</owner>
  <owner>kimanh@chromium.org</owner>
  <summary>
    Records when a breakpoint with a condition was added (logpoint or
    conditional breakpoint).
  </summary>
</histogram>

<histogram name="DevTools.CDPCommandFrom{ClientType}" enum="CDPCommands"
    expires_after="2024-02-20">
  <owner>wolfi@chromium.org</owner>
  <owner>dsv@chromium.org</owner>
  <owner>yangguo@chromium.org</owner>
  <summary>
    Records CDP command usage originating from {ClientType}. This is recorded
    whenever a CDP session receives and handles a command from a CDP client.
  </summary>
  <token key="ClientType">
    <variant name="DevTools"/>
    <variant name="Extension" summary="an extension"/>
    <variant name="Other" summary="other sources"/>
    <variant name="RemoteDebugger" summary="remote debugging"/>
  </token>
</histogram>

<histogram name="DevTools.ColorConvertedFrom" enum="DevToolsColorConvertedFrom"
    expires_after="2024-02-04">
  <owner>ergunsh@chromium.org</owner>
  <owner>changhaohan@chromium.org</owner>
  <owner>bmeurer@chromium.org</owner>
  <owner>yangguo@chromium.org</owner>
  <summary>Records the color conversion menu usage.</summary>
</histogram>

<histogram name="DevTools.ColorPickerOpenedFrom"
    enum="DevToolsColorPickerOpenedFrom" expires_after="2023-12-01">
  <owner>ergunsh@chromium.org</owner>
  <owner>changhaohan@chromium.org</owner>
  <owner>bmeurer@chromium.org</owner>
  <owner>yangguo@chromium.org</owner>
  <summary>Records the color picker usage.</summary>
</histogram>

<histogram name="DevTools.CSSHintShown" enum="DevToolsCSSHintShown"
    expires_after="2024-02-20">
  <owner>changhaohan@chromium.org</owner>
  <owner>mathias@chromium.org</owner>
  <owner>yangguo@chromium.org</owner>
  <summary>
    Records how many times different CSS hint types were shown in the Styles
    panel in DevTools. It's recorded when a hint icon is shown in the Styles
    panel.
  </summary>
</histogram>

<histogram name="DevTools.CSSPropertyDocumentation"
    enum="DevToolsCSSPropertyDocumentation" expires_after="2024-02-04">
  <owner>ergunsh@chromium.org</owner>
  <owner>changhaohan@chromium.org</owner>
  <owner>bmeurer@chromium.org</owner>
  <owner>yangguo@chromium.org</owner>
  <summary>
    Records the CSS Property documentation usage and feature toggles.
  </summary>
</histogram>

<histogram name="DevTools.DeveloperResourceLoaded"
    enum="DevToolsDeveloperResourceLoaded" expires_after="2024-02-25">
  <owner>yangguo@chromium.org</owner>
  <owner>bmeurer@chromium.org</owner>
  <summary>
    Records for each developer resource load that the DevTools front-end issues
    (e.g. to load a source map) several enum values encoding which load method
    was used, whether a fallback was used (and why), and whether the method
    succeeded or not.

    Some explanations to make sense of the enum values:

    LoadsThroughPage = LoadThroughPageViaTarget + LoadThroughPageViaFrame

    SuccessfulLoadsThroughPage = LoadsThroughPage - LoadThroughPageFailure

    LoadThroughPageFallback is the number of loads that can in principle be
    loaded through the page, but had to use the fallback because either loading
    through the page failed (LoadThroughPageFailure), or there was insufficient
    information to dispatch the load through the page; the number of such loads
    can be computed as LoadThroughPageFallback - LoadThroughPageFailure.

    The number of loads not eligible for loading through the page can be
    computed as FallbackPerOverride + FallbackPerProtocol, where
    FallbackPerOverride indicates loads where the DevTools user disabled loading
    through the page via an override, and FallbackPerProtocol indicates loads
    where DevTools could not load the resource via the page due to the
    resource's protocol scheme.

    The total number of loads that used the fallback can be computed as
    LoadThroughPageFallback + FallbackPerOverride + FallbackPerProtocol. Adding
    SuccessfulLoadsThroughPage to that number gives the total number of loads.
  </summary>
</histogram>

<histogram name="DevTools.DeveloperResourceScheme"
    enum="DevToolsDeveloperResourceScheme" expires_after="2024-02-25">
  <owner>yangguo@chromium.org</owner>
  <owner>bmeurer@chromium.org</owner>
  <summary>
    Records for each developer resource load that the DevTools front-end issues
    (e.g. to load a source map) one enum value that records the scheme of the
    resource's URL. For HTTP and HTTPS schemes, there are two enums each: One
    that signifies that the host was localhost, and one that signifies that it
    wasn't, i.e. to get the total number of resource loads using a HTTP scheme
    one must add the numbers of SchemeHttp and SchemeHttpLocalhost.

    The value SchemeUnknown signifies that parsing the scheme from the URL
    failed (note that at the point the enum is recorded, only absolute URLs
    arrive).
  </summary>
</histogram>

<histogram name="DevTools.Elements.SidebarTabShown"
    enum="DevToolsElementsSidebarTab" expires_after="2024-03-03">
  <owner>bmeurer@chromium.org</owner>
  <owner>changhaohan@chromium.org</owner>
  <summary>
    Specified DevTools sidebar tab was shown in the Elements panel.
  </summary>
</histogram>

<histogram name="DevTools.ExperimentDisabled" enum="DevtoolsExperiments"
    expires_after="2024-02-25">
  <owner>yangguo@chromium.org</owner>
  <owner>changhaohan@chromium.org</owner>
  <summary>
    Fired when a devtools experiment is disabled from the experiments tab.
  </summary>
</histogram>

<histogram name="DevTools.ExperimentDisabledAtLaunch"
    enum="DevtoolsExperiments" expires_after="2024-07-24">
  <owner>yangguo@chromium.org</owner>
  <owner>changhaohan@chromium.org</owner>
  <summary>
    Fires for each experiment that is disabled at the time of Devtools Launch.
  </summary>
</histogram>

<histogram name="DevTools.ExperimentEnabled" enum="DevtoolsExperiments"
    expires_after="2024-02-25">
  <owner>yangguo@chromium.org</owner>
  <owner>changhaohan@chromium.org</owner>
  <summary>
    Fired when a devtools experiment is enabled from the experiments tab.
  </summary>
</histogram>

<histogram name="DevTools.ExperimentEnabledAtLaunch" enum="DevtoolsExperiments"
    expires_after="2024-02-25">
  <owner>yangguo@chromium.org</owner>
  <owner>changhaohan@chromium.org</owner>
  <summary>
    Fires for each experiment that is enabled at the time of Devtools Launch.
  </summary>
</histogram>

<histogram name="DevTools.InlineScriptParsed" enum="DevToolsVMInlineScriptType"
    expires_after="2024-02-04">
  <owner>yangguo@chromium.org</owner>
  <owner>jarin@chromium.org</owner>
  <owner>kimanh@chromium.org</owner>
  <summary>Records the inline script types that are parsed.</summary>
</histogram>

<histogram name="DevTools.InspectElement" units="ms" expires_after="2024-02-04">
  <owner>yangguo@chromium.org</owner>
  <owner>bmeurer@chromium.org</owner>
  <summary>
    Time to load Developer Tools when user clicks Inspect Element in the context
    menu.
  </summary>
</histogram>

<histogram name="DevTools.IssueCreated" enum="DevToolsIssueCreated"
    expires_after="2024-02-12">
  <owner>yangguo@chromium.org</owner>
  <owner>dsv@chromium.org</owner>
  <summary>
    Records the issue type when an issue is created for the Issues Panel.
  </summary>
</histogram>

<histogram name="DevTools.IssuesPanelIssueExpanded"
    enum="DevToolsIssuesPanelIssueExpanded" expires_after="2024-02-25">
  <owner>yangguo@chromium.org</owner>
  <owner>dsv@chromium.org</owner>
  <summary>
    Records which type of issue is expanded in the issues panel.
  </summary>
</histogram>

<histogram name="DevTools.IssuesPanelOpenedFrom"
    enum="DevToolsIssuesPanelOpenedFrom" expires_after="2023-12-01">
  <owner>yangguo@chromium.org</owner>
  <owner>dsv@chromium.org</owner>
  <summary>
    Records which UI element is being used to open the Issues Panel.
  </summary>
</histogram>

<histogram name="DevTools.IssuesPanelResourceOpened"
    enum="DevToolsIssuesPanelResourceOpened" expires_after="2024-03-05">
  <owner>yangguo@chromium.org</owner>
  <owner>dsv@chromium.org</owner>
  <summary>
    Records which resource from what issue category is opened in the issue
    panel.
  </summary>
</histogram>

<histogram name="DevTools.KeybindSetSettingChanged" enum="DevToolsKeybindSets"
    expires_after="2023-04-16">
  <owner>yangguo@chromium.org</owner>
  <owner>jalyn@microsoft.com</owner>
  <owner>leo.lee@microsoft.com</owner>
  <summary>
    Recorded when the user changes which keyboard shortcut presets they are
    using in the DevTools.
  </summary>
</histogram>

<histogram name="DevTools.KeyboardShortcutFired"
    enum="DevToolsKeyboardShortcutAction" expires_after="2024-02-25">
  <owner>yangguo@chromium.org</owner>
  <owner>jalyn@microsoft.com</owner>
  <owner>leo.lee@microsoft.com</owner>
  <summary>
    Recorded when a DevTools keyboard shortcut has been processed and
    successfully executed its action.
  </summary>
</histogram>

<histogram name="DevTools.Language" enum="DevToolsLanguage"
    expires_after="2023-12-01">
  <owner>bmeurer@chromium.org</owner>
  <owner>szuend@chromium.org</owner>
  <owner>yangguo@chromium.org</owner>
  <summary>
    The actual display language used for the DevTools UI. Logged once per
    DevTools session when DevTools is booted up.
  </summary>
</histogram>

<histogram base="true" name="DevTools.Launch" units="ms"
    expires_after="2024-03-17">
<!-- Name completed by histogram_suffixes name="DevToolsLaunchPanels" -->

  <owner>yangguo@chromium.org</owner>
  <owner>bmeurer@chromium.org</owner>
  <summary>
    Measures the time until a given tool is interactive during a cold start of
    DevTools.
  </summary>
</histogram>

<histogram name="DevTools.LighthouseCategoryUsed"
    enum="DevToolsLighthouseCategoryUsed" expires_after="2024-09-14">
  <owner>asraine@chromium.org</owner>
  <owner>paulirish@chromium.org</owner>
  <owner>cjamcl@chromium.org</owner>
  <summary>
    Records when a Lighthouse category was used to audit the page.
  </summary>
</histogram>

<histogram name="DevTools.LighthouseModeRun" enum="DevToolsLighthouseModeRun"
    expires_after="2024-02-04">
  <owner>asraine@chromium.org</owner>
  <owner>paulirish@chromium.org</owner>
  <owner>cjamcl@chromium.org</owner>
  <summary>Records which Lighthouse mode was used to audit the page.</summary>
</histogram>

<histogram name="DevTools.LinearMemoryInspector.RevealedFrom"
    enum="DevToolsLinearMemoryInspectorRevealedFrom" expires_after="2024-03-01">
  <owner>bmeurer@chromium.org</owner>
  <owner>kimanh@chromium.org</owner>
  <summary>
    Records the ways in which the Memory Inspector panel was opened.
  </summary>
</histogram>

<histogram name="DevTools.LinearMemoryInspector.Target"
    enum="DevToolsLinearMemoryInspectorTarget" expires_after="2024-03-01">
  <owner>bmeurer@chromium.org</owner>
  <owner>kimanh@chromium.org</owner>
  <summary>
    Records the inspection target via which the Memory Inspector was opened.
  </summary>
</histogram>

<histogram name="DevTools.ManifestSectionSelected"
    enum="DevToolsManifestSection" expires_after="2023-12-31">
  <owner>yangguo@chromium.org</owner>
  <owner>edgedevtools@microsoft.com</owner>
  <summary>
    Records when certain items of the Manifest dropdown submenu in the
    Application Tool are selected.
  </summary>
</histogram>

<histogram name="DevTools.NetworkPanelResponsePreviewOpened"
    enum="DevToolsMediaType" expires_after="2023-12-31">
  <owner>yangguo@chromium.org</owner>
  <owner>bmeurer@chromium.org</owner>
  <summary>
    Records the media types of files opened in the DevTools Network panel
    response preview.
  </summary>
</histogram>

<histogram name="DevTools.OpenedByAction" enum="DevToolsOpenedByAction"
    expires_after="2024-02-04">
  <owner>changhaohan@chromium.org</owner>
  <owner>yangguo@chromium.org</owner>
  <owner>mathias@chromium.org</owner>
  <summary>
    Recorded when a particular action was taken to launch DevTools.
  </summary>
</histogram>

<histogram name="DevTools.PanelClosed" enum="DevToolsPanel"
    expires_after="2024-02-04">
  <owner>yangguo@chromium.org</owner>
  <owner>bmeurer@chromium.org</owner>
  <summary>
    Specified DevTools panel was closed. Fires immediately after closing a panel
    using the &quot;x&quot; button in the panel title.
  </summary>
</histogram>

<histogram name="DevTools.PanelShown" enum="DevToolsPanel"
    expires_after="2024-02-04">
  <owner>yangguo@chromium.org</owner>
  <owner>bmeurer@chromium.org</owner>
  <summary>Specified DevTools panel was shown.</summary>
</histogram>

<histogram name="DevTools.RecordingAssertion" enum="DevToolsRecordingAssertion"
    expires_after="2024-03-13">
  <owner>jrandolf@chromium.org</owner>
  <owner>mathias@chromium.org</owner>
  <owner>yangguo@chromium.org</owner>
  <summary>Recorded when assertions are used/edited</summary>
</histogram>

<histogram name="DevTools.RecordingCodeToggled"
    enum="DevToolsRecordingCodeToggled" expires_after="2024-03-10">
  <owner>alexrudenko@chromium.org</owner>
  <owner>mathias@chromium.org</owner>
  <owner>yangguo@chromium.org</owner>
  <summary>
    Recorded when the code view for a recording was toggled in Recorder panel.
  </summary>
</histogram>

<histogram name="DevTools.RecordingCopiedToClipboard"
    enum="DevToolsRecordingCopiedToClipboard" expires_after="2024-03-17">
  <owner>alexrudenko@chromium.org</owner>
  <owner>mathias@chromium.org</owner>
  <owner>yangguo@chromium.org</owner>
  <summary>
    Recorded when user copies a recording or step to clipboard in Recorder
    panel.
  </summary>
</histogram>

<histogram name="DevTools.RecordingEdited" enum="DevToolsRecordingEdited"
    expires_after="2024-03-17">
  <owner>alexrudenko@chromium.org</owner>
  <owner>mathias@chromium.org</owner>
  <owner>yangguo@chromium.org</owner>
  <summary>Recorded when a recording is being edited by the user.</summary>
</histogram>

<histogram name="DevTools.RecordingExported" enum="DevToolsRecordingExported"
    expires_after="2024-02-25">
  <owner>alexrudenko@chromium.org</owner>
  <owner>mathias@chromium.org</owner>
  <owner>yangguo@chromium.org</owner>
  <summary>Recorded when a recording is exported.</summary>
</histogram>

<histogram name="DevTools.RecordingReplayFinished"
    enum="DevToolsRecordingReplayFinished" expires_after="2024-02-25">
  <owner>alexrudenko@chromium.org</owner>
  <owner>mathias@chromium.org</owner>
  <owner>yangguo@chromium.org</owner>
  <summary>Recorded when a replay is over.</summary>
</histogram>

<histogram name="DevTools.RecordingReplaySpeed"
    enum="DevToolsRecordingReplaySpeed" expires_after="2024-03-17">
  <owner>ergunsh@chromium.org</owner>
  <owner>alexrudenko@chromium.org</owner>
  <owner>mathias@chromium.org</owner>
  <owner>yangguo@chromium.org</owner>
  <summary>
    Recorded when a recording is being replayed. Used to count number of times
    replay started with which speed.
  </summary>
</histogram>

<histogram name="DevTools.RecordingReplayStarted"
    enum="DevToolsRecordingReplayStarted" expires_after="2024-02-25">
  <owner>alexrudenko@chromium.org</owner>
  <owner>mathias@chromium.org</owner>
  <owner>yangguo@chromium.org</owner>
  <summary>Recorded when a recording is being replayed.</summary>
</histogram>

<histogram name="DevTools.RecordingToggled" enum="DevToolsRecordingToggled"
    expires_after="2024-02-25">
  <owner>alexrudenko@chromium.org</owner>
  <owner>mathias@chromium.org</owner>
  <owner>yangguo@chromium.org</owner>
  <summary>
    Recorded when a recording is started or finished in the Recorder panel.
  </summary>
</histogram>

<histogram name="DevTools.SidebarPaneShown" enum="DevToolsSidebarPane"
    expires_after="2024-03-03">
  <owner>bmeurer@chromium.org</owner>
  <owner>changhaohan@chromium.org</owner>
  <summary>Specified DevTools sidebar pane was shown.</summary>
</histogram>

<histogram name="DevTools.Sources.SidebarTabShown"
    enum="DevToolsSourcesSidebarTab" expires_after="2024-03-03">
  <owner>bmeurer@chromium.org</owner>
  <owner>jarin@chromium.org</owner>
  <summary>
    Specified DevTools sidebar tab was shown in the Sources panel.
  </summary>
</histogram>

<histogram name="DevTools.SourcesPanelFileDebugged" enum="DevToolsMediaType"
    expires_after="2024-03-03">
  <owner>bmeurer@chromium.org</owner>
  <owner>szuend@chromium.org</owner>
  <summary>
    Records the media types of files debugged in the DevTools Sources panel.
    This means the user eiter sets a breakpoint, pauses or steps in a file of
    the recorded media type.
  </summary>
</histogram>

<histogram name="DevTools.SourcesPanelFileOpened" enum="DevToolsMediaType"
    expires_after="2024-03-03">
  <owner>yangguo@chromium.org</owner>
  <owner>bmeurer@chromium.org</owner>
  <summary>
    Records the media types of files opened in the DevTools Sources panel.
  </summary>
</histogram>

<histogram name="DevTools.StyleTextCopied" enum="DevToolsStyleTextCopied"
    expires_after="2024-03-03">
  <owner>changhaohan@chromium.org</owner>
  <owner>bmeurer@chromium.org</owner>
  <owner>yangguo@chromium.org</owner>
  <summary>Recorded when certain style text is copied in DevTools.</summary>
</histogram>

<histogram name="DevTools.SwatchActivated" enum="DevToolsSwatchActivated"
    expires_after="2024-02-04">
  <owner>ergunsh@chromium.org</owner>
  <owner>changhaohan@chromium.org</owner>
  <owner>bmeurer@chromium.org</owner>
  <summary>Records the swatch usages in the Styles pane.</summary>
</histogram>

<histogram name="DevTools.SyncSetting" enum="DevToolsSyncSetting"
    expires_after="2023-12-01">
  <owner>bmeurer@chromium.org</owner>
  <owner>szuend@chromium.org</owner>
  <owner>yangguo@chromium.org</owner>
  <summary>
    Records whether syncing DevTools settings via Chrome Sync is enabled or why
    it's disabled. Logged once per DevTools session when DevTools is booted up.
  </summary>
</histogram>

<histogram name="DevTools.TraceLoad" units="ms" expires_after="2024-08-12">
  <owner>paulirish@chromium.org</owner>
  <owner>jacktfranklin@chromium.org</owner>
  <owner>victorporof@chromium.org</owner>
  <summary>
    Measures the time a trace is loading. Starts when recording is stopped or
    file/url load was started. Stops after the first render of the flamechart.
  </summary>
</histogram>

<histogram name="DevTools.VMInlineScriptShown"
    enum="DevToolsVMInlineScriptType" expires_after="2024-02-04">
  <owner>yangguo@chromium.org</owner>
  <owner>jarin@chromium.org</owner>
  <owner>kimanh@chromium.org</owner>
  <summary>
    Records the inline script types for which we show the VM script instead of
    the HTML resource.
  </summary>
</histogram>

<histogram name="DevTools.Workspaces.NumberOfDirectoriesTraversed"
    units="count" expires_after="2024-12-01">
  <owner>bmeurer@chromium.org</owner>
  <owner>hablich@chromium.org</owner>
  <summary>
    Number of directories within a workspace folder traversed while loading the
    files from the folder.
  </summary>
</histogram>

<histogram name="DevTools.Workspaces.NumberOfFilesLoaded" units="count"
    expires_after="2024-12-01">
  <owner>bmeurer@chromium.org</owner>
  <owner>hablich@chromium.org</owner>
  <summary>
    Number of files loaded from a workspace folder (after the exclusion patterns
    are applied).
  </summary>
</histogram>

<histogram name="DevTools.Workspaces.PopulateWallClockTime" units="ms"
    expires_after="2024-12-01">
  <owner>bmeurer@chromium.org</owner>
  <owner>hablich@chromium.org</owner>
  <summary>
    Wall clock time elapsed to initially populate a Workspaces folder. Recorded
    in the FileSystem#populate() method of FileSystemWorkspaceBinding.ts.
  </summary>
</histogram>

</histograms>

</histogram-configuration>
