| 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 b3f7605e6f9c1428b3808b79f40a50ad9cd42d94..65711ae43389a430b154bbafb2facfeb8344edea 100644
|
| --- a/chrome/browser/extensions/api/messaging/native_message_port.h
|
| +++ b/chrome/browser/extensions/api/messaging/native_message_port.h
|
| @@ -5,22 +5,36 @@
|
| #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.
|
| +// All methods must be called on the UI Thread of the browser process.
|
| class NativeMessagePort : public MessageService::MessagePort {
|
| 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;
|
| -
|
| private:
|
| - NativeMessageProcessHost* native_process_;
|
| + class Core;
|
| + void PostMessageFromNativeHost(const std::string& message);
|
| + void CloseChannel(const std::string& error_message);
|
| +
|
| + base::ThreadChecker thread_checker_;
|
| + base::WeakPtr<MessageService> weak_message_service_;
|
| + scoped_refptr<base::SingleThreadTaskRunner> host_task_runner_;
|
| + int port_id_;
|
| + scoped_ptr<Core> core_;
|
| +
|
| + base::WeakPtrFactory<NativeMessagePort> weak_factory_;
|
| };
|
|
|
| } // namespace extensions
|
|
|