|  | // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include "chrome/browser/extensions/api/messaging/native_message_port.h" | 
|  |  | 
|  | #include "base/bind.h" | 
|  | #include "chrome/browser/extensions/api/messaging/native_message_process_host.h" | 
|  | #include "content/public/browser/browser_thread.h" | 
|  |  | 
|  | namespace extensions { | 
|  |  | 
|  | NativeMessagePort::NativeMessagePort(NativeMessageProcessHost* native_process) | 
|  | : native_process_(native_process) { | 
|  | } | 
|  |  | 
|  | NativeMessagePort::~NativeMessagePort() { | 
|  | content::BrowserThread::DeleteSoon( | 
|  | content::BrowserThread::IO, FROM_HERE, native_process_); | 
|  | } | 
|  |  | 
|  | void NativeMessagePort::DispatchOnMessage( | 
|  | const Message& message, | 
|  | int target_port_id) { | 
|  | content::BrowserThread::PostTask( | 
|  | content::BrowserThread::IO, FROM_HERE, | 
|  | base::Bind(&NativeMessageProcessHost::Send, | 
|  | base::Unretained(native_process_), message.data)); | 
|  | } | 
|  |  | 
|  | }  // namespace extensions |