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