aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorMegha Gupta <meghabloomgirl@gmail.com>2014-12-30 19:49:02 +0530
committerMegha Gupta <meghabloomgirl@gmail.com>2015-01-02 23:10:32 +0530
commit50310968536c615f1331f3dc8b2b1352230816ee (patch)
tree787e4fb21cd92bcc35b961c61f6fcd67745a4ab3 /components/script/dom
parentf85b9e37cc121544bd4c2ebe434e717eb3a3d953 (diff)
downloadservo-50310968536c615f1331f3dc8b2b1352230816ee.tar.gz
servo-50310968536c615f1331f3dc8b2b1352230816ee.zip
Fix inheritance enums for htmlmediaelement and htmltablecellelement
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/htmlaudioelement.rs9
-rw-r--r--components/script/dom/htmlelement.rs9
-rw-r--r--components/script/dom/htmlmediaelement.rs14
-rw-r--r--components/script/dom/htmltablecellelement.rs14
-rw-r--r--components/script/dom/htmltabledatacellelement.rs10
-rw-r--r--components/script/dom/htmltableheadercellelement.rs10
-rw-r--r--components/script/dom/htmlvideoelement.rs11
-rw-r--r--components/script/dom/virtualmethods.rs10
8 files changed, 58 insertions, 29 deletions
diff --git a/components/script/dom/htmlaudioelement.rs b/components/script/dom/htmlaudioelement.rs
index 4d40834c999..36419faf54e 100644
--- a/components/script/dom/htmlaudioelement.rs
+++ b/components/script/dom/htmlaudioelement.rs
@@ -8,8 +8,8 @@ use dom::bindings::js::{JSRef, Temporary};
use dom::document::Document;
use dom::element::ElementTypeId;
use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlmediaelement::HTMLMediaElement;
use dom::htmlelement::HTMLElementTypeId;
+use dom::htmlmediaelement::{HTMLMediaElement, HTMLMediaElementTypeId};
use dom::node::{Node, NodeTypeId};
use servo_util::str::DOMString;
@@ -20,14 +20,17 @@ pub struct HTMLAudioElement {
impl HTMLAudioElementDerived for EventTarget {
fn is_htmlaudioelement(&self) -> bool {
- *self.type_id() == EventTargetTypeId::Node(NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLAudioElement)))
+ *self.type_id() == EventTargetTypeId::Node(NodeTypeId::Element(
+ ElementTypeId::HTMLElement(
+ HTMLElementTypeId::HTMLMediaElement(
+ HTMLMediaElementTypeId::HTMLAudioElement))))
}
}
impl HTMLAudioElement {
fn new_inherited(localName: DOMString, prefix: Option<DOMString>, document: JSRef<Document>) -> HTMLAudioElement {
HTMLAudioElement {
- htmlmediaelement: HTMLMediaElement::new_inherited(HTMLElementTypeId::HTMLAudioElement, localName, prefix, document)
+ htmlmediaelement: HTMLMediaElement::new_inherited(HTMLMediaElementTypeId::HTMLAudioElement, localName, prefix, document)
}
}
diff --git a/components/script/dom/htmlelement.rs b/components/script/dom/htmlelement.rs
index aa37631eae9..016c14db7e3 100644
--- a/components/script/dom/htmlelement.rs
+++ b/components/script/dom/htmlelement.rs
@@ -21,6 +21,8 @@ use dom::document::Document;
use dom::domstringmap::DOMStringMap;
use dom::element::{Element, ElementTypeId, ActivationElementHelpers, AttributeHandlers};
use dom::eventtarget::{EventTarget, EventTargetHelpers, EventTargetTypeId};
+use dom::htmlmediaelement::HTMLMediaElementTypeId;
+use dom::htmltablecellelement::HTMLTableCellElementTypeId;
use dom::node::{Node, NodeTypeId, window_from_node};
use dom::virtualmethods::VirtualMethods;
@@ -210,7 +212,6 @@ pub enum HTMLElementTypeId {
HTMLAnchorElement,
HTMLAppletElement,
HTMLAreaElement,
- HTMLAudioElement,
HTMLBaseElement,
HTMLBRElement,
HTMLBodyElement,
@@ -239,7 +240,7 @@ pub enum HTMLElementTypeId {
HTMLLinkElement,
HTMLLIElement,
HTMLMapElement,
- HTMLMediaElement,
+ HTMLMediaElement(HTMLMediaElementTypeId),
HTMLMetaElement,
HTMLMeterElement,
HTMLModElement,
@@ -260,8 +261,7 @@ pub enum HTMLElementTypeId {
HTMLStyleElement,
HTMLTableElement,
HTMLTableCaptionElement,
- HTMLTableDataCellElement,
- HTMLTableHeaderCellElement,
+ HTMLTableCellElement(HTMLTableCellElementTypeId),
HTMLTableColElement,
HTMLTableRowElement,
HTMLTableSectionElement,
@@ -271,7 +271,6 @@ pub enum HTMLElementTypeId {
HTMLTitleElement,
HTMLTrackElement,
HTMLUListElement,
- HTMLVideoElement,
HTMLUnknownElement,
}
diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs
index 3a73d03387c..9346436eeb7 100644
--- a/components/script/dom/htmlmediaelement.rs
+++ b/components/script/dom/htmlmediaelement.rs
@@ -19,17 +19,16 @@ pub struct HTMLMediaElement {
impl HTMLMediaElementDerived for EventTarget {
fn is_htmlmediaelement(&self) -> bool {
match *self.type_id() {
- EventTargetTypeId::Node(NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLVideoElement))) |
- EventTargetTypeId::Node(NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLAudioElement))) => true,
+ EventTargetTypeId::Node(NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLMediaElement(_)))) => true,
_ => false
}
}
}
impl HTMLMediaElement {
- pub fn new_inherited(type_id: HTMLElementTypeId, tag_name: DOMString, prefix: Option<DOMString>, document: JSRef<Document>) -> HTMLMediaElement {
+ pub fn new_inherited(type_id: HTMLMediaElementTypeId, tag_name: DOMString, prefix: Option<DOMString>, document: JSRef<Document>) -> HTMLMediaElement {
HTMLMediaElement {
- htmlelement: HTMLElement::new_inherited(type_id, tag_name, prefix, document)
+ htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLMediaElement(type_id), tag_name, prefix, document)
}
}
@@ -39,3 +38,10 @@ impl HTMLMediaElement {
}
}
+#[deriving(PartialEq, Show)]
+#[jstraceable]
+pub enum HTMLMediaElementTypeId {
+ HTMLAudioElement,
+ HTMLVideoElement,
+}
+
diff --git a/components/script/dom/htmltablecellelement.rs b/components/script/dom/htmltablecellelement.rs
index f50acfb0585..15f19561bb6 100644
--- a/components/script/dom/htmltablecellelement.rs
+++ b/components/script/dom/htmltablecellelement.rs
@@ -16,6 +16,13 @@ use cssparser::RGBA;
use servo_util::str::{mod, DOMString, LengthOrPercentageOrAuto};
use std::cell::Cell;
+#[deriving(PartialEq, Show)]
+#[jstraceable]
+pub enum HTMLTableCellElementTypeId {
+ HTMLTableDataCellElement,
+ HTMLTableHeaderCellElement,
+}
+
#[dom_struct]
pub struct HTMLTableCellElement {
htmlelement: HTMLElement,
@@ -27,21 +34,20 @@ pub struct HTMLTableCellElement {
impl HTMLTableCellElementDerived for EventTarget {
fn is_htmltablecellelement(&self) -> bool {
match *self.type_id() {
- EventTargetTypeId::Node(NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTableDataCellElement))) |
- EventTargetTypeId::Node(NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTableHeaderCellElement))) => true,
+ EventTargetTypeId::Node(NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTableCellElement(_)))) => true,
_ => false
}
}
}
impl HTMLTableCellElement {
- pub fn new_inherited(type_id: HTMLElementTypeId,
+ pub fn new_inherited(type_id: HTMLTableCellElementTypeId,
tag_name: DOMString,
prefix: Option<DOMString>,
document: JSRef<Document>)
-> HTMLTableCellElement {
HTMLTableCellElement {
- htmlelement: HTMLElement::new_inherited(type_id, tag_name, prefix, document),
+ htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLTableCellElement(type_id), tag_name, prefix, document),
background_color: Cell::new(None),
colspan: Cell::new(None),
width: Cell::new(LengthOrPercentageOrAuto::Auto),
diff --git a/components/script/dom/htmltabledatacellelement.rs b/components/script/dom/htmltabledatacellelement.rs
index 6d032535b6e..0551745a37d 100644
--- a/components/script/dom/htmltabledatacellelement.rs
+++ b/components/script/dom/htmltabledatacellelement.rs
@@ -9,7 +9,7 @@ use dom::document::Document;
use dom::eventtarget::{EventTarget, EventTargetTypeId};
use dom::element::ElementTypeId;
use dom::htmlelement::HTMLElementTypeId;
-use dom::htmltablecellelement::HTMLTableCellElement;
+use dom::htmltablecellelement::{HTMLTableCellElement, HTMLTableCellElementTypeId};
use dom::node::{Node, NodeTypeId};
use servo_util::str::DOMString;
@@ -20,14 +20,18 @@ pub struct HTMLTableDataCellElement {
impl HTMLTableDataCellElementDerived for EventTarget {
fn is_htmltabledatacellelement(&self) -> bool {
- *self.type_id() == EventTargetTypeId::Node(NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTableDataCellElement)))
+ *self.type_id() == EventTargetTypeId::Node(NodeTypeId::Element(
+ ElementTypeId::HTMLElement(
+ HTMLElementTypeId::HTMLTableCellElement(
+ HTMLTableCellElementTypeId::HTMLTableDataCellElement))))
}
}
impl HTMLTableDataCellElement {
fn new_inherited(localName: DOMString, prefix: Option<DOMString>, document: JSRef<Document>) -> HTMLTableDataCellElement {
HTMLTableDataCellElement {
- htmltablecellelement: HTMLTableCellElement::new_inherited(HTMLElementTypeId::HTMLTableDataCellElement, localName, prefix, document)
+ htmltablecellelement: HTMLTableCellElement::new_inherited(HTMLTableCellElementTypeId::HTMLTableDataCellElement,
+ localName, prefix, document)
}
}
diff --git a/components/script/dom/htmltableheadercellelement.rs b/components/script/dom/htmltableheadercellelement.rs
index 9c0cfed926f..41a2a129512 100644
--- a/components/script/dom/htmltableheadercellelement.rs
+++ b/components/script/dom/htmltableheadercellelement.rs
@@ -9,7 +9,7 @@ use dom::document::Document;
use dom::element::ElementTypeId;
use dom::htmlelement::HTMLElementTypeId;
use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmltablecellelement::HTMLTableCellElement;
+use dom::htmltablecellelement::{HTMLTableCellElement, HTMLTableCellElementTypeId};
use dom::node::{Node, NodeTypeId};
use servo_util::str::DOMString;
@@ -20,14 +20,18 @@ pub struct HTMLTableHeaderCellElement {
impl HTMLTableHeaderCellElementDerived for EventTarget {
fn is_htmltableheadercellelement(&self) -> bool {
- *self.type_id() == EventTargetTypeId::Node(NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTableHeaderCellElement)))
+ *self.type_id() == EventTargetTypeId::Node(NodeTypeId::Element(
+ ElementTypeId::HTMLElement(
+ HTMLElementTypeId::HTMLTableCellElement(
+ HTMLTableCellElementTypeId::HTMLTableHeaderCellElement))))
}
}
impl HTMLTableHeaderCellElement {
fn new_inherited(localName: DOMString, prefix: Option<DOMString>, document: JSRef<Document>) -> HTMLTableHeaderCellElement {
HTMLTableHeaderCellElement {
- htmltablecellelement: HTMLTableCellElement::new_inherited(HTMLElementTypeId::HTMLTableHeaderCellElement, localName, prefix, document)
+ htmltablecellelement: HTMLTableCellElement::new_inherited(HTMLTableCellElementTypeId::HTMLTableHeaderCellElement,
+ localName, prefix, document)
}
}
diff --git a/components/script/dom/htmlvideoelement.rs b/components/script/dom/htmlvideoelement.rs
index 31af50bc491..5bda0fdbf08 100644
--- a/components/script/dom/htmlvideoelement.rs
+++ b/components/script/dom/htmlvideoelement.rs
@@ -6,10 +6,10 @@ use dom::bindings::codegen::Bindings::HTMLVideoElementBinding;
use dom::bindings::codegen::InheritTypes::HTMLVideoElementDerived;
use dom::bindings::js::{JSRef, Temporary};
use dom::document::Document;
-use dom::htmlelement::HTMLElementTypeId;
use dom::element::ElementTypeId;
use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlmediaelement::HTMLMediaElement;
+use dom::htmlelement::HTMLElementTypeId;
+use dom::htmlmediaelement::{HTMLMediaElement, HTMLMediaElementTypeId};
use dom::node::{Node, NodeTypeId};
use servo_util::str::DOMString;
@@ -20,14 +20,17 @@ pub struct HTMLVideoElement {
impl HTMLVideoElementDerived for EventTarget {
fn is_htmlvideoelement(&self) -> bool {
- *self.type_id() == EventTargetTypeId::Node(NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLVideoElement)))
+ *self.type_id() == EventTargetTypeId::Node(NodeTypeId::Element(
+ ElementTypeId::HTMLElement(
+ HTMLElementTypeId::HTMLMediaElement(
+ HTMLMediaElementTypeId::HTMLVideoElement))))
}
}
impl HTMLVideoElement {
fn new_inherited(localName: DOMString, prefix: Option<DOMString>, document: JSRef<Document>) -> HTMLVideoElement {
HTMLVideoElement {
- htmlmediaelement: HTMLMediaElement::new_inherited(HTMLElementTypeId::HTMLVideoElement, localName, prefix, document)
+ htmlmediaelement: HTMLMediaElement::new_inherited(HTMLMediaElementTypeId::HTMLVideoElement, localName, prefix, document)
}
}
diff --git a/components/script/dom/virtualmethods.rs b/components/script/dom/virtualmethods.rs
index 068e530bee6..05f9d4750d6 100644
--- a/components/script/dom/virtualmethods.rs
+++ b/components/script/dom/virtualmethods.rs
@@ -50,7 +50,7 @@ use dom::htmlscriptelement::HTMLScriptElement;
use dom::htmlselectelement::HTMLSelectElement;
use dom::htmlstyleelement::HTMLStyleElement;
use dom::htmltableelement::HTMLTableElement;
-use dom::htmltablecellelement::HTMLTableCellElement;
+use dom::htmltablecellelement::{HTMLTableCellElement, HTMLTableCellElementTypeId};
use dom::htmltablerowelement::HTMLTableRowElement;
use dom::htmltablesectionelement::HTMLTableSectionElement;
use dom::htmltextareaelement::HTMLTextAreaElement;
@@ -216,8 +216,12 @@ pub fn vtable_for<'a>(node: &'a JSRef<'a, Node>) -> &'a VirtualMethods + 'a {
HTMLTableElementCast::to_borrowed_ref(node).unwrap();
element as &'a VirtualMethods + 'a
}
- NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTableDataCellElement)) |
- NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTableHeaderCellElement)) => {
+ NodeTypeId::Element(ElementTypeId::HTMLElement(
+ HTMLElementTypeId::HTMLTableCellElement(
+ HTMLTableCellElementTypeId::HTMLTableDataCellElement))) |
+ NodeTypeId::Element(ElementTypeId::HTMLElement(
+ HTMLElementTypeId::HTMLTableCellElement(
+ HTMLTableCellElementTypeId::HTMLTableHeaderCellElement))) => {
let element: &'a JSRef<'a, HTMLTableCellElement> =
HTMLTableCellElementCast::to_borrowed_ref(node).unwrap();
element as &'a VirtualMethods + 'a