Index: content/browser/frame_host/navigator_impl.cc |
diff --git a/content/browser/frame_host/navigator_impl.cc b/content/browser/frame_host/navigator_impl.cc |
index da20883c6e642b56622b01c281bc649c558dacfc..88db45548466d37fc2fe781e53b7389c6a8fe2e9 100644 |
--- a/content/browser/frame_host/navigator_impl.cc |
+++ b/content/browser/frame_host/navigator_impl.cc |
@@ -292,6 +292,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: " |