W3C home > Mailing lists > Public > whatwg@whatwg.org > May 2012

Re: [whatwg] Make files attribute of the input element writable

From: Ojan Vafai <ojan@chromium.org>
Date: Wed, 23 May 2012 19:27:36 -0700
Message-ID: <CANMdWTv1wXF5EGnjGX3PUd9w2LutFvQUtRWDa6HU_a1ucOCOXA@mail.gmail.com>
To: Nico Weber <thakis@chromium.org>
Cc: whatwg@whatwg.org, Jonas Sicking <jonas@sicking.cc>
On Wed, May 23, 2012 at 7:11 PM, Nico Weber <thakis@chromium.org> wrote:

> On Wed, May 23, 2012 at 7:01 PM, Ojan Vafai <ojan@chromium.org> wrote:
> > On Tue, May 22, 2012 at 6:38 PM, Jonas Sicking <jonas@sicking.cc> wrote:
> >> I don't think simply marking the attribute as writable is the correct
> >> solution here. At the very least we should make it possible to assign
> >> a sequence<File> to the attribute such that you can do:
> >>
> >> myInput.files = [file1];
> >>
> >> But even a sequence<Blob> should be allowed IMO.
> >
> > Makes sense to me. Can we just kill FileList and always use File[] (or
> > "readonly File[]" for the readonly cases)? The only cases where this is
> used
> > in the HTML spec are file inputs and dataTransfer. We should make
> setting a
> > non-readonly T[] to a sequence<T> work across the platform IMO.
> >
> > Allowing setting a sequence<Blob> could be made to transparently work as
> a
> > followup, no? You should be able to just set myInput.files =
> myBlobSequence.
> > As Anne points out, it's unclear what the UI for this would be.
> Is the UI for an array of Files much clearer? With a FileList, the
> selected files were at some point selected by the user from a file
> explorer, so it's fairly likely that an input file picker knows how to
> display them. For a general File[] array, the files might be scattered
> in multiple directories. (And the step from writable FileList to
> File[] array could be done in a transparent follow-up too.)

The UI issue with Blob is that Blobs don't have a "name" property, so it's
unclear what you'd show the user.

This decision doesn't affect the UI for Files. The only difference between
FileList and File[] is that you can access the entries using by calling
item(index) in addition to square bracket notation. An alternative would be
to add a setItem method to FileList, but I've been trying to get rid of as
many gratuitous *List methods as possible from the platform. When a *List
method potentially adds value (as in the case of NodeList), it's ok, but
the platform is simpler for everyone if we don't have custom types
everywhere we have a list of things.

Most of these custom list types are just legacy from before WebIDL having
T[] and sequence<T>. You used to have to specify a custom type.

For reference:
FileList: http://dev.w3.org/2006/webapi/FileAPI/#dfn-filelist
File[]: http://www.w3.org/TR/WebIDL/#idl-array
Received on Thursday, 24 May 2012 02:28:27 UTC

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 16:59:42 UTC