summaryrefslogtreecommitdiffstats
path: root/content/browser/frame_host/navigation_controller_impl.cc
diff options
context:
space:
mode:
authorcreis@chromium.org <creis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-03 06:53:53 +0000
committercreis@chromium.org <creis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-03 06:53:53 +0000
commitc02f1bab5a382072c5488762038435a80dc10e67 (patch)
tree98874a50ce1c2626539c3ad445ac868ae9292105 /content/browser/frame_host/navigation_controller_impl.cc
parent99bd5430ee4598514a85fbdab5100c751bfacbff (diff)
downloadchromium_src-c02f1bab5a382072c5488762038435a80dc10e67.zip
chromium_src-c02f1bab5a382072c5488762038435a80dc10e67.tar.gz
chromium_src-c02f1bab5a382072c5488762038435a80dc10e67.tar.bz2
Fix bugs with renderer-side debug URLs, like chrome://crash or javascript:.
These URLs should not cause a process swap when leaving pages like extensions or view-source. Also, they should be ignored if the renderer process is not live. BUG=335503 BUG=334214 TEST=chrome://kill works on extensions and is ignored on crashed tabs. Review URL: https://codereview.chromium.org/151593004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248442 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/frame_host/navigation_controller_impl.cc')
-rw-r--r--content/browser/frame_host/navigation_controller_impl.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/content/browser/frame_host/navigation_controller_impl.cc b/content/browser/frame_host/navigation_controller_impl.cc
index c2ae947..b4f4cf1 100644
--- a/content/browser/frame_host/navigation_controller_impl.cc
+++ b/content/browser/frame_host/navigation_controller_impl.cc
@@ -642,6 +642,14 @@ void NavigationControllerImpl::LoadURLWithParams(const LoadURLParams& params) {
if (HandleDebugURL(params.url, params.transition_type))
return;
+ // Any renderer-side debug URLs or javascript: URLs should be ignored if the
+ // renderer process is not live.
+ if (IsRendererDebugURL(params.url)) {
+ // TODO(creis): Find the RVH for the correct frame.
+ if (!delegate_->GetRenderViewHost()->IsRenderViewLive())
+ return;
+ }
+
// Checks based on params.load_type.
switch (params.load_type) {
case LOAD_TYPE_DEFAULT: