Index: components/nacl/loader/nacl_listener.cc |
diff --git a/components/nacl/loader/nacl_listener.cc b/components/nacl/loader/nacl_listener.cc |
index defd931e654e9abc9d5ba8fd60042d9adaef8628..7af37ed2c7838d4c16169275da41720631506419 100644 |
--- a/components/nacl/loader/nacl_listener.cc |
+++ b/components/nacl/loader/nacl_listener.cc |
@@ -147,9 +147,11 @@ void SetUpIPCAdapter( |
struct NaClApp* nap, |
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)); |
+ NaClIPCAdapter::OpenResourceCallback open_resource_cb, |
+ IPC::AttachmentBroker* broker) { |
+ scoped_refptr<NaClIPCAdapter> ipc_adapter( |
+ new NaClIPCAdapter(*handle, task_runner.get(), resolve_file_token_cb, |
+ open_resource_cb, broker)); |
ipc_adapter->ConnectChannel(); |
#if defined(OS_POSIX) |
handle->socket = |
@@ -194,17 +196,18 @@ class BrowserValidationDBProxy : public NaClValidationDB { |
NaClListener* listener_; |
}; |
- |
-NaClListener::NaClListener() : shutdown_event_(true, false), |
- io_thread_("NaCl_IOThread"), |
+NaClListener::NaClListener(IPC::AttachmentBroker* broker) |
+ : shutdown_event_(true, false), |
+ io_thread_("NaCl_IOThread"), |
+ broker_(broker), |
#if defined(OS_LINUX) |
- prereserved_sandbox_size_(0), |
+ prereserved_sandbox_size_(0), |
#endif |
#if defined(OS_POSIX) |
- number_of_cores_(-1), // unknown/error |
+ number_of_cores_(-1), // unknown/error |
#endif |
- main_loop_(NULL), |
- is_started_(false) { |
+ main_loop_(NULL), |
+ is_started_(false) { |
io_thread_.StartWithOptions( |
base::Thread::Options(base::MessageLoop::TYPE_IO, 0)); |
DCHECK(g_listener == NULL); |
@@ -265,7 +268,7 @@ void NaClListener::Listen() { |
filter_ = new IPC::SyncMessageFilter(&shutdown_event_); |
channel_->AddFilter(filter_.get()); |
channel_->AddFilter(new FileTokenMessageFilter()); |
- channel_->Init(channel_name, IPC::Channel::MODE_CLIENT, true); |
+ channel_->Init(channel_name, IPC::Channel::MODE_CLIENT, true, broker_); |
main_loop_ = base::MessageLoop::current(); |
main_loop_->Run(); |
} |
@@ -361,16 +364,17 @@ void NaClListener::OnStart(const nacl::NaClStartParams& params) { |
SetUpIPCAdapter(&browser_handle, io_thread_.task_runner(), nap, |
NACL_CHROME_DESC_BASE, |
NaClIPCAdapter::ResolveFileTokenCallback(), |
- NaClIPCAdapter::OpenResourceCallback()); |
+ NaClIPCAdapter::OpenResourceCallback(), broker_); |
SetUpIPCAdapter(&ppapi_renderer_handle, io_thread_.task_runner(), nap, |
NACL_CHROME_DESC_BASE + 1, |
NaClIPCAdapter::ResolveFileTokenCallback(), |
- NaClIPCAdapter::OpenResourceCallback()); |
+ NaClIPCAdapter::OpenResourceCallback(), broker_); |
SetUpIPCAdapter( |
&manifest_service_handle, io_thread_.task_runner(), nap, |
NACL_CHROME_DESC_BASE + 2, |
base::Bind(&NaClListener::ResolveFileToken, base::Unretained(this)), |
- base::Bind(&NaClListener::OnOpenResource, base::Unretained(this))); |
+ base::Bind(&NaClListener::OnOpenResource, base::Unretained(this)), |
+ broker_); |
} |
trusted_listener_ = |