| Index: chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc
|
| diff --git a/chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc b/chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc
|
| index cbccea389687ba2bf3b19ea9876b0f3f3d778a53..fae7d1eb702d0d684cdcd3026ecbf43a5467eefc 100644
|
| --- a/chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc
|
| +++ b/chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc
|
| @@ -511,8 +511,13 @@ bool ChromeResourceDispatcherHostDelegate::HandleExternalProtocol(
|
| ui::PageTransition page_transition,
|
| bool has_user_gesture) {
|
| #if defined(ENABLE_EXTENSIONS)
|
| - if (extensions::WebViewRendererState::GetInstance()->IsGuest(child_id))
|
| + // External protocols are disabled for guests. An exception is made for the
|
| + // "mailto" protocol, so that pages that utilize it work properly in a
|
| + // WebView.
|
| + if (extensions::WebViewRendererState::GetInstance()->IsGuest(child_id) &&
|
| + !url.SchemeIs(url::kMailToScheme)) {
|
| return false;
|
| + }
|
| #endif // defined(ENABLE_EXTENSIONS)
|
|
|
| #if defined(OS_ANDROID)
|
|
|