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