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

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

<enum name="ActivateStorageAccessLoadOutcome">
  <int value="0" label="Failure: header disabled"/>
  <int value="1" label="Failure: invalid storage access status"/>
  <int value="2" label="Success"/>
</enum>

<!-- LINT.ThenChange(//net/cookies/cookie_util.h:ActivateStorageAccessLoadOutcome) -->

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

<enum name="AdProtoDecompressionOutcome">
  <int value="0" label="Success"/>
  <int value="1" label="Failure"/>
</enum>

<!-- LINT.ThenChange(//content/browser/interest_group/interest_group_storage.cc:AdProtoDecompressionOutcome) -->

<enum name="AllowedByStorageAccessType">
  <int value="0"
      label="kNone: The cookie was not accessible through
             TopLevelStorageAccess or StorageAccess."/>
  <int value="1"
      label="kTopLevelOnly: The cookie was accessible via
             TopLevelStorageAccess."/>
  <int value="2"
      label="kStorageAccessOnly: The cookie was accessible via StorageAccess."/>
  <int value="3"
      label="kTopLevelAndStorageAccess: The cookie was accessible via
             TopLevelStorageAccess and StorageAccess"/>
</enum>

<enum name="BooleanInherited">
  <int value="0" label="Not inherited"/>
  <int value="1" label="Inherited"/>
</enum>

<enum name="ClearSiteDataParameters">
  <int value="0" label="No valid types"/>
  <int value="1" label="Cookies"/>
  <int value="2" label="Storage"/>
  <int value="3" label="Cookies and Storage"/>
  <int value="4" label="Cache"/>
  <int value="5" label="Cookies and Cache"/>
  <int value="6" label="Storage and Cache"/>
  <int value="7" label="Cookies, Storage, and Cache"/>
  <int value="8" label="Storage buckets"/>
  <int value="9" label="Storage buckets and Cookies"/>
  <int value="10" label="Storage buckets and Storage"/>
  <int value="11" label="Storage buckets, Cookies, and Storage"/>
  <int value="12" label="Storage buckets and Cache"/>
  <int value="13" label="Storage buckets, Cookies, and Cache"/>
  <int value="14" label="Storage buckets, Storage, and Cache"/>
  <int value="15" label="Storage buckets, Cookies, Storage, and Cache"/>
  <int value="16" label="Client Hints"/>
  <int value="17" label="Client Hints and Cookies"/>
  <int value="18" label="Client Hints and Storage"/>
  <int value="19" label="Client Hints, Cookies, and Storage"/>
  <int value="20" label="Client Hints and Cache"/>
  <int value="21" label="Client Hints, Cookies, and Cache"/>
  <int value="22" label="Client Hints, Storage, and Cache"/>
  <int value="23" label="Client Hints, Cookies, Storage, and Cache"/>
  <int value="24" label="Client Hints and Storage buckets"/>
  <int value="25" label="Client Hints, Storage buckets, and Cookies"/>
  <int value="26" label="Client Hints, Storage buckets, and Storage"/>
  <int value="27" label="Client Hints, Storage buckets, Cookies, and Storage"/>
  <int value="28" label="Client Hints, Storage buckets, and Cache"/>
  <int value="29" label="Client Hints, Storage buckets, Cookies and Cache"/>
  <int value="30" label="Client Hints, Storage buckets, Storage and Cache"/>
  <int value="31"
      label="Client Hints, Storage buckets, Cookies, Storage, and Cache"/>
</enum>

<enum name="ClipboardFormatRead">
  <int value="0" label="Text"/>
  <int value="1" label="Html"/>
  <int value="2" label="Rtf"/>
  <int value="3" label="Image"/>
  <int value="4" label="Bookmark"/>
  <int value="5" label="Data"/>
  <int value="6" label="CustomData"/>
  <int value="7" label="WebSmartPaste"/>
  <int value="8" label="Svg"/>
  <int value="9" label="Filenames"/>
  <int value="10" label="Png"/>
</enum>

<enum name="ClipboardFormatWrite">
  <int value="0" label="Text"/>
  <int value="1" label="Html"/>
  <int value="2" label="Rtf"/>
  <int value="3" label="Image"/>
  <int value="4" label="Bookmark"/>
  <int value="5" label="Data"/>
  <int value="6" label="CustomData"/>
  <int value="7" label="WebSmartPaste"/>
  <int value="8" label="Svg"/>
  <int value="9" label="Filenames"/>
</enum>

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

<enum name="DatabaseConnectionOpenResult">
  <int value="0" label="Received request"/>
  <int value="1" label="Success: direct open"/>
  <int value="2" label="Success: upgrade needed"/>
  <int value="3" label="Success: upgrade needed with data loss"/>
  <int value="4" label="Error: backing store init failed"/>
  <int value="5" label="Error: database open failed"/>
  <int value="6" label="Error: version too low"/>
</enum>

<!-- LINT.ThenChange(//content/browser/indexed_db/indexed_db_reporting.h:DatabaseConnectionOpenResult) -->

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

<enum name="DomStorageDatabaseRecoveryOutcome">
  <int value="0" label="Recovered to disk (destroy succeeded)"/>
  <int value="1" label="Recovered to disk (destroy failed)"/>
  <int value="2" label="Recovered to in-memory (both destroys succeeded)"/>
  <int value="3" label="Recovered to in-memory (first destroy failed)"/>
  <int value="4" label="Recovered to in-memory (second destroy failed)"/>
  <int value="5" label="Recovered to in-memory (both destroys failed)"/>
  <int value="6" label="Gave up (both destroys succeeded)"/>
  <int value="7" label="Gave up (first destroy failed)"/>
  <int value="8" label="Gave up (second destroy failed)"/>
  <int value="9" label="Gave up (both destroys failed)"/>
  <int value="10" label="Ongoing errors after attempted recovery"/>
  <int value="11" label="Transient errors after attempted recovery"/>
</enum>

<!-- LINT.ThenChange(//components/services/storage/dom_storage/dom_storage_histogram_helper.h:DomStorageDatabaseRecoveryOutcome) -->

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

<enum name="DomStorageDbStatusType">
  <int value="0" label="OK"/>
  <int value="1" label="Not found"/>
  <int value="2" label="Corruption"/>
  <int value="3" label="Not supported"/>
  <int value="4" label="Invalid argument"/>
  <int value="5" label="IO error"/>
  <int value="6" label="Database engine error"/>
</enum>

<!-- LINT.ThenChange(//components/services/storage/dom_storage/db_status.h:DomStorageDbStatusType) -->

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

<enum name="FileErrorCode">
  <int value="0" label="kOK"/>
  <int value="1" label="kNotFoundErr"/>
  <int value="2" label="kSecurityErr"/>
  <int value="3" label="kAbortErr"/>
  <int value="4" label="kNotReadableErr"/>
  <int value="5" label="kEncodingErr"/>
  <int value="6" label="kNoModificationAllowedErr"/>
  <int value="7" label="kInvalidStateErr"/>
  <int value="8" label="kSyntaxErr"/>
  <int value="9" label="kInvalidModificationErr"/>
  <int value="10" label="kQuotaExceededErr"/>
  <int value="11" label="kTypeMismatchErr"/>
  <int value="12" label="kPathExistsErr"/>
</enum>

<!-- LINT.ThenChange(//third_party/blink/renderer/core/fileapi/file_error.h:FileErrorCode) -->

<enum name="FileReaderLoaderFailureType">
  <int value="0" label="Mojo pipe creation failed"/>
  <int value="1" label="Data incomplete after synchronous reading"/>
  <int value="2" label="OnComplete never called after synchronous reading"/>
  <int value="3"
      label="Backend read error, see Storage.Blob.FileReaderLoader.ReadError"/>
  <int value="4" label="The size read does not match the size reported"/>
  <int value="5"
      label="The data pipe is not readable and there are bytes left to read"/>
  <int value="6" label="The data pipe closed early"/>
  <int value="7" label="Data pipe reading failed with an unexpected error"/>
  <int value="8" label="File reader client reporter a problem"/>
</enum>

<enum name="FileReaderLoaderMojoResult">
  <int value="0" label="MOJO_RESULT_OK"/>
  <int value="1" label="MOJO_RESULT_CANCELLED"/>
  <int value="2" label="MOJO_RESULT_UNKNOWN"/>
  <int value="3" label="MOJO_RESULT_INVALID_ARGUMENT"/>
  <int value="4" label="MOJO_RESULT_DEADLINE_EXCEEDED"/>
  <int value="5" label="MOJO_RESULT_NOT_FOUND"/>
  <int value="6" label="MOJO_RESULT_ALREADY_EXISTS"/>
  <int value="7" label="MOJO_RESULT_PERMISSION_DENIED"/>
  <int value="8" label="MOJO_RESULT_RESOURCE_EXHAUSTED"/>
  <int value="9" label="MOJO_RESULT_FAILED_PRECONDITION"/>
  <int value="10" label="MOJO_RESULT_ABORTED"/>
  <int value="11" label="MOJO_RESULT_OUT_OF_RANGE"/>
  <int value="12" label="MOJO_RESULT_UNIMPLEMENTED"/>
  <int value="13" label="MOJO_RESULT_INTERNAL"/>
  <int value="14" label="MOJO_RESULT_UNAVAILABLE"/>
  <int value="15" label="MOJO_RESULT_DATA_LOSS"/>
  <int value="16" label="MOJO_RESULT_BUSY"/>
  <int value="17" label="MOJO_RESULT_SHOULD_WAIT"/>
</enum>

<enum name="FileSystemAccessPermissionRequestOutcome">
  <int value="0" label="Blocked by Content Setting"/>
  <int value="1" label="Blocked from invalid frame"/>
  <int value="2" label="Blocked for lack of user activation"/>
  <int value="3" label="Blocked from third-party context"/>
  <int value="4" label="Granted"/>
  <int value="5" label="Denied by user"/>
  <int value="6" label="Dismissed by user"/>
  <int value="7" label="Request was aborted"/>
  <int value="8" label="Granted by Content Setting"/>
  <int value="9" label="Granted by persisted permission"/>
</enum>

<enum name="FileSystemAccessRestorePermissionPromptOutcome">
  <int value="0" label="Allowed every time by user"/>
  <int value="1" label="Allowed one time by user"/>
  <int value="2" label="Ignored by user"/>
  <int value="3" label="Rejected by user"/>
  <int value="4" label="Dismissed by user"/>
</enum>

<enum name="FileSystemAccessWatchWithChangeInfoResult">
  <int value="0" label="Successfully setup watch"/>
  <int value="1" label="Linux, the OS inotify limit was reached"/>
  <int value="2"
      label="Windows, a fatal error occured when trying to open a file entry
             to watch"/>
  <int value="3"
      label="Windows, reached the root directory and couldn't watch it"/>
  <int value="4" label="Windows, error when calling CreateIoCompletionPort"/>
  <int value="5" label="Windows, error when calling ReadDirectoryChangesW"/>
  <int value="6" label="Mac, error when the resolved target path is empty"/>
  <int value="7" label="Mac, error when starting the FSEvents event stream"/>
</enum>

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

<enum name="IDBTransactionMode">
  <int value="0" label="ReadOnly"/>
  <int value="1" label="ReadWrite"/>
  <int value="2" label="VersionChange"/>
</enum>

<!-- LINT.ThenChange(//third_party/blink/public/mojom/indexeddb/indexeddb.mojom:IDBTransactionMode) -->

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

<enum name="IndexedDBBadMessageReason">
  <int value="0" label="kBucketContextOpenInvalidVersion"/>
  <int value="1" label="kConnectionCreateTransactionInvalidMode"/>
  <int value="2" label="kConnectionCreateTransactionAlreadyExists"/>
  <int value="3" label="kConnectionGetAllInvalidMaxCount"/>
  <int value="4" label="kConnectionOpenCursorInvalidTaskType"/>
  <int value="5" label="kConnectionOpenCursorInvalidIteration"/>
  <int value="6" label="kConnectionCreateIndexInvalidMetadata"/>
  <int value="7" label="kConnectionWrongTransactionMode"/>
  <int value="8" label="kCursorAdvanceInvalidCount"/>
  <int value="9" label="kCursorContinueInvalidPrimaryKey"/>
  <int value="10" label="kCursorPrefetchResetInvalidCount"/>
  <int value="11" label="kCursorPrefetchResetFailedToReset"/>
  <int value="12" label="kCursorPrefetchResetInvalidUsedPrefetches"/>
  <int value="13" label="kTransactionCreateObjectStoreInvalidId"/>
  <int value="14" label="kTransactionPutReadOnly"/>
  <int value="15" label="kTransactionPutInvalidValue"/>
  <int value="16" label="kTransactionPutInvalidExternalObjects"/>
  <int value="17" label="kTransactionDoPutInvalidObjectStoreId"/>
  <int value="18" label="kTransactionDoPutInvalidIndexId"/>
  <int value="19" label="kTransactionDoPutInvalidKey"/>
  <int value="20" label="kTransactionDoPutInvalidIndexKey"/>
  <int value="21" label="kTransactionDoPutInvalidRecord"/>
  <int value="22" label="kTransactionSetIndexKeysWrongMode"/>
  <int value="23" label="kTransactionSetIndexKeysInvalidKey"/>
  <int value="24" label="kTransactionSetIndexKeysDoneWrongMode"/>
  <int value="25" label="kTransactionSetIndexKeysDoneWithoutIndexing"/>
  <int value="26" label="kTransactionObjectStoreMustExistInvalidId"/>
  <int value="27"
      label="kTransactionObjectStoreAndIndexMustExistInvalidIndexId"/>
  <int value="28" label="kTransactionObjectStoreAndIndexMustExistInvalidIds"/>
</enum>

<!-- LINT.ThenChange(//content/browser/indexed_db/indexed_db_reporting.h:BadMessageReason) -->

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

<enum name="IndexedDbSqliteSpecificEvent">
  <int value="0" label="Database opened"/>
  <int value="1"
      label="Database had at least one SQLite error in connection lifetime"/>
  <int value="2"
      label="Error when updating active blob bookkeeping after txn rollback"/>
  <int value="3" label="Failed to retrieve streaming handle to blob in DB"/>
  <int value="4" label="Failed to increment refcount to a streaming blob"/>
  <int value="5" label="Failed to decrement refcount for a streaming blob"/>
  <int value="6" label="pragma to get page count failed"/>
  <int value="7" label="pragma to get page size failed"/>
  <int value="8" label="Metadata table was missing"/>
  <int value="9" label="Database compatible version indicated DB too new"/>
  <int value="10" label="Database version indicated DB too new"/>
  <int value="11" label="Database stored name didn't match hash"/>
  <int value="12" label="A requested blob overflow chunk was missing"/>
  <int value="13" label="Object store unexpectedly not found in DB"/>
  <int value="14" label="Invalid type found for blob"/>
  <int value="15"
      label="V8 data format version too new or missing from metadata"/>
  <int value="16"
      label="A value in the DB that represents a UTF16 string was the wrong
             length"/>
  <int value="17"
      label="Failed to decompress a value when reading from the DB"/>
  <int value="18" label="Failed to delete a legacy blob file"/>
  <int value="19" label="Meta table was missing in an existing DB"/>
  <int value="20" label="IDB database version was invalid in an existing DB"/>
</enum>

<!-- LINT.ThenChange(//content/browser/indexed_db/instance/sqlite/database_connection.h:SpecificEvent) -->

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

<enum name="IndexedDbSqliteVacuumEvent">
  <int value="0" label="(Obsolete) Vacuum needed because conditions were met"/>
  <int value="1" label="Vacuum requested on close because conditions were met"/>
  <int value="2" label="Vacuum succeeded"/>
  <int value="3" label="Vacuum skipped due to force close"/>
  <int value="4" label="Error while determining required/available disk space"/>
  <int value="5" label="Vacuum skipped due to insufficient disk space"/>
  <int value="6" label="Vacuum failed at SQLite layer"/>
  <int value="7" label="Vacuum requested on long idle"/>
  <int value="8" label="Checkpoint before vacuum failed"/>
</enum>

<!-- LINT.ThenChange(//content/browser/indexed_db/instance/sqlite/database_connection.cc:VacuumEvent) -->

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

<enum name="IndexedDbStatusType">
  <int value="0" label="OK"/>
  <int value="1" label="Not found"/>
  <int value="2" label="Corrupted or inconsistent database state"/>
  <int value="3" label="Invalid argument"/>
  <int value="4" label="IO error"/>
  <int value="5" label="Database engine detected and reported an error"/>
</enum>

<!-- LINT.ThenChange(//content/browser/indexed_db/status.h:Type) -->

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

<enum name="InterestGroupStorageInitializationResult">
  <int value="0" label="SuccessAlreadyCurrent"/>
  <int value="1" label="SuccessUpgraded"/>
  <int value="2" label="SuccessCreateSchema"/>
  <int value="3" label="SuccessCreateSchemaAfterIncompatibleRaze"/>
  <int value="4" label="SuccessCreateSchemaAfterNoMetaTableRaze"/>
  <int value="5" label="FailedCreateInMemory"/>
  <int value="6" label="FailedCreateDirectory"/>
  <int value="7" label="FailedCreateFile"/>
  <int value="8" label="FailedToRazeIncompatible"/>
  <int value="9" label="FailedToRazeNoMetaTable"/>
  <int value="10" label="FailedMetaTableInit"/>
  <int value="11" label="FailedCreateSchema"/>
  <int value="12" label="FailedCreateSchemaAfterIncompatibleRaze"/>
  <int value="13" label="FailedCreateSchemaAfterNoMetaTableRaze"/>
  <int value="14" label="FailedUpgradeDB"/>
</enum>

<!-- LINT.ThenChange(//content/browser/interest_group/interest_group_storage.cc:InterestGroupStorageInitializationResult) -->

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

<enum name="InterestGroupStorageJSONDeserializationResult">
  <int value="0" label="Succeeded"/>
  <int value="1" label="Failed"/>
</enum>

<!-- LINT.ThenChange(//content/browser/interest_group/interest_group_storage.cc:InterestGroupStorageJSONDeserializationResult) -->

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

<enum name="InterestGroupStorageJSONSerializationResult">
  <int value="0" label="Succeeded"/>
  <int value="1" label="Failed"/>
</enum>

<!-- LINT.ThenChange(//content/browser/interest_group/interest_group_storage.cc:InterestGroupStorageJSONSerializationResult) -->

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

<enum name="InterestGroupStorageProtoDeserializationResult">
  <int value="0" label="Succeeded"/>
  <int value="1" label="Failed"/>
</enum>

<!-- LINT.ThenChange(//content/browser/interest_group/interest_group_storage.cc:InterestGroupStorageProtoDeserializationResult) -->

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

<enum name="InterestGroupStorageProtoSerializationResult">
  <int value="0" label="Succeeded"/>
  <int value="1" label="Failed"/>
</enum>

<!-- LINT.ThenChange(//content/browser/interest_group/interest_group_storage.cc:InterestGroupStorageProtoSerializationResult) -->

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

<enum name="InterestGroupStorageVacuumResult">
  <int value="0" label="Succeeded"/>
  <int value="1" label="Failed"/>
</enum>

<!-- LINT.ThenChange(//content/browser/interest_group/interest_group_storage.cc:InterestGroupStorageVacuumResult) -->

<enum name="RequestStorageResult">
  <int value="0" label="Approved due to existing storage access"/>
  <int value="1" label="Approved with new grant"/>
  <int value="2" label="Rejected with missing user gesture"/>
  <int value="3" label="Rejected due to missing origin"/>
  <int value="4" label="Rejected due to opaque origin"/>
  <int value="5" label="Rejected due to existing denial"/>
  <int value="6" label="Rejected due to missing sandbox token"/>
  <int value="7" label="Rejected due to denied prompt"/>
  <int value="8"
      label="Rejected due to a call being made from an invalid context"/>
  <int value="9" label="Rejected due to insecure context"/>
  <int value="10" label="Approved due to being called from top-level frame"/>
  <int value="11" label="Rejected due to credentialless iframe"/>
  <int value="12" label="Approved with a new or existing grant"/>
  <int value="13" label="Rejected due to fenced frame"/>
  <int value="14" label="Rejected due to invalid origin"/>
</enum>

<enum name="SqliteResultCode">
  <summary>
    Result codes as reported by the sqlite library. See also
    sql/sqlite_result_code_values.h and https://www.sqlite.org/rescode.html
  </summary>
  <int value="0" label="kOk"/>
  <int value="1" label="kError"/>
  <int value="2" label="kInternal"/>
  <int value="3" label="kPermission"/>
  <int value="4" label="kAbort"/>
  <int value="5" label="kBusy"/>
  <int value="6" label="kLocked"/>
  <int value="7" label="kNoMemory"/>
  <int value="8" label="kReadOnly"/>
  <int value="9" label="kInterrupt"/>
  <int value="10" label="kIo"/>
  <int value="11" label="kCorrupt"/>
  <int value="12" label="kNotFound"/>
  <int value="13" label="kFullDisk"/>
  <int value="14" label="kCantOpen"/>
  <int value="15" label="kLockingProtocol"/>
  <int value="16" label="kEmpty"/>
  <int value="17" label="kSchemaChanged"/>
  <int value="18" label="kTooBig"/>
  <int value="19" label="kConstraint"/>
  <int value="20" label="kTypeMismatch"/>
  <int value="21" label="kApiMisuse"/>
  <int value="22" label="kNoLargeFileSupport"/>
  <int value="23" label="kUnauthorized"/>
  <int value="24" label="kFormat"/>
  <int value="25" label="kIndexRange"/>
  <int value="26" label="kNotADatabase"/>
  <int value="27" label="kLoggingNotice"/>
  <int value="28" label="kLoggingWarning"/>
  <int value="100" label="kRow"/>
  <int value="101" label="kDone"/>
  <int value="256" label="kLoadPermanently"/>
  <int value="257" label="kMissingCollatingSequence"/>
  <int value="261" label="kBusyRecovery"/>
  <int value="262" label="kLockedSharedCache"/>
  <int value="264" label="kReadOnlyRecovery"/>
  <int value="266" label="kIoRead"/>
  <int value="267" label="kCorruptVirtualTable"/>
  <int value="270" label="kCantOpenNoTemporaryDirectory"/>
  <int value="275" label="kConstraintCheck"/>
  <int value="279" label="kUnauthorizedUser"/>
  <int value="283" label="kLoggingNoticeRecoverWal"/>
  <int value="284" label="kLoggingWarningAutoIndex"/>
  <int value="513" label="kRetryPreparedStatement"/>
  <int value="516" label="kAbortRollback"/>
  <int value="517" label="kBusySnapshot"/>
  <int value="518" label="kLockedVirtualTable"/>
  <int value="520" label="kReadOnlyCantLock"/>
  <int value="522" label="kIoShortRead"/>
  <int value="523" label="kCorruptSequence"/>
  <int value="526" label="kCantOpenIsDir"/>
  <int value="531" label="kConstraintCommitHook"/>
  <int value="539" label="kLoggingNoticeRecoverRollback"/>
  <int value="769" label="kErrorSnapshot"/>
  <int value="773" label="kBusyTimeout"/>
  <int value="776" label="kReadOnlyRollback"/>
  <int value="778" label="kIoWrite"/>
  <int value="779" label="kCorruptIndex"/>
  <int value="782" label="kCantOpenFullPath"/>
  <int value="787" label="kConstraintForeignKey"/>
  <int value="1032" label="kReadOnlyDbMoved"/>
  <int value="1034" label="kIoFsync"/>
  <int value="1038" label="kCantOpenConvertPath"/>
  <int value="1043" label="kConstraintFunction"/>
  <int value="1288" label="kReadOnlyCantInit"/>
  <int value="1290" label="kIoDirFsync"/>
  <int value="1294" label="kCantOpenDirtyWal"/>
  <int value="1299" label="kConstraintNotNull"/>
  <int value="1544" label="kReadOnlyDirectory"/>
  <int value="1546" label="kIoTruncate"/>
  <int value="1550" label="kCantOpenSymlink"/>
  <int value="1555" label="kConstraintPrimaryKey"/>
  <int value="1802" label="kIoFstat"/>
  <int value="1811" label="kConstraintTrigger"/>
  <int value="2058" label="kIoUnlock"/>
  <int value="2067" label="kConstraintUnique"/>
  <int value="2314" label="kIoReadLock"/>
  <int value="2323" label="kConstraintVirtualTable"/>
  <int value="2570" label="kIoDelete"/>
  <int value="2579" label="kConstraintRowId"/>
  <int value="2826" label="kIoBlocked"/>
  <int value="2835" label="kConstraintPinned"/>
  <int value="3082" label="kIoNoMemory"/>
  <int value="3091" label="kConstraintDataType"/>
  <int value="3338" label="kIoAccess"/>
  <int value="3594" label="kIoCheckReservedLock"/>
  <int value="3850" label="kIoLock"/>
  <int value="4106" label="kIoClose"/>
  <int value="4362" label="kIoDirClose"/>
  <int value="4618" label="kIoSharedMemoryOpen"/>
  <int value="4874" label="kIoSharedMemorySize"/>
  <int value="5130" label="kIoSharedMemoryLock"/>
  <int value="5386" label="kIoSharedMemoryMap"/>
  <int value="5642" label="kIoSeek"/>
  <int value="5898" label="kIoDeleteNoEntry"/>
  <int value="6154" label="kIoMemoryMapping"/>
  <int value="6410" label="kIoGetTemporaryPath"/>
  <int value="6666" label="kIoConvertPath"/>
  <int value="6922" label="kIoVfsNode"/>
  <int value="7178" label="kIoUnauthorized"/>
  <int value="7434" label="kIoBeginAtomic"/>
  <int value="7690" label="kIoCommitAtomic"/>
  <int value="7946" label="kIoRollbackAtomic"/>
  <int value="8202" label="kIoData"/>
  <int value="8458" label="kIoCorruptFileSystem"/>
</enum>

<enum name="SqlRecoveryResult">
  <summary>
    Outcome of attempting to recover a database with sql::Recovery. See
    sql::Recovery::Result for descriptions.
  </summary>
  <int value="0" label="kUnknown"/>
  <int value="1" label="kSuccess"/>
  <int value="2" label="kFailedRecoveryInit"/>
  <int value="3" label="kFailedRecoveryRun"/>
  <int value="4" label="kFailedToOpenRecoveredDatabase"/>
  <int value="5" label="kFailedMetaTableDoesNotExist"/>
  <int value="6" label="kFailedMetaTableInit"/>
  <int value="7" label="kFailedMetaTableVersionWasInvalid"/>
  <int value="8" label="kFailedBackupInit"/>
  <int value="9" label="kFailedBackupRun"/>
</enum>

<enum name="StorageAccessAPIRequestOutcome">
  <summary>
    Possible outcomes of a Storage Access API permission request.
  </summary>
  <int value="0" label="Granted by First-Party Set"/>
  <int value="1" label="Granted by implicit grant allowance"/>
  <int value="2" label="Granted by user"/>
  <int value="3" label="Denied by First-Party Set"/>
  <int value="4" label="Denied by user"/>
  <int value="5"
      label="Denied by missing prerequisite (user gesture, feature enabled)"/>
  <int value="6" label="Dismissed by user"/>
  <int value="7" label="Reused previous decision (made by user)"/>
  <int value="8" label="Denied by top-level user interaction heuristic"/>
  <int value="9" label="Access was allowed through cookie settings"/>
  <int value="10" label="Reused implicit grant (e.g. from First-Party-Sets)"/>
  <int value="11" label="Access was denied through cookie settings"/>
  <int value="12"
      label="Allowed by requesting origin and embedding origin being
             same-site"/>
  <int value="13"
      label="Denied due to an abort by browser (e.g. RenderFrameHost was
             deleted)"/>
  <int value="14" label="Allowed by FedCM connection"/>
</enum>

<enum name="StorageAccessResult">
  <int value="0" label="Storage access blocked"/>
  <int value="1" label="Storage access allowed"/>
  <int value="2" label="Access grant used to allow access"/>
  <int value="3"
      label="Storage access allowed by force-allowed third-party-cookies
             (deprecated)"/>
  <int value="4"
      label="Storage access allowed by the top-level version of the API"/>
  <int value="5" label="Storage access allowed by 3PCD setting (deprecated)"/>
  <int value="6"
      label="Storage access allowed by 3PCD metadata grants content settings
             (deprecated)"/>
  <int value="7"
      label="Temporary storage access allowed by 3PCD heuristics (deprecated)"/>
  <int value="8"
      label="Storage access allowed due to CORS opt in (deprecated)"/>
  <int value="9"
      label="Storage access allowed by top-level 3PCD setting (deprecated)"/>
  <int value="10" label="Storage access allowed by first-party URL scheme"/>
  <int value="11"
      label="Storage access allowed by 'allow-same-site-none-cookies' value
             present in sandbox"/>
</enum>

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

<enum name="StorageAccessStatusOutcome">
  <int value="0" label="Omitted: feature disabled"/>
  <int value="1" label="Omitted: same-site request"/>
  <int value="2" label="Value: none"/>
  <int value="3" label="Value: inactive"/>
  <int value="4" label="Value: active"/>
</enum>

<!-- LINT.ThenChange(//net/cookies/cookie_util.h:StorageAccessStatusOutcome) -->

<enum name="StorageBucketDurabilityParameter">
  <int value="0" label="Not provided"/>
  <int value="1" label="Relaxed"/>
  <int value="2" label="Strict"/>
</enum>

<enum name="StorageBucketPersistedParameter">
  <int value="0" label="Not provided"/>
  <int value="1" label="Not persisted"/>
  <int value="2" label="Persisted"/>
</enum>

<enum name="TopLevelStorageAccessRequestOutcome">
  <summary>
    Possible outcomes of a Top-Level Storage Access API permission request.
  </summary>
  <int value="0" label="Granted by First-Party Set"/>
  <int value="1" label="(Obsolete) Granted by implicit grant allowance"/>
  <int value="2" label="(Obsolete) Granted by user"/>
  <int value="3" label="Denied by First-Party Set"/>
  <int value="4" label="(Obsolete) Denied by user"/>
  <int value="5"
      label="Denied by missing prerequisite (user gesture, feature enabled)"/>
  <int value="6" label="(Obsolete) Dismissed by user"/>
  <int value="7" label="(Obsolete) Reused previous decision (made by user)"/>
  <int value="8" label="Access was denied through cookie settings"/>
</enum>

</enums>

</histogram-configuration>
