<!--
Copyright 2024 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="ChromePDFViewerActions">
  <int value="0" label="DocumentOpened"/>
  <int value="1" label="RotateFirst"/>
  <int value="2" label="Rotate"/>
  <int value="3" label="FitToWidthFirst"/>
  <int value="4" label="FitToWidth"/>
  <int value="5" label="FitToPageFirst"/>
  <int value="6" label="FitToPage"/>
  <int value="7" label="OpenBookmarksPanelFirst (deprecated)"/>
  <int value="8" label="OpenBookmarksPanel (deprecated)"/>
  <int value="9" label="FollowBookmarkFirst"/>
  <int value="10" label="FollowBookmark"/>
  <int value="11" label="PageSelectorNavigateFirst"/>
  <int value="12" label="PageSelectorNavigate"/>
  <int value="13" label="SaveFirst"/>
  <int value="14" label="Save"/>
  <int value="15" label="SaveWithAnnotationFirst"/>
  <int value="16" label="SaveWithAnnotation"/>
  <int value="17" label="PrintFirst"/>
  <int value="18" label="Print"/>
  <int value="19" label="EnterAnnotationModeFirst"/>
  <int value="20" label="EnterAnnotationMode"/>
  <int value="21" label="ExitAnnotationModeFirst"/>
  <int value="22" label="ExitAnnotationMode"/>
  <int value="23" label="AnnotateStrokeToolPenFirst"/>
  <int value="24" label="AnnotateStrokeToolPen"/>
  <int value="25" label="AnnotateStrokeToolEraserFirst"/>
  <int value="26" label="AnnotateStrokeToolEraser"/>
  <int value="27" label="AnnotateStrokeToolHighlighterFirst"/>
  <int value="28" label="AnnotateStrokeToolHighlighter"/>
  <int value="29" label="AnnotateStrokeDeviceTouchFirst"/>
  <int value="30" label="AnnotateStrokeDeviceTouch"/>
  <int value="31" label="AnnotateStrokeDeviceMouseFirst"/>
  <int value="32" label="AnnotateStrokeDeviceMouse"/>
  <int value="33" label="AnnotateStrokeDevicePenFirst"/>
  <int value="34" label="AnnotateStrokeDevicePen"/>
  <int value="35" label="TwoUpViewEnableFirst"/>
  <int value="36" label="TwoUpViewEnable"/>
  <int value="37" label="TwoUpViewDisableFirst"/>
  <int value="38" label="TwoUpViewDisable"/>
  <int value="39" label="ZoomInFirst"/>
  <int value="40" label="ZoomIn"/>
  <int value="41" label="ZoomOutFirst"/>
  <int value="42" label="ZoomOut"/>
  <int value="43" label="ZoomCustomFirst"/>
  <int value="44" label="ZoomCustom"/>
  <int value="45" label="ThumbnailNavigateFirst"/>
  <int value="46" label="ThumbnailNavigate"/>
  <int value="47" label="SaveOriginalOnlyFirst"/>
  <int value="48" label="SaveOriginalOnly"/>
  <int value="49" label="SaveOriginalFirst"/>
  <int value="50" label="SaveOriginal"/>
  <int value="51" label="SaveEditedFirst"/>
  <int value="52" label="SaveEdited"/>
  <int value="53" label="ToggleSidenavFirst"/>
  <int value="54" label="ToggleSidenav"/>
  <int value="55" label="SelectSidenavThumbnailsFirst"/>
  <int value="56" label="SelectSidenavThumbnails"/>
  <int value="57" label="SelectSidenavOutlineFirst"/>
  <int value="58" label="SelectSidenavOutline"/>
  <int value="59" label="ToggleDisplayAnnotationsFirst"/>
  <int value="60" label="ToggleDisplayAnnotations"/>
  <int value="61" label="PresentFirst"/>
  <int value="62" label="Present"/>
  <int value="63" label="PropertiesFirst"/>
  <int value="64" label="Properties"/>
  <int value="65" label="SidenavAttachmentFirst"/>
  <int value="66" label="SidenavAttachment"/>
  <int value="67" label="CutFirst"/>
  <int value="68" label="Cut"/>
  <int value="69" label="CopyFirst"/>
  <int value="70" label="Copy"/>
  <int value="71" label="PasteFirst"/>
  <int value="72" label="Paste"/>
  <int value="73" label="FindInPageFirst"/>
  <int value="74" label="FindInPage"/>
  <int value="75" label="CopySearchifiedFirst"/>
  <int value="76" label="CopySearchified"/>
  <int value="77" label="FindInPageSearchifiedFirst"/>
  <int value="78" label="FindInPageSearchified"/>
  <int value="79" label="EnterInk2AnnotationModeFirst"/>
  <int value="80" label="EnterInk2AnnotationMode"/>
  <int value="81" label="ExitInk2AnnotationModeFirst"/>
  <int value="82" label="ExitInk2AnnotationMode"/>
  <int value="83" label="SaveWithInk2AnnotationFirst"/>
  <int value="84" label="SaveWithInk2Annotation"/>
  <int value="85" label="SelectInk2BrushEraserFirst"/>
  <int value="86" label="SelectInk2BrushEraser"/>
  <int value="87" label="SelectInk2BrushHighlighterFirst"/>
  <int value="88" label="SelectInk2BrushHighlighter"/>
  <int value="89" label="SelectInk2BrushPenFirst"/>
  <int value="90" label="SelectInk2BrushPen"/>
  <int value="91" label="UndoInk2First"/>
  <int value="92" label="UndoInk2"/>
  <int value="93" label="RedoInk2First"/>
  <int value="94" label="RedoInk2"/>
  <int value="95" label="OpenInk2SidePanelFirst"/>
  <int value="96" label="OpenInk2SidePanel"/>
  <int value="97" label="OpenInk2BottomToolbarFirst"/>
  <int value="98" label="OpenInk2BottomToolbar"/>
  <int value="99" label="SaveSearchifiedFirst"/>
  <int value="100" label="SaveSearchified"/>
  <int value="101" label="EnterInk2TextAnnotationModeFirst"/>
  <int value="102" label="EnterInk2TextAnnotationMode"/>
  <int value="103" label="ExitInk2TextAnnotationModeFirst"/>
  <int value="104" label="ExitInk2TextAnnotationMode"/>
  <int value="105" label="AddInk2TextAnnotationFirst"/>
  <int value="106" label="AddInk2TextAnnotation"/>
  <int value="107" label="AddInk2TextAnnotationAbortedFirst"/>
  <int value="108" label="AddInk2TextAnnotationAborted"/>
  <int value="109" label="EditInk2TextAnnotationFirst"/>
  <int value="110" label="EditInk2TextAnnotation"/>
  <int value="111" label="EditInk2TextAnnotationAbortedFirst"/>
  <int value="112" label="EditInk2TextAnnotationAborted"/>
  <int value="113" label="DeleteInk2TextAnnotationFirst"/>
  <int value="114" label="DeleteInk2TextAnnotation"/>
