| Index: components/nacl/loader/nacl_listener.cc
|
| diff --git a/components/nacl/loader/nacl_listener.cc b/components/nacl/loader/nacl_listener.cc
|
| index 6bf7686f0842e4f14b697986712398f62a74c4c7..c3ed8b7a2618a31de03a6b77f31503cd41733687 100644
|
| --- a/components/nacl/loader/nacl_listener.cc
|
| +++ b/components/nacl/loader/nacl_listener.cc
|
| @@ -42,7 +42,6 @@
|
| #include "native_client/src/public/nacl_desc.h"
|
|
|
| #if defined(OS_POSIX)
|
| -#include "base/file_descriptor_posix.h"
|
| #include "base/posix/global_descriptors.h"
|
| #include "content/public/common/content_descriptors.h"
|
| #endif
|
| @@ -117,13 +116,12 @@ void SetUpIPCAdapter(
|
| int nacl_fd,
|
| NaClIPCAdapter::ResolveFileTokenCallback resolve_file_token_cb,
|
| NaClIPCAdapter::OpenResourceCallback open_resource_cb) {
|
| - scoped_refptr<NaClIPCAdapter> ipc_adapter(new NaClIPCAdapter(
|
| - *handle, task_runner.get(), resolve_file_token_cb, open_resource_cb));
|
| + mojo::MessagePipe pipe;
|
| + scoped_refptr<NaClIPCAdapter> ipc_adapter(
|
| + new NaClIPCAdapter(pipe.handle0.release(), task_runner,
|
| + resolve_file_token_cb, open_resource_cb));
|
| ipc_adapter->ConnectChannel();
|
| -#if defined(OS_POSIX)
|
| - handle->socket =
|
| - base::FileDescriptor(ipc_adapter->TakeClientFileDescriptor());
|
| -#endif
|
| + *handle = pipe.handle1.release();
|
|
|
| // Pass a NaClDesc to the untrusted side. This will hold a ref to the
|
| // NaClIPCAdapter.
|
| @@ -246,7 +244,6 @@ void NaClListener::Listen() {
|
| base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
|
| switches::kMojoChannelToken)));
|
| DCHECK(handle.is_valid());
|
| - IPC::ChannelHandle channel_handle(handle.release());
|
|
|
| channel_ = IPC::SyncChannel::Create(this, io_thread_.task_runner().get(),
|
| &shutdown_event_);
|
| @@ -255,7 +252,7 @@ void NaClListener::Listen() {
|
| IPC::AttachmentBroker* global = IPC::AttachmentBroker::GetGlobal();
|
| if (global && !global->IsPrivilegedBroker())
|
| global->RegisterBrokerCommunicationChannel(channel_.get());
|
| - channel_->Init(channel_handle, IPC::Channel::MODE_CLIENT, true);
|
| + channel_->Init(handle.release(), IPC::Channel::MODE_CLIENT, true);
|
| main_task_runner_ = base::ThreadTaskRunnerHandle::Get();
|
| base::RunLoop().Run();
|
| }
|
| @@ -336,12 +333,9 @@ void NaClListener::OnStart(const nacl::NaClStartParams& params) {
|
| LOG(FATAL) << "NaClAppCreate() failed";
|
| }
|
|
|
| - IPC::ChannelHandle browser_handle =
|
| - IPC::Channel::GenerateVerifiedChannelID("nacl");
|
| - IPC::ChannelHandle ppapi_renderer_handle =
|
| - IPC::Channel::GenerateVerifiedChannelID("nacl");
|
| - IPC::ChannelHandle manifest_service_handle =
|
| - IPC::Channel::GenerateVerifiedChannelID("nacl");
|
| + IPC::ChannelHandle browser_handle;
|
| + IPC::ChannelHandle ppapi_renderer_handle;
|
| + IPC::ChannelHandle manifest_service_handle;
|
|
|
| // Create the PPAPI IPC channels between the NaCl IRT and the host
|
| // (browser/renderer) processes. The IRT uses these channels to
|
| @@ -360,13 +354,12 @@ void NaClListener::OnStart(const nacl::NaClStartParams& params) {
|
| base::Bind(&NaClListener::ResolveFileToken, base::Unretained(this)),
|
| base::Bind(&NaClListener::OnOpenResource, base::Unretained(this)));
|
|
|
| + mojo::MessagePipe trusted_pipe;
|
| trusted_listener_ =
|
| - new NaClTrustedListener(IPC::Channel::GenerateVerifiedChannelID("nacl"),
|
| + new NaClTrustedListener(trusted_pipe.handle0.release(),
|
| io_thread_.task_runner().get(), &shutdown_event_);
|
| if (!Send(new NaClProcessHostMsg_PpapiChannelsCreated(
|
| - browser_handle,
|
| - ppapi_renderer_handle,
|
| - trusted_listener_->TakeClientChannelHandle(),
|
| + browser_handle, ppapi_renderer_handle, trusted_pipe.handle1.release(),
|
| manifest_service_handle)))
|
| LOG(FATAL) << "Failed to send IPC channel handle to NaClProcessHost.";
|
|
|
|
|