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, |