Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2748)

Unified Diff: chrome/browser/extensions/api/messaging/native_message_port.h

Issue 591463003: Remote Assistance on Chrome OS Part III - NativeMessageHost (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@native_messaging
Patch Set: Add NativeMessagePort::Core Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698