Index: chrome/browser/chrome_content_browser_client.cc |
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc |
index cf63aa7cf1ec233a8427de64bbba0c5e8ce9d4c0..0c15c4634cae01e2ea326529239a6b5c5523d6b1 100644 |
--- a/chrome/browser/chrome_content_browser_client.cc |
+++ b/chrome/browser/chrome_content_browser_client.cc |
@@ -1053,8 +1053,11 @@ bool ChromeContentBrowserClient::ShouldAllowOpenURL( |
#endif |
// Do not allow chrome://chrome-signin navigate to other chrome:// URLs, since |
- // the signin page may host untrusted web content. |
- if (from_url.GetOrigin().spec() == chrome::kChromeUIChromeSigninURL && |
+ // the signin page may host untrusted web content when <webview>-based signin |
+ // is not enabled. In the <webview> case, untrusted content is out-of-process |
+ // and cannot navigate to chrome:// URLs. |
+ if (!switches::IsEnableWebviewBasedSignin() && |
Charlie Reis
2015/02/04 22:02:57
I'm still hesitant to change this. It sounds like
|
+ from_url.GetOrigin().spec() == chrome::kChromeUIChromeSigninURL && |
url.SchemeIs(content::kChromeUIScheme) && |
url.host() != chrome::kChromeUIChromeSigninHost) { |
VLOG(1) << "Blocked navigation to " << url.spec() << " from " |