summaryrefslogtreecommitdiffstats
path: root/chromium/content/browser/frame_host/navigator_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/browser/frame_host/navigator_impl.cc')
-rw-r--r--chromium/content/browser/frame_host/navigator_impl.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/chromium/content/browser/frame_host/navigator_impl.cc b/chromium/content/browser/frame_host/navigator_impl.cc
index 2acedd76a19..1ba044c8b21 100644
--- a/chromium/content/browser/frame_host/navigator_impl.cc
+++ b/chromium/content/browser/frame_host/navigator_impl.cc
@@ -263,6 +263,16 @@ bool NavigatorImpl::NavigateToEntry(
dest_referrer = Referrer();
}
+ // Don't attempt to navigate if the virtual URL is non-empty and invalid.
+ if (frame_tree_node->IsMainFrame()) {
+ const GURL& virtual_url = entry.GetVirtualURL();
+ if (!virtual_url.is_valid() && !virtual_url.is_empty()) {
+ LOG(WARNING) << "Refusing to load for invalid virtual URL: "
+ << virtual_url.possibly_invalid_spec();
+ return false;
+ }
+ }
+
// Don't attempt to navigate to non-empty invalid URLs.
if (!dest_url.is_valid() && !dest_url.is_empty()) {
LOG(WARNING) << "Refusing to load invalid URL: "