Index: extensions/browser/extension_message_filter.cc |
diff --git a/extensions/browser/extension_message_filter.cc b/extensions/browser/extension_message_filter.cc |
index 7ae576ff2a4e5ed3d77379e14685a201cda55eec..7529fd02ae427d8c51390618bc958af7af1a5fe6 100644 |
--- a/extensions/browser/extension_message_filter.cc |
+++ b/extensions/browser/extension_message_filter.cc |
@@ -12,6 +12,7 @@ |
#include "extensions/browser/event_router.h" |
#include "extensions/browser/extension_function_dispatcher.h" |
#include "extensions/browser/extension_system.h" |
+#include "extensions/browser/guest_view/guest_view_manager.h" |
#include "extensions/browser/info_map.h" |
#include "extensions/browser/process_manager.h" |
#include "extensions/common/extension.h" |
@@ -42,6 +43,7 @@ void ExtensionMessageFilter::OverrideThreadForMessage( |
BrowserThread::ID* thread) { |
switch (message.type()) { |
case ExtensionHostMsg_AddListener::ID: |
+ case ExtensionHostMsg_AttachGuest::ID: |
case ExtensionHostMsg_RemoveListener::ID: |
case ExtensionHostMsg_AddLazyListener::ID: |
case ExtensionHostMsg_RemoveLazyListener::ID: |
@@ -72,6 +74,8 @@ bool ExtensionMessageFilter::OnMessageReceived(const IPC::Message& message) { |
OnExtensionRemoveListener) |
IPC_MESSAGE_HANDLER(ExtensionHostMsg_AddLazyListener, |
OnExtensionAddLazyListener) |
+ IPC_MESSAGE_HANDLER(ExtensionHostMsg_AttachGuest, |
+ OnExtensionAttachGuest) |
IPC_MESSAGE_HANDLER(ExtensionHostMsg_RemoveLazyListener, |
OnExtensionRemoveLazyListener) |
IPC_MESSAGE_HANDLER(ExtensionHostMsg_AddFilteredListener, |
@@ -145,6 +149,24 @@ void ExtensionMessageFilter::OnExtensionAddLazyListener( |
router->AddLazyEventListener(event_name, extension_id); |
} |
+void ExtensionMessageFilter::OnExtensionAttachGuest( |
+ int routing_id, |
+ int element_instance_id, |
+ int guest_instance_id, |
+ const base::DictionaryValue& params) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ extensions::GuestViewManager* manager = |
+ extensions::GuestViewManager::FromBrowserContext(browser_context_); |
+ if (!manager) |
+ return; |
+ |
+ manager->AttachGuest(render_process_id_, |
+ routing_id, |
+ element_instance_id, |
+ guest_instance_id, |
+ params); |
+} |
+ |
void ExtensionMessageFilter::OnExtensionRemoveLazyListener( |
const std::string& extension_id, const std::string& event_name) { |
EventRouter* router = EventRouter::Get(browser_context_); |