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/renderer/ppb_nacl_private_impl.cc

Issue 332463003: Pepper: Remove LOAD_MODULE SRPC call in SFI mode. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased Created 6 years, 5 months 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 | Annotate | Revision Log
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/renderer/ppb_nacl_private_impl.h" 5 #include "components/nacl/renderer/ppb_nacl_private_impl.h"
6 6
7 #include <numeric> 7 #include <numeric>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 PP_Bool uses_nonsfi_mode, 295 PP_Bool uses_nonsfi_mode,
296 PP_Bool enable_ppapi_dev, 296 PP_Bool enable_ppapi_dev,
297 PP_Bool enable_dyncode_syscalls, 297 PP_Bool enable_dyncode_syscalls,
298 PP_Bool enable_exception_handling, 298 PP_Bool enable_exception_handling,
299 PP_Bool enable_crash_throttling, 299 PP_Bool enable_crash_throttling,
300 void* imc_handle, 300 void* imc_handle,
301 PP_CompletionCallback callback) { 301 PP_CompletionCallback callback) {
302 CHECK(ppapi::PpapiGlobals::Get()->GetMainThreadMessageLoop()-> 302 CHECK(ppapi::PpapiGlobals::Get()->GetMainThreadMessageLoop()->
303 BelongsToCurrentThread()); 303 BelongsToCurrentThread());
304 304
305 // FIXME: Remove this.
bbudge 2014/06/30 18:28:53 Remove this.
teravest 2014/06/30 22:04:56 Done.
306 // base::PlatformFileInfo info;
307 // CHECK(GetPlatformFileInfo(nexe_file_info->handle, &info));
308
305 // Create the manifest service proxy here, so on error case, it will be 309 // Create the manifest service proxy here, so on error case, it will be
306 // destructed (without passing it to ManifestServiceChannel). 310 // destructed (without passing it to ManifestServiceChannel).
307 scoped_ptr<ManifestServiceChannel::Delegate> manifest_service_proxy( 311 scoped_ptr<ManifestServiceChannel::Delegate> manifest_service_proxy(
308 new ManifestServiceProxy(instance)); 312 new ManifestServiceProxy(instance));
309 313
310 FileDescriptor result_socket; 314 FileDescriptor result_socket;
311 IPC::Sender* sender = content::RenderThread::Get(); 315 IPC::Sender* sender = content::RenderThread::Get();
312 DCHECK(sender); 316 DCHECK(sender);
313 int routing_id = 0; 317 int routing_id = 0;
314 // If the nexe uses ppapi APIs, we need a routing ID. 318 // If the nexe uses ppapi APIs, we need a routing ID.
(...skipping 21 matching lines...) Expand all
336 // Conditionally block 'Dev' interfaces. We do this for the NaCl process, so 340 // Conditionally block 'Dev' interfaces. We do this for the NaCl process, so
337 // it's clearer to developers when they are using 'Dev' inappropriately. We 341 // it's clearer to developers when they are using 'Dev' inappropriately. We
338 // must also check on the trusted side of the proxy. 342 // must also check on the trusted side of the proxy.
339 if (enable_ppapi_dev) 343 if (enable_ppapi_dev)
340 perm_bits |= ppapi::PERMISSION_DEV; 344 perm_bits |= ppapi::PERMISSION_DEV;
341 instance_info.permissions = 345 instance_info.permissions =
342 ppapi::PpapiPermissions::GetForCommandLine(perm_bits); 346 ppapi::PpapiPermissions::GetForCommandLine(perm_bits);
343 std::string error_message_string; 347 std::string error_message_string;
344 NaClLaunchResult launch_result; 348 NaClLaunchResult launch_result;
345 349
346 content::RendererPpapiHost* host = 350 IPC::PlatformFileForTransit nexe_for_transit;
347 content::RendererPpapiHost::GetForPPInstance(instance); 351 #if defined(OS_POSIX)
352 if (nexe_file_info->handle != PP_kInvalidFileHandle)
Mark Seaborn 2014/06/30 20:01:03 If this is false, I think it leaves nexe_for_trans
teravest 2014/06/30 22:04:56 Done.
353 nexe_for_transit = base::FileDescriptor(nexe_file_info->handle, true);
354 #else
bbudge 2014/06/30 18:28:53 nit: #elif defined(OS_WIN)
teravest 2014/06/30 22:04:56 Done.
355 // Handle duplication is handled on the browser side instead of the renderer.
bbudge 2014/06/30 18:28:53 nit wording // Duplicate the handle on the browser
teravest 2014/06/30 22:04:56 Done.
356 // This is because BrokerGetFileForProcess isn't part of content/public, and
357 // it's simpler to do the duplication in the browser anyway.
358 nexe_for_transit = nexe_file_info->handle;
359 #endif
348 if (!sender->Send(new NaClHostMsg_LaunchNaCl( 360 if (!sender->Send(new NaClHostMsg_LaunchNaCl(
349 NaClLaunchParams( 361 NaClLaunchParams(
350 instance_info.url.spec(), 362 instance_info.url.spec(),
351 host->ShareHandleWithRemote(nexe_file_info->handle, true), 363 nexe_for_transit,
364 nexe_file_info->token_lo,
365 nexe_file_info->token_hi,
352 routing_id, 366 routing_id,
353 perm_bits, 367 perm_bits,
354 PP_ToBool(uses_irt), 368 PP_ToBool(uses_irt),
355 PP_ToBool(uses_nonsfi_mode), 369 PP_ToBool(uses_nonsfi_mode),
356 PP_ToBool(enable_dyncode_syscalls), 370 PP_ToBool(enable_dyncode_syscalls),
357 PP_ToBool(enable_exception_handling), 371 PP_ToBool(enable_exception_handling),
358 PP_ToBool(enable_crash_throttling)), 372 PP_ToBool(enable_crash_throttling)),
359 &launch_result, 373 &launch_result,
360 &error_message_string))) { 374 &error_message_string))) {
361 ppapi::PpapiGlobals::Get()->GetMainThreadMessageLoop()->PostTask( 375 ppapi::PpapiGlobals::Get()->GetMainThreadMessageLoop()->PostTask(
(...skipping 1262 matching lines...) Expand 10 before | Expand all | Expand 10 after
1624 &SetPNaClStartTime 1638 &SetPNaClStartTime
1625 }; 1639 };
1626 1640
1627 } // namespace 1641 } // namespace
1628 1642
1629 const PPB_NaCl_Private* GetNaClPrivateInterface() { 1643 const PPB_NaCl_Private* GetNaClPrivateInterface() {
1630 return &nacl_interface; 1644 return &nacl_interface;
1631 } 1645 }
1632 1646
1633 } // namespace nacl 1647 } // namespace nacl
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698