<html>
    <head>
      <base href="https://bugs.webkit.org/" />
    </head>
    <body><span class="vcard"><a class="email" href="mailto:danielo&#64;opera.com" title="Daniel &lt;danielo&#64;opera.com&gt;"> <span class="fn">Daniel</span></a>
</span> changed
              <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - WKWebView does not fully support custom NSURLProtocol"
   href="https://bugs.webkit.org/show_bug.cgi?id=138169">bug 138169</a>
        <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">CC</td>
           <td>
               &nbsp;
           </td>
           <td>danielo&#64;opera.com
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - WKWebView does not fully support custom NSURLProtocol"
   href="https://bugs.webkit.org/show_bug.cgi?id=138169#c15">Comment # 15</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - WKWebView does not fully support custom NSURLProtocol"
   href="https://bugs.webkit.org/show_bug.cgi?id=138169">bug 138169</a>
              from <span class="vcard"><a class="email" href="mailto:danielo&#64;opera.com" title="Daniel &lt;danielo&#64;opera.com&gt;"> <span class="fn">Daniel</span></a>
</span></b>
        <pre>Hello guys,

Following up the discussion:
<a href="https://lists.webkit.org/pipermail/webkit-dev/2016-May/thread.html#28241">https://lists.webkit.org/pipermail/webkit-dev/2016-May/thread.html#28241</a>
I'd like to share some use cases I have for this feature.

Opera on iOS implements a custom HTTP(S) protocol to do:
1. Data savings (see <a href="http://www.opera.com/turbo">http://www.opera.com/turbo</a> ). This greatly improves connectivity under crappy network conditions for millions of users. It's especially important for people in countries which can only dream about 4G.
2. Peer-to-peer inobtrusive security. For that we collect bits of site security information that is only available via low-level network APIs.
3. Presenting sites as icons (and grouping multiple pages into the same icons). For that we hook into the HTML data stream to parse meta data ASAP. In addition we intercept and react on HTTP redirects. This is a part of the <a href="http://operacoast.com">http://operacoast.com</a> app identity.
4. Progress loading reporting, automatic retries on bad networks. For that we do traffic QoS monitoring.
5. Fast going back and offline content. That is controlled partially by a custom cache, and partially in NSURLProtocol.
6. Ad-blocking.

Almost all of what Stefan Arentz says and other mentioned applies to us as well, as the need for: untrusted resources blocking, custom cache, content preloading, certificate pinning, HSTS.

With that said, it's so important feature to have for my team that
we are staying with WebKit1 for now.

See also:
<a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED INVALID - POST form data is missing with a custom NSURLProtocol"
   href="show_bug.cgi?id=137299">https://bugs.webkit.org/show_bug.cgi?id=137299</a>
<a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - location.href is not updated on a redirect with a custom protocol"
   href="show_bug.cgi?id=137302">https://bugs.webkit.org/show_bug.cgi?id=137302</a>
<a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - File uploads not working with a custom NSURLProtocol"
   href="show_bug.cgi?id=138131">https://bugs.webkit.org/show_bug.cgi?id=138131</a></pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>