| // Copyright 2019 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Use the <code>chrome.printingMetrics</code> API to fetch data about |
| // printing usage. |
| [platforms=("chromeos", "lacros"), |
| implemented_in="chrome/browser/chromeos/extensions/printing_metrics/printing_metrics_api.h"] |
| namespace printingMetrics { |
| // The source of the print job. |
| enum PrintJobSource { |
| // Specifies that the job was created from the Print Preview page |
| // initiated by the user. |
| PRINT_PREVIEW, |
| |
| // Specifies that the job was created from an Android App. |
| ANDROID_APP, |
| |
| // Specifies that the job was created by extension via Chrome API. |
| EXTENSION, |
| |
| // Specifies that the job was created by an Isolated Web App via API. |
| ISOLATED_WEB_APP |
| }; |
| |
| // Specifies the final status of the print job. |
| enum PrintJobStatus { |
| // Specifies that the print job was interrupted due to some error. |
| FAILED, |
| |
| // Specifies that the print job was canceled by the user or via API. |
| CANCELED, |
| |
| // Specifies that the print job was printed without any errors. |
| PRINTED |
| }; |
| |
| // The source of the printer. |
| enum PrinterSource { |
| // Specifies that the printer was added by user. |
| USER, |
| |
| // Specifies that the printer was added via policy. |
| POLICY |
| }; |
| |
| enum ColorMode { |
| // Specifies that black and white mode was used. |
| BLACK_AND_WHITE, |
| |
| // Specifies that color mode was used. |
| COLOR |
| }; |
| |
| enum DuplexMode { |
| // Specifies that one-sided printing was used. |
| ONE_SIDED, |
| |
| // Specifies that two-sided printing was used, flipping on long edge. |
| TWO_SIDED_LONG_EDGE, |
| |
| // Specifies that two-sided printing was used, flipping on short edge. |
| TWO_SIDED_SHORT_EDGE |
| }; |
| |
| // The size of requested media. |
| dictionary MediaSize { |
| // Width (in micrometers) of the media used for printing. |
| long width; |
| |
| // Height (in micrometers) of the media used for printing. |
| long height; |
| |
| // Vendor-provided ID, e.g. "iso_a3_297x420mm" or "na_index-3x5_3x5in". |
| // Possible values are values of "media" IPP attribute and can be found on |
| // <a href="https://www.iana.org/assignments/ipp-registrations/ipp-registrations.xhtml"> |
| // IANA page</a> . |
| DOMString vendorId; |
| }; |
| |
| // The requested settings of print job. |
| dictionary PrintSettings { |
| // The requested color mode. |
| ColorMode color; |
| |
| // The requested duplex mode. |
| DuplexMode duplex; |
| |
| // The requested media size. |
| MediaSize mediaSize; |
| |
| // The requested number of copies. |
| long copies; |
| }; |
| |
| // The printer info. |
| dictionary Printer { |
| // Displayed name of the printer. |
| DOMString name; |
| |
| // The full path for the printer. |
| // Contains protocol, hostname, port, and queue. |
| DOMString uri; |
| |
| // The source of the printer. |
| PrinterSource source; |
| }; |
| |
| // Print job information. |
| dictionary PrintJobInfo { |
| // The ID of the job. |
| DOMString id; |
| |
| // The title of the document which was printed. |
| DOMString title; |
| |
| // Source showing who initiated the print job. |
| PrintJobSource source; |
| |
| // ID of source. Null if source is PRINT_PREVIEW or ANDROID_APP. |
| DOMString? sourceId; |
| |
| // The final status of the job. |
| PrintJobStatus status; |
| |
| // The job creation time (in milliseconds past the Unix epoch). |
| double creationTime; |
| |
| // The job completion time (in milliseconds past the Unix epoch). |
| double completionTime; |
| |
| // The info about the printer which printed the document. |
| Printer printer; |
| |
| // The settings of the print job. |
| PrintSettings settings; |
| |
| // The number of pages in the document. |
| long numberOfPages; |
| |
| // The status of the printer. |
| printing.PrinterStatus printer_status; |
| }; |
| |
| callback GetPrintJobsCallback = void(PrintJobInfo[] jobs); |
| |
| interface Functions { |
| // Returns the list of the finished print jobs. |
| static void getPrintJobs(GetPrintJobsCallback callback); |
| }; |
| |
| interface Events { |
| // Event fired when the print job is finished. |
| // This includes any of termination statuses: FAILED, CANCELED and PRINTED. |
| static void onPrintJobFinished(PrintJobInfo jobInfo); |
| }; |
| }; |