Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(239)

Unified Diff: extensions/renderer/guest_view/guest_view_container.cc

Issue 801173002: Fix message routing for BrowserPlugin in iframe (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix tests that don't have a RenderThreadImpl Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: extensions/renderer/guest_view/guest_view_container.cc
diff --git a/extensions/renderer/guest_view/guest_view_container.cc b/extensions/renderer/guest_view/guest_view_container.cc
index 44ef046739d95fba7337f9199d9d4468c760a110..cc3e333385bb0ae67545144c6605801711abbb17 100644
--- a/extensions/renderer/guest_view/guest_view_container.cc
+++ b/extensions/renderer/guest_view/guest_view_container.cc
@@ -6,42 +6,34 @@
#include "content/public/renderer/render_frame.h"
#include "content/public/renderer/render_view.h"
+#include "extensions/common/extension_messages.h"
#include "extensions/common/guest_view/guest_view_constants.h"
namespace extensions {
GuestViewContainer::GuestViewContainer(content::RenderFrame* render_frame)
- : content::RenderFrameObserver(render_frame),
- element_instance_id_(guestview::kInstanceIDNone),
- render_view_routing_id_(render_frame->GetRenderView()->GetRoutingID()) {
+ : element_instance_id_(guestview::kInstanceIDNone),
+ render_view_routing_id_(render_frame->GetRenderView()->GetRoutingID()),
+ render_frame_(render_frame) {
}
GuestViewContainer::~GuestViewContainer() {}
+// static.
+bool GuestViewContainer::HandlesMessage(const IPC::Message& msg) {
+ switch (msg.type()) {
+ case ExtensionMsg_GuestAttached::ID:
+ case ExtensionMsg_GuestDetached::ID:
+ case ExtensionMsg_CreateMimeHandlerViewGuestACK::ID:
+ return true;
+ default:
+ return false;
+ }
+}
+
void GuestViewContainer::SetElementInstanceID(int element_instance_id) {
DCHECK_EQ(element_instance_id_, guestview::kInstanceIDNone);
element_instance_id_ = element_instance_id;
}
-void GuestViewContainer::OnDestruct() {
- // GuestViewContainer's lifetime is managed by BrowserPlugin so don't let
- // RenderFrameObserver self-destruct here.
-}
-
-bool GuestViewContainer::OnMessageReceived(
- const IPC::Message& message) {
- if (!HandlesMessage(message))
- return false;
-
- DCHECK_NE(element_instance_id_, guestview::kInstanceIDNone);
- int element_instance_id = guestview::kInstanceIDNone;
- PickleIterator iter(message);
- bool success = iter.ReadInt(&element_instance_id);
- DCHECK(success);
- if (element_instance_id != element_instance_id_)
- return false;
-
- return OnMessage(message);
-}
-
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698