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

Unified Diff: content/renderer/render_frame_proxy.cc

Issue 600553003: Enable swapping a frame back in to its parent process (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@remoteToLocal
Patch Set: Created 6 years, 3 months 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: content/renderer/render_frame_proxy.cc
diff --git a/content/renderer/render_frame_proxy.cc b/content/renderer/render_frame_proxy.cc
index 6e719c1ab31ecf8029184c4cf5ff762cece9eb25..5eb29aeeb4ed3c1efab86cc09b4c97d648596cd9 100644
--- a/content/renderer/render_frame_proxy.cc
+++ b/content/renderer/render_frame_proxy.cc
@@ -153,6 +153,7 @@ bool RenderFrameProxy::OnMessageReceived(const IPC::Message& msg) {
IPC_MESSAGE_HANDLER_GENERIC(FrameMsg_CompositorFrameSwapped,
OnCompositorFrameSwapped(msg))
IPC_MESSAGE_HANDLER(FrameMsg_DisownOpener, OnDisownOpener)
+ IPC_MESSAGE_HANDLER(FrameMsg_SwapOut, OnSwapOut)
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
@@ -230,6 +231,17 @@ void RenderFrameProxy::OnDisownOpener() {
web_frame_->setOpener(NULL);
}
+void RenderFrameProxy::OnSwapOut(int frame_routing_id) {
Charlie Reis 2014/09/30 23:02:43 I don't think we want this, do we? Nasko was poin
nasko 2014/10/08 16:42:58 Yes, it will be best if we send the proxy routing
+ CHECK(!RenderFrameImpl::FromRoutingID(frame_routing_id));
+
+ RenderFrameImpl* render_frame =
+ RenderFrameImpl::Create(render_view_, frame_routing_id);
+ blink::WebLocalFrame* web_frame = blink::WebLocalFrame::create(render_frame);
+ render_frame->SetWebFrame(web_frame);
+ render_frame->Initialize();
+ web_frame_->swap(web_frame);
+}
+
void RenderFrameProxy::postMessageEvent(
blink::WebLocalFrame* source_frame,
blink::WebRemoteFrame* target_frame,

Powered by Google App Engine
This is Rietveld 408576698