Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(154)

Side by Side Diff: components/nacl/common/nacl_types.cc

Issue 649603004: Non-SFI NaCl: Batch-open resource files (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove ipc/ and mojo/ changes following Mark's suggestion Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #include "components/nacl/common/nacl_types.h" 5 #include "components/nacl/common/nacl_types.h"
6 #include "ipc/ipc_platform_file.h" 6 #include "ipc/ipc_platform_file.h"
7 7
8 #if defined(OS_POSIX)
9 #include "ipc/file_descriptor_set_posix.h"
10 #endif
11
8 namespace nacl { 12 namespace nacl {
9 13
10 NaClStartParams::NaClStartParams() 14 NaClStartParams::NaClStartParams()
11 : nexe_file(IPC::InvalidPlatformFileForTransit()), 15 : nexe_file(IPC::InvalidPlatformFileForTransit()),
12 validation_cache_enabled(false), 16 validation_cache_enabled(false),
13 enable_debug_stub(false), 17 enable_debug_stub(false),
14 enable_ipc_proxy(false), 18 enable_ipc_proxy(false),
15 process_type(kUnknownNaClProcessType), 19 process_type(kUnknownNaClProcessType),
16 crash_info_shmem_handle(base::SharedMemory::NULLHandle()) { 20 crash_info_shmem_handle(base::SharedMemory::NULLHandle()) {
17 } 21 }
18 22
19 NaClStartParams::~NaClStartParams() { 23 NaClStartParams::~NaClStartParams() {
20 } 24 }
21 25
26 void NaClStartParams::CheckNumOfDescriptors() {
27 #if defined(OS_POSIX)
hidehiko 2015/01/28 09:05:19 Isn't this only for Non-SFI? If so, limited to Lin
Yusuke Sato 2015/02/04 02:00:28 Right, for now, OS_LINUX would suffice. Changed to
28 // '3' is for |nexe_file|, |debug_stub_server_bound_socket|, and
29 // |crash_info_shmem_handle|.
30 size_t num_descs = handles.size() + resource_files.size() + 3;
31 // If this CHECK fails, either of the following has to be done:
32 // * Increase kMaxDescriptorsPerMessage in ipc/file_descriptor_set_posix.h.
33 // * Or, decrease kMaxPreOpenResourceFiles in
34 // components/nacl/renderer/ppb_nacl_private_impl.cc.
35 CHECK(num_descs <= FileDescriptorSet::kMaxDescriptorsPerMessage);
36 #endif
37 }
38
39 NaClStartParams::ResourceFileInfo::ResourceFileInfo()
40 : file(IPC::InvalidPlatformFileForTransit()) {
41 }
42
43 NaClStartParams::ResourceFileInfo::ResourceFileInfo(
44 IPC::PlatformFileForTransit file,
45 const base::FilePath& file_path,
46 const std::string& file_key)
47 : file(file), file_path(file_path), file_key(file_key) {
48 }
49
50 NaClStartParams::ResourceFileInfo::~ResourceFileInfo() {
51 }
52
22 NaClLaunchParams::NaClLaunchParams() 53 NaClLaunchParams::NaClLaunchParams()
23 : nexe_file(IPC::InvalidPlatformFileForTransit()), 54 : nexe_file(IPC::InvalidPlatformFileForTransit()),
24 nexe_token_lo(0), 55 nexe_token_lo(0),
25 nexe_token_hi(0), 56 nexe_token_hi(0),
26 render_view_id(0), 57 render_view_id(0),
27 permission_bits(0), 58 permission_bits(0),
28 process_type(kUnknownNaClProcessType) { 59 process_type(kUnknownNaClProcessType) {
29 } 60 }
30 61
31 NaClLaunchParams::NaClLaunchParams( 62 NaClLaunchParams::NaClLaunchParams(
32 const std::string& manifest_url, 63 const std::string& manifest_url,
33 const IPC::PlatformFileForTransit& nexe_file, 64 const IPC::PlatformFileForTransit& nexe_file,
34 uint64_t nexe_token_lo, 65 uint64_t nexe_token_lo,
35 uint64_t nexe_token_hi, 66 uint64_t nexe_token_hi,
67 const std::vector<ResourceFileInfo>& resource_files_info,
36 int render_view_id, 68 int render_view_id,
37 uint32 permission_bits, 69 uint32 permission_bits,
38 bool uses_nonsfi_mode, 70 bool uses_nonsfi_mode,
39 NaClAppProcessType process_type) 71 NaClAppProcessType process_type)
40 : manifest_url(manifest_url), 72 : manifest_url(manifest_url),
41 nexe_file(nexe_file), 73 nexe_file(nexe_file),
42 nexe_token_lo(nexe_token_lo), 74 nexe_token_lo(nexe_token_lo),
43 nexe_token_hi(nexe_token_hi), 75 nexe_token_hi(nexe_token_hi),
76 resource_files_info(resource_files_info),
44 render_view_id(render_view_id), 77 render_view_id(render_view_id),
45 permission_bits(permission_bits), 78 permission_bits(permission_bits),
46 uses_nonsfi_mode(uses_nonsfi_mode), 79 uses_nonsfi_mode(uses_nonsfi_mode),
47 process_type(process_type) { 80 process_type(process_type) {
48 } 81 }
49 82
50 NaClLaunchParams::~NaClLaunchParams() { 83 NaClLaunchParams::~NaClLaunchParams() {
51 } 84 }
52 85
86 NaClLaunchParams::ResourceFileInfo::ResourceFileInfo()
87 : file(IPC::InvalidPlatformFileForTransit()),
88 file_token_lo(0),
89 file_token_hi(0) {
90 }
91
92 NaClLaunchParams::ResourceFileInfo::ResourceFileInfo(
93 IPC::PlatformFileForTransit file,
94 uint64_t file_token_lo,
95 uint64_t file_token_hi,
96 const std::string& file_key)
97 : file(file),
98 file_token_lo(file_token_lo),
99 file_token_hi(file_token_hi),
100 file_key(file_key) {
101 }
102
103 NaClLaunchParams::ResourceFileInfo::~ResourceFileInfo() {
104 }
105
53 NaClLaunchResult::NaClLaunchResult() 106 NaClLaunchResult::NaClLaunchResult()
54 : imc_channel_handle(IPC::InvalidPlatformFileForTransit()), 107 : imc_channel_handle(IPC::InvalidPlatformFileForTransit()),
55 ppapi_ipc_channel_handle(), 108 ppapi_ipc_channel_handle(),
56 trusted_ipc_channel_handle(), 109 trusted_ipc_channel_handle(),
57 plugin_pid(base::kNullProcessId), 110 plugin_pid(base::kNullProcessId),
58 plugin_child_id(0), 111 plugin_child_id(0),
59 crash_info_shmem_handle(base::SharedMemory::NULLHandle()) { 112 crash_info_shmem_handle(base::SharedMemory::NULLHandle()) {
60 } 113 }
61 114
62 NaClLaunchResult::NaClLaunchResult( 115 NaClLaunchResult::NaClLaunchResult(
63 FileDescriptor imc_channel_handle, 116 FileDescriptor imc_channel_handle,
64 const IPC::ChannelHandle& ppapi_ipc_channel_handle, 117 const IPC::ChannelHandle& ppapi_ipc_channel_handle,
65 const IPC::ChannelHandle& trusted_ipc_channel_handle, 118 const IPC::ChannelHandle& trusted_ipc_channel_handle,
66 const IPC::ChannelHandle& manifest_service_ipc_channel_handle, 119 const IPC::ChannelHandle& manifest_service_ipc_channel_handle,
67 base::ProcessId plugin_pid, 120 base::ProcessId plugin_pid,
68 int plugin_child_id, 121 int plugin_child_id,
69 base::SharedMemoryHandle crash_info_shmem_handle) 122 base::SharedMemoryHandle crash_info_shmem_handle)
70 : imc_channel_handle(imc_channel_handle), 123 : imc_channel_handle(imc_channel_handle),
71 ppapi_ipc_channel_handle(ppapi_ipc_channel_handle), 124 ppapi_ipc_channel_handle(ppapi_ipc_channel_handle),
72 trusted_ipc_channel_handle(trusted_ipc_channel_handle), 125 trusted_ipc_channel_handle(trusted_ipc_channel_handle),
73 manifest_service_ipc_channel_handle(manifest_service_ipc_channel_handle), 126 manifest_service_ipc_channel_handle(manifest_service_ipc_channel_handle),
74 plugin_pid(plugin_pid), 127 plugin_pid(plugin_pid),
75 plugin_child_id(plugin_child_id), 128 plugin_child_id(plugin_child_id),
76 crash_info_shmem_handle(crash_info_shmem_handle) { 129 crash_info_shmem_handle(crash_info_shmem_handle) {
77 } 130 }
78 131
79 NaClLaunchResult::~NaClLaunchResult() { 132 NaClLaunchResult::~NaClLaunchResult() {
80 } 133 }
81 134
135 NaClOpenExecutableResult::NaClOpenExecutableResult() {
136 }
137
138 NaClOpenExecutableResult::NaClOpenExecutableResult(
139 const NaClOpenExecutableResult::FileInfo& file_info,
140 const std::vector<NaClOpenExecutableResult::FileInfo>& resource_files_info)
141 : file_info(file_info),
142 resource_files_info(resource_files_info) {
143 }
144
145 NaClOpenExecutableResult::~NaClOpenExecutableResult() {
146 }
147
148 NaClOpenExecutableResult::FileInfo::FileInfo()
149 : file(IPC::InvalidPlatformFileForTransit()),
150 file_token_lo(0),
151 file_token_hi(0) {
152 }
153
154 NaClOpenExecutableResult::FileInfo::FileInfo(IPC::PlatformFileForTransit file,
155 uint64_t file_token_lo,
156 uint64_t file_token_hi)
157 : file(file),
158 file_token_lo(file_token_lo),
159 file_token_hi(file_token_hi) {
160 }
161
162 NaClOpenExecutableResult::FileInfo::~FileInfo() {
163 }
164
82 } // namespace nacl 165 } // namespace nacl
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698