W3C home > Mailing lists > Public > public-webapps@w3.org > October to December 2011

Re: [FileAPI] createObjectURL isReusable proposal

From: Simon Pieters <simonp@opera.com>
Date: Wed, 14 Dec 2011 07:41:12 +0100
To: "Web Applications Working Group WG (public-webapps@w3.org)" <public-webapps@w3.org>, "Adrian Bateman" <adrianba@microsoft.com>
Cc: "Feras Moussa" <ferasm@microsoft.com>
Message-ID: <op.v6gviye6idj3kv@simon-pieterss-macbook.local>
On Wed, 14 Dec 2011 01:52:04 +0100, Adrian Bateman  
<adrianba@microsoft.com> wrote:

> At TPAC [1,2] I described our proposal for adding an isReusable flag to
> createObjectURL. A common pattern we have seen is the need for a blob URL
> for a single use (for example, loading into an <img> element) and then
> revoking the URL. This requires a fair amount of boilerplate code to
> handle the load/error events.
>
> createObjectURL is modified as follows:
>
> static DOMString createObjectURL(Blob blob, [optional] bool isReusable);
>
> The value of isReusable defaults to true if it is not supplied and this
> results in the behaviour documented for File API today. However, if you
> supply false for the flag then the first dereference of the URL revokes  
> it.

Could the argument have inverted semantics? Optional arguments that  
default to true are a bit confusing. Usually omitted boolean arguments  
default to false.


> This means that you can do something like:
>
> imgElement.src = URL.createObjectURL(blob,false)
>
> and not worry about having to call URL.revokeObjectURL to release the  
> Blob.
>
> We have implemented this in experimental form in IE10 preview builds and
> it works well. There seemed to be a fair amount of support at TPAC and  
> we're
> hoping this will be adopted in the File API spec.
>
> Thanks,
>
> Adrian.
>
> [1] http://www.w3.org/2011/11/01-webapps-minutes.html#item02
> [2] http://pages.adrianba.net/w3c/FilesAndStreams.pdf
>
>


-- 
Simon Pieters
Opera Software
Received on Wednesday, 14 December 2011 06:44:12 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 18:49:49 GMT