chromium/tools/metrics/histograms/metadata/printing/histograms.xml

<!--
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
[email protected].
-->

<histogram-configuration>

<histograms>

<histogram name="Printing.ConversionSize.Emf" units="KB"
    expires_after="2025-07-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    On Windows, the average size of a printed page after converting to EMF.
    Recorded after conversion.
  </summary>
</histogram>

<histogram name="Printing.ConversionSize.EmfWithReducedRasterization"
    units="KB" expires_after="2025-07-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    On Windows, the average size of a printed page after converting to EMF with
    the reduced rasterization feature turned on. Recorded after conversion.
  </summary>
</histogram>

<histogram name="Printing.ConversionSize.PostScript2" units="KB"
    expires_after="2025-07-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    On Windows, the average size of a printed page after converting to level 2
    PostScript. Recorded after conversion.
  </summary>
</histogram>

<histogram name="Printing.ConversionSize.PostScript3" units="KB"
    expires_after="2025-07-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    On Windows, the average size of a printed page after converting to level 3
    PostScript. Recorded after conversion.
  </summary>
</histogram>

<histogram name="Printing.ConversionSize.PostScript3WithType42Fonts" units="KB"
    expires_after="2025-07-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    On Windows, the average size of a printed page after converting to level 3
    PostScript with Type 42 fonts. Recorded after conversion.
  </summary>
</histogram>

<histogram name="Printing.ConversionSize.Pwg" units="KB"
    expires_after="2025-07-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    On desktop, the average size of a printed page after converting to PWG
    Raster format. Recorded after conversion.
  </summary>
</histogram>

<histogram name="Printing.CUPS.AddPrinterManuallyResult" enum="BooleanSuccess"
    expires_after="2025-07-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-06-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</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-01-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.IppAttributesSuccess" enum="BooleanSuccess"
    expires_after="2024-12-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Record if the request for IPP attributes was successful during printer
    setup. This only occurs for setup attempts of IPP and IPPS printers.
    Starting with M79, this is only recorded if the printer was reachable.

    Recorded when printers are queried for attributes in ChromeOS settings.
  </summary>
</histogram>

<histogram name="Printing.CUPS.IppDeviceReachable" enum="BooleanSuccess"
    expires_after="2025-03-22">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</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>[email protected]</owner>
  <owner>[email protected]</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-01-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-10">
  <owner>[email protected]</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="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-01">
  <owner>[email protected]</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="2025-01-21">
  <owner>[email protected]</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>[email protected]</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="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-07-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.PrinterStatusRetrySuccess" enum="Boolean"
    expires_after="2022-12-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the success outcome for a retried printer status query to an
    unreachable local printer. Only recorded for the retry attempt. The result
    for the first attempt is recorded by Printing.CUPS.PrinterStatusQueryResult.
  </summary>
</histogram>

<histogram name="Printing.CUPS.ProtocolUsed" enum="PrinterProtocol"
    expires_after="2025-01-21">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-10-06">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-24">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-11-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-11-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.UnknownPpdColorModel" enum="Boolean"
    expires_after="2025-03-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records instances in which print preview encounters an unknown PPD color
    model. Recorded after print settings are received from print preview. Note
    that this this histogram expired on 2021-02-01 and was extended on
    2021-03-30.
  </summary>
</histogram>

<histogram name="Printing.CUPS.UsbSetupSource" enum="UsbPrinterSetupSource"
    expires_after="2022-10-04">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.
  </summary>
</histogram>

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

  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.LacrosExtensions.FromAsh.Job.Result"
    enum="ExtensionPrintJobStatus" expires_after="2025-06-03">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of sending a print job to a lacros extension printer from
    ash. When lacros is enabled, printing extensions can only be installed in
    lacros browser. When printing from CrOS native apps, print requests will be
    sent from ash side to lacros side via mojom service.
  </summary>
</histogram>

<histogram name="Printing.LacrosExtensions.FromAsh.NumberOfPrinters"
    units="printers" expires_after="2025-06-03">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of printers reported by lacros extensions when getting
    printers request comes from ash. When lacros is enabled, printing extensions
    can only be installed in lacros browser. When printing from CrOS native
    apps, get printers requests will be sent from ash side to lacros side via
    mojom service. Since not many users have extension printers, Only non-zero
    values will be recorded.
  </summary>
</histogram>

<histogram name="Printing.Oop.PrintResult" enum="PrintOopResult"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.PrintBackend.DriversRequiringElevatedPrivilegeEncountered"
    enum="BooleanFound" expires_after="2023-05-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records if any printer driver operations were found to fail because of
    access-denied errors when used in a sandboxed utility process. This can
    occur from queries for setting up print preview as well as when printing a
    document to a destination.
  </summary>
</histogram>

<histogram name="Printing.PrintDuration.LocalPrinter.Success" units="ms"
    expires_after="2025-08-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</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>[email protected]</owner>
  <owner>[email protected]</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="2025-03-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time to acquire the list of local printers from the print backend, as needed
    by Print Preview.
  </summary>
</histogram>

<histogram name="PrintPreview.FetchCapabilitiesTime" units="ms"
    expires_after="2025-03-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time to acquire the name of the default printer from the print backend, as
    needed by Print Preview.
  </summary>
</histogram>

<histogram name="PrintPreview.GetPrintersTime.{PrinterType}" units="ms"
    expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-19">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</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>[email protected]</owner>
  <owner>[email protected]</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="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Count the total number of printers shown in destination drop down list.
  </summary>
</histogram>

<histogram name="PrintPreview.PrintAttemptOutcome" enum="PrintAttemptOutcome"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-07-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-11-03">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</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>[email protected]</owner>
  <owner>[email protected]</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>[email protected]</owner>
  <owner>[email protected]</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>[email protected]</owner>
  <owner>[email protected]</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>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Count how frequently a set of pre-defined print preview errors occur.
  </summary>
</histogram>

<histogram name="PrintPreview.RenderToPDFTime" units="ms"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Time taken to render to PDF for print preview.</summary>
</histogram>

<histogram name="PrintPreview.StateError" enum="PrintPreviewStateError"
    expires_after="2025-03-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-07-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-19">
  <owner>[email protected]</owner>
  <owner>[email protected]</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>