| // 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; |
| |
| // NOTE: This MUST match the value of MSG_ROUTING_NONE in src/ipc/ipc_message.h. |
| const int32 kRoutingIdNone = -2; |
| |
| 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 { |
| // Informs the remote end of this client's PID. Must be called exactly once, |
| // before any calls to Receive() below. |
| SetPeerPid(int32 pid); |
| |
| // Transmits a classical Chrome IPC message. |
| Receive(array<uint8> data, array<SerializedHandle>? handles); |
| |
| // Requests a Channel-associated interface. |
| GetAssociatedInterface(string name, associated GenericInterface& request); |
| }; |
| |
| // A strictly nominal interface used to identify Channel bootstrap requests. |
| interface ChannelBootstrap {}; |