On Tue, Sep 14, 2010 at 5:42 PM, Adam Barth <span dir="ltr">&lt;<a href="mailto:abarth@webkit.org" target="_blank">abarth@webkit.org</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

What do you think of the idea of having a re-useable BlobCore module<br>
that all the ports can share?<br></blockquote><div><br></div><div>I don&#39;t think this is a good idea. This &quot;re-usable module&quot; would only be used by the Safari WebKit port. As I understand it, Chromium wouldn&#39;t be able to re-use it due to not re-using WebKit types in general. With only one port using it, the module seems like it would not be able to have a good design.</div>

<div><br></div><div>So if there is a change, it seems better to just write it for the Safari WebKit port and as other ports want to implement it, if they find commonality, it would be in their best interest to refractor the existing code for better re-use.</div>

<div><br></div><div>dave</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Adam<br>
<div><div></div><div><br>
<br>
On Tue, Sep 14, 2010 at 5:39 PM, Jian Li &lt;<a href="mailto:jianli@chromium.org" target="_blank">jianli@chromium.org</a>&gt; wrote:<br>
&gt; When I implemented the blob scheme handling, I intentionally tried to have<br>
&gt; some common implementation that could be used by all applicable platforms.<br>
&gt; But it seems that introducing BlobResourceHandle derived from ResourceHandle<br>
&gt; might not be a good hook up point because ResourceHandle is only a wrapper<br>
&gt; around the platform loading logics.<br>
&gt; To fix this problem, I can move all the blob handling logic to the platform<br>
&gt; specific layer (for WebKit mac) and it is up to other individual platform to<br>
&gt; implement it when needed.<br>
&gt; Jian<br>
&gt;<br>
&gt; On Tue, Sep 14, 2010 at 5:22 PM, Adam Barth &lt;<a href="mailto:abarth@webkit.org" target="_blank">abarth@webkit.org</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Jian Li just had a conversation in #webkit about where the code for<br>
&gt;&gt; implementing the Blob URL scheme should live.  I thought I&#39;d open the<br>
&gt;&gt; discussion to webkit-dev in case folks had a different perspective.<br>
&gt;&gt;<br>
&gt;&gt; As part of the fileapi, we&#39;re introducing a new URL scheme, called<br>
&gt;&gt; blob, which represents a bucket of bits, usually from a file, but<br>
&gt;&gt; potentially from another location.  Assigning these objects URL is<br>
&gt;&gt; helpful because then they integrate with the rest of the web platform.<br>
&gt;&gt;  For example, you can use them as images via the &lt;img&gt; element or<br>
&gt;&gt; videos via the &lt;video&gt; element, etc.<br>
&gt;&gt;<br>
&gt;&gt; Currently, the blob URL scheme is implemented with a subclass of<br>
&gt;&gt; ResourceHandle (our primary network abstraction) called<br>
&gt;&gt; BlobResourceHandle.  My sense is that this isn&#39;t the right place in<br>
&gt;&gt; the architecture to add support for the blob URL scheme.  The issue is<br>
&gt;&gt; that each port has a table somewhere that maps URL schemes to<br>
&gt;&gt; networking backends.  In Chromium, for example, that mapping is<br>
&gt;&gt; provided by URLRequestFactory, which lives in the &quot;net&quot; module.  By<br>
&gt;&gt; implementing the blob URL scheme at the ResourceHandle layer, we&#39;re<br>
&gt;&gt; short-circuiting that table.<br>
&gt;&gt;<br>
&gt;&gt; In some sense, this is analogous to adding an HTTPResourceHandle and<br>
&gt;&gt; implementing the HTTP protocol inside of WebCore.  While its true that<br>
&gt;&gt; most (all?) users of WebKit will need to wire WebCore up to an HTTP<br>
&gt;&gt; library, that doesn&#39;t necessarily mean that WebCore should contain an<br>
&gt;&gt; implementation of the HTTP protocol.  In the same way, even if a large<br>
&gt;&gt; number of WebKit users will wish to support the blob URL scheme, that<br>
&gt;&gt; doesn&#39;t necessarily mean that WebCore should contain an implementation<br>
&gt;&gt; of the scheme.<br>
&gt;&gt;<br>
&gt;&gt; I can certainly see the appeal of sharing the blob URL implementation<br>
&gt;&gt; code between different ports of WebKit, but we can achieve that goal<br>
&gt;&gt; in a number of ways, including creating an external library or a<br>
&gt;&gt; separate BlobCore module.<br>
&gt;&gt;<br>
&gt;&gt; Adam<br>
&gt;<br>
&gt;<br>
</div></div>_______________________________________________<br>
webkit-dev mailing list<br>
<a href="mailto:webkit-dev@lists.webkit.org" target="_blank">webkit-dev@lists.webkit.org</a><br>
<a href="http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev" target="_blank">http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev</a><br>
</blockquote></div><br>