Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2868)

Unified Diff: content/renderer/render_view_impl.cc

Issue 692973005: Pass origin information for remote frame creation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address review feedback; send origins with DidCommitProvisionalLoad Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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,

Powered by Google App Engine
This is Rietveld 408576698