Index: content/browser/web_contents/web_contents_impl.cc |
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc |
index ee5afdf45da10fe739c4b70b186c9ec9400f8117..736916b53d05f25206c297ca70e9388437523897 100644 |
--- a/content/browser/web_contents/web_contents_impl.cc |
+++ b/content/browser/web_contents/web_contents_impl.cc |
@@ -3957,11 +3957,16 @@ bool WebContentsImpl::AddMessageToConsole(int32 level, |
int WebContentsImpl::CreateSwappedOutRenderView( |
SiteInstance* instance) { |
int render_view_routing_id = MSG_ROUTING_NONE; |
- GetRenderManager()->CreateRenderFrame( |
- instance, nullptr, MSG_ROUTING_NONE, |
- CREATE_RF_SWAPPED_OUT | CREATE_RF_FOR_MAIN_FRAME_NAVIGATION | |
- CREATE_RF_HIDDEN, |
- &render_view_routing_id); |
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kSitePerProcess)) { |
+ GetRenderManager()->CreateRenderFrameProxy(instance); |
+ } else { |
+ GetRenderManager()->CreateRenderFrame( |
+ instance, nullptr, MSG_ROUTING_NONE, |
+ CREATE_RF_SWAPPED_OUT | CREATE_RF_FOR_MAIN_FRAME_NAVIGATION | |
+ CREATE_RF_HIDDEN, |
+ &render_view_routing_id); |
+ } |
return render_view_routing_id; |
} |
@@ -4152,11 +4157,18 @@ int WebContentsImpl::CreateOpenerRenderViews(SiteInstance* instance) { |
// Create a swapped out RenderView in the given SiteInstance if none exists, |
// setting its opener to the given route_id. Return the new view's route_id. |
int render_view_routing_id = MSG_ROUTING_NONE; |
- GetRenderManager()->CreateRenderFrame(instance, nullptr, opener_route_id, |
- CREATE_RF_FOR_MAIN_FRAME_NAVIGATION | |
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kSitePerProcess)) { |
+ GetRenderManager()->CreateRenderFrameProxy(instance); |
+ render_view_routing_id = |
+ frame_tree_.GetRenderViewHost(instance)->GetRoutingID(); |
+ } else { |
+ GetRenderManager()->CreateRenderFrame(instance, nullptr, opener_route_id, |
+ CREATE_RF_FOR_MAIN_FRAME_NAVIGATION | |
CREATE_RF_SWAPPED_OUT | |
CREATE_RF_HIDDEN, |
- &render_view_routing_id); |
+ &render_view_routing_id); |
+ } |
return render_view_routing_id; |
} |