Chromium Code Reviews| Index: components/nacl/browser/nacl_process_host.cc |
| diff --git a/components/nacl/browser/nacl_process_host.cc b/components/nacl/browser/nacl_process_host.cc |
| index e6e8ef450177a7df62ee5ecad6db1c6c26430689..1d4fbe5800cffe12f9804c09d155fd1b967c3a16 100644 |
| --- a/components/nacl/browser/nacl_process_host.cc |
| +++ b/components/nacl/browser/nacl_process_host.cc |
| @@ -770,6 +770,28 @@ bool NaClProcessHost::StartNaClExecution() { |
| } |
| #endif |
| + // TODO Propagate command line flags and permissions. |
| +#if 0 |
| + // TODO move to StartNaCl |
| + ppapi::PpapiNaClChannelArgs args; |
| + args.off_the_record = nacl_host_message_filter_->off_the_record(); |
| + args.permissions = permissions_; |
| + CommandLine* cmdline = CommandLine::ForCurrentProcess(); |
| + DCHECK(cmdline); |
| + std::string flag_whitelist[] = { |
| + switches::kPpapiKeepAliveThrottle, |
| + switches::kV, |
| + switches::kVModule, |
| + }; |
| + for (size_t i = 0; i < arraysize(flag_whitelist); ++i) { |
| + std::string value = cmdline->GetSwitchValueASCII(flag_whitelist[i]); |
| + if (!value.empty()) { |
| + args.switch_names.push_back(flag_whitelist[i]); |
| + args.switch_values.push_back(value); |
| + } |
| + } |
| +#endif |
| + |
| process_->Send(new NaClProcessMsg_Start(params)); |
| internal_->socket_for_sel_ldr = NACL_INVALID_HANDLE; |
| @@ -787,14 +809,15 @@ bool NaClProcessHost::SendStart() { |
| // This method is called when NaClProcessHostMsg_PpapiChannelCreated is |
| // received. |
| void NaClProcessHost::OnPpapiBrowserChannelCreated( |
| - const IPC::ChannelHandle& channel_handle) { |
| + const IPC::ChannelHandle& browser_channel_handle, |
| + const IPC::ChannelHandle& renderer_channel_handle) { |
| // Only renderer processes should create a channel. |
| DCHECK(enable_ppapi_proxy()); |
| if (!ipc_proxy_channel_.get()) { |
| DCHECK_EQ(PROCESS_TYPE_NACL_LOADER, process_->GetData().process_type); |
| ipc_proxy_channel_.reset( |
| - new IPC::ChannelProxy(channel_handle, |
| + new IPC::ChannelProxy(browser_channel_handle, |
| IPC::Channel::MODE_CLIENT, |
| &ipc_plugin_listener_, |
| base::MessageLoopProxy::current().get())); |
| @@ -811,36 +834,12 @@ void NaClProcessHost::OnPpapiBrowserChannelCreated( |
| ppapi_host_->SetOnKeepaliveCallback( |
| NaClBrowser::GetDelegate()->GetOnKeepaliveCallback()); |
| - ppapi::PpapiNaClChannelArgs args; |
| - args.off_the_record = nacl_host_message_filter_->off_the_record(); |
| - args.permissions = permissions_; |
| - CommandLine* cmdline = CommandLine::ForCurrentProcess(); |
| - DCHECK(cmdline); |
| - std::string flag_whitelist[] = { |
| - switches::kPpapiKeepAliveThrottle, |
| - switches::kV, |
| - switches::kVModule, |
| - }; |
| - for (size_t i = 0; i < arraysize(flag_whitelist); ++i) { |
| - std::string value = cmdline->GetSwitchValueASCII(flag_whitelist[i]); |
| - if (!value.empty()) { |
| - args.switch_names.push_back(flag_whitelist[i]); |
| - args.switch_values.push_back(value); |
| - } |
| - } |
| - |
| ppapi_host_->GetPpapiHost()->AddHostFactoryFilter( |
| scoped_ptr<ppapi::host::HostFactory>( |
| NaClBrowser::GetDelegate()->CreatePpapiHostFactory( |
| ppapi_host_.get()))); |
| - // Send a message to create the NaCl-Renderer channel. The handle is just |
| - // a place holder. |
| - ipc_proxy_channel_->Send( |
| - new PpapiMsg_CreateNaClChannel( |
|
Mark Seaborn
2014/02/04 01:18:31
I think you will want to keep the PpapiMsg_CreateN
|
| - args, |
| - SerializedHandle(SerializedHandle::CHANNEL_HANDLE, |
| - IPC::InvalidPlatformFileForTransit()))); |
| + ReplyToRenderer(renderer_channel_handle); |
| } else { |
| // Attempt to open more than 1 browser channel is not supported. |
| // Shut down the NaCl process. |