| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 // Defines messages between the browser and NaCl process. | |
| 6 | |
| 7 // Multiply-included message file, no traditional include guard. | |
| 8 #include "base/process.h" | |
| 9 #include "chrome/common/nacl_types.h" | |
| 10 #include "ipc/ipc_channel_handle.h" | |
| 11 #include "ipc/ipc_message_macros.h" | |
| 12 #include "ipc/ipc_platform_file.h" | |
| 13 | |
| 14 #define IPC_MESSAGE_START NaClMsgStart | |
| 15 | |
| 16 IPC_STRUCT_TRAITS_BEGIN(nacl::NaClStartParams) | |
| 17 IPC_STRUCT_TRAITS_MEMBER(handles) | |
| 18 IPC_STRUCT_TRAITS_MEMBER(debug_stub_server_bound_socket) | |
| 19 IPC_STRUCT_TRAITS_MEMBER(validation_cache_enabled) | |
| 20 IPC_STRUCT_TRAITS_MEMBER(validation_cache_key) | |
| 21 IPC_STRUCT_TRAITS_MEMBER(version) | |
| 22 IPC_STRUCT_TRAITS_MEMBER(enable_exception_handling) | |
| 23 IPC_STRUCT_TRAITS_MEMBER(enable_debug_stub) | |
| 24 IPC_STRUCT_TRAITS_MEMBER(enable_ipc_proxy) | |
| 25 IPC_STRUCT_TRAITS_MEMBER(uses_irt) | |
| 26 IPC_STRUCT_TRAITS_MEMBER(enable_dyncode_syscalls) | |
| 27 IPC_STRUCT_TRAITS_END() | |
| 28 | |
| 29 //----------------------------------------------------------------------------- | |
| 30 // NaClProcess messages | |
| 31 // These are messages sent between the browser and the NaCl process. | |
| 32 // Tells the NaCl process to start. | |
| 33 IPC_MESSAGE_CONTROL1(NaClProcessMsg_Start, | |
| 34 nacl::NaClStartParams /* params */) | |
| 35 | |
| 36 #if defined(OS_WIN) | |
| 37 // Tells the NaCl broker to launch a NaCl loader process. | |
| 38 IPC_MESSAGE_CONTROL1(NaClProcessMsg_LaunchLoaderThroughBroker, | |
| 39 std::string /* channel ID for the loader */) | |
| 40 | |
| 41 // Notify the browser process that the loader was launched successfully. | |
| 42 IPC_MESSAGE_CONTROL2(NaClProcessMsg_LoaderLaunched, | |
| 43 std::string, /* channel ID for the loader */ | |
| 44 base::ProcessHandle /* loader process handle */) | |
| 45 | |
| 46 // Tells the NaCl broker to attach a debug exception handler to the | |
| 47 // given NaCl loader process. | |
| 48 IPC_MESSAGE_CONTROL3(NaClProcessMsg_LaunchDebugExceptionHandler, | |
| 49 int32 /* pid of the NaCl process */, | |
| 50 base::ProcessHandle /* handle of the NaCl process */, | |
| 51 std::string /* NaCl internal process layout info */) | |
| 52 | |
| 53 // Notify the browser process that the broker process finished | |
| 54 // attaching a debug exception handler to the given NaCl loader | |
| 55 // process. | |
| 56 IPC_MESSAGE_CONTROL2(NaClProcessMsg_DebugExceptionHandlerLaunched, | |
| 57 int32 /* pid */, | |
| 58 bool /* success */) | |
| 59 | |
| 60 // Notify the broker that all loader processes have been terminated and it | |
| 61 // should shutdown. | |
| 62 IPC_MESSAGE_CONTROL0(NaClProcessMsg_StopBroker) | |
| 63 | |
| 64 // Used by the NaCl process to request that a Windows debug exception | |
| 65 // handler be attached to it. | |
| 66 IPC_SYNC_MESSAGE_CONTROL1_1(NaClProcessMsg_AttachDebugExceptionHandler, | |
| 67 std::string, /* Internal process info */ | |
| 68 bool /* Result */) | |
| 69 #endif | |
| 70 | |
| 71 // Used by the NaCl process to query a database in the browser. The database | |
| 72 // contains the signatures of previously validated code chunks. | |
| 73 IPC_SYNC_MESSAGE_CONTROL1_1(NaClProcessMsg_QueryKnownToValidate, | |
| 74 std::string, /* A validation signature */ | |
| 75 bool /* Can validation be skipped? */) | |
| 76 | |
| 77 // Used by the NaCl process to add a validation signature to the validation | |
| 78 // database in the browser. | |
| 79 IPC_MESSAGE_CONTROL1(NaClProcessMsg_SetKnownToValidate, | |
| 80 std::string /* A validation signature */) | |
| 81 | |
| 82 // Used by the NaCl process to acquire trusted information about a file directly | |
| 83 // from the browser, including the file's path as well as a fresh version of the | |
| 84 // file handle. | |
| 85 IPC_SYNC_MESSAGE_CONTROL2_2(NaClProcessMsg_ResolveFileToken, | |
| 86 uint64, /* file_token_lo */ | |
| 87 uint64, /* file_token_hi */ | |
| 88 IPC::PlatformFileForTransit, /* fd */ | |
| 89 base::FilePath /* Path opened to get fd */) | |
| 90 | |
| 91 // Notify the browser process that the server side of the PPAPI channel was | |
| 92 // created successfully. | |
| 93 IPC_MESSAGE_CONTROL1(NaClProcessHostMsg_PpapiChannelCreated, | |
| 94 IPC::ChannelHandle /* channel_handle */) | |
| OLD | NEW |