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..6ccc185af8ceb06fee54df1ee728c461fd014369 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; |
} |
@@ -4178,6 +4190,7 @@ bool WebContentsImpl::CreateRenderViewForRenderManager( |
RenderViewHost* render_view_host, |
int opener_route_id, |
int proxy_routing_id, |
+ const FrameReplicationState& replicated_frame_state, |
bool for_main_frame_navigation) { |
TRACE_EVENT0("browser,navigation", |
"WebContentsImpl::CreateRenderViewForRenderManager"); |
@@ -4209,6 +4222,7 @@ bool WebContentsImpl::CreateRenderViewForRenderManager( |
opener_route_id, |
proxy_routing_id, |
max_page_id, |
+ replicated_frame_state, |
created_with_opener_)) { |
return false; |
} |
@@ -4269,10 +4283,9 @@ WebContentsAndroid* WebContentsImpl::GetWebContentsAndroid() { |
} |
bool WebContentsImpl::CreateRenderViewForInitialEmptyDocument() { |
- return CreateRenderViewForRenderManager(GetRenderViewHost(), |
- MSG_ROUTING_NONE, |
- MSG_ROUTING_NONE, |
- true); |
+ return CreateRenderViewForRenderManager( |
+ GetRenderViewHost(), MSG_ROUTING_NONE, MSG_ROUTING_NONE, |
+ frame_tree_.root()->current_replication_state(), true); |
} |
#elif defined(OS_MACOSX) |