<!--
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 Printing 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="Printing.CUPS.AddPrinterManuallyResult" enum="BooleanSuccess"
    expires_after="2027-09-14">
  <owner>bmgordon@google.com</owner>
  <owner>project-bolton@google.com</owner>
  <summary>
    Records the result of attempting to add a printer manually from the OS
    Settings Printers page. A failed result is recorded each time the user
    clicks the Add button and the attempt fails.
  </summary>
</histogram>

<histogram name="Printing.CUPS.AddressResolutionResult" enum="BooleanSuccess"
    expires_after="2026-12-07">
  <owner>bmgordon@chromium.org</owner>
  <owner>cros-printing-dev@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.AutomaticSetupResultOfUsbPrinterSupportingIppAndPpd"
    enum="PrinterSetupResult" expires_after="2025-07-27">
  <owner>pawliczek@chromium.org</owner>
  <owner>bmgordon@chromium.org</owner>
  <owner>project-bolton@google.com</owner>
  <summary>
    The success or error code for the automatic setup of a USB printer. The
    result is recorded only if all the following conditions are fulfilled: 1.
    The setup procedure was initiated automatically when a USB printer was
    physically connected to the device. 2. There is a matching PPD file that can
    be used to setup the printer. 3. The printer supports IPP over USB protocol.
  </summary>
</histogram>

<histogram name="Printing.CUPS.DPI.AllValues" units="DPI"
    expires_after="2027-01-06">
  <owner>bmgordon@google.com</owner>
  <owner>cros-device-enablement@google.com</owner>
  <summary>
    Records one of the available DPI values from a printer's capabilities
    whenever the printer is selected in Print Preview. A separate record is
    emitted for every DPI value that the printer supports. The recorded value is
    a 32 bit combination of two DPI values which can be decoded as the higher
    order 16 bits representing the DPI width and the lower order 16 bits
    representing the DPI height.
  </summary>
</histogram>

<histogram name="Printing.CUPS.DPI.Count" units="resolutions"
    expires_after="2027-01-06">
  <owner>bmgordon@google.com</owner>
  <owner>cros-device-enablement@google.com</owner>
  <summary>
    Records the count of all DPI values from a printer's capabilities whenever
    the printer is selected in Print Preview.
  </summary>
</histogram>

<histogram name="Printing.CUPS.DPI.{Type}" units="DPI"
    expires_after="2027-01-06">
  <owner>bmgordon@google.com</owner>
  <owner>cros-device-enablement@google.com</owner>
  <summary>
    Records the {Type} DPI value from a printer's capabilities whenever the
    printer is selected in Print Preview. The recorded value is a 32 bit
    combination of two DPI values which can be decoded as the higher order 16
    bits representing the DPI width and the lower order 16 bits representing the
    DPI height.
  </summary>
  <token key="Type">
    <variant name="Default"/>
    <variant name="Max"/>
    <variant name="Min"/>
  </token>
</histogram>

<histogram name="Printing.CUPS.IppDeviceReachable" enum="BooleanSuccess"
    expires_after="2027-01-25">
  <owner>bmgordon@chromium.org</owner>
  <owner>cros-printing-dev@chromium.org</owner>
  <summary>
    Record if the request for IPP attributes was successful in reaching the
    printer. Recorded during the attempt to setup IPP/IPPS printers.
  </summary>
</histogram>

<histogram name="Printing.CUPS.JobDuration.JobCancelled" units="ms"
    expires_after="2026-11-02">
  <owner>bmgordon@chromium.org</owner>
  <owner>project-bolton@google.com</owner>
  <summary>
    Records the print job duration of a cancelled print job. Includes time spent
    in a suspended or error state. Only recorded on Chrome OS.
  </summary>
</histogram>

<histogram name="Printing.CUPS.JobDuration.JobDone" units="ms"
    expires_after="2027-03-06">
  <owner>bmgordon@chromium.org</owner>
  <owner>project-bolton@google.com</owner>
  <summary>
    Records the print job duration of a done/completed print job. Includes time
    spent in a suspended or error state. Only recorded on Chrome OS.
  </summary>
</histogram>

<histogram name="Printing.CUPS.JobResult" enum="PrintJobResult"
    expires_after="never">
<!-- expires-never: Monitors printing health for Chrome OS. -->

  <owner>bmgordon@chromium.org</owner>
  <owner>cros-printing-dev@chromium.org</owner>
  <summary>
    The final status of every print job that was succesfully queued. Only used
    on Chrome OS.

    Recorded upon the completion of each print job by the CupsPrintJobManager.
  </summary>
