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

Side by Side Diff: components/nacl/loader/nacl_listener.cc

Issue 1090043002: Merge NaClIPCAdapter::set_resolve_file_token_callback() into the constructor (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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
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/loader/nacl_listener.h" 5 #include "components/nacl/loader/nacl_listener.h"
6 6
7 #include <errno.h> 7 #include <errno.h>
8 #include <fcntl.h> 8 #include <fcntl.h>
9 #include <stdlib.h> 9 #include <stdlib.h>
10 #include <string.h> 10 #include <string.h>
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 g_listener->Send(new NaClProcessHostMsg_DebugStubPortSelected(port)); 132 g_listener->Send(new NaClProcessHostMsg_DebugStubPortSelected(port));
133 } 133 }
134 134
135 #endif 135 #endif
136 136
137 // Creates the PPAPI IPC channel between the NaCl IRT and the host 137 // Creates the PPAPI IPC channel between the NaCl IRT and the host
138 // (browser/renderer) process, and starts to listen it on the thread where 138 // (browser/renderer) process, and starts to listen it on the thread where
139 // the given message_loop_proxy runs. 139 // the given message_loop_proxy runs.
140 // Also, creates and sets the corresponding NaClDesc to the given nap with 140 // Also, creates and sets the corresponding NaClDesc to the given nap with
141 // the FD #. 141 // the FD #.
142 scoped_refptr<NaClIPCAdapter> SetUpIPCAdapter( 142 scoped_refptr<NaClIPCAdapter> SetUpIPCAdapter(
Mark Seaborn 2015/04/16 20:51:21 You can change this to return 'void' now.
Yusuke Sato 2015/04/16 21:25:02 Done.
143 IPC::ChannelHandle* handle, 143 IPC::ChannelHandle* handle,
144 scoped_refptr<base::MessageLoopProxy> message_loop_proxy, 144 scoped_refptr<base::MessageLoopProxy> message_loop_proxy,
145 struct NaClApp* nap, 145 struct NaClApp* nap,
146 int nacl_fd) { 146 int nacl_fd,
147 NaClIPCAdapter::ResolveFileTokenCallback resolve_file_token_cb) {
147 scoped_refptr<NaClIPCAdapter> ipc_adapter( 148 scoped_refptr<NaClIPCAdapter> ipc_adapter(
148 new NaClIPCAdapter(*handle, message_loop_proxy.get())); 149 new NaClIPCAdapter(*handle,
150 message_loop_proxy.get(),
151 resolve_file_token_cb));
149 ipc_adapter->ConnectChannel(); 152 ipc_adapter->ConnectChannel();
150 #if defined(OS_POSIX) 153 #if defined(OS_POSIX)
151 handle->socket = 154 handle->socket =
152 base::FileDescriptor(ipc_adapter->TakeClientFileDescriptor()); 155 base::FileDescriptor(ipc_adapter->TakeClientFileDescriptor());
153 #endif 156 #endif
154 157
155 // Pass a NaClDesc to the untrusted side. This will hold a ref to the 158 // Pass a NaClDesc to the untrusted side. This will hold a ref to the
156 // NaClIPCAdapter. 159 // NaClIPCAdapter.
157 NaClAppSetDesc(nap, nacl_fd, ipc_adapter->MakeNaClDesc()); 160 NaClAppSetDesc(nap, nacl_fd, ipc_adapter->MakeNaClDesc());
158 return ipc_adapter; 161 return ipc_adapter;
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 307
305 if (params.enable_ipc_proxy) { 308 if (params.enable_ipc_proxy) {
306 browser_handle = IPC::Channel::GenerateVerifiedChannelID("nacl"); 309 browser_handle = IPC::Channel::GenerateVerifiedChannelID("nacl");
307 ppapi_renderer_handle = IPC::Channel::GenerateVerifiedChannelID("nacl"); 310 ppapi_renderer_handle = IPC::Channel::GenerateVerifiedChannelID("nacl");
308 manifest_service_handle = IPC::Channel::GenerateVerifiedChannelID("nacl"); 311 manifest_service_handle = IPC::Channel::GenerateVerifiedChannelID("nacl");
309 312
310 // Create the PPAPI IPC channels between the NaCl IRT and the host 313 // Create the PPAPI IPC channels between the NaCl IRT and the host
311 // (browser/renderer) processes. The IRT uses these channels to 314 // (browser/renderer) processes. The IRT uses these channels to
312 // communicate with the host and to initialize the IPC dispatchers. 315 // communicate with the host and to initialize the IPC dispatchers.
313 SetUpIPCAdapter(&browser_handle, io_thread_.message_loop_proxy(), 316 SetUpIPCAdapter(&browser_handle, io_thread_.message_loop_proxy(),
314 nap, NACL_CHROME_DESC_BASE); 317 nap, NACL_CHROME_DESC_BASE,
318 NaClIPCAdapter::ResolveFileTokenCallback());
315 SetUpIPCAdapter(&ppapi_renderer_handle, io_thread_.message_loop_proxy(), 319 SetUpIPCAdapter(&ppapi_renderer_handle, io_thread_.message_loop_proxy(),
316 nap, NACL_CHROME_DESC_BASE + 1); 320 nap, NACL_CHROME_DESC_BASE + 1,
317 321 NaClIPCAdapter::ResolveFileTokenCallback());
318 scoped_refptr<NaClIPCAdapter> manifest_ipc_adapter = 322 SetUpIPCAdapter(&manifest_service_handle,
319 SetUpIPCAdapter(&manifest_service_handle, 323 io_thread_.message_loop_proxy(),
320 io_thread_.message_loop_proxy(), 324 nap,
321 nap, 325 NACL_CHROME_DESC_BASE + 2,
322 NACL_CHROME_DESC_BASE + 2); 326 base::Bind(&NaClListener::ResolveFileToken,
323 manifest_ipc_adapter->set_resolve_file_token_callback( 327 base::Unretained(this)));
324 base::Bind(&NaClListener::ResolveFileToken, base::Unretained(this)));
325 } 328 }
326 329
327 trusted_listener_ = new NaClTrustedListener( 330 trusted_listener_ = new NaClTrustedListener(
328 IPC::Channel::GenerateVerifiedChannelID("nacl"), 331 IPC::Channel::GenerateVerifiedChannelID("nacl"),
329 io_thread_.message_loop_proxy().get(), 332 io_thread_.message_loop_proxy().get(),
330 &shutdown_event_); 333 &shutdown_event_);
331 if (!Send(new NaClProcessHostMsg_PpapiChannelsCreated( 334 if (!Send(new NaClProcessHostMsg_PpapiChannelsCreated(
332 browser_handle, 335 browser_handle,
333 ppapi_renderer_handle, 336 ppapi_renderer_handle,
334 trusted_listener_->TakeClientChannelHandle(), 337 trusted_listener_->TakeClientChannelHandle(),
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 } 465 }
463 466
464 void NaClListener::OnFileTokenResolved( 467 void NaClListener::OnFileTokenResolved(
465 uint64_t token_lo, 468 uint64_t token_lo,
466 uint64_t token_hi, 469 uint64_t token_hi,
467 IPC::PlatformFileForTransit ipc_fd, 470 IPC::PlatformFileForTransit ipc_fd,
468 base::FilePath file_path) { 471 base::FilePath file_path) {
469 resolved_cb_.Run(ipc_fd, file_path); 472 resolved_cb_.Run(ipc_fd, file_path);
470 resolved_cb_.Reset(); 473 resolved_cb_.Reset();
471 } 474 }
OLDNEW
« components/nacl/loader/nacl_ipc_adapter.h ('K') | « components/nacl/loader/nacl_ipc_adapter.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698