Index: chrome/browser/extensions/api/messaging/native_message_port.h |
diff --git a/chrome/browser/extensions/api/messaging/native_message_port.h b/chrome/browser/extensions/api/messaging/native_message_port.h |
index f94db96a8ad107afaa09850d9a6ad7da5d960714..7b487e305fc113e0377a2958629d26727bf9bbbd 100644 |
--- a/chrome/browser/extensions/api/messaging/native_message_port.h |
+++ b/chrome/browser/extensions/api/messaging/native_message_port.h |
@@ -11,16 +11,31 @@ namespace extensions { |
class NativeMessageProcessHost; |
// A port that manages communication with a native application. |
-class NativeMessagePort : public MessageService::MessagePort { |
+// All methods must be called on the UI Thread of the browser process. |
+class NativeMessagePort : public MessageService::MessagePort, |
+ public NativeMessageHost::Client { |
public: |
- // Takes ownership of |native_process|. |
- explicit NativeMessagePort(NativeMessageProcessHost* native_process); |
+ NativeMessagePort(base::WeakPtr<MessageService> message_service, |
+ int port_id, |
+ scoped_ptr<NativeMessageHost> native_message_host); |
virtual ~NativeMessagePort(); |
+ |
+ // MessageService::MessagePort implementation. |
virtual void DispatchOnMessage(const Message& message, |
int target_port_id) OVERRIDE; |
+ // NativeMessageHost::Client implementation. |
+ virtual void PostMessageFromNativeHost(const std::string& message) OVERRIDE; |
+ |
+ // Calling CloseChannel will delete the current object. |
Sergey Ulanov
2014/09/27 00:24:10
don't need this comment.
kelvinp
2014/09/29 22:59:40
Done.
|
+ virtual void CloseChannel(const std::string& error_message) OVERRIDE; |
+ |
private: |
- NativeMessageProcessHost* native_process_; |
+ base::WeakPtr<MessageService> weak_message_service_; |
+ int port_id_; |
+ scoped_ptr<NativeMessageHost> native_message_host_; |
+ |
+ base::WeakPtrFactory<NativeMessagePort> weak_factory_; |
}; |
} // namespace extensions |