| // 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; |
| |
| import "mojo/public/mojom/base/big_buffer.mojom"; |
| import "mojo/public/interfaces/bindings/native_struct.mojom"; |
| |
| // A placeholder interface type since we don't yet support generic associated |
| // message pipe handles. |
| interface GenericInterface {}; |
| |
| // Typemapped such that arbitrarily large IPC::Message objects can be sent and |
| // received with minimal copying. |
| struct Message { |
| mojo_base.mojom.BigBuffer buffer; |
| array<mojo.native.SerializedHandle>? handles; |
| }; |
| |
| 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(Message message); |
| |
| // Requests a Channel-associated interface. |
| GetAssociatedInterface(string name, associated GenericInterface& request); |
| }; |
| |
| // A strictly nominal interface used to identify Channel bootstrap requests. |
| interface ChannelBootstrap {}; |
| |