Index: content/renderer/render_frame_proxy.cc |
diff --git a/content/renderer/render_frame_proxy.cc b/content/renderer/render_frame_proxy.cc |
index 66baaf7b1cd6407702d2a7a74ed4b6c7aa881bdf..fda7b7843555780b8c181c66df1b6a46c3b07495 100644 |
--- a/content/renderer/render_frame_proxy.cc |
+++ b/content/renderer/render_frame_proxy.cc |
@@ -6,12 +6,14 @@ |
#include <map> |
+#include "base/command_line.h" |
#include "base/lazy_instance.h" |
#include "content/child/webmessageportchannel_impl.h" |
#include "content/common/frame_messages.h" |
#include "content/common/frame_replication_state.h" |
#include "content/common/swapped_out_messages.h" |
#include "content/common/view_messages.h" |
+#include "content/public/common/content_switches.h" |
#include "content/renderer/child_frame_compositing_helper.h" |
#include "content/renderer/render_frame_impl.h" |
#include "content/renderer/render_thread_impl.h" |
@@ -65,7 +67,7 @@ RenderFrameProxy* RenderFrameProxy::CreateFrameProxy( |
RenderViewImpl* render_view = NULL; |
blink::WebRemoteFrame* web_frame = NULL; |
if (parent_routing_id == MSG_ROUTING_NONE) { |
- // Create a top level frame. |
+ // Create a top level WebRemoteFrame. |
render_view = RenderViewImpl::FromRoutingID(render_view_routing_id); |
web_frame = |
blink::WebRemoteFrame::create(replicated_state.scope, proxy.get()); |
@@ -292,12 +294,15 @@ void RenderFrameProxy::OnDisownOpener() { |
// When there is a RenderFrame for this proxy, tell it to disown its opener. |
// TODO(creis): Remove this when we only have WebRemoteFrames and make sure |
// they know they have an opener. |
- RenderFrameImpl* render_frame = |
- RenderFrameImpl::FromRoutingID(frame_routing_id_); |
- if (render_frame) { |
- if (render_frame->GetWebFrame()->opener()) |
- render_frame->GetWebFrame()->setOpener(NULL); |
- return; |
+ if (!base::CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kSitePerProcess)) { |
+ RenderFrameImpl* render_frame = |
+ RenderFrameImpl::FromRoutingID(frame_routing_id_); |
+ if (render_frame) { |
+ if (render_frame->GetWebFrame()->opener()) |
+ render_frame->GetWebFrame()->setOpener(NULL); |
+ return; |
+ } |
} |
if (web_frame_->opener()) |