Index: content/browser/web_contents/web_contents_impl.cc |
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc |
index 728b454e9d45003f565d4a16d06b24ab878c12ea..ee358749597d224dfd63a681676c31317d3a080f 100644 |
--- a/content/browser/web_contents/web_contents_impl.cc |
+++ b/content/browser/web_contents/web_contents_impl.cc |
@@ -534,6 +534,8 @@ bool WebContentsImpl::OnMessageReceived(RenderViewHost* render_view_host, |
IPC_MESSAGE_HANDLER(ViewHostMsg_EnumerateDirectory, OnEnumerateDirectory) |
IPC_MESSAGE_HANDLER(ViewHostMsg_RegisterProtocolHandler, |
OnRegisterProtocolHandler) |
+ IPC_MESSAGE_HANDLER(ViewHostMsg_UnregisterProtocolHandler, |
+ OnUnregisterProtocolHandler) |
IPC_MESSAGE_HANDLER(ViewHostMsg_Find_Reply, OnFindReply) |
IPC_MESSAGE_HANDLER(ViewHostMsg_AppCacheAccessed, OnAppCacheAccessed) |
IPC_MESSAGE_HANDLER(ViewHostMsg_WebUISend, OnWebUISend) |
@@ -2757,6 +2759,20 @@ void WebContentsImpl::OnRegisterProtocolHandler(const std::string& protocol, |
delegate_->RegisterProtocolHandler(this, protocol, url, user_gesture); |
} |
+void WebContentsImpl::OnUnregisterProtocolHandler(const std::string& protocol, |
+ const GURL& url, |
+ bool user_gesture) { |
+ if (!delegate_) |
+ return; |
+ |
+ ChildProcessSecurityPolicyImpl* policy = |
jochen (gone - plz use gerrit)
2014/07/09 09:12:56
please clang-format this
gyuyoung-inactive
2014/07/09 09:32:16
Done.
|
+ ChildProcessSecurityPolicyImpl::GetInstance(); |
+ if (policy->IsPseudoScheme(protocol)) |
+ return; |
+ |
+ delegate_->UnregisterProtocolHandler(this, protocol, url, user_gesture); |
+} |
+ |
void WebContentsImpl::OnFindReply(int request_id, |
int number_of_matches, |
const gfx::Rect& selection_rect, |