1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "components/nacl/loader/nacl_trusted_listener.h" 6 7 #include "base/single_thread_task_runner.h" 8 9 NaClTrustedListener::NaClTrustedListener( 10 const IPC::ChannelHandle& handle, 11 base::SingleThreadTaskRunner* ipc_task_runner, 12 base::WaitableEvent* shutdown_event) 13 : channel_handle_(handle) { 14 channel_ = IPC::SyncChannel::Create(handle, 15 IPC::Channel::MODE_SERVER, 16 this, 17 ipc_task_runner, 18 true, /* create_channel_now */ 19 shutdown_event).Pass(); 20 } 21 22 NaClTrustedListener::~NaClTrustedListener() { 23 } 24 25 IPC::ChannelHandle NaClTrustedListener::TakeClientChannelHandle() { 26 IPC::ChannelHandle handle = channel_handle_; 27 #if defined(OS_POSIX) 28 handle.socket = 29 base::FileDescriptor(channel_->TakeClientFileDescriptor(), true); 30 #endif 31 return handle; 32 } 33 34 bool NaClTrustedListener::OnMessageReceived(const IPC::Message& msg) { 35 return false; 36 } 37 38 void NaClTrustedListener::OnChannelError() { 39 channel_->Close(); 40 } 41 42 bool NaClTrustedListener::Send(IPC::Message* msg) { 43 return channel_->Send(msg); 44 } 45