Index: chrome/renderer/render_view.cc |
diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc |
index 48a3f621a6236a3ebf0658f46fdeecc9e6d5124b..48304f61e73e225da039197332486298172a8b39 100644 |
--- a/chrome/renderer/render_view.cc |
+++ b/chrome/renderer/render_view.cc |
@@ -5590,6 +5590,22 @@ void RenderView::zoomLevelChanged() { |
GURL(webview()->mainFrame()->url()))); |
} |
+void RenderView::registerProtocolHandler(const WebString& scheme, |
+ const WebString& base_url, |
+ const WebString& url, |
+ const WebString& title) { |
+ GURL base(base_url); |
+ GURL absolute_url = base.Resolve(UTF16ToUTF8(url)); |
+ if (base.GetOrigin() != absolute_url.GetOrigin()) { |
+ return; |
+ } |
+ RenderThread::current()->Send( |
+ new ViewHostMsg_RegisterProtocolHandler(routing_id_, |
+ UTF16ToUTF8(scheme), |
+ absolute_url, |
+ title)); |
+} |
+ |
bool RenderView::IsNonLocalTopLevelNavigation( |
const GURL& url, WebKit::WebFrame* frame, WebKit::WebNavigationType type) { |
// Must be a top level frame. |