</enum>

<enum name="ChromePDFViewerLoadStatus">
  <int value="0" label="Loaded a full-page PDF with Chrome PDF Viewer"/>
  <int value="1" label="Loaded an embedded PDF with Chrome PDF Viewer"/>
  <int value="2" label="Showed disabled plugin placeholder for embedded PDF"/>
  <int value="3" label="Triggered a drive-by download without user gesture"/>
  <int value="4" label="Loaded iframe PDF with no PDF viewer available"/>
  <int value="5" label="View PDF button clicked in the PDF plugin placeholder"/>
</enum>

<enum name="PDFFormTypes">
  <int value="0" label="None"/>
  <int value="1" label="AcroForm"/>
  <int value="2" label="Full XFA"/>
  <int value="3" label="Foreground XFA (XFAF)"/>
</enum>

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

<enum name="PdfInfoBarSettingsResult">
  <int value="0" label="NotShown">The settings UI was not shown.</int>
  <int value="1" label="Success">
    The settings UI was shown and Chrome was set as default PDF viewer.
  </int>
  <int value="2" label="SuccessNoChange">
    The settings UI was shown, but Chrome wasn't set as default.
  </int>
  <int value="3" label="Fallback">
    The fallback settings UI was shown and Chrome was set as default.
  </int>
  <int value="4" label="FallbackNoChange">
    The fallback settings UI was shown, but Chrome wasn't set as default.
  </int>
  <int value="5" label="Error">The settings UI failed to open.</int>
</enum>

