summaryrefslogtreecommitdiff
path: root/chromium/components/arc/mojom/print.mojom
blob: c7eb2e736a7090ca3deb55d3692e137557f57ab9 (plain)
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
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Next MinVersion: 2

module arc.mojom;

import "components/arc/mojom/print_common.mojom";

// android.printservice.PrinterDiscoverySession implementation.
// This is called by container when printing is requested and printer discovery
// has to start. Implemented in embedder.
// The normal order this is called is:
// StartPrinterDiscovery
// StartPrinterStateTracking
// StopPrinterStateTracking
// StopPrinterDiscovery
// DestroyDiscoverySession
// (ValidatePrinters is not used in practice)
//
// Next method ID: 6
interface PrinterDiscoverySessionHost {
  StartPrinterDiscovery@0(array<string> printer_ids);
  StopPrinterDiscovery@1();
  ValidatePrinters@2(array<string> printer_ids);
  StartPrinterStateTracking@3(string printer_id);
  StopPrinterStateTracking@4(string printer_id);
  DestroyDiscoverySession@5();
};

// android.printservice.PrinterDiscoverySession final methods proxy.
// This is called by embedder when printer discovery is active.
// Implemented in container.
// Next method ID: 2
interface PrinterDiscoverySessionInstance {
  AddPrinters@0(array<PrinterInfo> printers);
  RemovePrinters@1(array<string> printers);
};

// android.printservice.PrintService.onRequestCancelPrintJob implementation.
// This is called by container when job cancellation was requested.
// Implemented in embedder.
// Next method ID: 1
interface PrintJobHost {
  Cancel@0();
};

// android.printservice.PrintJob proxy.
// This is called by embedder when print job status changes.
// Implemented in container.
// See https://developer.android.com/reference/android/printservice/PrintJob.html
// Next method ID: 7
interface PrintJobInstance {
  Start@0();
  Block@1(string? reason);
  Complete@2();
  Fail@3(string? reason);
  Cancel@4();
  SetProgress@5(float progress);
  SetStatus@6(string? status);
};

// android.printservice.PrintService implementation.
// This is called by container to create new discovery sessions and print jobs.
// Implemented in embedder.
// Next method ID: 2
// Deprecated method ID: 0
interface PrintHost {
  PrintDeprecated@0(handle file);
  [MinVersion=1] Print@1(PrintJobInstance instance, PrintJobRequest request) => (PrintJobHost host);
  [MinVersion=1] CreateDiscoverySession@2(PrinterDiscoverySessionInstance instance) =>
      (PrinterDiscoverySessionHost host);
};

// This is called by embedder to indicate that it's ready to accept print jobs.
// Implemented in container.
// Next method ID: 2
// Deprecated method ID: 0
interface PrintInstance {
  // DEPRECATED: Please use Init@1 instead.
  InitDeprecated@0(PrintHost host_ptr);

  // Establishes full-duplex communication with the host.
  [MinVersion=1] Init@1(PrintHost host_ptr) => ();
};