Chromium Code Reviews| 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 |