| Index: content/browser/frame_host/render_frame_host_manager.cc
|
| diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc
|
| index 6de0f24d8ae81b9428617f5287e1fd7fc76a9562..c8e666e33a8f7b63939b7b889c6a660a9d90861f 100644
|
| --- a/content/browser/frame_host/render_frame_host_manager.cc
|
| +++ b/content/browser/frame_host/render_frame_host_manager.cc
|
| @@ -1507,11 +1507,15 @@ bool RenderFrameHostManager::IsRendererTransferNeededForNavigation(
|
| if (rfh->GetSiteInstance()->GetSiteURL().SchemeIs(kGuestScheme))
|
| return false;
|
|
|
| - // Don't swap processes for extensions embedded in DevTools. See
|
| - // https://crbug.com/564216.
|
| + // Don't swap processes for extensions embedded in DevTools, except for
|
| + // external navigations in iframes. See https://crbug.com/564216.
|
| +
|
| if (rfh->GetSiteInstance()->GetSiteURL().SchemeIs(kChromeDevToolsScheme)) {
|
| - // TODO(nick): https://crbug.com/570483 Check to see if |dest_url| is a
|
| - // devtools extension, and swap processes if not.
|
| + // TODO(davidsac): add more unsafe schemes, or restrict scheme by default
|
| + if (dest_url.SchemeIs(url::kHttpScheme) ||
|
| + dest_url.SchemeIs(url::kHttpsScheme)) {
|
| + return true;
|
| + }
|
| return false;
|
| }
|
|
|
|
|