OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef COMPONENTS_NACL_COMMON_NACL_TYPES_H_ | 5 #ifndef COMPONENTS_NACL_COMMON_NACL_TYPES_H_ |
6 #define COMPONENTS_NACL_COMMON_NACL_TYPES_H_ | 6 #define COMPONENTS_NACL_COMMON_NACL_TYPES_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 #include "base/basictypes.h" | 11 #include "base/basictypes.h" |
12 #include "base/process/process_handle.h" | 12 #include "base/process/process_handle.h" |
13 #include "build/build_config.h" | 13 #include "build/build_config.h" |
14 #include "ipc/ipc_channel.h" | 14 #include "ipc/ipc_channel.h" |
| 15 #include "ipc/ipc_platform_file.h" |
15 | 16 |
16 #if defined(OS_POSIX) | 17 #if defined(OS_POSIX) |
17 #include "base/file_descriptor_posix.h" | 18 #include "base/file_descriptor_posix.h" |
18 #endif | 19 #endif |
19 | 20 |
20 #if defined(OS_WIN) | 21 #if defined(OS_WIN) |
21 #include <windows.h> // for HANDLE | 22 #include <windows.h> // for HANDLE |
22 #endif | 23 #endif |
23 | 24 |
24 // TODO(gregoryd): add a Windows definition for base::FileDescriptor | 25 // TODO(gregoryd): add a Windows definition for base::FileDescriptor |
(...skipping 10 matching lines...) Expand all Loading... |
35 return desc.fd; | 36 return desc.fd; |
36 } | 37 } |
37 #endif | 38 #endif |
38 | 39 |
39 | 40 |
40 // Parameters sent to the NaCl process when we start it. | 41 // Parameters sent to the NaCl process when we start it. |
41 struct NaClStartParams { | 42 struct NaClStartParams { |
42 NaClStartParams(); | 43 NaClStartParams(); |
43 ~NaClStartParams(); | 44 ~NaClStartParams(); |
44 | 45 |
| 46 IPC::PlatformFileForTransit nexe_file; |
| 47 |
45 std::vector<FileDescriptor> handles; | 48 std::vector<FileDescriptor> handles; |
46 FileDescriptor debug_stub_server_bound_socket; | 49 FileDescriptor debug_stub_server_bound_socket; |
47 | 50 |
48 bool validation_cache_enabled; | 51 bool validation_cache_enabled; |
49 std::string validation_cache_key; | 52 std::string validation_cache_key; |
50 // Chrome version string. Sending the version string over IPC avoids linkage | 53 // Chrome version string. Sending the version string over IPC avoids linkage |
51 // issues in cases where NaCl is not compiled into the main Chromium | 54 // issues in cases where NaCl is not compiled into the main Chromium |
52 // executable or DLL. | 55 // executable or DLL. |
53 std::string version; | 56 std::string version; |
54 | 57 |
55 bool enable_exception_handling; | 58 bool enable_exception_handling; |
56 bool enable_debug_stub; | 59 bool enable_debug_stub; |
57 bool enable_ipc_proxy; | 60 bool enable_ipc_proxy; |
58 bool uses_irt; | 61 bool uses_irt; |
59 bool enable_dyncode_syscalls; | 62 bool enable_dyncode_syscalls; |
60 // NOTE: Any new fields added here must also be added to the IPC | 63 // NOTE: Any new fields added here must also be added to the IPC |
61 // serialization in nacl_messages.h and (for POD fields) the constructor | 64 // serialization in nacl_messages.h and (for POD fields) the constructor |
62 // in nacl_types.cc. | 65 // in nacl_types.cc. |
63 }; | 66 }; |
64 | 67 |
65 // Parameters sent to the browser process to have it launch a NaCl process. | 68 // Parameters sent to the browser process to have it launch a NaCl process. |
66 // | 69 // |
67 // If you change this, you will also need to update the IPC serialization in | 70 // If you change this, you will also need to update the IPC serialization in |
68 // nacl_host_messages.h. | 71 // nacl_host_messages.h. |
69 struct NaClLaunchParams { | 72 struct NaClLaunchParams { |
70 NaClLaunchParams(); | 73 NaClLaunchParams(); |
71 NaClLaunchParams(const std::string& u, int r, uint32 p, | 74 NaClLaunchParams(const std::string& manifest_url, |
| 75 const IPC::PlatformFileForTransit& nexe_file, |
| 76 int render_view_id, |
| 77 uint32 permission_bits, |
72 bool uses_irt, | 78 bool uses_irt, |
73 bool uses_nonsfi_mode, | 79 bool uses_nonsfi_mode, |
74 bool enable_dyncode_syscalls, | 80 bool enable_dyncode_syscalls, |
75 bool enable_exception_handling, | 81 bool enable_exception_handling, |
76 bool enable_crash_throttling); | 82 bool enable_crash_throttling); |
77 NaClLaunchParams(const NaClLaunchParams& l); | 83 NaClLaunchParams(const NaClLaunchParams& l); |
78 ~NaClLaunchParams(); | 84 ~NaClLaunchParams(); |
79 | 85 |
80 std::string manifest_url; | 86 std::string manifest_url; |
| 87 IPC::PlatformFileForTransit nexe_file; |
81 int render_view_id; | 88 int render_view_id; |
82 uint32 permission_bits; | 89 uint32 permission_bits; |
83 bool uses_irt; | 90 bool uses_irt; |
84 bool uses_nonsfi_mode; | 91 bool uses_nonsfi_mode; |
85 bool enable_dyncode_syscalls; | 92 bool enable_dyncode_syscalls; |
86 bool enable_exception_handling; | 93 bool enable_exception_handling; |
87 bool enable_crash_throttling; | 94 bool enable_crash_throttling; |
88 }; | 95 }; |
89 | 96 |
90 struct NaClLaunchResult { | 97 struct NaClLaunchResult { |
(...skipping 20 matching lines...) Expand all Loading... |
111 // For plugin <-> renderer ManifestService communication. | 118 // For plugin <-> renderer ManifestService communication. |
112 IPC::ChannelHandle manifest_service_ipc_channel_handle; | 119 IPC::ChannelHandle manifest_service_ipc_channel_handle; |
113 | 120 |
114 base::ProcessId plugin_pid; | 121 base::ProcessId plugin_pid; |
115 int plugin_child_id; | 122 int plugin_child_id; |
116 }; | 123 }; |
117 | 124 |
118 } // namespace nacl | 125 } // namespace nacl |
119 | 126 |
120 #endif // COMPONENTS_NACL_COMMON_NACL_TYPES_H_ | 127 #endif // COMPONENTS_NACL_COMMON_NACL_TYPES_H_ |
OLD | NEW |