1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
|
// 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"),
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);
};
};
|