summaryrefslogtreecommitdiffstats
path: root/content/renderer/render_view_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'content/renderer/render_view_impl.cc')
-rw-r--r--content/renderer/render_view_impl.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index 083dd0b..a0840fbc7 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -2019,6 +2019,19 @@ WebNavigationPolicy RenderViewImpl::decidePolicyForNavigation(
NavigationState::FromDataSource(frame->provisionalDataSource())->
is_content_initiated();
+ // Experimental:
+ // If --enable-strict-site-isolation is enabled, send all top-level
+ // navigations to the browser to let it swap processes when crossing site
+ // boundaries. This is currently expected to break some script calls and
+ // navigations, such as form submissions.
+ const CommandLine& command_line = *CommandLine::ForCurrentProcess();
+ if (!frame->parent() && (is_content_initiated || is_redirect) &&
+ command_line.HasSwitch(switches::kEnableStrictSiteIsolation)) {
+ GURL referrer(request.httpHeaderField(WebString::fromUTF8("Referer")));
+ OpenURL(frame, url, referrer, default_policy);
+ return WebKit::WebNavigationPolicyIgnore;
+ }
+
// If the browser is interested, then give it a chance to look at top level
// navigations.
if (is_content_initiated &&