|
@@ -42,10 +42,10 @@ index 906a1ee4ac58b0744a32153bbaafeac4322a60e4..c90f4aead36cbf3767dc5094728963c2
|
|
|
// another SiteInstance for the same site.
|
|
|
void RegisterSiteInstance(SiteInstanceImpl* site_instance);
|
|
|
diff --git a/content/browser/frame_host/navigation_request.cc b/content/browser/frame_host/navigation_request.cc
|
|
|
-index 0fd355a218cc454380c9e48ae299872484078f4d..8824293926782106cb7f8fb1eb76adda6963b97d 100644
|
|
|
+index e911c3aa1cf13b17bd43ad8c9d50f0fd59996907..373e36eb61d57e1bcd98d45419ee4b434820bf02 100644
|
|
|
--- a/content/browser/frame_host/navigation_request.cc
|
|
|
+++ b/content/browser/frame_host/navigation_request.cc
|
|
|
-@@ -1198,6 +1198,24 @@ void NavigationRequest::BeginNavigation() {
|
|
|
+@@ -1185,6 +1185,24 @@ void NavigationRequest::BeginNavigation() {
|
|
|
TRACE_EVENT_ASYNC_STEP_INTO0("navigation", "NavigationRequest", this,
|
|
|
"ResponseStarted");
|
|
|
|
|
@@ -71,10 +71,10 @@ index 0fd355a218cc454380c9e48ae299872484078f4d..8824293926782106cb7f8fb1eb76adda
|
|
|
render_frame_host_ =
|
|
|
frame_tree_node_->render_manager()->GetFrameHostForNavigation(this);
|
|
|
diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc
|
|
|
-index d55a185f524c004e060936e43229568b36cad8a9..a82d6547951e42b1ef2af260c42e5c426baac896 100644
|
|
|
+index e41e833e963617cf5b2e463e839b2ae0bfd212ae..f544da86cb12d2786f7aad24953741ed77a0ac24 100644
|
|
|
--- a/content/browser/frame_host/render_frame_host_manager.cc
|
|
|
+++ b/content/browser/frame_host/render_frame_host_manager.cc
|
|
|
-@@ -2173,6 +2173,16 @@ bool RenderFrameHostManager::InitRenderView(
|
|
|
+@@ -2247,6 +2247,16 @@ bool RenderFrameHostManager::InitRenderView(
|
|
|
scoped_refptr<SiteInstance>
|
|
|
RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
|
|
|
NavigationRequest* request) {
|
|
@@ -91,7 +91,7 @@ index d55a185f524c004e060936e43229568b36cad8a9..a82d6547951e42b1ef2af260c42e5c42
|
|
|
SiteInstance* current_site_instance = render_frame_host_->GetSiteInstance();
|
|
|
|
|
|
// All children of MHTML documents must be MHTML documents. They all live in
|
|
|
-@@ -2192,10 +2202,60 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
|
|
|
+@@ -2266,10 +2276,60 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
|
|
|
//
|
|
|
// TODO(clamy): We should also consider as a candidate SiteInstance the
|
|
|
// speculative SiteInstance that was computed on redirects.
|
|
@@ -156,9 +156,9 @@ index d55a185f524c004e060936e43229568b36cad8a9..a82d6547951e42b1ef2af260c42e5c42
|
|
|
|
|
|
// Account for renderer-initiated reload as well.
|
|
|
// Needed as a workaround for https://crbug.com/1045524, remove it when it is
|
|
|
-@@ -2215,6 +2275,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
|
|
|
+@@ -2300,6 +2360,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
|
|
|
request->GetRestoreType() != RestoreType::NONE, request->is_view_source(),
|
|
|
- request->WasServerRedirect());
|
|
|
+ request->WasServerRedirect(), cross_origin_policy_swap);
|
|
|
|
|
|
+ GetContentClient()->browser()->RegisterPendingSiteInstance(
|
|
|
+ render_frame_host_.get(), dest_site_instance.get());
|
|
@@ -220,7 +220,7 @@ index 930e043a0fdf40ef0e48a19597da567c8603878c..b6ba4dfad79d6031efd725de795bf901
|
|
|
const MainFunctionParams& parameters) {
|
|
|
return nullptr;
|
|
|
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
|
|
|
-index 1fcc4c057ac5686f47eba791d1f0cf2c8c639574..c5eb6fbfc4b6aab5e830c725899f270aff3b4b46 100644
|
|
|
+index f9601b5813746ce930bb7082178e1f826aaeb62e..f94bc9e640b54c6abf05bfe074ae0635d57470e8 100644
|
|
|
--- a/content/public/browser/content_browser_client.h
|
|
|
+++ b/content/public/browser/content_browser_client.h
|
|
|
@@ -233,8 +233,45 @@ class CONTENT_EXPORT ContentBrowserClient {
|