From 47a7d465fd93ac00055337d035d4c807e6f83b43 Mon Sep 17 00:00:00 2001 From: Zhen Zhang Date: Sun, 31 Jul 2016 00:23:56 +0200 Subject: [PATCH] Add FileReaderSync skeleton --- components/script/dom/filereadersync.rs | 34 +++++++++++++++++++ components/script/dom/mod.rs | 1 + .../script/dom/webidls/FileReaderSync.webidl | 15 ++++++++ .../FileAPI/FileReaderSync.worker.js.ini | 4 --- .../metadata/FileAPI/idlharness.worker.js.ini | 21 ------------ .../fetch/api/headers/headers-basic.html.ini | 1 + .../fetch/api/headers/headers-errors.html.ini | 1 + .../api/headers/headers-structure.html.ini | 1 + .../tests/mozilla/interfaces.worker.js | 1 + 9 files changed, 54 insertions(+), 25 deletions(-) create mode 100644 components/script/dom/filereadersync.rs create mode 100644 components/script/dom/webidls/FileReaderSync.webidl diff --git a/components/script/dom/filereadersync.rs b/components/script/dom/filereadersync.rs new file mode 100644 index 000000000000..b248848edadd --- /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 effc7f2c7612..a2112526228d 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 000000000000..cbc18a479215 --- /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 3e0c3c418dcb..249873f6547a 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 2123dd254f31..65c6bf4be786 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 c4943c982c10..16379eaa71aa 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 121fea81b51f..96439e158ec4 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 967cb42ecfd8..6c517acf6abf 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 77b60ad4384b..68d5cfbcedf5 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",