<!--
Copyright 2023 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 describes the enumerations referenced by entries in histograms.xml for
this directory. Some enums may instead be listed in the central enums.xml file
at src/tools/metrics/histograms/enums.xml when multiple files use them.

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

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>

<!-- Enum types -->

<enums>

<enum name="BooleanHasData">
  <int value="0" label="No data"/>
  <int value="1" label="Has data"/>
</enum>

<enum name="BooleanHasFetchers">
  <int value="0" label="Missing fetchers"/>
  <int value="1" label="Has fetchers"/>
</enum>

<!-- LINT.IfChange(CommandStorageReadStatus) -->

<enum name="CommandStorageReadStatus">
  <int value="0" label="Unknown"/>
  <int value="1" label="Success"/>
  <int value="2" label="No File"/>
  <int value="3" label="File Invalid"/>
  <int value="4" label="File Empty"/>
  <int value="5" label="Invalid Header"/>
  <int value="6" label="Invalid Command"/>
  <int value="7" label="Unsupported Version"/>
  <int value="8" label="Decryption Unavailable"/>
</enum>

<!-- LINT.ThenChange(//components/sessions/core/command_storage_backend.h:ReadStatus) -->

<!-- LINT.IfChange(CommandStorageWriteStatus) -->

<enum name="CommandStorageWriteStatus">
  <int value="0" label="Unknown"/>
  <int value="1" label="Success"/>
  <int value="2" label="File Not Opened"/>
  <int value="3" label="File Write Error"/>
  <int value="4" label="Serialization Error"/>
  <int value="5" label="Encryption Unavailable"/>
</enum>

<!-- LINT.ThenChange(//components/sessions/core/command_storage_backend.h:WriteStatus) -->

<enum name="SessionCrashedBubbleUserAction">
  <int value="0" label="The bubble was shown"/>
  <int value="1" label="There was an error when showing the bubble"/>
  <int value="2" label="The Restore button was clicked"/>
  <int value="3" label="User was already opted in to UMA"/>
  <int value="4" label="User chose to opt in to UMA"/>
  <int value="5" label="User clicked on the help button"/>
  <int value="6" label="User ignored or closed the bubble"/>
  <int value="7" label="The bar with UMA opt-in option was shown"/>
  <int value="8" label="The Startup pages button was clicked"/>
</enum>

<!-- LINT.IfChange(SessionEncryptedBackendUninitialized) -->

<enum name="SessionEncryptedBackendUninitialized">
  <int value="0" label="Save"/>
  <int value="1" label="MoveCurrentSessionToLastSession"/>
  <int value="2" label="DeleteLastSession"/>
  <int value="3" label="GetLastSessionCommands"/>
</enum>

<!-- LINT.ThenChange(//components/sessions/core/command_storage_manager.cc:SessionEncryptedBackendUninitialized) -->

<!-- LINT.IfChange(SessionReadComparisonResult) -->

<enum name="SessionReadComparisonResult">
  <int value="0" label="Match"/>
  <int value="1" label="Error Mismatch"/>
  <int value="2" label="Commands Mismatch"/>
</enum>

<!-- LINT.ThenChange(//components/sessions/core/command_storage_manager.cc:SessionReadComparisonResult) -->

<enum name="SessionRestoreFinishReason">
  <int value="0"
      label="SessionRestore.ForegroundTabFirstPaint4 successfully recorded."/>
  <int value="1"
      label="No tabs were visible the whole time before first paint."/>
  <int value="2" label="No restored tabs were painted."/>
  <int value="3" label="A non-restored tab was painted first."/>
</enum>

<!-- LINT.IfChange(SessionRestoreInfoBarAction) -->

<enum name="SessionRestoreInfoBarAction">
  <int value="0" label="Shown">The infobar was shown to the user.</int>
  <int value="1" label="Dismissed">The user explicitly closed the infobar.</int>
  <int value="2" label="Link Clicked">
    The user clicked on the link in the infobar.
  </int>
  <int value="3" label="Ignored">
    The infobar got closed without user interacting with it.
  </int>
</enum>

<!-- LINT.ThenChange(//chrome/browser/ui/views/session_restore_infobar/session_restore_infobar_delegate.h:SessionRestoreInfoBarAction) -->

<enum name="SmartRestartability">
  <int value="0" label="None"/>
  <int value="1" label="Incognito"/>
  <int value="2" label="Unsaved form data (BeforeUnload)"/>
  <int value="3" label="Incognito, Unsaved form data"/>
  <int value="4" label="Active download"/>
  <int value="5" label="Incognito, Active download"/>
  <int value="6" label="Unsaved form data, Active download"/>
  <int value="7" label="Incognito, Unsaved form data, Active download"/>
  <int value="8" label="Active media"/>
  <int value="9" label="Incognito, Active media"/>
  <int value="10" label="Unsaved form data, Active media"/>
  <int value="11" label="Incognito, Unsaved form data, Active media"/>
  <int value="12" label="Active download, Active media"/>
  <int value="13" label="Incognito, Active download, Active media"/>
  <int value="14" label="Unsaved form data, Active download, Active media"/>
  <int value="15"
      label="Incognito, Unsaved form data, Active download, Active media"/>
  <int value="16" label="App window"/>
  <int value="17" label="Incognito, App window"/>
  <int value="18" label="Unsaved form data, App window"/>
  <int value="19" label="Incognito, Unsaved form data, App window"/>
  <int value="20" label="Active download, App window"/>
  <int value="21" label="Incognito, Active download, App window"/>
  <int value="22" label="Unsaved form data, Active download, App window"/>
  <int value="23"
      label="Incognito, Unsaved form data, Active download, App window"/>
  <int value="24" label="Active media, App window"/>
  <int value="25" label="Incognito, Active media, App window"/>
  <int value="26" label="Unsaved form data, Active media, App window"/>
  <int value="27"
      label="Incognito, Unsaved form data, Active media, App window"/>
  <int value="28" label="Active download, Active media, App window"/>
  <int value="29" label="Incognito, Active download, Active media, App window"/>
  <int value="30"
      label="Unsaved form data, Active download, Active media, App window"/>
  <int value="31"
      label="Incognito, Unsaved form data, Active download, Active media, App
             window"/>
  <int value="32" label="Total Browser Count Zero"/>
  <int value="36" label="Active download, Total Browser Count Zero"/>
  <int value="40" label="Active media, Total Browser Count Zero"/>
  <int value="44"
      label="Active download, Active media, Total Browser Count Zero"/>
</enum>

<!-- LINT.IfChange(SmartRestartBlocker) -->

<enum name="SmartRestartBlocker">
  <int value="0" label="Incognito"/>
  <int value="1" label="BeforeUnloadHandler"/>
  <int value="2" label="Download"/>
  <int value="3" label="Media"/>
  <int value="4" label="AppWindow"/>
  <int value="5" label="NoMainFrame"/>
  <int value="6" label="Visible"/>
  <int value="7" label="Audible"/>
  <int value="8" label="PictureInPicture"/>
  <int value="9" label="Pdf"/>
  <int value="10" label="NotWebOrInternal"/>
  <int value="11" label="InvalidURL"/>
  <int value="12" label="NotificationsEnabled"/>
  <int value="13" label="ExtensionProtected"/>
  <int value="14" label="CapturingVideo"/>
  <int value="15" label="CapturingAudio"/>
  <int value="16" label="BeingMirrored"/>
  <int value="17" label="CapturingWindow"/>
  <int value="18" label="CapturingDisplay"/>
  <int value="19" label="ConnectedToBluetooth"/>
  <int value="20" label="ConnectedToUSB"/>
  <int value="21" label="ActiveTab"/>
  <int value="22" label="PinnedTab"/>
  <int value="23" label="DevToolsOpen"/>
  <int value="24" label="BackgroundActivity"/>
  <int value="25" label="FormInteractions"/>
  <int value="26" label="UserEdits"/>
  <int value="27" label="GlicShared"/>
  <int value="28" label="WebApp"/>
  <int value="29" label="VisiblePausedMedia"/>
  <int value="30" label="LensShared"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/lifetime/restartability_monitor.h:SmartRestartBlocker) -->

<enum name="SmartRestartExecutionOutcome">
  <int value="0" label="Executed"/>
  <int value="1" label="Cancelled by user"/>
  <int value="2" label="Blocked by policy"/>
</enum>

<!-- LINT.IfChange(SmartRestartExtendedExecutionOutcome) -->

<enum name="SmartRestartExtendedExecutionOutcome">
  <int value="0" label="Executed"/>
  <int value="1" label="Cancelled by user (Unlock)"/>
  <int value="2" label="Blocked by policy (Picker/Startup)"/>
  <int value="3" label="Blocked by tab threshold"/>
  <int value="4" label="Blocked by disruption level"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/lifetime/smart_restart_policy.h:ExtendedExecutionOutcome) -->

</enums>

</histogram-configuration>
