File API automated IDL tests
interface ArrayBuffer {
};
interface ArrayBufferView {
};
interface URL {
};
interface EventTarget {
};
interface Event {
};
[TreatNonCallableAsNull]
callback EventHandlerNonNull = any (Event event);
typedef EventHandlerNonNull? EventHandler;
interface FileList {
getter File? item(unsigned long index);
readonly attribute unsigned long length;
};
[Constructor,
Constructor(sequence<(ArrayBuffer or ArrayBufferView or Blob or DOMString)> blobParts, optional BlobPropertyBag options)]
interface Blob {
readonly attribute unsigned long long size;
readonly attribute DOMString type;
//slice Blob into byte-ranged chunks
Blob slice(optional long long start,
optional long long end,
optional DOMString contentType);
void close();
};
dictionary BlobPropertyBag {
DOMString type = "";
};
[Constructor(Blob fileBits, DOMString fileName)]
interface File : Blob {
readonly attribute DOMString name;
readonly attribute Date lastModifiedDate;
};
[Constructor]
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 DOMString? createFor()Blob blob);
static void revokeObjectURL(DOMString url);
};