Chromium Code Reviews| Index: content/renderer/render_view_impl.cc |
| diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc |
| index 56a719eb8be62f6cf566b47f515741e7ea1e2f46..9ad9cc1b1f90fa42de6610cce2d030b593c74964 100644 |
| --- a/content/renderer/render_view_impl.cc |
| +++ b/content/renderer/render_view_impl.cc |
| @@ -766,15 +766,24 @@ void RenderViewImpl::Initialize(RenderViewImplParams* params) { |
| main_render_frame_->set_render_frame_proxy(proxy); |
| } |
| + bool is_site_per_process = |
| + CommandLine::ForCurrentProcess()->HasSwitch(switches::kSitePerProcess); |
| + |
| // In --site-per-process, just use the WebRemoteFrame as the main frame. |
| - if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kSitePerProcess) && |
| - proxy) { |
| + if (is_site_per_process && proxy) { |
| webview()->setMainFrame(proxy->web_frame()); |
| } else { |
| webview()->setMainFrame(main_render_frame_->GetWebFrame()); |
| } |
| main_render_frame_->Initialize(); |
| + // In --site-per-process, initialize the WebRemoteFrame with information |
|
dcheng
2014/11/19 00:50:11
Any chance we can combine this if block with the a
alexmos
2014/11/19 02:49:27
Done.
|
| + // replicated from the browser process. |
| + if (is_site_per_process && proxy) { |
| + RenderFrameImpl::SetReplicatedState(proxy->web_frame(), |
| + params->remote_frame_state); |
| + } |
| + |
| if (switches::IsTouchDragDropEnabled()) |
| webview()->settings()->setTouchDragDropEnabled(true); |
| @@ -1138,6 +1147,7 @@ RenderViewImpl* RenderViewImpl::Create( |
| const base::string16& frame_name, |
| bool is_renderer_created, |
| bool swapped_out, |
| + const FrameReplicationState& remote_frame_state, |
| int32 proxy_routing_id, |
| bool hidden, |
| bool never_visible, |
| @@ -1155,6 +1165,7 @@ RenderViewImpl* RenderViewImpl::Create( |
| frame_name, |
| is_renderer_created, |
| swapped_out, |
| + remote_frame_state, |
| proxy_routing_id, |
| hidden, |
| never_visible, |
| @@ -1689,6 +1700,7 @@ WebView* RenderViewImpl::createView(WebLocalFrame* creator, |
| base::string16(), // WebCore will take care of setting the correct name. |
| true, // is_renderer_created |
| false, // swapped_out |
| + FrameReplicationState(), // Empty since swapped_out is false. |
| MSG_ROUTING_NONE, // proxy_routing_id |
| params.disposition == NEW_BACKGROUND_TAB, // hidden |
| never_visible, |