| 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..30a58b6241a5fc7218421357bc32a6b443d5ace2 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
|
|
|