summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/render_view.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/renderer/render_view.cc')
-rwxr-xr-xchrome/renderer/render_view.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc
index 693746f..5d5079f 100755
--- a/chrome/renderer/render_view.cc
+++ b/chrome/renderer/render_view.cc
@@ -5172,6 +5172,19 @@ bool RenderView::IsNonLocalTopLevelNavigation(
return true;
}
}
+ // Not interested in reloads.
+ if (type != WebKit::WebNavigationTypeReload &&
+ type != WebKit::WebNavigationTypeFormSubmitted) {
+ // The opener relationship between the new window and the parent allows the
+ // new window to script the parent and vice versa. This is not allowed if
+ // the origins of the two domains are different. This can be treated as a
+ // top level navigation and routed back to the host.
+ WebKit::WebFrame* opener = frame->opener();
+ if (opener) {
+ if (url.GetOrigin() != GURL(opener->url()).GetOrigin())
+ return true;
+ }
+ }
return false;
}