diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-04-27 07:50:54 -0700 |
---|---|---|
committer | bors-servo <lbergstrom+bors@mozilla.com> | 2016-04-27 07:50:54 -0700 |
commit | daa1a2a0a82d336205dae340d705ea6c0bed4ed2 (patch) | |
tree | ded5df5b12c75a906b8cad8d8ac2cfcc4c772ae3 | |
parent | ce5423426270a3f3adbe12178f42e90903d66029 (diff) | |
parent | 3389c497c0ca740dbcd4fd56a4fc8d490f7a8592 (diff) | |
download | servo-daa1a2a0a82d336205dae340d705ea6c0bed4ed2.tar.gz servo-daa1a2a0a82d336205dae340d705ea6c0bed4ed2.zip |
Auto merge of #10647 - ConnorGBrewster:parse_xml, r=jdm
Finish hooking up XML parser
This is a work in progress PR for #10581. I just want to make sure I am headed in the right direction.
cc @jdm
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10647)
<!-- Reviewable:end -->
29 files changed, 393 insertions, 96 deletions
diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml index f4cdde5a19f..9e9cb5ec462 100644 --- a/components/script/Cargo.toml +++ b/components/script/Cargo.toml @@ -27,7 +27,7 @@ canvas_traits = {path = "../canvas_traits"} js = {git = "https://github.com/servo/rust-mozjs"} angle = {git = "https://github.com/emilio/angle", branch = "servo"} ipc-channel = {git = "https://github.com/servo/ipc-channel"} -xml5ever = {git = "https://github.com/Ygg01/xml5ever", features = ["unstable"]} +xml5ever = {version = "0.1.2", features = ["unstable"]} gfx_traits = {path = "../gfx_traits"} webrender_traits = {git = "https://github.com/servo/webrender_traits"} app_units = {version = "0.2.3", features = ["plugins"]} diff --git a/components/script/dom/servoxmlparser.rs b/components/script/dom/servoxmlparser.rs index 63e64a6fe4c..892477ffd0f 100644 --- a/components/script/dom/servoxmlparser.rs +++ b/components/script/dom/servoxmlparser.rs @@ -127,6 +127,8 @@ impl ServoXMLParser { if !pending_input.is_empty() { let chunk = pending_input.remove(0); self.tokenizer.borrow_mut().feed(chunk.into()); + } else { + self.tokenizer.borrow_mut().run(); } // Document parsing is blocked on an external resource. diff --git a/components/script/parse/xml.rs b/components/script/parse/xml.rs index 6c82e5af358..74741af8806 100644 --- a/components/script/parse/xml.rs +++ b/components/script/parse/xml.rs @@ -11,11 +11,13 @@ use dom::comment::Comment; use dom::document::Document; use dom::documenttype::DocumentType; use dom::element::{Element, ElementCreator}; +use dom::htmlscriptelement::HTMLScriptElement; use dom::node::Node; use dom::processinginstruction::ProcessingInstruction; use dom::servoxmlparser; use dom::servoxmlparser::ServoXMLParser; use dom::text::Text; +use html5ever; use msg::constellation_msg::PipelineId; use parse::Parser; use std::borrow::Cow; @@ -24,7 +26,7 @@ use url::Url; use util::str::DOMString; use xml5ever::tendril::StrTendril; use xml5ever::tokenizer::{Attribute, QName}; -use xml5ever::tree_builder::{NodeOrText, TreeSink}; +use xml5ever::tree_builder::{NextParserState, NodeOrText, TreeSink}; impl<'a> TreeSink for servoxmlparser::Sink { type Handle = JS<Node>; @@ -101,6 +103,24 @@ impl<'a> TreeSink for servoxmlparser::Sink { doc); JS::from_ref(pi.upcast()) } + + fn mark_script_already_started(&mut self, node: Self::Handle) { + let script = node.downcast::<HTMLScriptElement>(); + if let Some(script) = script { + script.mark_already_started(); + } + } + + fn complete_script(&mut self, node: Self::Handle) -> NextParserState { + let script = node.downcast::<HTMLScriptElement>(); + if let Some(script) = script { + return match script.prepare() { + html5ever::tree_builder::NextParserState::Continue => NextParserState::Continue, + html5ever::tree_builder::NextParserState::Suspend => NextParserState::Suspend + }; + } + NextParserState::Continue + } } @@ -119,4 +139,3 @@ pub fn parse_xml(document: &Document, }; parser.parse_chunk(String::from(input)); } - diff --git a/components/script/script_thread.rs b/components/script/script_thread.rs index a082c6bdaab..2aac608df13 100644 --- a/components/script/script_thread.rs +++ b/components/script/script_thread.rs @@ -1510,23 +1510,22 @@ impl ScriptThread { headers.get().map(|&LastModified(HttpDate(ref tm))| dom_last_modified(tm)) }); - let content_type = match metadata.content_type { - Some(ContentType(Mime(TopLevel::Text, SubLevel::Xml, _))) => { - Some(DOMString::from("text/xml")) + let content_type = metadata.content_type.as_ref().and_then(|&ContentType(ref mimetype)| { + match *mimetype { + Mime(TopLevel::Application, SubLevel::Xml, _) | + Mime(TopLevel::Application, SubLevel::Ext(_), _) | + Mime(TopLevel::Text, SubLevel::Xml, _) | + Mime(TopLevel::Text, SubLevel::Plain, _) => Some(DOMString::from(mimetype.to_string())), + _ => None, } - - Some(ContentType(Mime(TopLevel::Text, SubLevel::Plain, _))) => { - Some(DOMString::from("text/plain")) - } - - _ => None - }; + }); let loader = DocumentLoader::new_with_thread(self.resource_thread.clone(), Some(page.pipeline()), Some(incomplete.url.clone())); let is_html_document = match metadata.content_type { + Some(ContentType(Mime(TopLevel::Application, SubLevel::Xml, _))) | Some(ContentType(Mime(TopLevel::Text, SubLevel::Xml, _))) => IsHTMLDocument::NonHTMLDocument, _ => IsHTMLDocument::HTMLDocument, @@ -1587,19 +1586,26 @@ impl ScriptThread { document.set_https_state(metadata.https_state); - match metadata.content_type { - Some(ContentType(Mime(TopLevel::Text, SubLevel::Xml, _))) => { - parse_xml(document.r(), - parse_input, - final_url, - xml::ParseContext::Owner(Some(incomplete.pipeline_id))); - } - _ => { - parse_html(document.r(), - parse_input, - final_url, - ParseContext::Owner(Some(incomplete.pipeline_id))); - } + let is_xml = match metadata.content_type { + Some(ContentType(Mime(TopLevel::Application, SubLevel::Ext(ref sub_level), _))) + if sub_level.ends_with("+xml") => true, + + Some(ContentType(Mime(TopLevel::Application, SubLevel::Xml, _))) | + Some(ContentType(Mime(TopLevel::Text, SubLevel::Xml, _))) => true, + + _ => false, + }; + + if is_xml { + parse_xml(document.r(), + parse_input, + final_url, + xml::ParseContext::Owner(Some(incomplete.pipeline_id))); + } else { + parse_html(document.r(), + parse_input, + final_url, + ParseContext::Owner(Some(incomplete.pipeline_id))); } if incomplete.is_frozen { diff --git a/components/servo/Cargo.lock b/components/servo/Cargo.lock index 72bb1f53f42..6f9538ee228 100644 --- a/components/servo/Cargo.lock +++ b/components/servo/Cargo.lock @@ -1837,7 +1837,7 @@ dependencies = [ "uuid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "webrender_traits 0.1.0 (git+https://github.com/servo/webrender_traits)", "websocket 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", - "xml5ever 0.1.1 (git+https://github.com/Ygg01/xml5ever)", + "xml5ever 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2523,8 +2523,8 @@ dependencies = [ [[package]] name = "xml5ever" -version = "0.1.1" -source = "git+https://github.com/Ygg01/xml5ever#a51a6df18f384ecfb0a99b288c267178cf68f7f7" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "mac 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/ports/cef/Cargo.lock b/ports/cef/Cargo.lock index a8b2211b4e0..6873ea8ad00 100644 --- a/ports/cef/Cargo.lock +++ b/ports/cef/Cargo.lock @@ -1705,7 +1705,7 @@ dependencies = [ "uuid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "webrender_traits 0.1.0 (git+https://github.com/servo/webrender_traits)", "websocket 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", - "xml5ever 0.1.1 (git+https://github.com/Ygg01/xml5ever)", + "xml5ever 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2389,8 +2389,8 @@ dependencies = [ [[package]] name = "xml5ever" -version = "0.1.1" -source = "git+https://github.com/Ygg01/xml5ever#a51a6df18f384ecfb0a99b288c267178cf68f7f7" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "mac 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/ports/gonk/Cargo.lock b/ports/gonk/Cargo.lock index 6be8e25b977..919951afc87 100644 --- a/ports/gonk/Cargo.lock +++ b/ports/gonk/Cargo.lock @@ -1688,7 +1688,7 @@ dependencies = [ "uuid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "webrender_traits 0.1.0 (git+https://github.com/servo/webrender_traits)", "websocket 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", - "xml5ever 0.1.1 (git+https://github.com/Ygg01/xml5ever)", + "xml5ever 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2340,8 +2340,8 @@ dependencies = [ [[package]] name = "xml5ever" -version = "0.1.1" -source = "git+https://github.com/Ygg01/xml5ever#a51a6df18f384ecfb0a99b288c267178cf68f7f7" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "mac 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_xml.html.ini b/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_xml.html.ini deleted file mode 100644 index 9f8eea136e8..00000000000 --- a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_xml.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[contenttype_xml.html] - type: testharness - [XML document.contentType === 'application/xml'] - expected: FAIL - diff --git a/tests/wpt/metadata/dom/nodes/Document-createProcessingInstruction-xhtml.xhtml.ini b/tests/wpt/metadata/dom/nodes/Document-createProcessingInstruction-xhtml.xhtml.ini deleted file mode 100644 index c6ff4513774..00000000000 --- a/tests/wpt/metadata/dom/nodes/Document-createProcessingInstruction-xhtml.xhtml.ini +++ /dev/null @@ -1,3 +0,0 @@ -[Document-createProcessingInstruction-xhtml.xhtml] - type: testharness - disabled: xml diff --git a/tests/wpt/metadata/dom/nodes/Document-getElementsByTagName-xhtml.xhtml.ini b/tests/wpt/metadata/dom/nodes/Document-getElementsByTagName-xhtml.xhtml.ini index c5be44aa051..08074624384 100644 --- a/tests/wpt/metadata/dom/nodes/Document-getElementsByTagName-xhtml.xhtml.ini +++ b/tests/wpt/metadata/dom/nodes/Document-getElementsByTagName-xhtml.xhtml.ini @@ -1,3 +1,17 @@ [Document-getElementsByTagName-xhtml.xhtml] type: testharness - disabled: xml + [HTML element with uppercase tag name matches in XHTML documents] + expected: FAIL + + [Element in non-HTML namespace, prefix, lowercase name] + expected: FAIL + + [Element in non-HTML namespace, prefix, uppercase name] + expected: FAIL + + [Element in HTML namespace, no prefix, non-ascii characters in name] + expected: FAIL + + [Element in HTML namespace, prefix, non-ascii characters in name] + expected: FAIL + diff --git a/tests/wpt/metadata/dom/nodes/Element-childElementCount-dynamic-add-xhtml.xhtml.ini b/tests/wpt/metadata/dom/nodes/Element-childElementCount-dynamic-add-xhtml.xhtml.ini deleted file mode 100644 index efb23ece81d..00000000000 --- a/tests/wpt/metadata/dom/nodes/Element-childElementCount-dynamic-add-xhtml.xhtml.ini +++ /dev/null @@ -1,3 +0,0 @@ -[Element-childElementCount-dynamic-add-xhtml.xhtml] - type: testharness - disabled: xml diff --git a/tests/wpt/metadata/dom/nodes/Element-childElementCount-dynamic-remove-xhtml.xhtml.ini b/tests/wpt/metadata/dom/nodes/Element-childElementCount-dynamic-remove-xhtml.xhtml.ini deleted file mode 100644 index 07431710e64..00000000000 --- a/tests/wpt/metadata/dom/nodes/Element-childElementCount-dynamic-remove-xhtml.xhtml.ini +++ /dev/null @@ -1,3 +0,0 @@ -[Element-childElementCount-dynamic-remove-xhtml.xhtml] - type: testharness - disabled: xml diff --git a/tests/wpt/metadata/dom/nodes/Element-childElementCount-nochild-xhtml.xhtml.ini b/tests/wpt/metadata/dom/nodes/Element-childElementCount-nochild-xhtml.xhtml.ini deleted file mode 100644 index 4ab090cf558..00000000000 --- a/tests/wpt/metadata/dom/nodes/Element-childElementCount-nochild-xhtml.xhtml.ini +++ /dev/null @@ -1,3 +0,0 @@ -[Element-childElementCount-nochild-xhtml.xhtml] - type: testharness - disabled: xml diff --git a/tests/wpt/metadata/dom/nodes/Element-childElementCount-xhtml.xhtml.ini b/tests/wpt/metadata/dom/nodes/Element-childElementCount-xhtml.xhtml.ini deleted file mode 100644 index 6ec23772d64..00000000000 --- a/tests/wpt/metadata/dom/nodes/Element-childElementCount-xhtml.xhtml.ini +++ /dev/null @@ -1,3 +0,0 @@ -[Element-childElementCount-xhtml.xhtml] - type: testharness - disabled: xml diff --git a/tests/wpt/metadata/dom/nodes/Element-firstElementChild-entity-xhtml.xhtml.ini b/tests/wpt/metadata/dom/nodes/Element-firstElementChild-entity-xhtml.xhtml.ini index 7012b588058..a4042d91351 100644 --- a/tests/wpt/metadata/dom/nodes/Element-firstElementChild-entity-xhtml.xhtml.ini +++ b/tests/wpt/metadata/dom/nodes/Element-firstElementChild-entity-xhtml.xhtml.ini @@ -1,3 +1,5 @@ [Element-firstElementChild-entity-xhtml.xhtml] type: testharness - disabled: xml + [Entity References] + expected: FAIL + diff --git a/tests/wpt/metadata/dom/nodes/Element-firstElementChild-namespace-xhtml.xhtml.ini b/tests/wpt/metadata/dom/nodes/Element-firstElementChild-namespace-xhtml.xhtml.ini deleted file mode 100644 index 5cb09ad2cae..00000000000 --- a/tests/wpt/metadata/dom/nodes/Element-firstElementChild-namespace-xhtml.xhtml.ini +++ /dev/null @@ -1,3 +0,0 @@ -[Element-firstElementChild-namespace-xhtml.xhtml] - type: testharness - disabled: xml diff --git a/tests/wpt/metadata/dom/nodes/Element-firstElementChild-xhtml.xhtml.ini b/tests/wpt/metadata/dom/nodes/Element-firstElementChild-xhtml.xhtml.ini deleted file mode 100644 index bdf128d82ae..00000000000 --- a/tests/wpt/metadata/dom/nodes/Element-firstElementChild-xhtml.xhtml.ini +++ /dev/null @@ -1,3 +0,0 @@ -[Element-firstElementChild-xhtml.xhtml] - type: testharness - disabled: xml diff --git a/tests/wpt/metadata/dom/nodes/Element-lastElementChild-xhtml.xhtml.ini b/tests/wpt/metadata/dom/nodes/Element-lastElementChild-xhtml.xhtml.ini deleted file mode 100644 index bb1664f23cf..00000000000 --- a/tests/wpt/metadata/dom/nodes/Element-lastElementChild-xhtml.xhtml.ini +++ /dev/null @@ -1,3 +0,0 @@ -[Element-lastElementChild-xhtml.xhtml] - type: testharness - disabled: xml diff --git a/tests/wpt/metadata/dom/nodes/Element-nextElementSibling-xhtml.xhtml.ini b/tests/wpt/metadata/dom/nodes/Element-nextElementSibling-xhtml.xhtml.ini deleted file mode 100644 index e0c0ebeb5a1..00000000000 --- a/tests/wpt/metadata/dom/nodes/Element-nextElementSibling-xhtml.xhtml.ini +++ /dev/null @@ -1,3 +0,0 @@ -[Element-nextElementSibling-xhtml.xhtml] - type: testharness - disabled: xml diff --git a/tests/wpt/metadata/dom/nodes/Element-previousElementSibling-xhtml.xhtml.ini b/tests/wpt/metadata/dom/nodes/Element-previousElementSibling-xhtml.xhtml.ini deleted file mode 100644 index e0cc1e934a0..00000000000 --- a/tests/wpt/metadata/dom/nodes/Element-previousElementSibling-xhtml.xhtml.ini +++ /dev/null @@ -1,3 +0,0 @@ -[Element-previousElementSibling-xhtml.xhtml] - type: testharness - disabled: xml diff --git a/tests/wpt/metadata/dom/nodes/Element-siblingElement-null-xhtml.xhtml.ini b/tests/wpt/metadata/dom/nodes/Element-siblingElement-null-xhtml.xhtml.ini deleted file mode 100644 index a2cf4262415..00000000000 --- a/tests/wpt/metadata/dom/nodes/Element-siblingElement-null-xhtml.xhtml.ini +++ /dev/null @@ -1,3 +0,0 @@ -[Element-siblingElement-null-xhtml.xhtml] - type: testharness - disabled: xml diff --git a/tests/wpt/metadata/dom/nodes/Node-isEqualNode-xhtml.xhtml.ini b/tests/wpt/metadata/dom/nodes/Node-isEqualNode-xhtml.xhtml.ini index ccf1643417f..0690b87f5a6 100644 --- a/tests/wpt/metadata/dom/nodes/Node-isEqualNode-xhtml.xhtml.ini +++ b/tests/wpt/metadata/dom/nodes/Node-isEqualNode-xhtml.xhtml.ini @@ -1,6 +1,5 @@ [Node-isEqualNode-xhtml.xhtml] type: testharness - expected: TIMEOUT [isEqualNode should return true when only the internal subsets of DocumentTypes differ.] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/dom/nodes/ParentNode-querySelector-All-xht.xht.ini b/tests/wpt/metadata/dom/nodes/ParentNode-querySelector-All-xht.xht.ini index 39132ff05c5..78163fe6d9d 100644 --- a/tests/wpt/metadata/dom/nodes/ParentNode-querySelector-All-xht.xht.ini +++ b/tests/wpt/metadata/dom/nodes/ParentNode-querySelector-All-xht.xht.ini @@ -1,3 +1,248 @@ [ParentNode-querySelector-All-xht.xht] type: testharness - expected: TIMEOUT + [Detached Element.querySelectorAll tree order] + expected: FAIL + + [In-document Element.querySelectorAll tree order] + expected: FAIL + + [Document.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""\]] + expected: FAIL + + [Document.querySelector: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""\]] + expected: FAIL + + [Document.querySelectorAll: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target] + expected: FAIL + + [Document.querySelector: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target] + expected: FAIL + + [Document.querySelectorAll: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)] + expected: FAIL + + [Document.querySelector: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)] + expected: FAIL + + [Document.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)] + expected: FAIL + + [Document.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)] + expected: FAIL + + [Document.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)] + expected: FAIL + + [Document.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)] + expected: FAIL + + [Document.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)] + expected: FAIL + + [Document.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)] + expected: FAIL + + [Document.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line] + expected: FAIL + + [Document.querySelector: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line] + expected: FAIL + + [Document.querySelectorAll: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line] + expected: FAIL + + [Document.querySelector: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line] + expected: FAIL + + [Document.querySelectorAll: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter] + expected: FAIL + + [Document.querySelector: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter] + expected: FAIL + + [Document.querySelectorAll: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter] + expected: FAIL + + [Document.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter] + expected: FAIL + + [Detached Element.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""\]] + expected: FAIL + + [Detached Element.querySelector: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""\]] + expected: FAIL + + [Detached Element.querySelectorAll: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target] + expected: FAIL + + [Detached Element.querySelector: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target] + expected: FAIL + + [Detached Element.querySelectorAll: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)] + expected: FAIL + + [Detached Element.querySelector: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)] + expected: FAIL + + [Detached Element.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)] + expected: FAIL + + [Detached Element.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)] + expected: FAIL + + [Detached Element.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)] + expected: FAIL + + [Detached Element.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)] + expected: FAIL + + [Detached Element.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)] + expected: FAIL + + [Detached Element.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)] + expected: FAIL + + [Detached Element.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line] + expected: FAIL + + [Detached Element.querySelector: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line] + expected: FAIL + + [Detached Element.querySelectorAll: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line] + expected: FAIL + + [Detached Element.querySelector: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line] + expected: FAIL + + [Detached Element.querySelectorAll: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter] + expected: FAIL + + [Detached Element.querySelector: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter] + expected: FAIL + + [Detached Element.querySelectorAll: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter] + expected: FAIL + + [Detached Element.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter] + expected: FAIL + + [Fragment.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""\]] + expected: FAIL + + [Fragment.querySelector: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""\]] + expected: FAIL + + [Fragment.querySelectorAll: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target] + expected: FAIL + + [Fragment.querySelector: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target] + expected: FAIL + + [Fragment.querySelectorAll: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)] + expected: FAIL + + [Fragment.querySelector: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)] + expected: FAIL + + [Fragment.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)] + expected: FAIL + + [Fragment.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)] + expected: FAIL + + [Fragment.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)] + expected: FAIL + + [Fragment.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)] + expected: FAIL + + [Fragment.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)] + expected: FAIL + + [Fragment.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)] + expected: FAIL + + [Fragment.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line] + expected: FAIL + + [Fragment.querySelector: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line] + expected: FAIL + + [Fragment.querySelectorAll: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line] + expected: FAIL + + [Fragment.querySelector: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line] + expected: FAIL + + [Fragment.querySelectorAll: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter] + expected: FAIL + + [Fragment.querySelector: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter] + expected: FAIL + + [Fragment.querySelectorAll: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter] + expected: FAIL + + [Fragment.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter] + expected: FAIL + + [In-document Element.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""\]] + expected: FAIL + + [In-document Element.querySelector: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""\]] + expected: FAIL + + [In-document Element.querySelectorAll: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target] + expected: FAIL + + [In-document Element.querySelector: :target pseudo-class selector, matching the element referenced by the URL fragment identifier: :target] + expected: FAIL + + [In-document Element.querySelectorAll: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)] + expected: FAIL + + [In-document Element.querySelector: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)] + expected: FAIL + + [In-document Element.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)] + expected: FAIL + + [In-document Element.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)] + expected: FAIL + + [In-document Element.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)] + expected: FAIL + + [In-document Element.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)] + expected: FAIL + + [In-document Element.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)] + expected: FAIL + + [In-document Element.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)] + expected: FAIL + + [In-document Element.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line] + expected: FAIL + + [In-document Element.querySelector: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-line] + expected: FAIL + + [In-document Element.querySelectorAll: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line] + expected: FAIL + + [In-document Element.querySelector: ::first-line pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-line] + expected: FAIL + + [In-document Element.querySelectorAll: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter] + expected: FAIL + + [In-document Element.querySelector: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letter] + expected: FAIL + + [In-document Element.querySelectorAll: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter] + expected: FAIL + + [In-document Element.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter] + expected: FAIL + diff --git a/tests/wpt/metadata/dom/nodes/ProcessingInstruction-literal-2.xhtml.ini b/tests/wpt/metadata/dom/nodes/ProcessingInstruction-literal-2.xhtml.ini deleted file mode 100644 index 62b289b0173..00000000000 --- a/tests/wpt/metadata/dom/nodes/ProcessingInstruction-literal-2.xhtml.ini +++ /dev/null @@ -1,5 +0,0 @@ -[ProcessingInstruction-literal-2.xhtml] - type: testharness - [ProcessingInstruction literals] - expected: FAIL - diff --git a/tests/wpt/metadata/html/browsers/windows/browsing-context-first-created.xhtml.ini b/tests/wpt/metadata/html/browsers/windows/browsing-context-first-created.xhtml.ini index 0b2b03ab7a9..13ca91e5b37 100644 --- a/tests/wpt/metadata/html/browsers/windows/browsing-context-first-created.xhtml.ini +++ b/tests/wpt/metadata/html/browsers/windows/browsing-context-first-created.xhtml.ini @@ -1,3 +1,14 @@ [browsing-context-first-created.xhtml] type: testharness - expected: TIMEOUT + [Check the history.length of the first created browsing context] + expected: FAIL + + [Check the document's meta data] + expected: FAIL + + [Check the document's status] + expected: FAIL + + [Check the document's content] + expected: FAIL + diff --git a/tests/wpt/metadata/html/dom/documents/resource-metadata-management/document-compatmode-06.xhtml.ini b/tests/wpt/metadata/html/dom/documents/resource-metadata-management/document-compatmode-06.xhtml.ini deleted file mode 100644 index b7b4f32a60e..00000000000 --- a/tests/wpt/metadata/html/dom/documents/resource-metadata-management/document-compatmode-06.xhtml.ini +++ /dev/null @@ -1,5 +0,0 @@ -[document-compatmode-06.xhtml] - type: testharness - [document.compatMode: Standards] - expected: FAIL - diff --git a/tests/wpt/metadata/html/infrastructure/urls/dynamic-changes-to-base-urls/dynamic-urls.sub.xhtml.ini b/tests/wpt/metadata/html/infrastructure/urls/dynamic-changes-to-base-urls/dynamic-urls.sub.xhtml.ini index a4567898073..78c42d107f7 100644 --- a/tests/wpt/metadata/html/infrastructure/urls/dynamic-changes-to-base-urls/dynamic-urls.sub.xhtml.ini +++ b/tests/wpt/metadata/html/infrastructure/urls/dynamic-changes-to-base-urls/dynamic-urls.sub.xhtml.ini @@ -1,3 +1,56 @@ [dynamic-urls.sub.xhtml] type: testharness - expected: TIMEOUT + [The 'href' attribute of the 'a' element] + expected: FAIL + + [The 'href' attribute of the 'link' element] + expected: FAIL + + [The 'href' attribute of the 'area' element] + expected: FAIL + + [The 'cite' attribute of the 'q' element] + expected: FAIL + + [The 'cite' attribute of the 'blockquote' element] + expected: FAIL + + [The 'cite' attribute of the 'ins' element] + expected: FAIL + + [The 'cite' attribute of the 'del' element] + expected: FAIL + + [The 'src' attribute of the 'img' element] + expected: FAIL + + [The 'src' attribute of the 'embed' element] + expected: FAIL + + [The 'src' attribute of the 'video' element] + expected: FAIL + + [The 'src' attribute of the 'iframe' element] + expected: FAIL + + [The 'src' attribute of the 'script' element] + expected: FAIL + + [The 'src' attribute of the 'source' element] + expected: FAIL + + [The 'src' attribute of the 'track' element] + expected: FAIL + + [The 'action' attribute of the 'form' element] + expected: FAIL + + [The 'data' attribute of the 'object' element] + expected: FAIL + + [The 'formaction' attribute of the 'button' element] + expected: FAIL + + [Change the base URL must effect the descendant elements only] + expected: FAIL + 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 b6945e839da..2ff79b6d8c4 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,3 @@ type: reftest reftype: == refurl: /html/semantics/document-metadata/the-style-element/html_style_in_comment-ref.html - expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-noembed-noframes-iframe.xhtml.ini b/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-noembed-noframes-iframe.xhtml.ini deleted file mode 100644 index 1b6f1bde961..00000000000 --- a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-noembed-noframes-iframe.xhtml.ini +++ /dev/null @@ -1,5 +0,0 @@ -[script-noembed-noframes-iframe.xhtml] - type: testharness - [Script inside noembed, noframes and iframe] - expected: FAIL - |