<div dir="ltr"><div style="font-size:12.8000001907349px"><br class="">&gt;The custom protocol handler feature of the WebKit2 API is for the embedding native application to provide raw data to resource loads directly.</div><div style="font-size:12.8000001907349px">&gt;While tangentially related to how registerProtocolHandler would work for some uses, there’s numerous differences. </div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">If so, custom protocol handler feature is different with role of registerProtocolHandler. Thank you for your explanation about it.</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">&gt;One key example: Since it was implemented for the native embedding application (which is, of course, trusted) none of the normal web security concerns have been taken into account.</div><div style="font-size:12.8000001907349px">&gt;Also, since they’re for special-use native apps instead of a general web browser, none of Sam’s concerns had to be accounted for:</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">For more detailed scenario in addition to Brady&#39;s explanation, I consider below call sequence to use registerProtocolHandler.</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px"> 1. Custom scheme is registered by &quot;registeredProtocolHandler()&quot; in JS</div><div style="font-size:12.8000001907349px"> 2. The registered scheme will be filtering in WebCore. (If unsupported scheme is requested, security error happens.)</div><div style="font-size:12.8000001907349px"> 3. Filtered scheme will be passed to application side (of course, which is web browser or similar things)</div><div style="font-size:12.8000001907349px"> 4. The application will register passed custom scheme and a callback to call the native embedding application to WK2&#39;s network</div><div style="font-size:12.8000001907349px">     using &quot;custom protocol handler feature&quot;, which was implemented in WebKit2.&quot;</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">Thus, in my humble opinion, registerProtocolHandler will use the custom protocol instead of complicating it.</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">Gyuyoung.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jul 7, 2015 at 1:56 AM, Brady Eidson <span dir="ltr">&lt;<a href="mailto:beidson@apple.com" target="_blank">beidson@apple.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><span class=""><br><div><blockquote type="cite"><div>On Jul 1, 2015, at 7:42 PM, Gyuyoung Kim &lt;<a href="mailto:gyuyoung.kim@webkit.org" target="_blank">gyuyoung.kim@webkit.org</a>&gt; wrote:</div><br><div><div dir="ltr">WebKit2 already has a similar feature, which is so-called *custom protocol* enabled by Mac, Gtk and EFL ports. However the custom protocol feature supports to register custom scheme<div>through API layer instead of JavaScript. The registerProtocolHandler() is to support to register the custom scheme by means of JavaScript. I don&#39;t know yet why we can&#39;t support to register it</div><div>from JavaScript.</div></div></div></blockquote><br></div></span><div>The custom protocol handler feature of the WebKit2 API is for the embedding native application to provide raw data to resource loads directly.</div><div><br></div><div>While tangentially related to how registerProtocolHandler would work for some uses, there’s numerous differences. </div><div><br></div><div>One key example: Since it was implemented for the native embedding application (which is, of course, trusted) none of the normal web security concerns have been taken into account.</div><div><br></div><div>Also, since they’re for special-use native apps instead of a general web browser, none of Sam’s concerns had to be accounted for:</div><div><br></div><div><blockquote type="cite"><span class=""><div>On Jul 4, 2015, at 10:24 AM, Sam Weinig &lt;<a href="mailto:weinig@apple.com" target="_blank">weinig@apple.com</a>&gt; wrote:</div></span><div><span class=""><br>My concern with the registerProtocolHandler() API is that it complicates an already the very complicated area of custom protocols and a good implementation requires configuration UI (to choose which of potentially multiple apps/websites you want a specific protocol to go to) that I am not sure users are in the position make.  <br></span>...<span class=""><br>