Index: extensions/renderer/dispatcher.cc |
diff --git a/extensions/renderer/dispatcher.cc b/extensions/renderer/dispatcher.cc |
index f210e27e2b0f290c16be549822ba72fb78076561..223920b159d20df7adba3144b35ecb59d7d519ff 100644 |
--- a/extensions/renderer/dispatcher.cc |
+++ b/extensions/renderer/dispatcher.cc |
@@ -30,6 +30,7 @@ |
#include "extensions/common/feature_switch.h" |
#include "extensions/common/features/feature.h" |
#include "extensions/common/features/feature_provider.h" |
+#include "extensions/common/guest_view/extensions_guest_view_messages.h" |
#include "extensions/common/manifest.h" |
#include "extensions/common/manifest_constants.h" |
#include "extensions/common/manifest_handlers/background_info.h" |
@@ -57,6 +58,7 @@ |
#include "extensions/renderer/extension_helper.h" |
#include "extensions/renderer/extensions_renderer_client.h" |
#include "extensions/renderer/file_system_natives.h" |
+#include "extensions/renderer/guest_view/extensions_guest_view_container.h" |
#include "extensions/renderer/guest_view/guest_view_internal_custom_bindings.h" |
#include "extensions/renderer/i18n_custom_bindings.h" |
#include "extensions/renderer/id_generator_custom_bindings.h" |
@@ -709,6 +711,8 @@ bool Dispatcher::OnControlMessageReceived(const IPC::Message& message) { |
IPC_MESSAGE_HANDLER(ExtensionMsg_ClearTabSpecificPermissions, |
OnClearTabSpecificPermissions) |
IPC_MESSAGE_HANDLER(ExtensionMsg_UsingWebRequestAPI, OnUsingWebRequestAPI) |
+ IPC_MESSAGE_HANDLER_GENERIC(ExtensionsGuestViewMsg_GuestReady, |
+ OnGuestReady(message)) |
IPC_MESSAGE_FORWARD(ExtensionMsg_WatchPages, |
content_watcher_.get(), |
ContentWatcher::OnWatchPages) |
@@ -1033,6 +1037,21 @@ void Dispatcher::OnUsingWebRequestAPI(bool webrequest_used) { |
webrequest_used_ = webrequest_used; |
} |
+// We do not have a BrowserPluginManager to route this message, so we |
+// handle the message here. |
+// TODO(lazyboy): dispatcher.cc is too generic to handle this message, find |
+// a better way to route the message. |
+void Dispatcher::OnGuestReady(const IPC::Message& message) { |
+ ExtensionsGuestViewMsg_GuestReady::Param param; |
+ bool read_status = ExtensionsGuestViewMsg_GuestReady::Read(&message, ¶m); |
+ DCHECK(read_status); |
+ int element_instance_id = get<0>(param); |
+ auto container = static_cast<ExtensionsGuestViewContainer*>( |
+ GuestViewContainer::FromID(element_instance_id)); |
+ DCHECK(container); |
+ container->OnMessage(message); |
+} |
+ |
void Dispatcher::OnUserScriptsUpdated(const std::set<HostID>& changed_hosts, |
const std::vector<UserScript*>& scripts) { |
UpdateActiveExtensions(); |