From cdf1370014b9278a17f432c4a7cc9ccac4752805 Mon Sep 17 00:00:00 2001 From: farodin91 Date: Mon, 25 May 2015 19:23:55 +0200 Subject: [PATCH 01/25] Implement the structure - FileReader #6172 --- components/script/dom/eventtarget.rs | 1 + components/script/dom/filereader.rs | 196 ++++++++++++++++++ components/script/dom/mod.rs | 1 + .../script/dom/webidls/FileReader.webidl | 42 ++++ .../wpt/metadata/FileAPI/fileReader.html.ini | 12 -- .../wpt/metadata/FileAPI/idlharness.html.ini | 125 +---------- ...leReader-event-handler-attributes.html.ini | 18 -- .../FileReader-multiple-reads.html.ini | 8 +- .../filereader_abort.html.ini | 6 - .../filereader_error.html.ini | 3 - .../filereader_readAsText.html.ini | 6 - .../filereader_readystate.html.ini | 5 +- .../filereader_result.html.ini | 8 +- 13 files changed, 244 insertions(+), 187 deletions(-) create mode 100644 components/script/dom/filereader.rs create mode 100644 components/script/dom/webidls/FileReader.webidl diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs index 01e436c9743c..5e9509550d7a 100644 --- a/components/script/dom/eventtarget.rs +++ b/components/script/dom/eventtarget.rs @@ -47,6 +47,7 @@ pub enum EventTargetTypeId { WebSocket, Window, Worker, + FileReader, WorkerGlobalScope(WorkerGlobalScopeTypeId), XMLHttpRequestEventTarget(XMLHttpRequestEventTargetTypeId) } diff --git a/components/script/dom/filereader.rs b/components/script/dom/filereader.rs new file mode 100644 index 000000000000..6fef0eeab982 --- /dev/null +++ b/components/script/dom/filereader.rs @@ -0,0 +1,196 @@ +//use dom::bindings::codegen::UnionTypes; +use dom::bindings::codegen::Bindings::FileReaderBinding; +use dom::bindings::codegen::Bindings::FileReaderBinding::{FileReaderConstants, FileReaderMethods}; +use dom::bindings::codegen::InheritTypes::{EventCast, EventTargetCast}; +use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull; +use dom::bindings::error::Fallible; +use dom::bindings::global::{GlobalRef, GlobalField}; +use dom::bindings::js::{JS, JSRef, Temporary, Rootable}; +use dom::bindings::refcounted::Trusted; +use dom::bindings::utils::reflect_dom_object; +use dom::event::{Event, EventBubbles, EventCancelable, EventHelpers}; +use dom::eventtarget::{EventTarget, EventTargetHelpers, EventTargetTypeId}; +use dom::blob::Blob; +use dom::domexception::DOMException; +use script_task::Runnable; +use script_task::ScriptMsg; +use std::cell::{Cell, RefCell}; +use util::str::DOMString; + +#[repr(u16)] +#[derive(Copy, Clone, Debug)] +#[jstraceable] +pub enum FileReaderReadyState { + Empty = FileReaderConstants::EMPTY, + Loading = FileReaderConstants::LOADING, + Done = FileReaderConstants::DONE, +} + +#[dom_struct] +pub struct FileReader { + eventtarget: EventTarget, + global: GlobalField, + ready_state: Cell, + error: RefCell>, + result: RefCell> + //result: Option +} + + +impl FileReader { + fn new_inherited(global: GlobalRef, state: FileReaderReadyState) -> FileReader { + FileReader { + eventtarget: EventTarget::new_inherited(EventTargetTypeId::FileReader),//? + global: GlobalField::from_rooted(&global), + ready_state: Cell::new(state), + error: RefCell::new(None), + result: RefCell::new(None), + } + } + + pub fn new(global: GlobalRef, state: FileReaderReadyState) -> Temporary { + reflect_dom_object(box FileReader::new_inherited( global,state), + global, FileReaderBinding::Wrap) + } + + pub fn Constructor(global: GlobalRef) -> Fallible> { + Ok(FileReader::new(global,FileReaderReadyState::Empty)) + } +} + +impl<'a> FileReaderMethods for JSRef<'a, FileReader> { + event_handler!(loadstart, GetOnloadstart, SetOnloadstart); + event_handler!(progress, GetOnprogress, SetOnprogress); + event_handler!(load, GetOnload, SetOnload); + event_handler!(abort, GetOnabort, SetOnabort); + event_handler!(error, GetOnerror, SetOnerror); + event_handler!(loadend, GetOnloadend, SetOnloadend); + + /*fn ReadAsArrayBuffer(self,blob: JSRef){ + + }*/ + + fn ReadAsText(self,blob: JSRef,label:Option){ + if self.ready_state.get() as u16 == FileReaderReadyState::Loading as u16 {//1. ReadAsText + //throw DOMException + } + + + self.ready_state.set(FileReaderReadyState::Loading);//3. ReadAsText + + let global_root = self.global.root(); + let addr: Trusted = Trusted::new(global_root.r().get_cx(), self, global_root.r().script_chan().clone()); + let open_task = box FileReaderTaskHandler::new(addr.clone(), FileReaderTask::Open); + global_root.r().script_chan().send(ScriptMsg::RunnableMsg(open_task)).unwrap();//4. ReadAsText + + + } + + fn ReadAsDataURL(self,blob: JSRef){ + + } + + fn Abort(self){ + let global = self.global.root(); + + if self.ready_state.get() as u16 == FileReaderReadyState::Loading as u16 { + self.ready_state.set(FileReaderReadyState::Done); + } + + *self.result.borrow_mut() = None; + + //end tasks ? + + //terminate reading alg + + let event = Event::new(global.r(), "abort".to_owned(), + EventBubbles::DoesNotBubble, + EventCancelable::NotCancelable).root(); + let target: JSRef = EventTargetCast::from_ref(self); + event.r().fire(target); + + let event = Event::new(global.r(), "loadend".to_owned(), + EventBubbles::DoesNotBubble, + EventCancelable::NotCancelable).root(); + let target: JSRef = EventTargetCast::from_ref(self); + event.r().fire(target); + + } + + fn GetError(self) -> Option>{ + return None; + } + + fn GetResult(self) -> Option{ + return None; + } + + fn ReadyState(self) -> u16{ + return self.ready_state.get() as u16; + } + +} + + +pub enum FileReaderTask { + Open, + Close, +} + +pub struct FileReaderTaskHandler { + addr: Trusted, + task: FileReaderTask, +// blob: Blob +} + +impl FileReaderTaskHandler { + pub fn new(addr: Trusted, task: FileReaderTask) -> FileReaderTaskHandler { + FileReaderTaskHandler { + addr: addr, + task: task + } + } + + fn dispatch_open(&self) { + let fr = self.addr.to_temporary().root(); //Get root + let fr = fr.r(); //Get filereader reference + let global = fr.global.root(); + + let event = Event::new(global.r(),//6.ReadAsText + "loadstart".to_owned(), + EventBubbles::DoesNotBubble, + EventCancelable::NotCancelable).root(); + let target: JSRef = EventTargetCast::from_ref(fr); + event.r().fire(target); + + let event = Event::new(global.r(),//7.ReadAsText + "progress".to_owned(), + EventBubbles::DoesNotBubble, + EventCancelable::NotCancelable).root(); + let target: JSRef = EventTargetCast::from_ref(fr); + event.r().fire(target); + + + } + + fn dispatch_close(&self) { + let fr = self.addr.to_temporary().root(); //Get root + let fr = fr.r(); //Get filereader reference + let global = fr.global.root(); + + } +} + +impl Runnable for FileReaderTaskHandler { + fn handler(self: Box) { + match self.task { + FileReaderTask::Open => { + self.dispatch_open(); + } + FileReaderTask::Close => { + self.dispatch_close(); + } + } + } +} + diff --git a/components/script/dom/mod.rs b/components/script/dom/mod.rs index e693b1f70dea..870f19d2e24d 100644 --- a/components/script/dom/mod.rs +++ b/components/script/dom/mod.rs @@ -225,6 +225,7 @@ pub mod event; pub mod eventdispatcher; pub mod eventtarget; pub mod file; +pub mod filereader; pub mod formdata; pub mod htmlanchorelement; pub mod htmlappletelement; diff --git a/components/script/dom/webidls/FileReader.webidl b/components/script/dom/webidls/FileReader.webidl new file mode 100644 index 000000000000..b6b90dc1c728 --- /dev/null +++ b/components/script/dom/webidls/FileReader.webidl @@ -0,0 +1,42 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* 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/. + * + * References: + * https://w3c.github.io/FileAPI/#APIASynch + */ + +//typedef (DOMString or ArrayBuffer) FileReaderResult; + +[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 FileReaderResult? result; + readonly attribute DOMString? result; + + readonly attribute DOMException? error; + + // event handler attributes + attribute EventHandler onloadstart; + attribute EventHandler onprogress; + attribute EventHandler onload; + attribute EventHandler onabort; + attribute EventHandler onerror; + attribute EventHandler onloadend; + +}; \ No newline at end of file diff --git a/tests/wpt/metadata/FileAPI/fileReader.html.ini b/tests/wpt/metadata/FileAPI/fileReader.html.ini index 25d07b53ff43..85f443adc773 100644 --- a/tests/wpt/metadata/FileAPI/fileReader.html.ini +++ b/tests/wpt/metadata/FileAPI/fileReader.html.ini @@ -1,14 +1,2 @@ [fileReader.html] type: testharness - [FileReader interface object] - expected: FAIL - - [no-argument FileReader constructor] - expected: FAIL - - [FileReader States -- abort] - expected: FAIL - - [FileReader States -- events] - expected: FAIL - diff --git a/tests/wpt/metadata/FileAPI/idlharness.html.ini b/tests/wpt/metadata/FileAPI/idlharness.html.ini index f96868b5859c..73c2096e8afd 100644 --- a/tests/wpt/metadata/FileAPI/idlharness.html.ini +++ b/tests/wpt/metadata/FileAPI/idlharness.html.ini @@ -96,136 +96,13 @@ [FileList interface: file_input.files must inherit property "length" with the proper type (1)] expected: FAIL - [FileReader interface: existence and properties of interface object] - expected: FAIL - - [FileReader interface object length] - expected: FAIL - - [FileReader interface: existence and properties of interface prototype object] - expected: FAIL - - [FileReader interface: existence and properties of interface prototype object's "constructor" property] - expected: FAIL - - [FileReader interface: operation readAsArrayBuffer(Blob)] - expected: FAIL - - [FileReader interface: operation readAsText(Blob,DOMString)] - expected: FAIL - - [FileReader interface: operation readAsDataURL(Blob)] - expected: FAIL - - [FileReader interface: operation abort()] - expected: FAIL - - [FileReader interface: constant EMPTY on interface object] - expected: FAIL - - [FileReader interface: constant EMPTY on interface prototype object] - expected: FAIL - - [FileReader interface: constant LOADING on interface object] - expected: FAIL - - [FileReader interface: constant LOADING on interface prototype object] - expected: FAIL - - [FileReader interface: constant DONE on interface object] - expected: FAIL - - [FileReader interface: constant DONE on interface prototype object] - expected: FAIL - - [FileReader interface: attribute readyState] - expected: FAIL - - [FileReader interface: attribute result] - expected: FAIL - - [FileReader interface: attribute error] - expected: FAIL - - [FileReader interface: attribute onloadstart] - expected: FAIL - - [FileReader interface: attribute onprogress] - expected: FAIL - - [FileReader interface: attribute onload] - expected: FAIL - - [FileReader interface: attribute onabort] - expected: FAIL - - [FileReader interface: attribute onerror] - expected: FAIL - - [FileReader interface: attribute onloadend] - expected: FAIL - - [FileReader must be primary interface of new FileReader()] - expected: FAIL - - [Stringification of new FileReader()] - expected: FAIL - [FileReader interface: new FileReader() must inherit property "readAsArrayBuffer" with the proper type (0)] expected: FAIL [FileReader interface: calling readAsArrayBuffer(Blob) on new FileReader() with too few arguments must throw TypeError] expected: FAIL - [FileReader interface: new FileReader() must inherit property "readAsText" with the proper type (1)] - expected: FAIL - - [FileReader interface: calling readAsText(Blob,DOMString) on new FileReader() with too few arguments must throw TypeError] - expected: FAIL - - [FileReader interface: new FileReader() must inherit property "readAsDataURL" with the proper type (2)] - expected: FAIL - - [FileReader interface: calling readAsDataURL(Blob) on new FileReader() with too few arguments must throw TypeError] - expected: FAIL - - [FileReader interface: new FileReader() must inherit property "abort" with the proper type (3)] - expected: FAIL - - [FileReader interface: new FileReader() must inherit property "EMPTY" with the proper type (4)] - expected: FAIL - - [FileReader interface: new FileReader() must inherit property "LOADING" with the proper type (5)] - expected: FAIL - - [FileReader interface: new FileReader() must inherit property "DONE" with the proper type (6)] - expected: FAIL - - [FileReader interface: new FileReader() must inherit property "readyState" with the proper type (7)] - expected: FAIL - - [FileReader interface: new FileReader() must inherit property "result" with the proper type (8)] - expected: FAIL - - [FileReader interface: new FileReader() must inherit property "error" with the proper type (9)] - expected: FAIL - - [FileReader interface: new FileReader() must inherit property "onloadstart" with the proper type (10)] - expected: FAIL - - [FileReader interface: new FileReader() must inherit property "onprogress" with the proper type (11)] - expected: FAIL - - [FileReader interface: new FileReader() must inherit property "onload" with the proper type (12)] - expected: FAIL - - [FileReader interface: new FileReader() must inherit property "onabort" with the proper type (13)] - expected: FAIL - - [FileReader interface: new FileReader() must inherit property "onerror" with the proper type (14)] - expected: FAIL - - [FileReader interface: new FileReader() must inherit property "onloadend" with the proper type (15)] + [FileReader interface: operation readAsArrayBuffer(Blob)] expected: FAIL [FileReaderSync interface: existence and properties of interface object] diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-event-handler-attributes.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-event-handler-attributes.html.ini index 0581ac711acd..904bd565fd24 100644 --- a/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-event-handler-attributes.html.ini +++ b/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-event-handler-attributes.html.ini @@ -1,20 +1,2 @@ [FileReader-event-handler-attributes.html] type: testharness - [FileReader.onloadstart: initial value] - expected: FAIL - - [FileReader.onprogress: initial value] - expected: FAIL - - [FileReader.onload: initial value] - expected: FAIL - - [FileReader.onabort: initial value] - expected: FAIL - - [FileReader.onerror: initial value] - expected: FAIL - - [FileReader.onloadend: initial value] - expected: FAIL - diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-multiple-reads.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-multiple-reads.html.ini index 86d0638a7692..75e16426b8de 100644 --- a/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-multiple-reads.html.ini +++ b/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-multiple-reads.html.ini @@ -1,10 +1,5 @@ [FileReader-multiple-reads.html] type: testharness - [test FileReader InvalidStateError exception for readAsText] - expected: FAIL - - [test FileReader InvalidStateError exception for readAsDataURL] - expected: FAIL [test FileReader InvalidStateError exception for readAsArrayBuffer] expected: FAIL @@ -13,5 +8,4 @@ expected: FAIL [test FileReader no InvalidStateError exception in onloadstart event for readAsArrayBuffer] - expected: FAIL - + expected: FAIL \ No newline at end of file diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_abort.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_abort.html.ini index c990f4955481..5f897967ec70 100644 --- a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_abort.html.ini +++ b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_abort.html.ini @@ -1,8 +1,2 @@ [filereader_abort.html] type: testharness - [Aborting before read] - expected: FAIL - - [Aborting after read] - expected: FAIL - diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_error.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_error.html.ini index a843aa010831..ee3550246f6e 100644 --- a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_error.html.ini +++ b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_error.html.ini @@ -1,5 +1,2 @@ [filereader_error.html] type: testharness - [FileAPI Test: filereader_error] - expected: FAIL - diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readAsText.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readAsText.html.ini index 6039faa88144..1fa3328c4478 100644 --- a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readAsText.html.ini +++ b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readAsText.html.ini @@ -1,8 +1,2 @@ [filereader_readAsText.html] type: testharness - [readAsText should correctly read UTF-8.] - expected: FAIL - - [readAsText should correctly read UTF-16.] - expected: FAIL - diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readystate.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readystate.html.ini index 00ba8d810dca..205c62f2e5e5 100644 --- a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readystate.html.ini +++ b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readystate.html.ini @@ -1,5 +1,2 @@ [filereader_readystate.html] - type: testharness - [FileAPI Test: filereader_readystate] - expected: FAIL - + type: testharness \ No newline at end of file diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_result.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_result.html.ini index e24133d48d36..cd5ef83262bd 100644 --- a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_result.html.ini +++ b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_result.html.ini @@ -1,11 +1,5 @@ [filereader_result.html] type: testharness - [readAsText] - expected: FAIL - - [readAsDataURL] - expected: FAIL [readAsArrayBuffer] - expected: FAIL - + expected: FAIL \ No newline at end of file From 4ccf3ace0445f9439b7078f12dc4515a79ed2a69 Mon Sep 17 00:00:00 2001 From: farodin91 Date: Tue, 26 May 2015 18:43:52 +0200 Subject: [PATCH 02/25] working on async like XMLHttpRequest #6172 --- components/script/dom/blob.rs | 12 ++++ components/script/dom/filereader.rs | 101 +++++++++++++++++++++------- 2 files changed, 88 insertions(+), 25 deletions(-) diff --git a/components/script/dom/blob.rs b/components/script/dom/blob.rs index 63536fdd2967..6c55a19e856b 100644 --- a/components/script/dom/blob.rs +++ b/components/script/dom/blob.rs @@ -79,6 +79,18 @@ impl Blob { } } + +pub trait BlobHelpers { + fn read_out_buffer(&self) -> Option>; +} + +impl<'a> BlobHelpers for JSRef<'a, Blob> { + fn read_out_buffer(&self) -> Option> { + self.bytes + } +} + + impl<'a> BlobMethods for JSRef<'a, Blob> { // http://dev.w3.org/2006/webapi/FileAPI/#dfn-size fn Size(self) -> u64{ diff --git a/components/script/dom/filereader.rs b/components/script/dom/filereader.rs index 6fef0eeab982..1e50d0e08227 100644 --- a/components/script/dom/filereader.rs +++ b/components/script/dom/filereader.rs @@ -3,7 +3,9 @@ use dom::bindings::codegen::Bindings::FileReaderBinding; use dom::bindings::codegen::Bindings::FileReaderBinding::{FileReaderConstants, FileReaderMethods}; use dom::bindings::codegen::InheritTypes::{EventCast, EventTargetCast}; use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull; -use dom::bindings::error::Fallible; +use dom::bindings::error::{Error, ErrorResult, Fallible}; +use dom::bindings::error::Error::{InvalidState, InvalidAccess}; +use dom::bindings::error::Error::{Network, Syntax, Security, Abort, Timeout}; use dom::bindings::global::{GlobalRef, GlobalField}; use dom::bindings::js::{JS, JSRef, Temporary, Rootable}; use dom::bindings::refcounted::Trusted; @@ -17,6 +19,35 @@ use script_task::ScriptMsg; use std::cell::{Cell, RefCell}; use util::str::DOMString; +pub struct GenerationId(u32); + +struct FileReaderContext { + fr: Trusted, + blob: Trusted, + gen_id: GenerationId, + buf: RefCell>, + sync_status: RefCell>, +} + +#[derive(Clone)] +pub enum FileReaderProgress { + /// Partial progress (after receiving headers), containing portion of the response + Loading(GenerationId), + /// Loading is done + Done(GenerationId), + /// There was an error (only Abort, Timeout or Network is used) + Errored(GenerationId, Error), +} +impl FileReaderProgress { + fn generation_id(&self) -> GenerationId { + match *self { + FileReaderProgress::Loading(id) | + FileReaderProgress::Done(id) | + FileReaderProgress::Errored(id, _) => id + } + } +} + #[repr(u16)] #[derive(Copy, Clone, Debug)] #[jstraceable] @@ -36,9 +67,8 @@ pub struct FileReader { //result: Option } - impl FileReader { - fn new_inherited(global: GlobalRef, state: FileReaderReadyState) -> FileReader { + pub fn new_inherited(global: GlobalRef, state: FileReaderReadyState) -> FileReader { FileReader { eventtarget: EventTarget::new_inherited(EventTargetTypeId::FileReader),//? global: GlobalField::from_rooted(&global), @@ -56,6 +86,11 @@ impl FileReader { pub fn Constructor(global: GlobalRef) -> Fallible> { Ok(FileReader::new(global,FileReaderReadyState::Empty)) } + + fn initiate_async_read(context: Arc>, + script_chan: Box, + resource_task: ResourceTask) { + } } impl<'a> FileReaderMethods for JSRef<'a, FileReader> { @@ -77,12 +112,12 @@ impl<'a> FileReaderMethods for JSRef<'a, FileReader> { self.ready_state.set(FileReaderReadyState::Loading);//3. ReadAsText - +/* let global_root = self.global.root(); let addr: Trusted = Trusted::new(global_root.r().get_cx(), self, global_root.r().script_chan().clone()); - let open_task = box FileReaderTaskHandler::new(addr.clone(), FileReaderTask::Open); + let open_task = box FileReaderTaskHandler::new(addr.clone(), FileReaderTask::Open, blob.bytes); global_root.r().script_chan().send(ScriptMsg::RunnableMsg(open_task)).unwrap();//4. ReadAsText - +*/ } @@ -102,35 +137,48 @@ impl<'a> FileReaderMethods for JSRef<'a, FileReader> { //end tasks ? //terminate reading alg - - let event = Event::new(global.r(), "abort".to_owned(), - EventBubbles::DoesNotBubble, - EventCancelable::NotCancelable).root(); - let target: JSRef = EventTargetCast::from_ref(self); - event.r().fire(target); - - let event = Event::new(global.r(), "loadend".to_owned(), - EventBubbles::DoesNotBubble, - EventCancelable::NotCancelable).root(); - let target: JSRef = EventTargetCast::from_ref(self); - event.r().fire(target); - + + self.dispatch_response_progress_event("abort".to_owned(),0,None); + self.dispatch_response_progress_event("abort".to_owned(),0,None); } fn GetError(self) -> Option>{ - return None; + self.error.borrow() } fn GetResult(self) -> Option{ - return None; + self.result.borrow() } fn ReadyState(self) -> u16{ - return self.ready_state.get() as u16; + self.ready_state.get() as u16 } } +trait PrivateFileReaderHelpers { + fn dispatch_progress_event(self, upload: bool, type_: DOMString, loaded: u64, total: Option); +} + +impl<'a> PrivateFileReaderHelpers for JSRef<'a, FileReader> { + + fn dispatch_progress_event(self, upload: bool, type_: DOMString, loaded: u64, total: Option) { + let global = self.global.root(); + let upload_target = self.upload.root(); + let progressevent = ProgressEvent::new(global.r(), + type_, false, false, + total.is_some(), loaded, + total.unwrap_or(0)).root(); + let target: JSRef = if upload { + EventTargetCast::from_ref(upload_target.r()) + } else { + EventTargetCast::from_ref(self) + }; + let event: JSRef = EventCast::from_ref(progressevent.r()); + event.fire(target); + } +} + pub enum FileReaderTask { Open, @@ -140,14 +188,17 @@ pub enum FileReaderTask { pub struct FileReaderTaskHandler { addr: Trusted, task: FileReaderTask, -// blob: Blob + bytes: Option> +// blob: JSRef } impl FileReaderTaskHandler { - pub fn new(addr: Trusted, task: FileReaderTask) -> FileReaderTaskHandler { + pub fn new(addr: Trusted, task: FileReaderTask,bytes: Option>) -> FileReaderTaskHandler { FileReaderTaskHandler { addr: addr, - task: task + task: task, + bytes: bytes +// blob: blob } } From ad8ef982497a0fc9aab8bc9926c75e5b70e2e3cb Mon Sep 17 00:00:00 2001 From: farodin91 Date: Wed, 27 May 2015 13:33:17 +0200 Subject: [PATCH 03/25] Working on sync like XMLHttpRequest and resource_task #6172 --- components/script/dom/blob.rs | 6 +- components/script/dom/filereader.rs | 461 ++++++++++++++---- tests/html/filereader-test.html | 13 + .../wpt/metadata/FileAPI/historical.html.ini | 2 - 4 files changed, 383 insertions(+), 99 deletions(-) create mode 100644 tests/html/filereader-test.html diff --git a/components/script/dom/blob.rs b/components/script/dom/blob.rs index 6c55a19e856b..55df0f0d81b8 100644 --- a/components/script/dom/blob.rs +++ b/components/script/dom/blob.rs @@ -81,12 +81,12 @@ impl Blob { pub trait BlobHelpers { - fn read_out_buffer(&self) -> Option>; + fn read_out_buffer(self) -> Option>; } impl<'a> BlobHelpers for JSRef<'a, Blob> { - fn read_out_buffer(&self) -> Option> { - self.bytes + fn read_out_buffer(self) -> Option> { + self.bytes.clone() } } diff --git a/components/script/dom/filereader.rs b/components/script/dom/filereader.rs index 1e50d0e08227..7e857d576073 100644 --- a/components/script/dom/filereader.rs +++ b/components/script/dom/filereader.rs @@ -1,4 +1,7 @@ -//use dom::bindings::codegen::UnionTypes; +/* 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::FileReaderBinding; use dom::bindings::codegen::Bindings::FileReaderBinding::{FileReaderConstants, FileReaderMethods}; use dom::bindings::codegen::InheritTypes::{EventCast, EventTargetCast}; @@ -13,41 +16,225 @@ use dom::bindings::utils::reflect_dom_object; use dom::event::{Event, EventBubbles, EventCancelable, EventHelpers}; use dom::eventtarget::{EventTarget, EventTargetHelpers, EventTargetTypeId}; use dom::blob::Blob; +use dom::blob::BlobHelpers; use dom::domexception::DOMException; -use script_task::Runnable; -use script_task::ScriptMsg; +use dom::progressevent::ProgressEvent; +use script_task::{ScriptChan, ScriptMsg, Runnable, ScriptPort}; use std::cell::{Cell, RefCell}; +use std::sync::{Mutex, Arc}; +use std::sync::mpsc::{channel, Sender, TryRecvError, Receiver}; use util::str::DOMString; +use util::task::spawn_named; + +pub struct ReadData { + pub bytes: Option>, +} + +impl ReadData { + pub fn new(bytes: Option>) -> ReadData { + ReadData { + bytes: bytes + } + } +} + + +struct FileReaderManager { + filereader_client: Receiver, + filereader_task: Sender +} + +impl FileReaderManager { + fn new(filereader_client: Receiver, + filereader_task: Sender) -> FileReaderManager { + FileReaderManager { + filereader_client: filereader_client, + filereader_task: filereader_task, + } + } +} + + +impl FileReaderManager { + fn start(&mut self) { + loop { + match self.filereader_client.recv().unwrap() { + ControlMsg::Read(load_data, consumer) => { + self.read(load_data, consumer) + } + ControlMsg::Exit => { + break + } + } + } + } + + fn read(&mut self, mut read_data: ReadData, consumer: ReadConsumer) { + let progress = start_reading(consumer); + progress.send(ProgressMsg::Payload(DOMString::new())).unwrap(); + progress.send(ProgressMsg::Payload(DOMString::new())).unwrap(); + } +} + +/// For use by loaders in responding to a Load message. +fn start_reading(start_chan: ReadConsumer) -> ProgressSender { + start_reading_opt(start_chan).ok().unwrap() +} +/// For use by loaders in responding to a Load message. +fn start_reading_opt(start_chan: ReadConsumer) -> Result { + match start_chan { + ReadConsumer::Channel(start_chan) => { + Err(()) + } + ReadConsumer::Listener(target) => { + target.invoke_with_listener(ResultAction::StartReading); + Ok(ProgressSender::Listener(target)) + } + } +} + + +#[derive(PartialEq, Clone, Copy)] +#[jstraceable] pub struct GenerationId(u32); struct FileReaderContext { fr: Trusted, - blob: Trusted, gen_id: GenerationId, - buf: RefCell>, + buf: RefCell, sync_status: RefCell>, } #[derive(Clone)] pub enum FileReaderProgress { - /// Partial progress (after receiving headers), containing portion of the response - Loading(GenerationId), - /// Loading is done + Start(GenerationId), + Reading(GenerationId, DOMString), Done(GenerationId), - /// There was an error (only Abort, Timeout or Network is used) Errored(GenerationId, Error), } + impl FileReaderProgress { fn generation_id(&self) -> GenerationId { match *self { - FileReaderProgress::Loading(id) | + FileReaderProgress::Reading(id, _) | + FileReaderProgress::Start(id) | FileReaderProgress::Done(id) | FileReaderProgress::Errored(id, _) => id } } } + +#[derive(PartialEq,Debug)] +pub enum ProgressMsg { + Payload(DOMString), + Done(Result<(), String>) +} + +pub enum ProgressSender { + Channel(Sender), + Listener(Box), +} + +impl ProgressSender { + //XXXjdm return actual error + pub fn send(&self, msg: ProgressMsg) -> Result<(), ()> { + match *self { + ProgressSender::Channel(ref c) => c.send(msg).map_err(|_| ()), + ProgressSender::Listener(ref b) => { + let action = match msg { + ProgressMsg::Payload(buf) => ResultAction::DataAvailable(buf), + ProgressMsg::Done(status) => ResultAction::ResultComplete(status), + }; + b.invoke_with_listener(action); + Ok(()) + } + } + } +} + +pub struct ReadResult { + /// Port for reading data. + pub progress_port: Receiver, +} + +pub enum ReadConsumer { + Channel(Sender), + Listener(Box), +} + +pub type FileReaderTask = Sender; + +pub enum ControlMsg { + Read(ReadData,ReadConsumer), + Exit +} + +pub enum ResultAction { + /// Invoke headers_available + StartReading, + /// Invoke data_available + DataAvailable(DOMString), + /// Invoke response_complete + ResultComplete(Result<(), String>) +} + +impl ResultAction { + /// Execute the default action on a provided listener. + pub fn process(self, listener: &AsyncReadingListener) { + match self { + ResultAction::StartReading => listener.start_reading(), + ResultAction::DataAvailable(d) => listener.data_available(d), + ResultAction::ResultComplete(r) => listener.reading_complete(r), + } + } +} +pub trait AsyncResultTarget { + fn invoke_with_listener(&self, action: ResultAction); +} + +pub trait AsyncReadingListener { + fn start_reading(&self); + fn data_available(&self, payload: DOMString); + fn reading_complete(&self, status: Result<(), String>); +} + +pub struct ReadingListener { + pub context: Arc>, + pub script_chan: Box, +} + +impl AsyncResultTarget for ReadingListener { + fn invoke_with_listener(&self, action: ResultAction) { + self.script_chan.send(ScriptMsg::RunnableMsg(box ListenerRunnable { + context: self.context.clone(), + action: action, + })).unwrap(); + } +} + +pub trait PreInvoke { + fn should_invoke(&self) -> bool { + true + } +} +/// A runnable for moving the async network events between threads. +struct ListenerRunnable { + context: Arc>, + action: ResultAction, +} + +impl Runnable for ListenerRunnable { + fn handler(self: Box>) { + let this = *self; + let context = this.context.lock().unwrap(); + if context.should_invoke() { + this.action.process(&*context); + } + } +} + #[repr(u16)] #[derive(Copy, Clone, Debug)] #[jstraceable] @@ -63,33 +250,65 @@ pub struct FileReader { global: GlobalField, ready_state: Cell, error: RefCell>, - result: RefCell> + result: RefCell>, + generation_id: Cell, + filereader_task: RefCell>, + abort_target: RefCell>>, //result: Option } impl FileReader { - pub fn new_inherited(global: GlobalRef, state: FileReaderReadyState) -> FileReader { + pub fn new_inherited(global: GlobalRef) -> FileReader { FileReader { eventtarget: EventTarget::new_inherited(EventTargetTypeId::FileReader),//? global: GlobalField::from_rooted(&global), - ready_state: Cell::new(state), + ready_state: Cell::new(FileReaderReadyState::Empty), error: RefCell::new(None), result: RefCell::new(None), + generation_id: Cell::new(GenerationId(0)), + filereader_task: RefCell::new(None), + abort_target: RefCell::new(None), } } - pub fn new(global: GlobalRef, state: FileReaderReadyState) -> Temporary { - reflect_dom_object(box FileReader::new_inherited( global,state), + pub fn new(global: GlobalRef) -> Temporary { + reflect_dom_object(box FileReader::new_inherited( global), global, FileReaderBinding::Wrap) } pub fn Constructor(global: GlobalRef) -> Fallible> { - Ok(FileReader::new(global,FileReaderReadyState::Empty)) + Ok(FileReader::new(global)) } - fn initiate_async_read(context: Arc>, - script_chan: Box, - resource_task: ResourceTask) { + fn initiate_async_fr(context: Arc>, script_chan: Box, filereader_task: FileReaderTask, read_data: ReadData) { + impl AsyncReadingListener for FileReaderContext { + fn data_available(&self, payload: DOMString){ + let fr = self.fr.to_temporary().root(); + fr.r().process_data_available(self.gen_id, self.buf.borrow().clone()); + } + + fn reading_complete(&self, status: Result<(), String>){ + let fr = self.fr.to_temporary().root(); + fr.r().process_result_complete(self.gen_id, status); + } + fn start_reading(&self){ + let fr = self.fr.to_temporary().root(); + fr.r().process_start(self.gen_id); + } + } + + impl PreInvoke for FileReaderContext { + fn should_invoke(&self) -> bool { + let fr = self.fr.to_temporary().root(); + fr.r().generation_id.get() == self.gen_id + } + } + + let listener = box ReadingListener {//replace + context: context, + script_chan: script_chan, + }; + filereader_task.send(ControlMsg::Read(read_data, ReadConsumer::Listener(listener))).unwrap(); } } @@ -105,27 +324,28 @@ impl<'a> FileReaderMethods for JSRef<'a, FileReader> { }*/ - fn ReadAsText(self,blob: JSRef,label:Option){ + fn ReadAsText(self,blob: JSRef,label:Option) { + let global = self.global.root(); if self.ready_state.get() as u16 == FileReaderReadyState::Loading as u16 {//1. ReadAsText //throw DOMException } self.ready_state.set(FileReaderReadyState::Loading);//3. ReadAsText -/* - let global_root = self.global.root(); - let addr: Trusted = Trusted::new(global_root.r().get_cx(), self, global_root.r().script_chan().clone()); - let open_task = box FileReaderTaskHandler::new(addr.clone(), FileReaderTask::Open, blob.bytes); - global_root.r().script_chan().send(ScriptMsg::RunnableMsg(open_task)).unwrap();//4. ReadAsText -*/ + + let bytes = blob.read_out_buffer(); + + let mut load_data = ReadData::new(bytes.clone()); + + self.read(load_data,global.r()); } - fn ReadAsDataURL(self,blob: JSRef){ + fn ReadAsDataURL(self,blob: JSRef) { } - fn Abort(self){ + fn Abort(self) { let global = self.global.root(); if self.ready_state.get() as u16 == FileReaderReadyState::Loading as u16 { @@ -137,111 +357,164 @@ impl<'a> FileReaderMethods for JSRef<'a, FileReader> { //end tasks ? //terminate reading alg + self.terminate_ongoing_reading(); - self.dispatch_response_progress_event("abort".to_owned(),0,None); - self.dispatch_response_progress_event("abort".to_owned(),0,None); + self.dispatch_result_progress_event("abort".to_owned()); + self.dispatch_result_progress_event("loadend".to_owned()); } - fn GetError(self) -> Option>{ - self.error.borrow() + fn GetError(self) -> Option> { + None + //self.error.borrow() } - fn GetResult(self) -> Option{ - self.result.borrow() + fn GetResult(self) -> Option { + None + //self.result.borrow() } - fn ReadyState(self) -> u16{ + fn ReadyState(self) -> u16 { self.ready_state.get() as u16 } - } trait PrivateFileReaderHelpers { - fn dispatch_progress_event(self, upload: bool, type_: DOMString, loaded: u64, total: Option); + fn dispatch_progress_event(self, type_: DOMString, loaded: u64, total: Option); + fn terminate_ongoing_reading(self); + fn read(self, read_data: ReadData, global: GlobalRef) -> ErrorResult; + fn process_data_available(self, gen_id: GenerationId, payload: DOMString); + fn process_start(self, gen_id: GenerationId); + fn process_result_complete(self, gen_id: GenerationId, status: Result<(), String>) -> ErrorResult; + fn process_partial_result(self, progress: FileReaderProgress); + fn dispatch_result_progress_event(self, type_:DOMString); + fn change_ready_state(self, state: FileReaderReadyState); + fn new_filereader_task(self) -> FileReaderTask; } impl<'a> PrivateFileReaderHelpers for JSRef<'a, FileReader> { - fn dispatch_progress_event(self, upload: bool, type_: DOMString, loaded: u64, total: Option) { + fn dispatch_progress_event(self, type_: DOMString, loaded: u64, total: Option) { let global = self.global.root(); - let upload_target = self.upload.root(); let progressevent = ProgressEvent::new(global.r(), type_, false, false, total.is_some(), loaded, total.unwrap_or(0)).root(); - let target: JSRef = if upload { - EventTargetCast::from_ref(upload_target.r()) - } else { - EventTargetCast::from_ref(self) - }; + let target: JSRef = EventTargetCast::from_ref(self); let event: JSRef = EventCast::from_ref(progressevent.r()); event.fire(target); } -} + fn terminate_ongoing_reading(self) { + let GenerationId(prev_id) = self.generation_id.get(); + self.generation_id.set(GenerationId(prev_id + 1)); + } + + fn new_filereader_task(self) -> FileReaderTask { + let (setup_chan, setup_port) = channel(); + let setup_chan_clone = setup_chan.clone(); + spawn_named("FileReaderManager".to_owned(), move || { + FileReaderManager::new(setup_port, setup_chan_clone).start(); + }); + setup_chan + } -pub enum FileReaderTask { - Open, - Close, -} + fn read(self, read_data: ReadData, global: GlobalRef) -> ErrorResult { -pub struct FileReaderTaskHandler { - addr: Trusted, - task: FileReaderTask, - bytes: Option> -// blob: JSRef -} + let fr = Trusted::new(global.get_cx(), self, global.script_chan()); -impl FileReaderTaskHandler { - pub fn new(addr: Trusted, task: FileReaderTask,bytes: Option>) -> FileReaderTaskHandler { - FileReaderTaskHandler { - addr: addr, - task: task, - bytes: bytes -// blob: blob - } - } + let context = Arc::new(Mutex::new(FileReaderContext { + fr: fr, + gen_id: self.generation_id.get(), + buf: RefCell::new(DOMString::new()), + sync_status: RefCell::new(None), + })); + + let script_chan = global.script_chan(); - fn dispatch_open(&self) { - let fr = self.addr.to_temporary().root(); //Get root - let fr = fr.r(); //Get filereader reference - let global = fr.global.root(); + *self.abort_target.borrow_mut() = Some(script_chan.clone()); - let event = Event::new(global.r(),//6.ReadAsText - "loadstart".to_owned(), - EventBubbles::DoesNotBubble, - EventCancelable::NotCancelable).root(); - let target: JSRef = EventTargetCast::from_ref(fr); - event.r().fire(target); + let filereader_task = self.new_filereader_task(); + *self.filereader_task.borrow_mut() = Some(filereader_task.clone()); + + FileReader::initiate_async_fr(context.clone(), script_chan, filereader_task, read_data); + Ok(()) + } - let event = Event::new(global.r(),//7.ReadAsText - "progress".to_owned(), - EventBubbles::DoesNotBubble, - EventCancelable::NotCancelable).root(); - let target: JSRef = EventTargetCast::from_ref(fr); - event.r().fire(target); + fn process_partial_result(self, progress: FileReaderProgress) { + let msg_id = progress.generation_id(); + + // Aborts processing if abort() or open() was called + // (including from one of the event handlers called below) + macro_rules! return_if_fetch_was_terminated( + () => ( + if msg_id != self.generation_id.get() { + return + } + ); + ); + + // Ignore message if it belongs to a terminated fetch + return_if_fetch_was_terminated!(); + match progress { + FileReaderProgress::Start(_)=>{ + self.dispatch_result_progress_event("loadstart".to_owned());//6. + }, + FileReaderProgress::Reading(_,partial) =>{ + self.dispatch_result_progress_event("progress".to_owned());//7. + }, + FileReaderProgress::Done(_) => { + self.dispatch_result_progress_event("progress".to_owned()); + return_if_fetch_was_terminated!(); + self.change_ready_state(FileReaderReadyState::Done);//8.1. + return_if_fetch_was_terminated!(); + self.dispatch_result_progress_event("load".to_owned());//8.3 + return_if_fetch_was_terminated!(); + if(self.ready_state.get() as u16 != FileReaderReadyState::Loading as u16){//8.4 + self.dispatch_result_progress_event("loadend".to_owned()); + } + }, + FileReaderProgress::Errored(_, e) => { + + let errormsg = match e { + Abort => "abort", + Timeout => "timeout", + _ => "error", + }; + self.dispatch_result_progress_event("progress".to_owned()); + return_if_fetch_was_terminated!(); + self.dispatch_result_progress_event(errormsg.to_owned()); + return_if_fetch_was_terminated!(); + self.dispatch_result_progress_event("loadend".to_owned()); + } + } + } + fn change_ready_state(self, state: FileReaderReadyState) { } - fn dispatch_close(&self) { - let fr = self.addr.to_temporary().root(); //Get root - let fr = fr.r(); //Get filereader reference - let global = fr.global.root(); + fn process_start(self, gen_id: GenerationId) { + self.process_partial_result(FileReaderProgress::Start(gen_id)); + } + fn process_data_available(self, gen_id: GenerationId, payload: DOMString) { + self.process_partial_result(FileReaderProgress::Reading(gen_id, payload)); } -} -impl Runnable for FileReaderTaskHandler { - fn handler(self: Box) { - match self.task { - FileReaderTask::Open => { - self.dispatch_open(); - } - FileReaderTask::Close => { - self.dispatch_close(); + fn process_result_complete(self, gen_id: GenerationId, status: Result<(), String>) -> ErrorResult { + match status { + Ok(()) => { + self.process_partial_result(FileReaderProgress::Done(gen_id)); + Ok(()) + }, + Err(_) => { + self.process_partial_result(FileReaderProgress::Errored(gen_id, Syntax)); + Err(Syntax) } } } -} + fn dispatch_result_progress_event(self, type_: DOMString) { + self.dispatch_progress_event(type_, 0, None); + } +} diff --git a/tests/html/filereader-test.html b/tests/html/filereader-test.html new file mode 100644 index 000000000000..041f03944fa0 --- /dev/null +++ b/tests/html/filereader-test.html @@ -0,0 +1,13 @@ + +FileReader: starting new reads while one is in progress + + +
+ diff --git a/tests/wpt/metadata/FileAPI/historical.html.ini b/tests/wpt/metadata/FileAPI/historical.html.ini index 412e4bb8085f..f0ba918b01f7 100644 --- a/tests/wpt/metadata/FileAPI/historical.html.ini +++ b/tests/wpt/metadata/FileAPI/historical.html.ini @@ -1,5 +1,3 @@ [historical.html] type: testharness - [FileReader should not support readAsBinaryString] - expected: FAIL From 63b97e806f8343d042ca34d15e0c5ed5b3f41fac Mon Sep 17 00:00:00 2001 From: farodin91 Date: Wed, 27 May 2015 16:47:46 +0200 Subject: [PATCH 04/25] working on async tests #6172 --- components/script/dom/filereader.rs | 56 ++++++++++++------- .../script/dom/webidls/FileReader.webidl | 2 + 2 files changed, 38 insertions(+), 20 deletions(-) diff --git a/components/script/dom/filereader.rs b/components/script/dom/filereader.rs index 7e857d576073..448b188d9c26 100644 --- a/components/script/dom/filereader.rs +++ b/components/script/dom/filereader.rs @@ -7,13 +7,13 @@ use dom::bindings::codegen::Bindings::FileReaderBinding::{FileReaderConstants, F use dom::bindings::codegen::InheritTypes::{EventCast, EventTargetCast}; use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull; use dom::bindings::error::{Error, ErrorResult, Fallible}; -use dom::bindings::error::Error::{InvalidState, InvalidAccess}; -use dom::bindings::error::Error::{Network, Syntax, Security, Abort, Timeout}; +use dom::bindings::error::Error::InvalidState; +use dom::bindings::error::Error::{ Syntax, Abort, Timeout}; use dom::bindings::global::{GlobalRef, GlobalField}; -use dom::bindings::js::{JS, JSRef, Temporary, Rootable}; +use dom::bindings::js::{JSRef, Temporary, Rootable}; use dom::bindings::refcounted::Trusted; use dom::bindings::utils::reflect_dom_object; -use dom::event::{Event, EventBubbles, EventCancelable, EventHelpers}; +use dom::event::{Event, EventHelpers}; use dom::eventtarget::{EventTarget, EventTargetHelpers, EventTargetTypeId}; use dom::blob::Blob; use dom::blob::BlobHelpers; @@ -22,7 +22,7 @@ use dom::progressevent::ProgressEvent; use script_task::{ScriptChan, ScriptMsg, Runnable, ScriptPort}; use std::cell::{Cell, RefCell}; use std::sync::{Mutex, Arc}; -use std::sync::mpsc::{channel, Sender, TryRecvError, Receiver}; +use std::sync::mpsc::{channel, Sender, Receiver}; use util::str::DOMString; use util::task::spawn_named; @@ -84,7 +84,7 @@ fn start_reading(start_chan: ReadConsumer) -> ProgressSender { /// For use by loaders in responding to a Load message. fn start_reading_opt(start_chan: ReadConsumer) -> Result { match start_chan { - ReadConsumer::Channel(start_chan) => { + ReadConsumer::Channel(_) => { Err(()) } ReadConsumer::Listener(target) => { @@ -324,24 +324,40 @@ impl<'a> FileReaderMethods for JSRef<'a, FileReader> { }*/ - fn ReadAsText(self,blob: JSRef,label:Option) { + fn ReadAsText(self,blob: JSRef,label:Option) -> ErrorResult { let global = self.global.root(); if self.ready_state.get() as u16 == FileReaderReadyState::Loading as u16 {//1. ReadAsText //throw DOMException + return Err(InvalidState); } + + debug!("test"); - - self.ready_state.set(FileReaderReadyState::Loading);//3. ReadAsText + self.change_ready_state(FileReaderReadyState::Loading);//3. ReadAsText let bytes = blob.read_out_buffer(); let mut load_data = ReadData::new(bytes.clone()); self.read(load_data,global.r()); - + Ok(()) } - fn ReadAsDataURL(self,blob: JSRef) { + fn ReadAsDataURL(self,blob: JSRef) -> ErrorResult { + let global = self.global.root(); + if self.ready_state.get() as u16 == FileReaderReadyState::Loading as u16 {//1. ReadAsText + //throw DOMException + return Err(InvalidState); + } + + self.change_ready_state(FileReaderReadyState::Loading);//3. ReadAsText + + let bytes = blob.read_out_buffer(); + + let mut load_data = ReadData::new(bytes.clone()); + + self.read(load_data,global.r()); + Ok(()) } @@ -349,7 +365,7 @@ impl<'a> FileReaderMethods for JSRef<'a, FileReader> { let global = self.global.root(); if self.ready_state.get() as u16 == FileReaderReadyState::Loading as u16 { - self.ready_state.set(FileReaderReadyState::Done); + self.change_ready_state(FileReaderReadyState::Done); } *self.result.borrow_mut() = None; @@ -364,12 +380,14 @@ impl<'a> FileReaderMethods for JSRef<'a, FileReader> { } fn GetError(self) -> Option> { - None - //self.error.borrow() + self.error.borrow().clone() } fn GetResult(self) -> Option { - None + match self.ready_state.get() { + FileReaderReadyState::Done | FileReaderReadyState::Loading => self.result.borrow().clone(), + _ => None + } //self.result.borrow() } @@ -384,7 +402,7 @@ trait PrivateFileReaderHelpers { fn read(self, read_data: ReadData, global: GlobalRef) -> ErrorResult; fn process_data_available(self, gen_id: GenerationId, payload: DOMString); fn process_start(self, gen_id: GenerationId); - fn process_result_complete(self, gen_id: GenerationId, status: Result<(), String>) -> ErrorResult; + fn process_result_complete(self, gen_id: GenerationId, status: Result<(), String>); fn process_partial_result(self, progress: FileReaderProgress); fn dispatch_result_progress_event(self, type_:DOMString); fn change_ready_state(self, state: FileReaderReadyState); @@ -490,7 +508,7 @@ impl<'a> PrivateFileReaderHelpers for JSRef<'a, FileReader> { } fn change_ready_state(self, state: FileReaderReadyState) { - + self.ready_state.set(state); } fn process_start(self, gen_id: GenerationId) { @@ -501,15 +519,13 @@ impl<'a> PrivateFileReaderHelpers for JSRef<'a, FileReader> { self.process_partial_result(FileReaderProgress::Reading(gen_id, payload)); } - fn process_result_complete(self, gen_id: GenerationId, status: Result<(), String>) -> ErrorResult { + fn process_result_complete(self, gen_id: GenerationId, status: Result<(), String>) { match status { Ok(()) => { self.process_partial_result(FileReaderProgress::Done(gen_id)); - Ok(()) }, Err(_) => { self.process_partial_result(FileReaderProgress::Errored(gen_id, Syntax)); - Err(Syntax) } } } diff --git a/components/script/dom/webidls/FileReader.webidl b/components/script/dom/webidls/FileReader.webidl index b6b90dc1c728..95e4abe8899f 100644 --- a/components/script/dom/webidls/FileReader.webidl +++ b/components/script/dom/webidls/FileReader.webidl @@ -14,7 +14,9 @@ interface FileReader: EventTarget { // async read methods //void readAsArrayBuffer(Blob blob); + [Throws] void readAsText(Blob blob, optional DOMString label); + [Throws] void readAsDataURL(Blob blob); void abort(); From 6890410c06dbfb9feabfe679846a9501f1ab377f Mon Sep 17 00:00:00 2001 From: farodin91 Date: Wed, 27 May 2015 21:40:03 +0200 Subject: [PATCH 05/25] minimal support of readAsText #6172 --- components/script/dom/blob.rs | 4 + components/script/dom/filereader.rs | 454 ++++++++++-------- ...Progress_event_bubbles_cancelable.html.ini | 2 - .../FileAPI/blob/Blob-constructor.html.ini | 49 -- .../metadata/FileAPI/blob/Blob-slice.html.ini | 69 --- .../wpt/metadata/FileAPI/fileReader.html.ini | 6 + .../Determining-Encoding.html.ini | 17 - 7 files changed, 277 insertions(+), 324 deletions(-) diff --git a/components/script/dom/blob.rs b/components/script/dom/blob.rs index 55df0f0d81b8..7d7a0d51f550 100644 --- a/components/script/dom/blob.rs +++ b/components/script/dom/blob.rs @@ -82,12 +82,16 @@ impl Blob { pub trait BlobHelpers { fn read_out_buffer(self) -> Option>; + fn read_out_type(self) -> DOMString; } impl<'a> BlobHelpers for JSRef<'a, Blob> { fn read_out_buffer(self) -> Option> { self.bytes.clone() } + fn read_out_type(self) -> DOMString { + self.typeString.clone() + } } diff --git a/components/script/dom/filereader.rs b/components/script/dom/filereader.rs index 448b188d9c26..6ff7abe384e5 100644 --- a/components/script/dom/filereader.rs +++ b/components/script/dom/filereader.rs @@ -19,6 +19,9 @@ use dom::blob::Blob; use dom::blob::BlobHelpers; use dom::domexception::DOMException; use dom::progressevent::ProgressEvent; +use encoding::all::{UTF_8, UTF_16LE, UTF_16BE}; +use encoding::types::{decode, EncodingRef, DecoderTrap}; +use encoding::label::encoding_from_whatwg_label; use script_task::{ScriptChan, ScriptMsg, Runnable, ScriptPort}; use std::cell::{Cell, RefCell}; use std::sync::{Mutex, Arc}; @@ -26,134 +29,35 @@ use std::sync::mpsc::{channel, Sender, Receiver}; use util::str::DOMString; use util::task::spawn_named; +pub enum FileReaderFunction { + ArrayBuffer, + Text, + Url, +} + + pub struct ReadData { pub bytes: Option>, + pub blobtype: DOMString, + pub label: Option, + pub function: FileReaderFunction } impl ReadData { - pub fn new(bytes: Option>) -> ReadData { + pub fn new(bytes: Option>,blobtype: DOMString, label: Option, function: FileReaderFunction) -> ReadData { ReadData { - bytes: bytes - } - } -} - - -struct FileReaderManager { - filereader_client: Receiver, - filereader_task: Sender -} - -impl FileReaderManager { - fn new(filereader_client: Receiver, - filereader_task: Sender) -> FileReaderManager { - FileReaderManager { - filereader_client: filereader_client, - filereader_task: filereader_task, - } - } -} - - -impl FileReaderManager { - fn start(&mut self) { - loop { - match self.filereader_client.recv().unwrap() { - ControlMsg::Read(load_data, consumer) => { - self.read(load_data, consumer) - } - ControlMsg::Exit => { - break - } - } - } - } - - fn read(&mut self, mut read_data: ReadData, consumer: ReadConsumer) { - let progress = start_reading(consumer); - progress.send(ProgressMsg::Payload(DOMString::new())).unwrap(); - progress.send(ProgressMsg::Payload(DOMString::new())).unwrap(); - } -} - -/// For use by loaders in responding to a Load message. -fn start_reading(start_chan: ReadConsumer) -> ProgressSender { - start_reading_opt(start_chan).ok().unwrap() -} - -/// For use by loaders in responding to a Load message. -fn start_reading_opt(start_chan: ReadConsumer) -> Result { - match start_chan { - ReadConsumer::Channel(_) => { - Err(()) - } - ReadConsumer::Listener(target) => { - target.invoke_with_listener(ResultAction::StartReading); - Ok(ProgressSender::Listener(target)) + bytes: bytes, + blobtype: blobtype, + label: label, + function: function } } } - #[derive(PartialEq, Clone, Copy)] #[jstraceable] pub struct GenerationId(u32); -struct FileReaderContext { - fr: Trusted, - gen_id: GenerationId, - buf: RefCell, - sync_status: RefCell>, -} - -#[derive(Clone)] -pub enum FileReaderProgress { - Start(GenerationId), - Reading(GenerationId, DOMString), - Done(GenerationId), - Errored(GenerationId, Error), -} - -impl FileReaderProgress { - fn generation_id(&self) -> GenerationId { - match *self { - FileReaderProgress::Reading(id, _) | - FileReaderProgress::Start(id) | - FileReaderProgress::Done(id) | - FileReaderProgress::Errored(id, _) => id - } - } -} - - -#[derive(PartialEq,Debug)] -pub enum ProgressMsg { - Payload(DOMString), - Done(Result<(), String>) -} - -pub enum ProgressSender { - Channel(Sender), - Listener(Box), -} - -impl ProgressSender { - //XXXjdm return actual error - pub fn send(&self, msg: ProgressMsg) -> Result<(), ()> { - match *self { - ProgressSender::Channel(ref c) => c.send(msg).map_err(|_| ()), - ProgressSender::Listener(ref b) => { - let action = match msg { - ProgressMsg::Payload(buf) => ResultAction::DataAvailable(buf), - ProgressMsg::Done(status) => ResultAction::ResultComplete(status), - }; - b.invoke_with_listener(action); - Ok(()) - } - } - } -} - pub struct ReadResult { /// Port for reading data. pub progress_port: Receiver, @@ -171,68 +75,11 @@ pub enum ControlMsg { Exit } -pub enum ResultAction { - /// Invoke headers_available - StartReading, - /// Invoke data_available - DataAvailable(DOMString), - /// Invoke response_complete - ResultComplete(Result<(), String>) -} - -impl ResultAction { - /// Execute the default action on a provided listener. - pub fn process(self, listener: &AsyncReadingListener) { - match self { - ResultAction::StartReading => listener.start_reading(), - ResultAction::DataAvailable(d) => listener.data_available(d), - ResultAction::ResultComplete(r) => listener.reading_complete(r), - } - } -} -pub trait AsyncResultTarget { - fn invoke_with_listener(&self, action: ResultAction); -} - -pub trait AsyncReadingListener { - fn start_reading(&self); - fn data_available(&self, payload: DOMString); - fn reading_complete(&self, status: Result<(), String>); -} - -pub struct ReadingListener { - pub context: Arc>, - pub script_chan: Box, -} - -impl AsyncResultTarget for ReadingListener { - fn invoke_with_listener(&self, action: ResultAction) { - self.script_chan.send(ScriptMsg::RunnableMsg(box ListenerRunnable { - context: self.context.clone(), - action: action, - })).unwrap(); - } -} - -pub trait PreInvoke { - fn should_invoke(&self) -> bool { - true - } -} -/// A runnable for moving the async network events between threads. -struct ListenerRunnable { - context: Arc>, - action: ResultAction, -} - -impl Runnable for ListenerRunnable { - fn handler(self: Box>) { - let this = *self; - let context = this.context.lock().unwrap(); - if context.should_invoke() { - this.action.process(&*context); - } - } +struct FileReaderContext { + fr: Trusted, + gen_id: GenerationId, + buf: RefCell, + sync_status: RefCell>, } #[repr(u16)] @@ -283,15 +130,18 @@ impl FileReader { fn initiate_async_fr(context: Arc>, script_chan: Box, filereader_task: FileReaderTask, read_data: ReadData) { impl AsyncReadingListener for FileReaderContext { fn data_available(&self, payload: DOMString){ + println!("{}", "Run data_available on AsyncReadingListener"); let fr = self.fr.to_temporary().root(); fr.r().process_data_available(self.gen_id, self.buf.borrow().clone()); } - fn reading_complete(&self, status: Result<(), String>){ + fn reading_complete(&self, status: Result){ + println!("{}", "Run reading_complete on AsyncReadingListener"); let fr = self.fr.to_temporary().root(); fr.r().process_result_complete(self.gen_id, status); } fn start_reading(&self){ + println!("{}", "Run start_reading on AsyncReadingListener"); let fr = self.fr.to_temporary().root(); fr.r().process_start(self.gen_id); } @@ -303,6 +153,7 @@ impl FileReader { fr.r().generation_id.get() == self.gen_id } } + println!("{}", "Run initiate_async_fr"); let listener = box ReadingListener {//replace context: context, @@ -325,25 +176,27 @@ impl<'a> FileReaderMethods for JSRef<'a, FileReader> { }*/ fn ReadAsText(self,blob: JSRef,label:Option) -> ErrorResult { + println!("{}", "Run ReadAsText"); let global = self.global.root(); if self.ready_state.get() as u16 == FileReaderReadyState::Loading as u16 {//1. ReadAsText //throw DOMException return Err(InvalidState); } - debug!("test"); - self.change_ready_state(FileReaderReadyState::Loading);//3. ReadAsText let bytes = blob.read_out_buffer(); + let type_ = blob.read_out_type(); + - let mut load_data = ReadData::new(bytes.clone()); + let mut load_data = ReadData::new(bytes.clone(),type_,label,FileReaderFunction::Text); self.read(load_data,global.r()); Ok(()) } fn ReadAsDataURL(self,blob: JSRef) -> ErrorResult { + println!("{}", "Run ReadAsText"); let global = self.global.root(); if self.ready_state.get() as u16 == FileReaderReadyState::Loading as u16 {//1. ReadAsText //throw DOMException @@ -353,8 +206,9 @@ impl<'a> FileReaderMethods for JSRef<'a, FileReader> { self.change_ready_state(FileReaderReadyState::Loading);//3. ReadAsText let bytes = blob.read_out_buffer(); + let type_ = blob.read_out_type(); - let mut load_data = ReadData::new(bytes.clone()); + let mut load_data = ReadData::new(bytes.clone(),type_,None,FileReaderFunction::Text); self.read(load_data,global.r()); Ok(()) @@ -362,6 +216,7 @@ impl<'a> FileReaderMethods for JSRef<'a, FileReader> { } fn Abort(self) { + println!("{}", "Run Abort"); let global = self.global.root(); if self.ready_state.get() as u16 == FileReaderReadyState::Loading as u16 { @@ -380,7 +235,7 @@ impl<'a> FileReaderMethods for JSRef<'a, FileReader> { } fn GetError(self) -> Option> { - self.error.borrow().clone() + None } fn GetResult(self) -> Option { @@ -402,7 +257,7 @@ trait PrivateFileReaderHelpers { fn read(self, read_data: ReadData, global: GlobalRef) -> ErrorResult; fn process_data_available(self, gen_id: GenerationId, payload: DOMString); fn process_start(self, gen_id: GenerationId); - fn process_result_complete(self, gen_id: GenerationId, status: Result<(), String>); + fn process_result_complete(self, gen_id: GenerationId, status: Result); fn process_partial_result(self, progress: FileReaderProgress); fn dispatch_result_progress_event(self, type_:DOMString); fn change_ready_state(self, state: FileReaderReadyState); @@ -412,6 +267,7 @@ trait PrivateFileReaderHelpers { impl<'a> PrivateFileReaderHelpers for JSRef<'a, FileReader> { fn dispatch_progress_event(self, type_: DOMString, loaded: u64, total: Option) { + println!("Event {}", type_); let global = self.global.root(); let progressevent = ProgressEvent::new(global.r(), type_, false, false, @@ -437,6 +293,7 @@ impl<'a> PrivateFileReaderHelpers for JSRef<'a, FileReader> { } fn read(self, read_data: ReadData, global: GlobalRef) -> ErrorResult { + println!("Run read on FileReader"); let fr = Trusted::new(global.get_cx(), self, global.script_chan()); @@ -460,6 +317,7 @@ impl<'a> PrivateFileReaderHelpers for JSRef<'a, FileReader> { fn process_partial_result(self, progress: FileReaderProgress) { let msg_id = progress.generation_id(); + println!("Run process_partial_result on FileReader"); // Aborts processing if abort() or open() was called // (including from one of the event handlers called below) @@ -480,11 +338,12 @@ impl<'a> PrivateFileReaderHelpers for JSRef<'a, FileReader> { FileReaderProgress::Reading(_,partial) =>{ self.dispatch_result_progress_event("progress".to_owned());//7. }, - FileReaderProgress::Done(_) => { + FileReaderProgress::Done(_,s) => { self.dispatch_result_progress_event("progress".to_owned()); return_if_fetch_was_terminated!(); self.change_ready_state(FileReaderReadyState::Done);//8.1. return_if_fetch_was_terminated!(); + *self.result.borrow_mut() = Some(s); self.dispatch_result_progress_event("load".to_owned());//8.3 return_if_fetch_was_terminated!(); if(self.ready_state.get() as u16 != FileReaderReadyState::Loading as u16){//8.4 @@ -519,10 +378,10 @@ impl<'a> PrivateFileReaderHelpers for JSRef<'a, FileReader> { self.process_partial_result(FileReaderProgress::Reading(gen_id, payload)); } - fn process_result_complete(self, gen_id: GenerationId, status: Result<(), String>) { + fn process_result_complete(self, gen_id: GenerationId, status: Result) { match status { - Ok(()) => { - self.process_partial_result(FileReaderProgress::Done(gen_id)); + Ok(s) => { + self.process_partial_result(FileReaderProgress::Done(gen_id,s)); }, Err(_) => { self.process_partial_result(FileReaderProgress::Errored(gen_id, Syntax)); @@ -534,3 +393,224 @@ impl<'a> PrivateFileReaderHelpers for JSRef<'a, FileReader> { self.dispatch_progress_event(type_, 0, None); } } + +struct FileReaderManager { + filereader_client: Receiver, + filereader_task: Sender +} + +impl FileReaderManager { + fn new(filereader_client: Receiver, + filereader_task: Sender) -> FileReaderManager { + FileReaderManager { + filereader_client: filereader_client, + filereader_task: filereader_task, + } + } +} + + +impl FileReaderManager { + fn start(&mut self) { + loop { + match self.filereader_client.recv().unwrap() { + ControlMsg::Read(read_data, consumer) => { + self.read(read_data, consumer) + } + ControlMsg::Exit => { + break + } + } + } + } + + fn read(&mut self, mut read_data: ReadData, consumer: ReadConsumer) { + println!("{}", "Run read of FileReaderManager"); + let progress = start_reading(consumer); + progress.send(ProgressMsg::Payload(DOMString::new())).unwrap(); + match read_data.function { + FileReaderFunction::Text => self.readText(read_data, progress), + _ => { + println!("Run read of FileReaderManager: {}", "Not Implemented Function"); + progress.send(ProgressMsg::Done(Ok(DOMString::new()))).unwrap() + } + } + } + + #[allow(unsafe_code)] + fn readText(&mut self, mut read_data: ReadData, progress: ProgressSender) { + let encoding = if read_data.label.is_some() { + encoding_from_whatwg_label(&read_data.label.unwrap()) + } else { + Some(UTF_8 as EncodingRef) + }; + + let enc = match encoding { + Some(code) => code, + None => { + println!("Run readText of FileReaderManager: {}", "Wrong Encoding"); + progress.send(ProgressMsg::Done(Err(DOMString::from_str("Wrong Encoding")))).unwrap(); + return; + } + }; + let input = match read_data.bytes { + Some(bytes) => bytes, + None => { + println!("Run readText of FileReaderManager: {}", "Empty String"); + progress.send(ProgressMsg::Done(Ok(DOMString::new()))).unwrap(); + return; + } + }; + + let (v1, convert) = input.split_at(0); + + let output = enc.decode(convert, DecoderTrap::Strict); + match output { + Ok(s) => { + println!("Run readText of FileReaderManager: {}", "Decoding worked"); + progress.send(ProgressMsg::Done(Ok(s))).unwrap(); + }, + Err(_) => progress.send(ProgressMsg::Done(Err(DOMString::from_str("Decoding failed")))).unwrap() + }; + } +} + +/// For use by loaders in responding to a Load message. +fn start_reading(start_chan: ReadConsumer) -> ProgressSender { + start_reading_opt(start_chan).ok().unwrap() +} + +/// For use by loaders in responding to a Load message. +fn start_reading_opt(start_chan: ReadConsumer) -> Result { + match start_chan { + ReadConsumer::Channel(_) => { + println!("Run start_reading_opt for ReadConsumer::Channel"); + Err(()) + } + ReadConsumer::Listener(target) => { + println!("Run start_reading_opt for ReadConsumer::Listener"); + target.invoke_with_listener(ResultAction::StartReading); + Ok(ProgressSender::Listener(target)) + } + } +} + +pub enum ResultAction { + /// Invoke headers_available + StartReading, + /// Invoke data_available + DataAvailable(DOMString), + /// Invoke response_complete + ResultComplete(Result) +} + +impl ResultAction { + /// Execute the default action on a provided listener. + pub fn process(self, listener: &AsyncReadingListener) { + println!("Run process on ResultAction"); + match self { + ResultAction::StartReading => listener.start_reading(), + ResultAction::DataAvailable(d) => listener.data_available(d), + ResultAction::ResultComplete(r) => listener.reading_complete(r), + } + } +} +pub trait AsyncResultTarget { + fn invoke_with_listener(&self, action: ResultAction); +} + +pub trait AsyncReadingListener { + fn start_reading(&self); + fn data_available(&self, payload: DOMString); + fn reading_complete(&self, status: Result); +} + +pub struct ReadingListener { + pub context: Arc>, + pub script_chan: Box, +} + +impl AsyncResultTarget for ReadingListener { + fn invoke_with_listener(&self, action: ResultAction) { + match action { + ResultAction::StartReading => println!("Run invoke_with_listener on AsyncReadingListener: {}", "StartReading"), + ResultAction::DataAvailable(_) => println!("Run invoke_with_listener on AsyncReadingListener: {}", "DataAvailable"), + ResultAction::ResultComplete(_) => println!("Run invoke_with_listener on AsyncReadingListener: {}", "ResultComplete"), + } + self.script_chan.send(ScriptMsg::RunnableMsg(box ListenerRunnable { + context: self.context.clone(), + action: action, + })).unwrap(); + } +} + +pub trait PreInvoke { + fn should_invoke(&self) -> bool { + true + } +} +/// A runnable for moving the async network events between threads. +struct ListenerRunnable { + context: Arc>, + action: ResultAction, +} + +impl Runnable for ListenerRunnable { + fn handler(self: Box>) { + println!("{}", "Run handler on Runnable"); + let this = *self; + let context = this.context.lock().unwrap(); + if context.should_invoke() { + this.action.process(&*context); + } + } +} + +#[derive(Clone)] +pub enum FileReaderProgress { + Start(GenerationId), + Reading(GenerationId, DOMString), + Done(GenerationId, DOMString), + Errored(GenerationId, Error), +} + +impl FileReaderProgress { + fn generation_id(&self) -> GenerationId { + match *self { + FileReaderProgress::Reading(id, _) | + FileReaderProgress::Start(id) | + FileReaderProgress::Done(id, _) | + FileReaderProgress::Errored(id, _) => id + } + } +} + + +#[derive(PartialEq,Debug)] +pub enum ProgressMsg { + Payload(DOMString), + Done(Result) +} + +pub enum ProgressSender { + Channel(Sender), + Listener(Box), +} + +impl ProgressSender { + //XXXjdm return actual error + pub fn send(&self, msg: ProgressMsg) -> Result<(), ()> { + println!("Run send on ProgressSender"); + match *self { + ProgressSender::Channel(ref c) => c.send(msg).map_err(|_| ()), + ProgressSender::Listener(ref b) => { + let action = match msg { + ProgressMsg::Payload(buf) => ResultAction::DataAvailable(buf), + ProgressMsg::Done(status) => ResultAction::ResultComplete(status), + }; + b.invoke_with_listener(action); + Ok(()) + } + } + } +} \ No newline at end of file diff --git a/tests/wpt/metadata/FileAPI/FileReader/Progress_event_bubbles_cancelable.html.ini b/tests/wpt/metadata/FileAPI/FileReader/Progress_event_bubbles_cancelable.html.ini index 9e2248b63c8b..90cf771afafb 100644 --- a/tests/wpt/metadata/FileAPI/FileReader/Progress_event_bubbles_cancelable.html.ini +++ b/tests/wpt/metadata/FileAPI/FileReader/Progress_event_bubbles_cancelable.html.ini @@ -1,5 +1,3 @@ [Progress_event_bubbles_cancelable.html] type: testharness - [Check the values of bubbles and cancelable are false when the progress event is dispatched] - expected: FAIL diff --git a/tests/wpt/metadata/FileAPI/blob/Blob-constructor.html.ini b/tests/wpt/metadata/FileAPI/blob/Blob-constructor.html.ini index 24d11eb6ab6b..a85ae00d6a61 100644 --- a/tests/wpt/metadata/FileAPI/blob/Blob-constructor.html.ini +++ b/tests/wpt/metadata/FileAPI/blob/Blob-constructor.html.ini @@ -9,9 +9,6 @@ [A plain object with a length property should be treated as a sequence for the blobParts argument.] expected: FAIL - [A String object should be treated as a sequence for the blobParts argument.] - expected: FAIL - [A Uint8Array object should be treated as a sequence for the blobParts argument.] expected: FAIL @@ -48,9 +45,6 @@ [Passing an element as the blobParts array should work.] expected: FAIL - [Passing an platform object that supports indexed properties as the blobParts array should work (window).] - expected: FAIL - [Passing an platform object that supports indexed properties as the blobParts array should work (window with custom toString).] expected: FAIL @@ -74,46 +68,3 @@ [Array with mixed types] expected: FAIL - - [Passing null (index 0) for options should use the defaults.] - expected: FAIL - - [Passing null (index 0) for options should use the defaults (with newlines).] - expected: FAIL - - [Passing undefined (index 1) for options should use the defaults.] - expected: FAIL - - [Passing undefined (index 1) for options should use the defaults (with newlines).] - expected: FAIL - - [Passing object "[object Object\]" (index 2) for options should use the defaults.] - expected: FAIL - - [Passing object "[object Object\]" (index 2) for options should use the defaults (with newlines).] - expected: FAIL - - [Passing object "[object Object\]" (index 3) for options should use the defaults.] - expected: FAIL - - [Passing object "[object Object\]" (index 3) for options should use the defaults (with newlines).] - expected: FAIL - - [Passing object "/regex/" (index 4) for options should use the defaults.] - expected: FAIL - - [Passing object "/regex/" (index 4) for options should use the defaults (with newlines).] - expected: FAIL - - [Passing function "function () {}" (index 5) for options should use the defaults.] - expected: FAIL - - [Passing function "function () {}" (index 5) for options should use the defaults (with newlines).] - expected: FAIL - - [Newlines should not change when endings is 'transparent'.] - expected: FAIL - - [Newlines should not change when endings is 'native'.] - expected: FAIL - diff --git a/tests/wpt/metadata/FileAPI/blob/Blob-slice.html.ini b/tests/wpt/metadata/FileAPI/blob/Blob-slice.html.ini index d594d79442b7..23a4e415330c 100644 --- a/tests/wpt/metadata/FileAPI/blob/Blob-slice.html.ini +++ b/tests/wpt/metadata/FileAPI/blob/Blob-slice.html.ini @@ -1,47 +1,9 @@ [Blob-slice.html] type: testharness - [no-argument Blob slice] - expected: FAIL - - [blob1.] - expected: FAIL - - [blob2.] - expected: FAIL - - [Slicing test: slice (0,0).] - expected: FAIL - - [Slicing test: slice (0,1).] - expected: FAIL - - [Slicing test: slice (0,2).] - expected: FAIL - - [Slicing test: slice (0,3).] - expected: FAIL - - [Slicing test: slice (0,4).] - expected: FAIL - - [Slicing test: slice (0,5).] - expected: FAIL - - [Slicing test: slice (0,6).] - expected: FAIL - - [Slicing test: slice (0,7).] - expected: FAIL - - [Slicing test: slice (0,8).] - expected: FAIL [Slicing test: slice (1,0).] expected: FAIL - [Slicing test: slice (1,1).] - expected: FAIL - [Slicing test: slice (1,2).] expected: FAIL @@ -60,9 +22,6 @@ [Slicing test: slice (1,7).] expected: FAIL - [Slicing test: slice (2,0).] - expected: FAIL - [Slicing test: slice (2,1).] expected: FAIL @@ -87,9 +46,6 @@ [Slicing test: slice (3,4).] expected: FAIL - [Slicing test: slice (3,5).] - expected: FAIL - [Slicing test: slice (4,0).] expected: FAIL @@ -150,9 +106,6 @@ [Slicing test: slice (8,3).] expected: FAIL - [Invalid contentType ("ÿ")] - expected: FAIL - [Invalid contentType ("te(xt/plain")] expected: FAIL @@ -206,25 +159,3 @@ [Invalid contentType ("te xt/plain")] expected: FAIL - - [Invalid contentType ("te\\txt/plain")] - expected: FAIL - - [Invalid contentType ("te\\0xt/plain")] - expected: FAIL - - [Invalid contentType ("te\\x1fxt/plain")] - expected: FAIL - - [Invalid contentType ("text/plain")] - expected: FAIL - - [Valid contentType ("TEXT/PLAIN")] - expected: FAIL - - [Valid contentType ("text/plain;charset = UTF-8")] - expected: FAIL - - [Valid contentType ("text/plain;charset=UTF-8")] - expected: FAIL - diff --git a/tests/wpt/metadata/FileAPI/fileReader.html.ini b/tests/wpt/metadata/FileAPI/fileReader.html.ini index 85f443adc773..4ba43f548a04 100644 --- a/tests/wpt/metadata/FileAPI/fileReader.html.ini +++ b/tests/wpt/metadata/FileAPI/fileReader.html.ini @@ -1,2 +1,8 @@ [fileReader.html] type: testharness + + [FileReader States -- abort] + expected: FAIL + + [FileReader States -- events] + expected: FAIL \ No newline at end of file diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/Determining-Encoding.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/Determining-Encoding.html.ini index 6ef475882e02..720e679e80eb 100644 --- a/tests/wpt/metadata/FileAPI/reading-data-section/Determining-Encoding.html.ini +++ b/tests/wpt/metadata/FileAPI/reading-data-section/Determining-Encoding.html.ini @@ -1,20 +1,3 @@ [Determining-Encoding.html] type: testharness - [Blob Determing Encoding with encoding argument] - expected: FAIL - - [Blob Determing Encoding with type attribute] - expected: FAIL - - [Blob Determing Encoding with UTF-8 BOM] - expected: FAIL - - [Blob Determing Encoding without anything implying charset.] - expected: FAIL - - [Blob Determing Encoding with UTF-16BE BOM] - expected: FAIL - - [Blob Determing Encoding with UTF-16LE BOM] - expected: FAIL From 120dbbce083cf04a670773f69a343cd7dc731ac1 Mon Sep 17 00:00:00 2001 From: farodin91 Date: Thu, 28 May 2015 01:13:39 +0200 Subject: [PATCH 06/25] Some clean up #6172 --- components/script/dom/filereader.rs | 169 ++++++------------ .../script/dom/webidls/FileReader.webidl | 3 +- .../wpt/metadata/FileAPI/fileReader.html.ini | 8 +- .../wpt/metadata/FileAPI/idlharness.html.ini | 9 - .../FileReader-multiple-reads.html.ini | 6 - 5 files changed, 55 insertions(+), 140 deletions(-) diff --git a/components/script/dom/filereader.rs b/components/script/dom/filereader.rs index 6ff7abe384e5..05212600fb5f 100644 --- a/components/script/dom/filereader.rs +++ b/components/script/dom/filereader.rs @@ -19,8 +19,8 @@ use dom::blob::Blob; use dom::blob::BlobHelpers; use dom::domexception::DOMException; use dom::progressevent::ProgressEvent; -use encoding::all::{UTF_8, UTF_16LE, UTF_16BE}; -use encoding::types::{decode, EncodingRef, DecoderTrap}; +use encoding::all::UTF_8; +use encoding::types::{EncodingRef, DecoderTrap}; use encoding::label::encoding_from_whatwg_label; use script_task::{ScriptChan, ScriptMsg, Runnable, ScriptPort}; use std::cell::{Cell, RefCell}; @@ -32,10 +32,9 @@ use util::task::spawn_named; pub enum FileReaderFunction { ArrayBuffer, Text, - Url, + DataUrl, } - pub struct ReadData { pub bytes: Option>, pub blobtype: DOMString, @@ -58,15 +57,7 @@ impl ReadData { #[jstraceable] pub struct GenerationId(u32); -pub struct ReadResult { - /// Port for reading data. - pub progress_port: Receiver, -} - -pub enum ReadConsumer { - Channel(Sender), - Listener(Box), -} +pub type ReadConsumer = Box; pub type FileReaderTask = Sender; @@ -77,9 +68,7 @@ pub enum ControlMsg { struct FileReaderContext { fr: Trusted, - gen_id: GenerationId, - buf: RefCell, - sync_status: RefCell>, + gen_id: GenerationId } #[repr(u16)] @@ -101,7 +90,6 @@ pub struct FileReader { generation_id: Cell, filereader_task: RefCell>, abort_target: RefCell>>, - //result: Option } impl FileReader { @@ -130,18 +118,15 @@ impl FileReader { fn initiate_async_fr(context: Arc>, script_chan: Box, filereader_task: FileReaderTask, read_data: ReadData) { impl AsyncReadingListener for FileReaderContext { fn data_available(&self, payload: DOMString){ - println!("{}", "Run data_available on AsyncReadingListener"); let fr = self.fr.to_temporary().root(); - fr.r().process_data_available(self.gen_id, self.buf.borrow().clone()); + fr.r().process_data_available(self.gen_id, payload); } fn reading_complete(&self, status: Result){ - println!("{}", "Run reading_complete on AsyncReadingListener"); let fr = self.fr.to_temporary().root(); fr.r().process_result_complete(self.gen_id, status); } fn start_reading(&self){ - println!("{}", "Run start_reading on AsyncReadingListener"); let fr = self.fr.to_temporary().root(); fr.r().process_start(self.gen_id); } @@ -153,13 +138,12 @@ impl FileReader { fr.r().generation_id.get() == self.gen_id } } - println!("{}", "Run initiate_async_fr"); let listener = box ReadingListener {//replace context: context, script_chan: script_chan, }; - filereader_task.send(ControlMsg::Read(read_data, ReadConsumer::Listener(listener))).unwrap(); + filereader_task.send(ControlMsg::Read(read_data, listener)).unwrap(); } } @@ -171,12 +155,26 @@ impl<'a> FileReaderMethods for JSRef<'a, FileReader> { event_handler!(error, GetOnerror, SetOnerror); event_handler!(loadend, GetOnloadend, SetOnloadend); - /*fn ReadAsArrayBuffer(self,blob: JSRef){ + fn ReadAsArrayBuffer(self,blob: JSRef) -> ErrorResult { + let global = self.global.root(); + if self.ready_state.get() as u16 == FileReaderReadyState::Loading as u16 {//1. + //throw DOMException + return Err(InvalidState); + } - }*/ + self.change_ready_state(FileReaderReadyState::Loading);//3. + + let bytes = blob.read_out_buffer(); + let type_ = blob.read_out_type(); + + + let load_data = ReadData::new(bytes.clone(),type_,None,FileReaderFunction::ArrayBuffer); + + self.read(load_data,global.r()) + + } fn ReadAsText(self,blob: JSRef,label:Option) -> ErrorResult { - println!("{}", "Run ReadAsText"); let global = self.global.root(); if self.ready_state.get() as u16 == FileReaderReadyState::Loading as u16 {//1. ReadAsText //throw DOMException @@ -189,14 +187,13 @@ impl<'a> FileReaderMethods for JSRef<'a, FileReader> { let type_ = blob.read_out_type(); - let mut load_data = ReadData::new(bytes.clone(),type_,label,FileReaderFunction::Text); + let load_data = ReadData::new(bytes.clone(),type_,label,FileReaderFunction::Text); - self.read(load_data,global.r()); - Ok(()) + self.read(load_data,global.r()) } fn ReadAsDataURL(self,blob: JSRef) -> ErrorResult { - println!("{}", "Run ReadAsText"); + println!("{}", "Run ReadAsDataURL"); let global = self.global.root(); if self.ready_state.get() as u16 == FileReaderReadyState::Loading as u16 {//1. ReadAsText //throw DOMException @@ -208,16 +205,14 @@ impl<'a> FileReaderMethods for JSRef<'a, FileReader> { let bytes = blob.read_out_buffer(); let type_ = blob.read_out_type(); - let mut load_data = ReadData::new(bytes.clone(),type_,None,FileReaderFunction::Text); + let load_data = ReadData::new(bytes.clone(),type_,None,FileReaderFunction::DataUrl); - self.read(load_data,global.r()); - Ok(()) - + self.read(load_data,global.r()) } fn Abort(self) { println!("{}", "Run Abort"); - let global = self.global.root(); + //let global = self.global.root(); if self.ready_state.get() as u16 == FileReaderReadyState::Loading as u16 { self.change_ready_state(FileReaderReadyState::Done); @@ -225,9 +220,6 @@ impl<'a> FileReaderMethods for JSRef<'a, FileReader> { *self.result.borrow_mut() = None; - //end tasks ? - - //terminate reading alg self.terminate_ongoing_reading(); self.dispatch_result_progress_event("abort".to_owned()); @@ -267,7 +259,7 @@ trait PrivateFileReaderHelpers { impl<'a> PrivateFileReaderHelpers for JSRef<'a, FileReader> { fn dispatch_progress_event(self, type_: DOMString, loaded: u64, total: Option) { - println!("Event {}", type_); + //println!("Event {}", type_); let global = self.global.root(); let progressevent = ProgressEvent::new(global.r(), type_, false, false, @@ -285,23 +277,19 @@ impl<'a> PrivateFileReaderHelpers for JSRef<'a, FileReader> { fn new_filereader_task(self) -> FileReaderTask { let (setup_chan, setup_port) = channel(); - let setup_chan_clone = setup_chan.clone(); spawn_named("FileReaderManager".to_owned(), move || { - FileReaderManager::new(setup_port, setup_chan_clone).start(); + FileReaderManager::new(setup_port).start(); }); setup_chan } fn read(self, read_data: ReadData, global: GlobalRef) -> ErrorResult { - println!("Run read on FileReader"); let fr = Trusted::new(global.get_cx(), self, global.script_chan()); let context = Arc::new(Mutex::new(FileReaderContext { fr: fr, - gen_id: self.generation_id.get(), - buf: RefCell::new(DOMString::new()), - sync_status: RefCell::new(None), + gen_id: self.generation_id.get() })); let script_chan = global.script_chan(); @@ -317,7 +305,6 @@ impl<'a> PrivateFileReaderHelpers for JSRef<'a, FileReader> { fn process_partial_result(self, progress: FileReaderProgress) { let msg_id = progress.generation_id(); - println!("Run process_partial_result on FileReader"); // Aborts processing if abort() or open() was called // (including from one of the event handlers called below) @@ -335,7 +322,7 @@ impl<'a> PrivateFileReaderHelpers for JSRef<'a, FileReader> { FileReaderProgress::Start(_)=>{ self.dispatch_result_progress_event("loadstart".to_owned());//6. }, - FileReaderProgress::Reading(_,partial) =>{ + FileReaderProgress::Reading(_,_) =>{ self.dispatch_result_progress_event("progress".to_owned());//7. }, FileReaderProgress::Done(_,s) => { @@ -346,7 +333,7 @@ impl<'a> PrivateFileReaderHelpers for JSRef<'a, FileReader> { *self.result.borrow_mut() = Some(s); self.dispatch_result_progress_event("load".to_owned());//8.3 return_if_fetch_was_terminated!(); - if(self.ready_state.get() as u16 != FileReaderReadyState::Loading as u16){//8.4 + if self.ready_state.get() as u16 != FileReaderReadyState::Loading as u16 {//8.4 self.dispatch_result_progress_event("loadend".to_owned()); } }, @@ -396,15 +383,12 @@ impl<'a> PrivateFileReaderHelpers for JSRef<'a, FileReader> { struct FileReaderManager { filereader_client: Receiver, - filereader_task: Sender } impl FileReaderManager { - fn new(filereader_client: Receiver, - filereader_task: Sender) -> FileReaderManager { + fn new(filereader_client: Receiver) -> FileReaderManager { FileReaderManager { filereader_client: filereader_client, - filereader_task: filereader_task, } } } @@ -415,7 +399,8 @@ impl FileReaderManager { loop { match self.filereader_client.recv().unwrap() { ControlMsg::Read(read_data, consumer) => { - self.read(read_data, consumer) + self.read(read_data, consumer); + break } ControlMsg::Exit => { break @@ -424,21 +409,19 @@ impl FileReaderManager { } } - fn read(&mut self, mut read_data: ReadData, consumer: ReadConsumer) { - println!("{}", "Run read of FileReaderManager"); + fn read(&mut self, read_data: ReadData, consumer: ReadConsumer) { let progress = start_reading(consumer); - progress.send(ProgressMsg::Payload(DOMString::new())).unwrap(); + progress.invoke_with_listener(ResultAction::DataAvailable(DOMString::new())); match read_data.function { FileReaderFunction::Text => self.readText(read_data, progress), _ => { println!("Run read of FileReaderManager: {}", "Not Implemented Function"); - progress.send(ProgressMsg::Done(Ok(DOMString::new()))).unwrap() + progress.invoke_with_listener(ResultAction::ResultComplete(Ok(DOMString::new()))) } } } - #[allow(unsafe_code)] - fn readText(&mut self, mut read_data: ReadData, progress: ProgressSender) { + fn readText(&mut self, read_data: ReadData, progress: ReadConsumer) { let encoding = if read_data.label.is_some() { encoding_from_whatwg_label(&read_data.label.unwrap()) } else { @@ -448,51 +431,40 @@ impl FileReaderManager { let enc = match encoding { Some(code) => code, None => { - println!("Run readText of FileReaderManager: {}", "Wrong Encoding"); - progress.send(ProgressMsg::Done(Err(DOMString::from_str("Wrong Encoding")))).unwrap(); + progress.invoke_with_listener(ResultAction::ResultComplete(Err(DOMString::from_str("Wrong Encoding")))); return; } }; let input = match read_data.bytes { Some(bytes) => bytes, None => { - println!("Run readText of FileReaderManager: {}", "Empty String"); - progress.send(ProgressMsg::Done(Ok(DOMString::new()))).unwrap(); + progress.invoke_with_listener(ResultAction::ResultComplete(Ok(DOMString::new()))); return; } }; - let (v1, convert) = input.split_at(0); + progress.invoke_with_listener(ResultAction::DataAvailable(DOMString::new())); + let (_, convert) = input.split_at(0); let output = enc.decode(convert, DecoderTrap::Strict); match output { Ok(s) => { - println!("Run readText of FileReaderManager: {}", "Decoding worked"); - progress.send(ProgressMsg::Done(Ok(s))).unwrap(); + progress.invoke_with_listener(ResultAction::ResultComplete(Ok(s))); }, - Err(_) => progress.send(ProgressMsg::Done(Err(DOMString::from_str("Decoding failed")))).unwrap() + Err(_) => progress.invoke_with_listener(ResultAction::ResultComplete(Err(DOMString::from_str("Decoding failed")))) }; } } /// For use by loaders in responding to a Load message. -fn start_reading(start_chan: ReadConsumer) -> ProgressSender { +fn start_reading(start_chan: ReadConsumer) -> ReadConsumer { start_reading_opt(start_chan).ok().unwrap() } /// For use by loaders in responding to a Load message. -fn start_reading_opt(start_chan: ReadConsumer) -> Result { - match start_chan { - ReadConsumer::Channel(_) => { - println!("Run start_reading_opt for ReadConsumer::Channel"); - Err(()) - } - ReadConsumer::Listener(target) => { - println!("Run start_reading_opt for ReadConsumer::Listener"); - target.invoke_with_listener(ResultAction::StartReading); - Ok(ProgressSender::Listener(target)) - } - } +fn start_reading_opt(start_chan: ReadConsumer) -> Result { + start_chan.invoke_with_listener(ResultAction::StartReading); + Ok(start_chan) } pub enum ResultAction { @@ -507,7 +479,6 @@ pub enum ResultAction { impl ResultAction { /// Execute the default action on a provided listener. pub fn process(self, listener: &AsyncReadingListener) { - println!("Run process on ResultAction"); match self { ResultAction::StartReading => listener.start_reading(), ResultAction::DataAvailable(d) => listener.data_available(d), @@ -532,11 +503,6 @@ pub struct ReadingListener { impl AsyncResultTarget for ReadingListener { fn invoke_with_listener(&self, action: ResultAction) { - match action { - ResultAction::StartReading => println!("Run invoke_with_listener on AsyncReadingListener: {}", "StartReading"), - ResultAction::DataAvailable(_) => println!("Run invoke_with_listener on AsyncReadingListener: {}", "DataAvailable"), - ResultAction::ResultComplete(_) => println!("Run invoke_with_listener on AsyncReadingListener: {}", "ResultComplete"), - } self.script_chan.send(ScriptMsg::RunnableMsg(box ListenerRunnable { context: self.context.clone(), action: action, @@ -557,7 +523,6 @@ struct ListenerRunnable { impl Runnable for ListenerRunnable { fn handler(self: Box>) { - println!("{}", "Run handler on Runnable"); let this = *self; let context = this.context.lock().unwrap(); if context.should_invoke() { @@ -584,33 +549,3 @@ impl FileReaderProgress { } } } - - -#[derive(PartialEq,Debug)] -pub enum ProgressMsg { - Payload(DOMString), - Done(Result) -} - -pub enum ProgressSender { - Channel(Sender), - Listener(Box), -} - -impl ProgressSender { - //XXXjdm return actual error - pub fn send(&self, msg: ProgressMsg) -> Result<(), ()> { - println!("Run send on ProgressSender"); - match *self { - ProgressSender::Channel(ref c) => c.send(msg).map_err(|_| ()), - ProgressSender::Listener(ref b) => { - let action = match msg { - ProgressMsg::Payload(buf) => ResultAction::DataAvailable(buf), - ProgressMsg::Done(status) => ResultAction::ResultComplete(status), - }; - b.invoke_with_listener(action); - Ok(()) - } - } - } -} \ No newline at end of file diff --git a/components/script/dom/webidls/FileReader.webidl b/components/script/dom/webidls/FileReader.webidl index 95e4abe8899f..bb55469f772b 100644 --- a/components/script/dom/webidls/FileReader.webidl +++ b/components/script/dom/webidls/FileReader.webidl @@ -13,7 +13,8 @@ interface FileReader: EventTarget { // async read methods - //void readAsArrayBuffer(Blob blob); + [Throws] + void readAsArrayBuffer(Blob blob); [Throws] void readAsText(Blob blob, optional DOMString label); [Throws] diff --git a/tests/wpt/metadata/FileAPI/fileReader.html.ini b/tests/wpt/metadata/FileAPI/fileReader.html.ini index 4ba43f548a04..4bceed2ec485 100644 --- a/tests/wpt/metadata/FileAPI/fileReader.html.ini +++ b/tests/wpt/metadata/FileAPI/fileReader.html.ini @@ -1,8 +1,2 @@ [fileReader.html] - type: testharness - - [FileReader States -- abort] - expected: FAIL - - [FileReader States -- events] - expected: FAIL \ No newline at end of file + type: testharness \ No newline at end of file diff --git a/tests/wpt/metadata/FileAPI/idlharness.html.ini b/tests/wpt/metadata/FileAPI/idlharness.html.ini index 73c2096e8afd..d7cc366fc0a2 100644 --- a/tests/wpt/metadata/FileAPI/idlharness.html.ini +++ b/tests/wpt/metadata/FileAPI/idlharness.html.ini @@ -96,15 +96,6 @@ [FileList interface: file_input.files must inherit property "length" with the proper type (1)] expected: FAIL - [FileReader interface: new FileReader() must inherit property "readAsArrayBuffer" with the proper type (0)] - expected: FAIL - - [FileReader interface: calling readAsArrayBuffer(Blob) on new FileReader() with too few arguments must throw TypeError] - expected: FAIL - - [FileReader interface: operation readAsArrayBuffer(Blob)] - expected: FAIL - [FileReaderSync interface: existence and properties of interface object] expected: FAIL diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-multiple-reads.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-multiple-reads.html.ini index 75e16426b8de..7ee05b944d39 100644 --- a/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-multiple-reads.html.ini +++ b/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-multiple-reads.html.ini @@ -1,11 +1,5 @@ [FileReader-multiple-reads.html] type: testharness - [test FileReader InvalidStateError exception for readAsArrayBuffer] - expected: FAIL - - [test FileReader InvalidStateError exception in onloadstart event for readAsArrayBuffer] - expected: FAIL - [test FileReader no InvalidStateError exception in onloadstart event for readAsArrayBuffer] expected: FAIL \ No newline at end of file From d80b8ac298d61b06f39c91b38787969a1a0ff53f Mon Sep 17 00:00:00 2001 From: farodin91 Date: Thu, 28 May 2015 12:13:11 +0200 Subject: [PATCH 07/25] remove not Pass tests and some clean up #6172 --- components/script/dom/filereader.rs | 48 ++++++++----------- .../wpt/metadata/FileAPI/idlharness.html.ini | 6 +++ .../Determining-Encoding.html.ini | 16 +++++++ .../filereader_result.html.ini | 2 + 4 files changed, 45 insertions(+), 27 deletions(-) diff --git a/components/script/dom/filereader.rs b/components/script/dom/filereader.rs index 05212600fb5f..b86e4e54a977 100644 --- a/components/script/dom/filereader.rs +++ b/components/script/dom/filereader.rs @@ -139,7 +139,7 @@ impl FileReader { } } - let listener = box ReadingListener {//replace + let listener = box ReadingListener { context: context, script_chan: script_chan, }; @@ -158,7 +158,6 @@ impl<'a> FileReaderMethods for JSRef<'a, FileReader> { fn ReadAsArrayBuffer(self,blob: JSRef) -> ErrorResult { let global = self.global.root(); if self.ready_state.get() as u16 == FileReaderReadyState::Loading as u16 {//1. - //throw DOMException return Err(InvalidState); } @@ -171,13 +170,11 @@ impl<'a> FileReaderMethods for JSRef<'a, FileReader> { let load_data = ReadData::new(bytes.clone(),type_,None,FileReaderFunction::ArrayBuffer); self.read(load_data,global.r()) - } fn ReadAsText(self,blob: JSRef,label:Option) -> ErrorResult { let global = self.global.root(); if self.ready_state.get() as u16 == FileReaderReadyState::Loading as u16 {//1. ReadAsText - //throw DOMException return Err(InvalidState); } @@ -193,14 +190,13 @@ impl<'a> FileReaderMethods for JSRef<'a, FileReader> { } fn ReadAsDataURL(self,blob: JSRef) -> ErrorResult { - println!("{}", "Run ReadAsDataURL"); + //println!("{}", "Run ReadAsDataURL"); let global = self.global.root(); - if self.ready_state.get() as u16 == FileReaderReadyState::Loading as u16 {//1. ReadAsText - //throw DOMException + if self.ready_state.get() as u16 == FileReaderReadyState::Loading as u16 {//1. return Err(InvalidState); } - self.change_ready_state(FileReaderReadyState::Loading);//3. ReadAsText + self.change_ready_state(FileReaderReadyState::Loading);//3. let bytes = blob.read_out_buffer(); let type_ = blob.read_out_type(); @@ -211,9 +207,6 @@ impl<'a> FileReaderMethods for JSRef<'a, FileReader> { } fn Abort(self) { - println!("{}", "Run Abort"); - //let global = self.global.root(); - if self.ready_state.get() as u16 == FileReaderReadyState::Loading as u16 { self.change_ready_state(FileReaderReadyState::Done); } @@ -235,7 +228,6 @@ impl<'a> FileReaderMethods for JSRef<'a, FileReader> { FileReaderReadyState::Done | FileReaderReadyState::Loading => self.result.borrow().clone(), _ => None } - //self.result.borrow() } fn ReadyState(self) -> u16 { @@ -259,7 +251,6 @@ trait PrivateFileReaderHelpers { impl<'a> PrivateFileReaderHelpers for JSRef<'a, FileReader> { fn dispatch_progress_event(self, type_: DOMString, loaded: u64, total: Option) { - //println!("Event {}", type_); let global = self.global.root(); let progressevent = ProgressEvent::new(global.r(), type_, false, false, @@ -284,7 +275,6 @@ impl<'a> PrivateFileReaderHelpers for JSRef<'a, FileReader> { } fn read(self, read_data: ReadData, global: GlobalRef) -> ErrorResult { - let fr = Trusted::new(global.get_cx(), self, global.script_chan()); let context = Arc::new(Mutex::new(FileReaderContext { @@ -338,10 +328,8 @@ impl<'a> PrivateFileReaderHelpers for JSRef<'a, FileReader> { } }, FileReaderProgress::Errored(_, e) => { - let errormsg = match e { Abort => "abort", - Timeout => "timeout", _ => "error", }; self.dispatch_result_progress_event("progress".to_owned()); @@ -411,16 +399,22 @@ impl FileReaderManager { fn read(&mut self, read_data: ReadData, consumer: ReadConsumer) { let progress = start_reading(consumer); - progress.invoke_with_listener(ResultAction::DataAvailable(DOMString::new())); + progress.invoke(ResultAction::DataAvailable(DOMString::new())); match read_data.function { FileReaderFunction::Text => self.readText(read_data, progress), + FileReaderFunction::DataUrl => self.readDataUrl(read_data, progress), _ => { - println!("Run read of FileReaderManager: {}", "Not Implemented Function"); - progress.invoke_with_listener(ResultAction::ResultComplete(Ok(DOMString::new()))) + //println!("Run read of FileReaderManager: {}", "Not Implemented Function"); + progress.invoke(ResultAction::ResultComplete(Err(DOMString::from_str("Not Implemented Function")))) } } } + fn readDataUrl(&mut self, read_data: ReadData, progress: ReadConsumer) { + //println!("Run readDataUrl of FileReaderManager: {}", "Not Implemented Function"); + progress.invoke(ResultAction::ResultComplete(Err(DOMString::from_str("Not Implemented Function")))) + } + fn readText(&mut self, read_data: ReadData, progress: ReadConsumer) { let encoding = if read_data.label.is_some() { encoding_from_whatwg_label(&read_data.label.unwrap()) @@ -431,27 +425,27 @@ impl FileReaderManager { let enc = match encoding { Some(code) => code, None => { - progress.invoke_with_listener(ResultAction::ResultComplete(Err(DOMString::from_str("Wrong Encoding")))); + progress.invoke(ResultAction::ResultComplete(Err(DOMString::from_str("Wrong Encoding")))); return; } }; let input = match read_data.bytes { Some(bytes) => bytes, None => { - progress.invoke_with_listener(ResultAction::ResultComplete(Ok(DOMString::new()))); + progress.invoke(ResultAction::ResultComplete(Ok(DOMString::new()))); return; } }; - progress.invoke_with_listener(ResultAction::DataAvailable(DOMString::new())); + progress.invoke(ResultAction::DataAvailable(DOMString::new())); let (_, convert) = input.split_at(0); let output = enc.decode(convert, DecoderTrap::Strict); match output { Ok(s) => { - progress.invoke_with_listener(ResultAction::ResultComplete(Ok(s))); + progress.invoke(ResultAction::ResultComplete(Ok(s))); }, - Err(_) => progress.invoke_with_listener(ResultAction::ResultComplete(Err(DOMString::from_str("Decoding failed")))) + Err(_) => progress.invoke(ResultAction::ResultComplete(Err(DOMString::from_str("Decoding failed")))) }; } } @@ -463,7 +457,7 @@ fn start_reading(start_chan: ReadConsumer) -> ReadConsumer { /// For use by loaders in responding to a Load message. fn start_reading_opt(start_chan: ReadConsumer) -> Result { - start_chan.invoke_with_listener(ResultAction::StartReading); + start_chan.invoke(ResultAction::StartReading); Ok(start_chan) } @@ -487,7 +481,7 @@ impl ResultAction { } } pub trait AsyncResultTarget { - fn invoke_with_listener(&self, action: ResultAction); + fn invoke(&self, action: ResultAction); } pub trait AsyncReadingListener { @@ -502,7 +496,7 @@ pub struct ReadingListener { } impl AsyncResultTarget for ReadingListener { - fn invoke_with_listener(&self, action: ResultAction) { + fn invoke(&self, action: ResultAction) { self.script_chan.send(ScriptMsg::RunnableMsg(box ListenerRunnable { context: self.context.clone(), action: action, diff --git a/tests/wpt/metadata/FileAPI/idlharness.html.ini b/tests/wpt/metadata/FileAPI/idlharness.html.ini index d7cc366fc0a2..4d8db958b9ce 100644 --- a/tests/wpt/metadata/FileAPI/idlharness.html.ini +++ b/tests/wpt/metadata/FileAPI/idlharness.html.ini @@ -96,6 +96,12 @@ [FileList interface: file_input.files must inherit property "length" with the proper type (1)] expected: FAIL + [FileReader interface: existence and properties of interface object] + expected: FAIL + + [FileReader interface object length] + expected: FAIL + [FileReaderSync interface: existence and properties of interface object] expected: FAIL diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/Determining-Encoding.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/Determining-Encoding.html.ini index 720e679e80eb..d3d677365af5 100644 --- a/tests/wpt/metadata/FileAPI/reading-data-section/Determining-Encoding.html.ini +++ b/tests/wpt/metadata/FileAPI/reading-data-section/Determining-Encoding.html.ini @@ -1,3 +1,19 @@ [Determining-Encoding.html] type: testharness + [Blob Determing Encoding with encoding argument] + expected: FAIL + [Blob Determing Encoding with type attribute] + expected: FAIL + + [Blob Determing Encoding with UTF-8 BOM] + expected: FAIL + + [Blob Determing Encoding without anything implying charset.] + expected: FAIL + + [Blob Determing Encoding with UTF-16BE BOM] + expected: FAIL + + [Blob Determing Encoding with UTF-16LE BOM] + expected: FAIL diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_result.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_result.html.ini index cd5ef83262bd..b7aa03165851 100644 --- a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_result.html.ini +++ b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_result.html.ini @@ -1,5 +1,7 @@ [filereader_result.html] type: testharness + [readAsDataURL] + expected: FAIL [readAsArrayBuffer] expected: FAIL \ No newline at end of file From d9963db8f05cd67dcdfe46972502534f69cc3988 Mon Sep 17 00:00:00 2001 From: farodin91 Date: Thu, 28 May 2015 12:17:29 +0200 Subject: [PATCH 08/25] add new line at end of file #6172 --- components/script/dom/webidls/FileReader.webidl | 2 +- tests/html/filereader-test.html | 13 ------------- tests/wpt/metadata/FileAPI/fileReader.html.ini | 2 +- .../FileReader-multiple-reads.html.ini | 2 +- .../filereader_readystate.html.ini | 2 +- .../reading-data-section/filereader_result.html.ini | 2 +- 6 files changed, 5 insertions(+), 18 deletions(-) delete mode 100644 tests/html/filereader-test.html diff --git a/components/script/dom/webidls/FileReader.webidl b/components/script/dom/webidls/FileReader.webidl index bb55469f772b..e55a44dcd61e 100644 --- a/components/script/dom/webidls/FileReader.webidl +++ b/components/script/dom/webidls/FileReader.webidl @@ -42,4 +42,4 @@ interface FileReader: EventTarget { attribute EventHandler onerror; attribute EventHandler onloadend; -}; \ No newline at end of file +}; diff --git a/tests/html/filereader-test.html b/tests/html/filereader-test.html deleted file mode 100644 index 041f03944fa0..000000000000 --- a/tests/html/filereader-test.html +++ /dev/null @@ -1,13 +0,0 @@ - -FileReader: starting new reads while one is in progress - - -
- diff --git a/tests/wpt/metadata/FileAPI/fileReader.html.ini b/tests/wpt/metadata/FileAPI/fileReader.html.ini index 4bceed2ec485..85f443adc773 100644 --- a/tests/wpt/metadata/FileAPI/fileReader.html.ini +++ b/tests/wpt/metadata/FileAPI/fileReader.html.ini @@ -1,2 +1,2 @@ [fileReader.html] - type: testharness \ No newline at end of file + type: testharness diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-multiple-reads.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-multiple-reads.html.ini index 7ee05b944d39..a2727546bca2 100644 --- a/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-multiple-reads.html.ini +++ b/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-multiple-reads.html.ini @@ -2,4 +2,4 @@ type: testharness [test FileReader no InvalidStateError exception in onloadstart event for readAsArrayBuffer] - expected: FAIL \ No newline at end of file + expected: FAIL diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readystate.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readystate.html.ini index 205c62f2e5e5..76d8693b9f70 100644 --- a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readystate.html.ini +++ b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readystate.html.ini @@ -1,2 +1,2 @@ [filereader_readystate.html] - type: testharness \ No newline at end of file + type: testharness diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_result.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_result.html.ini index b7aa03165851..c556094336b3 100644 --- a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_result.html.ini +++ b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_result.html.ini @@ -4,4 +4,4 @@ expected: FAIL [readAsArrayBuffer] - expected: FAIL \ No newline at end of file + expected: FAIL From 63d986507e8c4ff811d50571566a30c382ae4d1b Mon Sep 17 00:00:00 2001 From: farodin91 Date: Thu, 28 May 2015 12:17:29 +0200 Subject: [PATCH 09/25] remove whitespaces #6205 --- components/script/dom/filereader.rs | 28 +++++++++++-------- .../script/dom/webidls/FileReader.webidl | 2 +- components/servo/Cargo.lock | 1 + tests/html/filereader-test.html | 13 --------- .../wpt/metadata/FileAPI/fileReader.html.ini | 2 +- .../FileReader-multiple-reads.html.ini | 2 +- .../filereader_readystate.html.ini | 2 +- .../filereader_result.html.ini | 2 +- 8 files changed, 22 insertions(+), 30 deletions(-) delete mode 100644 tests/html/filereader-test.html diff --git a/components/script/dom/filereader.rs b/components/script/dom/filereader.rs index b86e4e54a977..2bc9ce7af7d5 100644 --- a/components/script/dom/filereader.rs +++ b/components/script/dom/filereader.rs @@ -43,7 +43,8 @@ pub struct ReadData { } impl ReadData { - pub fn new(bytes: Option>,blobtype: DOMString, label: Option, function: FileReaderFunction) -> ReadData { + pub fn new(bytes: Option>, blobtype: DOMString, + label: Option, function: FileReaderFunction) -> ReadData { ReadData { bytes: bytes, blobtype: blobtype, @@ -94,7 +95,7 @@ pub struct FileReader { impl FileReader { pub fn new_inherited(global: GlobalRef) -> FileReader { - FileReader { + FileReader { eventtarget: EventTarget::new_inherited(EventTargetTypeId::FileReader),//? global: GlobalField::from_rooted(&global), ready_state: Cell::new(FileReaderReadyState::Empty), @@ -115,7 +116,10 @@ impl FileReader { Ok(FileReader::new(global)) } - fn initiate_async_fr(context: Arc>, script_chan: Box, filereader_task: FileReaderTask, read_data: ReadData) { + fn initiate_async_fr(context: Arc>, + script_chan: Box, + filereader_task: FileReaderTask, + read_data: ReadData) { impl AsyncReadingListener for FileReaderContext { fn data_available(&self, payload: DOMString){ let fr = self.fr.to_temporary().root(); @@ -157,11 +161,11 @@ impl<'a> FileReaderMethods for JSRef<'a, FileReader> { fn ReadAsArrayBuffer(self,blob: JSRef) -> ErrorResult { let global = self.global.root(); - if self.ready_state.get() as u16 == FileReaderReadyState::Loading as u16 {//1. + if self.ready_state.get() as u16 == FileReaderReadyState::Loading as u16 {//1. return Err(InvalidState); } - - self.change_ready_state(FileReaderReadyState::Loading);//3. + + self.change_ready_state(FileReaderReadyState::Loading);//3. let bytes = blob.read_out_buffer(); let type_ = blob.read_out_type(); @@ -177,7 +181,7 @@ impl<'a> FileReaderMethods for JSRef<'a, FileReader> { if self.ready_state.get() as u16 == FileReaderReadyState::Loading as u16 {//1. ReadAsText return Err(InvalidState); } - + self.change_ready_state(FileReaderReadyState::Loading);//3. ReadAsText let bytes = blob.read_out_buffer(); @@ -214,7 +218,7 @@ impl<'a> FileReaderMethods for JSRef<'a, FileReader> { *self.result.borrow_mut() = None; self.terminate_ongoing_reading(); - + self.dispatch_result_progress_event("abort".to_owned()); self.dispatch_result_progress_event("loadend".to_owned()); } @@ -265,7 +269,7 @@ impl<'a> PrivateFileReaderHelpers for JSRef<'a, FileReader> { let GenerationId(prev_id) = self.generation_id.get(); self.generation_id.set(GenerationId(prev_id + 1)); } - + fn new_filereader_task(self) -> FileReaderTask { let (setup_chan, setup_port) = channel(); spawn_named("FileReaderManager".to_owned(), move || { @@ -281,7 +285,7 @@ impl<'a> PrivateFileReaderHelpers for JSRef<'a, FileReader> { fr: fr, gen_id: self.generation_id.get() })); - + let script_chan = global.script_chan(); *self.abort_target.borrow_mut() = Some(script_chan.clone()); @@ -346,7 +350,7 @@ impl<'a> PrivateFileReaderHelpers for JSRef<'a, FileReader> { } fn process_start(self, gen_id: GenerationId) { - self.process_partial_result(FileReaderProgress::Start(gen_id)); + self.process_partial_result(FileReaderProgress::Start(gen_id)); } fn process_data_available(self, gen_id: GenerationId, payload: DOMString) { @@ -427,7 +431,7 @@ impl FileReaderManager { None => { progress.invoke(ResultAction::ResultComplete(Err(DOMString::from_str("Wrong Encoding")))); return; - } + } }; let input = match read_data.bytes { Some(bytes) => bytes, diff --git a/components/script/dom/webidls/FileReader.webidl b/components/script/dom/webidls/FileReader.webidl index bb55469f772b..e55a44dcd61e 100644 --- a/components/script/dom/webidls/FileReader.webidl +++ b/components/script/dom/webidls/FileReader.webidl @@ -42,4 +42,4 @@ interface FileReader: EventTarget { attribute EventHandler onerror; attribute EventHandler onloadend; -}; \ No newline at end of file +}; diff --git a/components/servo/Cargo.lock b/components/servo/Cargo.lock index b6a757d6513d..171d9edebb45 100644 --- a/components/servo/Cargo.lock +++ b/components/servo/Cargo.lock @@ -479,6 +479,7 @@ dependencies = [ "layers 0.1.0 (git+https://github.com/servo/rust-layers)", "libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", + "net 0.0.1", "script_traits 0.0.1", "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "url 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/tests/html/filereader-test.html b/tests/html/filereader-test.html deleted file mode 100644 index 041f03944fa0..000000000000 --- a/tests/html/filereader-test.html +++ /dev/null @@ -1,13 +0,0 @@ - -FileReader: starting new reads while one is in progress - - -
- diff --git a/tests/wpt/metadata/FileAPI/fileReader.html.ini b/tests/wpt/metadata/FileAPI/fileReader.html.ini index 4bceed2ec485..85f443adc773 100644 --- a/tests/wpt/metadata/FileAPI/fileReader.html.ini +++ b/tests/wpt/metadata/FileAPI/fileReader.html.ini @@ -1,2 +1,2 @@ [fileReader.html] - type: testharness \ No newline at end of file + type: testharness diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-multiple-reads.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-multiple-reads.html.ini index 7ee05b944d39..a2727546bca2 100644 --- a/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-multiple-reads.html.ini +++ b/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-multiple-reads.html.ini @@ -2,4 +2,4 @@ type: testharness [test FileReader no InvalidStateError exception in onloadstart event for readAsArrayBuffer] - expected: FAIL \ No newline at end of file + expected: FAIL diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readystate.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readystate.html.ini index 205c62f2e5e5..76d8693b9f70 100644 --- a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readystate.html.ini +++ b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readystate.html.ini @@ -1,2 +1,2 @@ [filereader_readystate.html] - type: testharness \ No newline at end of file + type: testharness diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_result.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_result.html.ini index b7aa03165851..c556094336b3 100644 --- a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_result.html.ini +++ b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_result.html.ini @@ -4,4 +4,4 @@ expected: FAIL [readAsArrayBuffer] - expected: FAIL \ No newline at end of file + expected: FAIL From 897627a1061dfd8b26aea73c55189a95124059e4 Mon Sep 17 00:00:00 2001 From: farodin91 Date: Thu, 28 May 2015 14:57:44 +0200 Subject: [PATCH 10/25] Update web-platform-tests expected data --- .../canvas_complexshapes_arcto_001.htm.ini | 2 +- ...canvas_complexshapes_beziercurveto_001.htm.ini | 2 +- .../drawimage_canvas_1.html.ini | 3 +++ .../drawimage_canvas_10.html.ini | 3 +++ .../drawimage_canvas_11.html.ini | 3 +++ .../drawimage_canvas_12.html.ini | 3 +++ .../drawimage_canvas_2.html.ini | 3 +++ .../drawimage_canvas_3.html.ini | 3 +++ .../drawimage_canvas_4.html.ini | 3 +++ .../drawimage_canvas_5.html.ini | 3 +++ .../drawimage_canvas_6.html.ini | 3 +++ .../drawimage_canvas_7.html.ini | 3 +++ .../drawimage_canvas_8.html.ini | 3 +++ .../drawimage_canvas_9.html.ini | 3 +++ .../drawimage_html_image_1.html.ini | 3 +++ .../drawimage_html_image_10.html.ini | 3 +++ .../drawimage_html_image_11.html.ini | 3 +++ .../drawimage_html_image_12.html.ini | 3 +++ .../drawimage_html_image_13.html.ini | 3 +++ .../drawimage_html_image_2.html.ini | 3 +++ .../drawimage_html_image_3.html.ini | 3 +++ .../drawimage_html_image_4.html.ini | 3 +++ .../drawimage_html_image_5.html.ini | 3 +++ .../drawimage_html_image_6.html.ini | 3 +++ .../drawimage_html_image_7.html.ini | 3 +++ .../drawimage_html_image_8.html.ini | 3 +++ .../drawimage_html_image_9.html.ini | 3 +++ .../2dcontext/line-styles/lineto_a.html.ini | 3 +++ .../canvas_transformations_reset_001.htm.ini | 3 +++ .../canvas_transformations_reset_001.html.ini | 2 +- .../transformations/transform_a.html.ini | 3 +++ .../Progress_event_bubbles_cancelable.html.ini | 3 --- .../FileAPI/blob/Blob-constructor.html.ini | 1 + .../wpt/metadata/FileAPI/blob/Blob-slice.html.ini | 2 +- tests/wpt/metadata/FileAPI/fileReader.html.ini | 2 -- tests/wpt/metadata/FileAPI/historical.html.ini | 3 --- .../Determining-Encoding.html.ini | 1 + .../FileReader-event-handler-attributes.html.ini | 2 -- .../FileReader-multiple-reads.html.ini | 2 +- .../filereader_abort.html.ini | 2 -- .../filereader_error.html.ini | 2 -- .../filereader_readAsText.html.ini | 2 -- .../filereader_readystate.html.ini | 2 -- .../filereader_result.html.ini | 1 + .../FileAPI/url/url_xmlhttprequest_img.html.ini | 2 +- .../event-upload-progress-crossorigin.sub.htm.ini | 6 ++++++ .../send-network-error-async-events.sub.htm.ini | 6 ++++++ .../send-non-same-origin.sub.htm.ini | 1 + .../XMLHttpRequest/send-redirect-bogus.htm.ini | 8 ++++++++ .../XMLHttpRequest/send-redirect-to-cors.htm.ini | 5 +++-- .../send-redirect-to-non-cors.htm.ini | 15 +++++++++++++++ .../global-attributes/dir_auto-EN-L.html.ini | 3 +++ .../global-attributes/dir_auto-EN-R.html.ini | 3 +++ .../global-attributes/dir_auto-L.html.ini | 3 +++ .../global-attributes/dir_auto-N-EN-L.html.ini | 3 +++ .../global-attributes/dir_auto-N-EN-R.html.ini | 3 +++ .../global-attributes/dir_auto-N-EN.html.ini | 2 +- .../global-attributes/dir_auto-N-L.html.ini | 3 +++ .../global-attributes/dir_auto-N-R.html.ini | 3 +++ .../global-attributes/dir_auto-R.html.ini | 3 +++ .../dir_auto-contained-L.html.ini | 3 +++ .../dir_auto-contained-R.html.ini | 3 +++ .../dir_auto-contained-bdi-L.html.ini | 3 +++ .../dir_auto-contained-bdi-R.html.ini | 3 +++ .../dir_auto-contained-dir-L.html.ini | 3 +++ .../dir_auto-contained-dir-R.html.ini | 3 +++ .../dir_auto-contained-dir_auto-L.html.ini | 3 +++ .../dir_auto-contained-dir_auto-R.html.ini | 3 +++ .../dir_auto-contained-style-L.html.ini | 3 +++ .../dir_auto-contained-style-R.html.ini | 3 +++ .../dir_auto-contained-textarea-L.html.ini | 3 +++ .../dir_auto-contained-textarea-R.html.ini | 3 +++ .../dir_auto-input-EN-L.html.ini | 3 +++ .../dir_auto-input-EN-R.html.ini | 3 +++ .../global-attributes/dir_auto-input-L.html.ini | 3 +++ .../dir_auto-input-N-EN-L.html.ini | 3 +++ .../dir_auto-input-N-EN-R.html.ini | 3 +++ .../dir_auto-input-N-EN.html.ini | 3 +++ .../global-attributes/dir_auto-input-N-L.html.ini | 3 +++ .../global-attributes/dir_auto-input-N-R.html.ini | 3 +++ .../global-attributes/dir_auto-input-R.html.ini | 3 +++ .../global-attributes/dir_auto-isolate.html.ini | 2 +- .../global-attributes/dir_auto-pre-N-EN.html.ini | 3 +++ .../dir_auto-pre-N-between-Rs.html.ini | 2 +- .../global-attributes/dir_auto-pre-mixed.html.ini | 2 +- .../dir_auto-textarea-N-EN.html.ini | 3 +++ .../dir_auto-textarea-N-between-Rs.html.ini | 2 +- .../dir_auto-textarea-mixed.html.ini | 2 +- .../global-attributes/lang-xmllang-01.html.ini | 2 +- .../global-attributes/lang-xyzzy.html.ini | 2 +- .../elements/global-attributes/style-01.html.ini | 3 +++ .../the-select-element-0/option-label.html.ini | 2 +- .../the-textarea-element-0/cols-default.html.ini | 3 +++ .../the-textarea-element-0/cols-zero.html.ini | 3 +++ .../the-textarea-element-0/rows-default.html.ini | 3 +++ .../the-textarea-element-0/rows-zero.html.ini | 3 +++ .../flow-content-0/figure.html.ini | 3 +++ .../tables/table-border-1.html.ini | 3 +++ .../tables/table-border-2.html.ini | 3 +++ .../tables/table-layout.html.ini | 3 +++ .../tables/table-width-150percent.html.ini | 3 +++ .../the-page/body_text_00ffff.xhtml.ini | 2 +- .../img_border_percent.xhtml.ini | 2 +- .../object_border_perc.xhtml.ini | 3 +++ .../object_border_pixel.xhtml.ini | 3 +++ .../replaced-elements/images/space.html.ini | 2 +- .../html_style_in_comment.xhtml.ini | 2 +- .../security.drawImage.canvas.sub.html.ini | 1 + .../security.drawImage.image.sub.html.ini | 1 + ...security.pattern.canvas.fillStyle.sub.html.ini | 1 + ...curity.pattern.canvas.strokeStyle.sub.html.ini | 1 + .../security.reset.sub.html.ini | 1 + .../embed-represent-nothing-01.html.ini | 3 +++ .../embed-represent-nothing-02.html.ini | 3 +++ .../embed-represent-nothing-03.html.ini | 3 +++ .../embed-represent-nothing-04.html.ini | 3 +++ .../forms/the-input-element/image01.html.ini | 2 +- .../textarea-newline-bidi.html.ini | 3 +++ .../grouping-li-reftest-001.html.ini | 3 +++ .../grouping-li-reftest-002.html.ini | 1 + .../grouping-ol-rev-reftest-001.html.ini | 2 +- .../grouping-ol-start-reftest-001.html.ini | 2 +- .../grouping-ol-start-reftest-002.html.ini | 2 +- .../grouping-ol-type-reftest-001.html.ini | 1 + .../grouping-ol-type-reftest-002.html.ini | 2 +- .../grouping-ol-type-reftest-003.html.ini | 2 +- .../the-ol-element/reversed-2.html.ini | 3 +++ .../grouping-pre-reftest-001.html.ini | 2 +- .../the-pre-element/pre-newline-bidi.html.ini | 3 +++ .../selectors/pseudo-classes/focus.html.ini | 1 + .../the-bdi-element/bdi-auto-dir-default.html.ini | 2 +- .../bdi-neutral-missing-pdf.html.ini | 2 +- .../the-bdi-element/bdi-neutral-nested.html.ini | 2 +- .../the-bdi-element/bdi-neutral-number.html.ini | 2 +- .../the-bdi-element/bdi-neutral-separate.html.ini | 2 +- .../bdi-neutral-to-another-bdi-1.html.ini | 2 +- .../bdi-neutral-to-another-bdi-2.html.ini | 2 +- .../bdi-neutral-to-letter-following-1.html.ini | 2 +- .../bdi-neutral-to-letter-following-2.html.ini | 2 +- .../bdi-neutral-to-letter-preceding-1.html.ini | 2 +- .../bdi-neutral-to-letter-preceding-2.html.ini | 2 +- .../bdi-neutral-to-number-following-1.html.ini | 2 +- .../bdi-neutral-to-number-following-2.html.ini | 2 +- .../bdi-neutral-to-surrounding-run.html.ini | 2 +- .../the-bdi-element/bdi-neutral-wrapped.html.ini | 2 +- .../bdi-paragraph-level-container.html.ini | 2 +- .../the-bdo-element/bdo-child.html.ini | 2 +- .../the-bdo-element/bdo-ltr.html.ini | 3 +++ .../the-bdo-element/bdo-override.html.ini | 3 +++ .../the-bdo-element/bidi-001.html.ini | 2 +- .../br-bidi-in-inline-ancestors.html.ini | 2 +- .../the-br-element/br-bidi.html.ini | 3 +++ .../the-wbr-element/wbr-element.html.ini | 2 +- .../compile-error-cross-origin.html.ini | 5 +++-- .../runtime-error-cross-origin.html.ini | 5 +++-- .../Opera/script_scheduling/105.html.ini | 1 + .../Opera/script_scheduling/123.html.ini | 1 + .../Opera/script_scheduling/126.html.ini | 1 + .../Close-reason-unpaired-surrogates.htm.ini | 1 + .../websockets/Send-Unpaired-Surrogates.htm.ini | 2 ++ .../metadata/websockets/constructor/006.html.ini | 1 + .../interfaces/WebSocket/send/006.html.ini | 1 + .../meta/css/abs_float_pref_width.html.ini | 3 +++ .../absolute_clipping_of_own_contents.html.ini | 3 +++ .../meta/css/absolute_content_height.html.ini | 3 +++ .../meta/css/absolute_hypothetical_float.html.ini | 3 +++ .../mozilla/meta/css/class-namespaces.html.ini | 3 +++ .../wpt/mozilla/meta/mozilla/interfaces.html.ini | 5 +++++ 168 files changed, 376 insertions(+), 70 deletions(-) create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_1.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_10.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_11.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_12.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_2.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_3.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_4.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_5.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_6.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_7.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_8.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_9.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_1.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_10.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_11.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_12.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_13.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_2.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_3.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_4.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_5.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_6.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_7.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_8.html.ini create mode 100644 tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_9.html.ini create mode 100644 tests/wpt/metadata/2dcontext/line-styles/lineto_a.html.ini create mode 100644 tests/wpt/metadata/2dcontext/transformations/canvas_transformations_reset_001.htm.ini create mode 100644 tests/wpt/metadata/2dcontext/transformations/transform_a.html.ini delete mode 100644 tests/wpt/metadata/FileAPI/FileReader/Progress_event_bubbles_cancelable.html.ini delete mode 100644 tests/wpt/metadata/FileAPI/fileReader.html.ini delete mode 100644 tests/wpt/metadata/FileAPI/historical.html.ini delete mode 100644 tests/wpt/metadata/FileAPI/reading-data-section/FileReader-event-handler-attributes.html.ini delete mode 100644 tests/wpt/metadata/FileAPI/reading-data-section/filereader_abort.html.ini delete mode 100644 tests/wpt/metadata/FileAPI/reading-data-section/filereader_error.html.ini delete mode 100644 tests/wpt/metadata/FileAPI/reading-data-section/filereader_readAsText.html.ini delete mode 100644 tests/wpt/metadata/FileAPI/reading-data-section/filereader_readystate.html.ini create mode 100644 tests/wpt/metadata/XMLHttpRequest/event-upload-progress-crossorigin.sub.htm.ini create mode 100644 tests/wpt/metadata/XMLHttpRequest/send-network-error-async-events.sub.htm.ini create mode 100644 tests/wpt/metadata/XMLHttpRequest/send-redirect-bogus.htm.ini create mode 100644 tests/wpt/metadata/XMLHttpRequest/send-redirect-to-non-cors.htm.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-EN-L.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-EN-R.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-L.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-N-EN-L.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-N-EN-R.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-N-L.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-N-R.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-R.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-L.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-R.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-bdi-L.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-bdi-R.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-dir-L.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-dir-R.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-dir_auto-L.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-dir_auto-R.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-style-L.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-style-R.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-textarea-L.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-textarea-R.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-EN-L.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-EN-R.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-L.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-N-EN-L.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-N-EN-R.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-N-EN.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-N-L.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-N-R.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-R.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-pre-N-EN.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-textarea-N-EN.html.ini create mode 100644 tests/wpt/metadata/html/dom/elements/global-attributes/style-01.html.ini create mode 100644 tests/wpt/metadata/html/rendering/bindings/the-textarea-element-0/cols-default.html.ini create mode 100644 tests/wpt/metadata/html/rendering/bindings/the-textarea-element-0/cols-zero.html.ini create mode 100644 tests/wpt/metadata/html/rendering/bindings/the-textarea-element-0/rows-default.html.ini create mode 100644 tests/wpt/metadata/html/rendering/bindings/the-textarea-element-0/rows-zero.html.ini create mode 100644 tests/wpt/metadata/html/rendering/non-replaced-elements/flow-content-0/figure.html.ini create mode 100644 tests/wpt/metadata/html/rendering/non-replaced-elements/tables/table-border-1.html.ini create mode 100644 tests/wpt/metadata/html/rendering/non-replaced-elements/tables/table-border-2.html.ini create mode 100644 tests/wpt/metadata/html/rendering/non-replaced-elements/tables/table-layout.html.ini create mode 100644 tests/wpt/metadata/html/rendering/non-replaced-elements/tables/table-width-150percent.html.ini create mode 100644 tests/wpt/metadata/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/object_border_perc.xhtml.ini create mode 100644 tests/wpt/metadata/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/object_border_pixel.xhtml.ini create mode 100644 tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-01.html.ini create mode 100644 tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-02.html.ini create mode 100644 tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-03.html.ini create mode 100644 tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-04.html.ini create mode 100644 tests/wpt/metadata/html/semantics/forms/the-textarea-element/textarea-newline-bidi.html.ini create mode 100644 tests/wpt/metadata/html/semantics/grouping-content/the-li-element/grouping-li-reftest-001.html.ini create mode 100644 tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/reversed-2.html.ini create mode 100644 tests/wpt/metadata/html/semantics/grouping-content/the-pre-element/pre-newline-bidi.html.ini create mode 100644 tests/wpt/metadata/html/semantics/text-level-semantics/the-bdo-element/bdo-ltr.html.ini create mode 100644 tests/wpt/metadata/html/semantics/text-level-semantics/the-bdo-element/bdo-override.html.ini create mode 100644 tests/wpt/metadata/html/semantics/text-level-semantics/the-br-element/br-bidi.html.ini create mode 100644 tests/wpt/mozilla/meta/css/abs_float_pref_width.html.ini create mode 100644 tests/wpt/mozilla/meta/css/absolute_clipping_of_own_contents.html.ini create mode 100644 tests/wpt/mozilla/meta/css/absolute_content_height.html.ini create mode 100644 tests/wpt/mozilla/meta/css/absolute_hypothetical_float.html.ini create mode 100644 tests/wpt/mozilla/meta/css/class-namespaces.html.ini create mode 100644 tests/wpt/mozilla/meta/mozilla/interfaces.html.ini diff --git a/tests/wpt/metadata/2dcontext/building-paths/canvas_complexshapes_arcto_001.htm.ini b/tests/wpt/metadata/2dcontext/building-paths/canvas_complexshapes_arcto_001.htm.ini index e4f67a13404f..4b0eb09a9ead 100644 --- a/tests/wpt/metadata/2dcontext/building-paths/canvas_complexshapes_arcto_001.htm.ini +++ b/tests/wpt/metadata/2dcontext/building-paths/canvas_complexshapes_arcto_001.htm.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /2dcontext/building-paths/canvas_complexshapes_arcto_001-ref.htm - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/building-paths/canvas_complexshapes_beziercurveto_001.htm.ini b/tests/wpt/metadata/2dcontext/building-paths/canvas_complexshapes_beziercurveto_001.htm.ini index ef729a45f8dc..c5252fa79a95 100644 --- a/tests/wpt/metadata/2dcontext/building-paths/canvas_complexshapes_beziercurveto_001.htm.ini +++ b/tests/wpt/metadata/2dcontext/building-paths/canvas_complexshapes_beziercurveto_001.htm.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /2dcontext/building-paths/canvas_complexshapes_beziercurveto_001-ref.htm - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_1.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_1.html.ini new file mode 100644 index 000000000000..ee42284e147e --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_1.html.ini @@ -0,0 +1,3 @@ +[drawimage_canvas_1.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_10.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_10.html.ini new file mode 100644 index 000000000000..cf67975520ce --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_10.html.ini @@ -0,0 +1,3 @@ +[drawimage_canvas_10.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_11.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_11.html.ini new file mode 100644 index 000000000000..15ea82f2cc8e --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_11.html.ini @@ -0,0 +1,3 @@ +[drawimage_canvas_11.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_12.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_12.html.ini new file mode 100644 index 000000000000..e75f0f2b9bb6 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_12.html.ini @@ -0,0 +1,3 @@ +[drawimage_canvas_12.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_2.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_2.html.ini new file mode 100644 index 000000000000..ef6c5acacf09 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_2.html.ini @@ -0,0 +1,3 @@ +[drawimage_canvas_2.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_3.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_3.html.ini new file mode 100644 index 000000000000..7255dcd62b91 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_3.html.ini @@ -0,0 +1,3 @@ +[drawimage_canvas_3.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_4.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_4.html.ini new file mode 100644 index 000000000000..a2cefeb8b080 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_4.html.ini @@ -0,0 +1,3 @@ +[drawimage_canvas_4.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_5.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_5.html.ini new file mode 100644 index 000000000000..0539458a6b7d --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_5.html.ini @@ -0,0 +1,3 @@ +[drawimage_canvas_5.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_6.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_6.html.ini new file mode 100644 index 000000000000..40d8bfcec808 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_6.html.ini @@ -0,0 +1,3 @@ +[drawimage_canvas_6.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_7.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_7.html.ini new file mode 100644 index 000000000000..5cedaa64de01 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_7.html.ini @@ -0,0 +1,3 @@ +[drawimage_canvas_7.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_8.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_8.html.ini new file mode 100644 index 000000000000..b0417cc50754 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_8.html.ini @@ -0,0 +1,3 @@ +[drawimage_canvas_8.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_9.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_9.html.ini new file mode 100644 index 000000000000..a45c08fa5533 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_9.html.ini @@ -0,0 +1,3 @@ +[drawimage_canvas_9.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_1.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_1.html.ini new file mode 100644 index 000000000000..1ded6d7c9413 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_1.html.ini @@ -0,0 +1,3 @@ +[drawimage_html_image_1.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_10.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_10.html.ini new file mode 100644 index 000000000000..4a0865312c17 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_10.html.ini @@ -0,0 +1,3 @@ +[drawimage_html_image_10.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_11.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_11.html.ini new file mode 100644 index 000000000000..f7f5cb8bcd13 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_11.html.ini @@ -0,0 +1,3 @@ +[drawimage_html_image_11.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_12.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_12.html.ini new file mode 100644 index 000000000000..0563c76fc6cf --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_12.html.ini @@ -0,0 +1,3 @@ +[drawimage_html_image_12.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_13.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_13.html.ini new file mode 100644 index 000000000000..f70590a9b88b --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_13.html.ini @@ -0,0 +1,3 @@ +[drawimage_html_image_13.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_2.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_2.html.ini new file mode 100644 index 000000000000..7a291afcf157 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_2.html.ini @@ -0,0 +1,3 @@ +[drawimage_html_image_2.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_3.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_3.html.ini new file mode 100644 index 000000000000..35c0825904a0 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_3.html.ini @@ -0,0 +1,3 @@ +[drawimage_html_image_3.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_4.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_4.html.ini new file mode 100644 index 000000000000..d18ac26f0cf6 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_4.html.ini @@ -0,0 +1,3 @@ +[drawimage_html_image_4.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_5.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_5.html.ini new file mode 100644 index 000000000000..26da58948482 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_5.html.ini @@ -0,0 +1,3 @@ +[drawimage_html_image_5.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_6.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_6.html.ini new file mode 100644 index 000000000000..e2fb3494a54a --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_6.html.ini @@ -0,0 +1,3 @@ +[drawimage_html_image_6.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_7.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_7.html.ini new file mode 100644 index 000000000000..393a2e47a45e --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_7.html.ini @@ -0,0 +1,3 @@ +[drawimage_html_image_7.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_8.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_8.html.ini new file mode 100644 index 000000000000..142e8d2e7b26 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_8.html.ini @@ -0,0 +1,3 @@ +[drawimage_html_image_8.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_9.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_9.html.ini new file mode 100644 index 000000000000..06bcf9a64bf2 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_9.html.ini @@ -0,0 +1,3 @@ +[drawimage_html_image_9.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/line-styles/lineto_a.html.ini b/tests/wpt/metadata/2dcontext/line-styles/lineto_a.html.ini new file mode 100644 index 000000000000..e82a17f5c5e5 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/line-styles/lineto_a.html.ini @@ -0,0 +1,3 @@ +[lineto_a.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/transformations/canvas_transformations_reset_001.htm.ini b/tests/wpt/metadata/2dcontext/transformations/canvas_transformations_reset_001.htm.ini new file mode 100644 index 000000000000..a6b1188fb9ed --- /dev/null +++ b/tests/wpt/metadata/2dcontext/transformations/canvas_transformations_reset_001.htm.ini @@ -0,0 +1,3 @@ +[canvas_transformations_reset_001.htm] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/transformations/canvas_transformations_reset_001.html.ini b/tests/wpt/metadata/2dcontext/transformations/canvas_transformations_reset_001.html.ini index 7faf80e06d12..529405b5bf91 100644 --- a/tests/wpt/metadata/2dcontext/transformations/canvas_transformations_reset_001.html.ini +++ b/tests/wpt/metadata/2dcontext/transformations/canvas_transformations_reset_001.html.ini @@ -1,3 +1,3 @@ [canvas_transformations_reset_001.html] type: reftest - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/2dcontext/transformations/transform_a.html.ini b/tests/wpt/metadata/2dcontext/transformations/transform_a.html.ini new file mode 100644 index 000000000000..52f6f9afc5de --- /dev/null +++ b/tests/wpt/metadata/2dcontext/transformations/transform_a.html.ini @@ -0,0 +1,3 @@ +[transform_a.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/FileAPI/FileReader/Progress_event_bubbles_cancelable.html.ini b/tests/wpt/metadata/FileAPI/FileReader/Progress_event_bubbles_cancelable.html.ini deleted file mode 100644 index 90cf771afafb..000000000000 --- a/tests/wpt/metadata/FileAPI/FileReader/Progress_event_bubbles_cancelable.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[Progress_event_bubbles_cancelable.html] - type: testharness - diff --git a/tests/wpt/metadata/FileAPI/blob/Blob-constructor.html.ini b/tests/wpt/metadata/FileAPI/blob/Blob-constructor.html.ini index a85ae00d6a61..d40989a91ef1 100644 --- a/tests/wpt/metadata/FileAPI/blob/Blob-constructor.html.ini +++ b/tests/wpt/metadata/FileAPI/blob/Blob-constructor.html.ini @@ -68,3 +68,4 @@ [Array with mixed types] expected: FAIL + diff --git a/tests/wpt/metadata/FileAPI/blob/Blob-slice.html.ini b/tests/wpt/metadata/FileAPI/blob/Blob-slice.html.ini index 23a4e415330c..9e78feb7d4e2 100644 --- a/tests/wpt/metadata/FileAPI/blob/Blob-slice.html.ini +++ b/tests/wpt/metadata/FileAPI/blob/Blob-slice.html.ini @@ -1,6 +1,5 @@ [Blob-slice.html] type: testharness - [Slicing test: slice (1,0).] expected: FAIL @@ -159,3 +158,4 @@ [Invalid contentType ("te xt/plain")] expected: FAIL + diff --git a/tests/wpt/metadata/FileAPI/fileReader.html.ini b/tests/wpt/metadata/FileAPI/fileReader.html.ini deleted file mode 100644 index 85f443adc773..000000000000 --- a/tests/wpt/metadata/FileAPI/fileReader.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[fileReader.html] - type: testharness diff --git a/tests/wpt/metadata/FileAPI/historical.html.ini b/tests/wpt/metadata/FileAPI/historical.html.ini deleted file mode 100644 index f0ba918b01f7..000000000000 --- a/tests/wpt/metadata/FileAPI/historical.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[historical.html] - type: testharness - diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/Determining-Encoding.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/Determining-Encoding.html.ini index d3d677365af5..6ef475882e02 100644 --- a/tests/wpt/metadata/FileAPI/reading-data-section/Determining-Encoding.html.ini +++ b/tests/wpt/metadata/FileAPI/reading-data-section/Determining-Encoding.html.ini @@ -17,3 +17,4 @@ [Blob Determing Encoding with UTF-16LE BOM] expected: FAIL + diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-event-handler-attributes.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-event-handler-attributes.html.ini deleted file mode 100644 index 904bd565fd24..000000000000 --- a/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-event-handler-attributes.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[FileReader-event-handler-attributes.html] - type: testharness diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-multiple-reads.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-multiple-reads.html.ini index a2727546bca2..ccfda894482f 100644 --- a/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-multiple-reads.html.ini +++ b/tests/wpt/metadata/FileAPI/reading-data-section/FileReader-multiple-reads.html.ini @@ -1,5 +1,5 @@ [FileReader-multiple-reads.html] type: testharness - [test FileReader no InvalidStateError exception in onloadstart event for readAsArrayBuffer] expected: FAIL + diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_abort.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_abort.html.ini deleted file mode 100644 index 5f897967ec70..000000000000 --- a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_abort.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[filereader_abort.html] - type: testharness diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_error.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_error.html.ini deleted file mode 100644 index ee3550246f6e..000000000000 --- a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_error.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[filereader_error.html] - type: testharness diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readAsText.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readAsText.html.ini deleted file mode 100644 index 1fa3328c4478..000000000000 --- a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readAsText.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[filereader_readAsText.html] - type: testharness diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readystate.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readystate.html.ini deleted file mode 100644 index 76d8693b9f70..000000000000 --- a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readystate.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[filereader_readystate.html] - type: testharness diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_result.html.ini b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_result.html.ini index c556094336b3..7e3de7126a21 100644 --- a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_result.html.ini +++ b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_result.html.ini @@ -5,3 +5,4 @@ [readAsArrayBuffer] expected: FAIL + diff --git a/tests/wpt/metadata/FileAPI/url/url_xmlhttprequest_img.html.ini b/tests/wpt/metadata/FileAPI/url/url_xmlhttprequest_img.html.ini index a8ff6da101cb..47d8b62293da 100644 --- a/tests/wpt/metadata/FileAPI/url/url_xmlhttprequest_img.html.ini +++ b/tests/wpt/metadata/FileAPI/url/url_xmlhttprequest_img.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /FileAPI/url/url_xmlhttprequest_img-ref.html - expected: TIMEOUT + expected: CRASH diff --git a/tests/wpt/metadata/XMLHttpRequest/event-upload-progress-crossorigin.sub.htm.ini b/tests/wpt/metadata/XMLHttpRequest/event-upload-progress-crossorigin.sub.htm.ini new file mode 100644 index 000000000000..0afccbf970b7 --- /dev/null +++ b/tests/wpt/metadata/XMLHttpRequest/event-upload-progress-crossorigin.sub.htm.ini @@ -0,0 +1,6 @@ +[event-upload-progress-crossorigin.sub.htm] + type: testharness + expected: TIMEOUT + [XMLHttpRequest: upload progress event for cross-origin requests] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/XMLHttpRequest/send-network-error-async-events.sub.htm.ini b/tests/wpt/metadata/XMLHttpRequest/send-network-error-async-events.sub.htm.ini new file mode 100644 index 000000000000..dda5019913d4 --- /dev/null +++ b/tests/wpt/metadata/XMLHttpRequest/send-network-error-async-events.sub.htm.ini @@ -0,0 +1,6 @@ +[send-network-error-async-events.sub.htm] + type: testharness + expected: TIMEOUT + [XmlHttpRequest: The send() method: Fire a ] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/XMLHttpRequest/send-non-same-origin.sub.htm.ini b/tests/wpt/metadata/XMLHttpRequest/send-non-same-origin.sub.htm.ini index 4ffff5d3506c..ae1018058cac 100644 --- a/tests/wpt/metadata/XMLHttpRequest/send-non-same-origin.sub.htm.ini +++ b/tests/wpt/metadata/XMLHttpRequest/send-non-same-origin.sub.htm.ini @@ -1,5 +1,6 @@ [send-non-same-origin.sub.htm] type: testharness + expected: TIMEOUT [XMLHttpRequest: send() - non same-origin (folder.txt)] expected: FAIL diff --git a/tests/wpt/metadata/XMLHttpRequest/send-redirect-bogus.htm.ini b/tests/wpt/metadata/XMLHttpRequest/send-redirect-bogus.htm.ini new file mode 100644 index 000000000000..79dcb3d69929 --- /dev/null +++ b/tests/wpt/metadata/XMLHttpRequest/send-redirect-bogus.htm.ini @@ -0,0 +1,8 @@ +[send-redirect-bogus.htm] + type: testharness + [XMLHttpRequest: send() - Redirects (bogus Location header) (302: http://example.not)] + expected: FAIL + + [XMLHttpRequest: send() - Redirects (bogus Location header) (303: http://example.not)] + expected: FAIL + diff --git a/tests/wpt/metadata/XMLHttpRequest/send-redirect-to-cors.htm.ini b/tests/wpt/metadata/XMLHttpRequest/send-redirect-to-cors.htm.ini index 8a2f5593ca51..77ee1335474e 100644 --- a/tests/wpt/metadata/XMLHttpRequest/send-redirect-to-cors.htm.ini +++ b/tests/wpt/metadata/XMLHttpRequest/send-redirect-to-cors.htm.ini @@ -1,14 +1,15 @@ [send-redirect-to-cors.htm] type: testharness + expected: TIMEOUT [XMLHttpRequest: send() - Redirect to CORS-enabled resource (301)] expected: FAIL [XMLHttpRequest: send() - Redirect to CORS-enabled resource (302)] - expected: FAIL + expected: TIMEOUT [XMLHttpRequest: send() - Redirect to CORS-enabled resource (303)] expected: FAIL [XMLHttpRequest: send() - Redirect to CORS-enabled resource (307)] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/XMLHttpRequest/send-redirect-to-non-cors.htm.ini b/tests/wpt/metadata/XMLHttpRequest/send-redirect-to-non-cors.htm.ini new file mode 100644 index 000000000000..baac4acca6f3 --- /dev/null +++ b/tests/wpt/metadata/XMLHttpRequest/send-redirect-to-non-cors.htm.ini @@ -0,0 +1,15 @@ +[send-redirect-to-non-cors.htm] + type: testharness + expected: TIMEOUT + [XMLHttpRequest: send() - Redirect to cross-origin resource, not CORS-enabled (301)] + expected: FAIL + + [XMLHttpRequest: send() - Redirect to cross-origin resource, not CORS-enabled (302)] + expected: FAIL + + [XMLHttpRequest: send() - Redirect to cross-origin resource, not CORS-enabled (303)] + expected: FAIL + + [XMLHttpRequest: send() - Redirect to cross-origin resource, not CORS-enabled (307)] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-EN-L.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-EN-L.html.ini new file mode 100644 index 000000000000..3ed518689d77 --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-EN-L.html.ini @@ -0,0 +1,3 @@ +[dir_auto-EN-L.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-EN-R.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-EN-R.html.ini new file mode 100644 index 000000000000..c446c49ced28 --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-EN-R.html.ini @@ -0,0 +1,3 @@ +[dir_auto-EN-R.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-L.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-L.html.ini new file mode 100644 index 000000000000..d8f0fe6d2c6d --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-L.html.ini @@ -0,0 +1,3 @@ +[dir_auto-L.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-N-EN-L.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-N-EN-L.html.ini new file mode 100644 index 000000000000..81a88dcf6957 --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-N-EN-L.html.ini @@ -0,0 +1,3 @@ +[dir_auto-N-EN-L.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-N-EN-R.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-N-EN-R.html.ini new file mode 100644 index 000000000000..2442d81eb765 --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-N-EN-R.html.ini @@ -0,0 +1,3 @@ +[dir_auto-N-EN-R.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-N-EN.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-N-EN.html.ini index aa43399b55e6..b96805b980ff 100644 --- a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-N-EN.html.ini +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-N-EN.html.ini @@ -1,3 +1,3 @@ [dir_auto-N-EN.html] type: reftest - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-N-L.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-N-L.html.ini new file mode 100644 index 000000000000..b5f858c30197 --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-N-L.html.ini @@ -0,0 +1,3 @@ +[dir_auto-N-L.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-N-R.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-N-R.html.ini new file mode 100644 index 000000000000..072a449db73f --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-N-R.html.ini @@ -0,0 +1,3 @@ +[dir_auto-N-R.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-R.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-R.html.ini new file mode 100644 index 000000000000..20abeaafcba5 --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-R.html.ini @@ -0,0 +1,3 @@ +[dir_auto-R.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-L.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-L.html.ini new file mode 100644 index 000000000000..b251be85e6ad --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-L.html.ini @@ -0,0 +1,3 @@ +[dir_auto-contained-L.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-R.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-R.html.ini new file mode 100644 index 000000000000..23ffa8bebc7c --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-R.html.ini @@ -0,0 +1,3 @@ +[dir_auto-contained-R.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-bdi-L.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-bdi-L.html.ini new file mode 100644 index 000000000000..36cf33663538 --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-bdi-L.html.ini @@ -0,0 +1,3 @@ +[dir_auto-contained-bdi-L.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-bdi-R.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-bdi-R.html.ini new file mode 100644 index 000000000000..502a60772d9b --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-bdi-R.html.ini @@ -0,0 +1,3 @@ +[dir_auto-contained-bdi-R.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-dir-L.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-dir-L.html.ini new file mode 100644 index 000000000000..a9ac027f69be --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-dir-L.html.ini @@ -0,0 +1,3 @@ +[dir_auto-contained-dir-L.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-dir-R.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-dir-R.html.ini new file mode 100644 index 000000000000..35c098a52b77 --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-dir-R.html.ini @@ -0,0 +1,3 @@ +[dir_auto-contained-dir-R.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-dir_auto-L.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-dir_auto-L.html.ini new file mode 100644 index 000000000000..a89f246c9207 --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-dir_auto-L.html.ini @@ -0,0 +1,3 @@ +[dir_auto-contained-dir_auto-L.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-dir_auto-R.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-dir_auto-R.html.ini new file mode 100644 index 000000000000..9b11fef3a6ed --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-dir_auto-R.html.ini @@ -0,0 +1,3 @@ +[dir_auto-contained-dir_auto-R.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-style-L.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-style-L.html.ini new file mode 100644 index 000000000000..d53914159f5f --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-style-L.html.ini @@ -0,0 +1,3 @@ +[dir_auto-contained-style-L.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-style-R.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-style-R.html.ini new file mode 100644 index 000000000000..bee06bb8ccaf --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-style-R.html.ini @@ -0,0 +1,3 @@ +[dir_auto-contained-style-R.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-textarea-L.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-textarea-L.html.ini new file mode 100644 index 000000000000..47afd008336f --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-textarea-L.html.ini @@ -0,0 +1,3 @@ +[dir_auto-contained-textarea-L.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-textarea-R.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-textarea-R.html.ini new file mode 100644 index 000000000000..4ec0c2fed258 --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-contained-textarea-R.html.ini @@ -0,0 +1,3 @@ +[dir_auto-contained-textarea-R.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-EN-L.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-EN-L.html.ini new file mode 100644 index 000000000000..a0ebf4a73872 --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-EN-L.html.ini @@ -0,0 +1,3 @@ +[dir_auto-input-EN-L.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-EN-R.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-EN-R.html.ini new file mode 100644 index 000000000000..739a05e7e456 --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-EN-R.html.ini @@ -0,0 +1,3 @@ +[dir_auto-input-EN-R.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-L.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-L.html.ini new file mode 100644 index 000000000000..1e249c6c0c0e --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-L.html.ini @@ -0,0 +1,3 @@ +[dir_auto-input-L.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-N-EN-L.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-N-EN-L.html.ini new file mode 100644 index 000000000000..71f17712d4d1 --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-N-EN-L.html.ini @@ -0,0 +1,3 @@ +[dir_auto-input-N-EN-L.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-N-EN-R.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-N-EN-R.html.ini new file mode 100644 index 000000000000..baff98f08360 --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-N-EN-R.html.ini @@ -0,0 +1,3 @@ +[dir_auto-input-N-EN-R.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-N-EN.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-N-EN.html.ini new file mode 100644 index 000000000000..bc3824f2d410 --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-N-EN.html.ini @@ -0,0 +1,3 @@ +[dir_auto-input-N-EN.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-N-L.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-N-L.html.ini new file mode 100644 index 000000000000..9d1d139d9188 --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-N-L.html.ini @@ -0,0 +1,3 @@ +[dir_auto-input-N-L.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-N-R.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-N-R.html.ini new file mode 100644 index 000000000000..de198dcd5f52 --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-N-R.html.ini @@ -0,0 +1,3 @@ +[dir_auto-input-N-R.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-R.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-R.html.ini new file mode 100644 index 000000000000..f80939a0878c --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-input-R.html.ini @@ -0,0 +1,3 @@ +[dir_auto-input-R.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-isolate.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-isolate.html.ini index 66406e86118b..b5a72edca902 100644 --- a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-isolate.html.ini +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-isolate.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/dom/elements/global-attributes/dir_auto-isolate-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-pre-N-EN.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-pre-N-EN.html.ini new file mode 100644 index 000000000000..dfacf1f4edc7 --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-pre-N-EN.html.ini @@ -0,0 +1,3 @@ +[dir_auto-pre-N-EN.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-pre-N-between-Rs.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-pre-N-between-Rs.html.ini index 1442574ab821..3aac03c292bd 100644 --- a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-pre-N-between-Rs.html.ini +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-pre-N-between-Rs.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/dom/elements/global-attributes/dir_auto-pre-N-between-Rs-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-pre-mixed.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-pre-mixed.html.ini index 83f81149457c..ef8cfde944c2 100644 --- a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-pre-mixed.html.ini +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-pre-mixed.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/dom/elements/global-attributes/dir_auto-pre-mixed-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-textarea-N-EN.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-textarea-N-EN.html.ini new file mode 100644 index 000000000000..6464ced5a13d --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-textarea-N-EN.html.ini @@ -0,0 +1,3 @@ +[dir_auto-textarea-N-EN.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-textarea-N-between-Rs.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-textarea-N-between-Rs.html.ini index 9f8d23edd019..233670735e65 100644 --- a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-textarea-N-between-Rs.html.ini +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-textarea-N-between-Rs.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/dom/elements/global-attributes/dir_auto-textarea-N-between-Rs-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-textarea-mixed.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-textarea-mixed.html.ini index f949333aa264..2134c4036c23 100644 --- a/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-textarea-mixed.html.ini +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dir_auto-textarea-mixed.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/dom/elements/global-attributes/dir_auto-textarea-mixed-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/lang-xmllang-01.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/lang-xmllang-01.html.ini index ee86691a689a..fb14f3bdcf97 100644 --- a/tests/wpt/metadata/html/dom/elements/global-attributes/lang-xmllang-01.html.ini +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/lang-xmllang-01.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/dom/elements/global-attributes/lang-xmllang-01-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/lang-xyzzy.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/lang-xyzzy.html.ini index 823df3d573e6..143b6f6a1ef2 100644 --- a/tests/wpt/metadata/html/dom/elements/global-attributes/lang-xyzzy.html.ini +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/lang-xyzzy.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/dom/elements/global-attributes/lang-xyzzy-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/style-01.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/style-01.html.ini new file mode 100644 index 000000000000..1e9115b6d414 --- /dev/null +++ b/tests/wpt/metadata/html/dom/elements/global-attributes/style-01.html.ini @@ -0,0 +1,3 @@ +[style-01.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/rendering/bindings/the-select-element-0/option-label.html.ini b/tests/wpt/metadata/html/rendering/bindings/the-select-element-0/option-label.html.ini index b01be9141ca0..be5490ab3613 100644 --- a/tests/wpt/metadata/html/rendering/bindings/the-select-element-0/option-label.html.ini +++ b/tests/wpt/metadata/html/rendering/bindings/the-select-element-0/option-label.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/rendering/bindings/the-select-element-0/option-label-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/rendering/bindings/the-textarea-element-0/cols-default.html.ini b/tests/wpt/metadata/html/rendering/bindings/the-textarea-element-0/cols-default.html.ini new file mode 100644 index 000000000000..8fc3a945638f --- /dev/null +++ b/tests/wpt/metadata/html/rendering/bindings/the-textarea-element-0/cols-default.html.ini @@ -0,0 +1,3 @@ +[cols-default.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/rendering/bindings/the-textarea-element-0/cols-zero.html.ini b/tests/wpt/metadata/html/rendering/bindings/the-textarea-element-0/cols-zero.html.ini new file mode 100644 index 000000000000..be607eaf2f19 --- /dev/null +++ b/tests/wpt/metadata/html/rendering/bindings/the-textarea-element-0/cols-zero.html.ini @@ -0,0 +1,3 @@ +[cols-zero.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/rendering/bindings/the-textarea-element-0/rows-default.html.ini b/tests/wpt/metadata/html/rendering/bindings/the-textarea-element-0/rows-default.html.ini new file mode 100644 index 000000000000..9a308beb879b --- /dev/null +++ b/tests/wpt/metadata/html/rendering/bindings/the-textarea-element-0/rows-default.html.ini @@ -0,0 +1,3 @@ +[rows-default.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/rendering/bindings/the-textarea-element-0/rows-zero.html.ini b/tests/wpt/metadata/html/rendering/bindings/the-textarea-element-0/rows-zero.html.ini new file mode 100644 index 000000000000..e12c80a0c336 --- /dev/null +++ b/tests/wpt/metadata/html/rendering/bindings/the-textarea-element-0/rows-zero.html.ini @@ -0,0 +1,3 @@ +[rows-zero.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/rendering/non-replaced-elements/flow-content-0/figure.html.ini b/tests/wpt/metadata/html/rendering/non-replaced-elements/flow-content-0/figure.html.ini new file mode 100644 index 000000000000..b0130ccffbd9 --- /dev/null +++ b/tests/wpt/metadata/html/rendering/non-replaced-elements/flow-content-0/figure.html.ini @@ -0,0 +1,3 @@ +[figure.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/table-border-1.html.ini b/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/table-border-1.html.ini new file mode 100644 index 000000000000..75d3b020ee5b --- /dev/null +++ b/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/table-border-1.html.ini @@ -0,0 +1,3 @@ +[table-border-1.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/table-border-2.html.ini b/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/table-border-2.html.ini new file mode 100644 index 000000000000..3896f8915c95 --- /dev/null +++ b/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/table-border-2.html.ini @@ -0,0 +1,3 @@ +[table-border-2.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/table-layout.html.ini b/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/table-layout.html.ini new file mode 100644 index 000000000000..05ea6552af81 --- /dev/null +++ b/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/table-layout.html.ini @@ -0,0 +1,3 @@ +[table-layout.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/table-width-150percent.html.ini b/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/table-width-150percent.html.ini new file mode 100644 index 000000000000..d800bdb7f0ee --- /dev/null +++ b/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/table-width-150percent.html.ini @@ -0,0 +1,3 @@ +[table-width-150percent.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/rendering/non-replaced-elements/the-page/body_text_00ffff.xhtml.ini b/tests/wpt/metadata/html/rendering/non-replaced-elements/the-page/body_text_00ffff.xhtml.ini index 0b78fe3508a8..8d6ef06bf6bc 100644 --- a/tests/wpt/metadata/html/rendering/non-replaced-elements/the-page/body_text_00ffff.xhtml.ini +++ b/tests/wpt/metadata/html/rendering/non-replaced-elements/the-page/body_text_00ffff.xhtml.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/rendering/non-replaced-elements/the-page/body_text_00ffff-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img_border_percent.xhtml.ini b/tests/wpt/metadata/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img_border_percent.xhtml.ini index 9823faf6770f..70e5c055e665 100644 --- a/tests/wpt/metadata/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img_border_percent.xhtml.ini +++ b/tests/wpt/metadata/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img_border_percent.xhtml.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img_border-ref.xhtml - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/object_border_perc.xhtml.ini b/tests/wpt/metadata/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/object_border_perc.xhtml.ini new file mode 100644 index 000000000000..ff1164b47725 --- /dev/null +++ b/tests/wpt/metadata/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/object_border_perc.xhtml.ini @@ -0,0 +1,3 @@ +[object_border_perc.xhtml] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/object_border_pixel.xhtml.ini b/tests/wpt/metadata/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/object_border_pixel.xhtml.ini new file mode 100644 index 000000000000..a68baa31b0dd --- /dev/null +++ b/tests/wpt/metadata/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/object_border_pixel.xhtml.ini @@ -0,0 +1,3 @@ +[object_border_pixel.xhtml] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/rendering/replaced-elements/images/space.html.ini b/tests/wpt/metadata/html/rendering/replaced-elements/images/space.html.ini index e3d9bcd9fdf0..a52a5714d87d 100644 --- a/tests/wpt/metadata/html/rendering/replaced-elements/images/space.html.ini +++ b/tests/wpt/metadata/html/rendering/replaced-elements/images/space.html.ini @@ -1,3 +1,3 @@ [space.html] type: reftest - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/document-metadata/the-style-element/html_style_in_comment.xhtml.ini b/tests/wpt/metadata/html/semantics/document-metadata/the-style-element/html_style_in_comment.xhtml.ini index b6945e839da8..e34c8da51038 100644 --- a/tests/wpt/metadata/html/semantics/document-metadata/the-style-element/html_style_in_comment.xhtml.ini +++ b/tests/wpt/metadata/html/semantics/document-metadata/the-style-element/html_style_in_comment.xhtml.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/document-metadata/the-style-element/html_style_in_comment-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.sub.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.sub.html.ini index 86d0d00f4710..633c3be5cd6d 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.sub.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.sub.html.ini @@ -1,5 +1,6 @@ [security.drawImage.canvas.sub.html] type: testharness + expected: TIMEOUT [drawImage of unclean canvas makes the canvas origin-unclean] expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.sub.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.sub.html.ini index 09f3c9985a2e..94b9c94f456a 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.sub.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.sub.html.ini @@ -1,5 +1,6 @@ [security.drawImage.image.sub.html] type: testharness + expected: TIMEOUT [drawImage of different-origin image makes the canvas origin-unclean] expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.sub.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.sub.html.ini index 89a8ba55cc6e..f539b7758e8c 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.sub.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.sub.html.ini @@ -1,5 +1,6 @@ [security.pattern.canvas.fillStyle.sub.html] type: testharness + expected: TIMEOUT [Setting fillStyle to a pattern of an unclean canvas makes the canvas origin-unclean] expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.sub.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.sub.html.ini index 9dccab407f9c..677da616a4b9 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.sub.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.sub.html.ini @@ -1,5 +1,6 @@ [security.pattern.canvas.strokeStyle.sub.html] type: testharness + expected: TIMEOUT [Setting strokeStyle to a pattern of an unclean canvas makes the canvas origin-unclean] expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.reset.sub.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.reset.sub.html.ini index 0756889a562a..5c0ec63b10dc 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.reset.sub.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.reset.sub.html.ini @@ -1,5 +1,6 @@ [security.reset.sub.html] type: testharness + expected: TIMEOUT [Resetting the canvas state does not reset the origin-clean flag] expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-01.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-01.html.ini new file mode 100644 index 000000000000..6d2fc2aa81f1 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-01.html.ini @@ -0,0 +1,3 @@ +[embed-represent-nothing-01.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-02.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-02.html.ini new file mode 100644 index 000000000000..40122825eabb --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-02.html.ini @@ -0,0 +1,3 @@ +[embed-represent-nothing-02.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-03.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-03.html.ini new file mode 100644 index 000000000000..78d3fe2c11b9 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-03.html.ini @@ -0,0 +1,3 @@ +[embed-represent-nothing-03.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-04.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-04.html.ini new file mode 100644 index 000000000000..06a7234fb4e4 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-04.html.ini @@ -0,0 +1,3 @@ +[embed-represent-nothing-04.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/forms/the-input-element/image01.html.ini b/tests/wpt/metadata/html/semantics/forms/the-input-element/image01.html.ini index 61c4f122b825..e2d912a238f4 100644 --- a/tests/wpt/metadata/html/semantics/forms/the-input-element/image01.html.ini +++ b/tests/wpt/metadata/html/semantics/forms/the-input-element/image01.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/forms/the-input-element/image01-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/forms/the-textarea-element/textarea-newline-bidi.html.ini b/tests/wpt/metadata/html/semantics/forms/the-textarea-element/textarea-newline-bidi.html.ini new file mode 100644 index 000000000000..f606d12ff69d --- /dev/null +++ b/tests/wpt/metadata/html/semantics/forms/the-textarea-element/textarea-newline-bidi.html.ini @@ -0,0 +1,3 @@ +[textarea-newline-bidi.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/grouping-content/the-li-element/grouping-li-reftest-001.html.ini b/tests/wpt/metadata/html/semantics/grouping-content/the-li-element/grouping-li-reftest-001.html.ini new file mode 100644 index 000000000000..5dba8769628c --- /dev/null +++ b/tests/wpt/metadata/html/semantics/grouping-content/the-li-element/grouping-li-reftest-001.html.ini @@ -0,0 +1,3 @@ +[grouping-li-reftest-001.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/grouping-content/the-li-element/grouping-li-reftest-002.html.ini b/tests/wpt/metadata/html/semantics/grouping-content/the-li-element/grouping-li-reftest-002.html.ini index 16889ec471ce..36cdf7080046 100644 --- a/tests/wpt/metadata/html/semantics/grouping-content/the-li-element/grouping-li-reftest-002.html.ini +++ b/tests/wpt/metadata/html/semantics/grouping-content/the-li-element/grouping-li-reftest-002.html.ini @@ -2,3 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/grouping-content/the-li-element/grouping-li-reftest-002-ref.html + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-rev-reftest-001.html.ini b/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-rev-reftest-001.html.ini index 44e490a34e8c..ee1b724e2837 100644 --- a/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-rev-reftest-001.html.ini +++ b/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-rev-reftest-001.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/grouping-content/the-ol-element/grouping-ol-rev-reftest-001-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-001.html.ini b/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-001.html.ini index fa7fb7e38910..51da83e1f8fe 100644 --- a/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-001.html.ini +++ b/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-001.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-001-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-002.html.ini b/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-002.html.ini index 9fa3af6086d3..82a340b091f3 100644 --- a/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-002.html.ini +++ b/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-002.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-002-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-001.html.ini b/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-001.html.ini index 03cf15721830..d037d3ced76d 100644 --- a/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-001.html.ini +++ b/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-001.html.ini @@ -2,3 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-001-ref.html + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-002.html.ini b/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-002.html.ini index 351b9c588850..6c20df4ff744 100644 --- a/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-002.html.ini +++ b/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-002.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-002-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-003.html.ini b/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-003.html.ini index 26d5f180c3d4..885e7e8b4a21 100644 --- a/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-003.html.ini +++ b/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-003.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-003-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/reversed-2.html.ini b/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/reversed-2.html.ini new file mode 100644 index 000000000000..e08977ff52b5 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/grouping-content/the-ol-element/reversed-2.html.ini @@ -0,0 +1,3 @@ +[reversed-2.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/grouping-content/the-pre-element/grouping-pre-reftest-001.html.ini b/tests/wpt/metadata/html/semantics/grouping-content/the-pre-element/grouping-pre-reftest-001.html.ini index ba74e7d5738c..03840618d153 100644 --- a/tests/wpt/metadata/html/semantics/grouping-content/the-pre-element/grouping-pre-reftest-001.html.ini +++ b/tests/wpt/metadata/html/semantics/grouping-content/the-pre-element/grouping-pre-reftest-001.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/grouping-content/the-pre-element/grouping-pre-reftest-001-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/grouping-content/the-pre-element/pre-newline-bidi.html.ini b/tests/wpt/metadata/html/semantics/grouping-content/the-pre-element/pre-newline-bidi.html.ini new file mode 100644 index 000000000000..9a55cb854942 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/grouping-content/the-pre-element/pre-newline-bidi.html.ini @@ -0,0 +1,3 @@ +[pre-newline-bidi.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/selectors/pseudo-classes/focus.html.ini b/tests/wpt/metadata/html/semantics/selectors/pseudo-classes/focus.html.ini index 387c512ce759..3ca5eb6f04f7 100644 --- a/tests/wpt/metadata/html/semantics/selectors/pseudo-classes/focus.html.ini +++ b/tests/wpt/metadata/html/semantics/selectors/pseudo-classes/focus.html.ini @@ -5,3 +5,4 @@ [editable elements are focusable] expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-auto-dir-default.html.ini b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-auto-dir-default.html.ini index 3d68a3d0f5a2..5456c194f67f 100644 --- a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-auto-dir-default.html.ini +++ b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-auto-dir-default.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/text-level-semantics/the-bdi-element/bdi-auto-dir-default-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-missing-pdf.html.ini b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-missing-pdf.html.ini index 8ceef2e7481f..8eef56e3dd30 100644 --- a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-missing-pdf.html.ini +++ b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-missing-pdf.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-missing-pdf-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-nested.html.ini b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-nested.html.ini index 00381dabe51c..262fd24f75d9 100644 --- a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-nested.html.ini +++ b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-nested.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-nested-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-number.html.ini b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-number.html.ini index f3f98895a393..908bf9c2125a 100644 --- a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-number.html.ini +++ b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-number.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-number-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-separate.html.ini b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-separate.html.ini index 72578b893ca6..dc0cabafdcb9 100644 --- a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-separate.html.ini +++ b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-separate.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-separate-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-another-bdi-1.html.ini b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-another-bdi-1.html.ini index 315f19ae92d1..ef636e18455b 100644 --- a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-another-bdi-1.html.ini +++ b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-another-bdi-1.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-another-bdi-1-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-another-bdi-2.html.ini b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-another-bdi-2.html.ini index 67aedc688a0f..a27640aea480 100644 --- a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-another-bdi-2.html.ini +++ b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-another-bdi-2.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-another-bdi-2-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-following-1.html.ini b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-following-1.html.ini index f4409a0cc342..1d1883529da2 100644 --- a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-following-1.html.ini +++ b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-following-1.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-following-1-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-following-2.html.ini b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-following-2.html.ini index 6a86ec4c358b..8673aaa6a9a0 100644 --- a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-following-2.html.ini +++ b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-following-2.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-following-2-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-preceding-1.html.ini b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-preceding-1.html.ini index 5cde08771229..9b5329db0287 100644 --- a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-preceding-1.html.ini +++ b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-preceding-1.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-preceding-1-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-preceding-2.html.ini b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-preceding-2.html.ini index a097597f966a..121a439bd139 100644 --- a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-preceding-2.html.ini +++ b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-preceding-2.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-preceding-2-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-number-following-1.html.ini b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-number-following-1.html.ini index c9541ed778ba..235d2e7a2f96 100644 --- a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-number-following-1.html.ini +++ b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-number-following-1.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-number-following-1-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-number-following-2.html.ini b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-number-following-2.html.ini index d2ded5ef1d01..3f4992fa56a9 100644 --- a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-number-following-2.html.ini +++ b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-number-following-2.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-number-following-2-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-surrounding-run.html.ini b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-surrounding-run.html.ini index a3016fb0f483..3bb6b59ba6b8 100644 --- a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-surrounding-run.html.ini +++ b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-surrounding-run.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-surrounding-run-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-wrapped.html.ini b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-wrapped.html.ini index 967921d1e601..236efca1de24 100644 --- a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-wrapped.html.ini +++ b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-wrapped.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-wrapped-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-paragraph-level-container.html.ini b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-paragraph-level-container.html.ini index 449d42bcb57c..ab0c2098b083 100644 --- a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-paragraph-level-container.html.ini +++ b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdi-element/bdi-paragraph-level-container.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/text-level-semantics/the-bdi-element/bdi-paragraph-level-container-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdo-element/bdo-child.html.ini b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdo-element/bdo-child.html.ini index 5a4ef6f3d8e7..03b8fe59e8b9 100644 --- a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdo-element/bdo-child.html.ini +++ b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdo-element/bdo-child.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/text-level-semantics/the-bdo-element/bidi-001-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdo-element/bdo-ltr.html.ini b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdo-element/bdo-ltr.html.ini new file mode 100644 index 000000000000..7fd136d470d3 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdo-element/bdo-ltr.html.ini @@ -0,0 +1,3 @@ +[bdo-ltr.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdo-element/bdo-override.html.ini b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdo-element/bdo-override.html.ini new file mode 100644 index 000000000000..dede267f33eb --- /dev/null +++ b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdo-element/bdo-override.html.ini @@ -0,0 +1,3 @@ +[bdo-override.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdo-element/bidi-001.html.ini b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdo-element/bidi-001.html.ini index d9e1a581be76..ebcedc69dc9c 100644 --- a/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdo-element/bidi-001.html.ini +++ b/tests/wpt/metadata/html/semantics/text-level-semantics/the-bdo-element/bidi-001.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/text-level-semantics/the-bdo-element/bidi-001-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/text-level-semantics/the-br-element/br-bidi-in-inline-ancestors.html.ini b/tests/wpt/metadata/html/semantics/text-level-semantics/the-br-element/br-bidi-in-inline-ancestors.html.ini index 8bfc6325645a..0adc230f3456 100644 --- a/tests/wpt/metadata/html/semantics/text-level-semantics/the-br-element/br-bidi-in-inline-ancestors.html.ini +++ b/tests/wpt/metadata/html/semantics/text-level-semantics/the-br-element/br-bidi-in-inline-ancestors.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /html/semantics/text-level-semantics/the-br-element/br-bidi-in-inline-ancestors-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/text-level-semantics/the-br-element/br-bidi.html.ini b/tests/wpt/metadata/html/semantics/text-level-semantics/the-br-element/br-bidi.html.ini new file mode 100644 index 000000000000..03fad522b549 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/text-level-semantics/the-br-element/br-bidi.html.ini @@ -0,0 +1,3 @@ +[br-bidi.html] + type: reftest + expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/text-level-semantics/the-wbr-element/wbr-element.html.ini b/tests/wpt/metadata/html/semantics/text-level-semantics/the-wbr-element/wbr-element.html.ini index 160398681b46..eeee80bbad37 100644 --- a/tests/wpt/metadata/html/semantics/text-level-semantics/the-wbr-element/wbr-element.html.ini +++ b/tests/wpt/metadata/html/semantics/text-level-semantics/the-wbr-element/wbr-element.html.ini @@ -7,4 +7,4 @@ type: reftest reftype: == refurl: /html/semantics/text-level-semantics/the-wbr-element/wbr-element-ref.html - expected: FAIL + expected: CRASH diff --git a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/compile-error-cross-origin.html.ini b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/compile-error-cross-origin.html.ini index 0c0b1368736f..3ce807d5fa48 100644 --- a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/compile-error-cross-origin.html.ini +++ b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/compile-error-cross-origin.html.ini @@ -1,8 +1,9 @@ [compile-error-cross-origin.html] type: testharness + expected: TIMEOUT [window.onerror - compile error in ] - expected: FAIL + expected: NOTRUN [window.onerror - compile error in