| 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 094ad36d1d50d83749d9d5bfccd19cdb8e1cf1c6..1720cb44df05ce9e2848c8e7a28c7d61f73124f5 100644
|
| --- a/chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc
|
| +++ b/chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc
|
| @@ -526,8 +526,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)
|
|
|