Index: content/browser/frame_host/navigator_impl.cc |
diff --git a/content/browser/frame_host/navigator_impl.cc b/content/browser/frame_host/navigator_impl.cc |
index e3b56215d4d26daf3218f1b52f0133bda53ffdc0..fd8ff27d8ca94ba8725c0ad692dfa4491263d1e6 100644 |
--- a/content/browser/frame_host/navigator_impl.cc |
+++ b/content/browser/frame_host/navigator_impl.cc |
@@ -520,6 +520,14 @@ void NavigatorImpl::DidNavigate( |
frame_tree->root()->render_manager()->DidNavigateFrame(render_frame_host); |
} |
+ // Save the origin of the new page. Do this before calling |
+ // DidNavigateFrame(), because the origin needs to be included in the SwapOut |
+ // message, which is sent inside DidNavigateFrame(). SwapOut needs the |
+ // origin because it creates a RenderFrameProxy that needs this initialize |
+ // its security context. This origin will also be sent to RenderFrameProxies |
+ // created via ViewMsg_New and FrameMsg_NewFrameProxy. |
+ render_frame_host->frame_tree_node()->set_current_origin(params.origin); |
+ |
// When using --site-per-process, we notify the RFHM for all navigations, |
// not just main frame navigations. |
if (use_site_per_process) { |