</histogram>

<histogram name="Printing.CUPS.JobResultForUsbPrintersWithIppAndPpd"
    enum="PrintJobResult" expires_after="2025-07-27">
  <owner>pawliczek@chromium.org</owner>
  <owner>bmgordon@chromium.org</owner>
  <owner>project-bolton@google.com</owner>
  <summary>
    The final status of every print job that was succesfully queued for a USB
    printer that meets all of the following conditions: 1. The setup procedure
    of the printer was initiated automatically when the printer was physically
    connected to the device. 2. There is a matching PPD file that can be used to
    setup the printer. 3. The printer supports IPP over USB protocol. 4. The
    printer was setup in the first attempt.
  </summary>
</histogram>

<histogram name="Printing.CUPS.NearbyNetworkAutomaticPrintersCount"
    units="printers" expires_after="2027-01-17">
  <owner>bmgordon@chromium.org</owner>
  <owner>project-bolton@google.com</owner>
  <summary>
    The number of detected network printers classified as Automatic, excluding
    Saved printers. Recorded when the user navigates to the OS Settings Printing
    page to set up printers. Only recorded on Chrome OS.
  </summary>
</histogram>

<histogram name="Printing.CUPS.NearbyNetworkDiscoveredPrintersCount"
    units="printers" expires_after="2026-12-06">
  <owner>bmgordon@chromium.org</owner>
  <owner>project-bolton@google.com</owner>
  <summary>
    The number of detected network printers classified as Discovered, excluding
    Saved printers. Recorded when the user navigates to the OS Settings Printing
    page to set up printers. Only recorded on Chrome OS.
  </summary>
</histogram>

<histogram name="Printing.CUPS.NearbyNetworkPrintersCount" units="printers"
    expires_after="2027-01-17">
  <owner>bmgordon@chromium.org</owner>
  <owner>project-bolton@google.com</owner>
  <summary>
    The number of detected network printers that have not been saved. Recorded
    when the user navigates to the OS Settings Printing page to set up printers.
    Only recorded on Chrome OS.
  </summary>
</histogram>

<histogram name="Printing.CUPS.PrintDocumentSize" units="KB"
    expires_after="2027-01-18">
  <owner>bmgordon@chromium.org</owner>
  <owner>project-bolton@google.com</owner>
  <summary>
    Records the total size of the printed document (PDF) sent to CUPS. Only
    recorded on Chrome OS.
  </summary>
</histogram>

<histogram name="Printing.CUPS.PrinterAdded" enum="PrinterProtocol"
    expires_after="2026-11-03">
  <owner>bmgordon@chromium.org</owner>
  <owner>src/chromeos/printing/OWNERS</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.PrinterEditDialogActions"
    enum="PrinterEditDialogActions" expires_after="2026-12-27">
  <owner>nmuggli@google.com</owner>
  <owner>project-bolton@google.com</owner>
  <summary>
    Tracks when the printer edit dialog is opened and certain user interactions.
    Every time the dialog is opened, the first bucket will get incremented.
    Additional buckets will get incremented for specific actions, such as
    clicking the View PPD button. Therefore, the first bucket acts as the total
    number of potential events and subsequest buckets track how many times
    specific events occurred. Only on Chrome OS. Note that this metric was not
    being recorded until middle of January 2024 (M122) despite initially landing
    in M109.
  </summary>
</histogram>

<histogram name="Printing.CUPS.PrinterRemoved" enum="PrinterProtocol"
    expires_after="2026-11-10">
  <owner>bmgordon@chromium.org</owner>
  <owner>src/chromeos/printing/OWNERS</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"
    expires_after="2027-02-07">
  <owner>bmgordon@chromium.org</owner>
  <owner>src/chromeos/printing/OWNERS</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"
    expires_after="never">
<!-- expires-never: Monitors printer setup health for Chrome OS. -->

  <owner>bmgordon@chromium.org</owner>
  <owner>src/chromeos/printing/OWNERS</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.
    Printer setup results go into either this histogram or the
    Printing.CUPS.ZeroconfPrinterSetupResult histogram - not both.
  </summary>
</histogram>

