diff options
author | creis@chromium.org <creis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-03 06:53:53 +0000 |
---|---|---|
committer | creis@chromium.org <creis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-03 06:53:53 +0000 |
commit | c02f1bab5a382072c5488762038435a80dc10e67 (patch) | |
tree | 98874a50ce1c2626539c3ad445ac868ae9292105 /content/browser/frame_host/navigation_controller_impl.cc | |
parent | 99bd5430ee4598514a85fbdab5100c751bfacbff (diff) | |
download | chromium_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.cc | 8 |
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: |