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

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: 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..7b487e305fc113e0377a2958629d26727bf9bbbd 100644
--- a/chrome/browser/extensions/api/messaging/native_message_port.h
+++ b/chrome/browser/extensions/api/messaging/native_message_port.h
@@ -11,16 +11,31 @@ 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.
+ virtual void PostMessageFromNativeHost(const std::string& message) OVERRIDE;
+
+ // Calling CloseChannel will delete the current object.
Sergey Ulanov 2014/09/27 00:24:10 don't need this comment.
kelvinp 2014/09/29 22:59:40 Done.
+ virtual void CloseChannel(const std::string& error_message) OVERRIDE;
+
private:
- NativeMessageProcessHost* native_process_;
+ base::WeakPtr<MessageService> weak_message_service_;
+ int port_id_;
+ scoped_ptr<NativeMessageHost> native_message_host_;
+
+ base::WeakPtrFactory<NativeMessagePort> weak_factory_;
};
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698