Index: chrome/browser/renderer_host/chrome_extension_message_filter.cc |
diff --git a/chrome/browser/renderer_host/chrome_extension_message_filter.cc b/chrome/browser/renderer_host/chrome_extension_message_filter.cc |
index ae531912c1f34d9101b88bf3c562156c0d3c2a63..fdb16100e2a1910bda7286e014929edd5c79b20b 100644 |
--- a/chrome/browser/renderer_host/chrome_extension_message_filter.cc |
+++ b/chrome/browser/renderer_host/chrome_extension_message_filter.cc |
@@ -22,6 +22,8 @@ |
#include "content/public/browser/notification_service.h" |
#include "content/public/browser/render_process_host.h" |
#include "extensions/browser/extension_system.h" |
+#include "extensions/browser/guest_view/guest_view_base.h" |
+#include "extensions/browser/guest_view/guest_view_manager.h" |
#include "extensions/common/api/messaging/message.h" |
#include "extensions/common/constants.h" |
#include "extensions/common/extension_messages.h" |
@@ -88,6 +90,8 @@ bool ChromeExtensionMessageFilter::OnMessageReceived( |
const IPC::Message& message) { |
bool handled = true; |
IPC_BEGIN_MESSAGE_MAP(ChromeExtensionMessageFilter, message) |
+ IPC_MESSAGE_HANDLER(ChromeExtensionHostMsg_GuestViewSetAttachParams, |
+ OnGuestViewSetAttachParams) |
IPC_MESSAGE_HANDLER(ChromeViewHostMsg_CanTriggerClipboardRead, |
OnCanTriggerClipboardRead) |
IPC_MESSAGE_HANDLER(ChromeViewHostMsg_CanTriggerClipboardWrite, |
@@ -116,6 +120,7 @@ bool ChromeExtensionMessageFilter::OnMessageReceived( |
void ChromeExtensionMessageFilter::OverrideThreadForMessage( |
const IPC::Message& message, BrowserThread::ID* thread) { |
switch (message.type()) { |
+ case ChromeExtensionHostMsg_GuestViewSetAttachParams::ID: |
case ExtensionHostMsg_PostMessage::ID: |
case ExtensionHostMsg_CloseChannel::ID: |
*thread = BrowserThread::UI; |
@@ -148,6 +153,25 @@ void ChromeExtensionMessageFilter::OnCanTriggerClipboardWrite( |
origin, render_process_id_, APIPermission::kClipboardWrite)); |
} |
+void ChromeExtensionMessageFilter::OnGuestViewSetAttachParams( |
+ 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(profile_); |
+ if (!manager) |
+ return; |
+ |
+ manager->SetAttachParamsForGuest( |
+ render_process_id_, |
+ routing_id, |
+ element_instance_id, |
+ guest_instance_id, |
+ params); |
+} |
+ |
void ChromeExtensionMessageFilter::OnOpenChannelToExtension( |
int routing_id, |
const ExtensionMsg_ExternalConnectionInfo& info, |