mirror of
https://github.com/servo/servo.git
synced 2025-08-08 23:15:33 +01:00
Support the parsing of image/svg+xml elements (#31318)
* Support the parsing of image/svg+xml elements * Update WPT test expectations
This commit is contained in:
parent
d00312eb08
commit
123854faee
17 changed files with 4 additions and 320 deletions
|
@ -10,7 +10,7 @@ use crate::document_loader::DocumentLoader;
|
||||||
use crate::dom::bindings::codegen::Bindings::DOMParserBinding;
|
use crate::dom::bindings::codegen::Bindings::DOMParserBinding;
|
||||||
use crate::dom::bindings::codegen::Bindings::DOMParserBinding::DOMParserMethods;
|
use crate::dom::bindings::codegen::Bindings::DOMParserBinding::DOMParserMethods;
|
||||||
use crate::dom::bindings::codegen::Bindings::DOMParserBinding::SupportedType::{
|
use crate::dom::bindings::codegen::Bindings::DOMParserBinding::SupportedType::{
|
||||||
Application_xhtml_xml, Application_xml, Text_html, Text_xml,
|
Application_xhtml_xml, Application_xml, Image_svg_xml, Text_html, Text_xml,
|
||||||
};
|
};
|
||||||
use crate::dom::bindings::codegen::Bindings::DocumentBinding::DocumentReadyState;
|
use crate::dom::bindings::codegen::Bindings::DocumentBinding::DocumentReadyState;
|
||||||
use crate::dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
|
use crate::dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
|
||||||
|
@ -84,7 +84,7 @@ impl DOMParserMethods for DOMParser {
|
||||||
document.set_ready_state(DocumentReadyState::Complete);
|
document.set_ready_state(DocumentReadyState::Complete);
|
||||||
Ok(document)
|
Ok(document)
|
||||||
},
|
},
|
||||||
Text_xml | Application_xml | Application_xhtml_xml => {
|
Text_xml | Application_xml | Application_xhtml_xml | Image_svg_xml => {
|
||||||
let document = Document::new(
|
let document = Document::new(
|
||||||
&self.window,
|
&self.window,
|
||||||
HasBrowsingContext::No,
|
HasBrowsingContext::No,
|
||||||
|
|
|
@ -10,8 +10,8 @@ enum SupportedType {
|
||||||
"text/html",
|
"text/html",
|
||||||
"text/xml",
|
"text/xml",
|
||||||
"application/xml",
|
"application/xml",
|
||||||
"application/xhtml+xml"/*,
|
"application/xhtml+xml",
|
||||||
"image/svg+xml"*/
|
"image/svg+xml"
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window]
|
[Exposed=Window]
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
[DOMParser-parseFromString-url-base-pushstate.html]
|
|
||||||
[image/svg+xml invalid XML: created using another iframe's DOMParser from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using another iframe's DOMParser from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using another iframe's DOMParser from that frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created normally]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using a parser from the iframe and the method from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using a parser from the iframe and the method from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created normally]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using a parser from this frame and the method from the iframe]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using a parser from this frame and the method from the iframe]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using another iframe's DOMParser from that frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
[DOMParser-parseFromString-url-base.html]
|
|
||||||
[image/svg+xml invalid XML: created using another iframe's DOMParser from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using another iframe's DOMParser from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using another iframe's DOMParser from that frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created normally]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using a parser from the iframe and the method from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using a parser from the iframe and the method from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created normally]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using a parser from this frame and the method from the iframe]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using a parser from this frame and the method from the iframe]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using another iframe's DOMParser from that frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
[DOMParser-parseFromString-url-moretests.html]
|
|
||||||
[Child window after navigation (image/svg+xml)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Child window with parent method (image/svg+xml)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Parent window with child method (image/svg+xml)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Child window (image/svg+xml)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Child window crossing navigation (image/svg+xml)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Parent window (image/svg+xml)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
[DOMParser-parseFromString-url-pushstate.html]
|
|
||||||
[image/svg+xml invalid XML: created using another iframe's DOMParser from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using another iframe's DOMParser from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using another iframe's DOMParser from that frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created normally]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using a parser from the iframe and the method from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using a parser from the iframe and the method from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created normally]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using a parser from this frame and the method from the iframe]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using a parser from this frame and the method from the iframe]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using another iframe's DOMParser from that frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
[DOMParser-parseFromString-url.html]
|
|
||||||
[image/svg+xml invalid XML: created using another iframe's DOMParser from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using another iframe's DOMParser from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using another iframe's DOMParser from that frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created normally]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using a parser from the iframe and the method from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using a parser from the iframe and the method from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created normally]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using a parser from this frame and the method from the iframe]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using a parser from this frame and the method from the iframe]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using another iframe's DOMParser from that frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -49,7 +49,3 @@
|
||||||
|
|
||||||
[DOMParser: <parsererror> element added on error, 6</span>]
|
[DOMParser: <parsererror> element added on error, 6</span>]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[image/svg+xml is preserved in the error document]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -9,18 +9,5 @@
|
||||||
[Should return an error document for XML wellformedness errors in type application/xhtml+xml]
|
[Should return an error document for XML wellformedness errors in type application/xhtml+xml]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Should parse correctly in type image/svg+xml]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[XMLDocument interface for correctly parsed document with type image/svg+xml]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Should return an error document for XML wellformedness errors in type image/svg+xml]
|
[Should return an error document for XML wellformedness errors in type image/svg+xml]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[XMLDocument interface for incorrectly parsed document with type image/svg+xml]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[scripting must be disabled with type image/svg+xml]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,4 @@
|
||||||
[Document-createElement-namespace.html]
|
[Document-createElement-namespace.html]
|
||||||
[Created element's namespace in created SVG document by DOMParser ('image/svg+xml')]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Created element's namespace in empty.svg]
|
[Created element's namespace in empty.svg]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
[DOMParser-parseFromString-url-base-pushstate.html]
|
|
||||||
[image/svg+xml valid: created normally]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using another iframe's DOMParser from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using another iframe's DOMParser from that frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using a parser from this frame and the method from the iframe]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using a parser from the iframe and the method from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created normally]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using another iframe's DOMParser from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using another iframe's DOMParser from that frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using a parser from this frame and the method from the iframe]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using a parser from the iframe and the method from this frame]
|
|
||||||
expected: FAIL
|
|
|
@ -1,30 +0,0 @@
|
||||||
[DOMParser-parseFromString-url-base.html]
|
|
||||||
[image/svg+xml valid: created normally]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using another iframe's DOMParser from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using another iframe's DOMParser from that frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using a parser from this frame and the method from the iframe]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using a parser from the iframe and the method from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created normally]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using another iframe's DOMParser from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using another iframe's DOMParser from that frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using a parser from this frame and the method from the iframe]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using a parser from the iframe and the method from this frame]
|
|
||||||
expected: FAIL
|
|
|
@ -1,18 +0,0 @@
|
||||||
[DOMParser-parseFromString-url-moretests.html]
|
|
||||||
[Parent window (image/svg+xml)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Child window (image/svg+xml)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Parent window with child method (image/svg+xml)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Child window with parent method (image/svg+xml)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Child window crossing navigation (image/svg+xml)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Child window after navigation (image/svg+xml)]
|
|
||||||
expected: FAIL
|
|
|
@ -1,30 +0,0 @@
|
||||||
[DOMParser-parseFromString-url-pushstate.html]
|
|
||||||
[image/svg+xml valid: created normally]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using another iframe's DOMParser from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using another iframe's DOMParser from that frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using a parser from this frame and the method from the iframe]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using a parser from the iframe and the method from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created normally]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using another iframe's DOMParser from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using another iframe's DOMParser from that frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using a parser from this frame and the method from the iframe]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using a parser from the iframe and the method from this frame]
|
|
||||||
expected: FAIL
|
|
|
@ -1,30 +0,0 @@
|
||||||
[DOMParser-parseFromString-url.html]
|
|
||||||
[image/svg+xml valid: created normally]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using another iframe's DOMParser from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using another iframe's DOMParser from that frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using a parser from this frame and the method from the iframe]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml valid: created using a parser from the iframe and the method from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created normally]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using another iframe's DOMParser from this frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using another iframe's DOMParser from that frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using a parser from this frame and the method from the iframe]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[image/svg+xml invalid XML: created using a parser from the iframe and the method from this frame]
|
|
||||||
expected: FAIL
|
|
|
@ -49,6 +49,3 @@
|
||||||
|
|
||||||
[DOMParser: <parsererror> element added on error, <span xmlns:p1 xmlns:p2="urn:x-test:test"/>17]
|
[DOMParser: <parsererror> element added on error, <span xmlns:p1 xmlns:p2="urn:x-test:test"/>17]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[image/svg+xml is preserved in the error document]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -8,17 +8,5 @@
|
||||||
[Should return an error document for XML wellformedness errors in type application/xhtml+xml]
|
[Should return an error document for XML wellformedness errors in type application/xhtml+xml]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Should parse correctly in type image/svg+xml]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[XMLDocument interface for correctly parsed document with type image/svg+xml]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Should return an error document for XML wellformedness errors in type image/svg+xml]
|
[Should return an error document for XML wellformedness errors in type image/svg+xml]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[XMLDocument interface for incorrectly parsed document with type image/svg+xml]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[scripting must be disabled with type image/svg+xml]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue