Index: chrome/browser/extensions/extension_message_service.h |
diff --git a/chrome/browser/extensions/extension_message_service.h b/chrome/browser/extensions/extension_message_service.h |
index 37a3eae644675cba9ebd26acf9f108386d2208bf..168aa5eb9023991785fea3e6de6fa961c018f188 100644 |
--- a/chrome/browser/extensions/extension_message_service.h |
+++ b/chrome/browser/extensions/extension_message_service.h |
@@ -11,14 +11,13 @@ |
#include <string> |
#include "base/compiler_specific.h" |
-#include "base/memory/ref_counted.h" |
#include "content/public/browser/notification_observer.h" |
#include "content/public/browser/notification_registrar.h" |
-#include "ipc/ipc_message.h" |
class Profile; |
namespace content { |
+class RenderProcessHost; |
class WebContents; |
} |
@@ -40,15 +39,10 @@ class WebContents; |
// |
// Terminology: |
// channel: connection between two ports |
-// port: an IPC::Message::Sender interface and an optional routing_id (in the |
-// case that the port is a tab). The Sender is usually either a |
+// port: an IPC::Message::Process interface and an optional routing_id (in the |
+// case that the port is a tab). The Process is usually either a |
// RenderProcessHost or a RenderViewHost. |
- |
-// TODO(mpcomplete): Remove refcounting and make Profile the sole owner of this |
-// class. Then we can get rid of ProfileDestroyed(). |
-class ExtensionMessageService |
- : public base::RefCounted<ExtensionMessageService>, |
- public content::NotificationObserver { |
+class ExtensionMessageService : public content::NotificationObserver { |
public: |
// A messaging channel. Note that the opening port can be the same as the |
// receiver, if an extension background page wants to talk to its tab (for |
@@ -65,9 +59,7 @@ class ExtensionMessageService |
static void AllocatePortIdPair(int* port1, int* port2); |
explicit ExtensionMessageService(Profile* profile); |
- |
- // Notification that our owning profile is going away. |
- void DestroyingProfile(); |
+ virtual ~ExtensionMessageService(); |
// Given an extension's ID, opens a channel between the given renderer "port" |
// and every listening context owned by that extension. |channel_name| is |
@@ -86,28 +78,6 @@ class ExtensionMessageService |
int tab_id, const std::string& extension_id, |
const std::string& channel_name); |
- // Given an extension ID, opens a channel between the given |
- // automation "port" or DevTools service and that extension. the |
- // channel will be open to the extension process hosting the |
- // background page and tool strip. |
- // |
- // Returns a port ID to be used for posting messages between the |
- // processes, or -1 if the extension doesn't exist. |
- int OpenSpecialChannelToExtension( |
- const std::string& extension_id, const std::string& channel_name, |
- const std::string& tab_json, IPC::Message::Sender* source); |
- |
- // Given an extension ID, opens a channel between the given DevTools |
- // service and the content script for that extension running in the |
- // designated tab. |
- // |
- // Returns a port ID identifying the DevTools end of the channel, to |
- // be used for posting messages. May return -1 on failure, although |
- // the code doesn't detect whether the extension actually exists. |
- int OpenSpecialChannelToTab( |
- const std::string& extension_id, const std::string& channel_name, |
- content::WebContents* target_web_contents, IPC::Message::Sender* source); |
- |
// Closes the message channel associated with the given port, and notifies |
// the other side. |
void CloseChannel(int port_id); |
@@ -116,17 +86,14 @@ class ExtensionMessageService |
void PostMessageFromRenderer(int port_id, const std::string& message); |
private: |
- friend class base::RefCounted<ExtensionMessageService>; |
friend class MockExtensionMessageService; |
// A map of channel ID to its channel object. |
typedef std::map<int, MessageChannel*> MessageChannelMap; |
- virtual ~ExtensionMessageService(); |
- |
// Common among Open(Special)Channel* variants. |
bool OpenChannelImpl( |
- IPC::Message::Sender* source, |
+ content::RenderProcessHost* source, |
const std::string& tab_json, |
const MessagePort& receiver, int receiver_port_id, |
const std::string& source_extension_id, |
@@ -141,10 +108,8 @@ class ExtensionMessageService |
const content::NotificationSource& source, |
const content::NotificationDetails& details) OVERRIDE; |
- // An IPC sender that might be in our list of channels has closed. |
- void OnSenderClosed(IPC::Message::Sender* sender); |
- |
- Profile* profile_; |
+ // A process that might be in our list of channels has closed. |
+ void OnProcessClosed(content::RenderProcessHost* process); |
content::NotificationRegistrar registrar_; |