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 <utility> | 9 #include <utility> |
10 #include <vector> | 10 #include <vector> |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
75 // Parameters sent to the NaCl process when we start it. | 75 // Parameters sent to the NaCl process when we start it. |
76 struct NaClStartParams { | 76 struct NaClStartParams { |
77 NaClStartParams(); | 77 NaClStartParams(); |
78 ~NaClStartParams(); | 78 ~NaClStartParams(); |
79 | 79 |
80 IPC::PlatformFileForTransit nexe_file; | 80 IPC::PlatformFileForTransit nexe_file; |
81 // Used only as a key for validation caching. | 81 // Used only as a key for validation caching. |
82 base::FilePath nexe_file_path_metadata; | 82 base::FilePath nexe_file_path_metadata; |
83 | 83 |
84 std::vector<NaClResourceFileInfo> prefetched_resource_files; | 84 std::vector<NaClResourceFileInfo> prefetched_resource_files; |
85 std::vector<FileDescriptor> handles; | 85 IPC::PlatformFileForTransit imc_bootstrap_handle; |
Mark Seaborn
2015/04/23 00:10:11
Splitting up 'handles' seems reasonable but the re
hidehiko
2015/04/23 11:51:29
For cleaner handle check in nacl_listener.cc. Upda
| |
86 FileDescriptor debug_stub_server_bound_socket; | 86 IPC::PlatformFileForTransit irt_handle; |
87 IPC::PlatformFileForTransit mac_shm_fd; | |
Mark Seaborn
2015/04/23 00:10:11
If I understand this correctly, there's a subtle b
hidehiko
2015/04/23 11:51:29
Ah, right. Fixed (including existing debug_stub_se
| |
88 IPC::PlatformFileForTransit debug_stub_server_bound_socket; | |
87 | 89 |
88 bool validation_cache_enabled; | 90 bool validation_cache_enabled; |
89 std::string validation_cache_key; | 91 std::string validation_cache_key; |
90 // Chrome version string. Sending the version string over IPC avoids linkage | 92 // Chrome version string. Sending the version string over IPC avoids linkage |
91 // issues in cases where NaCl is not compiled into the main Chromium | 93 // issues in cases where NaCl is not compiled into the main Chromium |
92 // executable or DLL. | 94 // executable or DLL. |
93 std::string version; | 95 std::string version; |
94 | 96 |
95 bool enable_debug_stub; | 97 bool enable_debug_stub; |
96 bool enable_ipc_proxy; | 98 bool enable_ipc_proxy; |
97 | 99 |
98 // Enables plugin code to use Mojo APIs. See mojo/nacl for details. | 100 // Enables plugin code to use Mojo APIs. See mojo/nacl for details. |
99 bool enable_mojo; | 101 bool enable_mojo; |
100 | 102 |
101 NaClAppProcessType process_type; | 103 NaClAppProcessType process_type; |
102 | 104 |
103 // For NaCl <-> renderer crash information reporting. | 105 // For NaCl <-> renderer crash information reporting. |
104 base::SharedMemoryHandle crash_info_shmem_handle; | 106 base::SharedMemoryHandle crash_info_shmem_handle; |
105 | 107 |
106 // NOTE: Any new fields added here must also be added to the IPC | 108 // NOTE: Any new fields added here must also be added to the IPC |
107 // serialization in nacl_messages.h and (for POD fields) the constructor | 109 // serialization in nacl_messages.h and (for POD fields) the constructor |
108 // in nacl_types.cc. | 110 // in nacl_types.cc. |
109 }; | 111 }; |
110 | 112 |
113 // Metadata to prefetch a resource file. | |
Mark Seaborn
2015/04/23 00:10:10
Similarly, using a struct with names fields instea
hidehiko
2015/04/23 11:51:29
Bonus, but I was unhappy to distribute std::vector
| |
114 struct NaClResourcePrefetchInfo { | |
Mark Seaborn
2015/04/23 00:10:11
How about putting this next to NaClResourceFileInf
hidehiko
2015/04/23 11:51:29
Done.
| |
115 NaClResourcePrefetchInfo(); | |
116 NaClResourcePrefetchInfo(const std::string& manifest_key, | |
117 const std::string& resource_url); | |
118 ~NaClResourcePrefetchInfo(); | |
119 | |
120 std::string manifest_key; | |
Mark Seaborn
2015/04/23 00:10:11
In NaClResourceFileInfo, this is called "file_key"
hidehiko
2015/04/23 11:51:29
Done.
| |
121 std::string resource_url; | |
122 }; | |
123 | |
111 // Parameters sent to the browser process to have it launch a NaCl process. | 124 // Parameters sent to the browser process to have it launch a NaCl process. |
112 // | 125 // |
113 // If you change this, you will also need to update the IPC serialization in | 126 // If you change this, you will also need to update the IPC serialization in |
114 // nacl_host_messages.h. | 127 // nacl_host_messages.h. |
115 struct NaClLaunchParams { | 128 struct NaClLaunchParams { |
116 NaClLaunchParams(); | 129 NaClLaunchParams(); |
117 NaClLaunchParams( | 130 NaClLaunchParams( |
118 const std::string& manifest_url, | 131 const std::string& manifest_url, |
119 const IPC::PlatformFileForTransit& nexe_file, | 132 const IPC::PlatformFileForTransit& nexe_file, |
120 uint64_t nexe_token_lo, | 133 uint64_t nexe_token_lo, |
121 uint64_t nexe_token_hi, | 134 uint64_t nexe_token_hi, |
122 // A pair of a manifest key and its resource URL. | 135 const std::vector<NaClResourcePrefetchInfo>& resource_prefetch_info_list, |
Mark Seaborn
2015/04/23 00:10:11
Hmm, "files_to_prefetch" seems more descriptive to
hidehiko
2015/04/23 11:51:29
Renamed to resource_prefetch_request_list.
Note th
Mark Seaborn
2015/04/24 00:53:24
That reason seems a bit pedantic to me. Files are
| |
123 const std::vector< | |
124 std::pair<std::string, std::string> >& resource_files_to_prefetch, | |
125 int render_view_id, | 136 int render_view_id, |
126 uint32 permission_bits, | 137 uint32 permission_bits, |
127 bool uses_nonsfi_mode, | 138 bool uses_nonsfi_mode, |
128 NaClAppProcessType process_type); | 139 NaClAppProcessType process_type); |
129 ~NaClLaunchParams(); | 140 ~NaClLaunchParams(); |
130 | 141 |
131 std::string manifest_url; | 142 std::string manifest_url; |
132 // On Windows, the HANDLE passed here is valid in the renderer's context. | 143 // On Windows, the HANDLE passed here is valid in the renderer's context. |
133 // It's the responsibility of the browser to duplicate this handle properly | 144 // It's the responsibility of the browser to duplicate this handle properly |
134 // for passing it to the plugin. | 145 // for passing it to the plugin. |
135 IPC::PlatformFileForTransit nexe_file; | 146 IPC::PlatformFileForTransit nexe_file; |
136 uint64_t nexe_token_lo; | 147 uint64_t nexe_token_lo; |
137 uint64_t nexe_token_hi; | 148 uint64_t nexe_token_hi; |
138 std::vector<std::pair<std::string, std::string> > resource_files_to_prefetch; | 149 std::vector<NaClResourcePrefetchInfo> resource_prefetch_info_list; |
139 | 150 |
140 int render_view_id; | 151 int render_view_id; |
141 uint32 permission_bits; | 152 uint32 permission_bits; |
142 bool uses_nonsfi_mode; | 153 bool uses_nonsfi_mode; |
143 | 154 |
144 NaClAppProcessType process_type; | 155 NaClAppProcessType process_type; |
145 }; | 156 }; |
146 | 157 |
147 struct NaClLaunchResult { | 158 struct NaClLaunchResult { |
148 NaClLaunchResult(); | 159 NaClLaunchResult(); |
(...skipping 23 matching lines...) Expand all Loading... | |
172 base::ProcessId plugin_pid; | 183 base::ProcessId plugin_pid; |
173 int plugin_child_id; | 184 int plugin_child_id; |
174 | 185 |
175 // For NaCl <-> renderer crash information reporting. | 186 // For NaCl <-> renderer crash information reporting. |
176 base::SharedMemoryHandle crash_info_shmem_handle; | 187 base::SharedMemoryHandle crash_info_shmem_handle; |
177 }; | 188 }; |
178 | 189 |
179 } // namespace nacl | 190 } // namespace nacl |
180 | 191 |
181 #endif // COMPONENTS_NACL_COMMON_NACL_TYPES_H_ | 192 #endif // COMPONENTS_NACL_COMMON_NACL_TYPES_H_ |
OLD | NEW |