File: printing_metrics.idl

package info (click to toggle)
chromium 138.0.7204.183-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 6,071,908 kB
  • sloc: cpp: 34,937,088; ansic: 7,176,967; javascript: 4,110,704; python: 1,419,953; asm: 946,768; xml: 739,971; pascal: 187,324; sh: 89,623; perl: 88,663; objc: 79,944; sql: 50,304; cs: 41,786; fortran: 24,137; makefile: 21,806; php: 13,980; tcl: 13,166; yacc: 8,925; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (157 lines) | stat: -rw-r--r-- 4,231 bytes parent folder | download | duplicates (6)
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);
  };
};