<histogram name="Printing.CUPS.PrinterSetupResult.PrintPreview"
    enum="PrinterSetupResult" expires_after="2027-01-17">
  <owner>bmgordon@chromium.org</owner>
  <owner>cros-printing-dev@chromium.org</owner>
  <summary>
    The success or error code for the setup of a CUPS printer. Recorded when
    setup is attempted from the print preview dialog. Only recorded on Chrome
    OS. Printer setup results go into either this histogram or the
    Printing.CUPS.ZeroconfPrinterSetupResult.PrintPreview histogram - not both.
  </summary>
</histogram>

<histogram name="Printing.CUPS.PrinterSetupResult.SettingsDiscoveredPrinters"
    enum="PrinterSetupResult" expires_after="2026-11-16">
  <owner>gavinwill@google.com</owner>
  <owner>bmgordon@chromium.org</owner>
  <owner>src/chromeos/printing/OWNERS</owner>
  <summary>
    The success or error code for the setup of printers classified as
    &quot;Discovered&quot;. Recorded when the user clicks the Setup button in OS
    Printer Settings when attempting to save a printer. Only recorded on Chrome
    OS.
  </summary>
</histogram>

<histogram name="Printing.CUPS.PrinterStatusQueryResult"
    enum="PrinterStatusQueryResult" expires_after="2027-01-14">
  <owner>bmgordon@google.com</owner>
  <owner>cros-device-enablement@google.com</owner>
  <summary>
    Records the success outcome of a printer status query to a local printer.

    Note: Missing data from 2024-01-14 to 2024-07-29.
  </summary>
</histogram>

<histogram name="Printing.CUPS.PrinterStatusReasons"
    enum="PrinterStatusReasons" expires_after="2027-01-29">
  <owner>gavinwill@google.com</owner>
  <owner>cros-device-enablement@google.com</owner>
  <summary>
    Records the status reasons returned by a local printer from a printer status
    query. Each returned printer status request can contain multiple status
    reasons so summing these buckets will overcount the total # of status
    queries.
  </summary>
</histogram>

<histogram name="Printing.CUPS.ProtocolUsed" enum="PrinterProtocol"
    expires_after="2027-02-14">
  <owner>bmgordon@chromium.org</owner>
  <owner>cros-printing-dev@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="Printing.CUPS.SavedPrintersCount" units="printers"
    expires_after="2026-12-07">
  <owner>gavinwill@google.com</owner>
  <owner>cros-device-enablement@google.com</owner>
  <summary>
    Records the number of saved printers when the user launches or refreshes the
    OS Settings Printing page.
  </summary>
</histogram>

<histogram name="Printing.CUPS.SettingsUserAction"
    enum="PrinterSettingsUserAction" expires_after="2027-01-06">
  <owner>bmgordon@google.com</owner>
  <owner>cros-device-enablement@google.com</owner>
  <summary>
    Records the action a user takes on the OS Printer settings page.
  </summary>
</histogram>

<histogram name="Printing.CUPS.TotalNetworkPrintersCount2" units="printers"
    expires_after="2027-02-07">
  <owner>bmgordon@chromium.org</owner>
  <owner>project-bolton@google.com</owner>
  <summary>
    The total number of detected network printers. Recorded whenever the
    background running mDNS detector reports detected printers. The mDNS
    detector reports more often when printers are detected on the network, so
    the &quot;0 printers&quot; case might be underrepresented in this metric.
    Look to &quot;Printing.CUPS.TotalNetworkPrintersCount2.SettingsOpened&quot;
    for more accurate &quot;0 printers&quot; representation. Only recorded on
    Chrome OS.
  </summary>
</histogram>

<histogram name="Printing.CUPS.TotalNetworkPrintersCount2.SettingsOpened"
    units="printers" expires_after="2026-12-07">
  <owner>bmgordon@chromium.org</owner>
  <owner>project-bolton@google.com</owner>
  <summary>
    The total number of detected network printers. Recorded when the user
    navigates to the OS Settings Printing page to set up printers. Only recorded
    on Chrome OS.
  </summary>
</histogram>

<histogram name="Printing.CUPS.UsbSetupSource" enum="UsbPrinterSetupSource"
    expires_after="2026-12-07">
  <owner>gavinwill@google.com</owner>
  <owner>cros-device-enablement@google.com</owner>
  <summary>
    Records the source from which a USB printer was configured in Chrome OS.
    Used to track relative usage of the various printer setup routes. Only emits
    after a successful printer setup. Warning: this histogram was expired from
    2022-10-04 to M130; data may be missing.
  </summary>
</histogram>

<histogram name="Printing.CUPS.ZeroconfPrinterSetupResult"
    enum="PrinterSetupResult" expires_after="never">
