| [Constructor, |
| Constructor(sequence<(ArrayBuffer or ArrayBufferView or Blob or DOMString)> blobParts, optional BlobPropertyBag options), Exposed=Window,Worker] |
| interface Blob { |
| |
| readonly attribute unsigned long long size; |
| readonly attribute DOMString type; |
| readonly attribute boolean isClosed; |
| |
| //slice Blob into byte-ranged chunks |
| |
| Blob slice([Clamp] optional long long start, |
| [Clamp] optional long long end, |
| optional DOMString contentType); |
| void close(); |
| |
| }; |
| |
| dictionary BlobPropertyBag { |
| DOMString type = ""; |
| }; |
| |
| [Constructor(sequence<(Blob or DOMString or ArrayBufferView or ArrayBuffer)> fileBits, |
| [EnsureUTF16] DOMString fileName, optional FilePropertyBag options), Exposed=Window,Worker] |
| interface File : Blob { |
| |
| readonly attribute DOMString name; |
| readonly attribute long long lastModified; |
| |
| }; |
| |
| dictionary FilePropertyBag { |
| |
| DOMString type = ""; |
| long long lastModified; |
| |
| }; |
| |
| [Exposed=Window,Worker] interface FileList { |
| getter File? item(unsigned long index); |
| readonly attribute unsigned long length; |
| }; |
| |
| [Constructor, Exposed=Window,Worker] |
| interface FileReader: EventTarget { |
| |
| // async read methods |
| void readAsArrayBuffer(Blob blob); |
| void readAsText(Blob blob, optional DOMString label); |
| void readAsDataURL(Blob blob); |
| |
| void abort(); |
| |
| // states |
| const unsigned short EMPTY = 0; |
| const unsigned short LOADING = 1; |
| const unsigned short DONE = 2; |
| |
| readonly attribute unsigned short readyState; |
| |
| // File or Blob data |
| readonly attribute (DOMString or ArrayBuffer)? result; |
| |
| readonly attribute DOMError? error; |
| |
| // event handler attributes |
| attribute EventHandler onloadstart; |
| attribute EventHandler onprogress; |
| attribute EventHandler onload; |
| attribute EventHandler onabort; |
| attribute EventHandler onerror; |
| attribute EventHandler onloadend; |
| |
| }; |
| |
| partial interface URL { |
| |
| static DOMString createObjectURL(Blob blob); |
| static DOMString createFor(Blob blob); |
| static void revokeObjectURL(DOMString url); |
| |
| }; |