<!-- LINT.ThenChange(//chrome/browser/ui/pdf/infobar/pdf_infobar_controller.h:PdfInfoBarSettingsResult) -->

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

<enum name="PDFInfoBarUserInteraction">
  <int value="0" label="Accepted">
    The user clicked the &quot;Set as default&quot; button.
  </int>
  <int value="1" label="Dismissed">The user explicitly closed the infobar.</int>
  <int value="2" label="Ignored">
    The user did not interact with the infobar, logged at object destruction.
  </int>
</enum>

<!-- LINT.ThenChange(//chrome/browser/ui/pdf/infobar/pdf_infobar_controller.h:PdfInfoBarUserInteraction) -->

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

<enum name="PDFInk2StrokeBrushSize">
  <int value="0" label="ExtraThin"/>
  <int value="1" label="Thin"/>
  <int value="2" label="Medium"/>
  <int value="3" label="Thick"/>
  <int value="4" label="ExtraThick"/>
</enum>

<!-- LINT.ThenChange(//pdf/pdf_ink_metrics_handler.h:PDFInk2StrokeBrushSize) -->

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

<enum name="PDFInk2StrokeBrushType">
  <int value="0" label="Pen"/>
  <int value="1" label="Highlighter"/>
  <int value="2" label="Eraser"/>
</enum>

<!-- LINT.ThenChange(//pdf/pdf_ink_metrics_handler.h:PDFInk2StrokeBrushType) -->

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

<enum name="PDFInk2StrokeHighlighterColor">
  <int value="0" label="LightRed"/>
  <int value="1" label="LightYellow"/>
  <int value="2" label="LightGreen"/>
  <int value="3" label="LightBlue"/>
  <int value="4" label="LightOrange"/>
  <int value="5" label="Red"/>
  <int value="6" label="Yellow"/>
  <int value="7" label="Green"/>
  <int value="8" label="Blue"/>
  <int value="9" label="Orange"/>
</enum>

<!-- LINT.ThenChange(//pdf/pdf_ink_metrics_handler.h:PDFInk2StrokeHighlighterColor) -->

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

<enum name="PDFInk2StrokeInputDeviceType">
  <int value="0" label="Mouse"/>
  <int value="1" label="Touch"/>
  <int value="2" label="Pen"/>
  <int value="3" label="Keyboard"/>
</enum>

<!-- LINT.ThenChange(//pdf/pdf_ink_metrics_handler.h:PDFInk2StrokeInputDeviceType) -->

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

<enum name="PDFInk2StrokePenColor">
  <int value="0" label="Black"/>
  <int value="1" label="DarkGrey2"/>
  <int value="2" label="DarkGrey1"/>
  <int value="3" label="LightGrey"/>
  <int value="4" label="White"/>
  <int value="5" label="Red1"/>
  <int value="6" label="Yellow1"/>
  <int value="7" label="Green1"/>
  <int value="8" label="Blue1"/>
  <int value="9" label="Tan1"/>
  <int value="10" label="Red2"/>
  <int value="11" label="Yellow2"/>
  <int value="12" label="Green2"/>
  <int value="13" label="Blue2"/>
  <int value="14" label="Tan2"/>
  <int value="15" label="Red3"/>
  <int value="16" label="Yellow3"/>
  <int value="17" label="Green3"/>
  <int value="18" label="Blue3"/>
  <int value="19" label="Tan3"/>
</enum>

<!-- LINT.ThenChange(//pdf/pdf_ink_metrics_handler.h:PDFInk2StrokePenColor) -->

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

<enum name="PDFInk2TextAnnotationAlignment">
  <int value="0" label="Left"/>
  <int value="1" label="Center"/>
  <int value="2" label="Right"/>
</enum>

<!-- LINT.ThenChange(//pdf/pdf_ink_text.h:TextAlignment) -->

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

<enum name="PDFInk2TextAnnotationColor">
  <int value="0" label="Black"/>
  <int value="1" label="DarkGrey2"/>
  <int value="2" label="DarkGrey1"/>
  <int value="3" label="LightGrey"/>
  <int value="4" label="White"/>
  <int value="5" label="Red1"/>
  <int value="6" label="Yellow1"/>
  <int value="7" label="Green1"/>
  <int value="8" label="Cyan1"/>
  <int value="9" label="Blue1"/>
  <int value="10" label="Red2"/>
  <int value="11" label="Yellow2"/>
  <int value="12" label="Green2"/>
  <int value="13" label="Cyan2"/>
  <int value="14" label="Blue2"/>
  <int value="15" label="Red3"/>
  <int value="16" label="Yellow3"/>
  <int value="17" label="Green3"/>
  <int value="18" label="Cyan3"/>
  <int value="19" label="Blue3"/>
</enum>

<!-- LINT.ThenChange(//pdf/pdf_ink_metrics_handler.h:PDFInk2TextAnnotationColor) -->

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

<enum name="PDFInk2TextAnnotationTypeface">
  <int value="0" label="SansSerif"/>
  <int value="1" label="Serif"/>
  <int value="2" label="Monospace"/>
</enum>

<!-- LINT.ThenChange(//pdf/pdf_ink_text.h:TextTypeface) -->

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

<enum name="PDFLoadedWithInkTextAnnotations">
  <int value="0" label="Unknown"/>
  <int value="1" label="True"/>
  <int value="2" label="False"/>
</enum>

<!-- LINT.ThenChange(//pdf/pdf_ink_metrics_handler.h:PDFLoadedWithInkTextAnnotations) -->

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

<enum name="PDFLoadedWithV2InkAnnotations">
  <int value="0" label="Unknown"/>
  <int value="1" label="True"/>
  <int value="2" label="False"/>
</enum>

<!-- LINT.ThenChange(//pdf/pdf_ink_metrics_handler.h:PDFLoadedWithV2InkAnnotations) -->

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

<enum name="PDFPostMessageDataType">
<!-- This must be kept current with PostMessageDataType in
     chrome/browser/resources/pdf/metrics.ts. -->

  <int value="0" label="getSelectedText"/>
  <int value="1" label="print"/>
  <int value="2" label="selectAll"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/resources/pdf/metrics.ts:PostMessageDataType) -->

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

<enum name="PDFSaveToDriveBubbleAction">
<!-- This must be kept current with SaveToDriveBubbleAction in
     chrome/browser/resources/pdf/save_to_drive_metrics.ts. -->

  <int value="0" label="Action"/>
  <int value="1" label="Cancel upload"/>
  <int value="2" label="Manage storage"/>
  <int value="3" label="Open in Drive"/>
  <int value="4" label="Retry"/>
  <int value="5" label="Close"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/resources/pdf/save_to_drive_metrics.ts:PDFSaveToDriveBubbleAction) -->

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

<enum name="PDFSaveToDriveBubbleState">
<!-- This must be kept current with SaveToDriveBubbleState in
     chrome/browser/resources/pdf/save_to_drive_metrics.ts. -->

  <int value="0" label="Show bubble"/>
  <int value="1" label="Show bubble in uploading state"/>
  <int value="2" label="Show bubble in success state"/>
  <int value="3" label="Show bubble in connection error state"/>
  <int value="4" label="Show bubble in storage full error state"/>
  <int value="5" label="Show bubble in session timeout error state"/>
  <int value="6" label="Show bubble in unknown error state"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/resources/pdf/save_to_drive_metrics.ts:PDFSaveToDriveBubbleState) -->

<enum name="PdfSaveToDriveErrorType">
<!-- This must be kept current with SaveToDriveErrorType in
     tools/typescript/definitions/pdf_viewer_private.d.ts and chrome/common/extensions/api/pdf_viewer_private.idl. -->

  <int value="0" label="Undefined"/>
  <int value="1" label="No error"/>
  <int value="2" label="Unknown error"/>
  <int value="3" label="Quota exceeded"/>
  <int value="4" label="Offline"/>
  <int value="5" label="OAuth error"/>
  <int value="6" label="Account chooser cancelled"/>
  <int value="7" label="Parent folder selection failed"/>
</enum>

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

<enum name="PDFSaveToDrivePrimaryAccountSelectionStatus">
  <int value="0" label="Unknown"/>
  <int value="1" label="Primary account selected"/>
  <int value="2" label="Primary account not selected"/>
  <int value="3" label="No primary account"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/save_to_drive/save_to_drive_recorder.cc:PDFSaveToDrivePrimaryAccountSelectionStatus) -->

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

<enum name="PDFSaveToDriveSaveType">
<!-- This must be kept current with SaveToDriveSaveType in
     chrome/browser/resources/pdf/save_to_drive_metrics.ts. -->

  <int value="0" label="Save"/>
  <int value="1" label="Save original only"/>
  <int value="2" label="Save original"/>
  <int value="3" label="Save edited"/>
  <int value="4" label="Save with annotation"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/resources/pdf/save_to_drive_metrics.ts:PDFSaveToDriveSaveType) -->

<enum name="PdfSaveToDriveStatus">
<!-- This must be kept current with SaveToDriveStatus in
     tools/typescript/definitions/pdf_viewer_private.d.ts and chrome/common/extensions/api/pdf_viewer_private.idl. -->

  <int value="0" label="Undefined"/>
  <int value="1" label="Not started"/>
  <int value="2" label="Initiated"/>
  <int value="3" label="Account chooser shown"/>
  <int value="4" label="Account selected"/>
  <int value="5" label="Account add selected"/>
  <int value="6" label="Account added"/>
  <int value="7" label="Fetch OAuth"/>
  <int value="8" label="Fetch parent folder"/>
  <int value="9" label="Upload started"/>
  <int value="10" label="Upload in progress"/>
  <int value="11" label="Upload completed"/>
  <int value="12" label="Upload retried"/>
  <int value="13" label="Upload failed"/>
</enum>

<enum name="PDFVersion">
  <int value="0" label="Unknown"/>
  <int value="1" label="PDF 1.0"/>
  <int value="2" label="PDF 1.1"/>
  <int value="3" label="PDF 1.2"/>
  <int value="4" label="PDF 1.3"/>
  <int value="5" label="PDF 1.4"/>
  <int value="6" label="PDF 1.5"/>
  <int value="7" label="PDF 1.6"/>
  <int value="8" label="PDF 1.7"/>
  <int value="9" label="PDF 1.8"/>
  <int value="10" label="PDF 2.0"/>
</enum>

</enums>

</histogram-configuration>