<!-- expires-never: Monitors printer setup health for Chrome OS. -->

  <owner>kdlee@chromium.org</owner>
  <owner>cros-printing-dev@chromium.org</owner>
  <summary>
    The success or error code for the setup of a Zeroconf printer. Recorded when
    setup is attempted through the settings dialogs. Only recorded on Chrome OS.
    Printer setup results go into either this histogram or the
    Printing.CUPS.PrinterSetupResult histogram - not both.
  </summary>
</histogram>

<histogram name="Printing.CUPS.ZeroconfPrinterSetupResult.PrintPreview"
    enum="PrinterSetupResult" expires_after="2027-01-17">
  <owner>bmgordon@chromium.org</owner>
  <owner>cros-printing-dev@chromium.org</owner>
  <summary>
    The success or error code for the setup of a Zeroconf printer. Recorded when
    setup is attempted from the print preview dialog. Only recorded on Chrome
    OS. Printer setup results go into either this histogram or the
    Printing.CUPS.PrinterSetupResult.PrintPreview histogram - not both.
  </summary>
</histogram>

<histogram name="Printing.Oop.PrintResult" enum="PrintOopResult"
    expires_after="2027-01-17">
  <owner>awscreen@chromium.org</owner>
  <owner>thestig@chromium.org</owner>
  <summary>
    Records the final result of a print job where the interactions with the
    system printing APIs are performed out-of-process in the PrintBackend
    service.

    This covers printing initiated from Print Preview as well as from a system
    print dialog for platforms which provide that.

    Recorded upon completion of each print job by PrintJobWorkerOop.
  </summary>
</histogram>

<histogram name="Printing.PrintDuration.LocalPrinter.Success" units="ms"
    expires_after="2025-08-14">
  <owner>awscreen@chromium.org</owner>
  <owner>thestig@chromium.org</owner>
  <summary>
    Records the time to successfully print a document to a local printer. All
    print job settings are determined before the start of the measurement. This
    time represents the period from when a print job is started until a document
    done completes successfully, after the document has been fully spooled to
    the platform for transmission to the printer. This includes the time for any
    required data format conversions, such as from PDF to another format like
    EMF, PostScript, or XPS. Specifically excluded from collection for this
    metric are Windows print jobs which use a printer driver that prompts the
    user with a &quot;Save Print Output As&quot; dialog, since such print jobs
    could be arbitrarily long waiting for data entry by users.
  </summary>
</histogram>

<histogram name="Printing.PrintManagement.GetPrintJobsRequestDuration"
    units="ms" expires_after="2027-09-14">
  <owner>gavinwill@google.com</owner>
  <owner>cros-device-enablement@google.com</owner>
  <summary>
    Recorded the time it takes for the Print Management UI to receive a response
    from a `getPrintJobs()` request. Recorded whenever print jobs are requested.
  </summary>
</histogram>

<histogram name="Printing.PrintServers.ServersToQuery" units="servers"
    expires_after="2024-09-01">
  <owner>pawliczek@chromium.org</owner>
  <owner>bmgordon@chromium.org</owner>
  <summary>
    Records the number of print servers that must be queried according to
    policies. Only non-zero values are recorded. The histogram is emitted when
    ExternalPrintServers* policies are loaded and processed. It happens when a
    profile is opened or when one of the policies is modified.
  </summary>
</histogram>

<histogram name="PrintPreview.EnumeratePrintersTime" units="ms"
    expires_after="2027-01-29">
  <owner>awscreen@chromium.org</owner>
  <owner>thestig@chromium.org</owner>
  <summary>
    Time to acquire the list of local printers from the print backend, as needed
    by Print Preview.
  </summary>
</histogram>

<histogram name="PrintPreview.FetchCapabilitiesTime2" units="ms"
    expires_after="2027-01-29">
  <owner>awscreen@chromium.org</owner>
  <owner>thestig@chromium.org</owner>
  <summary>
    Time to acquire the set of capabilities for a local printer from the print
    backend, as needed by Print Preview.
  </summary>
</histogram>

<histogram name="PrintPreview.GetDefaultPrinterNameTime" units="ms"
    expires_after="2027-01-29">
  <owner>awscreen@chromium.org</owner>
  <owner>thestig@chromium.org</owner>
  <summary>
    Time to acquire the name of the default printer from the print backend, as
    needed by Print Preview. Warning: this histogram was expired from 2025-03-14
    to 2025-03-18; data may be missing.
  </summary>
