diff --git a/components/script/dom/filereadersync.rs b/components/script/dom/filereadersync.rs new file mode 100644 index 00000000000..b248848edad --- /dev/null +++ b/components/script/dom/filereadersync.rs @@ -0,0 +1,34 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +use dom::bindings::codegen::Bindings::FileReaderSyncBinding; +use dom::bindings::error::Fallible; +use dom::bindings::global::GlobalRef; +use dom::bindings::js::Root; +use dom::bindings::reflector::reflect_dom_object; +use dom::eventtarget::EventTarget; + + + +#[dom_struct] +pub struct FileReaderSync { + eventtarget: EventTarget +} + +impl FileReaderSync { + pub fn new_inherited() -> FileReaderSync { + FileReaderSync { + eventtarget: EventTarget::new_inherited(), + } + } + + pub fn new(global: GlobalRef) -> Root { + reflect_dom_object(box FileReaderSync::new_inherited(), + global, FileReaderSyncBinding::Wrap) + } + + pub fn Constructor(global: GlobalRef) -> Fallible> { + Ok(FileReaderSync::new(global)) + } +} diff --git a/components/script/dom/mod.rs b/components/script/dom/mod.rs index effc7f2c761..a2112526228 100644 --- a/components/script/dom/mod.rs +++ b/components/script/dom/mod.rs @@ -265,6 +265,7 @@ pub mod eventtarget; pub mod file; pub mod filelist; pub mod filereader; +pub mod filereadersync; pub mod focusevent; pub mod forcetouchevent; pub mod formdata; diff --git a/components/script/dom/webidls/FileReaderSync.webidl b/components/script/dom/webidls/FileReaderSync.webidl new file mode 100644 index 00000000000..cbc18a47921 --- /dev/null +++ b/components/script/dom/webidls/FileReaderSync.webidl @@ -0,0 +1,15 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +// https://w3c.github.io/FileAPI/#FileReaderSync + +[Constructor, Exposed=Worker] +interface FileReaderSync { + // Synchronously return strings + + // ArrayBuffer readAsArrayBuffer(Blob blob); + // DOMString readAsBinaryString(Blob blob); + // DOMString readAsText(Blob blob, optional DOMString label); + // DOMString readAsDataURL(Blob blob); +}; diff --git a/tests/wpt/metadata/FileAPI/FileReaderSync.worker.js.ini b/tests/wpt/metadata/FileAPI/FileReaderSync.worker.js.ini index 3e0c3c418dc..249873f6547 100644 --- a/tests/wpt/metadata/FileAPI/FileReaderSync.worker.js.ini +++ b/tests/wpt/metadata/FileAPI/FileReaderSync.worker.js.ini @@ -1,9 +1,5 @@ [FileReaderSync.worker] type: testharness - expected: ERROR - [Interface] - expected: FAIL - [readAsText] expected: FAIL diff --git a/tests/wpt/metadata/FileAPI/idlharness.worker.js.ini b/tests/wpt/metadata/FileAPI/idlharness.worker.js.ini index 2123dd254f3..65c6bf4be78 100644 --- a/tests/wpt/metadata/FileAPI/idlharness.worker.js.ini +++ b/tests/wpt/metadata/FileAPI/idlharness.worker.js.ini @@ -12,18 +12,6 @@ [FileReader interface: calling readAsArrayBuffer(Blob) on new FileReader() with too few arguments must throw TypeError] expected: FAIL - [FileReaderSync interface: existence and properties of interface object] - expected: FAIL - - [FileReaderSync interface object length] - expected: FAIL - - [FileReaderSync interface: existence and properties of interface prototype object] - expected: FAIL - - [FileReaderSync interface: existence and properties of interface prototype object's "constructor" property] - expected: FAIL - [FileReaderSync interface: operation readAsArrayBuffer(Blob)] expected: FAIL @@ -33,12 +21,6 @@ [FileReaderSync interface: operation readAsDataURL(Blob)] expected: FAIL - [FileReaderSync must be primary interface of new FileReaderSync()] - expected: FAIL - - [Stringification of new FileReaderSync()] - expected: FAIL - [FileReaderSync interface: new FileReaderSync() must inherit property "readAsArrayBuffer" with the proper type (0)] expected: FAIL @@ -57,9 +39,6 @@ [FileReaderSync interface: calling readAsDataURL(Blob) on new FileReaderSync() with too few arguments must throw TypeError] expected: FAIL - [FileReaderSync interface object name] - expected: FAIL - [Window interface: existence and properties of interface object] expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/headers/headers-basic.html.ini b/tests/wpt/metadata/fetch/api/headers/headers-basic.html.ini index c4943c982c1..16379eaa71a 100644 --- a/tests/wpt/metadata/fetch/api/headers/headers-basic.html.ini +++ b/tests/wpt/metadata/fetch/api/headers/headers-basic.html.ini @@ -41,3 +41,4 @@ [Check forEach method] expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/headers/headers-errors.html.ini b/tests/wpt/metadata/fetch/api/headers/headers-errors.html.ini index 121fea81b51..96439e158ec 100644 --- a/tests/wpt/metadata/fetch/api/headers/headers-errors.html.ini +++ b/tests/wpt/metadata/fetch/api/headers/headers-errors.html.ini @@ -5,3 +5,4 @@ [Headers forEach loop should stop if callback is throwing exception] expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/headers/headers-structure.html.ini b/tests/wpt/metadata/fetch/api/headers/headers-structure.html.ini index 967cb42ecfd..6c517acf6ab 100644 --- a/tests/wpt/metadata/fetch/api/headers/headers-structure.html.ini +++ b/tests/wpt/metadata/fetch/api/headers/headers-structure.html.ini @@ -9,3 +9,4 @@ [Headers has values method] expected: FAIL + diff --git a/tests/wpt/mozilla/tests/mozilla/interfaces.worker.js b/tests/wpt/mozilla/tests/mozilla/interfaces.worker.js index 77b60ad4384..68d5cfbcedf 100644 --- a/tests/wpt/mozilla/tests/mozilla/interfaces.worker.js +++ b/tests/wpt/mozilla/tests/mozilla/interfaces.worker.js @@ -41,6 +41,7 @@ test_interfaces([ "File", "FileList", "FileReader", + "FileReaderSync", "FocusEvent", "FormData", "HashChangeEvent",