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

ash / components / arc / mojom / print_spooler.mojom [blame]

// 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.
//
// Next MinVersion: 5

module arc.mojom;

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

// Represents the Chrome side of a print session. Used by ARC to send
// print-related messages to Chrome and interact with the ARC Custom Tab used
// for printing.
// Closing the interface will close the ARC Custom Tab.
// Next method ID: 0
interface PrintSessionHost {
};

// Represents the ARC side of a print session. Used by Chrome to send
// print-related messages to ARC and request rendered print documents.
// Next method ID: 2
interface PrintSessionInstance {
  // Called when Chrome print preview is closed.
  [MinVersion=2] OnPrintPreviewClosed@0();

  // Creates a |preview_document| for print preview using the provided
  // |request|.
  // The returned |preview_document| will be null if errors occurred while
  // rendering it.
  [MinVersion=3] CreatePreviewDocument@1(PrintDocumentRequest request)
      => (handle? preview_document, int64 data_size);
};

// Used by ARC to create a new print session. A print session is used to print a
// document from ARC using Chrome print preview.
// Deprecated method ID: 0
// Next method ID: 2
interface PrintSpoolerHost {
  // Opens the file owned by |scoped_handle| in Chrome print preview in an ARC
  // Custom Tab.
  // The |task_id| specifies the Android task on which the ARC Custom Tab should
  // be shown.
  // The returned |host| will be null if errors occur while saving the print
  // document or locating the Android surface.
  [MinVersion=4] StartPrintInCustomTab@1(
      handle scoped_handle,
      int32 task_id,
      pending_remote<PrintSessionInstance> instance)
      => (pending_remote<PrintSessionHost>? host);
};

// Next method ID: 1
interface PrintSpoolerInstance {
  // Establishes full-duplex communication with the host.
  [MinVersion=0] Init@0(pending_remote<PrintSpoolerHost> host_remote) => ();
};