summaryrefslogtreecommitdiffstats
path: root/ipc/mojo/ipc.mojom
blob: d15a23c3e95157dce6ef3da7fb045ca350ef0b75 (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
// 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.

module IPC.mojom;

struct SerializedHandle {
  handle the_handle;

  enum Type {
    MOJO_HANDLE,
    WIN_HANDLE,
    MACH_PORT,
  };

  Type type;
};

interface Channel {
  Receive(array<uint8> data, array<SerializedHandle>? handles);
};

// An interface for connecting a pair of Channel interfaces representing a
// bidirectional IPC channel.
interface Bootstrap {
  // Initializes a Chrome IPC channel over |to_client_channel| and
  // |to_server_channel|. Each side also sends its PID to the other side.
  Init(associated Channel& to_client_channel,
       associated Channel to_server_channel,
       int32 pid) => (int32 pid);
};