aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Pieters <zcorpan@gmail.com>2018-10-02 19:13:53 +0200
committerSimon Pieters <zcorpan@gmail.com>2018-10-02 19:23:02 +0200
commit9b74f0af2451afbbe05915d1f85845296f3577e0 (patch)
tree949de06473480e3e4c7d5215473b8748d7e0b3e0
parent57053e03bbfc65e1d2f283cfa8646038be9f9b06 (diff)
downloadservo-9b74f0af2451afbbe05915d1f85845296f3577e0.tar.gz
servo-9b74f0af2451afbbe05915d1f85845296f3577e0.zip
Remove the HTMLTable{Header,Data}CellElement interfaces
Fixes #17222.
-rw-r--r--components/script/dom/bindings/htmlconstructor.rs7
-rw-r--r--components/script/dom/create.rs7
-rw-r--r--components/script/dom/htmltablecellelement.rs23
-rw-r--r--components/script/dom/htmltabledatacellelement.rs43
-rw-r--r--components/script/dom/htmltableheadercellelement.rs43
-rw-r--r--components/script/dom/htmltablerowelement.rs9
-rw-r--r--components/script/dom/mod.rs2
-rw-r--r--components/script/dom/node.rs2
-rw-r--r--components/script/dom/virtualmethods.rs2
-rw-r--r--components/script/dom/webidls/HTMLTableCellElement.webidl7
-rw-r--r--components/script/dom/webidls/HTMLTableDataCellElement.webidl15
-rw-r--r--components/script/dom/webidls/HTMLTableHeaderCellElement.webidl15
-rw-r--r--tests/wpt/metadata/html/dom/historical.html.ini6
-rw-r--r--tests/wpt/mozilla/meta/MANIFEST.json4
-rw-r--r--tests/wpt/mozilla/tests/mozilla/collections.html4
-rw-r--r--tests/wpt/mozilla/tests/mozilla/interfaces.html2
16 files changed, 42 insertions, 149 deletions
diff --git a/components/script/dom/bindings/htmlconstructor.rs b/components/script/dom/bindings/htmlconstructor.rs
index 7cbac28398f..c8f7e63358e 100644
--- a/components/script/dom/bindings/htmlconstructor.rs
+++ b/components/script/dom/bindings/htmlconstructor.rs
@@ -55,10 +55,9 @@ use dom::bindings::codegen::Bindings::HTMLSourceElementBinding;
use dom::bindings::codegen::Bindings::HTMLSpanElementBinding;
use dom::bindings::codegen::Bindings::HTMLStyleElementBinding;
use dom::bindings::codegen::Bindings::HTMLTableCaptionElementBinding;
+use dom::bindings::codegen::Bindings::HTMLTableCellElementBinding;
use dom::bindings::codegen::Bindings::HTMLTableColElementBinding;
-use dom::bindings::codegen::Bindings::HTMLTableDataCellElementBinding;
use dom::bindings::codegen::Bindings::HTMLTableElementBinding;
-use dom::bindings::codegen::Bindings::HTMLTableHeaderCellElementBinding;
use dom::bindings::codegen::Bindings::HTMLTableRowElementBinding;
use dom::bindings::codegen::Bindings::HTMLTableSectionElementBinding;
use dom::bindings::codegen::Bindings::HTMLTemplateElementBinding;
@@ -310,11 +309,11 @@ pub fn get_constructor_object_from_local_name(
local_name!("sup") => get_constructor!(HTMLElementBinding),
local_name!("table") => get_constructor!(HTMLTableElementBinding),
local_name!("tbody") => get_constructor!(HTMLTableSectionElementBinding),
- local_name!("td") => get_constructor!(HTMLTableDataCellElementBinding),
+ local_name!("td") => get_constructor!(HTMLTableCellElementBinding),
local_name!("template") => get_constructor!(HTMLTemplateElementBinding),
local_name!("textarea") => get_constructor!(HTMLTextAreaElementBinding),
local_name!("tfoot") => get_constructor!(HTMLTableSectionElementBinding),
- local_name!("th") => get_constructor!(HTMLTableHeaderCellElementBinding),
+ local_name!("th") => get_constructor!(HTMLTableCellElementBinding),
local_name!("thead") => get_constructor!(HTMLTableSectionElementBinding),
local_name!("time") => get_constructor!(HTMLTimeElementBinding),
local_name!("title") => get_constructor!(HTMLTitleElementBinding),
diff --git a/components/script/dom/create.rs b/components/script/dom/create.rs
index 94fe6bd1457..e1949ccc559 100644
--- a/components/script/dom/create.rs
+++ b/components/script/dom/create.rs
@@ -64,10 +64,9 @@ use dom::htmlsourceelement::HTMLSourceElement;
use dom::htmlspanelement::HTMLSpanElement;
use dom::htmlstyleelement::HTMLStyleElement;
use dom::htmltablecaptionelement::HTMLTableCaptionElement;
+use dom::htmltablecellelement::HTMLTableCellElement;
use dom::htmltablecolelement::HTMLTableColElement;
-use dom::htmltabledatacellelement::HTMLTableDataCellElement;
use dom::htmltableelement::HTMLTableElement;
-use dom::htmltableheadercellelement::HTMLTableHeaderCellElement;
use dom::htmltablerowelement::HTMLTableRowElement;
use dom::htmltablesectionelement::HTMLTableSectionElement;
use dom::htmltemplateelement::HTMLTemplateElement;
@@ -346,12 +345,12 @@ pub fn create_native_html_element(
local_name!("sup") => make!(HTMLElement),
local_name!("table") => make!(HTMLTableElement),
local_name!("tbody") => make!(HTMLTableSectionElement),
- local_name!("td") => make!(HTMLTableDataCellElement),
+ local_name!("td") => make!(HTMLTableCellElement),
local_name!("template") => make!(HTMLTemplateElement),
local_name!("textarea") => make!(HTMLTextAreaElement),
// https://html.spec.whatwg.org/multipage/#the-tfoot-element:concept-element-dom
local_name!("tfoot") => make!(HTMLTableSectionElement),
- local_name!("th") => make!(HTMLTableHeaderCellElement),
+ local_name!("th") => make!(HTMLTableCellElement),
// https://html.spec.whatwg.org/multipage/#the-thead-element:concept-element-dom
local_name!("thead") => make!(HTMLTableSectionElement),
local_name!("time") => make!(HTMLTimeElement),
diff --git a/components/script/dom/htmltablecellelement.rs b/components/script/dom/htmltablecellelement.rs
index 5b9d8aa7748..ec4819b80ea 100644
--- a/components/script/dom/htmltablecellelement.rs
+++ b/components/script/dom/htmltablecellelement.rs
@@ -3,9 +3,11 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use cssparser::RGBA;
+use dom::bindings::codegen::Bindings::HTMLTableCellElementBinding;
use dom::bindings::codegen::Bindings::HTMLTableCellElementBinding::HTMLTableCellElementMethods;
use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
use dom::bindings::inheritance::Castable;
+use dom::bindings::root::DomRoot;
use dom::bindings::root::LayoutDom;
use dom::bindings::str::DOMString;
use dom::document::Document;
@@ -28,15 +30,30 @@ pub struct HTMLTableCellElement {
}
impl HTMLTableCellElement {
- pub fn new_inherited(
- tag_name: LocalName,
+ fn new_inherited(
+ local_name: LocalName,
prefix: Option<Prefix>,
document: &Document,
) -> HTMLTableCellElement {
HTMLTableCellElement {
- htmlelement: HTMLElement::new_inherited(tag_name, prefix, document),
+ htmlelement: HTMLElement::new_inherited(local_name, prefix, document),
}
}
+
+ #[allow(unrooted_must_root)]
+ pub fn new(
+ local_name: LocalName,
+ prefix: Option<Prefix>,
+ document: &Document,
+ ) -> DomRoot<HTMLTableCellElement> {
+ Node::reflect_node(
+ Box::new(HTMLTableCellElement::new_inherited(
+ local_name, prefix, document,
+ )),
+ document,
+ HTMLTableCellElementBinding::Wrap,
+ )
+ }
}
impl HTMLTableCellElementMethods for HTMLTableCellElement {
diff --git a/components/script/dom/htmltabledatacellelement.rs b/components/script/dom/htmltabledatacellelement.rs
deleted file mode 100644
index 9d5e4c1c035..00000000000
--- a/components/script/dom/htmltabledatacellelement.rs
+++ /dev/null
@@ -1,43 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-use dom::bindings::codegen::Bindings::HTMLTableDataCellElementBinding;
-use dom::bindings::root::DomRoot;
-use dom::document::Document;
-use dom::htmltablecellelement::HTMLTableCellElement;
-use dom::node::Node;
-use dom_struct::dom_struct;
-use html5ever::{LocalName, Prefix};
-
-#[dom_struct]
-pub struct HTMLTableDataCellElement {
- htmltablecellelement: HTMLTableCellElement,
-}
-
-impl HTMLTableDataCellElement {
- fn new_inherited(
- local_name: LocalName,
- prefix: Option<Prefix>,
- document: &Document,
- ) -> HTMLTableDataCellElement {
- HTMLTableDataCellElement {
- htmltablecellelement: HTMLTableCellElement::new_inherited(local_name, prefix, document),
- }
- }
-
- #[allow(unrooted_must_root)]
- pub fn new(
- local_name: LocalName,
- prefix: Option<Prefix>,
- document: &Document,
- ) -> DomRoot<HTMLTableDataCellElement> {
- Node::reflect_node(
- Box::new(HTMLTableDataCellElement::new_inherited(
- local_name, prefix, document,
- )),
- document,
- HTMLTableDataCellElementBinding::Wrap,
- )
- }
-}
diff --git a/components/script/dom/htmltableheadercellelement.rs b/components/script/dom/htmltableheadercellelement.rs
deleted file mode 100644
index f0757b20403..00000000000
--- a/components/script/dom/htmltableheadercellelement.rs
+++ /dev/null
@@ -1,43 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-use dom::bindings::codegen::Bindings::HTMLTableHeaderCellElementBinding;
-use dom::bindings::root::DomRoot;
-use dom::document::Document;
-use dom::htmltablecellelement::HTMLTableCellElement;
-use dom::node::Node;
-use dom_struct::dom_struct;
-use html5ever::{LocalName, Prefix};
-
-#[dom_struct]
-pub struct HTMLTableHeaderCellElement {
- htmltablecellelement: HTMLTableCellElement,
-}
-
-impl HTMLTableHeaderCellElement {
- fn new_inherited(
- local_name: LocalName,
- prefix: Option<Prefix>,
- document: &Document,
- ) -> HTMLTableHeaderCellElement {
- HTMLTableHeaderCellElement {
- htmltablecellelement: HTMLTableCellElement::new_inherited(local_name, prefix, document),
- }
- }
-
- #[allow(unrooted_must_root)]
- pub fn new(
- local_name: LocalName,
- prefix: Option<Prefix>,
- document: &Document,
- ) -> DomRoot<HTMLTableHeaderCellElement> {
- Node::reflect_node(
- Box::new(HTMLTableHeaderCellElement::new_inherited(
- local_name, prefix, document,
- )),
- document,
- HTMLTableHeaderCellElementBinding::Wrap,
- )
- }
-}
diff --git a/components/script/dom/htmltablerowelement.rs b/components/script/dom/htmltablerowelement.rs
index 8cceb2212a0..52bf3ebdfdc 100644
--- a/components/script/dom/htmltablerowelement.rs
+++ b/components/script/dom/htmltablerowelement.rs
@@ -15,9 +15,8 @@ use dom::document::Document;
use dom::element::{Element, RawLayoutElementHelpers};
use dom::htmlcollection::{CollectionFilter, HTMLCollection};
use dom::htmlelement::HTMLElement;
-use dom::htmltabledatacellelement::HTMLTableDataCellElement;
+use dom::htmltablecellelement::HTMLTableCellElement;
use dom::htmltableelement::HTMLTableElement;
-use dom::htmltableheadercellelement::HTMLTableHeaderCellElement;
use dom::htmltablesectionelement::HTMLTableSectionElement;
use dom::node::{Node, window_from_node};
use dom::virtualmethods::VirtualMethods;
@@ -29,7 +28,7 @@ use style::attr::AttrValue;
struct CellsFilter;
impl CollectionFilter for CellsFilter {
fn filter(&self, elem: &Element, root: &Node) -> bool {
- (elem.is::<HTMLTableHeaderCellElement>() || elem.is::<HTMLTableDataCellElement>()) &&
+ (elem.is::<HTMLTableCellElement>()) &&
elem.upcast::<Node>().GetParentNode().r() == Some(root)
}
}
@@ -99,7 +98,7 @@ impl HTMLTableRowElementMethods for HTMLTableRowElement {
node.insert_cell_or_row(
index,
|| self.Cells(),
- || HTMLTableDataCellElement::new(local_name!("td"), None, &node.owner_doc()),
+ || HTMLTableCellElement::new(local_name!("td"), None, &node.owner_doc()),
)
}
@@ -109,7 +108,7 @@ impl HTMLTableRowElementMethods for HTMLTableRowElement {
node.delete_cell_or_row(
index,
|| self.Cells(),
- |n| n.is::<HTMLTableDataCellElement>(),
+ |n| n.is::<HTMLTableCellElement>(),
)
}
diff --git a/components/script/dom/mod.rs b/components/script/dom/mod.rs
index 07425cccae1..3587a11a0ad 100644
--- a/components/script/dom/mod.rs
+++ b/components/script/dom/mod.rs
@@ -372,9 +372,7 @@ pub mod htmlstyleelement;
pub mod htmltablecaptionelement;
pub mod htmltablecellelement;
pub mod htmltablecolelement;
-pub mod htmltabledatacellelement;
pub mod htmltableelement;
-pub mod htmltableheadercellelement;
pub mod htmltablerowelement;
pub mod htmltablesectionelement;
pub mod htmltemplateelement;
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs
index 8fa494767f6..45223181db7 100644
--- a/components/script/dom/node.rs
+++ b/components/script/dom/node.rs
@@ -2920,7 +2920,7 @@ impl Into<LayoutElementType> for ElementTypeId {
ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLParagraphElement) => {
LayoutElementType::HTMLParagraphElement
},
- ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTableCellElement(_)) => {
+ ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTableCellElement) => {
LayoutElementType::HTMLTableCellElement
},
ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTableColElement) => {
diff --git a/components/script/dom/virtualmethods.rs b/components/script/dom/virtualmethods.rs
index 30c80c86fae..fce8126eb09 100644
--- a/components/script/dom/virtualmethods.rs
+++ b/components/script/dom/virtualmethods.rs
@@ -242,7 +242,7 @@ pub fn vtable_for(node: &Node) -> &VirtualMethods {
node.downcast::<HTMLTableElement>().unwrap() as &VirtualMethods
},
NodeTypeId::Element(ElementTypeId::HTMLElement(
- HTMLElementTypeId::HTMLTableCellElement(_),
+ HTMLElementTypeId::HTMLTableCellElement,
)) => node.downcast::<HTMLTableCellElement>().unwrap() as &VirtualMethods,
NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTableRowElement)) => {
node.downcast::<HTMLTableRowElement>().unwrap() as &VirtualMethods
diff --git a/components/script/dom/webidls/HTMLTableCellElement.webidl b/components/script/dom/webidls/HTMLTableCellElement.webidl
index bdba9955fcc..26027d099fe 100644
--- a/components/script/dom/webidls/HTMLTableCellElement.webidl
+++ b/components/script/dom/webidls/HTMLTableCellElement.webidl
@@ -3,7 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmltablecellelement
-[HTMLConstructor, Abstract]
+[HTMLConstructor]
interface HTMLTableCellElement : HTMLElement {
[CEReactions]
attribute unsigned long colSpan;
@@ -13,6 +13,11 @@ interface HTMLTableCellElement : HTMLElement {
// attribute DOMString headers;
readonly attribute long cellIndex;
+ // [CEReactions]
+ // attribute DOMString scope; // only conforming for th elements
+ // [CEReactions]
+ // attribute DOMString abbr; // only conforming for th elements
+
// also has obsolete members
};
diff --git a/components/script/dom/webidls/HTMLTableDataCellElement.webidl b/components/script/dom/webidls/HTMLTableDataCellElement.webidl
deleted file mode 100644
index 3f86ab749f4..00000000000
--- a/components/script/dom/webidls/HTMLTableDataCellElement.webidl
+++ /dev/null
@@ -1,15 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-// https://html.spec.whatwg.org/multipage/#htmltabledatacellelement
-[HTMLConstructor]
-interface HTMLTableDataCellElement : HTMLTableCellElement {
- // also has obsolete members
-};
-
-// https://html.spec.whatwg.org/multipage/#HTMLTableDataCellElement-partial
-partial interface HTMLTableDataCellElement {
- // [CEReactions]
- // attribute DOMString abbr;
-};
diff --git a/components/script/dom/webidls/HTMLTableHeaderCellElement.webidl b/components/script/dom/webidls/HTMLTableHeaderCellElement.webidl
deleted file mode 100644
index c4df47d7e09..00000000000
--- a/components/script/dom/webidls/HTMLTableHeaderCellElement.webidl
+++ /dev/null
@@ -1,15 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-// https://html.spec.whatwg.org/multipage/#htmltableheadercellelement
-[HTMLConstructor]
-interface HTMLTableHeaderCellElement : HTMLTableCellElement {
- // [CEReactions]
- // attribute DOMString scope;
- // [CEReactions]
- // attribute DOMString abbr;
- // [CEReactions]
- // attribute DOMString sorted;
- // void sort();
-};
diff --git a/tests/wpt/metadata/html/dom/historical.html.ini b/tests/wpt/metadata/html/dom/historical.html.ini
index 7df55d646ff..0abf6ace116 100644
--- a/tests/wpt/metadata/html/dom/historical.html.ini
+++ b/tests/wpt/metadata/html/dom/historical.html.ini
@@ -3,9 +3,3 @@
[document.all cannot find applet]
expected: FAIL
- [HTMLTableHeaderCellElement interface is removed]
- expected: FAIL
-
- [HTMLTableDataCellElement interface is removed]
- expected: FAIL
-
diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json
index de3bc22eaeb..48be8bbb3bb 100644
--- a/tests/wpt/mozilla/meta/MANIFEST.json
+++ b/tests/wpt/mozilla/meta/MANIFEST.json
@@ -26638,7 +26638,7 @@
"testharness"
],
"mozilla/collections.html": [
- "4011ee6bf322eaacafafd98238c4261084397fde",
+ "8e06ffcc0933719b4b79ea6656d6635cc121d900",
"testharness"
],
"mozilla/createEvent-storageevent.html": [
@@ -27038,7 +27038,7 @@
"testharness"
],
"mozilla/interfaces.html": [
- "4863f4d1036e945cfaae1f112981fac3367b2e49",
+ "8bbde3b46a8e9d5ead6f9a2bf372d9647ad059be",
"testharness"
],
"mozilla/interfaces.js": [
diff --git a/tests/wpt/mozilla/tests/mozilla/collections.html b/tests/wpt/mozilla/tests/mozilla/collections.html
index 4011ee6bf32..8e06ffcc093 100644
--- a/tests/wpt/mozilla/tests/mozilla/collections.html
+++ b/tests/wpt/mozilla/tests/mozilla/collections.html
@@ -123,8 +123,8 @@ test(function() {
check_tag("caption", 1, [HTMLTableCaptionElement]);
check_tag("textarea", 1, [HTMLTextAreaElement]);
check_tag("q", 1, [HTMLQuoteElement]);
- check_tag("th", 1, [HTMLTableCellElement, HTMLTableHeaderCellElement]);
- check_tag("td", 1, [HTMLTableCellElement, HTMLTableDataCellElement]);
+ check_tag("th", 1, [HTMLTableCellElement]);
+ check_tag("td", 1, [HTMLTableCellElement]);
check_tag("col", 1, [HTMLTableColElement]);
check_tag("colgroup", 1, [HTMLTableColElement]);
check_tag("input", 2, [HTMLInputElement]);
diff --git a/tests/wpt/mozilla/tests/mozilla/interfaces.html b/tests/wpt/mozilla/tests/mozilla/interfaces.html
index 4863f4d1036..8bbde3b46a8 100644
--- a/tests/wpt/mozilla/tests/mozilla/interfaces.html
+++ b/tests/wpt/mozilla/tests/mozilla/interfaces.html
@@ -139,9 +139,7 @@ test_interfaces([
"HTMLTableCaptionElement",
"HTMLTableCellElement",
"HTMLTableColElement",
- "HTMLTableDataCellElement",
"HTMLTableElement",
- "HTMLTableHeaderCellElement",
"HTMLTableRowElement",
"HTMLTableSectionElement",
"HTMLTemplateElement",