Index: chrome/browser/extensions/api/messaging/native_message_process_host.h |
diff --git a/chrome/browser/extensions/api/messaging/native_message_process_host.h b/chrome/browser/extensions/api/messaging/native_message_process_host.h |
index 47fe8723fd34a8809bb6da1d98bb30eaf5405160..81917ac158a2cee78b462524d1b78f7a79ad186f 100644 |
--- a/chrome/browser/extensions/api/messaging/native_message_process_host.h |
+++ b/chrome/browser/extensions/api/messaging/native_message_process_host.h |
@@ -14,10 +14,9 @@ |
#include "base/message_loop/message_loop.h" |
#include "base/process/process.h" |
#include "chrome/browser/extensions/api/messaging/native_process_launcher.h" |
+#include "extensions/browser/api/messaging/native_message_host.h" |
#include "ui/gfx/native_widget_types.h" |
-class PrefService; |
- |
namespace net { |
class DrainableIOBuffer; |
@@ -35,54 +34,27 @@ namespace extensions { |
// This class must only be created, called, and deleted on the IO thread. |
// Public methods typically accept callbacks which will be invoked on the UI |
// thread. |
-class NativeMessageProcessHost |
+class NativeMessageProcessHost : |
#if defined(OS_POSIX) |
- : public base::MessageLoopForIO::Watcher |
+ public base::MessageLoopForIO::Watcher, |
#endif // !defined(OS_POSIX) |
-{ |
+ public NativeMessageHost { |
public: |
- // Interface for the object that receives messages from the native process. |
- class Client { |
- public: |
- virtual ~Client() {} |
- // Called on the UI thread. |
- virtual void PostMessageFromNativeProcess(int port_id, |
- const std::string& message) = 0; |
- virtual void CloseChannel(int port_id, |
- const std::string& error_message) = 0; |
- }; |
- |
- // Result returned from IsHostAllowed(). |
- enum PolicyPermission { |
- DISALLOW, // The host is not allowed. |
- ALLOW_SYSTEM_ONLY, // Allowed only when installed on system level. |
- ALLOW_ALL, // Allowed when installed on system or user level. |
- }; |
+ typedef NativeMessageHost::Client Client; |
Sergey Ulanov
2014/09/30 20:33:39
don't need this typedef.
kelvinp
2014/10/01 06:08:02
Done.
|
virtual ~NativeMessageProcessHost(); |
- // Returns policy permissions for the host with the specified name. |
- static PolicyPermission IsHostAllowed(const PrefService* pref_service, |
- const std::string& native_host_name); |
- |
- static scoped_ptr<NativeMessageProcessHost> Create( |
- gfx::NativeView native_view, |
- base::WeakPtr<Client> weak_client_ui, |
- const std::string& source_extension_id, |
- const std::string& native_host_name, |
- int destination_port, |
- bool allow_user_level); |
- |
// Create using specified |launcher|. Used in tests. |
- static scoped_ptr<NativeMessageProcessHost> CreateWithLauncher( |
- base::WeakPtr<Client> weak_client_ui, |
+ static scoped_ptr<NativeMessageHost> CreateWithLauncher( |
const std::string& source_extension_id, |
const std::string& native_host_name, |
- int destination_port, |
scoped_ptr<NativeProcessLauncher> launcher); |
- // Send a message with the specified payload. |
- void Send(const std::string& json); |
+ // extensions::NativeMessageHost implementation. |
+ virtual void OnMessage(const std::string& message) OVERRIDE; |
+ virtual void set_client(base::WeakPtr<Client> client) OVERRIDE; |
+ virtual scoped_refptr<base::SingleThreadTaskRunner> task_runner() |
+ const OVERRIDE; |
#if defined(OS_POSIX) |
// MessageLoopForIO::Watcher interface |
@@ -95,10 +67,8 @@ class NativeMessageProcessHost |
void ReadNowForTesting(); |
private: |
- NativeMessageProcessHost(base::WeakPtr<Client> weak_client_ui, |
- const std::string& source_extension_id, |
+ NativeMessageProcessHost(const std::string& source_extension_id, |
const std::string& native_host_name, |
- int destination_port, |
scoped_ptr<NativeProcessLauncher> launcher); |
// Starts the host process. |
@@ -127,7 +97,7 @@ class NativeMessageProcessHost |
// The Client messages will be posted to. Should only be accessed from the |
// UI thread. |
- base::WeakPtr<Client> weak_client_ui_; |
+ base::WeakPtr<Client> weak_client_; |
// ID of the calling extension. |
std::string source_extension_id_; |
@@ -135,10 +105,6 @@ class NativeMessageProcessHost |
// Name of the native messaging host. |
std::string native_host_name_; |
- // The id of the port on the other side of this connection. This is passed to |
- // |weak_client_ui_| when posting messages. |
- int destination_port_; |
- |
// Launcher used to launch the native process. |
scoped_ptr<NativeProcessLauncher> launcher_; |
@@ -177,6 +143,8 @@ class NativeMessageProcessHost |
// Set to true when a write is pending. |
bool write_pending_; |
+ scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
+ |
DISALLOW_COPY_AND_ASSIGN(NativeMessageProcessHost); |
}; |