| Index: chrome/browser/tab_contents/render_view_host_manager.cc
|
| diff --git a/chrome/browser/tab_contents/render_view_host_manager.cc b/chrome/browser/tab_contents/render_view_host_manager.cc
|
| index 888354030b8038d9dc3ddfb2085292aadcc0aa69..664b7f50e94ca0ee1fa2c3f9bbf8bf4b9149002d 100644
|
| --- a/chrome/browser/tab_contents/render_view_host_manager.cc
|
| +++ b/chrome/browser/tab_contents/render_view_host_manager.cc
|
| @@ -310,9 +310,15 @@ bool RenderViewHostManager::ShouldSwapProcessesForNavigation(
|
| // For security, we should transition between processes when one is a DOM UI
|
| // page and one isn't.
|
| Profile* profile = delegate_->GetControllerForRenderManager().profile();
|
| - if (DOMUIFactory::UseDOMUIForURL(profile, cur_entry->url()) !=
|
| - DOMUIFactory::UseDOMUIForURL(profile, new_entry->url()))
|
| - return true;
|
| + if (DOMUIFactory::UseDOMUIForURL(profile, cur_entry->url())) {
|
| + // Force swap if it's not an acceptable URL for DOM UI.
|
| + if (!DOMUIFactory::IsURLAcceptableForDOMUI(profile, new_entry->url()))
|
| + return true;
|
| + } else {
|
| + // Force swap if it's a DOM UI URL.
|
| + if (DOMUIFactory::UseDOMUIForURL(profile, new_entry->url()))
|
| + return true;
|
| + }
|
|
|
| // Also, we must switch if one is an extension and the other is not the exact
|
| // same extension.
|
|
|