| // 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/interfaces/bindings/native_struct.mojom"; |
| import "mojo/public/mojom/base/generic_pending_associated_receiver.mojom"; |
| |
| // Typemapped such that arbitrarily large IPC::Message objects can be sent and |
| // received with minimal copying. |
| struct Message { |
| array<uint8> bytes; |
| 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. |
| [UnlimitedSize] |
| Receive(Message message); |
| |
| // Requests a Channel-associated interface. |
| GetAssociatedInterface( |
| mojo_base.mojom.GenericPendingAssociatedReceiver receiver); |
| }; |
| |
| // A strictly nominal interface used to identify Channel bootstrap requests. |
| // This is only used in `AgentSchedulingGroup` initialization. |
| interface ChannelBootstrap {}; |
| |