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..a1a314e68ef349fb21ffc2878d31ca477cfadbec 100644 |
| --- a/chrome/browser/extensions/api/messaging/native_message_port.h |
| +++ b/chrome/browser/extensions/api/messaging/native_message_port.h |
| @@ -5,22 +5,39 @@ |
| #ifndef CHROME_BROWSER_EXTENSIONS_API_MESSAGING_NATIVE_MESSAGE_PORT_H_ |
| #define CHROME_BROWSER_EXTENSIONS_API_MESSAGING_NATIVE_MESSAGE_PORT_H_ |
| +#include "base/threading/thread_checker.h" |
| #include "chrome/browser/extensions/api/messaging/message_service.h" |
| 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. |
|
Sergey Ulanov
2014/10/01 23:23:59
This class doesn't really need to implement Native
kelvinp
2014/10/02 03:12:17
Done.
|
| + virtual void PostMessageFromNativeHost(const std::string& message) OVERRIDE; |
| + virtual void CloseChannel(const std::string& error_message) OVERRIDE; |
| + |
| private: |
| - NativeMessageProcessHost* native_process_; |
| + class Core; |
| + |
| + base::ThreadChecker thread_checker_; |
| + base::WeakPtr<MessageService> weak_message_service_; |
| + int port_id_; |
| + scoped_ptr<Core> core_; |
| + |
| + base::WeakPtrFactory<NativeMessagePort> weak_factory_; |
| }; |
| } // namespace extensions |