Index: content/browser/loader/cross_site_resource_handler.cc |
diff --git a/content/browser/loader/cross_site_resource_handler.cc b/content/browser/loader/cross_site_resource_handler.cc |
index ebf40eb023a6abfd0047b64e11de9ef04dd57eb7..cb344d4b98532082476919b04d49370642b03df9 100644 |
--- a/content/browser/loader/cross_site_resource_handler.cc |
+++ b/content/browser/loader/cross_site_resource_handler.cc |
@@ -16,6 +16,7 @@ |
#include "content/browser/loader/resource_dispatcher_host_impl.h" |
#include "content/browser/loader/resource_request_info_impl.h" |
#include "content/browser/site_instance_impl.h" |
+#include "content/browser/web_contents/web_contents_impl.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/content_browser_client.h" |
#include "content/public/browser/global_request_id.h" |
@@ -99,6 +100,12 @@ bool CheckNavigationPolicyOnUI(GURL url, int process_id, int render_frame_id) { |
if (!rfh->GetSiteInstance()->HasSite()) |
return false; |
+ // For now, GuestViews never transfer on cross-site navigations. |
+ WebContentsImpl* web_contents = |
+ static_cast<WebContentsImpl*>(WebContents::FromRenderFrameHost(rfh)); |
+ if (web_contents->GetBrowserPluginGuest()) |
+ return false; |
+ |
// TODO(nasko): This check is very simplistic and is used temporarily only |
// for --site-per-process. It should be updated to match the check performed |
// by RenderFrameHostManager::UpdateStateForNavigate. |