| // 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, |
| PLATFORM_FILE, |
| WIN_HANDLE, |
| MACH_PORT, |
| }; |
| |
| Type type; |
| }; |
| |
| // A placeholder interface type since we don't yet support generic associated |
| // message pipe handles. |
| interface GenericInterface {}; |
| |
| interface Channel { |
| Receive(array<uint8> data, array<SerializedHandle>? handles); |
| |
| GetAssociatedInterface(string name, associated GenericInterface& request); |
| }; |
| |
| // 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); |
| }; |