| 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_ =
|
|
|