aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2015-10-14 12:47:48 -0600
committerbors-servo <metajack+bors@gmail.com>2015-10-14 12:47:48 -0600
commit32daa17d5cbcad02db0713e21e52410cdc60480e (patch)
treed5cf3137ab06523b1c8958d830751b74642f048e
parent8db8a86ab1e943b5102a05d6d31800579fdb7875 (diff)
parentaab2c40389c71c4b0db3ffa75bdec99cd440b8af (diff)
downloadservo-32daa17d5cbcad02db0713e21e52410cdc60480e.tar.gz
servo-32daa17d5cbcad02db0713e21e52410cdc60480e.zip
Auto merge of #7873 - nox:codegen-typeid, r=Ms2ger
Generate the various TypeId enums in codegen This frees us forever from caring about maintaining these enums. The last commit removes their use from the initialisation of interface objects derived from Node. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7873) <!-- Reviewable:end -->
-rw-r--r--components/layout/construct.rs6
-rw-r--r--components/layout/css/matching.rs3
-rw-r--r--components/layout/wrapper.rs18
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py105
-rw-r--r--components/script/dom/bindings/codegen/Configuration.py8
-rw-r--r--components/script/dom/bindings/utils.rs6
-rw-r--r--components/script/dom/blob.rs19
-rw-r--r--components/script/dom/characterdata.rs18
-rw-r--r--components/script/dom/closeevent.rs9
-rw-r--r--components/script/dom/comment.rs9
-rw-r--r--components/script/dom/customevent.rs10
-rw-r--r--components/script/dom/dedicatedworkerglobalscope.rs7
-rw-r--r--components/script/dom/document.rs28
-rw-r--r--components/script/dom/documentfragment.rs8
-rw-r--r--components/script/dom/documenttype.rs7
-rw-r--r--components/script/dom/element.rs19
-rw-r--r--components/script/dom/errorevent.rs10
-rw-r--r--components/script/dom/event.rs25
-rw-r--r--components/script/dom/eventtarget.rs24
-rw-r--r--components/script/dom/file.rs8
-rw-r--r--components/script/dom/htmlanchorelement.rs15
-rw-r--r--components/script/dom/htmlappletelement.rs12
-rw-r--r--components/script/dom/htmlareaelement.rs10
-rw-r--r--components/script/dom/htmlaudioelement.rs12
-rw-r--r--components/script/dom/htmlbaseelement.rs14
-rw-r--r--components/script/dom/htmlbodyelement.rs12
-rw-r--r--components/script/dom/htmlbrelement.rs10
-rw-r--r--components/script/dom/htmlbuttonelement.rs14
-rw-r--r--components/script/dom/htmlcanvaselement.rs13
-rw-r--r--components/script/dom/htmldataelement.rs10
-rw-r--r--components/script/dom/htmldatalistelement.rs12
-rw-r--r--components/script/dom/htmldialogelement.rs10
-rw-r--r--components/script/dom/htmldirectoryelement.rs10
-rw-r--r--components/script/dom/htmldivelement.rs10
-rw-r--r--components/script/dom/htmldlistelement.rs10
-rw-r--r--components/script/dom/htmlelement.rs87
-rw-r--r--components/script/dom/htmlembedelement.rs10
-rw-r--r--components/script/dom/htmlfieldsetelement.rs13
-rw-r--r--components/script/dom/htmlfontelement.rs12
-rw-r--r--components/script/dom/htmlformelement.rs22
-rw-r--r--components/script/dom/htmlframeelement.rs10
-rw-r--r--components/script/dom/htmlframesetelement.rs10
-rw-r--r--components/script/dom/htmlheadelement.rs11
-rw-r--r--components/script/dom/htmlheadingelement.rs10
-rw-r--r--components/script/dom/htmlhrelement.rs10
-rw-r--r--components/script/dom/htmlhtmlelement.rs10
-rw-r--r--components/script/dom/htmliframeelement.rs15
-rw-r--r--components/script/dom/htmlimageelement.rs14
-rw-r--r--components/script/dom/htmlinputelement.rs19
-rw-r--r--components/script/dom/htmllabelelement.rs10
-rw-r--r--components/script/dom/htmllegendelement.rs10
-rw-r--r--components/script/dom/htmllielement.rs10
-rw-r--r--components/script/dom/htmllinkelement.rs14
-rw-r--r--components/script/dom/htmlmapelement.rs10
-rw-r--r--components/script/dom/htmlmediaelement.rs23
-rw-r--r--components/script/dom/htmlmetaelement.rs12
-rw-r--r--components/script/dom/htmlmeterelement.rs10
-rw-r--r--components/script/dom/htmlmodelement.rs10
-rw-r--r--components/script/dom/htmlobjectelement.rs13
-rw-r--r--components/script/dom/htmlolistelement.rs10
-rw-r--r--components/script/dom/htmloptgroupelement.rs12
-rw-r--r--components/script/dom/htmloptionelement.rs15
-rw-r--r--components/script/dom/htmloutputelement.rs10
-rw-r--r--components/script/dom/htmlparagraphelement.rs10
-rw-r--r--components/script/dom/htmlparamelement.rs10
-rw-r--r--components/script/dom/htmlpreelement.rs10
-rw-r--r--components/script/dom/htmlprogresselement.rs10
-rw-r--r--components/script/dom/htmlquoteelement.rs10
-rw-r--r--components/script/dom/htmlscriptelement.rs14
-rw-r--r--components/script/dom/htmlselectelement.rs12
-rw-r--r--components/script/dom/htmlsourceelement.rs10
-rw-r--r--components/script/dom/htmlspanelement.rs10
-rw-r--r--components/script/dom/htmlstyleelement.rs13
-rw-r--r--components/script/dom/htmltablecaptionelement.rs10
-rw-r--r--components/script/dom/htmltablecellelement.rs28
-rw-r--r--components/script/dom/htmltablecolelement.rs10
-rw-r--r--components/script/dom/htmltabledatacellelement.rs12
-rw-r--r--components/script/dom/htmltableelement.rs15
-rw-r--r--components/script/dom/htmltableheadercellelement.rs12
-rw-r--r--components/script/dom/htmltablerowelement.rs17
-rw-r--r--components/script/dom/htmltablesectionelement.rs14
-rw-r--r--components/script/dom/htmltemplateelement.rs13
-rw-r--r--components/script/dom/htmltextareaelement.rs16
-rw-r--r--components/script/dom/htmltimeelement.rs10
-rw-r--r--components/script/dom/htmltitleelement.rs13
-rw-r--r--components/script/dom/htmltrackelement.rs10
-rw-r--r--components/script/dom/htmlulistelement.rs10
-rw-r--r--components/script/dom/htmlunknownelement.rs10
-rw-r--r--components/script/dom/htmlvideoelement.rs12
-rw-r--r--components/script/dom/keyboardevent.rs9
-rw-r--r--components/script/dom/messageevent.rs6
-rw-r--r--components/script/dom/mouseevent.rs9
-rw-r--r--components/script/dom/node.rs31
-rw-r--r--components/script/dom/processinginstruction.rs9
-rw-r--r--components/script/dom/progressevent.rs6
-rw-r--r--components/script/dom/range.rs6
-rw-r--r--components/script/dom/storageevent.rs12
-rw-r--r--components/script/dom/text.rs11
-rw-r--r--components/script/dom/uievent.rs17
-rw-r--r--components/script/dom/virtualmethods.rs7
-rw-r--r--components/script/dom/webglcontextevent.rs10
-rw-r--r--components/script/dom/window.rs5
-rw-r--r--components/script/dom/xmlhttprequest.rs6
-rw-r--r--components/script/dom/xmlhttprequesteventtarget.rs10
-rw-r--r--components/script/dom/xmlhttprequestupload.rs5
-rw-r--r--components/script/mem.rs17
-rw-r--r--components/script/parse/html.rs12
107 files changed, 678 insertions, 774 deletions
diff --git a/components/layout/construct.rs b/components/layout/construct.rs
index 73c353980a2..ff1ff42a1d2 100644
--- a/components/layout/construct.rs
+++ b/components/layout/construct.rs
@@ -33,11 +33,9 @@ use inline::{InlineFragmentNodeInfo, LAST_FRAGMENT_OF_ELEMENT};
use list_item::{ListItemFlow, ListStyleTypeContent};
use multicol::MulticolFlow;
use parallel;
-use script::dom::characterdata::CharacterDataTypeId;
-use script::dom::element::ElementTypeId;
-use script::dom::htmlelement::HTMLElementTypeId;
+use script::dom::bindings::codegen::InheritTypes::{CharacterDataTypeId, ElementTypeId};
+use script::dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, NodeTypeId};
use script::dom::htmlobjectelement::is_image_data;
-use script::dom::node::NodeTypeId;
use std::borrow::ToOwned;
use std::collections::LinkedList;
use std::mem;
diff --git a/components/layout/css/matching.rs b/components/layout/css/matching.rs
index a1685b0747f..439ecf842cf 100644
--- a/components/layout/css/matching.rs
+++ b/components/layout/css/matching.rs
@@ -10,8 +10,7 @@ use animation;
use context::SharedLayoutContext;
use data::LayoutDataWrapper;
use incremental::{self, RestyleDamage};
-use script::dom::characterdata::CharacterDataTypeId;
-use script::dom::node::NodeTypeId;
+use script::dom::bindings::codegen::InheritTypes::{CharacterDataTypeId, NodeTypeId};
use script::layout_interface::Animation;
use selectors::bloom::BloomFilter;
use selectors::matching::{CommonStyleAffectingAttributeMode, CommonStyleAffectingAttributes};
diff --git a/components/layout/wrapper.rs b/components/layout/wrapper.rs
index 0db0d1ca22b..d36d4480976 100644
--- a/components/layout/wrapper.rs
+++ b/components/layout/wrapper.rs
@@ -40,22 +40,22 @@ use ipc_channel::ipc::IpcSender;
use msg::constellation_msg::PipelineId;
use opaque_node::OpaqueNodeMethods;
use script::dom::attr::AttrValue;
-use script::dom::bindings::codegen::InheritTypes::{CharacterDataCast, ElementCast};
-use script::dom::bindings::codegen::InheritTypes::{HTMLCanvasElementCast, HTMLIFrameElementCast};
-use script::dom::bindings::codegen::InheritTypes::{HTMLImageElementCast, HTMLInputElementCast};
-use script::dom::bindings::codegen::InheritTypes::{HTMLTextAreaElementCast, NodeCast, TextCast};
+use script::dom::bindings::codegen::InheritTypes::{CharacterDataCast, CharacterDataTypeId};
+use script::dom::bindings::codegen::InheritTypes::{ElementCast, ElementTypeId};
+use script::dom::bindings::codegen::InheritTypes::{HTMLCanvasElementCast, HTMLElementTypeId};
+use script::dom::bindings::codegen::InheritTypes::{HTMLIFrameElementCast, HTMLImageElementCast};
+use script::dom::bindings::codegen::InheritTypes::{HTMLInputElementCast, HTMLTextAreaElementCast};
+use script::dom::bindings::codegen::InheritTypes::{NodeCast, NodeTypeId, TextCast};
use script::dom::bindings::js::LayoutJS;
-use script::dom::characterdata::{CharacterDataTypeId, LayoutCharacterDataHelpers};
-use script::dom::element::{Element, ElementTypeId};
+use script::dom::characterdata::LayoutCharacterDataHelpers;
+use script::dom::element::Element;
use script::dom::element::{LayoutElementHelpers, RawLayoutElementHelpers};
use script::dom::htmlcanvaselement::LayoutHTMLCanvasElementHelpers;
-use script::dom::htmlelement::HTMLElementTypeId;
use script::dom::htmlimageelement::LayoutHTMLImageElementHelpers;
use script::dom::htmlinputelement::{HTMLInputElement, LayoutHTMLInputElementHelpers};
use script::dom::htmltextareaelement::LayoutHTMLTextAreaElementHelpers;
use script::dom::node::{HAS_CHANGED, HAS_DIRTY_DESCENDANTS, HAS_DIRTY_SIBLINGS, IS_DIRTY};
-use script::dom::node::{LayoutNodeHelpers, SharedLayoutData};
-use script::dom::node::{Node, NodeTypeId};
+use script::dom::node::{LayoutNodeHelpers, Node, SharedLayoutData};
use script::dom::text::Text;
use selectors::matching::DeclarationBlock;
use selectors::parser::{AttrSelector, NamespaceConstraint};
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index 8a66a99cb38..00df29230c3 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -4,6 +4,8 @@
# Common codegen classes.
+from collections import defaultdict
+
import operator
import re
import string
@@ -1722,23 +1724,20 @@ class CGNamespace(CGWrapper):
return CGNamespace(namespaces[0], inner, public=public)
-def EventTargetEnum(desc):
+def DOMClassTypeId(desc):
protochain = desc.prototypeChain
- if protochain[0] != "EventTarget" or desc.interface.getExtendedAttribute("Abstract"):
- return "None"
-
inner = ""
- name = desc.interface.identifier.name
- if desc.interface.getUserData("hasConcreteDescendant", False):
- inner = "(::dom::%s::%sTypeId::%s)" % (name.lower(), name, name)
- prev_proto = ""
- for proto in reversed(protochain):
- if prev_proto != "":
- inner = "(::dom::%s::%sTypeId::%s%s)" % (proto.lower(), proto, prev_proto, inner)
- prev_proto = proto
- if inner == "":
- return "None"
- return "Some%s" % inner
+ if desc.hasDescendants():
+ if desc.interface.getExtendedAttribute("Abstract"):
+ return "::dom::bindings::codegen::InheritTypes::TopTypeId::Abstract"
+ name = desc.interface.identifier.name
+ inner = "(::dom::bindings::codegen::InheritTypes::%sTypeId::%s)" % (name, name)
+ elif len(protochain) == 1:
+ return "::dom::bindings::codegen::InheritTypes::TopTypeId::Alone"
+ reversed_protochain = list(reversed(protochain))
+ for (child, parent) in zip(reversed_protochain, reversed_protochain[1:]):
+ inner = "(::dom::bindings::codegen::InheritTypes::%sTypeId::%s%s)" % (parent, child, inner)
+ return "::dom::bindings::codegen::InheritTypes::TopTypeId::%s%s" % (protochain[0], inner)
def DOMClass(descriptor):
@@ -1754,7 +1753,7 @@ DOMClass {
interface_chain: [ %s ],
native_hooks: &sNativePropertyHooks,
type_id: %s,
-}""" % (prototypeChainString, EventTargetEnum(descriptor))
+}""" % (prototypeChainString, DOMClassTypeId(descriptor))
class CGDOMJSClass(CGThing):
@@ -5815,23 +5814,29 @@ class GlobalGenRoots():
def InheritTypes(config):
descriptors = config.getDescriptors(register=True, isCallback=False)
- allprotos = [CGGeneric("use dom::types::*;\n"),
- CGGeneric("use dom::bindings::js::{JS, LayoutJS, Root};\n"),
- CGGeneric("use dom::bindings::trace::JSTraceable;\n"),
- CGGeneric("use dom::bindings::utils::Reflectable;\n"),
- CGGeneric("use js::jsapi::JSTracer;\n\n"),
- CGGeneric("use std::mem;\n\n")]
+ imports = [CGGeneric("use dom::types::*;\n"),
+ CGGeneric("use dom::bindings::conversions::get_dom_class;\n"),
+ CGGeneric("use dom::bindings::js::{JS, LayoutJS, Root};\n"),
+ CGGeneric("use dom::bindings::trace::JSTraceable;\n"),
+ CGGeneric("use dom::bindings::utils::Reflectable;\n"),
+ CGGeneric("use js::jsapi::JSTracer;\n\n"),
+ CGGeneric("use std::mem;\n\n")]
+ allprotos = []
+ topTypes = []
+ hierarchy = defaultdict(list)
for descriptor in descriptors:
name = descriptor.name
chain = descriptor.prototypeChain
- upcast = (descriptor.interface.getUserData("hasConcreteDescendant", False) or
- descriptor.interface.getUserData("hasProxyDescendant", False))
+ upcast = descriptor.hasDescendants()
downcast = len(chain) != 1
if upcast or downcast:
# Define a dummy structure to hold the cast functions.
allprotos.append(CGGeneric("pub struct %sCast;\n\n" % name))
+ if upcast and not downcast:
+ topTypes.append(name)
+
if upcast:
# Define a `FooBase` trait for subclasses to implement, as well as the
# `FooCast::from_*` methods that use it.
@@ -5872,6 +5877,7 @@ impl %(name)sCast {
allprotos.append(CGGeneric("\n"))
if downcast:
+ hierarchy[descriptor.getParentName()].append(name)
# Define a `FooDerived` trait for superclasses to implement,
# as well as the `FooCast::to_*` methods that use it.
allprotos.append(CGGeneric("""\
@@ -5922,7 +5928,7 @@ impl %(name)sCast {
'baseName': baseName,
'derivedTrait': name + 'Derived',
'methodName': 'is_' + name.lower(),
- 'parentName': config.getDescriptor(baseName).prototypeChain[-2],
+ 'parentName': config.getDescriptor(baseName).getParentName(),
}
allprotos.append(CGGeneric("""\
impl %(derivedTrait)s for %(baseName)s {
@@ -5934,7 +5940,54 @@ impl %(derivedTrait)s for %(baseName)s {
""" % args))
- curr = CGList(allprotos)
+ typeIdCode = []
+ topTypeVariants = [
+ ("ID used by abstract interfaces.", "Abstract"),
+ ("ID used by interfaces that are not castable.", "Alone"),
+ ]
+ topTypeVariants += [
+ ("ID used by interfaces that derive from %s." % name, "%s(%sTypeId)" % (name, name))
+ for name in topTypes
+ ]
+ topTypeVariantsAsStrings = [CGGeneric("/// %s\n%s," % variant) for variant in topTypeVariants]
+ typeIdCode.append(CGWrapper(CGIndenter(CGList(topTypeVariantsAsStrings, "\n"), 4),
+ pre="#[derive(Clone, Copy, Debug)]\npub enum TopTypeId {\n",
+ post="\n}\n\n"))
+
+ def type_id_variant(name):
+ # If `name` is present in the hierarchy keys', that means some other interfaces
+ # derive from it and this enum variant should have an argument with its own
+ # TypeId enum.
+ return "%s(%sTypeId)" % (name, name) if name in hierarchy else name
+
+ for base, derived in hierarchy.iteritems():
+ variants = []
+ if not config.getInterface(base).getExtendedAttribute("Abstract"):
+ variants.append(CGGeneric(base))
+ variants += [CGGeneric(type_id_variant(name)) for name in derived]
+ derives = "Clone, Copy, Debug"
+ if base != 'EventTarget' and base != 'HTMLElement':
+ derives += ", PartialEq"
+ typeIdCode.append(CGWrapper(CGIndenter(CGList(variants, ",\n"), 4),
+ pre="#[derive(%s)]\npub enum %sTypeId {\n" % (derives, base),
+ post="\n}\n\n"))
+ if base in topTypes:
+ typeIdCode.append(CGGeneric("""\
+impl %(base)s {
+ pub fn type_id(&self) -> &'static %(base)sTypeId {
+ let domclass = unsafe {
+ get_dom_class(self.reflector().get_jsobject().get()).unwrap()
+ };
+ match domclass.type_id {
+ TopTypeId::%(base)s(ref type_id) => type_id,
+ _ => unreachable!(),
+ }
+ }
+}
+
+""" % {'base': base}))
+
+ curr = CGList(imports + typeIdCode + allprotos)
curr = CGWrapper(curr, pre=AUTOGENERATED_WARNING_COMMENT)
return curr
diff --git a/components/script/dom/bindings/codegen/Configuration.py b/components/script/dom/bindings/codegen/Configuration.py
index a8179c5be95..4275d8da24c 100644
--- a/components/script/dom/bindings/codegen/Configuration.py
+++ b/components/script/dom/bindings/codegen/Configuration.py
@@ -318,6 +318,14 @@ class Descriptor(DescriptorProvider):
maybeAppendInfallibleToAttrs(attrs, throws)
return attrs
+ def getParentName(self):
+ assert self.interface.parent is not None
+ return self.interface.parent.identifier.name
+
+ def hasDescendants(self):
+ return (self.interface.getUserData("hasConcreteDescendant", False) or
+ self.interface.getUserData("hasProxyDescendant", False))
+
def isGlobal(self):
"""
Returns true if this is the primary interface for a global object
diff --git a/components/script/dom/bindings/utils.rs b/components/script/dom/bindings/utils.rs
index d00c164d0a9..52cf58e4ff0 100644
--- a/components/script/dom/bindings/utils.rs
+++ b/components/script/dom/bindings/utils.rs
@@ -4,6 +4,7 @@
//! Various utilities to glue JavaScript and the DOM implementation together.
+use dom::bindings::codegen::InheritTypes::TopTypeId;
use dom::bindings::codegen::PrototypeList;
use dom::bindings::codegen::PrototypeList::MAX_PROTO_CHAIN_LENGTH;
use dom::bindings::conversions::native_from_handleobject;
@@ -15,7 +16,6 @@ use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
use dom::bindings::trace::trace_object;
use dom::browsercontext;
-use dom::eventtarget::EventTargetTypeId;
use dom::window;
use js;
use js::glue::{CallJitGetterOp, CallJitMethodOp, CallJitSetterOp, IsWrapper};
@@ -156,8 +156,8 @@ pub struct DOMClass {
/// derivedness.
pub interface_chain: [PrototypeList::ID; MAX_PROTO_CHAIN_LENGTH],
- /// The EventTarget type, if this is derived from an EventTarget.
- pub type_id: Option<EventTargetTypeId>,
+ /// The type ID of that interface.
+ pub type_id: TopTypeId,
/// The NativePropertyHooks for the interface associated with this class.
pub native_hooks: &'static NativePropertyHooks,
diff --git a/components/script/dom/blob.rs b/components/script/dom/blob.rs
index 8161d9b278c..a8a5f56f02e 100644
--- a/components/script/dom/blob.rs
+++ b/components/script/dom/blob.rs
@@ -4,7 +4,7 @@
use dom::bindings::codegen::Bindings::BlobBinding;
use dom::bindings::codegen::Bindings::BlobBinding::BlobMethods;
-use dom::bindings::codegen::InheritTypes::FileDerived;
+use dom::bindings::codegen::InheritTypes::{BlobTypeId, FileDerived};
use dom::bindings::error::Fallible;
use dom::bindings::global::{GlobalField, GlobalRef};
use dom::bindings::js::Root;
@@ -17,17 +17,10 @@ use std::cmp::{max, min};
use std::sync::mpsc::Sender;
use util::str::DOMString;
-#[derive(JSTraceable, HeapSizeOf)]
-pub enum BlobTypeId {
- Blob,
- File,
-}
-
// http://dev.w3.org/2006/webapi/FileAPI/#blob
#[dom_struct]
pub struct Blob {
reflector_: Reflector,
- type_: BlobTypeId,
bytes: Option<Vec<u8>>,
typeString: DOMString,
global: GlobalField,
@@ -41,11 +34,10 @@ fn is_ascii_printable(string: &DOMString) -> bool {
}
impl Blob {
- pub fn new_inherited(global: GlobalRef, type_: BlobTypeId,
+ pub fn new_inherited(global: GlobalRef,
bytes: Option<Vec<u8>>, typeString: &str) -> Blob {
Blob {
reflector_: Reflector::new(),
- type_: type_,
bytes: bytes,
typeString: typeString.to_owned(),
global: GlobalField::from_rooted(&global),
@@ -55,7 +47,7 @@ impl Blob {
pub fn new(global: GlobalRef, bytes: Option<Vec<u8>>,
typeString: &str) -> Root<Blob> {
- reflect_dom_object(box Blob::new_inherited(global, BlobTypeId::Blob, bytes, typeString),
+ reflect_dom_object(box Blob::new_inherited(global, bytes, typeString),
global,
BlobBinding::Wrap)
}
@@ -168,9 +160,6 @@ impl BlobMethods for Blob {
impl FileDerived for Blob {
fn is_file(&self) -> bool {
- match self.type_ {
- BlobTypeId::File => true,
- _ => false
- }
+ *self.type_id() == BlobTypeId::File
}
}
diff --git a/components/script/dom/characterdata.rs b/components/script/dom/characterdata.rs
index 01d6efac1e5..dbb2356d8a0 100644
--- a/components/script/dom/characterdata.rs
+++ b/components/script/dom/characterdata.rs
@@ -6,15 +6,16 @@
use dom::bindings::cell::DOMRefCell;
use dom::bindings::codegen::Bindings::CharacterDataBinding::CharacterDataMethods;
-use dom::bindings::codegen::InheritTypes::NodeCast;
-use dom::bindings::codegen::InheritTypes::{CharacterDataDerived, ElementCast};
+use dom::bindings::codegen::InheritTypes::{CharacterDataDerived, CharacterDataTypeId};
+use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{NodeCast, NodeTypeId};
use dom::bindings::codegen::UnionTypes::NodeOrString;
use dom::bindings::error::{Error, ErrorResult, Fallible};
use dom::bindings::js::{LayoutJS, Root};
use dom::document::Document;
use dom::element::Element;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::node::{Node, NodeDamage, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::node::{Node, NodeDamage};
use std::borrow::ToOwned;
use std::cell::Ref;
use util::str::DOMString;
@@ -156,15 +157,6 @@ impl CharacterDataMethods for CharacterData {
}
}
-/// The different types of CharacterData.
-#[derive(Copy, Clone, PartialEq, Debug)]
-pub enum CharacterDataTypeId {
- Comment,
- Text,
- ProcessingInstruction,
-}
-
-
impl CharacterData {
#[inline]
pub fn data(&self) -> Ref<DOMString> {
diff --git a/components/script/dom/closeevent.rs b/components/script/dom/closeevent.rs
index 9d0f4d5bafd..bd49f6d8197 100644
--- a/components/script/dom/closeevent.rs
+++ b/components/script/dom/closeevent.rs
@@ -10,7 +10,7 @@ use dom::bindings::error::Fallible;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
use dom::bindings::utils::reflect_dom_object;
-use dom::event::{Event, EventBubbles, EventCancelable, EventTypeId};
+use dom::event::{Event, EventBubbles, EventCancelable};
use script_task::ScriptChan;
use util::str::DOMString;
@@ -23,10 +23,10 @@ pub struct CloseEvent {
}
impl CloseEvent {
- pub fn new_inherited(type_id: EventTypeId, wasClean: bool, code: u16,
+ pub fn new_inherited(wasClean: bool, code: u16,
reason: DOMString) -> CloseEvent {
CloseEvent {
- event: Event::new_inherited(type_id),
+ event: Event::new_inherited(),
wasClean: wasClean,
code: code,
reason: reason,
@@ -40,8 +40,7 @@ impl CloseEvent {
wasClean: bool,
code: u16,
reason: DOMString) -> Root<CloseEvent> {
- let event = box CloseEvent::new_inherited(EventTypeId::CloseEvent,
- wasClean, code, reason);
+ let event = box CloseEvent::new_inherited(wasClean, code, reason);
let ev = reflect_dom_object(event, global, CloseEventBinding::Wrap);
{
let event = EventCast::from_ref(ev.r());
diff --git a/components/script/dom/comment.rs b/components/script/dom/comment.rs
index 5f742ffb3b3..269a8350b0c 100644
--- a/components/script/dom/comment.rs
+++ b/components/script/dom/comment.rs
@@ -4,14 +4,15 @@
use dom::bindings::codegen::Bindings::CommentBinding;
use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
-use dom::bindings::codegen::InheritTypes::CommentDerived;
+use dom::bindings::codegen::InheritTypes::{CharacterDataTypeId, CommentDerived};
+use dom::bindings::codegen::InheritTypes::{EventTargetTypeId, NodeTypeId};
use dom::bindings::error::Fallible;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
-use dom::characterdata::{CharacterData, CharacterDataTypeId};
+use dom::characterdata::CharacterData;
use dom::document::Document;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::node::Node;
use util::str::DOMString;
/// An HTML comment.
diff --git a/components/script/dom/customevent.rs b/components/script/dom/customevent.rs
index e1e1613baae..f865d49ebd6 100644
--- a/components/script/dom/customevent.rs
+++ b/components/script/dom/customevent.rs
@@ -5,12 +5,12 @@
use dom::bindings::codegen::Bindings::CustomEventBinding;
use dom::bindings::codegen::Bindings::CustomEventBinding::CustomEventMethods;
use dom::bindings::codegen::Bindings::EventBinding::EventMethods;
-use dom::bindings::codegen::InheritTypes::{CustomEventDerived, EventCast};
+use dom::bindings::codegen::InheritTypes::{CustomEventDerived, EventCast, EventTypeId};
use dom::bindings::error::Fallible;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::{MutHeapJSVal, Root};
use dom::bindings::utils::reflect_dom_object;
-use dom::event::{Event, EventTypeId};
+use dom::event::Event;
use js::jsapi::{HandleValue, JSContext};
use js::jsval::JSVal;
use util::str::DOMString;
@@ -30,15 +30,15 @@ impl CustomEventDerived for Event {
}
impl CustomEvent {
- fn new_inherited(type_id: EventTypeId) -> CustomEvent {
+ fn new_inherited() -> CustomEvent {
CustomEvent {
- event: Event::new_inherited(type_id),
+ event: Event::new_inherited(),
detail: MutHeapJSVal::new(),
}
}
pub fn new_uninitialized(global: GlobalRef) -> Root<CustomEvent> {
- reflect_dom_object(box CustomEvent::new_inherited(EventTypeId::CustomEvent),
+ reflect_dom_object(box CustomEvent::new_inherited(),
global,
CustomEventBinding::Wrap)
}
diff --git a/components/script/dom/dedicatedworkerglobalscope.rs b/components/script/dom/dedicatedworkerglobalscope.rs
index c619f64f293..93c66071cb0 100644
--- a/components/script/dom/dedicatedworkerglobalscope.rs
+++ b/components/script/dom/dedicatedworkerglobalscope.rs
@@ -9,18 +9,19 @@ use dom::bindings::codegen::Bindings::DedicatedWorkerGlobalScopeBinding;
use dom::bindings::codegen::Bindings::DedicatedWorkerGlobalScopeBinding::DedicatedWorkerGlobalScopeMethods;
use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull;
use dom::bindings::codegen::InheritTypes::DedicatedWorkerGlobalScopeDerived;
-use dom::bindings::codegen::InheritTypes::{EventTargetCast, WorkerGlobalScopeCast};
+use dom::bindings::codegen::InheritTypes::{EventTargetCast, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{WorkerGlobalScopeCast, WorkerGlobalScopeTypeId};
use dom::bindings::error::ErrorResult;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::{Root, RootCollection};
use dom::bindings::refcounted::LiveDOMReferences;
use dom::bindings::structuredclone::StructuredCloneData;
use dom::bindings::utils::Reflectable;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
+use dom::eventtarget::EventTarget;
use dom::messageevent::MessageEvent;
use dom::worker::{SimpleWorkerErrorHandler, TrustedWorkerAddress, WorkerMessageHandler};
use dom::workerglobalscope::WorkerGlobalScope;
-use dom::workerglobalscope::{WorkerGlobalScopeInit, WorkerGlobalScopeTypeId};
+use dom::workerglobalscope::WorkerGlobalScopeInit;
use ipc_channel::ipc::IpcReceiver;
use ipc_channel::router::ROUTER;
use js::jsapi::{HandleValue, JSContext, RootedValue};
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs
index ba69827ca32..8b6b5d7ea12 100644
--- a/components/script/dom/document.rs
+++ b/components/script/dom/document.rs
@@ -14,16 +14,18 @@ use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
use dom::bindings::codegen::Bindings::NodeFilterBinding::NodeFilter;
use dom::bindings::codegen::Bindings::PerformanceBinding::PerformanceMethods;
use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
-use dom::bindings::codegen::InheritTypes::ElementDerived;
-use dom::bindings::codegen::InheritTypes::HTMLBaseElementCast;
-use dom::bindings::codegen::InheritTypes::{DocumentDerived, EventCast, HTMLBodyElementCast};
-use dom::bindings::codegen::InheritTypes::{DocumentTypeCast, HTMLHtmlElementCast, NodeCast};
-use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, HTMLHeadElementCast, HTMLIFrameElementCast};
-use dom::bindings::codegen::InheritTypes::{EventTargetCast, HTMLAnchorElementCast};
-use dom::bindings::codegen::InheritTypes::{HTMLAnchorElementDerived, HTMLAppletElementDerived};
-use dom::bindings::codegen::InheritTypes::{HTMLAreaElementDerived, HTMLEmbedElementDerived};
-use dom::bindings::codegen::InheritTypes::{HTMLFormElementDerived, HTMLImageElementDerived};
+use dom::bindings::codegen::InheritTypes::{DocumentDerived, DocumentTypeCast, ElementCast};
+use dom::bindings::codegen::InheritTypes::{ElementDerived, ElementTypeId};
+use dom::bindings::codegen::InheritTypes::{EventCast, EventTargetCast, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLAnchorElementCast, HTMLAnchorElementDerived};
+use dom::bindings::codegen::InheritTypes::{HTMLAppletElementDerived, HTMLAreaElementDerived};
+use dom::bindings::codegen::InheritTypes::{HTMLBaseElementCast, HTMLBodyElementCast};
+use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLEmbedElementDerived, HTMLFormElementDerived};
+use dom::bindings::codegen::InheritTypes::{HTMLHeadElementCast, HTMLHtmlElementCast};
+use dom::bindings::codegen::InheritTypes::{HTMLIFrameElementCast, HTMLImageElementDerived};
use dom::bindings::codegen::InheritTypes::{HTMLScriptElementDerived, HTMLTitleElementDerived};
+use dom::bindings::codegen::InheritTypes::{NodeCast, NodeTypeId};
use dom::bindings::codegen::UnionTypes::NodeOrString;
use dom::bindings::error::{Error, ErrorResult, Fallible};
use dom::bindings::global::GlobalRef;
@@ -39,13 +41,13 @@ use dom::customevent::CustomEvent;
use dom::documentfragment::DocumentFragment;
use dom::documenttype::DocumentType;
use dom::domimplementation::DOMImplementation;
-use dom::element::{Element, ElementCreator, ElementTypeId};
+use dom::element::{Element, ElementCreator};
use dom::event::{Event, EventBubbles, EventCancelable};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
+use dom::eventtarget::{EventTarget};
use dom::htmlanchorelement::HTMLAnchorElement;
use dom::htmlbaseelement::HTMLBaseElement;
use dom::htmlcollection::{CollectionFilter, HTMLCollection};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
+use dom::htmlelement::{HTMLElement};
use dom::htmlheadelement::HTMLHeadElement;
use dom::htmlhtmlelement::HTMLHtmlElement;
use dom::htmliframeelement::{self, HTMLIFrameElement};
@@ -54,7 +56,7 @@ use dom::keyboardevent::KeyboardEvent;
use dom::location::Location;
use dom::messageevent::MessageEvent;
use dom::mouseevent::MouseEvent;
-use dom::node::{self, CloneChildrenFlag, Node, NodeDamage, NodeTypeId, window_from_node};
+use dom::node::{self, CloneChildrenFlag, Node, NodeDamage, window_from_node};
use dom::nodeiterator::NodeIterator;
use dom::nodelist::NodeList;
use dom::processinginstruction::ProcessingInstruction;
diff --git a/components/script/dom/documentfragment.rs b/components/script/dom/documentfragment.rs
index 3eac9df6bac..379fe16b066 100644
--- a/components/script/dom/documentfragment.rs
+++ b/components/script/dom/documentfragment.rs
@@ -5,17 +5,17 @@
use dom::bindings::codegen::Bindings::DocumentFragmentBinding;
use dom::bindings::codegen::Bindings::DocumentFragmentBinding::DocumentFragmentMethods;
use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
-use dom::bindings::codegen::InheritTypes::DocumentFragmentDerived;
-use dom::bindings::codegen::InheritTypes::{ElementCast, NodeCast};
+use dom::bindings::codegen::InheritTypes::{DocumentFragmentDerived, ElementCast};
+use dom::bindings::codegen::InheritTypes::{EventTargetTypeId, NodeCast, NodeTypeId};
use dom::bindings::codegen::UnionTypes::NodeOrString;
use dom::bindings::error::{ErrorResult, Fallible};
use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
use dom::document::Document;
use dom::element::Element;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
+use dom::eventtarget::EventTarget;
use dom::htmlcollection::HTMLCollection;
-use dom::node::{Node, NodeTypeId, window_from_node};
+use dom::node::{Node, window_from_node};
use dom::nodelist::NodeList;
use string_cache::Atom;
use util::str::DOMString;
diff --git a/components/script/dom/documenttype.rs b/components/script/dom/documenttype.rs
index a9f540592e9..e04922ad629 100644
--- a/components/script/dom/documenttype.rs
+++ b/components/script/dom/documenttype.rs
@@ -4,13 +4,14 @@
use dom::bindings::codegen::Bindings::DocumentTypeBinding;
use dom::bindings::codegen::Bindings::DocumentTypeBinding::DocumentTypeMethods;
-use dom::bindings::codegen::InheritTypes::{DocumentTypeDerived, NodeCast};
+use dom::bindings::codegen::InheritTypes::{DocumentTypeDerived, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{NodeCast, NodeTypeId};
use dom::bindings::codegen::UnionTypes::NodeOrString;
use dom::bindings::error::ErrorResult;
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::node::Node;
use std::borrow::ToOwned;
use util::str::DOMString;
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs
index 39633b64fef..5ce83d933de 100644
--- a/components/script/dom/element.rs
+++ b/components/script/dom/element.rs
@@ -20,13 +20,15 @@ use dom::bindings::codegen::Bindings::HTMLTemplateElementBinding::HTMLTemplateEl
use dom::bindings::codegen::Bindings::NamedNodeMapBinding::NamedNodeMapMethods;
use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
use dom::bindings::codegen::InheritTypes::{CharacterDataCast, DocumentDerived, ElementCast};
-use dom::bindings::codegen::InheritTypes::{ElementDerived, EventTargetCast, HTMLAnchorElementCast};
-use dom::bindings::codegen::InheritTypes::{HTMLBodyElementCast, HTMLFontElementCast};
+use dom::bindings::codegen::InheritTypes::{ElementDerived, ElementTypeId};
+use dom::bindings::codegen::InheritTypes::{EventTargetCast, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLAnchorElementCast, HTMLBodyElementCast};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLFontElementCast};
use dom::bindings::codegen::InheritTypes::{HTMLIFrameElementCast, HTMLInputElementCast};
use dom::bindings::codegen::InheritTypes::{HTMLTableCellElementCast, HTMLTableElementCast};
use dom::bindings::codegen::InheritTypes::{HTMLTableRowElementCast, HTMLTableSectionElementCast};
use dom::bindings::codegen::InheritTypes::{HTMLTemplateElementCast, HTMLTextAreaElementCast};
-use dom::bindings::codegen::InheritTypes::{NodeCast, TextCast};
+use dom::bindings::codegen::InheritTypes::{NodeCast, NodeTypeId, TextCast};
use dom::bindings::codegen::UnionTypes::NodeOrString;
use dom::bindings::error::{Error, ErrorResult, Fallible};
use dom::bindings::js::{JS, LayoutJS, MutNullableHeap};
@@ -39,15 +41,14 @@ use dom::domrect::DOMRect;
use dom::domrectlist::DOMRectList;
use dom::domtokenlist::DOMTokenList;
use dom::event::Event;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
+use dom::eventtarget::EventTarget;
use dom::htmlcollection::HTMLCollection;
-use dom::htmlelement::HTMLElementTypeId;
use dom::htmlinputelement::{HTMLInputElement, RawLayoutHTMLInputElementHelpers};
use dom::htmltablecellelement::HTMLTableCellElementLayoutHelpers;
use dom::htmltableelement::HTMLTableElement;
use dom::htmltextareaelement::RawLayoutHTMLTextAreaElementHelpers;
use dom::namednodemap::NamedNodeMap;
-use dom::node::{CLICK_IN_PROGRESS, LayoutNodeHelpers, Node, NodeTypeId, SEQUENTIALLY_FOCUSABLE};
+use dom::node::{CLICK_IN_PROGRESS, LayoutNodeHelpers, Node, SEQUENTIALLY_FOCUSABLE};
use dom::node::{NodeDamage, document_from_node};
use dom::node::{window_from_node};
use dom::nodelist::NodeList;
@@ -106,12 +107,6 @@ impl PartialEq for Element {
}
}
-#[derive(Copy, Clone, PartialEq, Debug)]
-pub enum ElementTypeId {
- HTMLElement(HTMLElementTypeId),
- Element,
-}
-
#[derive(PartialEq, HeapSizeOf)]
pub enum ElementCreator {
ParserCreated,
diff --git a/components/script/dom/errorevent.rs b/components/script/dom/errorevent.rs
index 040f85d1934..e58a80ca259 100644
--- a/components/script/dom/errorevent.rs
+++ b/components/script/dom/errorevent.rs
@@ -6,13 +6,13 @@ use dom::bindings::cell::DOMRefCell;
use dom::bindings::codegen::Bindings::ErrorEventBinding;
use dom::bindings::codegen::Bindings::ErrorEventBinding::ErrorEventMethods;
use dom::bindings::codegen::Bindings::EventBinding::EventMethods;
-use dom::bindings::codegen::InheritTypes::{ErrorEventDerived, EventCast};
+use dom::bindings::codegen::InheritTypes::{ErrorEventDerived, EventCast, EventTypeId};
use dom::bindings::error::Fallible;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::{MutHeapJSVal, Root};
use dom::bindings::trace::JSTraceable;
use dom::bindings::utils::reflect_dom_object;
-use dom::event::{Event, EventBubbles, EventCancelable, EventTypeId};
+use dom::event::{Event, EventBubbles, EventCancelable};
use js::jsapi::{HandleValue, JSContext};
use js::jsval::JSVal;
use std::borrow::ToOwned;
@@ -37,9 +37,9 @@ impl ErrorEventDerived for Event {
}
impl ErrorEvent {
- fn new_inherited(type_id: EventTypeId) -> ErrorEvent {
+ fn new_inherited() -> ErrorEvent {
ErrorEvent {
- event: Event::new_inherited(type_id),
+ event: Event::new_inherited(),
message: DOMRefCell::new("".to_owned()),
filename: DOMRefCell::new("".to_owned()),
lineno: Cell::new(0),
@@ -49,7 +49,7 @@ impl ErrorEvent {
}
pub fn new_uninitialized(global: GlobalRef) -> Root<ErrorEvent> {
- reflect_dom_object(box ErrorEvent::new_inherited(EventTypeId::ErrorEvent),
+ reflect_dom_object(box ErrorEvent::new_inherited(),
global,
ErrorEventBinding::Wrap)
}
diff --git a/components/script/dom/event.rs b/components/script/dom/event.rs
index 4d7fdde5baa..c3a8a52dc55 100644
--- a/components/script/dom/event.rs
+++ b/components/script/dom/event.rs
@@ -10,7 +10,6 @@ use dom::bindings::global::GlobalRef;
use dom::bindings::js::{JS, MutNullableHeap, Root};
use dom::bindings::utils::{Reflector, reflect_dom_object};
use dom::eventtarget::EventTarget;
-use dom::uievent::{UIEventTypeId};
use std::borrow::ToOwned;
use std::cell::Cell;
use std::default::Default;
@@ -27,19 +26,6 @@ pub enum EventPhase {
Bubbling = EventConstants::BUBBLING_PHASE,
}
-#[derive(JSTraceable, PartialEq, HeapSizeOf)]
-pub enum EventTypeId {
- CustomEvent,
- HTMLEvent,
- MessageEvent,
- ProgressEvent,
- StorageEvent,
- UIEvent(UIEventTypeId),
- ErrorEvent,
- CloseEvent,
- WebGLContextEvent,
-}
-
#[derive(PartialEq, HeapSizeOf)]
pub enum EventBubbles {
Bubbles,
@@ -55,7 +41,6 @@ pub enum EventCancelable {
#[dom_struct]
pub struct Event {
reflector_: Reflector,
- type_id: EventTypeId,
current_target: MutNullableHeap<JS<EventTarget>>,
target: MutNullableHeap<JS<EventTarget>>,
type_: DOMRefCell<DOMString>,
@@ -72,10 +57,9 @@ pub struct Event {
}
impl Event {
- pub fn new_inherited(type_id: EventTypeId) -> Event {
+ pub fn new_inherited() -> Event {
Event {
reflector_: Reflector::new(),
- type_id: type_id,
current_target: Default::default(),
target: Default::default(),
phase: Cell::new(EventPhase::None),
@@ -93,7 +77,7 @@ impl Event {
}
pub fn new_uninitialized(global: GlobalRef) -> Root<Event> {
- reflect_dom_object(box Event::new_inherited(EventTypeId::HTMLEvent),
+ reflect_dom_object(box Event::new_inherited(),
global,
EventBinding::Wrap)
}
@@ -116,11 +100,6 @@ impl Event {
}
#[inline]
- pub fn type_id(&self) -> &EventTypeId {
- &self.type_id
- }
-
- #[inline]
pub fn clear_current_target(&self) {
self.current_target.set(None);
}
diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs
index 86a3d14ea1b..2b79934d4a7 100644
--- a/components/script/dom/eventtarget.rs
+++ b/components/script/dom/eventtarget.rs
@@ -7,15 +7,12 @@ use dom::bindings::cell::DOMRefCell;
use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull;
use dom::bindings::codegen::Bindings::EventListenerBinding::EventListener;
use dom::bindings::codegen::Bindings::EventTargetBinding::EventTargetMethods;
-use dom::bindings::conversions::get_dom_class;
+use dom::bindings::codegen::InheritTypes::EventTargetTypeId;
use dom::bindings::error::{Error, Fallible, report_pending_exception};
use dom::bindings::utils::{Reflectable, Reflector};
use dom::event::Event;
use dom::eventdispatcher::dispatch_event;
-use dom::node::NodeTypeId;
use dom::virtualmethods::VirtualMethods;
-use dom::workerglobalscope::WorkerGlobalScopeTypeId;
-use dom::xmlhttprequesteventtarget::XMLHttpRequestEventTargetTypeId;
use fnv::FnvHasher;
use js::jsapi::{CompileFunction, JS_GetFunctionObject};
use js::jsapi::{HandleObject, JSContext, RootedFunction};
@@ -42,17 +39,6 @@ pub enum ListenerPhase {
Bubbling,
}
-#[derive(Copy, Clone)]
-pub enum EventTargetTypeId {
- Node(NodeTypeId),
- WebSocket,
- Window,
- Worker,
- FileReader,
- WorkerGlobalScope(WorkerGlobalScopeTypeId),
- XMLHttpRequestEventTarget(XMLHttpRequestEventTargetTypeId)
-}
-
impl PartialEq for EventTargetTypeId {
#[inline]
fn eq(&self, other: &EventTargetTypeId) -> bool {
@@ -153,14 +139,6 @@ impl EventTarget {
})
}
- #[allow(unsafe_code)]
- pub fn type_id(&self) -> &EventTargetTypeId {
- let domclass = unsafe {
- get_dom_class(self.reflector_.get_jsobject().get()).unwrap()
- };
- domclass.type_id.as_ref().unwrap()
- }
-
pub fn dispatch_event_with_target(&self,
target: &EventTarget,
event: &Event) -> bool {
diff --git a/components/script/dom/file.rs b/components/script/dom/file.rs
index f6b48927409..b9ccd721a47 100644
--- a/components/script/dom/file.rs
+++ b/components/script/dom/file.rs
@@ -7,7 +7,7 @@ use dom::bindings::codegen::Bindings::FileBinding::FileMethods;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
use dom::bindings::utils::reflect_dom_object;
-use dom::blob::{Blob, BlobTypeId};
+use dom::blob::Blob;
use util::str::DOMString;
#[dom_struct]
@@ -17,11 +17,11 @@ pub struct File {
}
impl File {
- fn new_inherited(global: GlobalRef, type_: BlobTypeId,
+ fn new_inherited(global: GlobalRef,
_file_bits: &Blob, name: DOMString) -> File {
File {
//TODO: get type from the underlying filesystem instead of "".to_string()
- blob: Blob::new_inherited(global, type_, None, ""),
+ blob: Blob::new_inherited(global, None, ""),
name: name,
}
// XXXManishearth Once Blob is able to store data
@@ -29,7 +29,7 @@ impl File {
}
pub fn new(global: GlobalRef, file_bits: &Blob, name: DOMString) -> Root<File> {
- reflect_dom_object(box File::new_inherited(global, BlobTypeId::File, file_bits, name),
+ reflect_dom_object(box File::new_inherited(global, file_bits, name),
global,
FileBinding::Wrap)
}
diff --git a/components/script/dom/htmlanchorelement.rs b/components/script/dom/htmlanchorelement.rs
index 20e40be62b9..36459c06bb3 100644
--- a/components/script/dom/htmlanchorelement.rs
+++ b/components/script/dom/htmlanchorelement.rs
@@ -10,17 +10,18 @@ use dom::bindings::codegen::Bindings::HTMLAnchorElementBinding;
use dom::bindings::codegen::Bindings::HTMLAnchorElementBinding::HTMLAnchorElementMethods;
use dom::bindings::codegen::Bindings::MouseEventBinding::MouseEventMethods;
use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
-use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast};
-use dom::bindings::codegen::InheritTypes::{HTMLAnchorElementDerived, HTMLImageElementDerived};
-use dom::bindings::codegen::InheritTypes::{MouseEventCast, NodeCast};
+use dom::bindings::codegen::InheritTypes::{ElementCast, ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLAnchorElementDerived, HTMLElementCast};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLImageElementDerived};
+use dom::bindings::codegen::InheritTypes::{MouseEventCast, NodeCast, NodeTypeId};
use dom::bindings::js::{JS, MutNullableHeap, Root};
use dom::document::Document;
use dom::domtokenlist::DOMTokenList;
-use dom::element::{Element, ElementTypeId};
+use dom::element::Element;
use dom::event::Event;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId, document_from_node, window_from_node};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::{Node, document_from_node, window_from_node};
use dom::virtualmethods::VirtualMethods;
use num::ToPrimitive;
use std::default::Default;
diff --git a/components/script/dom/htmlappletelement.rs b/components/script/dom/htmlappletelement.rs
index 24c72ef615e..21a9ed8c2e1 100644
--- a/components/script/dom/htmlappletelement.rs
+++ b/components/script/dom/htmlappletelement.rs
@@ -5,14 +5,14 @@
use dom::attr::AttrValue;
use dom::bindings::codegen::Bindings::HTMLAppletElementBinding;
use dom::bindings::codegen::Bindings::HTMLAppletElementBinding::HTMLAppletElementMethods;
-use dom::bindings::codegen::InheritTypes::HTMLAppletElementDerived;
-use dom::bindings::codegen::InheritTypes::HTMLElementCast;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLAppletElementDerived, HTMLElementCast};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use dom::virtualmethods::VirtualMethods;
use string_cache::Atom;
use util::str::DOMString;
diff --git a/components/script/dom/htmlareaelement.rs b/components/script/dom/htmlareaelement.rs
index caea7badf52..167171d23ae 100644
--- a/components/script/dom/htmlareaelement.rs
+++ b/components/script/dom/htmlareaelement.rs
@@ -5,16 +5,16 @@
use dom::attr::AttrValue;
use dom::bindings::codegen::Bindings::HTMLAreaElementBinding;
use dom::bindings::codegen::Bindings::HTMLAreaElementBinding::HTMLAreaElementMethods;
-use dom::bindings::codegen::InheritTypes::ElementCast;
+use dom::bindings::codegen::InheritTypes::{ElementCast, ElementTypeId, EventTargetTypeId};
use dom::bindings::codegen::InheritTypes::{HTMLAreaElementDerived, HTMLElementCast};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, NodeTypeId};
use dom::bindings::js::{JS, MutNullableHeap, Root};
use dom::bindings::utils::Reflectable;
use dom::document::Document;
use dom::domtokenlist::DOMTokenList;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use dom::virtualmethods::VirtualMethods;
use std::default::Default;
use string_cache::Atom;
diff --git a/components/script/dom/htmlaudioelement.rs b/components/script/dom/htmlaudioelement.rs
index 0bb158836d6..d942d5a20d5 100644
--- a/components/script/dom/htmlaudioelement.rs
+++ b/components/script/dom/htmlaudioelement.rs
@@ -3,14 +3,14 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLAudioElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLAudioElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLAudioElementDerived, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLMediaElementTypeId, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::HTMLElementTypeId;
-use dom::htmlmediaelement::{HTMLMediaElement, HTMLMediaElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlmediaelement::HTMLMediaElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmlbaseelement.rs b/components/script/dom/htmlbaseelement.rs
index be1826b83d5..e751b3c4a8f 100644
--- a/components/script/dom/htmlbaseelement.rs
+++ b/components/script/dom/htmlbaseelement.rs
@@ -4,15 +4,15 @@
use dom::attr::Attr;
use dom::bindings::codegen::Bindings::HTMLBaseElementBinding;
-use dom::bindings::codegen::InheritTypes::ElementCast;
-use dom::bindings::codegen::InheritTypes::HTMLBaseElementDerived;
-use dom::bindings::codegen::InheritTypes::HTMLElementCast;
+use dom::bindings::codegen::InheritTypes::{ElementCast, ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLBaseElementDerived, HTMLElementCast};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::{AttributeMutation, ElementTypeId};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId, document_from_node};
+use dom::element::AttributeMutation;
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::{Node, document_from_node};
use dom::virtualmethods::VirtualMethods;
use url::{Url, UrlParser};
use util::str::DOMString;
diff --git a/components/script/dom/htmlbodyelement.rs b/components/script/dom/htmlbodyelement.rs
index b2a69422d75..3ce0f1889f9 100644
--- a/components/script/dom/htmlbodyelement.rs
+++ b/components/script/dom/htmlbodyelement.rs
@@ -8,15 +8,17 @@ use dom::bindings::cell::DOMRefCell;
use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull;
use dom::bindings::codegen::Bindings::HTMLBodyElementBinding::{self, HTMLBodyElementMethods};
use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
-use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast};
+use dom::bindings::codegen::InheritTypes::{ElementCast, ElementTypeId};
+use dom::bindings::codegen::InheritTypes::{EventTargetCast, EventTargetTypeId};
use dom::bindings::codegen::InheritTypes::{HTMLBodyElementDerived, HTMLElementCast};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, NodeTypeId};
use dom::bindings::js::Root;
use dom::bindings::utils::Reflectable;
use dom::document::Document;
-use dom::element::{AttributeMutation, ElementTypeId, RawLayoutElementHelpers};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId, document_from_node, window_from_node};
+use dom::element::{AttributeMutation, RawLayoutElementHelpers};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::{Node, document_from_node, window_from_node};
use dom::virtualmethods::VirtualMethods;
use msg::constellation_msg::ConstellationChan;
use msg::constellation_msg::Msg as ConstellationMsg;
diff --git a/components/script/dom/htmlbrelement.rs b/components/script/dom/htmlbrelement.rs
index a0a4b16d4d8..38ca77226fe 100644
--- a/components/script/dom/htmlbrelement.rs
+++ b/components/script/dom/htmlbrelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLBRElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLBRElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLBRElementDerived, HTMLElementTypeId, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmlbuttonelement.rs b/components/script/dom/htmlbuttonelement.rs
index a1056554361..3e66645e756 100644
--- a/components/script/dom/htmlbuttonelement.rs
+++ b/components/script/dom/htmlbuttonelement.rs
@@ -6,17 +6,19 @@ use dom::activation::Activatable;
use dom::attr::Attr;
use dom::bindings::codegen::Bindings::HTMLButtonElementBinding;
use dom::bindings::codegen::Bindings::HTMLButtonElementBinding::HTMLButtonElementMethods;
-use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLButtonElementCast, HTMLElementCast, NodeCast};
-use dom::bindings::codegen::InheritTypes::{HTMLButtonElementDerived, HTMLFieldSetElementDerived};
+use dom::bindings::codegen::InheritTypes::{ElementCast, ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLButtonElementCast, HTMLButtonElementDerived};
+use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLFieldSetElementDerived, NodeCast, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::{AttributeMutation, Element, ElementTypeId};
+use dom::element::{AttributeMutation, Element};
use dom::event::Event;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
use dom::htmlformelement::{FormControl, FormSubmitter};
use dom::htmlformelement::{SubmittedFrom, HTMLFormElement};
-use dom::node::{Node, NodeTypeId, document_from_node, window_from_node};
+use dom::node::{Node, document_from_node, window_from_node};
use dom::validitystate::ValidityState;
use dom::virtualmethods::VirtualMethods;
use std::ascii::AsciiExt;
diff --git a/components/script/dom/htmlcanvaselement.rs b/components/script/dom/htmlcanvaselement.rs
index 7677f1afcaf..7397970b4f1 100644
--- a/components/script/dom/htmlcanvaselement.rs
+++ b/components/script/dom/htmlcanvaselement.rs
@@ -7,18 +7,19 @@ use dom::attr::Attr;
use dom::bindings::codegen::Bindings::HTMLCanvasElementBinding;
use dom::bindings::codegen::Bindings::HTMLCanvasElementBinding::HTMLCanvasElementMethods;
use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLContextAttributes;
-use dom::bindings::codegen::InheritTypes::HTMLCanvasElementDerived;
-use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast};
+use dom::bindings::codegen::InheritTypes::{ElementCast, ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLCanvasElementDerived, HTMLElementCast};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, NodeTypeId};
use dom::bindings::codegen::UnionTypes::CanvasRenderingContext2DOrWebGLRenderingContext;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::{HeapGCValue, JS, LayoutJS, MutNullableHeap, Root};
use dom::bindings::utils::{Reflectable};
use dom::canvasrenderingcontext2d::{CanvasRenderingContext2D, LayoutCanvasRenderingContext2DHelpers};
use dom::document::Document;
-use dom::element::{AttributeMutation, ElementTypeId};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId, window_from_node};
+use dom::element::AttributeMutation;
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::{Node, window_from_node};
use dom::virtualmethods::VirtualMethods;
use dom::webglrenderingcontext::{LayoutCanvasWebGLRenderingContextHelpers, WebGLRenderingContext};
use euclid::size::Size2D;
diff --git a/components/script/dom/htmldataelement.rs b/components/script/dom/htmldataelement.rs
index 6e74d8fa9f9..14e02a53c81 100644
--- a/components/script/dom/htmldataelement.rs
+++ b/components/script/dom/htmldataelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLDataElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLDataElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLDataElementDerived, HTMLElementTypeId, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmldatalistelement.rs b/components/script/dom/htmldatalistelement.rs
index 867b36d02cc..c9529d82096 100644
--- a/components/script/dom/htmldatalistelement.rs
+++ b/components/script/dom/htmldatalistelement.rs
@@ -4,16 +4,16 @@
use dom::bindings::codegen::Bindings::HTMLDataListElementBinding;
use dom::bindings::codegen::Bindings::HTMLDataListElementBinding::HTMLDataListElementMethods;
-use dom::bindings::codegen::InheritTypes::NodeCast;
-use dom::bindings::codegen::InheritTypes::{HTMLDataListElementDerived, HTMLOptionElementDerived};
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLDataListElementDerived, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLOptionElementDerived, NodeCast, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
use dom::element::Element;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
+use dom::eventtarget::EventTarget;
use dom::htmlcollection::{CollectionFilter, HTMLCollection};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId, window_from_node};
+use dom::htmlelement::HTMLElement;
+use dom::node::{Node, window_from_node};
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmldialogelement.rs b/components/script/dom/htmldialogelement.rs
index 9b47a51e359..f5c6047d93d 100644
--- a/components/script/dom/htmldialogelement.rs
+++ b/components/script/dom/htmldialogelement.rs
@@ -5,13 +5,13 @@
use dom::bindings::cell::DOMRefCell;
use dom::bindings::codegen::Bindings::HTMLDialogElementBinding;
use dom::bindings::codegen::Bindings::HTMLDialogElementBinding::HTMLDialogElementMethods;
-use dom::bindings::codegen::InheritTypes::HTMLDialogElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLDialogElementDerived, HTMLElementTypeId, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use std::borrow::ToOwned;
use util::str::DOMString;
diff --git a/components/script/dom/htmldirectoryelement.rs b/components/script/dom/htmldirectoryelement.rs
index 2b6a90d11a0..cd5e4c891ce 100644
--- a/components/script/dom/htmldirectoryelement.rs
+++ b/components/script/dom/htmldirectoryelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLDirectoryElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLDirectoryElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLDirectoryElementDerived, HTMLElementTypeId, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmldivelement.rs b/components/script/dom/htmldivelement.rs
index b2e6a2882bf..7aa617d91fe 100644
--- a/components/script/dom/htmldivelement.rs
+++ b/components/script/dom/htmldivelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLDivElementBinding::{self, HTMLDivElementMethods};
-use dom::bindings::codegen::InheritTypes::HTMLDivElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLDivElementDerived, HTMLElementTypeId, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmldlistelement.rs b/components/script/dom/htmldlistelement.rs
index d9b616dd15f..5aec0c2129f 100644
--- a/components/script/dom/htmldlistelement.rs
+++ b/components/script/dom/htmldlistelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLDListElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLDListElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLDListElementDerived, HTMLElementTypeId, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmlelement.rs b/components/script/dom/htmlelement.rs
index 978dc62f5b3..f055a51b719 100644
--- a/components/script/dom/htmlelement.rs
+++ b/components/script/dom/htmlelement.rs
@@ -9,21 +9,22 @@ use dom::bindings::codegen::Bindings::HTMLElementBinding;
use dom::bindings::codegen::Bindings::HTMLElementBinding::HTMLElementMethods;
use dom::bindings::codegen::Bindings::HTMLInputElementBinding::HTMLInputElementMethods;
use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
-use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLFrameSetElementDerived};
-use dom::bindings::codegen::InheritTypes::{EventTargetCast, HTMLInputElementCast, NodeCast};
-use dom::bindings::codegen::InheritTypes::{HTMLBodyElementDerived, HTMLElementDerived, HTMLHtmlElementDerived};
+use dom::bindings::codegen::InheritTypes::{ElementCast, ElementTypeId};
+use dom::bindings::codegen::InheritTypes::{EventTargetCast, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLBodyElementDerived, HTMLElementDerived};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLFrameSetElementDerived};
+use dom::bindings::codegen::InheritTypes::{HTMLHtmlElementDerived, HTMLInputElementCast};
+use dom::bindings::codegen::InheritTypes::{NodeCast, NodeTypeId};
use dom::bindings::error::{Error, ErrorResult};
use dom::bindings::js::{JS, MutNullableHeap, Root};
use dom::bindings::utils::Reflectable;
use dom::cssstyledeclaration::{CSSModificationAccess, CSSStyleDeclaration};
use dom::document::Document;
use dom::domstringmap::DOMStringMap;
-use dom::element::{AttributeMutation, Element, ElementTypeId};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
+use dom::element::{AttributeMutation, Element};
+use dom::eventtarget::EventTarget;
use dom::htmlinputelement::HTMLInputElement;
-use dom::htmlmediaelement::HTMLMediaElementTypeId;
-use dom::htmltablecellelement::HTMLTableCellElementTypeId;
-use dom::node::{Node, NodeTypeId, SEQUENTIALLY_FOCUSABLE, document_from_node, window_from_node};
+use dom::node::{Node, SEQUENTIALLY_FOCUSABLE, document_from_node, window_from_node};
use dom::virtualmethods::VirtualMethods;
use msg::constellation_msg::FocusType;
use std::borrow::ToOwned;
@@ -340,76 +341,6 @@ impl VirtualMethods for HTMLElement {
}
}
-#[derive(Copy, Clone, Debug)]
-pub enum HTMLElementTypeId {
- HTMLElement,
-
- HTMLAnchorElement,
- HTMLAppletElement,
- HTMLAreaElement,
- HTMLBaseElement,
- HTMLBRElement,
- HTMLBodyElement,
- HTMLButtonElement,
- HTMLCanvasElement,
- HTMLDataElement,
- HTMLDataListElement,
- HTMLDialogElement,
- HTMLDirectoryElement,
- HTMLDListElement,
- HTMLDivElement,
- HTMLEmbedElement,
- HTMLFieldSetElement,
- HTMLFontElement,
- HTMLFormElement,
- HTMLFrameElement,
- HTMLFrameSetElement,
- HTMLHRElement,
- HTMLHeadElement,
- HTMLHeadingElement,
- HTMLHtmlElement,
- HTMLIFrameElement,
- HTMLImageElement,
- HTMLInputElement,
- HTMLLabelElement,
- HTMLLegendElement,
- HTMLLinkElement,
- HTMLLIElement,
- HTMLMapElement,
- HTMLMediaElement(HTMLMediaElementTypeId),
- HTMLMetaElement,
- HTMLMeterElement,
- HTMLModElement,
- HTMLObjectElement,
- HTMLOListElement,
- HTMLOptGroupElement,
- HTMLOptionElement,
- HTMLOutputElement,
- HTMLParagraphElement,
- HTMLParamElement,
- HTMLPreElement,
- HTMLProgressElement,
- HTMLQuoteElement,
- HTMLScriptElement,
- HTMLSelectElement,
- HTMLSourceElement,
- HTMLSpanElement,
- HTMLStyleElement,
- HTMLTableElement,
- HTMLTableCaptionElement,
- HTMLTableCellElement(HTMLTableCellElementTypeId),
- HTMLTableColElement,
- HTMLTableRowElement,
- HTMLTableSectionElement,
- HTMLTemplateElement,
- HTMLTextAreaElement,
- HTMLTimeElement,
- HTMLTitleElement,
- HTMLTrackElement,
- HTMLUListElement,
- HTMLUnknownElement,
-}
-
impl PartialEq for HTMLElementTypeId {
#[inline]
#[allow(unsafe_code)]
diff --git a/components/script/dom/htmlembedelement.rs b/components/script/dom/htmlembedelement.rs
index bd741de54fa..0ec0e0c5810 100644
--- a/components/script/dom/htmlembedelement.rs
+++ b/components/script/dom/htmlembedelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLEmbedElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLEmbedElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLEmbedElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmlfieldsetelement.rs b/components/script/dom/htmlfieldsetelement.rs
index 5b55f62b175..e7cddb164cc 100644
--- a/components/script/dom/htmlfieldsetelement.rs
+++ b/components/script/dom/htmlfieldsetelement.rs
@@ -5,16 +5,17 @@
use dom::attr::Attr;
use dom::bindings::codegen::Bindings::HTMLFieldSetElementBinding;
use dom::bindings::codegen::Bindings::HTMLFieldSetElementBinding::HTMLFieldSetElementMethods;
-use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLLegendElementDerived};
-use dom::bindings::codegen::InheritTypes::{HTMLFieldSetElementDerived, NodeCast};
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementCast};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLFieldSetElementDerived};
+use dom::bindings::codegen::InheritTypes::{HTMLLegendElementDerived, NodeCast, NodeTypeId};
use dom::bindings::js::{Root, RootedReference};
use dom::document::Document;
-use dom::element::{AttributeMutation, Element, ElementTypeId};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
+use dom::element::{AttributeMutation, Element};
+use dom::eventtarget::EventTarget;
use dom::htmlcollection::{CollectionFilter, HTMLCollection};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
+use dom::htmlelement::HTMLElement;
use dom::htmlformelement::{FormControl, HTMLFormElement};
-use dom::node::{Node, NodeTypeId, window_from_node};
+use dom::node::{Node, window_from_node};
use dom::validitystate::ValidityState;
use dom::virtualmethods::VirtualMethods;
use util::str::{DOMString, StaticStringVec};
diff --git a/components/script/dom/htmlfontelement.rs b/components/script/dom/htmlfontelement.rs
index 8b30375fbeb..8be5342bd61 100644
--- a/components/script/dom/htmlfontelement.rs
+++ b/components/script/dom/htmlfontelement.rs
@@ -7,13 +7,15 @@ use dom::attr::{Attr, AttrValue};
use dom::bindings::cell::DOMRefCell;
use dom::bindings::codegen::Bindings::HTMLFontElementBinding;
use dom::bindings::codegen::Bindings::HTMLFontElementBinding::HTMLFontElementMethods;
-use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, HTMLFontElementDerived};
+use dom::bindings::codegen::InheritTypes::{ElementCast, ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLFontElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::{AttributeMutation, ElementTypeId, RawLayoutElementHelpers};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::element::{AttributeMutation, RawLayoutElementHelpers};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use dom::virtualmethods::VirtualMethods;
use std::cell::Cell;
use string_cache::Atom;
diff --git a/components/script/dom/htmlformelement.rs b/components/script/dom/htmlformelement.rs
index 2b4edbbdfcb..c0edc91ea69 100644
--- a/components/script/dom/htmlformelement.rs
+++ b/components/script/dom/htmlformelement.rs
@@ -9,25 +9,23 @@ use dom::bindings::codegen::Bindings::HTMLButtonElementBinding::HTMLButtonElemen
use dom::bindings::codegen::Bindings::HTMLFormElementBinding;
use dom::bindings::codegen::Bindings::HTMLFormElementBinding::HTMLFormElementMethods;
use dom::bindings::codegen::Bindings::HTMLInputElementBinding::HTMLInputElementMethods;
-use dom::bindings::codegen::InheritTypes::EventTargetCast;
-use dom::bindings::codegen::InheritTypes::HTMLDataListElementCast;
-use dom::bindings::codegen::InheritTypes::HTMLElementCast;
-use dom::bindings::codegen::InheritTypes::HTMLFormElementCast;
-use dom::bindings::codegen::InheritTypes::HTMLFormElementDerived;
-use dom::bindings::codegen::InheritTypes::HTMLInputElementCast;
-use dom::bindings::codegen::InheritTypes::{ElementBase, ElementCast};
-use dom::bindings::codegen::InheritTypes::{HTMLTextAreaElementCast, NodeCast};
+use dom::bindings::codegen::InheritTypes::{ElementBase, ElementCast, ElementTypeId};
+use dom::bindings::codegen::InheritTypes::{EventTargetCast, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLDataListElementCast, HTMLElementCast};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLFormElementCast};
+use dom::bindings::codegen::InheritTypes::{HTMLFormElementDerived, HTMLInputElementCast};
+use dom::bindings::codegen::InheritTypes::{HTMLTextAreaElementCast, NodeCast, NodeTypeId};
use dom::bindings::global::GlobalRef;
use dom::bindings::js::{Root};
use dom::bindings::utils::Reflectable;
use dom::document::Document;
-use dom::element::{Element, ElementTypeId};
+use dom::element::Element;
use dom::event::{Event, EventBubbles, EventCancelable};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
+use dom::eventtarget::EventTarget;
use dom::htmlbuttonelement::{HTMLButtonElement};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
+use dom::htmlelement::HTMLElement;
use dom::htmlinputelement::HTMLInputElement;
-use dom::node::{Node, NodeTypeId, document_from_node, window_from_node};
+use dom::node::{Node, document_from_node, window_from_node};
use dom::virtualmethods::VirtualMethods;
use hyper::header::ContentType;
use hyper::method::Method;
diff --git a/components/script/dom/htmlframeelement.rs b/components/script/dom/htmlframeelement.rs
index 30acbd99797..c057b854cce 100644
--- a/components/script/dom/htmlframeelement.rs
+++ b/components/script/dom/htmlframeelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLFrameElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLFrameElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLFrameElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmlframesetelement.rs b/components/script/dom/htmlframesetelement.rs
index d665efa13ff..39a474d13d1 100644
--- a/components/script/dom/htmlframesetelement.rs
+++ b/components/script/dom/htmlframesetelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLFrameSetElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLFrameSetElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLFrameSetElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmlheadelement.rs b/components/script/dom/htmlheadelement.rs
index 699821241f1..e19b9fb6508 100644
--- a/components/script/dom/htmlheadelement.rs
+++ b/components/script/dom/htmlheadelement.rs
@@ -3,13 +3,14 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLHeadElementBinding;
-use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLHeadElementDerived};
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLHeadElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use dom::userscripts::load_script;
use dom::virtualmethods::VirtualMethods;
use util::str::DOMString;
diff --git a/components/script/dom/htmlheadingelement.rs b/components/script/dom/htmlheadingelement.rs
index f3c8aed9746..18dd24dc9a5 100644
--- a/components/script/dom/htmlheadingelement.rs
+++ b/components/script/dom/htmlheadingelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLHeadingElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLHeadingElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLHeadingElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[derive(JSTraceable, HeapSizeOf)]
diff --git a/components/script/dom/htmlhrelement.rs b/components/script/dom/htmlhrelement.rs
index 0bd8a9a9ffa..6a7136d31f0 100644
--- a/components/script/dom/htmlhrelement.rs
+++ b/components/script/dom/htmlhrelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLHRElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLHRElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLHRElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmlhtmlelement.rs b/components/script/dom/htmlhtmlelement.rs
index 94b4e58c696..4f8f54e884a 100644
--- a/components/script/dom/htmlhtmlelement.rs
+++ b/components/script/dom/htmlhtmlelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLHtmlElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLHtmlElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLHtmlElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs
index 88ffc7a6981..cd82760d2c5 100644
--- a/components/script/dom/htmliframeelement.rs
+++ b/components/script/dom/htmliframeelement.rs
@@ -6,9 +6,10 @@ use dom::attr::{Attr, AttrHelpersForLayout, AttrValue};
use dom::bindings::codegen::Bindings::HTMLIFrameElementBinding;
use dom::bindings::codegen::Bindings::HTMLIFrameElementBinding::HTMLIFrameElementMethods;
use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
-use dom::bindings::codegen::InheritTypes::HTMLIFrameElementDerived;
-use dom::bindings::codegen::InheritTypes::{ElementCast, EventCast, NodeCast};
-use dom::bindings::codegen::InheritTypes::{EventTargetCast, HTMLElementCast};
+use dom::bindings::codegen::InheritTypes::{ElementCast, ElementTypeId, EventCast};
+use dom::bindings::codegen::InheritTypes::{EventTargetCast, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLIFrameElementDerived, NodeCast, NodeTypeId};
use dom::bindings::conversions::ToJSValConvertible;
use dom::bindings::error::{Error, ErrorResult, Fallible};
use dom::bindings::global::GlobalRef;
@@ -16,10 +17,10 @@ use dom::bindings::js::{Root, LayoutJS};
use dom::bindings::utils::Reflectable;
use dom::customevent::CustomEvent;
use dom::document::Document;
-use dom::element::{self, AttributeMutation, ElementTypeId};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId, window_from_node};
+use dom::element::{self, AttributeMutation};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::{Node, window_from_node};
use dom::urlhelper::UrlHelper;
use dom::virtualmethods::VirtualMethods;
use dom::window::Window;
diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs
index 3a4377b5481..7e1972e54b8 100644
--- a/components/script/dom/htmlimageelement.rs
+++ b/components/script/dom/htmlimageelement.rs
@@ -8,18 +8,20 @@ use dom::bindings::cell::DOMRefCell;
use dom::bindings::codegen::Bindings::HTMLImageElementBinding;
use dom::bindings::codegen::Bindings::HTMLImageElementBinding::HTMLImageElementMethods;
use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
-use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast, NodeCast};
-use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLImageElementDerived};
+use dom::bindings::codegen::InheritTypes::{ElementCast, ElementTypeId};
+use dom::bindings::codegen::InheritTypes::{EventTargetCast, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLImageElementDerived, NodeCast, NodeTypeId};
use dom::bindings::error::Fallible;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::{LayoutJS, Root};
use dom::bindings::refcounted::Trusted;
use dom::document::Document;
-use dom::element::{AttributeMutation, ElementTypeId};
+use dom::element::AttributeMutation;
use dom::event::{Event, EventBubbles, EventCancelable};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeDamage, NodeTypeId, document_from_node, window_from_node};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::{Node, NodeDamage, document_from_node, window_from_node};
use dom::virtualmethods::VirtualMethods;
use ipc_channel::ipc;
use ipc_channel::router::ROUTER;
diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs
index 019514ad29b..647725678be 100644
--- a/components/script/dom/htmlinputelement.rs
+++ b/components/script/dom/htmlinputelement.rs
@@ -11,20 +11,23 @@ use dom::bindings::codegen::Bindings::EventBinding::EventMethods;
use dom::bindings::codegen::Bindings::HTMLInputElementBinding;
use dom::bindings::codegen::Bindings::HTMLInputElementBinding::HTMLInputElementMethods;
use dom::bindings::codegen::Bindings::KeyboardEventBinding::KeyboardEventMethods;
-use dom::bindings::codegen::InheritTypes::KeyboardEventCast;
-use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, HTMLInputElementCast, NodeCast};
-use dom::bindings::codegen::InheritTypes::{EventTargetCast, HTMLFieldSetElementDerived, HTMLInputElementDerived};
+use dom::bindings::codegen::InheritTypes::{ElementCast, ElementTypeId};
+use dom::bindings::codegen::InheritTypes::{EventTargetCast, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLFieldSetElementDerived, HTMLInputElementCast};
+use dom::bindings::codegen::InheritTypes::{HTMLInputElementDerived, KeyboardEventCast};
+use dom::bindings::codegen::InheritTypes::{NodeCast, NodeTypeId};
use dom::bindings::global::GlobalRef;
use dom::bindings::js::{JS, LayoutJS, Root, RootedReference};
use dom::document::Document;
-use dom::element::{AttributeMutation, Element, ElementTypeId, RawLayoutElementHelpers};
+use dom::element::{AttributeMutation, Element, RawLayoutElementHelpers};
use dom::event::{Event, EventBubbles, EventCancelable};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::htmlformelement::{FormControl, FormSubmitter, HTMLFormElement, FormDatum};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::htmlformelement::{FormControl, FormDatum, FormSubmitter, HTMLFormElement};
use dom::htmlformelement::{ResetFrom, SubmittedFrom};
use dom::keyboardevent::KeyboardEvent;
-use dom::node::{Node, NodeDamage, NodeTypeId};
+use dom::node::{Node, NodeDamage};
use dom::node::{document_from_node, window_from_node};
use dom::virtualmethods::VirtualMethods;
use msg::constellation_msg::ConstellationChan;
diff --git a/components/script/dom/htmllabelelement.rs b/components/script/dom/htmllabelelement.rs
index ef0c65cbf38..a2d5653c025 100644
--- a/components/script/dom/htmllabelelement.rs
+++ b/components/script/dom/htmllabelelement.rs
@@ -4,14 +4,14 @@
use dom::bindings::codegen::Bindings::HTMLLabelElementBinding;
use dom::bindings::codegen::Bindings::HTMLLabelElementBinding::HTMLLabelElementMethods;
-use dom::bindings::codegen::InheritTypes::HTMLLabelElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLLabelElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
use dom::htmlformelement::{FormControl, HTMLFormElement};
-use dom::node::{Node, NodeTypeId};
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmllegendelement.rs b/components/script/dom/htmllegendelement.rs
index 492615d4421..3ff1209d42d 100644
--- a/components/script/dom/htmllegendelement.rs
+++ b/components/script/dom/htmllegendelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLLegendElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLLegendElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLLegendElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmllielement.rs b/components/script/dom/htmllielement.rs
index fd10a954787..e9545ae73c9 100644
--- a/components/script/dom/htmllielement.rs
+++ b/components/script/dom/htmllielement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLLIElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLLIElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLLIElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmllinkelement.rs b/components/script/dom/htmllinkelement.rs
index 3188f5c48fe..89747b00f48 100644
--- a/components/script/dom/htmllinkelement.rs
+++ b/components/script/dom/htmllinkelement.rs
@@ -8,19 +8,21 @@ use dom::attr::{Attr, AttrValue};
use dom::bindings::codegen::Bindings::HTMLLinkElementBinding;
use dom::bindings::codegen::Bindings::HTMLLinkElementBinding::HTMLLinkElementMethods;
use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
-use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, NodeCast};
-use dom::bindings::codegen::InheritTypes::{EventTargetCast, HTMLLinkElementDerived};
+use dom::bindings::codegen::InheritTypes::{ElementCast, ElementTypeId};
+use dom::bindings::codegen::InheritTypes::{EventTargetCast, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLLinkElementDerived, NodeCast, NodeTypeId};
use dom::bindings::global::GlobalRef;
use dom::bindings::js::{JS, MutNullableHeap, Root};
use dom::bindings::js::{RootedReference};
use dom::bindings::refcounted::Trusted;
use dom::document::Document;
use dom::domtokenlist::DOMTokenList;
-use dom::element::{AttributeMutation, Element, ElementTypeId};
+use dom::element::{AttributeMutation, Element};
use dom::event::{Event, EventBubbles, EventCancelable};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId, window_from_node};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::{Node, window_from_node};
use dom::virtualmethods::VirtualMethods;
use layout_interface::{LayoutChan, Msg};
use msg::constellation_msg::ConstellationChan;
diff --git a/components/script/dom/htmlmapelement.rs b/components/script/dom/htmlmapelement.rs
index e060a7bf48e..e8a765954cb 100644
--- a/components/script/dom/htmlmapelement.rs
+++ b/components/script/dom/htmlmapelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLMapElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLMapElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLMapElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs
index 8630cf5a745..6ee08046b26 100644
--- a/components/script/dom/htmlmediaelement.rs
+++ b/components/script/dom/htmlmediaelement.rs
@@ -2,12 +2,12 @@
* 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::InheritTypes::HTMLMediaElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLMediaElementDerived};
+use dom::bindings::codegen::InheritTypes::{HTMLMediaElementTypeId, NodeTypeId};
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::NodeTypeId;
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
use util::str::DOMString;
#[dom_struct]
@@ -40,16 +40,3 @@ impl HTMLMediaElement {
&self.htmlelement
}
}
-
-#[derive(Copy, Clone, Debug)]
-pub enum HTMLMediaElementTypeId {
- HTMLAudioElement = 0,
- HTMLVideoElement = 1,
-}
-
-impl PartialEq for HTMLMediaElementTypeId {
- #[inline]
- fn eq(&self, other: &HTMLMediaElementTypeId) -> bool {
- (*self as u8) == (*other as u8)
- }
-}
diff --git a/components/script/dom/htmlmetaelement.rs b/components/script/dom/htmlmetaelement.rs
index d7f4328bbfc..5b2d4c0d868 100644
--- a/components/script/dom/htmlmetaelement.rs
+++ b/components/script/dom/htmlmetaelement.rs
@@ -4,14 +4,14 @@
use dom::bindings::codegen::Bindings::HTMLMetaElementBinding;
use dom::bindings::codegen::Bindings::HTMLMetaElementBinding::HTMLMetaElementMethods;
-use dom::bindings::codegen::InheritTypes::HTMLMetaElementDerived;
-use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, NodeCast};
+use dom::bindings::codegen::InheritTypes::{ElementCast, ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLMetaElementDerived, NodeCast, NodeTypeId};
use dom::bindings::js::{Root, RootedReference};
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId, window_from_node};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::{Node, window_from_node};
use dom::virtualmethods::VirtualMethods;
use layout_interface::{LayoutChan, Msg};
use std::ascii::AsciiExt;
diff --git a/components/script/dom/htmlmeterelement.rs b/components/script/dom/htmlmeterelement.rs
index 8ea70b2ffdd..88a740ed839 100644
--- a/components/script/dom/htmlmeterelement.rs
+++ b/components/script/dom/htmlmeterelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLMeterElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLMeterElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLMeterElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmlmodelement.rs b/components/script/dom/htmlmodelement.rs
index 90f0ebe5103..47e6e441dc6 100644
--- a/components/script/dom/htmlmodelement.rs
+++ b/components/script/dom/htmlmodelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLModElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLModElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLModElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmlobjectelement.rs b/components/script/dom/htmlobjectelement.rs
index f5632c2b63d..82b31f5519c 100644
--- a/components/script/dom/htmlobjectelement.rs
+++ b/components/script/dom/htmlobjectelement.rs
@@ -6,15 +6,16 @@ use dom::attr::Attr;
use dom::bindings::cell::DOMRefCell;
use dom::bindings::codegen::Bindings::HTMLObjectElementBinding;
use dom::bindings::codegen::Bindings::HTMLObjectElementBinding::HTMLObjectElementMethods;
-use dom::bindings::codegen::InheritTypes::HTMLObjectElementDerived;
-use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast};
+use dom::bindings::codegen::InheritTypes::{ElementCast, ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLObjectElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::{AttributeMutation, ElementTypeId};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
+use dom::element::AttributeMutation;
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
use dom::htmlformelement::{FormControl, HTMLFormElement};
-use dom::node::{Node, NodeTypeId, window_from_node};
+use dom::node::{Node, window_from_node};
use dom::validitystate::ValidityState;
use dom::virtualmethods::VirtualMethods;
use net_traits::image::base::Image;
diff --git a/components/script/dom/htmlolistelement.rs b/components/script/dom/htmlolistelement.rs
index 9b1ce403d88..7f26bcdf204 100644
--- a/components/script/dom/htmlolistelement.rs
+++ b/components/script/dom/htmlolistelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLOListElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLOListElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLOListElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmloptgroupelement.rs b/components/script/dom/htmloptgroupelement.rs
index e645e1cfc50..d476b0edaaa 100644
--- a/components/script/dom/htmloptgroupelement.rs
+++ b/components/script/dom/htmloptgroupelement.rs
@@ -5,14 +5,16 @@
use dom::attr::Attr;
use dom::bindings::codegen::Bindings::HTMLOptGroupElementBinding;
use dom::bindings::codegen::Bindings::HTMLOptGroupElementBinding::HTMLOptGroupElementMethods;
-use dom::bindings::codegen::InheritTypes::{HTMLElementCast, NodeCast};
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId};
use dom::bindings::codegen::InheritTypes::{HTMLOptGroupElementDerived, HTMLOptionElementDerived};
+use dom::bindings::codegen::InheritTypes::{NodeCast, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::{AttributeMutation, ElementTypeId};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::element::AttributeMutation;
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use dom::virtualmethods::VirtualMethods;
use util::str::DOMString;
diff --git a/components/script/dom/htmloptionelement.rs b/components/script/dom/htmloptionelement.rs
index 337e307f046..e8d655a2a8f 100644
--- a/components/script/dom/htmloptionelement.rs
+++ b/components/script/dom/htmloptionelement.rs
@@ -7,15 +7,16 @@ use dom::bindings::codegen::Bindings::CharacterDataBinding::CharacterDataMethods
use dom::bindings::codegen::Bindings::HTMLOptionElementBinding;
use dom::bindings::codegen::Bindings::HTMLOptionElementBinding::HTMLOptionElementMethods;
use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
-use dom::bindings::codegen::InheritTypes::{CharacterDataCast, ElementCast, HTMLElementCast, NodeCast, TextDerived};
-use dom::bindings::codegen::InheritTypes::{HTMLOptionElementDerived};
-use dom::bindings::codegen::InheritTypes::{HTMLScriptElementDerived};
+use dom::bindings::codegen::InheritTypes::{CharacterDataCast, ElementCast, ElementTypeId};
+use dom::bindings::codegen::InheritTypes::{EventTargetTypeId, HTMLElementCast, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLOptionElementDerived, HTMLScriptElementDerived};
+use dom::bindings::codegen::InheritTypes::{NodeCast, NodeTypeId, TextDerived};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::{Element, AttributeMutation, ElementTypeId};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::element::{AttributeMutation, Element};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use dom::virtualmethods::VirtualMethods;
use std::cell::Cell;
use util::str::{DOMString, split_html_space_chars, str_join};
diff --git a/components/script/dom/htmloutputelement.rs b/components/script/dom/htmloutputelement.rs
index 44be6050e90..1c57dea6761 100644
--- a/components/script/dom/htmloutputelement.rs
+++ b/components/script/dom/htmloutputelement.rs
@@ -4,14 +4,14 @@
use dom::bindings::codegen::Bindings::HTMLOutputElementBinding;
use dom::bindings::codegen::Bindings::HTMLOutputElementBinding::HTMLOutputElementMethods;
-use dom::bindings::codegen::InheritTypes::HTMLOutputElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLOutputElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
use dom::htmlformelement::{FormControl, HTMLFormElement};
-use dom::node::{Node, NodeTypeId, window_from_node};
+use dom::node::{Node, window_from_node};
use dom::validitystate::ValidityState;
use util::str::DOMString;
diff --git a/components/script/dom/htmlparagraphelement.rs b/components/script/dom/htmlparagraphelement.rs
index abda9483aef..2a383b51f5f 100644
--- a/components/script/dom/htmlparagraphelement.rs
+++ b/components/script/dom/htmlparagraphelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLParagraphElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLParagraphElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLParagraphElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmlparamelement.rs b/components/script/dom/htmlparamelement.rs
index d8a18d3d152..c2cc044c7f7 100644
--- a/components/script/dom/htmlparamelement.rs
+++ b/components/script/dom/htmlparamelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLParamElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLParamElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLParamElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmlpreelement.rs b/components/script/dom/htmlpreelement.rs
index a105f1fd559..57e4943ab5f 100644
--- a/components/script/dom/htmlpreelement.rs
+++ b/components/script/dom/htmlpreelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLPreElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLPreElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLPreElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmlprogresselement.rs b/components/script/dom/htmlprogresselement.rs
index 373d914c97f..bc0e29cbfcf 100644
--- a/components/script/dom/htmlprogresselement.rs
+++ b/components/script/dom/htmlprogresselement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLProgressElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLProgressElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLProgressElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmlquoteelement.rs b/components/script/dom/htmlquoteelement.rs
index 49b5f0853a5..d631ae61525 100644
--- a/components/script/dom/htmlquoteelement.rs
+++ b/components/script/dom/htmlquoteelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLQuoteElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLQuoteElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLQuoteElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs
index 23328eadce5..0718b75658f 100644
--- a/components/script/dom/htmlscriptelement.rs
+++ b/components/script/dom/htmlscriptelement.rs
@@ -10,21 +10,23 @@ use dom::bindings::codegen::Bindings::DocumentBinding::DocumentMethods;
use dom::bindings::codegen::Bindings::HTMLScriptElementBinding;
use dom::bindings::codegen::Bindings::HTMLScriptElementBinding::HTMLScriptElementMethods;
use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
-use dom::bindings::codegen::InheritTypes::EventTargetCast;
-use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, NodeCast};
+use dom::bindings::codegen::InheritTypes::{ElementCast, ElementTypeId};
+use dom::bindings::codegen::InheritTypes::{EventTargetCast, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId};
use dom::bindings::codegen::InheritTypes::{HTMLScriptElementCast, HTMLScriptElementDerived};
+use dom::bindings::codegen::InheritTypes::{NodeCast, NodeTypeId};
use dom::bindings::global::GlobalRef;
use dom::bindings::js::RootedReference;
use dom::bindings::js::{JS, Root};
use dom::bindings::refcounted::Trusted;
use dom::bindings::trace::JSTraceable;
use dom::document::Document;
-use dom::element::{AttributeMutation, ElementCreator, ElementTypeId};
+use dom::element::{AttributeMutation, ElementCreator};
use dom::event::{Event, EventBubbles, EventCancelable};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
use dom::node::{ChildrenMutation, CloneChildrenFlag, Node};
-use dom::node::{NodeTypeId, document_from_node, window_from_node};
+use dom::node::{document_from_node, window_from_node};
use dom::virtualmethods::VirtualMethods;
use dom::window::ScriptHelpers;
use encoding::all::UTF_8;
diff --git a/components/script/dom/htmlselectelement.rs b/components/script/dom/htmlselectelement.rs
index 7be4ba5d118..57a675eb88b 100644
--- a/components/script/dom/htmlselectelement.rs
+++ b/components/script/dom/htmlselectelement.rs
@@ -5,17 +5,19 @@
use dom::attr::{Attr, AttrValue};
use dom::bindings::codegen::Bindings::HTMLSelectElementBinding;
use dom::bindings::codegen::Bindings::HTMLSelectElementBinding::HTMLSelectElementMethods;
-use dom::bindings::codegen::InheritTypes::{HTMLElementCast, NodeCast};
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId};
use dom::bindings::codegen::InheritTypes::{HTMLFieldSetElementDerived, HTMLSelectElementDerived};
+use dom::bindings::codegen::InheritTypes::{NodeCast, NodeTypeId};
use dom::bindings::codegen::UnionTypes::HTMLElementOrLong;
use dom::bindings::codegen::UnionTypes::HTMLOptionElementOrHTMLOptGroupElement;
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::{AttributeMutation, ElementTypeId};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
+use dom::element::AttributeMutation;
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
use dom::htmlformelement::{FormControl, HTMLFormElement};
-use dom::node::{Node, NodeTypeId, window_from_node};
+use dom::node::{Node, window_from_node};
use dom::validitystate::ValidityState;
use dom::virtualmethods::VirtualMethods;
use std::borrow::ToOwned;
diff --git a/components/script/dom/htmlsourceelement.rs b/components/script/dom/htmlsourceelement.rs
index ea6b163c539..bab0df2514a 100644
--- a/components/script/dom/htmlsourceelement.rs
+++ b/components/script/dom/htmlsourceelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLSourceElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLSourceElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLSourceElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmlspanelement.rs b/components/script/dom/htmlspanelement.rs
index e6e2a1f4bcd..729ef747af5 100644
--- a/components/script/dom/htmlspanelement.rs
+++ b/components/script/dom/htmlspanelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLSpanElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLSpanElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLSpanElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmlstyleelement.rs b/components/script/dom/htmlstyleelement.rs
index 91b22e40478..7b41b156f99 100644
--- a/components/script/dom/htmlstyleelement.rs
+++ b/components/script/dom/htmlstyleelement.rs
@@ -5,14 +5,15 @@
use cssparser::Parser as CssParser;
use dom::bindings::codegen::Bindings::HTMLStyleElementBinding;
use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
-use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, HTMLStyleElementDerived, NodeCast};
+use dom::bindings::codegen::InheritTypes::{ElementCast, ElementTypeId};
+use dom::bindings::codegen::InheritTypes::{EventTargetTypeId, HTMLElementCast};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLStyleElementDerived};
+use dom::bindings::codegen::InheritTypes::{NodeCast, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::window_from_node;
-use dom::node::{ChildrenMutation, Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::{ChildrenMutation, Node, window_from_node};
use dom::virtualmethods::VirtualMethods;
use layout_interface::{LayoutChan, Msg};
use style::media_queries::parse_media_query_list;
diff --git a/components/script/dom/htmltablecaptionelement.rs b/components/script/dom/htmltablecaptionelement.rs
index 8c74e526756..4db67a16b9d 100644
--- a/components/script/dom/htmltablecaptionelement.rs
+++ b/components/script/dom/htmltablecaptionelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLTableCaptionElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLTableCaptionElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLTableCaptionElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmltablecellelement.rs b/components/script/dom/htmltablecellelement.rs
index d377d1cee3d..98b41bde6b6 100644
--- a/components/script/dom/htmltablecellelement.rs
+++ b/components/script/dom/htmltablecellelement.rs
@@ -6,16 +6,15 @@ use cssparser::RGBA;
use dom::attr::{Attr, AttrValue};
use dom::bindings::codegen::Bindings::HTMLTableCellElementBinding::HTMLTableCellElementMethods;
use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
-use dom::bindings::codegen::InheritTypes::HTMLElementCast;
-use dom::bindings::codegen::InheritTypes::HTMLTableCellElementDerived;
-use dom::bindings::codegen::InheritTypes::HTMLTableRowElementDerived;
-use dom::bindings::codegen::InheritTypes::NodeCast;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementCast};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLTableCellElementDerived};
+use dom::bindings::codegen::InheritTypes::{HTMLTableCellElementTypeId, HTMLTableRowElementDerived};
+use dom::bindings::codegen::InheritTypes::{NodeCast, NodeTypeId};
use dom::bindings::js::LayoutJS;
use dom::document::Document;
-use dom::element::{AttributeMutation, ElementTypeId};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::NodeTypeId;
+use dom::element::AttributeMutation;
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
use dom::virtualmethods::VirtualMethods;
use std::cell::Cell;
use std::cmp::max;
@@ -24,19 +23,6 @@ use util::str::{self, DOMString, LengthOrPercentageOrAuto};
const DEFAULT_COLSPAN: u32 = 1;
-#[derive(Copy, Clone, Debug)]
-pub enum HTMLTableCellElementTypeId {
- HTMLTableDataCellElement = 0,
- HTMLTableHeaderCellElement = 1,
-}
-
-impl PartialEq for HTMLTableCellElementTypeId {
- #[inline]
- fn eq(&self, other: &HTMLTableCellElementTypeId) -> bool {
- (*self as u8) == (*other as u8)
- }
-}
-
#[dom_struct]
pub struct HTMLTableCellElement {
htmlelement: HTMLElement,
diff --git a/components/script/dom/htmltablecolelement.rs b/components/script/dom/htmltablecolelement.rs
index 45e94518f65..be5bef59513 100644
--- a/components/script/dom/htmltablecolelement.rs
+++ b/components/script/dom/htmltablecolelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLTableColElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLTableColElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLTableColElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmltabledatacellelement.rs b/components/script/dom/htmltabledatacellelement.rs
index 691aad8644a..46f0a4a96a3 100644
--- a/components/script/dom/htmltabledatacellelement.rs
+++ b/components/script/dom/htmltabledatacellelement.rs
@@ -3,14 +3,14 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLTableDataCellElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLTableDataCellElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLTableDataCellElementDerived};
+use dom::bindings::codegen::InheritTypes::{HTMLTableCellElementTypeId, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::HTMLElementTypeId;
-use dom::htmltablecellelement::{HTMLTableCellElement, HTMLTableCellElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmltablecellelement::HTMLTableCellElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmltableelement.rs b/components/script/dom/htmltableelement.rs
index 1308aff4a44..607f3a8ecc9 100644
--- a/components/script/dom/htmltableelement.rs
+++ b/components/script/dom/htmltableelement.rs
@@ -7,17 +7,18 @@ use dom::attr::{Attr, AttrValue};
use dom::bindings::codegen::Bindings::HTMLTableElementBinding;
use dom::bindings::codegen::Bindings::HTMLTableElementBinding::HTMLTableElementMethods;
use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
-use dom::bindings::codegen::InheritTypes::HTMLTableSectionElementDerived;
-use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, HTMLTableCaptionElementCast};
-use dom::bindings::codegen::InheritTypes::{HTMLTableElementDerived, NodeCast};
+use dom::bindings::codegen::InheritTypes::{ElementCast, ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLTableCaptionElementCast, HTMLTableElementDerived};
+use dom::bindings::codegen::InheritTypes::{HTMLTableSectionElementDerived, NodeCast, NodeTypeId};
use dom::bindings::js::{Root, RootedReference};
use dom::document::Document;
-use dom::element::{AttributeMutation, ElementTypeId};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
+use dom::element::AttributeMutation;
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
use dom::htmltablecaptionelement::HTMLTableCaptionElement;
use dom::htmltablesectionelement::HTMLTableSectionElement;
-use dom::node::{Node, NodeTypeId, document_from_node};
+use dom::node::{Node, document_from_node};
use dom::virtualmethods::VirtualMethods;
use std::cell::Cell;
use string_cache::Atom;
diff --git a/components/script/dom/htmltableheadercellelement.rs b/components/script/dom/htmltableheadercellelement.rs
index 579167ebd0b..ff16385d3e5 100644
--- a/components/script/dom/htmltableheadercellelement.rs
+++ b/components/script/dom/htmltableheadercellelement.rs
@@ -3,14 +3,14 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLTableHeaderCellElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLTableHeaderCellElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLTableHeaderCellElementDerived};
+use dom::bindings::codegen::InheritTypes::{HTMLTableCellElementTypeId, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::HTMLElementTypeId;
-use dom::htmltablecellelement::{HTMLTableCellElement, HTMLTableCellElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmltablecellelement::HTMLTableCellElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmltablerowelement.rs b/components/script/dom/htmltablerowelement.rs
index d1cbac2d789..844220f6e0e 100644
--- a/components/script/dom/htmltablerowelement.rs
+++ b/components/script/dom/htmltablerowelement.rs
@@ -6,18 +6,17 @@ use cssparser::RGBA;
use dom::attr::Attr;
use dom::bindings::codegen::Bindings::HTMLTableRowElementBinding::{self, HTMLTableRowElementMethods};
use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
-use dom::bindings::codegen::InheritTypes::HTMLElementCast;
-use dom::bindings::codegen::InheritTypes::HTMLTableDataCellElementDerived;
-use dom::bindings::codegen::InheritTypes::HTMLTableHeaderCellElementDerived;
-use dom::bindings::codegen::InheritTypes::HTMLTableRowElementDerived;
-use dom::bindings::codegen::InheritTypes::NodeCast;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementCast};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLTableDataCellElementDerived};
+use dom::bindings::codegen::InheritTypes::{HTMLTableHeaderCellElementDerived, HTMLTableRowElementDerived};
+use dom::bindings::codegen::InheritTypes::{NodeCast, NodeTypeId};
use dom::bindings::js::{JS, MutNullableHeap, Root, RootedReference};
use dom::document::Document;
-use dom::element::{AttributeMutation, Element, ElementTypeId};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
+use dom::element::{AttributeMutation, Element};
+use dom::eventtarget::EventTarget;
use dom::htmlcollection::{CollectionFilter, HTMLCollection};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId, window_from_node};
+use dom::htmlelement::HTMLElement;
+use dom::node::{Node, window_from_node};
use dom::virtualmethods::VirtualMethods;
use std::cell::Cell;
use util::str::{self, DOMString};
diff --git a/components/script/dom/htmltablesectionelement.rs b/components/script/dom/htmltablesectionelement.rs
index 7afee5d1917..bfe00f54000 100644
--- a/components/script/dom/htmltablesectionelement.rs
+++ b/components/script/dom/htmltablesectionelement.rs
@@ -7,19 +7,19 @@ use dom::attr::Attr;
use dom::bindings::codegen::Bindings::HTMLCollectionBinding::HTMLCollectionMethods;
use dom::bindings::codegen::Bindings::HTMLTableSectionElementBinding::{self, HTMLTableSectionElementMethods};
use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
-use dom::bindings::codegen::InheritTypes::ElementCast;
-use dom::bindings::codegen::InheritTypes::NodeCast;
-use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLTableRowElementDerived, HTMLTableSectionElementDerived};
+use dom::bindings::codegen::InheritTypes::{ElementCast, ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId, HTMLTableRowElementDerived};
+use dom::bindings::codegen::InheritTypes::{HTMLTableSectionElementDerived, NodeCast, NodeTypeId};
use dom::bindings::error::Error;
use dom::bindings::error::{ErrorResult, Fallible};
use dom::bindings::js::{Root, RootedReference};
use dom::document::Document;
-use dom::element::{AttributeMutation, Element, ElementTypeId};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
+use dom::element::{AttributeMutation, Element};
+use dom::eventtarget::EventTarget;
use dom::htmlcollection::{CollectionFilter, HTMLCollection};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
+use dom::htmlelement::HTMLElement;
use dom::htmltablerowelement::HTMLTableRowElement;
-use dom::node::{Node, NodeTypeId, window_from_node};
+use dom::node::{Node, window_from_node};
use dom::virtualmethods::VirtualMethods;
use std::cell::Cell;
use std::iter;
diff --git a/components/script/dom/htmltemplateelement.rs b/components/script/dom/htmltemplateelement.rs
index 0a4aa7b8786..e965d87c6fa 100644
--- a/components/script/dom/htmltemplateelement.rs
+++ b/components/script/dom/htmltemplateelement.rs
@@ -6,15 +6,16 @@ use dom::bindings::codegen::Bindings::DocumentBinding::DocumentMethods;
use dom::bindings::codegen::Bindings::HTMLTemplateElementBinding;
use dom::bindings::codegen::Bindings::HTMLTemplateElementBinding::HTMLTemplateElementMethods;
use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
-use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLTemplateElementCast};
-use dom::bindings::codegen::InheritTypes::{HTMLTemplateElementDerived, NodeCast};
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLTemplateElementCast, HTMLTemplateElementDerived};
+use dom::bindings::codegen::InheritTypes::{NodeCast, NodeTypeId};
use dom::bindings::js::{JS, MutNullableHeap, Root};
use dom::document::Document;
use dom::documentfragment::DocumentFragment;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{CloneChildrenFlag, Node, NodeTypeId, document_from_node};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::{CloneChildrenFlag, Node, document_from_node};
use dom::virtualmethods::VirtualMethods;
use util::str::DOMString;
diff --git a/components/script/dom/htmltextareaelement.rs b/components/script/dom/htmltextareaelement.rs
index 603067728b9..522c88d3063 100644
--- a/components/script/dom/htmltextareaelement.rs
+++ b/components/script/dom/htmltextareaelement.rs
@@ -8,21 +8,23 @@ use dom::bindings::codegen::Bindings::EventBinding::EventMethods;
use dom::bindings::codegen::Bindings::HTMLTextAreaElementBinding;
use dom::bindings::codegen::Bindings::HTMLTextAreaElementBinding::HTMLTextAreaElementMethods;
use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
-use dom::bindings::codegen::InheritTypes::KeyboardEventCast;
-use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast, HTMLElementCast, NodeCast};
-use dom::bindings::codegen::InheritTypes::{HTMLFieldSetElementDerived, HTMLTextAreaElementDerived};
+use dom::bindings::codegen::InheritTypes::{ElementCast, ElementTypeId, EventTargetCast};
+use dom::bindings::codegen::InheritTypes::{EventTargetTypeId, HTMLElementCast};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLFieldSetElementDerived};
+use dom::bindings::codegen::InheritTypes::{HTMLTextAreaElementDerived, KeyboardEventCast};
+use dom::bindings::codegen::InheritTypes::{NodeCast, NodeTypeId};
use dom::bindings::global::GlobalRef;
use dom::bindings::js::{LayoutJS, Root};
use dom::bindings::refcounted::Trusted;
use dom::document::Document;
-use dom::element::{AttributeMutation, ElementTypeId};
+use dom::element::AttributeMutation;
use dom::event::{Event, EventBubbles, EventCancelable};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
use dom::htmlformelement::{FormControl, HTMLFormElement};
use dom::keyboardevent::KeyboardEvent;
use dom::node::{ChildrenMutation, Node, NodeDamage};
-use dom::node::{NodeTypeId, document_from_node, window_from_node};
+use dom::node::{document_from_node, window_from_node};
use dom::virtualmethods::VirtualMethods;
use msg::constellation_msg::ConstellationChan;
use script_task::ScriptTaskEventCategory::InputEvent;
diff --git a/components/script/dom/htmltimeelement.rs b/components/script/dom/htmltimeelement.rs
index 2f1bf7bb5a1..dcc95de29f4 100644
--- a/components/script/dom/htmltimeelement.rs
+++ b/components/script/dom/htmltimeelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLTimeElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLTimeElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLTimeElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmltitleelement.rs b/components/script/dom/htmltitleelement.rs
index 948071bf4b3..6740ff92904 100644
--- a/components/script/dom/htmltitleelement.rs
+++ b/components/script/dom/htmltitleelement.rs
@@ -5,14 +5,15 @@
use dom::bindings::codegen::Bindings::HTMLTitleElementBinding;
use dom::bindings::codegen::Bindings::HTMLTitleElementBinding::HTMLTitleElementMethods;
use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
-use dom::bindings::codegen::InheritTypes::{CharacterDataCast, TextCast};
-use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLTitleElementDerived, NodeCast};
+use dom::bindings::codegen::InheritTypes::{CharacterDataCast, ElementTypeId};
+use dom::bindings::codegen::InheritTypes::{EventTargetTypeId, HTMLElementCast};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLTitleElementDerived};
+use dom::bindings::codegen::InheritTypes::{NodeCast, NodeTypeId, TextCast};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{ChildrenMutation, Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::{ChildrenMutation, Node};
use dom::text::Text;
use dom::virtualmethods::VirtualMethods;
use util::str::DOMString;
diff --git a/components/script/dom/htmltrackelement.rs b/components/script/dom/htmltrackelement.rs
index 63d7efbc630..4de20a0abed 100644
--- a/components/script/dom/htmltrackelement.rs
+++ b/components/script/dom/htmltrackelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLTrackElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLTrackElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLTrackElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmlulistelement.rs b/components/script/dom/htmlulistelement.rs
index a8c6102e5ae..ea3e57d35ec 100644
--- a/components/script/dom/htmlulistelement.rs
+++ b/components/script/dom/htmlulistelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLUListElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLUListElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLUListElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmlunknownelement.rs b/components/script/dom/htmlunknownelement.rs
index 43b0c2834b8..7e4067f3555 100644
--- a/components/script/dom/htmlunknownelement.rs
+++ b/components/script/dom/htmlunknownelement.rs
@@ -3,13 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLUnknownElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLUnknownElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLUnknownElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlelement::HTMLElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmlvideoelement.rs b/components/script/dom/htmlvideoelement.rs
index b97d853b700..20de1a7df35 100644
--- a/components/script/dom/htmlvideoelement.rs
+++ b/components/script/dom/htmlvideoelement.rs
@@ -3,14 +3,14 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLVideoElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLVideoElementDerived;
+use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLMediaElementTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLVideoElementDerived, NodeTypeId};
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::HTMLElementTypeId;
-use dom::htmlmediaelement::{HTMLMediaElement, HTMLMediaElementTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::htmlmediaelement::HTMLMediaElement;
+use dom::node::Node;
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/keyboardevent.rs b/components/script/dom/keyboardevent.rs
index 3b317a3fcfb..c56276ecc8a 100644
--- a/components/script/dom/keyboardevent.rs
+++ b/components/script/dom/keyboardevent.rs
@@ -5,13 +5,14 @@
use dom::bindings::codegen::Bindings::KeyboardEventBinding;
use dom::bindings::codegen::Bindings::KeyboardEventBinding::{KeyboardEventConstants, KeyboardEventMethods};
use dom::bindings::codegen::Bindings::UIEventBinding::UIEventMethods;
-use dom::bindings::codegen::InheritTypes::{EventCast, KeyboardEventDerived, UIEventCast};
+use dom::bindings::codegen::InheritTypes::{EventCast, EventTypeId, KeyboardEventDerived};
+use dom::bindings::codegen::InheritTypes::{UIEventCast, UIEventTypeId};
use dom::bindings::error::Fallible;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::{Root, RootedReference};
use dom::bindings::utils::{Reflectable, reflect_dom_object};
-use dom::event::{Event, EventTypeId};
-use dom::uievent::{UIEvent, UIEventTypeId};
+use dom::event::Event;
+use dom::uievent::UIEvent;
use dom::window::Window;
use msg::constellation_msg;
use msg::constellation_msg::{ALT, CONTROL, SHIFT, SUPER};
@@ -48,7 +49,7 @@ impl KeyboardEventDerived for Event {
impl KeyboardEvent {
fn new_inherited() -> KeyboardEvent {
KeyboardEvent {
- uievent: UIEvent::new_inherited(UIEventTypeId::KeyboardEvent),
+ uievent: UIEvent::new_inherited(),
key: Cell::new(None),
key_string: RefCell::new("".to_owned()),
code: RefCell::new("".to_owned()),
diff --git a/components/script/dom/messageevent.rs b/components/script/dom/messageevent.rs
index d141c649aec..1b0a129f12b 100644
--- a/components/script/dom/messageevent.rs
+++ b/components/script/dom/messageevent.rs
@@ -5,12 +5,12 @@
use dom::bindings::codegen::Bindings::EventBinding::EventMethods;
use dom::bindings::codegen::Bindings::MessageEventBinding;
use dom::bindings::codegen::Bindings::MessageEventBinding::MessageEventMethods;
-use dom::bindings::codegen::InheritTypes::{EventCast, MessageEventDerived};
+use dom::bindings::codegen::InheritTypes::{EventCast, EventTypeId, MessageEventDerived};
use dom::bindings::error::Fallible;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
use dom::bindings::utils::reflect_dom_object;
-use dom::event::{Event, EventTypeId};
+use dom::event::Event;
use dom::eventtarget::EventTarget;
use js::jsapi::{HandleValue, Heap, JSContext};
use js::jsval::JSVal;
@@ -42,7 +42,7 @@ impl MessageEvent {
origin: DOMString,
lastEventId: DOMString) -> Root<MessageEvent> {
let mut ev = box MessageEvent {
- event: Event::new_inherited(EventTypeId::MessageEvent),
+ event: Event::new_inherited(),
data: Heap::default(),
origin: origin,
lastEventId: lastEventId,
diff --git a/components/script/dom/mouseevent.rs b/components/script/dom/mouseevent.rs
index fd316c58e14..7346482598f 100644
--- a/components/script/dom/mouseevent.rs
+++ b/components/script/dom/mouseevent.rs
@@ -5,14 +5,15 @@
use dom::bindings::codegen::Bindings::MouseEventBinding;
use dom::bindings::codegen::Bindings::MouseEventBinding::MouseEventMethods;
use dom::bindings::codegen::Bindings::UIEventBinding::UIEventMethods;
-use dom::bindings::codegen::InheritTypes::{EventCast, MouseEventDerived, UIEventCast};
+use dom::bindings::codegen::InheritTypes::{EventCast, EventTypeId, UIEventCast};
+use dom::bindings::codegen::InheritTypes::{UIEventTypeId, MouseEventDerived};
use dom::bindings::error::Fallible;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::{JS, MutNullableHeap, Root, RootedReference};
use dom::bindings::utils::reflect_dom_object;
-use dom::event::{Event, EventBubbles, EventCancelable, EventTypeId};
+use dom::event::{Event, EventBubbles, EventCancelable};
use dom::eventtarget::EventTarget;
-use dom::uievent::{UIEvent, UIEventTypeId};
+use dom::uievent::UIEvent;
use dom::window::Window;
use std::cell::Cell;
use std::default::Default;
@@ -43,7 +44,7 @@ impl MouseEventDerived for Event {
impl MouseEvent {
fn new_inherited() -> MouseEvent {
MouseEvent {
- uievent: UIEvent::new_inherited(UIEventTypeId::MouseEvent),
+ uievent: UIEvent::new_inherited(),
screen_x: Cell::new(0),
screen_y: Cell::new(0),
client_x: Cell::new(0),
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs
index 9205055cf56..19a4cdafecf 100644
--- a/components/script/dom/node.rs
+++ b/components/script/dom/node.rs
@@ -18,10 +18,13 @@ use dom::bindings::codegen::Bindings::NamedNodeMapBinding::NamedNodeMapMethods;
use dom::bindings::codegen::Bindings::NodeBinding::{NodeConstants, NodeMethods};
use dom::bindings::codegen::Bindings::NodeListBinding::NodeListMethods;
use dom::bindings::codegen::Bindings::ProcessingInstructionBinding::ProcessingInstructionMethods;
-use dom::bindings::codegen::InheritTypes::{CharacterDataCast, DocumentCast, DocumentDerived, DocumentTypeCast};
-use dom::bindings::codegen::InheritTypes::{ElementCast, ElementDerived, EventTargetCast, NodeCast};
-use dom::bindings::codegen::InheritTypes::{HTMLFieldSetElementDerived, HTMLLegendElementDerived};
-use dom::bindings::codegen::InheritTypes::{HTMLOptGroupElementDerived, NodeBase, NodeDerived};
+use dom::bindings::codegen::InheritTypes::{CharacterDataCast, CharacterDataTypeId};
+use dom::bindings::codegen::InheritTypes::{DocumentCast, DocumentDerived, DocumentTypeCast};
+use dom::bindings::codegen::InheritTypes::{ElementCast, ElementDerived, ElementTypeId};
+use dom::bindings::codegen::InheritTypes::{EventTargetCast, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLFieldSetElementDerived};
+use dom::bindings::codegen::InheritTypes::{HTMLLegendElementDerived, HTMLOptGroupElementDerived};
+use dom::bindings::codegen::InheritTypes::{NodeBase, NodeCast, NodeDerived, NodeTypeId};
use dom::bindings::codegen::InheritTypes::{ProcessingInstructionCast, TextCast, TextDerived};
use dom::bindings::codegen::UnionTypes::NodeOrString;
use dom::bindings::conversions;
@@ -33,14 +36,13 @@ use dom::bindings::js::{JS, LayoutJS, MutNullableHeap};
use dom::bindings::trace::JSTraceable;
use dom::bindings::trace::RootedVec;
use dom::bindings::utils::{Reflectable, namespace_from_domstring, reflect_dom_object};
-use dom::characterdata::{CharacterData, CharacterDataTypeId};
+use dom::characterdata::CharacterData;
use dom::comment::Comment;
use dom::document::{Document, DocumentSource, IsHTMLDocument};
use dom::documentfragment::DocumentFragment;
use dom::documenttype::DocumentType;
-use dom::element::{Element, ElementCreator, ElementTypeId};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::HTMLElementTypeId;
+use dom::element::{Element, ElementCreator};
+use dom::eventtarget::EventTarget;
use dom::nodelist::NodeList;
use dom::processinginstruction::ProcessingInstruction;
use dom::text::Text;
@@ -277,17 +279,6 @@ impl LayoutDataRef {
}
}
-/// The different types of nodes.
-#[derive(Copy, Clone, PartialEq, Debug)]
-pub enum NodeTypeId {
- CharacterData(CharacterDataTypeId),
- DocumentType,
- DocumentFragment,
- Document,
- Element(ElementTypeId),
-}
-
-
impl Node {
/// Adds a new child to the end of this node's list of children.
///
@@ -452,7 +443,7 @@ impl Node {
self.flags.get().contains(IS_IN_DOC)
}
- /// Returns the type ID of this node. Fails if this node is borrowed mutably.
+ /// Returns the type ID of this node.
pub fn type_id(&self) -> NodeTypeId {
match *self.eventtarget.type_id() {
EventTargetTypeId::Node(type_id) => type_id,
diff --git a/components/script/dom/processinginstruction.rs b/components/script/dom/processinginstruction.rs
index d3c1e655490..6610352dda1 100644
--- a/components/script/dom/processinginstruction.rs
+++ b/components/script/dom/processinginstruction.rs
@@ -4,12 +4,13 @@
use dom::bindings::codegen::Bindings::ProcessingInstructionBinding;
use dom::bindings::codegen::Bindings::ProcessingInstructionBinding::ProcessingInstructionMethods;
-use dom::bindings::codegen::InheritTypes::ProcessingInstructionDerived;
+use dom::bindings::codegen::InheritTypes::{CharacterDataTypeId, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{NodeTypeId, ProcessingInstructionDerived};
use dom::bindings::js::Root;
-use dom::characterdata::{CharacterData, CharacterDataTypeId};
+use dom::characterdata::CharacterData;
use dom::document::Document;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::node::Node;
use util::str::DOMString;
/// An HTML processing instruction node.
diff --git a/components/script/dom/progressevent.rs b/components/script/dom/progressevent.rs
index 05e0343df24..529fc85a26e 100644
--- a/components/script/dom/progressevent.rs
+++ b/components/script/dom/progressevent.rs
@@ -5,12 +5,12 @@
use dom::bindings::codegen::Bindings::EventBinding::EventMethods;
use dom::bindings::codegen::Bindings::ProgressEventBinding;
use dom::bindings::codegen::Bindings::ProgressEventBinding::ProgressEventMethods;
-use dom::bindings::codegen::InheritTypes::{EventCast, ProgressEventDerived};
+use dom::bindings::codegen::InheritTypes::{EventCast, EventTypeId, ProgressEventDerived};
use dom::bindings::error::Fallible;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
use dom::bindings::utils::reflect_dom_object;
-use dom::event::{Event, EventBubbles, EventCancelable, EventTypeId};
+use dom::event::{Event, EventBubbles, EventCancelable};
use util::str::DOMString;
#[dom_struct]
@@ -30,7 +30,7 @@ impl ProgressEventDerived for Event {
impl ProgressEvent {
fn new_inherited(length_computable: bool, loaded: u64, total: u64) -> ProgressEvent {
ProgressEvent {
- event: Event::new_inherited(EventTypeId::ProgressEvent),
+ event: Event::new_inherited(),
length_computable: length_computable,
loaded: loaded,
total: total
diff --git a/components/script/dom/range.rs b/components/script/dom/range.rs
index ea85eeb6033..0b9a5cc0dbf 100644
--- a/components/script/dom/range.rs
+++ b/components/script/dom/range.rs
@@ -10,15 +10,15 @@ use dom::bindings::codegen::Bindings::RangeBinding::RangeMethods;
use dom::bindings::codegen::Bindings::RangeBinding::{self, RangeConstants};
use dom::bindings::codegen::Bindings::TextBinding::TextMethods;
use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
-use dom::bindings::codegen::InheritTypes::{CharacterDataCast, NodeCast, TextCast, TextDerived};
+use dom::bindings::codegen::InheritTypes::{CharacterDataCast, CharacterDataTypeId};
+use dom::bindings::codegen::InheritTypes::{NodeCast, NodeTypeId, TextCast, TextDerived};
use dom::bindings::error::{Error, ErrorResult, Fallible};
use dom::bindings::global::GlobalRef;
use dom::bindings::js::{JS, Root, RootedReference};
use dom::bindings::utils::{Reflector, reflect_dom_object};
-use dom::characterdata::CharacterDataTypeId;
use dom::document::Document;
use dom::documentfragment::DocumentFragment;
-use dom::node::{Node, NodeTypeId};
+use dom::node::Node;
use std::cell::RefCell;
use std::cmp::{Ord, Ordering, PartialEq, PartialOrd};
use std::rc::Rc;
diff --git a/components/script/dom/storageevent.rs b/components/script/dom/storageevent.rs
index 316ef9b49e6..76e697b2861 100644
--- a/components/script/dom/storageevent.rs
+++ b/components/script/dom/storageevent.rs
@@ -5,12 +5,12 @@
use dom::bindings::codegen::Bindings::EventBinding::{EventMethods};
use dom::bindings::codegen::Bindings::StorageEventBinding;
use dom::bindings::codegen::Bindings::StorageEventBinding::{StorageEventMethods};
-use dom::bindings::codegen::InheritTypes::{EventCast};
+use dom::bindings::codegen::InheritTypes::EventCast;
use dom::bindings::error::Fallible;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::{JS, MutNullableHeap, Root, RootedReference};
use dom::bindings::utils::{reflect_dom_object};
-use dom::event::{Event, EventBubbles, EventCancelable, EventTypeId};
+use dom::event::{Event, EventBubbles, EventCancelable};
use dom::storage::Storage;
use util::str::DOMString;
@@ -26,14 +26,13 @@ pub struct StorageEvent {
impl StorageEvent {
- pub fn new_inherited(type_id: EventTypeId,
- key: Option<DOMString>,
+ pub fn new_inherited(key: Option<DOMString>,
oldValue: Option<DOMString>,
newValue: Option<DOMString>,
url: DOMString,
storageArea: Option<&Storage>) -> StorageEvent {
StorageEvent {
- event: Event::new_inherited(type_id),
+ event: Event::new_inherited(),
key: key,
oldValue: oldValue,
newValue: newValue,
@@ -51,8 +50,7 @@ impl StorageEvent {
newValue: Option<DOMString>,
url: DOMString,
storageArea: Option<&Storage>) -> Root<StorageEvent> {
- let ev = reflect_dom_object(box StorageEvent::new_inherited(EventTypeId::StorageEvent,
- key, oldValue, newValue,
+ let ev = reflect_dom_object(box StorageEvent::new_inherited(key, oldValue, newValue,
url, storageArea),
global,
StorageEventBinding::Wrap);
diff --git a/components/script/dom/text.rs b/components/script/dom/text.rs
index 2eac167ca51..264eaf48816 100644
--- a/components/script/dom/text.rs
+++ b/components/script/dom/text.rs
@@ -7,16 +7,17 @@ use dom::bindings::codegen::Bindings::DocumentBinding::DocumentMethods;
use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
use dom::bindings::codegen::Bindings::TextBinding::{self, TextMethods};
use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
-use dom::bindings::codegen::InheritTypes::NodeCast;
-use dom::bindings::codegen::InheritTypes::{CharacterDataCast, TextDerived};
+use dom::bindings::codegen::InheritTypes::{CharacterDataCast, CharacterDataTypeId};
+use dom::bindings::codegen::InheritTypes::{EventTargetTypeId, NodeCast};
+use dom::bindings::codegen::InheritTypes::{NodeTypeId, TextDerived};
use dom::bindings::error::{Error, Fallible};
use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
use dom::bindings::js::{RootedReference};
-use dom::characterdata::{CharacterData, CharacterDataTypeId};
+use dom::characterdata::CharacterData;
use dom::document::Document;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::node::{Node, NodeTypeId};
+use dom::eventtarget::EventTarget;
+use dom::node::Node;
use util::str::DOMString;
/// An HTML text node.
diff --git a/components/script/dom/uievent.rs b/components/script/dom/uievent.rs
index 4c85e7a16f9..7ae21211616 100644
--- a/components/script/dom/uievent.rs
+++ b/components/script/dom/uievent.rs
@@ -5,25 +5,18 @@
use dom::bindings::codegen::Bindings::EventBinding::EventMethods;
use dom::bindings::codegen::Bindings::UIEventBinding;
use dom::bindings::codegen::Bindings::UIEventBinding::UIEventMethods;
-use dom::bindings::codegen::InheritTypes::{EventCast, UIEventDerived};
+use dom::bindings::codegen::InheritTypes::{EventCast, EventTypeId, UIEventDerived};
use dom::bindings::error::Fallible;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
use dom::bindings::js::{JS, MutNullableHeap, RootedReference};
use dom::bindings::utils::reflect_dom_object;
-use dom::event::{Event, EventBubbles, EventCancelable, EventTypeId};
+use dom::event::{Event, EventBubbles, EventCancelable};
use dom::window::Window;
use std::cell::Cell;
use std::default::Default;
use util::str::DOMString;
-#[derive(JSTraceable, PartialEq, HeapSizeOf)]
-pub enum UIEventTypeId {
- MouseEvent,
- KeyboardEvent,
- UIEvent,
-}
-
// https://dvcs.w3.org/hg/dom3events/raw-file/tip/html/DOM3-Events.html#interface-UIEvent
#[dom_struct]
pub struct UIEvent {
@@ -42,16 +35,16 @@ impl UIEventDerived for Event {
}
impl UIEvent {
- pub fn new_inherited(type_id: UIEventTypeId) -> UIEvent {
+ pub fn new_inherited() -> UIEvent {
UIEvent {
- event: Event::new_inherited(EventTypeId::UIEvent(type_id)),
+ event: Event::new_inherited(),
view: Default::default(),
detail: Cell::new(0),
}
}
pub fn new_uninitialized(window: &Window) -> Root<UIEvent> {
- reflect_dom_object(box UIEvent::new_inherited(UIEventTypeId::UIEvent),
+ reflect_dom_object(box UIEvent::new_inherited(),
GlobalRef::Window(window),
UIEventBinding::Wrap)
}
diff --git a/components/script/dom/virtualmethods.rs b/components/script/dom/virtualmethods.rs
index 49d5ae8670d..5c990e8a1de 100644
--- a/components/script/dom/virtualmethods.rs
+++ b/components/script/dom/virtualmethods.rs
@@ -4,6 +4,7 @@
use dom::attr::{Attr, AttrValue};
use dom::bindings::codegen::InheritTypes::ElementCast;
+use dom::bindings::codegen::InheritTypes::ElementTypeId;
use dom::bindings::codegen::InheritTypes::HTMLAnchorElementCast;
use dom::bindings::codegen::InheritTypes::HTMLAppletElementCast;
use dom::bindings::codegen::InheritTypes::HTMLAreaElementCast;
@@ -12,6 +13,7 @@ use dom::bindings::codegen::InheritTypes::HTMLBodyElementCast;
use dom::bindings::codegen::InheritTypes::HTMLButtonElementCast;
use dom::bindings::codegen::InheritTypes::HTMLCanvasElementCast;
use dom::bindings::codegen::InheritTypes::HTMLElementCast;
+use dom::bindings::codegen::InheritTypes::HTMLElementTypeId;
use dom::bindings::codegen::InheritTypes::HTMLFieldSetElementCast;
use dom::bindings::codegen::InheritTypes::HTMLFontElementCast;
use dom::bindings::codegen::InheritTypes::HTMLFormElementCast;
@@ -34,11 +36,10 @@ use dom::bindings::codegen::InheritTypes::HTMLTableSectionElementCast;
use dom::bindings::codegen::InheritTypes::HTMLTemplateElementCast;
use dom::bindings::codegen::InheritTypes::HTMLTextAreaElementCast;
use dom::bindings::codegen::InheritTypes::HTMLTitleElementCast;
+use dom::bindings::codegen::InheritTypes::NodeTypeId;
use dom::document::Document;
-use dom::element::{AttributeMutation, ElementTypeId};
+use dom::element::AttributeMutation;
use dom::event::Event;
-use dom::htmlelement::HTMLElementTypeId;
-use dom::node::NodeTypeId;
use dom::node::{ChildrenMutation, CloneChildrenFlag, Node};
use string_cache::Atom;
use util::str::DOMString;
diff --git a/components/script/dom/webglcontextevent.rs b/components/script/dom/webglcontextevent.rs
index 2eed623c44d..52e3d4cdb3d 100644
--- a/components/script/dom/webglcontextevent.rs
+++ b/components/script/dom/webglcontextevent.rs
@@ -6,12 +6,12 @@ use dom::bindings::codegen::Bindings::EventBinding::EventMethods;
use dom::bindings::codegen::Bindings::WebGLContextEventBinding;
use dom::bindings::codegen::Bindings::WebGLContextEventBinding::WebGLContextEventInit;
use dom::bindings::codegen::Bindings::WebGLContextEventBinding::WebGLContextEventMethods;
-use dom::bindings::codegen::InheritTypes::{WebGLContextEventDerived, EventCast};
+use dom::bindings::codegen::InheritTypes::{EventCast, EventTypeId, WebGLContextEventDerived};
use dom::bindings::error::Fallible;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::{Root, RootedReference};
use dom::bindings::utils::reflect_dom_object;
-use dom::event::{Event, EventBubbles, EventCancelable, EventTypeId};
+use dom::event::{Event, EventBubbles, EventCancelable};
use util::str::DOMString;
#[dom_struct]
@@ -34,9 +34,9 @@ impl WebGLContextEventDerived for Event {
}
impl WebGLContextEvent {
- pub fn new_inherited(type_id: EventTypeId, status_message: DOMString) -> WebGLContextEvent {
+ pub fn new_inherited(status_message: DOMString) -> WebGLContextEvent {
WebGLContextEvent {
- event: Event::new_inherited(type_id),
+ event: Event::new_inherited(),
status_message: status_message,
}
}
@@ -47,7 +47,7 @@ impl WebGLContextEvent {
cancelable: EventCancelable,
status_message: DOMString) -> Root<WebGLContextEvent> {
let event = reflect_dom_object(
- box WebGLContextEvent::new_inherited(EventTypeId::WebGLContextEvent, status_message),
+ box WebGLContextEvent::new_inherited(status_message),
global,
WebGLContextEventBinding::Wrap);
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs
index eeed5508ed2..c4d04b3ec1c 100644
--- a/components/script/dom/window.rs
+++ b/components/script/dom/window.rs
@@ -11,7 +11,8 @@ use dom::bindings::codegen::Bindings::EventHandlerBinding::{EventHandlerNonNull,
use dom::bindings::codegen::Bindings::FunctionBinding::Function;
use dom::bindings::codegen::Bindings::WindowBinding::{ScrollBehavior, ScrollToOptions};
use dom::bindings::codegen::Bindings::WindowBinding::{self, FrameRequestCallback, WindowMethods};
-use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast, NodeCast, WindowDerived};
+use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast};
+use dom::bindings::codegen::InheritTypes::{EventTargetTypeId, NodeCast, WindowDerived};
use dom::bindings::error::{Error, Fallible, report_pending_exception};
use dom::bindings::global::GlobalRef;
use dom::bindings::global::global_object_for_js_object;
@@ -25,7 +26,7 @@ use dom::crypto::Crypto;
use dom::cssstyledeclaration::{CSSModificationAccess, CSSStyleDeclaration};
use dom::document::Document;
use dom::element::Element;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
+use dom::eventtarget::EventTarget;
use dom::location::Location;
use dom::navigator::Navigator;
use dom::node::{TrustedNodeAddress, from_untrusted_node_address, window_from_node};
diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs
index bbccefab2fa..cbe1551f339 100644
--- a/components/script/dom/xmlhttprequest.rs
+++ b/components/script/dom/xmlhttprequest.rs
@@ -10,7 +10,8 @@ use dom::bindings::codegen::Bindings::XMLHttpRequestBinding;
use dom::bindings::codegen::Bindings::XMLHttpRequestBinding::XMLHttpRequestMethods;
use dom::bindings::codegen::Bindings::XMLHttpRequestBinding::XMLHttpRequestResponseType;
use dom::bindings::codegen::Bindings::XMLHttpRequestBinding::XMLHttpRequestResponseType::{Json, Text, _empty};
-use dom::bindings::codegen::InheritTypes::{EventCast, EventTargetCast, XMLHttpRequestDerived};
+use dom::bindings::codegen::InheritTypes::{EventCast, EventTargetCast, EventTargetTypeId};
+use dom::bindings::codegen::InheritTypes::{XMLHttpRequestDerived, XMLHttpRequestEventTargetTypeId};
use dom::bindings::codegen::UnionTypes::StringOrURLSearchParams;
use dom::bindings::codegen::UnionTypes::StringOrURLSearchParams::{eString, eURLSearchParams};
use dom::bindings::conversions::ToJSValConvertible;
@@ -23,10 +24,9 @@ use dom::bindings::str::ByteString;
use dom::bindings::utils::{Reflectable, reflect_dom_object};
use dom::document::Document;
use dom::event::{Event, EventBubbles, EventCancelable};
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
+use dom::eventtarget::EventTarget;
use dom::progressevent::ProgressEvent;
use dom::xmlhttprequesteventtarget::XMLHttpRequestEventTarget;
-use dom::xmlhttprequesteventtarget::XMLHttpRequestEventTargetTypeId;
use dom::xmlhttprequestupload::XMLHttpRequestUpload;
use encoding::all::UTF_8;
use encoding::label::encoding_from_whatwg_label;
diff --git a/components/script/dom/xmlhttprequesteventtarget.rs b/components/script/dom/xmlhttprequesteventtarget.rs
index 66dcb5f8211..257e4392132 100644
--- a/components/script/dom/xmlhttprequesteventtarget.rs
+++ b/components/script/dom/xmlhttprequesteventtarget.rs
@@ -5,14 +5,8 @@
use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull;
use dom::bindings::codegen::Bindings::XMLHttpRequestEventTargetBinding::XMLHttpRequestEventTargetMethods;
use dom::bindings::codegen::InheritTypes::EventTargetCast;
-use dom::bindings::codegen::InheritTypes::XMLHttpRequestEventTargetDerived;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-
-#[derive(Copy, Clone, PartialEq)]
-pub enum XMLHttpRequestEventTargetTypeId {
- XMLHttpRequest,
- XMLHttpRequestUpload,
-}
+use dom::bindings::codegen::InheritTypes::{EventTargetTypeId, XMLHttpRequestEventTargetDerived};
+use dom::eventtarget::EventTarget;
#[dom_struct]
pub struct XMLHttpRequestEventTarget {
diff --git a/components/script/dom/xmlhttprequestupload.rs b/components/script/dom/xmlhttprequestupload.rs
index c7d4d4d4ca3..2456d1079a5 100644
--- a/components/script/dom/xmlhttprequestupload.rs
+++ b/components/script/dom/xmlhttprequestupload.rs
@@ -3,13 +3,14 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::XMLHttpRequestUploadBinding;
+use dom::bindings::codegen::InheritTypes::EventTargetTypeId;
+use dom::bindings::codegen::InheritTypes::XMLHttpRequestEventTargetTypeId;
use dom::bindings::codegen::InheritTypes::XMLHttpRequestUploadDerived;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
use dom::bindings::utils::reflect_dom_object;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
+use dom::eventtarget::EventTarget;
use dom::xmlhttprequesteventtarget::XMLHttpRequestEventTarget;
-use dom::xmlhttprequesteventtarget::XMLHttpRequestEventTargetTypeId;
#[dom_struct]
pub struct XMLHttpRequestUpload {
diff --git a/components/script/mem.rs b/components/script/mem.rs
index 51eaa9359df..039b33f24a9 100644
--- a/components/script/mem.rs
+++ b/components/script/mem.rs
@@ -5,14 +5,7 @@
//! Routines for handling measuring the memory usage of arbitrary DOM nodes.
use dom::bindings::codegen::InheritTypes::*;
-use dom::element::ElementTypeId;
-use dom::eventtarget::{EventTarget, EventTargetTypeId};
-use dom::htmlelement::HTMLElementTypeId;
-use dom::htmlmediaelement::HTMLMediaElementTypeId::HTMLAudioElement;
-use dom::htmlmediaelement::HTMLMediaElementTypeId::HTMLVideoElement;
-use dom::htmltablecellelement::HTMLTableCellElementTypeId::HTMLTableDataCellElement;
-use dom::htmltablecellelement::HTMLTableCellElementTypeId::HTMLTableHeaderCellElement;
-use dom::node::NodeTypeId;
+use dom::eventtarget::EventTarget;
use libc;
use util::mem::{HeapSizeOf, heap_size_of};
@@ -137,10 +130,10 @@ pub fn heap_size_of_eventtarget(target: &EventTarget) -> usize {
ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLMapElement))) =>
heap_size_of_self_and_children(HTMLMapElementCast::to_ref(target).unwrap()),
EventTargetTypeId::Node(NodeTypeId::Element(ElementTypeId::HTMLElement(
- HTMLElementTypeId::HTMLMediaElement(HTMLAudioElement)))) =>
+ HTMLElementTypeId::HTMLMediaElement(HTMLMediaElementTypeId::HTMLAudioElement)))) =>
heap_size_of_self_and_children(HTMLAudioElementCast::to_ref(target).unwrap()),
EventTargetTypeId::Node(NodeTypeId::Element(ElementTypeId::HTMLElement(
- HTMLElementTypeId::HTMLMediaElement(HTMLVideoElement)))) =>
+ HTMLElementTypeId::HTMLMediaElement(HTMLMediaElementTypeId::HTMLVideoElement)))) =>
heap_size_of_self_and_children(HTMLVideoElementCast::to_ref(target).unwrap()),
EventTargetTypeId::Node(NodeTypeId::Element(
ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLMetaElement))) =>
@@ -203,10 +196,10 @@ pub fn heap_size_of_eventtarget(target: &EventTarget) -> usize {
ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTableCaptionElement))) =>
heap_size_of_self_and_children(HTMLTableCaptionElementCast::to_ref(target).unwrap()),
EventTargetTypeId::Node(NodeTypeId::Element(ElementTypeId::HTMLElement(
- HTMLElementTypeId::HTMLTableCellElement(HTMLTableDataCellElement)))) =>
+ HTMLElementTypeId::HTMLTableCellElement(HTMLTableCellElementTypeId::HTMLTableDataCellElement)))) =>
heap_size_of_self_and_children(HTMLTableDataCellElementCast::to_ref(target).unwrap()),
EventTargetTypeId::Node(NodeTypeId::Element(ElementTypeId::HTMLElement(
- HTMLElementTypeId::HTMLTableCellElement(HTMLTableHeaderCellElement)))) =>
+ HTMLElementTypeId::HTMLTableCellElement(HTMLTableCellElementTypeId::HTMLTableHeaderCellElement)))) =>
heap_size_of_self_and_children(HTMLTableHeaderCellElementCast::to_ref(target).unwrap()),
EventTargetTypeId::Node(NodeTypeId::Element(
ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTableColElement))) =>
diff --git a/components/script/parse/html.rs b/components/script/parse/html.rs
index 3972fba7a3d..239198a55d2 100644
--- a/components/script/parse/html.rs
+++ b/components/script/parse/html.rs
@@ -8,20 +8,20 @@ use document_loader::DocumentLoader;
use dom::bindings::codegen::Bindings::DocumentBinding::DocumentMethods;
use dom::bindings::codegen::Bindings::HTMLTemplateElementBinding::HTMLTemplateElementMethods;
use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
-use dom::bindings::codegen::InheritTypes::{CharacterDataCast, DocumentTypeCast};
-use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLFormElementDerived};
-use dom::bindings::codegen::InheritTypes::{HTMLScriptElementCast, HTMLTemplateElementCast};
-use dom::bindings::codegen::InheritTypes::{NodeCast, ProcessingInstructionCast};
+use dom::bindings::codegen::InheritTypes::{CharacterDataCast, CharacterDataTypeId};
+use dom::bindings::codegen::InheritTypes::{DocumentTypeCast, ElementCast};
+use dom::bindings::codegen::InheritTypes::{HTMLFormElementDerived, HTMLScriptElementCast};
+use dom::bindings::codegen::InheritTypes::{HTMLTemplateElementCast, NodeCast};
+use dom::bindings::codegen::InheritTypes::{NodeTypeId, ProcessingInstructionCast};
use dom::bindings::js::{JS, Root};
use dom::bindings::js::{RootedReference};
-use dom::characterdata::CharacterDataTypeId;
use dom::comment::Comment;
use dom::document::Document;
use dom::document::{DocumentSource, IsHTMLDocument};
use dom::documenttype::DocumentType;
use dom::element::{Element, ElementCreator};
use dom::htmlscriptelement::HTMLScriptElement;
-use dom::node::{Node, NodeTypeId};
+use dom::node::Node;
use dom::node::{document_from_node, window_from_node};
use dom::servohtmlparser;
use dom::servohtmlparser::{FragmentContext, ServoHTMLParser};