aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorge Roman <george.roman.99@gmail.com>2019-02-13 22:21:52 +0200
committerGeorge Roman <george.roman.99@gmail.com>2019-03-14 21:41:02 +0200
commit4b8282b3b164771e3351c2a85890167ab6d0ab7f (patch)
tree8a8d7ef29732300b5a24919524aa3e56f7e45e84
parent431423388ee97fcbf23b5f7bbb6e8cf2c86740a5 (diff)
downloadservo-4b8282b3b164771e3351c2a85890167ab6d0ab7f.tar.gz
servo-4b8282b3b164771e3351c2a85890167ab6d0ab7f.zip
Implement CDATASection interface and createCDATASection method
-rw-r--r--components/layout_thread/dom_wrapper.rs9
-rw-r--r--components/script/dom/cdatasection.rs32
-rw-r--r--components/script/dom/characterdata.rs8
-rw-r--r--components/script/dom/document.rs17
-rw-r--r--components/script/dom/mod.rs1
-rw-r--r--components/script/dom/node.rs26
-rw-r--r--components/script/dom/range.rs14
-rw-r--r--components/script/dom/servoparser/html.rs2
-rw-r--r--components/script/dom/text.rs2
-rw-r--r--components/script/dom/webidls/CDATASection.webidl10
-rw-r--r--components/script/dom/webidls/Document.webidl2
-rw-r--r--components/script/lib.rs2
-rw-r--r--tests/wpt/metadata/dom/interfaces.html.ini72
-rw-r--r--tests/wpt/metadata/dom/nodes/Node-insertBefore.html.ini4
-rw-r--r--tests/wpt/metadata/dom/nodes/Node-replaceChild.html.ini7
-rw-r--r--tests/wpt/metadata/html/semantics/forms/the-textarea-element/value-defaultValue-textContent-xhtml.xhtml.ini5
-rw-r--r--tests/wpt/mozilla/meta/MANIFEST.json4
-rw-r--r--tests/wpt/mozilla/tests/mozilla/interfaces.html1
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",