Index: chrome/browser/extensions/extension_message_service.cc |
diff --git a/chrome/browser/extensions/extension_message_service.cc b/chrome/browser/extensions/extension_message_service.cc |
index 2c7f693eb2f4d2e64b05582d7c12ace681624ea2..979437a7ce536a6f82c16a50462d4302dba2d12d 100644 |
--- a/chrome/browser/extensions/extension_message_service.cc |
+++ b/chrome/browser/extensions/extension_message_service.cc |
@@ -114,6 +114,14 @@ const char ExtensionMessageService::kDispatchOnMessage[] = |
const char ExtensionMessageService::kDispatchEvent[] = |
"Event.dispatchJSON"; |
+// static |
+std::string ExtensionMessageService::GetPerExtensionEventName( |
+ const std::string& event_name, const std::string& extension_id) { |
+ // This should match the method we use in extension_process_binding.js when |
+ // setting up the corresponding chrome.Event object. |
+ return event_name + "/" + extension_id; |
+} |
+ |
ExtensionMessageService::ExtensionMessageService(Profile* profile) |
: profile_(profile), |
extension_devtools_manager_(NULL), |
@@ -485,6 +493,14 @@ void ExtensionMessageService::DispatchEventToRenderers( |
} |
} |
+void ExtensionMessageService::DispatchEventToExtension( |
+ const std::string& extension_id, |
+ const std::string& event_name, const std::string& event_args, |
+ bool has_incognito_data, const GURL& event_url) { |
+ DispatchEventToRenderers(GetPerExtensionEventName(event_name, extension_id), |
+ event_args, has_incognito_data, event_url); |
+} |
+ |
void ExtensionMessageService::Observe(NotificationType type, |
const NotificationSource& source, |
const NotificationDetails& details) { |