1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 09:28:13 +00:00

LibWeb: Add an initial implementation for Web::FileAPI::FileReader

Some steps are still to be implemented, namely:
 * Properly aborting the read algorithm
 * Handling BinaryString type properly
 * Setting error on any error

But as it stands, this is enough functionality for the basic case of
reading the contents of a blob using the FileReader API.
This commit is contained in:
Shannon Booth 2023-09-09 13:29:01 +12:00 committed by Andrew Kaster
parent 47616210b6
commit 77d32fcb5f
7 changed files with 545 additions and 0 deletions

View file

@ -0,0 +1,35 @@
#import <DOM/EventTarget.idl>
#import <FileAPI/Blob.idl>
// https://w3c.github.io/FileAPI/#dfn-filereader
[Exposed=(Window,Worker)]
interface FileReader : EventTarget {
constructor();
// async read methods
undefined readAsArrayBuffer(Blob blob);
undefined readAsBinaryString(Blob blob);
undefined readAsText(Blob blob, optional DOMString encoding);
undefined readAsDataURL(Blob blob);
undefined 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 DOMException? error;
// event handler content attributes
attribute EventHandler onloadstart;
attribute EventHandler onprogress;
attribute EventHandler onload;
attribute EventHandler onabort;
attribute EventHandler onerror;
attribute EventHandler onloadend;
};