diff options
author | George Roman <george.roman.99@gmail.com> | 2019-02-13 22:21:52 +0200 |
---|---|---|
committer | George Roman <george.roman.99@gmail.com> | 2019-03-14 21:41:02 +0200 |
commit | 4b8282b3b164771e3351c2a85890167ab6d0ab7f (patch) | |
tree | 8a8d7ef29732300b5a24919524aa3e56f7e45e84 | |
parent | 431423388ee97fcbf23b5f7bbb6e8cf2c86740a5 (diff) | |
download | servo-4b8282b3b164771e3351c2a85890167ab6d0ab7f.tar.gz servo-4b8282b3b164771e3351c2a85890167ab6d0ab7f.zip |
Implement CDATASection interface and createCDATASection method
-rw-r--r-- | components/layout_thread/dom_wrapper.rs | 9 | ||||
-rw-r--r-- | components/script/dom/cdatasection.rs | 32 | ||||
-rw-r--r-- | components/script/dom/characterdata.rs | 8 | ||||
-rw-r--r-- | components/script/dom/document.rs | 17 | ||||
-rw-r--r-- | components/script/dom/mod.rs | 1 | ||||
-rw-r--r-- | components/script/dom/node.rs | 26 | ||||
-rw-r--r-- | components/script/dom/range.rs | 14 | ||||
-rw-r--r-- | components/script/dom/servoparser/html.rs | 2 | ||||
-rw-r--r-- | components/script/dom/text.rs | 2 | ||||
-rw-r--r-- | components/script/dom/webidls/CDATASection.webidl | 10 | ||||
-rw-r--r-- | components/script/dom/webidls/Document.webidl | 2 | ||||
-rw-r--r-- | components/script/lib.rs | 2 | ||||
-rw-r--r-- | tests/wpt/metadata/dom/interfaces.html.ini | 72 | ||||
-rw-r--r-- | tests/wpt/metadata/dom/nodes/Node-insertBefore.html.ini | 4 | ||||
-rw-r--r-- | tests/wpt/metadata/dom/nodes/Node-replaceChild.html.ini | 7 | ||||
-rw-r--r-- | tests/wpt/metadata/html/semantics/forms/the-textarea-element/value-defaultValue-textContent-xhtml.xhtml.ini | 5 | ||||
-rw-r--r-- | tests/wpt/mozilla/meta/MANIFEST.json | 4 | ||||
-rw-r--r-- | tests/wpt/mozilla/tests/mozilla/interfaces.html | 1 |
18 files changed, 106 insertions, 112 deletions
diff --git a/components/layout_thread/dom_wrapper.rs b/components/layout_thread/dom_wrapper.rs index baaaaf5c730..3a7f088a246 100644 --- a/components/layout_thread/dom_wrapper.rs +++ b/components/layout_thread/dom_wrapper.rs @@ -40,7 +40,9 @@ use net_traits::image::base::{Image, ImageMetadata}; use range::Range; use script::layout_exports::NodeFlags; use script::layout_exports::PendingRestyle; -use script::layout_exports::{CharacterDataTypeId, ElementTypeId, HTMLElementTypeId, NodeTypeId}; +use script::layout_exports::{ + CharacterDataTypeId, ElementTypeId, HTMLElementTypeId, NodeTypeId, TextTypeId, +}; use script::layout_exports::{Document, Element, Node, Text}; use script::layout_exports::{LayoutCharacterDataHelpers, LayoutDocumentHelpers}; use script::layout_exports::{ @@ -153,7 +155,8 @@ impl<'ln> NodeInfo for ServoLayoutNode<'ln> { } fn is_text_node(&self) -> bool { - self.script_type_id() == NodeTypeId::CharacterData(CharacterDataTypeId::Text) + self.script_type_id() == + NodeTypeId::CharacterData(CharacterDataTypeId::Text(TextTypeId::Text)) } } @@ -765,7 +768,7 @@ impl<'le> ::selectors::Element for ServoLayoutElement<'le> { .dom_children() .all(|node| match node.script_type_id() { NodeTypeId::Element(..) => false, - NodeTypeId::CharacterData(CharacterDataTypeId::Text) => unsafe { + NodeTypeId::CharacterData(CharacterDataTypeId::Text(TextTypeId::Text)) => unsafe { node.node.downcast().unwrap().data_for_layout().is_empty() }, _ => true, diff --git a/components/script/dom/cdatasection.rs b/components/script/dom/cdatasection.rs new file mode 100644 index 00000000000..f4c788fd722 --- /dev/null +++ b/components/script/dom/cdatasection.rs @@ -0,0 +1,32 @@ +/* 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 https://mozilla.org/MPL/2.0/. */ + +use crate::dom::bindings::codegen::Bindings::CDATASectionBinding; +use crate::dom::bindings::root::DomRoot; +use crate::dom::bindings::str::DOMString; +use crate::dom::document::Document; +use crate::dom::node::Node; +use crate::dom::text::Text; +use dom_struct::dom_struct; + +#[dom_struct] +pub struct CDATASection { + text: Text, +} + +impl CDATASection { + fn new_inherited(text: DOMString, document: &Document) -> CDATASection { + CDATASection { + text: Text::new_inherited(text, document), + } + } + + pub fn new(text: DOMString, document: &Document) -> DomRoot<CDATASection> { + Node::reflect_node( + Box::new(CDATASection::new_inherited(text, document)), + document, + CDATASectionBinding::Wrap, + ) + } +} diff --git a/components/script/dom/characterdata.rs b/components/script/dom/characterdata.rs index 24d042a3c12..54f3ab0e360 100644 --- a/components/script/dom/characterdata.rs +++ b/components/script/dom/characterdata.rs @@ -8,12 +8,13 @@ use crate::dom::bindings::cell::DomRefCell; use crate::dom::bindings::codegen::Bindings::CharacterDataBinding::CharacterDataMethods; use crate::dom::bindings::codegen::Bindings::NodeBinding::NodeBinding::NodeMethods; use crate::dom::bindings::codegen::Bindings::ProcessingInstructionBinding::ProcessingInstructionMethods; -use crate::dom::bindings::codegen::InheritTypes::{CharacterDataTypeId, NodeTypeId}; +use crate::dom::bindings::codegen::InheritTypes::{CharacterDataTypeId, NodeTypeId, TextTypeId}; use crate::dom::bindings::codegen::UnionTypes::NodeOrString; use crate::dom::bindings::error::{Error, ErrorResult, Fallible}; use crate::dom::bindings::inheritance::Castable; use crate::dom::bindings::root::{DomRoot, LayoutDom}; use crate::dom::bindings::str::DOMString; +use crate::dom::cdatasection::CDATASection; use crate::dom::comment::Comment; use crate::dom::document::Document; use crate::dom::element::Element; @@ -50,7 +51,10 @@ impl CharacterData { let pi = self.downcast::<ProcessingInstruction>().unwrap(); DomRoot::upcast(ProcessingInstruction::new(pi.Target(), data, &document)) }, - NodeTypeId::CharacterData(CharacterDataTypeId::Text) => { + NodeTypeId::CharacterData(CharacterDataTypeId::Text(TextTypeId::CDATASection)) => { + DomRoot::upcast(CDATASection::new(data, &document)) + }, + NodeTypeId::CharacterData(CharacterDataTypeId::Text(TextTypeId::Text)) => { DomRoot::upcast(Text::new(data, &document)) }, _ => unreachable!(), diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index 91ccc829719..b589d4e5b79 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -35,6 +35,7 @@ use crate::dom::bindings::xmlname::XMLName::InvalidXMLName; use crate::dom::bindings::xmlname::{ namespace_from_domstring, validate_and_extract, xml_name_type, }; +use crate::dom::cdatasection::CDATASection; use crate::dom::closeevent::CloseEvent; use crate::dom::comment::Comment; use crate::dom::compositionevent::CompositionEvent; @@ -3610,6 +3611,22 @@ impl DocumentMethods for Document { Text::new(data, self) } + // https://dom.spec.whatwg.org/#dom-document-createcdatasection + fn CreateCDATASection(&self, data: DOMString) -> Fallible<DomRoot<CDATASection>> { + // Step 1 + if self.is_html_document { + return Err(Error::NotSupported); + } + + // Step 2 + if data.contains("]]>") { + return Err(Error::InvalidCharacter); + } + + // Step 3 + Ok(CDATASection::new(data, self)) + } + // https://dom.spec.whatwg.org/#dom-document-createcomment fn CreateComment(&self, data: DOMString) -> DomRoot<Comment> { Comment::new(data, self) diff --git a/components/script/dom/mod.rs b/components/script/dom/mod.rs index b8f288a7e4e..e7ea25c565f 100644 --- a/components/script/dom/mod.rs +++ b/components/script/dom/mod.rs @@ -245,6 +245,7 @@ pub mod bluetoothuuid; pub mod canvasgradient; pub mod canvaspattern; pub mod canvasrenderingcontext2d; +pub mod cdatasection; pub mod channelmergernode; pub mod channelsplitternode; pub mod characterdata; diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 7b5d4157bc0..3331686eef4 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -19,7 +19,7 @@ use crate::dom::bindings::conversions::{self, DerivedFrom}; use crate::dom::bindings::error::{Error, ErrorResult, Fallible}; use crate::dom::bindings::inheritance::{Castable, CharacterDataTypeId, ElementTypeId}; use crate::dom::bindings::inheritance::{EventTargetTypeId, HTMLElementTypeId, NodeTypeId}; -use crate::dom::bindings::inheritance::{SVGElementTypeId, SVGGraphicsElementTypeId}; +use crate::dom::bindings::inheritance::{SVGElementTypeId, SVGGraphicsElementTypeId, TextTypeId}; use crate::dom::bindings::reflector::{reflect_dom_object, DomObject}; use crate::dom::bindings::root::{Dom, DomRoot, DomSlice, LayoutDom, MutNullableDom}; use crate::dom::bindings::str::{DOMString, USVString}; @@ -559,7 +559,7 @@ impl Node { } match self.type_id() { - NodeTypeId::CharacterData(CharacterDataTypeId::Text) => self + NodeTypeId::CharacterData(CharacterDataTypeId::Text(TextTypeId::Text)) => self .parent_node .get() .unwrap() @@ -1577,7 +1577,7 @@ impl Node { // Step 4-5. match node.type_id() { - NodeTypeId::CharacterData(CharacterDataTypeId::Text) => { + NodeTypeId::CharacterData(CharacterDataTypeId::Text(_)) => { if parent.is::<Document>() { return Err(Error::HierarchyRequest); } @@ -2081,7 +2081,12 @@ impl NodeMethods for Node { // https://dom.spec.whatwg.org/#dom-node-nodetype fn NodeType(&self) -> u16 { match self.type_id() { - NodeTypeId::CharacterData(CharacterDataTypeId::Text) => NodeConstants::TEXT_NODE, + NodeTypeId::CharacterData(CharacterDataTypeId::Text(TextTypeId::Text)) => { + NodeConstants::TEXT_NODE + }, + NodeTypeId::CharacterData(CharacterDataTypeId::Text(TextTypeId::CDATASection)) => { + NodeConstants::CDATA_SECTION_NODE + }, NodeTypeId::CharacterData(CharacterDataTypeId::ProcessingInstruction) => { NodeConstants::PROCESSING_INSTRUCTION_NODE }, @@ -2097,7 +2102,12 @@ impl NodeMethods for Node { fn NodeName(&self) -> DOMString { match self.type_id() { NodeTypeId::Element(..) => self.downcast::<Element>().unwrap().TagName(), - NodeTypeId::CharacterData(CharacterDataTypeId::Text) => DOMString::from("#text"), + NodeTypeId::CharacterData(CharacterDataTypeId::Text(TextTypeId::Text)) => { + DOMString::from("#text") + }, + NodeTypeId::CharacterData(CharacterDataTypeId::Text(TextTypeId::CDATASection)) => { + DOMString::from("#cdata-section") + }, NodeTypeId::CharacterData(CharacterDataTypeId::ProcessingInstruction) => { self.downcast::<ProcessingInstruction>().unwrap().Target() }, @@ -2253,7 +2263,7 @@ impl NodeMethods for Node { // Step 4-5. match node.type_id() { - NodeTypeId::CharacterData(CharacterDataTypeId::Text) if self.is::<Document>() => { + NodeTypeId::CharacterData(CharacterDataTypeId::Text(_)) if self.is::<Document>() => { return Err(Error::HierarchyRequest); }, NodeTypeId::DocumentType if !self.is::<Document>() => { @@ -2476,7 +2486,7 @@ impl NodeMethods for Node { { return false; } - NodeTypeId::CharacterData(CharacterDataTypeId::Text) | + NodeTypeId::CharacterData(CharacterDataTypeId::Text(_)) | NodeTypeId::CharacterData(CharacterDataTypeId::Comment) if !is_equal_characterdata(this, node) => { @@ -2931,7 +2941,7 @@ impl Into<LayoutNodeType> for NodeTypeId { fn into(self) -> LayoutNodeType { match self { NodeTypeId::Element(e) => LayoutNodeType::Element(e.into()), - NodeTypeId::CharacterData(CharacterDataTypeId::Text) => LayoutNodeType::Text, + NodeTypeId::CharacterData(CharacterDataTypeId::Text(_)) => LayoutNodeType::Text, x => unreachable!("Layout should not traverse nodes of type {:?}", x), } } diff --git a/components/script/dom/range.rs b/components/script/dom/range.rs index 5a81ba595b6..630c4acd245 100644 --- a/components/script/dom/range.rs +++ b/components/script/dom/range.rs @@ -707,14 +707,14 @@ impl RangeMethods for Range { } match start_node.type_id() { // Handled under step 2. - NodeTypeId::CharacterData(CharacterDataTypeId::Text) => (), + NodeTypeId::CharacterData(CharacterDataTypeId::Text(_)) => (), NodeTypeId::CharacterData(_) => return Err(Error::HierarchyRequest), _ => (), } // Step 2. - let (reference_node, parent) = - if start_node.type_id() == NodeTypeId::CharacterData(CharacterDataTypeId::Text) { + let (reference_node, parent) = match start_node.type_id() { + NodeTypeId::CharacterData(CharacterDataTypeId::Text(_)) => { // Step 3. let parent = match start_node.GetParentNode() { Some(parent) => parent, @@ -723,11 +723,13 @@ impl RangeMethods for Range { }; // Step 5. (Some(DomRoot::from_ref(&*start_node)), parent) - } else { + }, + _ => { // Steps 4-5. let child = start_node.ChildNodes().Item(start_offset); (child, DomRoot::from_ref(&*start_node)) - }; + }, + }; // Step 6. Node::ensure_pre_insertion_validity(node, &parent, reference_node.deref())?; @@ -955,7 +957,7 @@ impl RangeMethods for Range { NodeTypeId::Document(_) | NodeTypeId::DocumentFragment => None, NodeTypeId::Element(_) => Some(DomRoot::downcast::<Element>(node).unwrap()), NodeTypeId::CharacterData(CharacterDataTypeId::Comment) | - NodeTypeId::CharacterData(CharacterDataTypeId::Text) => node.GetParentElement(), + NodeTypeId::CharacterData(CharacterDataTypeId::Text(_)) => node.GetParentElement(), NodeTypeId::CharacterData(CharacterDataTypeId::ProcessingInstruction) | NodeTypeId::DocumentType => unreachable!(), }; diff --git a/components/script/dom/servoparser/html.rs b/components/script/dom/servoparser/html.rs index 45ef625a5ee..fe6d06064f4 100644 --- a/components/script/dom/servoparser/html.rs +++ b/components/script/dom/servoparser/html.rs @@ -232,7 +232,7 @@ impl<'a> Serialize for &'a Node { serializer.write_doctype(&doctype.name())?; }, - NodeTypeId::CharacterData(CharacterDataTypeId::Text) => { + NodeTypeId::CharacterData(CharacterDataTypeId::Text(_)) => { let cdata = n.downcast::<CharacterData>().unwrap(); serializer.write_text(&cdata.data())?; }, diff --git a/components/script/dom/text.rs b/components/script/dom/text.rs index 49deffb071a..a3b66583d83 100644 --- a/components/script/dom/text.rs +++ b/components/script/dom/text.rs @@ -24,7 +24,7 @@ pub struct Text { } impl Text { - fn new_inherited(text: DOMString, document: &Document) -> Text { + pub fn new_inherited(text: DOMString, document: &Document) -> Text { Text { characterdata: CharacterData::new_inherited(text, document), } diff --git a/components/script/dom/webidls/CDATASection.webidl b/components/script/dom/webidls/CDATASection.webidl new file mode 100644 index 00000000000..cddd6edef6f --- /dev/null +++ b/components/script/dom/webidls/CDATASection.webidl @@ -0,0 +1,10 @@ +/* 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 https://mozilla.org/MPL/2.0/. */ +/* + * The origin of this IDL file is + * https://dom.spec.whatwg.org/#interface-cdatasection + */ + +interface CDATASection : Text { +}; diff --git a/components/script/dom/webidls/Document.webidl b/components/script/dom/webidls/Document.webidl index 91e82cfcd65..ccc3d339377 100644 --- a/components/script/dom/webidls/Document.webidl +++ b/components/script/dom/webidls/Document.webidl @@ -40,6 +40,8 @@ interface Document : Node { DocumentFragment createDocumentFragment(); [NewObject] Text createTextNode(DOMString data); + [NewObject, Throws] + CDATASection createCDATASection(DOMString data); [NewObject] Comment createComment(DOMString data); [NewObject, Throws] diff --git a/components/script/lib.rs b/components/script/lib.rs index a1ba351888a..565cdbfc6c2 100644 --- a/components/script/lib.rs +++ b/components/script/lib.rs @@ -84,7 +84,7 @@ mod webdriver_handlers; /// TODO(emilio): A few of the FooHelpers can go away, presumably... pub mod layout_exports { pub use crate::dom::bindings::inheritance::{CharacterDataTypeId, ElementTypeId}; - pub use crate::dom::bindings::inheritance::{HTMLElementTypeId, NodeTypeId}; + pub use crate::dom::bindings::inheritance::{HTMLElementTypeId, NodeTypeId, TextTypeId}; pub use crate::dom::bindings::root::LayoutDom; pub use crate::dom::characterdata::LayoutCharacterDataHelpers; pub use crate::dom::document::{Document, LayoutDocumentHelpers, PendingRestyle}; diff --git a/tests/wpt/metadata/dom/interfaces.html.ini b/tests/wpt/metadata/dom/interfaces.html.ini index c5fd2b318af..3fb70edaaca 100644 --- a/tests/wpt/metadata/dom/interfaces.html.ini +++ b/tests/wpt/metadata/dom/interfaces.html.ini @@ -99,21 +99,6 @@ [DOMTokenList interface: calling supports(DOMString) on document.body.classList with too few arguments must throw TypeError] expected: FAIL - [Document interface: operation createCDATASection(DOMString)] - expected: FAIL - - [Document interface: new Document() must inherit property "createCDATASection" with the proper type (18)] - expected: FAIL - - [Document interface: calling createCDATASection(DOMString) on new Document() with too few arguments must throw TypeError] - expected: FAIL - - [Document interface: xmlDoc must inherit property "createCDATASection" with the proper type (18)] - expected: FAIL - - [Document interface: calling createCDATASection(DOMString) on xmlDoc with too few arguments must throw TypeError] - expected: FAIL - [Attr interface: existence and properties of interface object] expected: FAIL @@ -297,21 +282,6 @@ [EventTarget interface: calling dispatchEvent(Event) on document.querySelector("[id\]").attributes[0\] with too few arguments must throw TypeError] expected: FAIL - [CDATASection interface: existence and properties of interface object] - expected: FAIL - - [CDATASection interface object length] - expected: FAIL - - [CDATASection interface object name] - expected: FAIL - - [CDATASection interface: existence and properties of interface prototype object] - expected: FAIL - - [CDATASection interface: existence and properties of interface prototype object's "constructor" property] - expected: FAIL - [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "getRootNode" with the proper type (17)] expected: FAIL @@ -504,18 +474,12 @@ [Document interface: new Document() must inherit property "origin" with the proper type] expected: FAIL - [Document interface: new Document() must inherit property "createCDATASection(DOMString)" with the proper type] - expected: FAIL - [Node interface: new Document() must inherit property "isConnected" with the proper type] expected: FAIL [Document interface: xmlDoc must inherit property "origin" with the proper type] expected: FAIL - [Document interface: xmlDoc must inherit property "createCDATASection(DOMString)" with the proper type] - expected: FAIL - [Node interface: xmlDoc must inherit property "isConnected" with the proper type] expected: FAIL @@ -795,9 +759,6 @@ [Unscopable handled correctly for remove() on CharacterData] expected: FAIL - [CDATASection interface: existence and properties of interface prototype object's @@unscopables property] - expected: FAIL - [AbstractRange interface: existence and properties of interface object] expected: FAIL @@ -1001,9 +962,6 @@ [Document interface: attribute origin] expected: FAIL - [Document interface: operation createCDATASection(DOMString)] - expected: FAIL - [Unscopable handled correctly for prepend([object Object\],[object Object\]) on Document] expected: FAIL @@ -1013,21 +971,9 @@ [Document interface: new Document() must inherit property "origin" with the proper type] expected: FAIL - [Document interface: new Document() must inherit property "createCDATASection(DOMString)" with the proper type] - expected: FAIL - - [Document interface: calling createCDATASection(DOMString) on new Document() with too few arguments must throw TypeError] - expected: FAIL - [Document interface: xmlDoc must inherit property "origin" with the proper type] expected: FAIL - [Document interface: xmlDoc must inherit property "createCDATASection(DOMString)" with the proper type] - expected: FAIL - - [Document interface: calling createCDATASection(DOMString) on xmlDoc with too few arguments must throw TypeError] - expected: FAIL - [DocumentType interface: existence and properties of interface prototype object's @@unscopables property] expected: FAIL @@ -1172,24 +1118,6 @@ [Text interface: document.createTextNode("abc") must inherit property "assignedSlot" with the proper type] expected: FAIL - [CDATASection interface: existence and properties of interface object] - expected: FAIL - - [CDATASection interface object length] - expected: FAIL - - [CDATASection interface object name] - expected: FAIL - - [CDATASection interface: existence and properties of interface prototype object] - expected: FAIL - - [CDATASection interface: existence and properties of interface prototype object's "constructor" property] - expected: FAIL - - [CDATASection interface: existence and properties of interface prototype object's @@unscopables property] - expected: FAIL - [AbstractRange interface: existence and properties of interface object] expected: FAIL diff --git a/tests/wpt/metadata/dom/nodes/Node-insertBefore.html.ini b/tests/wpt/metadata/dom/nodes/Node-insertBefore.html.ini deleted file mode 100644 index f97be135920..00000000000 --- a/tests/wpt/metadata/dom/nodes/Node-insertBefore.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[Node-insertBefore.html] - [Should check the 'parent' type before checking whether 'child' is a child of 'parent'] - expected: FAIL - diff --git a/tests/wpt/metadata/dom/nodes/Node-replaceChild.html.ini b/tests/wpt/metadata/dom/nodes/Node-replaceChild.html.ini deleted file mode 100644 index d987d69e717..00000000000 --- a/tests/wpt/metadata/dom/nodes/Node-replaceChild.html.ini +++ /dev/null @@ -1,7 +0,0 @@ -[Node-replaceChild.html] - [If the context node is not a node that can contain children, a HierarchyRequestError exception should be thrown] - expected: FAIL - - [Should check the 'parent' type before checking whether 'child' is a child of 'parent'] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/forms/the-textarea-element/value-defaultValue-textContent-xhtml.xhtml.ini b/tests/wpt/metadata/html/semantics/forms/the-textarea-element/value-defaultValue-textContent-xhtml.xhtml.ini deleted file mode 100644 index f384e3e7936..00000000000 --- a/tests/wpt/metadata/html/semantics/forms/the-textarea-element/value-defaultValue-textContent-xhtml.xhtml.ini +++ /dev/null @@ -1,5 +0,0 @@ -[value-defaultValue-textContent-xhtml.xhtml] - type: testharness - [defaultValue and value include CDATASection Text nodes] - expected: FAIL - diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json index 0688662d481..00dfe326e99 100644 --- a/tests/wpt/mozilla/meta/MANIFEST.json +++ b/tests/wpt/mozilla/meta/MANIFEST.json @@ -13281,7 +13281,7 @@ ], "mozilla/interfaces.html": [ [ - "/_mozilla/mozilla/interfaces.html", + "mozilla/interfaces.html", {} ] ], @@ -20239,7 +20239,7 @@ "testharness" ], "mozilla/interfaces.html": [ - "ab4ead5cfb5afc8b65cb71841e32ee46ec75318b", + "f8d8ab879f84bf03f89b12d5d010c83c1025265a", "testharness" ], "mozilla/interfaces.js": [ diff --git a/tests/wpt/mozilla/tests/mozilla/interfaces.html b/tests/wpt/mozilla/tests/mozilla/interfaces.html index ab4ead5cfb5..f8d8ab879f8 100644 --- a/tests/wpt/mozilla/tests/mozilla/interfaces.html +++ b/tests/wpt/mozilla/tests/mozilla/interfaces.html @@ -31,6 +31,7 @@ test_interfaces([ "CanvasGradient", "CanvasRenderingContext2D", "CanvasPattern", + "CDATASection", "ChannelMergerNode", "ChannelSplitterNode", "CharacterData", |