| Index: components/nacl/renderer/ppb_nacl_private_impl.cc
|
| diff --git a/components/nacl/renderer/ppb_nacl_private_impl.cc b/components/nacl/renderer/ppb_nacl_private_impl.cc
|
| index eeaca7858d87190996e24170b142e64cd8842fa0..c325ca7f3fd25c98a3ab2e74485222e921c3fc3b 100644
|
| --- a/components/nacl/renderer/ppb_nacl_private_impl.cc
|
| +++ b/components/nacl/renderer/ppb_nacl_private_impl.cc
|
| @@ -343,12 +343,25 @@ void LaunchSelLdr(PP_Instance instance,
|
| std::string error_message_string;
|
| NaClLaunchResult launch_result;
|
|
|
| - content::RendererPpapiHost* host =
|
| - content::RendererPpapiHost::GetForPPInstance(instance);
|
| + IPC::PlatformFileForTransit nexe_for_transit =
|
| + IPC::InvalidPlatformFileForTransit();
|
| +#if defined(OS_POSIX)
|
| + if (nexe_file_info->handle != PP_kInvalidFileHandle)
|
| + nexe_for_transit = base::FileDescriptor(nexe_file_info->handle, true);
|
| +#elif defined(OS_WIN)
|
| + // Duplicate the handle on the browser side instead of the renderer.
|
| + // This is because BrokerGetFileForProcess isn't part of content/public, and
|
| + // it's simpler to do the duplication in the browser anyway.
|
| + nexe_for_transit = nexe_file_info->handle;
|
| +#else
|
| +#error Unsupported target platform.
|
| +#endif
|
| if (!sender->Send(new NaClHostMsg_LaunchNaCl(
|
| NaClLaunchParams(
|
| instance_info.url.spec(),
|
| - host->ShareHandleWithRemote(nexe_file_info->handle, true),
|
| + nexe_for_transit,
|
| + nexe_file_info->token_lo,
|
| + nexe_file_info->token_hi,
|
| routing_id,
|
| perm_bits,
|
| PP_ToBool(uses_irt),
|
|
|