</histogram>

<histogram name="PrintPreview.GetPrintersTime.{PrinterType}" units="ms"
    expires_after="2027-01-29">
  <owner>gavinwill@google.com</owner>
  <owner>cros-device-enablement@google.com</owner>
  <summary>
    The amount of time it takes to fetch {PrinterType} printers. Recorded
    whenever Print Preview is opened and {PrinterType} printers are requested.
  </summary>
  <token key="PrinterType">
    <variant name="Extension"/>
    <variant name="Local"/>
    <variant name="PDF"/>
  </token>
</histogram>

<histogram name="PrintPreview.InitialDisplayTime" units="ms"
    expires_after="2027-01-29">
  <owner>thestig@chromium.org</owner>
  <owner>dhoss@chromium.org</owner>
  <summary>
    Time from when print preview is initiated until the initial preview is sent
    to the preview tab for rendering.
  </summary>
</histogram>

<histogram name="PrintPreview.InitialDisplayTime.LongTimes" units="ms"
    expires_after="2027-01-29">
  <owner>gavinwill@google.com</owner>
  <owner>cros-device-enablement@google.com</owner>
  <summary>
    Time from when print preview is initiated until the initial preview is sent
    to the preview tab for rendering with the minimum bucket set as 10 seconds
    to give better granularity for longer load times.
  </summary>
</histogram>

<histogram name="PrintPreview.InitialDisplayTimeFirstPrint" units="ms"
    expires_after="2027-01-29">
  <owner>thestig@chromium.org</owner>
  <owner>awscreen@chromium.org</owner>
  <summary>
    Time from when print preview is initiated until the initial preview is sent
    to the preview tab for rendering. Only captured for the very first print
    preview request since the browser started. This metric will not be captured
    if the user cancels out of the first print preview before the result is
    ready for rendering.
  </summary>
</histogram>

<histogram name="PrintPreview.InitialDisplayTimeFirstPrint.LongTimes"
    units="ms" expires_after="2027-01-29">
  <owner>gavinwill@google.com</owner>
  <owner>cros-device-enablement@google.com</owner>
  <summary>
    Time from when print preview is initiated until the initial preview is sent
    to the preview tab for rendering with the minimum bucket set as 10 seconds
    to give better granularity for longer load times. Only captured for the very
    first print preview request since the browser started. This metric will not
    be captured if the user cancels out of the first print preview before the
    result is ready for rendering.
  </summary>
</histogram>

<histogram name="PrintPreview.InitializationTime" units="ms"
    expires_after="never">
<!-- expires-never: Monitors printing system health. -->

  <owner>thestig@chromium.org</owner>
  <owner>dhoss@chromium.org</owner>
  <summary>
    Time from when print preview is initiated until the preview PDF generation
    is started.
  </summary>
</histogram>

<histogram name="PrintPreview.NumberOfPrinters" units="units"
    expires_after="2027-01-03">
  <owner>thestig@chromium.org</owner>
  <owner>dhoss@chromium.org</owner>
  <summary>
    Count the total number of printers shown in destination drop down list.
  </summary>
</histogram>

<histogram name="PrintPreview.PrintAttemptOutcome" enum="PrintAttemptOutcome"
    expires_after="2027-01-17">
  <owner>gavinwill@google.com</owner>
  <owner>cros-device-enablement@google.com</owner>
  <summary>
    Tracks the outcome of a print journey on ChromeOS. This metric attempts to
    capture all expected outcomes when a user goes to print. Once Print Preview
    is opened, this metric gets recorded after one of the following: either
    Print Preview is canceled and closed, or the attempted print job completes.
  </summary>
</histogram>

<histogram name="PrintPreview.PrintDocumentType"
    enum="PrintPreviewPrintDocumentTypeBuckets" expires_after="2027-01-17">
  <owner>rbpotter@chromium.org</owner>
  <owner>awscreen@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.PrinterSettingsLaunchSource"
    enum="PrintPreviewLaunchSourceType" expires_after="2026-07-14">
  <owner>ashleydp@google.com</owner>
  <owner>gavinwill@google.com</owner>
  <owner>cros-device-enablement@google.com</owner>
  <summary>
    Tracks the source element that triggers navigation to Printer settings from
    Print Preview on ChromeOS. It attempts to capture the state of Print Preview
    when a user clicks the Printer settings button. Possible states include:
    preview-area displaying connection error on selected printer,
    destination-dialog-cros displaying destinations, and destination-dialog-cros
    displaying empty state.

    Note: Missing data from 2024-01-23 to 2024-07-29.
  </summary>
