Re: How to get a FileWriter/BlobWriter/BlobSaver

On Thu, Jul 1, 2010 at 3:31 PM, Eric Uhrhane <ericu@google.com> wrote:
> The biggest unknown in the current BlobWriter spec [1] is how you
> obtain one in the first place.
> There are two current proposals, which I've summarized below.  I've
> heard only a few voices on this topic, and would love to get more
> opinions.  New proposals would be welcome as well.
>
> If you favor one of the below, and don't think I've done it justice,
> please do weigh in with further details.
>
>
> Proposal A: a new input control.
>
> You'd add markup such as <input type=saveas> or <button type=saveas>.
> It could be styled however you please; it would pop up a standard
> File-SaveAs dialog, so there's no security problem there.  You'd
> handle the event when the user selects a save location in order to
> grab the BlobWriter.
>
> Pluses:
>  It parallels <input type=file>.
>  It's user-initiated, so the default flow doesn't ever surprise the
> user with a popup.
>
>
> Proposal B: a new method on Window.
>
> window.saveAs(function(blobWriter) { /* grab the writer and use it
> */}, function(error) {...});
>
> Pluses:
>  It's a simple async API like many others we provide.
>  App developers are free to provide any UI or control flow they like.
>
>
> In either case, we could add a parameter for the Blob, so that the
> system knows what it's saving, and/or a suggested mime-type and base
> name.  Adding the Blob itself would let us eliminate the
> writeFile()/save() call mentioned in [2], so that you'd only grab the
> returned BlobWriter if you wanted to handle the progress events.

I'm not a fan of the <input type=saveas> solution. In part because no
actual input is occurring. If we really want something like that then
I think reviving the old <bb> element is the way to go.

However what I really think we should do is to provide some API which
given a blob and an optional filename, asynchronously returns an
object at which progress events are fired and which has an abort()
function. I don't care much if this function lives on a new object,
a'la SimpleFileWriter, or if it's added to something like the
Navigator object.

/ Jonas

Received on Saturday, 3 July 2010 03:20:41 UTC