</histogram>

<histogram name="PrintPreview.PrinterStatus.{StatusReason}.PrintJobSuccess"
    enum="BooleanSuccess" expires_after="2026-11-03">
  <owner>gavinwill@google.com</owner>
  <owner>cros-device-enablement@google.com</owner>
  <summary>
    Tracks the success rate of a print job on ChromeOS while the {StatusReason}
    status is shown for the selected printer in Print Preview. The metric is
    recorded once the print job completes.
  </summary>
  <token key="StatusReason">
    <variant name="DeviceError" summary="Device Error"/>
    <variant name="DoorOpen" summary="Door Open"/>
    <variant name="LowOnInk" summary="Low On Ink"/>
    <variant name="LowOnPaper" summary="Low On Paper"/>
    <variant name="NoError" summary="No Error"/>
    <variant name="OutOfInk" summary="Out Of Ink"/>
    <variant name="OutOfPaper" summary="Out Of Paper"/>
    <variant name="OutputAlmostFull" summary="Output Almost Full"/>
    <variant name="OutputFull" summary="Output Full"/>
    <variant name="PaperJam" summary="Paper Jam"/>
    <variant name="Paused" summary="Printer Paused"/>
    <variant name="PrinterQueueFull" summary="Printer Queue Full"/>
    <variant name="PrinterUnreachable" summary="Printer Unreachable"/>
    <variant name="Stopped" summary="Printer Stopped"/>
    <variant name="TrayMissing" summary="Tray Missing"/>
    <variant name="UnknownReason" summary="Unknown Reason"/>
  </token>
</histogram>

<histogram name="PrintPreview.PrintSettings" enum="PrintSettings"
    expires_after="2027-02-14">
  <owner>thestig@chromium.org</owner>
  <owner>awscreen@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" expires_after="2024-07-01">
  <owner>rbpotter@chromium.org</owner>
  <owner>thestig@chromium.org</owner>
  <summary>
    Actions performed by the user interacting with print settings UI elements.
  </summary>
</histogram>

<histogram name="PrintPreview.RenderAndGeneratePDFTime" units="ms"
    expires_after="never">
<!-- expires-never: Monitors printing system health. -->

  <owner>thestig@chromium.org</owner>
  <owner>dhoss@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"
    expires_after="never">
<!-- expires-never: Monitors printing system health. -->

  <owner>thestig@chromium.org</owner>
  <owner>dhoss@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"
    expires_after="never">
<!-- expires-never: Monitors printing system health. -->

  <owner>thestig@chromium.org</owner>
  <owner>dhoss@chromium.org</owner>
  <summary>
    Count how frequently a set of pre-defined print preview errors occur.
  </summary>
</histogram>

<histogram name="PrintPreview.RenderToPDFTime" units="ms" expires_after="never">
<!-- expires-never: Monitors printing system health. -->

  <owner>thestig@chromium.org</owner>
  <owner>awscreen@chromium.org</owner>
  <summary>Time taken to render to PDF for print preview.</summary>
</histogram>

<histogram name="PrintPreview.StateError" enum="PrintPreviewStateError"
    expires_after="2025-07-27">
  <owner>awscreen@chromium.org</owner>
  <owner>thestig@chromium.org</owner>
  <summary>
    Records the error that puts Print Preview into an error state. The NONE
    error state is not recorded. In an error state, the Print button is
    disabled. Warning: this histogram was expired from 2024-01-24 to 2024-06-10;
    data may be missing.
  </summary>
</histogram>

<histogram name="PrintPreview.TransitionedToReadyState" enum="BooleanSuccess"
    expires_after="2026-07-14">
  <owner>gavinwill@google.com</owner>
  <owner>thestig@chromium.org</owner>
  <summary>
    Records `Success` when Print Preview transitions from the initial NOT_READY
    state to the READY state. Records `Failure` when Print Preview transitions
    from the initial NOT_READY state to the ERROR state. This metric only
    records for non-PDF destinations.

    Note: Missing data from 2024-01-23 to 2024-07-29.
  </summary>
</histogram>

<histogram name="PrintPreview.UserAction" enum="PrintPreviewUserActionType"
    expires_after="2027-02-14">
  <owner>thestig@chromium.org</owner>
  <owner>awscreen@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>

</histograms>

</histogram-configuration>
