From 617fc08783d2356e644266d9e9addcd720a7138a Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Sun, 27 Sep 2015 17:52:37 +0200 Subject: [PATCH 1/2] Generate all Derived implementations in codegen --- .../dom/bindings/codegen/CodegenRust.py | 25 ++++++++++++++++++- components/script/dom/blob.rs | 7 ------ components/script/dom/characterdata.rs | 13 +--------- components/script/dom/comment.rs | 10 +------- components/script/dom/customevent.rs | 8 +----- .../script/dom/dedicatedworkerglobalscope.rs | 14 +---------- components/script/dom/document.rs | 8 +----- components/script/dom/documentfragment.rs | 10 +------- components/script/dom/documenttype.rs | 8 ------ components/script/dom/element.rs | 14 +---------- components/script/dom/errorevent.rs | 8 +----- components/script/dom/htmlanchorelement.rs | 13 ++-------- components/script/dom/htmlappletelement.rs | 13 +--------- components/script/dom/htmlareaelement.rs | 13 +--------- components/script/dom/htmlaudioelement.rs | 14 +---------- components/script/dom/htmlbaseelement.rs | 13 +--------- components/script/dom/htmlbodyelement.rs | 14 ++--------- components/script/dom/htmlbrelement.rs | 12 +-------- components/script/dom/htmlbuttonelement.rs | 13 ++-------- components/script/dom/htmlcanvaselement.rs | 13 +--------- components/script/dom/htmldataelement.rs | 12 +-------- components/script/dom/htmldatalistelement.rs | 13 +--------- components/script/dom/htmldialogelement.rs | 12 +-------- components/script/dom/htmldirectoryelement.rs | 12 +-------- components/script/dom/htmldivelement.rs | 12 +-------- components/script/dom/htmldlistelement.rs | 12 +-------- components/script/dom/htmlelement.rs | 13 +--------- components/script/dom/htmlembedelement.rs | 12 +-------- components/script/dom/htmlfieldsetelement.rs | 15 +++-------- components/script/dom/htmlfontelement.rs | 12 +-------- components/script/dom/htmlformelement.rs | 17 +++---------- components/script/dom/htmlframeelement.rs | 12 +-------- components/script/dom/htmlframesetelement.rs | 12 +-------- components/script/dom/htmlheadelement.rs | 11 -------- components/script/dom/htmlheadingelement.rs | 12 +-------- components/script/dom/htmlhrelement.rs | 12 +-------- components/script/dom/htmlhtmlelement.rs | 12 +-------- components/script/dom/htmliframeelement.rs | 18 +++---------- components/script/dom/htmlimageelement.rs | 16 ++---------- components/script/dom/htmlinputelement.rs | 14 ++--------- components/script/dom/htmllabelelement.rs | 12 +-------- components/script/dom/htmllegendelement.rs | 12 +-------- components/script/dom/htmllielement.rs | 12 +-------- components/script/dom/htmllinkelement.rs | 15 ++--------- components/script/dom/htmlmapelement.rs | 12 +-------- components/script/dom/htmlmediaelement.rs | 15 +---------- components/script/dom/htmlmetaelement.rs | 14 ++--------- components/script/dom/htmlmeterelement.rs | 12 +-------- components/script/dom/htmlmodelement.rs | 12 +-------- components/script/dom/htmlobjectelement.rs | 13 +--------- components/script/dom/htmlolistelement.rs | 12 +-------- components/script/dom/htmloptgroupelement.rs | 13 +--------- components/script/dom/htmloptionelement.rs | 16 +++--------- components/script/dom/htmloutputelement.rs | 12 +-------- components/script/dom/htmlparagraphelement.rs | 12 +-------- components/script/dom/htmlparamelement.rs | 12 +-------- components/script/dom/htmlpreelement.rs | 12 +-------- components/script/dom/htmlprogresselement.rs | 12 +-------- components/script/dom/htmlquoteelement.rs | 12 +-------- components/script/dom/htmlscriptelement.rs | 15 ++--------- components/script/dom/htmlselectelement.rs | 13 +--------- components/script/dom/htmlsourceelement.rs | 12 +-------- components/script/dom/htmlspanelement.rs | 12 +-------- components/script/dom/htmlstyleelement.rs | 15 ++--------- .../script/dom/htmltablecaptionelement.rs | 12 +-------- components/script/dom/htmltablecellelement.rs | 18 +++---------- components/script/dom/htmltablecolelement.rs | 12 +-------- .../script/dom/htmltabledatacellelement.rs | 14 +---------- components/script/dom/htmltableelement.rs | 16 +++--------- .../script/dom/htmltableheadercellelement.rs | 14 +---------- components/script/dom/htmltablerowelement.rs | 15 ++--------- .../script/dom/htmltablesectionelement.rs | 14 ++--------- components/script/dom/htmltemplateelement.rs | 13 +--------- components/script/dom/htmltextareaelement.rs | 15 ++--------- components/script/dom/htmltimeelement.rs | 12 +-------- components/script/dom/htmltitleelement.rs | 15 ++--------- components/script/dom/htmltrackelement.rs | 12 +-------- components/script/dom/htmlulistelement.rs | 12 +-------- components/script/dom/htmlunknownelement.rs | 12 +-------- components/script/dom/htmlvideoelement.rs | 14 +---------- components/script/dom/keyboardevent.rs | 10 +------- components/script/dom/messageevent.rs | 8 +----- components/script/dom/mouseevent.rs | 9 +------ components/script/dom/node.rs | 11 +------- .../script/dom/processinginstruction.rs | 11 +------- components/script/dom/progressevent.rs | 8 +----- components/script/dom/text.rs | 10 +------- components/script/dom/uievent.rs | 11 +------- components/script/dom/webglcontextevent.rs | 8 +----- components/script/dom/window.rs | 9 +------ components/script/dom/xmlhttprequest.rs | 14 +---------- .../script/dom/xmlhttprequesteventtarget.rs | 11 -------- components/script/dom/xmlhttprequestupload.rs | 11 -------- 93 files changed, 137 insertions(+), 1027 deletions(-) diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index 00df29230c35..163c59de95e7 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -5880,6 +5880,20 @@ def InheritTypes(config): hierarchy[descriptor.getParentName()].append(name) # Define a `FooDerived` trait for superclasses to implement, # as well as the `FooCast::to_*` methods that use it. + baseName = descriptor.prototypeChain[0] + typeIdPat = descriptor.prototypeChain[-1] + if upcast: + typeIdPat += "(_)" + for base in reversed(descriptor.prototypeChain[1:-1]): + typeIdPat = "%s(%sTypeId::%s)" % (base, base, typeIdPat) + typeIdPat = "%sTypeId::%s" % (baseName, typeIdPat) + args = { + 'baseName': baseName, + 'derivedTrait': name + 'Derived', + 'methodName': 'is_' + name.lower(), + 'name': name, + 'typeIdPat': typeIdPat, + } allprotos.append(CGGeneric("""\ /// Types which `%(name)s` derives from pub trait %(derivedTrait)s: Sized { @@ -5917,7 +5931,16 @@ def InheritTypes(config): } } -""" % {'derivedTrait': name + 'Derived', 'name': name, 'methodName': 'is_' + name.lower()})) +impl %(derivedTrait)s for %(baseName)s { + fn %(methodName)s(&self) -> bool { + match *self.type_id() { + %(typeIdPat)s => true, + _ => false, + } + } +} + +""" % args)) # Implement the `FooDerived` trait for non-root superclasses by deferring to # the direct superclass. This leaves the implementation of the `FooDerived` diff --git a/components/script/dom/blob.rs b/components/script/dom/blob.rs index a8a5f56f02ea..efbf1abbc150 100644 --- a/components/script/dom/blob.rs +++ b/components/script/dom/blob.rs @@ -4,7 +4,6 @@ use dom::bindings::codegen::Bindings::BlobBinding; use dom::bindings::codegen::Bindings::BlobBinding::BlobMethods; -use dom::bindings::codegen::InheritTypes::{BlobTypeId, FileDerived}; use dom::bindings::error::Fallible; use dom::bindings::global::{GlobalField, GlobalRef}; use dom::bindings::js::Root; @@ -157,9 +156,3 @@ impl BlobMethods for Blob { } } - -impl FileDerived for Blob { - fn is_file(&self) -> bool { - *self.type_id() == BlobTypeId::File - } -} diff --git a/components/script/dom/characterdata.rs b/components/script/dom/characterdata.rs index dbb2356d8a00..0ab605f5dd2a 100644 --- a/components/script/dom/characterdata.rs +++ b/components/script/dom/characterdata.rs @@ -6,15 +6,13 @@ use dom::bindings::cell::DOMRefCell; use dom::bindings::codegen::Bindings::CharacterDataBinding::CharacterDataMethods; -use dom::bindings::codegen::InheritTypes::{CharacterDataDerived, CharacterDataTypeId}; -use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetTypeId}; +use dom::bindings::codegen::InheritTypes::{CharacterDataTypeId, ElementCast}; 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; use dom::node::{Node, NodeDamage}; use std::borrow::ToOwned; use std::cell::Ref; @@ -27,15 +25,6 @@ pub struct CharacterData { data: DOMRefCell, } -impl CharacterDataDerived for EventTarget { - fn is_characterdata(&self) -> bool { - match *self.type_id() { - EventTargetTypeId::Node(NodeTypeId::CharacterData(_)) => true, - _ => false - } - } -} - impl CharacterData { pub fn new_inherited(id: CharacterDataTypeId, data: DOMString, document: &Document) -> CharacterData { CharacterData { diff --git a/components/script/dom/comment.rs b/components/script/dom/comment.rs index 269a8350b0cc..fc0982a4e367 100644 --- a/components/script/dom/comment.rs +++ b/components/script/dom/comment.rs @@ -4,14 +4,12 @@ use dom::bindings::codegen::Bindings::CommentBinding; use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods; -use dom::bindings::codegen::InheritTypes::{CharacterDataTypeId, CommentDerived}; -use dom::bindings::codegen::InheritTypes::{EventTargetTypeId, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::CharacterDataTypeId; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::Root; use dom::characterdata::CharacterData; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::node::Node; use util::str::DOMString; @@ -21,12 +19,6 @@ pub struct Comment { characterdata: CharacterData, } -impl CommentDerived for EventTarget { - fn is_comment(&self) -> bool { - *self.type_id() == EventTargetTypeId::Node(NodeTypeId::CharacterData(CharacterDataTypeId::Comment)) - } -} - impl Comment { fn new_inherited(text: DOMString, document: &Document) -> Comment { Comment { diff --git a/components/script/dom/customevent.rs b/components/script/dom/customevent.rs index f865d49ebd6f..a01b8d53375c 100644 --- a/components/script/dom/customevent.rs +++ b/components/script/dom/customevent.rs @@ -5,7 +5,7 @@ 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, EventTypeId}; +use dom::bindings::codegen::InheritTypes::EventCast; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::{MutHeapJSVal, Root}; @@ -23,12 +23,6 @@ pub struct CustomEvent { detail: MutHeapJSVal, } -impl CustomEventDerived for Event { - fn is_customevent(&self) -> bool { - *self.type_id() == EventTypeId::CustomEvent - } -} - impl CustomEvent { fn new_inherited() -> CustomEvent { CustomEvent { diff --git a/components/script/dom/dedicatedworkerglobalscope.rs b/components/script/dom/dedicatedworkerglobalscope.rs index 93c66071cb02..1ef9b8d956d5 100644 --- a/components/script/dom/dedicatedworkerglobalscope.rs +++ b/components/script/dom/dedicatedworkerglobalscope.rs @@ -8,16 +8,13 @@ use dom::bindings::cell::DOMRefCell; 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, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{WorkerGlobalScopeCast, WorkerGlobalScopeTypeId}; +use dom::bindings::codegen::InheritTypes::{EventTargetCast, WorkerGlobalScopeCast}; 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; use dom::messageevent::MessageEvent; use dom::worker::{SimpleWorkerErrorHandler, TrustedWorkerAddress, WorkerMessageHandler}; use dom::workerglobalscope::WorkerGlobalScope; @@ -357,12 +354,3 @@ impl DedicatedWorkerGlobalScopeMethods for DedicatedWorkerGlobalScope { // https://html.spec.whatwg.org/multipage/#handler-dedicatedworkerglobalscope-onmessage event_handler!(message, GetOnmessage, SetOnmessage); } - -impl DedicatedWorkerGlobalScopeDerived for EventTarget { - fn is_dedicatedworkerglobalscope(&self) -> bool { - match *self.type_id() { - EventTargetTypeId::WorkerGlobalScope(WorkerGlobalScopeTypeId::DedicatedWorkerGlobalScope) => true, - _ => false - } - } -} diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index 8b6b5d7ea12d..f64c28b77241 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -16,7 +16,7 @@ use dom::bindings::codegen::Bindings::PerformanceBinding::PerformanceMethods; use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods; 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::{EventCast, EventTargetCast}; use dom::bindings::codegen::InheritTypes::{HTMLAnchorElementCast, HTMLAnchorElementDerived}; use dom::bindings::codegen::InheritTypes::{HTMLAppletElementDerived, HTMLAreaElementDerived}; use dom::bindings::codegen::InheritTypes::{HTMLBaseElementCast, HTMLBodyElementCast}; @@ -163,12 +163,6 @@ impl PartialEq for Document { } } -impl DocumentDerived for EventTarget { - fn is_document(&self) -> bool { - *self.type_id() == EventTargetTypeId::Node(NodeTypeId::Document) - } -} - #[derive(JSTraceable, HeapSizeOf)] struct ImagesFilter; impl CollectionFilter for ImagesFilter { diff --git a/components/script/dom/documentfragment.rs b/components/script/dom/documentfragment.rs index 379fe16b0663..9c859aa28ec8 100644 --- a/components/script/dom/documentfragment.rs +++ b/components/script/dom/documentfragment.rs @@ -5,15 +5,13 @@ 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, ElementCast}; -use dom::bindings::codegen::InheritTypes::{EventTargetTypeId, NodeCast, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::{ElementCast, 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; use dom::htmlcollection::HTMLCollection; use dom::node::{Node, window_from_node}; use dom::nodelist::NodeList; @@ -26,12 +24,6 @@ pub struct DocumentFragment { node: Node, } -impl DocumentFragmentDerived for EventTarget { - fn is_documentfragment(&self) -> bool { - *self.type_id() == EventTargetTypeId::Node(NodeTypeId::DocumentFragment) - } -} - impl DocumentFragment { /// Creates a new DocumentFragment. fn new_inherited(document: &Document) -> DocumentFragment { diff --git a/components/script/dom/documenttype.rs b/components/script/dom/documenttype.rs index e04922ad6299..178ea354d862 100644 --- a/components/script/dom/documenttype.rs +++ b/components/script/dom/documenttype.rs @@ -4,13 +4,11 @@ use dom::bindings::codegen::Bindings::DocumentTypeBinding; use dom::bindings::codegen::Bindings::DocumentTypeBinding::DocumentTypeMethods; -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; use dom::node::Node; use std::borrow::ToOwned; use util::str::DOMString; @@ -25,12 +23,6 @@ pub struct DocumentType { system_id: DOMString, } -impl DocumentTypeDerived for EventTarget { - fn is_documenttype(&self) -> bool { - *self.type_id() == EventTargetTypeId::Node(NodeTypeId::DocumentType) - } -} - impl DocumentType { fn new_inherited(name: DOMString, public_id: Option, diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index 5ce83d933def..0a26bd9c182c 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -20,8 +20,7 @@ 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, ElementTypeId}; -use dom::bindings::codegen::InheritTypes::{EventTargetCast, EventTargetTypeId}; +use dom::bindings::codegen::InheritTypes::{ElementDerived, ElementTypeId, EventTargetCast}; use dom::bindings::codegen::InheritTypes::{HTMLAnchorElementCast, HTMLBodyElementCast}; use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLFontElementCast}; use dom::bindings::codegen::InheritTypes::{HTMLIFrameElementCast, HTMLInputElementCast}; @@ -41,7 +40,6 @@ use dom::domrect::DOMRect; use dom::domrectlist::DOMRectList; use dom::domtokenlist::DOMTokenList; use dom::event::Event; -use dom::eventtarget::EventTarget; use dom::htmlcollection::HTMLCollection; use dom::htmlinputelement::{HTMLInputElement, RawLayoutHTMLInputElementHelpers}; use dom::htmltablecellelement::HTMLTableCellElementLayoutHelpers; @@ -91,16 +89,6 @@ pub struct Element { class_list: MutNullableHeap>, } -impl ElementDerived for EventTarget { - #[inline] - fn is_element(&self) -> bool { - match *self.type_id() { - EventTargetTypeId::Node(NodeTypeId::Element(_)) => true, - _ => false - } - } -} - impl PartialEq for Element { fn eq(&self, other: &Element) -> bool { self as *const Element == &*other diff --git a/components/script/dom/errorevent.rs b/components/script/dom/errorevent.rs index e58a80ca2595..40865872a6bf 100644 --- a/components/script/dom/errorevent.rs +++ b/components/script/dom/errorevent.rs @@ -6,7 +6,7 @@ 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, EventTypeId}; +use dom::bindings::codegen::InheritTypes::EventCast; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::{MutHeapJSVal, Root}; @@ -30,12 +30,6 @@ pub struct ErrorEvent { error: MutHeapJSVal, } -impl ErrorEventDerived for Event { - fn is_errorevent(&self) -> bool { - *self.type_id() == EventTypeId::ErrorEvent - } -} - impl ErrorEvent { fn new_inherited() -> ErrorEvent { ErrorEvent { diff --git a/components/script/dom/htmlanchorelement.rs b/components/script/dom/htmlanchorelement.rs index 36459c06bb3e..09f3c31de797 100644 --- a/components/script/dom/htmlanchorelement.rs +++ b/components/script/dom/htmlanchorelement.rs @@ -10,10 +10,9 @@ 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, ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLAnchorElementDerived, HTMLElementCast}; +use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast}; use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLImageElementDerived}; -use dom::bindings::codegen::InheritTypes::{MouseEventCast, NodeCast, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::{MouseEventCast, NodeCast}; use dom::bindings::js::{JS, MutNullableHeap, Root}; use dom::document::Document; use dom::domtokenlist::DOMTokenList; @@ -35,14 +34,6 @@ pub struct HTMLAnchorElement { rel_list: MutNullableHeap>, } -impl HTMLAnchorElementDerived for EventTarget { - fn is_htmlanchorelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLAnchorElement))) - } -} - impl HTMLAnchorElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmlappletelement.rs b/components/script/dom/htmlappletelement.rs index 21a9ed8c2e10..fb82c6801c63 100644 --- a/components/script/dom/htmlappletelement.rs +++ b/components/script/dom/htmlappletelement.rs @@ -5,12 +5,9 @@ use dom::attr::AttrValue; use dom::bindings::codegen::Bindings::HTMLAppletElementBinding; use dom::bindings::codegen::Bindings::HTMLAppletElementBinding::HTMLAppletElementMethods; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLAppletElementDerived, HTMLElementCast}; -use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId}; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use dom::virtualmethods::VirtualMethods; @@ -22,14 +19,6 @@ pub struct HTMLAppletElement { htmlelement: HTMLElement } -impl HTMLAppletElementDerived for EventTarget { - fn is_htmlappletelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLAppletElement))) - } -} - impl HTMLAppletElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmlareaelement.rs b/components/script/dom/htmlareaelement.rs index 167171d23ae9..0ef48d4b742e 100644 --- a/components/script/dom/htmlareaelement.rs +++ b/components/script/dom/htmlareaelement.rs @@ -5,14 +5,11 @@ use dom::attr::AttrValue; use dom::bindings::codegen::Bindings::HTMLAreaElementBinding; use dom::bindings::codegen::Bindings::HTMLAreaElementBinding::HTMLAreaElementMethods; -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::codegen::InheritTypes::{ElementCast, HTMLElementCast, HTMLElementTypeId}; use dom::bindings::js::{JS, MutNullableHeap, Root}; use dom::bindings::utils::Reflectable; use dom::document::Document; use dom::domtokenlist::DOMTokenList; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use dom::virtualmethods::VirtualMethods; @@ -26,14 +23,6 @@ pub struct HTMLAreaElement { rel_list: MutNullableHeap>, } -impl HTMLAreaElementDerived for EventTarget { - fn is_htmlareaelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLAreaElement))) - } -} - impl HTMLAreaElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLAreaElement { HTMLAreaElement { diff --git a/components/script/dom/htmlaudioelement.rs b/components/script/dom/htmlaudioelement.rs index d942d5a20d53..8f8101c3f328 100644 --- a/components/script/dom/htmlaudioelement.rs +++ b/components/script/dom/htmlaudioelement.rs @@ -3,12 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLAudioElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLAudioElementDerived, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLMediaElementTypeId, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLMediaElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlmediaelement::HTMLMediaElement; use dom::node::Node; use util::str::DOMString; @@ -18,15 +15,6 @@ pub struct HTMLAudioElement { htmlmediaelement: HTMLMediaElement } -impl HTMLAudioElementDerived for EventTarget { - fn is_htmlaudioelement(&self) -> bool { - *self.type_id() == EventTargetTypeId::Node(NodeTypeId::Element( - ElementTypeId::HTMLElement( - HTMLElementTypeId::HTMLMediaElement( - HTMLMediaElementTypeId::HTMLAudioElement)))) - } -} - impl HTMLAudioElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmlbaseelement.rs b/components/script/dom/htmlbaseelement.rs index e751b3c4a8ff..c282b52c5b46 100644 --- a/components/script/dom/htmlbaseelement.rs +++ b/components/script/dom/htmlbaseelement.rs @@ -4,13 +4,10 @@ use dom::attr::Attr; use dom::bindings::codegen::Bindings::HTMLBaseElementBinding; -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::codegen::InheritTypes::{ElementCast, HTMLElementCast, HTMLElementTypeId}; use dom::bindings::js::Root; use dom::document::Document; use dom::element::AttributeMutation; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::{Node, document_from_node}; use dom::virtualmethods::VirtualMethods; @@ -22,14 +19,6 @@ pub struct HTMLBaseElement { htmlelement: HTMLElement } -impl HTMLBaseElementDerived for EventTarget { - fn is_htmlbaseelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLBaseElement))) - } -} - impl HTMLBaseElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLBaseElement { HTMLBaseElement { diff --git a/components/script/dom/htmlbodyelement.rs b/components/script/dom/htmlbodyelement.rs index 3ce0f1889f9c..95311f2330a3 100644 --- a/components/script/dom/htmlbodyelement.rs +++ b/components/script/dom/htmlbodyelement.rs @@ -8,15 +8,12 @@ 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, 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::codegen::InheritTypes::{ElementCast, EventTargetCast}; +use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId}; use dom::bindings::js::Root; use dom::bindings::utils::Reflectable; use dom::document::Document; 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; @@ -41,13 +38,6 @@ pub struct HTMLBodyElement { background: DOMRefCell> } -impl HTMLBodyElementDerived for EventTarget { - fn is_htmlbodyelement(&self) -> bool { - *self.type_id() == EventTargetTypeId::Node(NodeTypeId::Element(ElementTypeId::HTMLElement( - HTMLElementTypeId::HTMLBodyElement))) - } -} - impl HTMLBodyElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLBodyElement { diff --git a/components/script/dom/htmlbrelement.rs b/components/script/dom/htmlbrelement.rs index 38ca77226fe9..64e8a12e1f61 100644 --- a/components/script/dom/htmlbrelement.rs +++ b/components/script/dom/htmlbrelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLBRElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLBRElementDerived, HTMLElementTypeId, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLBRElement { htmlelement: HTMLElement, } -impl HTMLBRElementDerived for EventTarget { - fn is_htmlbrelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLBRElement))) - } -} - impl HTMLBRElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLBRElement { HTMLBRElement { diff --git a/components/script/dom/htmlbuttonelement.rs b/components/script/dom/htmlbuttonelement.rs index 3e66645e756b..a2c40fbc10b9 100644 --- a/components/script/dom/htmlbuttonelement.rs +++ b/components/script/dom/htmlbuttonelement.rs @@ -6,10 +6,9 @@ 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, ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLButtonElementCast, HTMLButtonElementDerived}; +use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLButtonElementCast}; use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLFieldSetElementDerived, NodeCast, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::{HTMLFieldSetElementDerived, NodeCast}; use dom::bindings::js::Root; use dom::document::Document; use dom::element::{AttributeMutation, Element}; @@ -42,14 +41,6 @@ pub struct HTMLButtonElement { button_type: Cell } -impl HTMLButtonElementDerived for EventTarget { - fn is_htmlbuttonelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLButtonElement))) - } -} - impl HTMLButtonElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmlcanvaselement.rs b/components/script/dom/htmlcanvaselement.rs index 7397970b4f10..87c54fa42ae8 100644 --- a/components/script/dom/htmlcanvaselement.rs +++ b/components/script/dom/htmlcanvaselement.rs @@ -7,9 +7,7 @@ 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::{ElementCast, ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLCanvasElementDerived, HTMLElementCast}; -use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, HTMLElementTypeId}; use dom::bindings::codegen::UnionTypes::CanvasRenderingContext2DOrWebGLRenderingContext; use dom::bindings::global::GlobalRef; use dom::bindings::js::{HeapGCValue, JS, LayoutJS, MutNullableHeap, Root}; @@ -17,7 +15,6 @@ use dom::bindings::utils::{Reflectable}; use dom::canvasrenderingcontext2d::{CanvasRenderingContext2D, LayoutCanvasRenderingContext2DHelpers}; use dom::document::Document; use dom::element::AttributeMutation; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::{Node, window_from_node}; use dom::virtualmethods::VirtualMethods; @@ -57,14 +54,6 @@ impl PartialEq for HTMLCanvasElement { } } -impl HTMLCanvasElementDerived for EventTarget { - fn is_htmlcanvaselement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLCanvasElement))) - } -} - impl HTMLCanvasElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmldataelement.rs b/components/script/dom/htmldataelement.rs index 14e02a53c817..be5657f6932d 100644 --- a/components/script/dom/htmldataelement.rs +++ b/components/script/dom/htmldataelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLDataElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLDataElementDerived, HTMLElementTypeId, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLDataElement { htmlelement: HTMLElement } -impl HTMLDataElementDerived for EventTarget { - fn is_htmldataelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLDataElement))) - } -} - impl HTMLDataElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmldatalistelement.rs b/components/script/dom/htmldatalistelement.rs index c9529d820965..8d455eaa4996 100644 --- a/components/script/dom/htmldatalistelement.rs +++ b/components/script/dom/htmldatalistelement.rs @@ -4,13 +4,10 @@ use dom::bindings::codegen::Bindings::HTMLDataListElementBinding; use dom::bindings::codegen::Bindings::HTMLDataListElementBinding::HTMLDataListElementMethods; -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::codegen::InheritTypes::{HTMLElementTypeId, HTMLOptionElementDerived, NodeCast}; use dom::bindings::js::Root; use dom::document::Document; use dom::element::Element; -use dom::eventtarget::EventTarget; use dom::htmlcollection::{CollectionFilter, HTMLCollection}; use dom::htmlelement::HTMLElement; use dom::node::{Node, window_from_node}; @@ -21,14 +18,6 @@ pub struct HTMLDataListElement { htmlelement: HTMLElement } -impl HTMLDataListElementDerived for EventTarget { - fn is_htmldatalistelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLDataListElement))) - } -} - impl HTMLDataListElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmldialogelement.rs b/components/script/dom/htmldialogelement.rs index f5c6047d93dd..7cff2e2a9a57 100644 --- a/components/script/dom/htmldialogelement.rs +++ b/components/script/dom/htmldialogelement.rs @@ -5,11 +5,9 @@ use dom::bindings::cell::DOMRefCell; use dom::bindings::codegen::Bindings::HTMLDialogElementBinding; use dom::bindings::codegen::Bindings::HTMLDialogElementBinding::HTMLDialogElementMethods; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLDialogElementDerived, HTMLElementTypeId, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use std::borrow::ToOwned; @@ -21,14 +19,6 @@ pub struct HTMLDialogElement { return_value: DOMRefCell, } -impl HTMLDialogElementDerived for EventTarget { - fn is_htmldialogelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLDialogElement))) - } -} - impl HTMLDialogElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmldirectoryelement.rs b/components/script/dom/htmldirectoryelement.rs index cd5e4c891cef..0010aab60b5c 100644 --- a/components/script/dom/htmldirectoryelement.rs +++ b/components/script/dom/htmldirectoryelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLDirectoryElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLDirectoryElementDerived, HTMLElementTypeId, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLDirectoryElement { htmlelement: HTMLElement } -impl HTMLDirectoryElementDerived for EventTarget { - fn is_htmldirectoryelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLDirectoryElement))) - } -} - impl HTMLDirectoryElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmldivelement.rs b/components/script/dom/htmldivelement.rs index 7aa617d91fee..7f0ce6ab4a08 100644 --- a/components/script/dom/htmldivelement.rs +++ b/components/script/dom/htmldivelement.rs @@ -3,11 +3,9 @@ * 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::{ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLDivElementDerived, HTMLElementTypeId, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLDivElement { htmlelement: HTMLElement } -impl HTMLDivElementDerived for EventTarget { - fn is_htmldivelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLDivElement))) - } -} - impl HTMLDivElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmldlistelement.rs b/components/script/dom/htmldlistelement.rs index 5aec0c2129f9..ac3fbdde1b1a 100644 --- a/components/script/dom/htmldlistelement.rs +++ b/components/script/dom/htmldlistelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLDListElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLDListElementDerived, HTMLElementTypeId, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLDListElement { htmlelement: HTMLElement } -impl HTMLDListElementDerived for EventTarget { - fn is_htmldlistelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLDListElement))) - } -} - impl HTMLDListElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLDListElement { HTMLDListElement { diff --git a/components/script/dom/htmlelement.rs b/components/script/dom/htmlelement.rs index f055a51b7197..01a6856e0665 100644 --- a/components/script/dom/htmlelement.rs +++ b/components/script/dom/htmlelement.rs @@ -10,8 +10,7 @@ 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, ElementTypeId}; -use dom::bindings::codegen::InheritTypes::{EventTargetCast, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLBodyElementDerived, HTMLElementDerived}; +use dom::bindings::codegen::InheritTypes::{EventTargetCast, HTMLBodyElementDerived}; use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLFrameSetElementDerived}; use dom::bindings::codegen::InheritTypes::{HTMLHtmlElementDerived, HTMLInputElementCast}; use dom::bindings::codegen::InheritTypes::{NodeCast, NodeTypeId}; @@ -22,7 +21,6 @@ use dom::cssstyledeclaration::{CSSModificationAccess, CSSStyleDeclaration}; use dom::document::Document; use dom::domstringmap::DOMStringMap; use dom::element::{AttributeMutation, Element}; -use dom::eventtarget::EventTarget; use dom::htmlinputelement::HTMLInputElement; use dom::node::{Node, SEQUENTIALLY_FOCUSABLE, document_from_node, window_from_node}; use dom::virtualmethods::VirtualMethods; @@ -47,15 +45,6 @@ impl PartialEq for HTMLElement { } } -impl HTMLElementDerived for EventTarget { - fn is_htmlelement(&self) -> bool { - match *self.type_id() { - EventTargetTypeId::Node(NodeTypeId::Element(ElementTypeId::HTMLElement(_))) => true, - _ => false - } - } -} - impl HTMLElement { pub fn new_inherited(type_id: HTMLElementTypeId, tag_name: DOMString, diff --git a/components/script/dom/htmlembedelement.rs b/components/script/dom/htmlembedelement.rs index 0ec0e0c58107..07f50ce900a4 100644 --- a/components/script/dom/htmlembedelement.rs +++ b/components/script/dom/htmlembedelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLEmbedElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLEmbedElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLEmbedElement { htmlelement: HTMLElement } -impl HTMLEmbedElementDerived for EventTarget { - fn is_htmlembedelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLEmbedElement))) - } -} - impl HTMLEmbedElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLEmbedElement { HTMLEmbedElement { diff --git a/components/script/dom/htmlfieldsetelement.rs b/components/script/dom/htmlfieldsetelement.rs index e7cddb164cca..32b8901895ac 100644 --- a/components/script/dom/htmlfieldsetelement.rs +++ b/components/script/dom/htmlfieldsetelement.rs @@ -5,13 +5,12 @@ use dom::attr::Attr; use dom::bindings::codegen::Bindings::HTMLFieldSetElementBinding; use dom::bindings::codegen::Bindings::HTMLFieldSetElementBinding::HTMLFieldSetElementMethods; -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::codegen::InheritTypes::{ElementTypeId, HTMLElementCast}; +use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLLegendElementDerived}; +use dom::bindings::codegen::InheritTypes::{NodeCast, NodeTypeId}; use dom::bindings::js::{Root, RootedReference}; use dom::document::Document; use dom::element::{AttributeMutation, Element}; -use dom::eventtarget::EventTarget; use dom::htmlcollection::{CollectionFilter, HTMLCollection}; use dom::htmlelement::HTMLElement; use dom::htmlformelement::{FormControl, HTMLFormElement}; @@ -25,14 +24,6 @@ pub struct HTMLFieldSetElement { htmlelement: HTMLElement } -impl HTMLFieldSetElementDerived for EventTarget { - fn is_htmlfieldsetelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLFieldSetElement))) - } -} - impl HTMLFieldSetElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmlfontelement.rs b/components/script/dom/htmlfontelement.rs index 8be5342bd61c..a7be20fe10ad 100644 --- a/components/script/dom/htmlfontelement.rs +++ b/components/script/dom/htmlfontelement.rs @@ -7,13 +7,10 @@ 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, ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLFontElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, HTMLElementTypeId}; use dom::bindings::js::Root; use dom::document::Document; use dom::element::{AttributeMutation, RawLayoutElementHelpers}; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use dom::virtualmethods::VirtualMethods; @@ -29,13 +26,6 @@ pub struct HTMLFontElement { face: DOMRefCell>, } -impl HTMLFontElementDerived for EventTarget { - fn is_htmlfontelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLFontElement))) - } -} impl HTMLFontElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLFontElement { diff --git a/components/script/dom/htmlformelement.rs b/components/script/dom/htmlformelement.rs index c0edc91ea69a..03d6a8268729 100644 --- a/components/script/dom/htmlformelement.rs +++ b/components/script/dom/htmlformelement.rs @@ -9,19 +9,18 @@ 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::{ElementBase, ElementCast, ElementTypeId}; -use dom::bindings::codegen::InheritTypes::{EventTargetCast, EventTargetTypeId}; +use dom::bindings::codegen::InheritTypes::{ElementBase, ElementCast}; +use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetCast}; 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::codegen::InheritTypes::{HTMLInputElementCast, HTMLTextAreaElementCast}; +use dom::bindings::codegen::InheritTypes::{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; use dom::event::{Event, EventBubbles, EventCancelable}; -use dom::eventtarget::EventTarget; use dom::htmlbuttonelement::{HTMLButtonElement}; use dom::htmlelement::HTMLElement; use dom::htmlinputelement::HTMLInputElement; @@ -51,14 +50,6 @@ impl PartialEq for HTMLFormElement { } } -impl HTMLFormElementDerived for EventTarget { - fn is_htmlformelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLFormElement))) - } -} - impl HTMLFormElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmlframeelement.rs b/components/script/dom/htmlframeelement.rs index c057b854ccee..9bb3251ffb0d 100644 --- a/components/script/dom/htmlframeelement.rs +++ b/components/script/dom/htmlframeelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLFrameElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLFrameElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLFrameElement { htmlelement: HTMLElement } -impl HTMLFrameElementDerived for EventTarget { - fn is_htmlframeelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLFrameElement))) - } -} - impl HTMLFrameElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLFrameElement { HTMLFrameElement { diff --git a/components/script/dom/htmlframesetelement.rs b/components/script/dom/htmlframesetelement.rs index 39a474d13d1b..1d47c7e4cc0b 100644 --- a/components/script/dom/htmlframesetelement.rs +++ b/components/script/dom/htmlframesetelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLFrameSetElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLFrameSetElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLFrameSetElement { htmlelement: HTMLElement } -impl HTMLFrameSetElementDerived for EventTarget { - fn is_htmlframesetelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLFrameSetElement))) - } -} - impl HTMLFrameSetElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmlheadelement.rs b/components/script/dom/htmlheadelement.rs index e19b9fb65080..58ca3f7a94da 100644 --- a/components/script/dom/htmlheadelement.rs +++ b/components/script/dom/htmlheadelement.rs @@ -3,12 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLHeadElementBinding; -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::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use dom::userscripts::load_script; @@ -20,14 +17,6 @@ pub struct HTMLHeadElement { htmlelement: HTMLElement } -impl HTMLHeadElementDerived for EventTarget { - fn is_htmlheadelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLHeadElement))) - } -} - impl HTMLHeadElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmlheadingelement.rs b/components/script/dom/htmlheadingelement.rs index 18dd24dc9a5d..65e774a27a97 100644 --- a/components/script/dom/htmlheadingelement.rs +++ b/components/script/dom/htmlheadingelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLHeadingElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLHeadingElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -28,14 +26,6 @@ pub struct HTMLHeadingElement { level: HeadingLevel, } -impl HTMLHeadingElementDerived for EventTarget { - fn is_htmlheadingelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLHeadingElement))) - } -} - impl HTMLHeadingElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmlhrelement.rs b/components/script/dom/htmlhrelement.rs index 6a7136d31f00..af57c8d59a81 100644 --- a/components/script/dom/htmlhrelement.rs +++ b/components/script/dom/htmlhrelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLHRElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLHRElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLHRElement { htmlelement: HTMLElement, } -impl HTMLHRElementDerived for EventTarget { - fn is_htmlhrelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLHRElement))) - } -} - impl HTMLHRElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLHRElement { HTMLHRElement { diff --git a/components/script/dom/htmlhtmlelement.rs b/components/script/dom/htmlhtmlelement.rs index 4f8f54e884a3..f9c188298e59 100644 --- a/components/script/dom/htmlhtmlelement.rs +++ b/components/script/dom/htmlhtmlelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLHtmlElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLHtmlElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLHtmlElement { htmlelement: HTMLElement } -impl HTMLHtmlElementDerived for EventTarget { - fn is_htmlhtmlelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLHtmlElement))) - } -} - impl HTMLHtmlElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLHtmlElement { HTMLHtmlElement { diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs index cd82760d2c59..4f88cc7a0f24 100644 --- a/components/script/dom/htmliframeelement.rs +++ b/components/script/dom/htmliframeelement.rs @@ -6,10 +6,9 @@ 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::{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::codegen::InheritTypes::{ElementCast, EventCast}; +use dom::bindings::codegen::InheritTypes::{EventTargetCast, HTMLElementCast}; +use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, NodeCast}; use dom::bindings::conversions::ToJSValConvertible; use dom::bindings::error::{Error, ErrorResult, Fallible}; use dom::bindings::global::GlobalRef; @@ -18,7 +17,6 @@ use dom::bindings::utils::Reflectable; use dom::customevent::CustomEvent; use dom::document::Document; use dom::element::{self, AttributeMutation}; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::{Node, window_from_node}; use dom::urlhelper::UrlHelper; @@ -64,16 +62,6 @@ pub struct HTMLIFrameElement { sandbox: Cell>, } -impl HTMLIFrameElementDerived for EventTarget { - fn is_htmliframeelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLIFrameElement))) - } -} - - - impl HTMLIFrameElement { pub fn is_sandboxed(&self) -> bool { self.sandbox.get().is_some() diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs index 7e1972e54b8a..f4a096ce17b4 100644 --- a/components/script/dom/htmlimageelement.rs +++ b/components/script/dom/htmlimageelement.rs @@ -8,10 +8,8 @@ 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, 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::codegen::InheritTypes::{ElementCast, EventTargetCast, HTMLElementCast}; +use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, NodeCast}; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::{LayoutJS, Root}; @@ -19,7 +17,6 @@ use dom::bindings::refcounted::Trusted; use dom::document::Document; use dom::element::AttributeMutation; use dom::event::{Event, EventBubbles, EventCancelable}; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::{Node, NodeDamage, document_from_node, window_from_node}; use dom::virtualmethods::VirtualMethods; @@ -42,15 +39,6 @@ pub struct HTMLImageElement { image: DOMRefCell>>, } -impl HTMLImageElementDerived for EventTarget { - fn is_htmlimageelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLImageElement))) - } -} - - impl HTMLImageElement { pub fn get_url(&self) -> Option{ self.url.borrow().clone() diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs index 647725678bec..70179e5b3ccd 100644 --- a/components/script/dom/htmlinputelement.rs +++ b/components/script/dom/htmlinputelement.rs @@ -11,12 +11,10 @@ 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::{ElementCast, ElementTypeId}; -use dom::bindings::codegen::InheritTypes::{EventTargetCast, EventTargetTypeId}; +use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast}; 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::codegen::InheritTypes::{KeyboardEventCast, NodeCast}; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, LayoutJS, Root, RootedReference}; use dom::document::Document; @@ -105,14 +103,6 @@ impl InputActivationState { } } -impl HTMLInputElementDerived for EventTarget { - fn is_htmlinputelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLInputElement))) - } -} - static DEFAULT_INPUT_SIZE: u32 = 20; impl HTMLInputElement { diff --git a/components/script/dom/htmllabelelement.rs b/components/script/dom/htmllabelelement.rs index a2d5653c0254..b39d88fb33c4 100644 --- a/components/script/dom/htmllabelelement.rs +++ b/components/script/dom/htmllabelelement.rs @@ -4,11 +4,9 @@ use dom::bindings::codegen::Bindings::HTMLLabelElementBinding; use dom::bindings::codegen::Bindings::HTMLLabelElementBinding::HTMLLabelElementMethods; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLLabelElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::htmlformelement::{FormControl, HTMLFormElement}; use dom::node::Node; @@ -19,14 +17,6 @@ pub struct HTMLLabelElement { htmlelement: HTMLElement, } -impl HTMLLabelElementDerived for EventTarget { - fn is_htmllabelelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLLabelElement))) - } -} - impl HTMLLabelElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmllegendelement.rs b/components/script/dom/htmllegendelement.rs index 3ff1209d42df..a750ef3d2e3a 100644 --- a/components/script/dom/htmllegendelement.rs +++ b/components/script/dom/htmllegendelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLLegendElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLLegendElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLLegendElement { htmlelement: HTMLElement, } -impl HTMLLegendElementDerived for EventTarget { - fn is_htmllegendelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLLegendElement))) - } -} - impl HTMLLegendElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmllielement.rs b/components/script/dom/htmllielement.rs index e9545ae73c97..85a76d553c4a 100644 --- a/components/script/dom/htmllielement.rs +++ b/components/script/dom/htmllielement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLLIElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLLIElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLLIElement { htmlelement: HTMLElement, } -impl HTMLLIElementDerived for EventTarget { - fn is_htmllielement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLLIElement))) - } -} - impl HTMLLIElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLLIElement { HTMLLIElement { diff --git a/components/script/dom/htmllinkelement.rs b/components/script/dom/htmllinkelement.rs index 89747b00f484..efbcddee8e85 100644 --- a/components/script/dom/htmllinkelement.rs +++ b/components/script/dom/htmllinkelement.rs @@ -8,10 +8,8 @@ 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, 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::codegen::InheritTypes::{ElementCast, EventTargetCast, HTMLElementCast}; +use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, NodeCast}; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, MutNullableHeap, Root}; use dom::bindings::js::{RootedReference}; @@ -20,7 +18,6 @@ use dom::document::Document; use dom::domtokenlist::DOMTokenList; use dom::element::{AttributeMutation, Element}; use dom::event::{Event, EventBubbles, EventCancelable}; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::{Node, window_from_node}; use dom::virtualmethods::VirtualMethods; @@ -42,14 +39,6 @@ pub struct HTMLLinkElement { rel_list: MutNullableHeap>, } -impl HTMLLinkElementDerived for EventTarget { - fn is_htmllinkelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLLinkElement))) - } -} - impl HTMLLinkElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLLinkElement { HTMLLinkElement { diff --git a/components/script/dom/htmlmapelement.rs b/components/script/dom/htmlmapelement.rs index e8a765954cbb..fce5c4f00328 100644 --- a/components/script/dom/htmlmapelement.rs +++ b/components/script/dom/htmlmapelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLMapElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLMapElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLMapElement { htmlelement: HTMLElement } -impl HTMLMapElementDerived for EventTarget { - fn is_htmlmapelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLMapElement))) - } -} - impl HTMLMapElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs index 6ee08046b26f..ca042fb04caf 100644 --- a/components/script/dom/htmlmediaelement.rs +++ b/components/script/dom/htmlmediaelement.rs @@ -2,11 +2,8 @@ * 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::{ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLMediaElementDerived}; -use dom::bindings::codegen::InheritTypes::{HTMLMediaElementTypeId, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLMediaElementTypeId}; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use util::str::DOMString; @@ -15,16 +12,6 @@ pub struct HTMLMediaElement { htmlelement: HTMLElement, } -impl HTMLMediaElementDerived for EventTarget { - fn is_htmlmediaelement(&self) -> bool { - match *self.type_id() { - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLMediaElement(_)))) => true, - _ => false - } - } -} - impl HTMLMediaElement { pub fn new_inherited(type_id: HTMLMediaElementTypeId, tag_name: DOMString, prefix: Option, document: &Document) diff --git a/components/script/dom/htmlmetaelement.rs b/components/script/dom/htmlmetaelement.rs index 5b2d4c0d8683..4fc1bd7448e3 100644 --- a/components/script/dom/htmlmetaelement.rs +++ b/components/script/dom/htmlmetaelement.rs @@ -4,12 +4,10 @@ use dom::bindings::codegen::Bindings::HTMLMetaElementBinding; use dom::bindings::codegen::Bindings::HTMLMetaElementBinding::HTMLMetaElementMethods; -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::codegen::InheritTypes::{ElementCast, HTMLElementCast}; +use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, NodeCast}; use dom::bindings::js::{Root, RootedReference}; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::{Node, window_from_node}; use dom::virtualmethods::VirtualMethods; @@ -23,14 +21,6 @@ pub struct HTMLMetaElement { htmlelement: HTMLElement, } -impl HTMLMetaElementDerived for EventTarget { - fn is_htmlmetaelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLMetaElement))) - } -} - impl HTMLMetaElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmlmeterelement.rs b/components/script/dom/htmlmeterelement.rs index 88a740ed839e..016a875a88cc 100644 --- a/components/script/dom/htmlmeterelement.rs +++ b/components/script/dom/htmlmeterelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLMeterElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLMeterElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLMeterElement { htmlelement: HTMLElement } -impl HTMLMeterElementDerived for EventTarget { - fn is_htmlmeterelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLMeterElement))) - } -} - impl HTMLMeterElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmlmodelement.rs b/components/script/dom/htmlmodelement.rs index 47e6e441dc66..4bf9a748c124 100644 --- a/components/script/dom/htmlmodelement.rs +++ b/components/script/dom/htmlmodelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLModElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLModElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLModElement { htmlelement: HTMLElement } -impl HTMLModElementDerived for EventTarget { - fn is_htmlmodelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLModElement))) - } -} - impl HTMLModElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmlobjectelement.rs b/components/script/dom/htmlobjectelement.rs index 82b31f5519c9..cc1dd2ec7f69 100644 --- a/components/script/dom/htmlobjectelement.rs +++ b/components/script/dom/htmlobjectelement.rs @@ -6,13 +6,10 @@ 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::{ElementCast, ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLObjectElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, HTMLElementTypeId}; use dom::bindings::js::Root; use dom::document::Document; use dom::element::AttributeMutation; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::htmlformelement::{FormControl, HTMLFormElement}; use dom::node::{Node, window_from_node}; @@ -28,14 +25,6 @@ pub struct HTMLObjectElement { image: DOMRefCell>>, } -impl HTMLObjectElementDerived for EventTarget { - fn is_htmlobjectelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLObjectElement))) - } -} - impl HTMLObjectElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmlolistelement.rs b/components/script/dom/htmlolistelement.rs index 7f26bcdf2047..bd0b54c4370a 100644 --- a/components/script/dom/htmlolistelement.rs +++ b/components/script/dom/htmlolistelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLOListElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLOListElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLOListElement { htmlelement: HTMLElement, } -impl HTMLOListElementDerived for EventTarget { - fn is_htmlolistelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLOListElement))) - } -} - impl HTMLOListElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmloptgroupelement.rs b/components/script/dom/htmloptgroupelement.rs index d476b0edaaa9..a377a59c0099 100644 --- a/components/script/dom/htmloptgroupelement.rs +++ b/components/script/dom/htmloptgroupelement.rs @@ -5,14 +5,11 @@ use dom::attr::Attr; use dom::bindings::codegen::Bindings::HTMLOptGroupElementBinding; use dom::bindings::codegen::Bindings::HTMLOptGroupElementBinding::HTMLOptGroupElementMethods; -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::codegen::InheritTypes::{HTMLOptionElementDerived, NodeCast}; use dom::bindings::js::Root; use dom::document::Document; use dom::element::AttributeMutation; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use dom::virtualmethods::VirtualMethods; @@ -23,14 +20,6 @@ pub struct HTMLOptGroupElement { htmlelement: HTMLElement } -impl HTMLOptGroupElementDerived for EventTarget { - fn is_htmloptgroupelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLOptGroupElement))) - } -} - impl HTMLOptGroupElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmloptionelement.rs b/components/script/dom/htmloptionelement.rs index e8d655a2a8fd..79dedf2f94f5 100644 --- a/components/script/dom/htmloptionelement.rs +++ b/components/script/dom/htmloptionelement.rs @@ -7,14 +7,12 @@ 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, 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::codegen::InheritTypes::{CharacterDataCast, ElementCast, HTMLElementCast}; +use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLScriptElementDerived}; +use dom::bindings::codegen::InheritTypes::{NodeCast, TextDerived}; use dom::bindings::js::Root; use dom::document::Document; use dom::element::{AttributeMutation, Element}; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use dom::virtualmethods::VirtualMethods; @@ -32,14 +30,6 @@ pub struct HTMLOptionElement { dirtiness: Cell, } -impl HTMLOptionElementDerived for EventTarget { - fn is_htmloptionelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLOptionElement))) - } -} - impl HTMLOptionElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmloutputelement.rs b/components/script/dom/htmloutputelement.rs index 1c57dea67613..8888f67ce264 100644 --- a/components/script/dom/htmloutputelement.rs +++ b/components/script/dom/htmloutputelement.rs @@ -4,11 +4,9 @@ use dom::bindings::codegen::Bindings::HTMLOutputElementBinding; use dom::bindings::codegen::Bindings::HTMLOutputElementBinding::HTMLOutputElementMethods; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLOutputElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::htmlformelement::{FormControl, HTMLFormElement}; use dom::node::{Node, window_from_node}; @@ -20,14 +18,6 @@ pub struct HTMLOutputElement { htmlelement: HTMLElement } -impl HTMLOutputElementDerived for EventTarget { - fn is_htmloutputelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLOutputElement))) - } -} - impl HTMLOutputElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmlparagraphelement.rs b/components/script/dom/htmlparagraphelement.rs index 2a383b51f5f0..532925ab965d 100644 --- a/components/script/dom/htmlparagraphelement.rs +++ b/components/script/dom/htmlparagraphelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLParagraphElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLParagraphElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLParagraphElement { htmlelement: HTMLElement } -impl HTMLParagraphElementDerived for EventTarget { - fn is_htmlparagraphelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLParagraphElement))) - } -} - impl HTMLParagraphElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmlparamelement.rs b/components/script/dom/htmlparamelement.rs index c2cc044c7f79..ff1c010b3841 100644 --- a/components/script/dom/htmlparamelement.rs +++ b/components/script/dom/htmlparamelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLParamElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLParamElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLParamElement { htmlelement: HTMLElement } -impl HTMLParamElementDerived for EventTarget { - fn is_htmlparamelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLParamElement))) - } -} - impl HTMLParamElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmlpreelement.rs b/components/script/dom/htmlpreelement.rs index 57e4943ab5f5..2c353d15d69d 100644 --- a/components/script/dom/htmlpreelement.rs +++ b/components/script/dom/htmlpreelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLPreElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLPreElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLPreElement { htmlelement: HTMLElement, } -impl HTMLPreElementDerived for EventTarget { - fn is_htmlpreelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLPreElement))) - } -} - impl HTMLPreElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmlprogresselement.rs b/components/script/dom/htmlprogresselement.rs index bc0e29cbfcfb..6aae92cc9762 100644 --- a/components/script/dom/htmlprogresselement.rs +++ b/components/script/dom/htmlprogresselement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLProgressElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLProgressElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLProgressElement { htmlelement: HTMLElement, } -impl HTMLProgressElementDerived for EventTarget { - fn is_htmlprogresselement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLProgressElement))) - } -} - impl HTMLProgressElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmlquoteelement.rs b/components/script/dom/htmlquoteelement.rs index d631ae61525f..ab5d97d527ea 100644 --- a/components/script/dom/htmlquoteelement.rs +++ b/components/script/dom/htmlquoteelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLQuoteElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLQuoteElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLQuoteElement { htmlelement: HTMLElement, } -impl HTMLQuoteElementDerived for EventTarget { - fn is_htmlquoteelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLQuoteElement))) - } -} - impl HTMLQuoteElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs index 0718b75658fd..cb6b49c094fe 100644 --- a/components/script/dom/htmlscriptelement.rs +++ b/components/script/dom/htmlscriptelement.rs @@ -10,11 +10,9 @@ 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::{ElementCast, ElementTypeId}; -use dom::bindings::codegen::InheritTypes::{EventTargetCast, EventTargetTypeId}; +use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast}; use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLScriptElementCast, HTMLScriptElementDerived}; -use dom::bindings::codegen::InheritTypes::{NodeCast, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::{HTMLScriptElementCast, NodeCast}; use dom::bindings::global::GlobalRef; use dom::bindings::js::RootedReference; use dom::bindings::js::{JS, Root}; @@ -23,7 +21,6 @@ use dom::bindings::trace::JSTraceable; use dom::document::Document; use dom::element::{AttributeMutation, ElementCreator}; use dom::event::{Event, EventBubbles, EventCancelable}; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::{ChildrenMutation, CloneChildrenFlag, Node}; use dom::node::{document_from_node, window_from_node}; @@ -76,14 +73,6 @@ pub struct HTMLScriptElement { block_character_encoding: DOMRefCell, } -impl HTMLScriptElementDerived for EventTarget { - fn is_htmlscriptelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLScriptElement))) - } -} - impl HTMLScriptElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document, creator: ElementCreator) -> HTMLScriptElement { diff --git a/components/script/dom/htmlselectelement.rs b/components/script/dom/htmlselectelement.rs index 57a675eb88bf..52d42265773e 100644 --- a/components/script/dom/htmlselectelement.rs +++ b/components/script/dom/htmlselectelement.rs @@ -5,16 +5,13 @@ use dom::attr::{Attr, AttrValue}; use dom::bindings::codegen::Bindings::HTMLSelectElementBinding; use dom::bindings::codegen::Bindings::HTMLSelectElementBinding::HTMLSelectElementMethods; -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::InheritTypes::{HTMLFieldSetElementDerived, NodeCast}; 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; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::htmlformelement::{FormControl, HTMLFormElement}; use dom::node::{Node, window_from_node}; @@ -29,14 +26,6 @@ pub struct HTMLSelectElement { htmlelement: HTMLElement } -impl HTMLSelectElementDerived for EventTarget { - fn is_htmlselectelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLSelectElement))) - } -} - static DEFAULT_SELECT_SIZE: u32 = 0; impl HTMLSelectElement { diff --git a/components/script/dom/htmlsourceelement.rs b/components/script/dom/htmlsourceelement.rs index bab0df2514a5..5c6bac5a35eb 100644 --- a/components/script/dom/htmlsourceelement.rs +++ b/components/script/dom/htmlsourceelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLSourceElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLSourceElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLSourceElement { htmlelement: HTMLElement } -impl HTMLSourceElementDerived for EventTarget { - fn is_htmlsourceelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLSourceElement))) - } -} - impl HTMLSourceElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmlspanelement.rs b/components/script/dom/htmlspanelement.rs index 729ef747af55..f44f5e14b2e4 100644 --- a/components/script/dom/htmlspanelement.rs +++ b/components/script/dom/htmlspanelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLSpanElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLSpanElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLSpanElement { htmlelement: HTMLElement } -impl HTMLSpanElementDerived for EventTarget { - fn is_htmlspanelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLSpanElement))) - } -} - impl HTMLSpanElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLSpanElement { HTMLSpanElement { diff --git a/components/script/dom/htmlstyleelement.rs b/components/script/dom/htmlstyleelement.rs index 7b41b156f991..ca06ceea942d 100644 --- a/components/script/dom/htmlstyleelement.rs +++ b/components/script/dom/htmlstyleelement.rs @@ -5,13 +5,10 @@ use cssparser::Parser as CssParser; use dom::bindings::codegen::Bindings::HTMLStyleElementBinding; use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods; -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::codegen::InheritTypes::{ElementCast, HTMLElementCast}; +use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, NodeCast}; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::{ChildrenMutation, Node, window_from_node}; use dom::virtualmethods::VirtualMethods; @@ -25,14 +22,6 @@ pub struct HTMLStyleElement { htmlelement: HTMLElement, } -impl HTMLStyleElementDerived for EventTarget { - fn is_htmlstyleelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLStyleElement))) - } -} - impl HTMLStyleElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmltablecaptionelement.rs b/components/script/dom/htmltablecaptionelement.rs index 4db67a16b9d1..b0d7f645753a 100644 --- a/components/script/dom/htmltablecaptionelement.rs +++ b/components/script/dom/htmltablecaptionelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLTableCaptionElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLTableCaptionElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLTableCaptionElement { htmlelement: HTMLElement } -impl HTMLTableCaptionElementDerived for EventTarget { - fn is_htmltablecaptionelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTableCaptionElement))) - } -} - impl HTMLTableCaptionElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmltablecellelement.rs b/components/script/dom/htmltablecellelement.rs index 98b41bde6b68..834f1419c946 100644 --- a/components/script/dom/htmltablecellelement.rs +++ b/components/script/dom/htmltablecellelement.rs @@ -6,14 +6,12 @@ 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::{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::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId}; +use dom::bindings::codegen::InheritTypes::{HTMLTableCellElementDerived, HTMLTableCellElementTypeId}; +use dom::bindings::codegen::InheritTypes::{HTMLTableRowElementDerived, NodeCast}; use dom::bindings::js::LayoutJS; use dom::document::Document; use dom::element::AttributeMutation; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::virtualmethods::VirtualMethods; use std::cell::Cell; @@ -31,16 +29,6 @@ pub struct HTMLTableCellElement { width: Cell, } -impl HTMLTableCellElementDerived for EventTarget { - fn is_htmltablecellelement(&self) -> bool { - match *self.type_id() { - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTableCellElement(_)))) => true, - _ => false - } - } -} - impl HTMLTableCellElement { pub fn new_inherited(type_id: HTMLTableCellElementTypeId, tag_name: DOMString, diff --git a/components/script/dom/htmltablecolelement.rs b/components/script/dom/htmltablecolelement.rs index be5bef595136..2ee79fc7db75 100644 --- a/components/script/dom/htmltablecolelement.rs +++ b/components/script/dom/htmltablecolelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLTableColElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLTableColElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLTableColElement { htmlelement: HTMLElement, } -impl HTMLTableColElementDerived for EventTarget { - fn is_htmltablecolelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTableColElement))) - } -} - impl HTMLTableColElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmltabledatacellelement.rs b/components/script/dom/htmltabledatacellelement.rs index 46f0a4a96a37..38bff452efb0 100644 --- a/components/script/dom/htmltabledatacellelement.rs +++ b/components/script/dom/htmltabledatacellelement.rs @@ -3,12 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLTableDataCellElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLTableDataCellElementDerived}; -use dom::bindings::codegen::InheritTypes::{HTMLTableCellElementTypeId, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLTableCellElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmltablecellelement::HTMLTableCellElement; use dom::node::Node; use util::str::DOMString; @@ -18,15 +15,6 @@ pub struct HTMLTableDataCellElement { htmltablecellelement: HTMLTableCellElement, } -impl HTMLTableDataCellElementDerived for EventTarget { - fn is_htmltabledatacellelement(&self) -> bool { - *self.type_id() == EventTargetTypeId::Node(NodeTypeId::Element( - ElementTypeId::HTMLElement( - HTMLElementTypeId::HTMLTableCellElement( - HTMLTableCellElementTypeId::HTMLTableDataCellElement)))) - } -} - impl HTMLTableDataCellElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmltableelement.rs b/components/script/dom/htmltableelement.rs index 607f3a8ecc94..d743d64f44cc 100644 --- a/components/script/dom/htmltableelement.rs +++ b/components/script/dom/htmltableelement.rs @@ -7,14 +7,12 @@ 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::{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::codegen::InheritTypes::{ElementCast, HTMLElementCast}; +use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLTableCaptionElementCast}; +use dom::bindings::codegen::InheritTypes::{HTMLTableSectionElementDerived, NodeCast}; use dom::bindings::js::{Root, RootedReference}; use dom::document::Document; use dom::element::AttributeMutation; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::htmltablecaptionelement::HTMLTableCaptionElement; use dom::htmltablesectionelement::HTMLTableSectionElement; @@ -33,14 +31,6 @@ pub struct HTMLTableElement { width: Cell, } -impl HTMLTableElementDerived for EventTarget { - fn is_htmltableelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTableElement))) - } -} - impl HTMLTableElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLTableElement { diff --git a/components/script/dom/htmltableheadercellelement.rs b/components/script/dom/htmltableheadercellelement.rs index ff16385d3e51..3b43c5787e9d 100644 --- a/components/script/dom/htmltableheadercellelement.rs +++ b/components/script/dom/htmltableheadercellelement.rs @@ -3,12 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLTableHeaderCellElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLTableHeaderCellElementDerived}; -use dom::bindings::codegen::InheritTypes::{HTMLTableCellElementTypeId, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLTableCellElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmltablecellelement::HTMLTableCellElement; use dom::node::Node; use util::str::DOMString; @@ -18,15 +15,6 @@ pub struct HTMLTableHeaderCellElement { htmltablecellelement: HTMLTableCellElement, } -impl HTMLTableHeaderCellElementDerived for EventTarget { - fn is_htmltableheadercellelement(&self) -> bool { - *self.type_id() == EventTargetTypeId::Node(NodeTypeId::Element( - ElementTypeId::HTMLElement( - HTMLElementTypeId::HTMLTableCellElement( - HTMLTableCellElementTypeId::HTMLTableHeaderCellElement)))) - } -} - impl HTMLTableHeaderCellElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmltablerowelement.rs b/components/script/dom/htmltablerowelement.rs index 844220f6e0e7..94f7d3e3d2f1 100644 --- a/components/script/dom/htmltablerowelement.rs +++ b/components/script/dom/htmltablerowelement.rs @@ -6,14 +6,11 @@ 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::{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::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId, HTMLTableDataCellElementDerived}; +use dom::bindings::codegen::InheritTypes::{HTMLTableHeaderCellElementDerived, NodeCast}; use dom::bindings::js::{JS, MutNullableHeap, Root, RootedReference}; use dom::document::Document; use dom::element::{AttributeMutation, Element}; -use dom::eventtarget::EventTarget; use dom::htmlcollection::{CollectionFilter, HTMLCollection}; use dom::htmlelement::HTMLElement; use dom::node::{Node, window_from_node}; @@ -38,14 +35,6 @@ pub struct HTMLTableRowElement { background_color: Cell>, } -impl HTMLTableRowElementDerived for EventTarget { - fn is_htmltablerowelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTableRowElement))) - } -} - impl HTMLTableRowElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLTableRowElement { diff --git a/components/script/dom/htmltablesectionelement.rs b/components/script/dom/htmltablesectionelement.rs index bfe00f540005..37e47eed155a 100644 --- a/components/script/dom/htmltablesectionelement.rs +++ b/components/script/dom/htmltablesectionelement.rs @@ -7,15 +7,13 @@ 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, ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId, HTMLTableRowElementDerived}; -use dom::bindings::codegen::InheritTypes::{HTMLTableSectionElementDerived, NodeCast, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, HTMLElementTypeId}; +use dom::bindings::codegen::InheritTypes::{HTMLTableRowElementDerived, NodeCast}; 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}; -use dom::eventtarget::EventTarget; use dom::htmlcollection::{CollectionFilter, HTMLCollection}; use dom::htmlelement::HTMLElement; use dom::htmltablerowelement::HTMLTableRowElement; @@ -31,14 +29,6 @@ pub struct HTMLTableSectionElement { background_color: Cell>, } -impl HTMLTableSectionElementDerived for EventTarget { - fn is_htmltablesectionelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTableSectionElement))) - } -} - impl HTMLTableSectionElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLTableSectionElement { diff --git a/components/script/dom/htmltemplateelement.rs b/components/script/dom/htmltemplateelement.rs index e965d87c6fae..ab82cf440689 100644 --- a/components/script/dom/htmltemplateelement.rs +++ b/components/script/dom/htmltemplateelement.rs @@ -6,14 +6,11 @@ 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::{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::codegen::InheritTypes::{HTMLTemplateElementCast, NodeCast}; use dom::bindings::js::{JS, MutNullableHeap, Root}; use dom::document::Document; use dom::documentfragment::DocumentFragment; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::{CloneChildrenFlag, Node, document_from_node}; use dom::virtualmethods::VirtualMethods; @@ -27,14 +24,6 @@ pub struct HTMLTemplateElement { contents: MutNullableHeap>, } -impl HTMLTemplateElementDerived for EventTarget { - fn is_htmltemplateelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTemplateElement))) - } -} - impl HTMLTemplateElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmltextareaelement.rs b/components/script/dom/htmltextareaelement.rs index 522c88d30635..cfd0de92b11d 100644 --- a/components/script/dom/htmltextareaelement.rs +++ b/components/script/dom/htmltextareaelement.rs @@ -8,18 +8,15 @@ 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::{ElementCast, ElementTypeId, EventTargetCast}; -use dom::bindings::codegen::InheritTypes::{EventTargetTypeId, HTMLElementCast}; +use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast, 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::codegen::InheritTypes::{KeyboardEventCast, NodeCast}; use dom::bindings::global::GlobalRef; use dom::bindings::js::{LayoutJS, Root}; use dom::bindings::refcounted::Trusted; use dom::document::Document; use dom::element::AttributeMutation; use dom::event::{Event, EventBubbles, EventCancelable}; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::htmlformelement::{FormControl, HTMLFormElement}; use dom::keyboardevent::KeyboardEvent; @@ -46,14 +43,6 @@ pub struct HTMLTextAreaElement { value_changed: Cell, } -impl HTMLTextAreaElementDerived for EventTarget { - fn is_htmltextareaelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTextAreaElement))) - } -} - pub trait LayoutHTMLTextAreaElementHelpers { #[allow(unsafe_code)] unsafe fn get_value_for_layout(self) -> String; diff --git a/components/script/dom/htmltimeelement.rs b/components/script/dom/htmltimeelement.rs index dcc95de29f4d..32d25298544c 100644 --- a/components/script/dom/htmltimeelement.rs +++ b/components/script/dom/htmltimeelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLTimeElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLTimeElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLTimeElement { htmlelement: HTMLElement } -impl HTMLTimeElementDerived for EventTarget { - fn is_htmltimeelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTimeElement))) - } -} - impl HTMLTimeElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLTimeElement { HTMLTimeElement { diff --git a/components/script/dom/htmltitleelement.rs b/components/script/dom/htmltitleelement.rs index 6740ff92904b..2531d9ca750c 100644 --- a/components/script/dom/htmltitleelement.rs +++ b/components/script/dom/htmltitleelement.rs @@ -5,13 +5,10 @@ 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, 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::codegen::InheritTypes::{CharacterDataCast, HTMLElementCast}; +use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, NodeCast, TextCast}; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::{ChildrenMutation, Node}; use dom::text::Text; @@ -23,14 +20,6 @@ pub struct HTMLTitleElement { htmlelement: HTMLElement, } -impl HTMLTitleElementDerived for EventTarget { - fn is_htmltitleelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTitleElement))) - } -} - impl HTMLTitleElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLTitleElement { HTMLTitleElement { diff --git a/components/script/dom/htmltrackelement.rs b/components/script/dom/htmltrackelement.rs index 4de20a0abed8..8cf3917a84f5 100644 --- a/components/script/dom/htmltrackelement.rs +++ b/components/script/dom/htmltrackelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLTrackElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLTrackElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLTrackElement { htmlelement: HTMLElement, } -impl HTMLTrackElementDerived for EventTarget { - fn is_htmltrackelement(&self) -> bool { - *self.type_id() == EventTargetTypeId::Node( - NodeTypeId::Element( - ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTrackElement))) - } -} - impl HTMLTrackElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLTrackElement { HTMLTrackElement { diff --git a/components/script/dom/htmlulistelement.rs b/components/script/dom/htmlulistelement.rs index ea3e57d35ec9..666d7ce324af 100644 --- a/components/script/dom/htmlulistelement.rs +++ b/components/script/dom/htmlulistelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLUListElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLUListElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLUListElement { htmlelement: HTMLElement } -impl HTMLUListElementDerived for EventTarget { - fn is_htmlulistelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLUListElement))) - } -} - impl HTMLUListElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLUListElement { HTMLUListElement { diff --git a/components/script/dom/htmlunknownelement.rs b/components/script/dom/htmlunknownelement.rs index 7e4067f3555e..908fcfb8e803 100644 --- a/components/script/dom/htmlunknownelement.rs +++ b/components/script/dom/htmlunknownelement.rs @@ -3,11 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLUnknownElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLUnknownElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::Node; use util::str::DOMString; @@ -17,14 +15,6 @@ pub struct HTMLUnknownElement { htmlelement: HTMLElement } -impl HTMLUnknownElementDerived for EventTarget { - fn is_htmlunknownelement(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node( - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLUnknownElement))) - } -} - impl HTMLUnknownElement { fn new_inherited(localName: DOMString, prefix: Option, diff --git a/components/script/dom/htmlvideoelement.rs b/components/script/dom/htmlvideoelement.rs index 20de1a7df35d..5837f00b21ff 100644 --- a/components/script/dom/htmlvideoelement.rs +++ b/components/script/dom/htmlvideoelement.rs @@ -3,12 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLVideoElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLMediaElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLVideoElementDerived, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLMediaElementTypeId; use dom::bindings::js::Root; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::htmlmediaelement::HTMLMediaElement; use dom::node::Node; use util::str::DOMString; @@ -18,15 +15,6 @@ pub struct HTMLVideoElement { htmlmediaelement: HTMLMediaElement } -impl HTMLVideoElementDerived for EventTarget { - fn is_htmlvideoelement(&self) -> bool { - *self.type_id() == EventTargetTypeId::Node(NodeTypeId::Element( - ElementTypeId::HTMLElement( - HTMLElementTypeId::HTMLMediaElement( - HTMLMediaElementTypeId::HTMLVideoElement)))) - } -} - impl HTMLVideoElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLVideoElement { HTMLVideoElement { diff --git a/components/script/dom/keyboardevent.rs b/components/script/dom/keyboardevent.rs index c56276ecc8a1..405c3813ea2b 100644 --- a/components/script/dom/keyboardevent.rs +++ b/components/script/dom/keyboardevent.rs @@ -5,13 +5,11 @@ 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, EventTypeId, KeyboardEventDerived}; -use dom::bindings::codegen::InheritTypes::{UIEventCast, UIEventTypeId}; +use dom::bindings::codegen::InheritTypes::{EventCast, UIEventCast}; 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; use dom::uievent::UIEvent; use dom::window::Window; use msg::constellation_msg; @@ -40,12 +38,6 @@ pub struct KeyboardEvent { key_code: Cell, } -impl KeyboardEventDerived for Event { - fn is_keyboardevent(&self) -> bool { - *self.type_id() == EventTypeId::UIEvent(UIEventTypeId::KeyboardEvent) - } -} - impl KeyboardEvent { fn new_inherited() -> KeyboardEvent { KeyboardEvent { diff --git a/components/script/dom/messageevent.rs b/components/script/dom/messageevent.rs index 1b0a129f12b1..94312dbcb23a 100644 --- a/components/script/dom/messageevent.rs +++ b/components/script/dom/messageevent.rs @@ -5,7 +5,7 @@ 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, EventTypeId, MessageEventDerived}; +use dom::bindings::codegen::InheritTypes::EventCast; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::Root; @@ -26,12 +26,6 @@ pub struct MessageEvent { lastEventId: DOMString, } -impl MessageEventDerived for Event { - fn is_messageevent(&self) -> bool { - *self.type_id() == EventTypeId::MessageEvent - } -} - impl MessageEvent { pub fn new_uninitialized(global: GlobalRef) -> Root { MessageEvent::new_initialized(global, HandleValue::undefined(), "".to_owned(), "".to_owned()) diff --git a/components/script/dom/mouseevent.rs b/components/script/dom/mouseevent.rs index 7346482598f4..5f05fc97b774 100644 --- a/components/script/dom/mouseevent.rs +++ b/components/script/dom/mouseevent.rs @@ -5,8 +5,7 @@ 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, EventTypeId, UIEventCast}; -use dom::bindings::codegen::InheritTypes::{UIEventTypeId, MouseEventDerived}; +use dom::bindings::codegen::InheritTypes::{EventCast, UIEventCast}; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, MutNullableHeap, Root, RootedReference}; @@ -35,12 +34,6 @@ pub struct MouseEvent { related_target: MutNullableHeap>, } -impl MouseEventDerived for Event { - fn is_mouseevent(&self) -> bool { - *self.type_id() == EventTypeId::UIEvent(UIEventTypeId::MouseEvent) - } -} - impl MouseEvent { fn new_inherited() -> MouseEvent { MouseEvent { diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 19a4cdafecf7..e5974c2d05f5 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -24,7 +24,7 @@ use dom::bindings::codegen::InheritTypes::{ElementCast, ElementDerived, ElementT 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::{NodeBase, NodeCast, NodeTypeId}; use dom::bindings::codegen::InheritTypes::{ProcessingInstructionCast, TextCast, TextDerived}; use dom::bindings::codegen::UnionTypes::NodeOrString; use dom::bindings::conversions; @@ -122,15 +122,6 @@ impl PartialEq for Node { } } -impl NodeDerived for EventTarget { - fn is_node(&self) -> bool { - match *self.type_id() { - EventTargetTypeId::Node(_) => true, - _ => false - } - } -} - bitflags! { #[doc = "Flags for node items."] #[derive(JSTraceable, HeapSizeOf)] diff --git a/components/script/dom/processinginstruction.rs b/components/script/dom/processinginstruction.rs index 6610352dda10..7ce21de9f4d0 100644 --- a/components/script/dom/processinginstruction.rs +++ b/components/script/dom/processinginstruction.rs @@ -4,12 +4,10 @@ use dom::bindings::codegen::Bindings::ProcessingInstructionBinding; use dom::bindings::codegen::Bindings::ProcessingInstructionBinding::ProcessingInstructionMethods; -use dom::bindings::codegen::InheritTypes::{CharacterDataTypeId, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{NodeTypeId, ProcessingInstructionDerived}; +use dom::bindings::codegen::InheritTypes::CharacterDataTypeId; use dom::bindings::js::Root; use dom::characterdata::CharacterData; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::node::Node; use util::str::DOMString; @@ -20,13 +18,6 @@ pub struct ProcessingInstruction { target: DOMString, } -impl ProcessingInstructionDerived for EventTarget { - fn is_processinginstruction(&self) -> bool { - *self.type_id() == - EventTargetTypeId::Node(NodeTypeId::CharacterData(CharacterDataTypeId::ProcessingInstruction)) - } -} - impl ProcessingInstruction { fn new_inherited(target: DOMString, data: DOMString, document: &Document) -> ProcessingInstruction { ProcessingInstruction { diff --git a/components/script/dom/progressevent.rs b/components/script/dom/progressevent.rs index 529fc85a26ee..4a9d400f57a8 100644 --- a/components/script/dom/progressevent.rs +++ b/components/script/dom/progressevent.rs @@ -5,7 +5,7 @@ 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, EventTypeId, ProgressEventDerived}; +use dom::bindings::codegen::InheritTypes::EventCast; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::Root; @@ -21,12 +21,6 @@ pub struct ProgressEvent { total: u64 } -impl ProgressEventDerived for Event { - fn is_progressevent(&self) -> bool { - *self.type_id() == EventTypeId::ProgressEvent - } -} - impl ProgressEvent { fn new_inherited(length_computable: bool, loaded: u64, total: u64) -> ProgressEvent { ProgressEvent { diff --git a/components/script/dom/text.rs b/components/script/dom/text.rs index 264eaf48816c..eea2e58204e1 100644 --- a/components/script/dom/text.rs +++ b/components/script/dom/text.rs @@ -8,15 +8,13 @@ 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::{CharacterDataCast, CharacterDataTypeId}; -use dom::bindings::codegen::InheritTypes::{EventTargetTypeId, NodeCast}; -use dom::bindings::codegen::InheritTypes::{NodeTypeId, TextDerived}; +use dom::bindings::codegen::InheritTypes::{NodeCast, 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; use dom::document::Document; -use dom::eventtarget::EventTarget; use dom::node::Node; use util::str::DOMString; @@ -26,12 +24,6 @@ pub struct Text { characterdata: CharacterData, } -impl TextDerived for EventTarget { - fn is_text(&self) -> bool { - *self.type_id() == EventTargetTypeId::Node(NodeTypeId::CharacterData(CharacterDataTypeId::Text)) - } -} - impl Text { fn new_inherited(text: DOMString, document: &Document) -> Text { Text { diff --git a/components/script/dom/uievent.rs b/components/script/dom/uievent.rs index 7ae212116169..a28783bc6e45 100644 --- a/components/script/dom/uievent.rs +++ b/components/script/dom/uievent.rs @@ -5,7 +5,7 @@ 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, EventTypeId, UIEventDerived}; +use dom::bindings::codegen::InheritTypes::EventCast; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::Root; @@ -25,15 +25,6 @@ pub struct UIEvent { detail: Cell } -impl UIEventDerived for Event { - fn is_uievent(&self) -> bool { - match *self.type_id() { - EventTypeId::UIEvent(_) => true, - _ => false - } - } -} - impl UIEvent { pub fn new_inherited() -> UIEvent { UIEvent { diff --git a/components/script/dom/webglcontextevent.rs b/components/script/dom/webglcontextevent.rs index 52e3d4cdb3d7..1bba8849eb48 100644 --- a/components/script/dom/webglcontextevent.rs +++ b/components/script/dom/webglcontextevent.rs @@ -6,7 +6,7 @@ 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::{EventCast, EventTypeId, WebGLContextEventDerived}; +use dom::bindings::codegen::InheritTypes::EventCast; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::{Root, RootedReference}; @@ -27,12 +27,6 @@ impl WebGLContextEventMethods for WebGLContextEvent { } } -impl WebGLContextEventDerived for Event { - fn is_webglcontextevent(&self) -> bool { - *self.type_id() == EventTypeId::WebGLContextEvent - } -} - impl WebGLContextEvent { pub fn new_inherited(status_message: DOMString) -> WebGLContextEvent { WebGLContextEvent { diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index c4d04b3ec1c4..2c6868e3fdda 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -11,8 +11,7 @@ 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}; -use dom::bindings::codegen::InheritTypes::{EventTargetTypeId, NodeCast, WindowDerived}; +use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast, NodeCast}; use dom::bindings::error::{Error, Fallible, report_pending_exception}; use dom::bindings::global::GlobalRef; use dom::bindings::global::global_object_for_js_object; @@ -1385,9 +1384,3 @@ fn debug_reflow_events(goal: &ReflowGoal, query_type: &ReflowQueryType, reason: println!("{}", debug_msg); } - -impl WindowDerived for EventTarget { - fn is_window(&self) -> bool { - self.type_id() == &EventTargetTypeId::Window - } -} diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs index cbe1551f339d..8213b59c6acf 100644 --- a/components/script/dom/xmlhttprequest.rs +++ b/components/script/dom/xmlhttprequest.rs @@ -10,8 +10,7 @@ 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, EventTargetTypeId}; -use dom::bindings::codegen::InheritTypes::{XMLHttpRequestDerived, XMLHttpRequestEventTargetTypeId}; +use dom::bindings::codegen::InheritTypes::{EventCast, EventTargetCast}; use dom::bindings::codegen::UnionTypes::StringOrURLSearchParams; use dom::bindings::codegen::UnionTypes::StringOrURLSearchParams::{eString, eURLSearchParams}; use dom::bindings::conversions::ToJSValConvertible; @@ -24,7 +23,6 @@ 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; use dom::progressevent::ProgressEvent; use dom::xmlhttprequesteventtarget::XMLHttpRequestEventTarget; use dom::xmlhttprequestupload::XMLHttpRequestUpload; @@ -728,16 +726,6 @@ impl XMLHttpRequestMethods for XMLHttpRequest { } } - -impl XMLHttpRequestDerived for EventTarget { - fn is_xmlhttprequest(&self) -> bool { - match *self.type_id() { - EventTargetTypeId::XMLHttpRequestEventTarget(XMLHttpRequestEventTargetTypeId::XMLHttpRequest) => true, - _ => false - } - } -} - pub type TrustedXHRAddress = Trusted; diff --git a/components/script/dom/xmlhttprequesteventtarget.rs b/components/script/dom/xmlhttprequesteventtarget.rs index 257e4392132d..aa0604448cd4 100644 --- a/components/script/dom/xmlhttprequesteventtarget.rs +++ b/components/script/dom/xmlhttprequesteventtarget.rs @@ -5,7 +5,6 @@ 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::{EventTargetTypeId, XMLHttpRequestEventTargetDerived}; use dom::eventtarget::EventTarget; #[dom_struct] @@ -21,16 +20,6 @@ impl XMLHttpRequestEventTarget { } } -impl XMLHttpRequestEventTargetDerived for EventTarget { - fn is_xmlhttprequesteventtarget(&self) -> bool { - match *self.type_id() { - EventTargetTypeId::XMLHttpRequestEventTarget(_) => true, - _ => false - } - } - -} - impl XMLHttpRequestEventTargetMethods for XMLHttpRequestEventTarget { // https://xhr.spec.whatwg.org/#handler-xhr-onloadstart event_handler!(loadstart, GetOnloadstart, SetOnloadstart); diff --git a/components/script/dom/xmlhttprequestupload.rs b/components/script/dom/xmlhttprequestupload.rs index 2456d1079a50..e426c63c30c6 100644 --- a/components/script/dom/xmlhttprequestupload.rs +++ b/components/script/dom/xmlhttprequestupload.rs @@ -3,13 +3,9 @@ * 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; use dom::xmlhttprequesteventtarget::XMLHttpRequestEventTarget; #[dom_struct] @@ -29,10 +25,3 @@ impl XMLHttpRequestUpload { XMLHttpRequestUploadBinding::Wrap) } } - -impl XMLHttpRequestUploadDerived for EventTarget { - fn is_xmlhttprequestupload(&self) -> bool { - *self.type_id() == - EventTargetTypeId::XMLHttpRequestEventTarget(XMLHttpRequestEventTargetTypeId::XMLHttpRequestUpload) - } -} From 7d6ea834790445d2ea71ca186484ef59ac2ac268 Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Mon, 28 Sep 2015 01:07:32 +0200 Subject: [PATCH 2/2] Explicitly customise flags of new nodes where needed Given codegen now generates the various TypeId enums, it seems pointless to still have to write their respective values in every DOM struct inheriting from Node just to set the initial IS_IN_DOC flag in Document and IN_ENABLED_STATE in form controls. --- .../plugins/lints/unrooted_must_root.rs | 3 +- components/script/dom/characterdata.rs | 7 ++-- components/script/dom/comment.rs | 3 +- components/script/dom/document.rs | 2 +- components/script/dom/documentfragment.rs | 4 +-- components/script/dom/documenttype.rs | 4 +-- components/script/dom/element.rs | 21 ++++++++---- components/script/dom/htmlanchorelement.rs | 5 ++- components/script/dom/htmlappletelement.rs | 4 +-- components/script/dom/htmlareaelement.rs | 4 +-- components/script/dom/htmlaudioelement.rs | 3 +- components/script/dom/htmlbaseelement.rs | 4 +-- components/script/dom/htmlbodyelement.rs | 8 ++--- components/script/dom/htmlbrelement.rs | 3 +- components/script/dom/htmlbuttonelement.rs | 9 ++--- components/script/dom/htmlcanvaselement.rs | 4 +-- components/script/dom/htmldataelement.rs | 3 +- components/script/dom/htmldatalistelement.rs | 4 +-- components/script/dom/htmldialogelement.rs | 3 +- components/script/dom/htmldirectoryelement.rs | 3 +- components/script/dom/htmldivelement.rs | 3 +- components/script/dom/htmldlistelement.rs | 3 +- components/script/dom/htmlelement.rs | 17 ++++++---- components/script/dom/htmlembedelement.rs | 3 +- components/script/dom/htmlfieldsetelement.rs | 5 +-- components/script/dom/htmlfontelement.rs | 4 +-- components/script/dom/htmlformelement.rs | 2 +- components/script/dom/htmlframeelement.rs | 3 +- components/script/dom/htmlframesetelement.rs | 3 +- components/script/dom/htmlheadelement.rs | 4 +-- components/script/dom/htmlheadingelement.rs | 3 +- components/script/dom/htmlhrelement.rs | 3 +- components/script/dom/htmlhtmlelement.rs | 3 +- components/script/dom/htmliframeelement.rs | 8 ++--- components/script/dom/htmlimageelement.rs | 6 ++-- components/script/dom/htmlinputelement.rs | 9 ++--- components/script/dom/htmllabelelement.rs | 3 +- components/script/dom/htmllegendelement.rs | 3 +- components/script/dom/htmllielement.rs | 3 +- components/script/dom/htmllinkelement.rs | 6 ++-- components/script/dom/htmlmapelement.rs | 3 +- components/script/dom/htmlmediaelement.rs | 5 ++- components/script/dom/htmlmetaelement.rs | 5 ++- components/script/dom/htmlmeterelement.rs | 3 +- components/script/dom/htmlmodelement.rs | 3 +- components/script/dom/htmlobjectelement.rs | 4 +-- components/script/dom/htmlolistelement.rs | 3 +- components/script/dom/htmloptgroupelement.rs | 8 ++--- components/script/dom/htmloptionelement.rs | 9 ++--- components/script/dom/htmloutputelement.rs | 3 +- components/script/dom/htmlparagraphelement.rs | 3 +- components/script/dom/htmlparamelement.rs | 3 +- components/script/dom/htmlpreelement.rs | 3 +- components/script/dom/htmlprogresselement.rs | 3 +- components/script/dom/htmlquoteelement.rs | 3 +- components/script/dom/htmlscriptelement.rs | 5 ++- components/script/dom/htmlselectelement.rs | 8 ++--- components/script/dom/htmlsourceelement.rs | 3 +- components/script/dom/htmlspanelement.rs | 3 +- components/script/dom/htmlstyleelement.rs | 5 ++- .../script/dom/htmltablecaptionelement.rs | 3 +- components/script/dom/htmltablecellelement.rs | 9 ++--- components/script/dom/htmltablecolelement.rs | 3 +- .../script/dom/htmltabledatacellelement.rs | 4 +-- components/script/dom/htmltableelement.rs | 9 ++--- .../script/dom/htmltableheadercellelement.rs | 5 ++- components/script/dom/htmltablerowelement.rs | 7 ++-- .../script/dom/htmltablesectionelement.rs | 7 ++-- components/script/dom/htmltemplateelement.rs | 5 ++- components/script/dom/htmltextareaelement.rs | 11 +++--- components/script/dom/htmltimeelement.rs | 3 +- components/script/dom/htmltitleelement.rs | 4 +-- components/script/dom/htmltrackelement.rs | 3 +- components/script/dom/htmlulistelement.rs | 3 +- components/script/dom/htmlunknownelement.rs | 3 +- components/script/dom/htmlvideoelement.rs | 3 +- components/script/dom/node.rs | 34 +++++++------------ .../script/dom/processinginstruction.rs | 3 +- components/script/dom/text.rs | 5 ++- 79 files changed, 173 insertions(+), 231 deletions(-) diff --git a/components/plugins/lints/unrooted_must_root.rs b/components/plugins/lints/unrooted_must_root.rs index 25bae996f347..cc2ce5d82205 100644 --- a/components/plugins/lints/unrooted_must_root.rs +++ b/components/plugins/lints/unrooted_must_root.rs @@ -126,8 +126,7 @@ impl LateLintPass for UnrootedPass { match kind { visit::FnKind::ItemFn(n, _, _, _, _, _) | visit::FnKind::Method(n, _, _) if n.as_str() == "new" - || n.as_str() == "new_inherited" - || n.as_str() == "new_initialized" => { + || n.as_str().starts_with("new_") => { self.in_new_function = true; return; }, diff --git a/components/script/dom/characterdata.rs b/components/script/dom/characterdata.rs index 0ab605f5dd2a..fce14f68c3d3 100644 --- a/components/script/dom/characterdata.rs +++ b/components/script/dom/characterdata.rs @@ -6,8 +6,7 @@ use dom::bindings::cell::DOMRefCell; use dom::bindings::codegen::Bindings::CharacterDataBinding::CharacterDataMethods; -use dom::bindings::codegen::InheritTypes::{CharacterDataTypeId, ElementCast}; -use dom::bindings::codegen::InheritTypes::{NodeCast, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::{ElementCast, NodeCast}; use dom::bindings::codegen::UnionTypes::NodeOrString; use dom::bindings::error::{Error, ErrorResult, Fallible}; use dom::bindings::js::{LayoutJS, Root}; @@ -26,9 +25,9 @@ pub struct CharacterData { } impl CharacterData { - pub fn new_inherited(id: CharacterDataTypeId, data: DOMString, document: &Document) -> CharacterData { + pub fn new_inherited(data: DOMString, document: &Document) -> CharacterData { CharacterData { - node: Node::new_inherited(NodeTypeId::CharacterData(id), document), + node: Node::new_inherited(document), data: DOMRefCell::new(data), } } diff --git a/components/script/dom/comment.rs b/components/script/dom/comment.rs index fc0982a4e367..3bed2a647dd7 100644 --- a/components/script/dom/comment.rs +++ b/components/script/dom/comment.rs @@ -4,7 +4,6 @@ use dom::bindings::codegen::Bindings::CommentBinding; use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods; -use dom::bindings::codegen::InheritTypes::CharacterDataTypeId; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::Root; @@ -22,7 +21,7 @@ pub struct Comment { impl Comment { fn new_inherited(text: DOMString, document: &Document) -> Comment { Comment { - characterdata: CharacterData::new_inherited(CharacterDataTypeId::Comment, text, document) + characterdata: CharacterData::new_inherited(text, document) } } diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index f64c28b77241..0419895233bd 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -1019,7 +1019,7 @@ impl Document { }; Document { - node: Node::new_without_doc(NodeTypeId::Document), + node: Node::new_document_node(), window: JS::from_ref(window), idmap: DOMRefCell::new(HashMap::new()), implementation: Default::default(), diff --git a/components/script/dom/documentfragment.rs b/components/script/dom/documentfragment.rs index 9c859aa28ec8..fd6716802ec2 100644 --- a/components/script/dom/documentfragment.rs +++ b/components/script/dom/documentfragment.rs @@ -5,7 +5,7 @@ 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::{ElementCast, NodeCast, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::{ElementCast, NodeCast}; use dom::bindings::codegen::UnionTypes::NodeOrString; use dom::bindings::error::{ErrorResult, Fallible}; use dom::bindings::global::GlobalRef; @@ -28,7 +28,7 @@ impl DocumentFragment { /// Creates a new DocumentFragment. fn new_inherited(document: &Document) -> DocumentFragment { DocumentFragment { - node: Node::new_inherited(NodeTypeId::DocumentFragment, document), + node: Node::new_inherited(document), } } diff --git a/components/script/dom/documenttype.rs b/components/script/dom/documenttype.rs index 178ea354d862..4372ac1abfbb 100644 --- a/components/script/dom/documenttype.rs +++ b/components/script/dom/documenttype.rs @@ -4,7 +4,7 @@ use dom::bindings::codegen::Bindings::DocumentTypeBinding; use dom::bindings::codegen::Bindings::DocumentTypeBinding::DocumentTypeMethods; -use dom::bindings::codegen::InheritTypes::{NodeCast, NodeTypeId}; +use dom::bindings::codegen::InheritTypes::NodeCast; use dom::bindings::codegen::UnionTypes::NodeOrString; use dom::bindings::error::ErrorResult; use dom::bindings::js::Root; @@ -30,7 +30,7 @@ impl DocumentType { document: &Document) -> DocumentType { DocumentType { - node: Node::new_inherited(NodeTypeId::DocumentType, document), + node: Node::new_inherited(document), name: name, public_id: public_id.unwrap_or("".to_owned()), system_id: system_id.unwrap_or("".to_owned()) diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index 0a26bd9c182c..651142df7135 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -46,9 +46,9 @@ use dom::htmltablecellelement::HTMLTableCellElementLayoutHelpers; use dom::htmltableelement::HTMLTableElement; use dom::htmltextareaelement::RawLayoutHTMLTextAreaElementHelpers; use dom::namednodemap::NamedNodeMap; -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::node::{CLICK_IN_PROGRESS, LayoutNodeHelpers, Node}; +use dom::node::{NodeDamage, NodeFlags, SEQUENTIALLY_FOCUSABLE}; +use dom::node::{document_from_node, window_from_node}; use dom::nodelist::NodeList; use dom::virtualmethods::{VirtualMethods, vtable_for}; use html5ever::serialize; @@ -111,11 +111,20 @@ impl Element { create_element(name, prefix, document, creator) } - pub fn new_inherited(type_id: ElementTypeId, local_name: DOMString, + + pub fn new_inherited(local_name: DOMString, namespace: Namespace, prefix: Option, document: &Document) -> Element { + Element::new_inherited_with_flags(NodeFlags::new(), local_name, + namespace, prefix, document) + } + + pub fn new_inherited_with_flags(flags: NodeFlags, local_name: DOMString, + namespace: Namespace, prefix: Option, + document: &Document) + -> Element { Element { - node: Node::new_inherited(NodeTypeId::Element(type_id), document), + node: Node::new_inherited_with_flags(flags, document), local_name: Atom::from_slice(&local_name), namespace: namespace, prefix: prefix, @@ -132,7 +141,7 @@ impl Element { prefix: Option, document: &Document) -> Root { Node::reflect_node( - box Element::new_inherited(ElementTypeId::Element, local_name, namespace, prefix, document), + box Element::new_inherited(local_name, namespace, prefix, document), document, ElementBinding::Wrap) } diff --git a/components/script/dom/htmlanchorelement.rs b/components/script/dom/htmlanchorelement.rs index 09f3c31de797..ca775b45672d 100644 --- a/components/script/dom/htmlanchorelement.rs +++ b/components/script/dom/htmlanchorelement.rs @@ -11,8 +11,7 @@ use dom::bindings::codegen::Bindings::HTMLAnchorElementBinding::HTMLAnchorElemen 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::{HTMLElementTypeId, HTMLImageElementDerived}; -use dom::bindings::codegen::InheritTypes::{MouseEventCast, NodeCast}; +use dom::bindings::codegen::InheritTypes::{HTMLImageElementDerived, MouseEventCast, NodeCast}; use dom::bindings::js::{JS, MutNullableHeap, Root}; use dom::document::Document; use dom::domtokenlist::DOMTokenList; @@ -40,7 +39,7 @@ impl HTMLAnchorElement { document: &Document) -> HTMLAnchorElement { HTMLAnchorElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLAnchorElement, localName, prefix, document), + HTMLElement::new_inherited(localName, prefix, document), rel_list: Default::default(), } } diff --git a/components/script/dom/htmlappletelement.rs b/components/script/dom/htmlappletelement.rs index fb82c6801c63..e01a03b5e47f 100644 --- a/components/script/dom/htmlappletelement.rs +++ b/components/script/dom/htmlappletelement.rs @@ -5,7 +5,7 @@ use dom::attr::AttrValue; use dom::bindings::codegen::Bindings::HTMLAppletElementBinding; use dom::bindings::codegen::Bindings::HTMLAppletElementBinding::HTMLAppletElementMethods; -use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementCast; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -25,7 +25,7 @@ impl HTMLAppletElement { document: &Document) -> HTMLAppletElement { HTMLAppletElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLAppletElement, localName, prefix, document) + HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlareaelement.rs b/components/script/dom/htmlareaelement.rs index 0ef48d4b742e..bb17cdb0ad39 100644 --- a/components/script/dom/htmlareaelement.rs +++ b/components/script/dom/htmlareaelement.rs @@ -5,7 +5,7 @@ use dom::attr::AttrValue; use dom::bindings::codegen::Bindings::HTMLAreaElementBinding; use dom::bindings::codegen::Bindings::HTMLAreaElementBinding::HTMLAreaElementMethods; -use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, HTMLElementTypeId}; +use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast}; use dom::bindings::js::{JS, MutNullableHeap, Root}; use dom::bindings::utils::Reflectable; use dom::document::Document; @@ -26,7 +26,7 @@ pub struct HTMLAreaElement { impl HTMLAreaElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLAreaElement { HTMLAreaElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLAreaElement, localName, prefix, document), + htmlelement: HTMLElement::new_inherited(localName, prefix, document), rel_list: Default::default(), } } diff --git a/components/script/dom/htmlaudioelement.rs b/components/script/dom/htmlaudioelement.rs index 8f8101c3f328..ed0b89cca270 100644 --- a/components/script/dom/htmlaudioelement.rs +++ b/components/script/dom/htmlaudioelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLAudioElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLMediaElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlmediaelement::HTMLMediaElement; @@ -21,7 +20,7 @@ impl HTMLAudioElement { document: &Document) -> HTMLAudioElement { HTMLAudioElement { htmlmediaelement: - HTMLMediaElement::new_inherited(HTMLMediaElementTypeId::HTMLAudioElement, localName, prefix, document) + HTMLMediaElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlbaseelement.rs b/components/script/dom/htmlbaseelement.rs index c282b52c5b46..9fb36ae44d5c 100644 --- a/components/script/dom/htmlbaseelement.rs +++ b/components/script/dom/htmlbaseelement.rs @@ -4,7 +4,7 @@ use dom::attr::Attr; use dom::bindings::codegen::Bindings::HTMLBaseElementBinding; -use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, HTMLElementTypeId}; +use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast}; use dom::bindings::js::Root; use dom::document::Document; use dom::element::AttributeMutation; @@ -22,7 +22,7 @@ pub struct HTMLBaseElement { impl HTMLBaseElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLBaseElement { HTMLBaseElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLBaseElement, localName, prefix, document) + htmlelement: HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlbodyelement.rs b/components/script/dom/htmlbodyelement.rs index 95311f2330a3..806086a6b036 100644 --- a/components/script/dom/htmlbodyelement.rs +++ b/components/script/dom/htmlbodyelement.rs @@ -8,8 +8,7 @@ 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::{HTMLElementCast, HTMLElementTypeId}; +use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast, HTMLElementCast}; use dom::bindings::js::Root; use dom::bindings::utils::Reflectable; use dom::document::Document; @@ -42,10 +41,7 @@ impl HTMLBodyElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLBodyElement { HTMLBodyElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLBodyElement, - localName, - prefix, - document), + htmlelement: HTMLElement::new_inherited(localName, prefix, document), background_color: Cell::new(None), background: DOMRefCell::new(None) } diff --git a/components/script/dom/htmlbrelement.rs b/components/script/dom/htmlbrelement.rs index 64e8a12e1f61..3007e7725158 100644 --- a/components/script/dom/htmlbrelement.rs +++ b/components/script/dom/htmlbrelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLBRElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -18,7 +17,7 @@ pub struct HTMLBRElement { impl HTMLBRElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLBRElement { HTMLBRElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLBRElement, localName, prefix, document) + htmlelement: HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlbuttonelement.rs b/components/script/dom/htmlbuttonelement.rs index a2c40fbc10b9..104619aecbbb 100644 --- a/components/script/dom/htmlbuttonelement.rs +++ b/components/script/dom/htmlbuttonelement.rs @@ -6,8 +6,7 @@ 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}; -use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId}; +use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLButtonElementCast, HTMLElementCast}; use dom::bindings::codegen::InheritTypes::{HTMLFieldSetElementDerived, NodeCast}; use dom::bindings::js::Root; use dom::document::Document; @@ -17,7 +16,8 @@ use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::htmlformelement::{FormControl, FormSubmitter}; use dom::htmlformelement::{SubmittedFrom, HTMLFormElement}; -use dom::node::{Node, document_from_node, window_from_node}; +use dom::node::{IN_ENABLED_STATE, Node, NodeFlags}; +use dom::node::{document_from_node, window_from_node}; use dom::validitystate::ValidityState; use dom::virtualmethods::VirtualMethods; use std::ascii::AsciiExt; @@ -47,7 +47,8 @@ impl HTMLButtonElement { document: &Document) -> HTMLButtonElement { HTMLButtonElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLButtonElement, localName, prefix, document), + HTMLElement::new_inherited_with_flags(NodeFlags::new() | IN_ENABLED_STATE, + localName, prefix, document), //TODO: implement button_type in attribute_mutated button_type: Cell::new(ButtonType::ButtonSubmit) } diff --git a/components/script/dom/htmlcanvaselement.rs b/components/script/dom/htmlcanvaselement.rs index 87c54fa42ae8..f698f42fe264 100644 --- a/components/script/dom/htmlcanvaselement.rs +++ b/components/script/dom/htmlcanvaselement.rs @@ -7,7 +7,7 @@ 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::{ElementCast, HTMLElementCast, HTMLElementTypeId}; +use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast}; use dom::bindings::codegen::UnionTypes::CanvasRenderingContext2DOrWebGLRenderingContext; use dom::bindings::global::GlobalRef; use dom::bindings::js::{HeapGCValue, JS, LayoutJS, MutNullableHeap, Root}; @@ -60,7 +60,7 @@ impl HTMLCanvasElement { document: &Document) -> HTMLCanvasElement { HTMLCanvasElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLCanvasElement, localName, prefix, document), + HTMLElement::new_inherited(localName, prefix, document), context: Default::default(), width: Cell::new(DEFAULT_WIDTH), height: Cell::new(DEFAULT_HEIGHT), diff --git a/components/script/dom/htmldataelement.rs b/components/script/dom/htmldataelement.rs index be5657f6932d..dbbd1c5cdcf7 100644 --- a/components/script/dom/htmldataelement.rs +++ b/components/script/dom/htmldataelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLDataElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -20,7 +19,7 @@ impl HTMLDataElement { prefix: Option, document: &Document) -> HTMLDataElement { HTMLDataElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLDataElement, localName, prefix, document) + htmlelement: HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmldatalistelement.rs b/components/script/dom/htmldatalistelement.rs index 8d455eaa4996..66d625437b69 100644 --- a/components/script/dom/htmldatalistelement.rs +++ b/components/script/dom/htmldatalistelement.rs @@ -4,7 +4,7 @@ use dom::bindings::codegen::Bindings::HTMLDataListElementBinding; use dom::bindings::codegen::Bindings::HTMLDataListElementBinding::HTMLDataListElementMethods; -use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLOptionElementDerived, NodeCast}; +use dom::bindings::codegen::InheritTypes::{HTMLOptionElementDerived, NodeCast}; use dom::bindings::js::Root; use dom::document::Document; use dom::element::Element; @@ -24,7 +24,7 @@ impl HTMLDataListElement { document: &Document) -> HTMLDataListElement { HTMLDataListElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLDataListElement, localName, prefix, document) + HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmldialogelement.rs b/components/script/dom/htmldialogelement.rs index 7cff2e2a9a57..0d9e534f85ca 100644 --- a/components/script/dom/htmldialogelement.rs +++ b/components/script/dom/htmldialogelement.rs @@ -5,7 +5,6 @@ use dom::bindings::cell::DOMRefCell; use dom::bindings::codegen::Bindings::HTMLDialogElementBinding; use dom::bindings::codegen::Bindings::HTMLDialogElementBinding::HTMLDialogElementMethods; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -25,7 +24,7 @@ impl HTMLDialogElement { document: &Document) -> HTMLDialogElement { HTMLDialogElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLDialogElement, localName, prefix, document), + HTMLElement::new_inherited(localName, prefix, document), return_value: DOMRefCell::new("".to_owned()), } } diff --git a/components/script/dom/htmldirectoryelement.rs b/components/script/dom/htmldirectoryelement.rs index 0010aab60b5c..231fb3a711dc 100644 --- a/components/script/dom/htmldirectoryelement.rs +++ b/components/script/dom/htmldirectoryelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLDirectoryElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -21,7 +20,7 @@ impl HTMLDirectoryElement { document: &Document) -> HTMLDirectoryElement { HTMLDirectoryElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLDirectoryElement, localName, prefix, document) + HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmldivelement.rs b/components/script/dom/htmldivelement.rs index 7f0ce6ab4a08..22ebca4b893b 100644 --- a/components/script/dom/htmldivelement.rs +++ b/components/script/dom/htmldivelement.rs @@ -3,7 +3,6 @@ * 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::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -20,7 +19,7 @@ impl HTMLDivElement { prefix: Option, document: &Document) -> HTMLDivElement { HTMLDivElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLDivElement, localName, prefix, document) + htmlelement: HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmldlistelement.rs b/components/script/dom/htmldlistelement.rs index ac3fbdde1b1a..5c42844a717f 100644 --- a/components/script/dom/htmldlistelement.rs +++ b/components/script/dom/htmldlistelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLDListElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -19,7 +18,7 @@ impl HTMLDListElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLDListElement { HTMLDListElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLDListElement, localName, prefix, document) + HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlelement.rs b/components/script/dom/htmlelement.rs index 01a6856e0665..48154d250429 100644 --- a/components/script/dom/htmlelement.rs +++ b/components/script/dom/htmlelement.rs @@ -22,7 +22,8 @@ use dom::document::Document; use dom::domstringmap::DOMStringMap; use dom::element::{AttributeMutation, Element}; use dom::htmlinputelement::HTMLInputElement; -use dom::node::{Node, SEQUENTIALLY_FOCUSABLE, document_from_node, window_from_node}; +use dom::node::{Node, NodeFlags, SEQUENTIALLY_FOCUSABLE}; +use dom::node::{document_from_node, window_from_node}; use dom::virtualmethods::VirtualMethods; use msg::constellation_msg::FocusType; use std::borrow::ToOwned; @@ -46,13 +47,17 @@ impl PartialEq for HTMLElement { } impl HTMLElement { - pub fn new_inherited(type_id: HTMLElementTypeId, - tag_name: DOMString, - prefix: Option, + pub fn new_inherited(tag_name: DOMString, prefix: Option, document: &Document) -> HTMLElement { + HTMLElement::new_inherited_with_flags(NodeFlags::new(), tag_name, prefix, document) + } + + pub fn new_inherited_with_flags(flags: NodeFlags, tag_name: DOMString, + prefix: Option, document: &Document) + -> HTMLElement { HTMLElement { element: - Element::new_inherited(ElementTypeId::HTMLElement(type_id), tag_name, ns!(HTML), prefix, document), + Element::new_inherited_with_flags(flags, tag_name, ns!(HTML), prefix, document), style_decl: Default::default(), dataset: Default::default(), } @@ -60,7 +65,7 @@ impl HTMLElement { #[allow(unrooted_must_root)] pub fn new(localName: DOMString, prefix: Option, document: &Document) -> Root { - let element = HTMLElement::new_inherited(HTMLElementTypeId::HTMLElement, localName, prefix, document); + let element = HTMLElement::new_inherited(localName, prefix, document); Node::reflect_node(box element, document, HTMLElementBinding::Wrap) } diff --git a/components/script/dom/htmlembedelement.rs b/components/script/dom/htmlembedelement.rs index 07f50ce900a4..7af4dac4da7a 100644 --- a/components/script/dom/htmlembedelement.rs +++ b/components/script/dom/htmlembedelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLEmbedElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -18,7 +17,7 @@ pub struct HTMLEmbedElement { impl HTMLEmbedElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLEmbedElement { HTMLEmbedElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLEmbedElement, localName, prefix, document) + htmlelement: HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlfieldsetelement.rs b/components/script/dom/htmlfieldsetelement.rs index 32b8901895ac..c50f3bf67568 100644 --- a/components/script/dom/htmlfieldsetelement.rs +++ b/components/script/dom/htmlfieldsetelement.rs @@ -14,7 +14,7 @@ use dom::element::{AttributeMutation, Element}; use dom::htmlcollection::{CollectionFilter, HTMLCollection}; use dom::htmlelement::HTMLElement; use dom::htmlformelement::{FormControl, HTMLFormElement}; -use dom::node::{Node, window_from_node}; +use dom::node::{IN_ENABLED_STATE, Node, NodeFlags, window_from_node}; use dom::validitystate::ValidityState; use dom::virtualmethods::VirtualMethods; use util::str::{DOMString, StaticStringVec}; @@ -30,7 +30,8 @@ impl HTMLFieldSetElement { document: &Document) -> HTMLFieldSetElement { HTMLFieldSetElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLFieldSetElement, localName, prefix, document) + HTMLElement::new_inherited_with_flags(NodeFlags::new() | IN_ENABLED_STATE, + localName, prefix, document) } } diff --git a/components/script/dom/htmlfontelement.rs b/components/script/dom/htmlfontelement.rs index a7be20fe10ad..1ab84f4b4d86 100644 --- a/components/script/dom/htmlfontelement.rs +++ b/components/script/dom/htmlfontelement.rs @@ -7,7 +7,7 @@ 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, HTMLElementTypeId}; +use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast}; use dom::bindings::js::Root; use dom::document::Document; use dom::element::{AttributeMutation, RawLayoutElementHelpers}; @@ -30,7 +30,7 @@ pub struct HTMLFontElement { impl HTMLFontElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLFontElement { HTMLFontElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLFontElement, localName, prefix, document), + htmlelement: HTMLElement::new_inherited(localName, prefix, document), color: Cell::new(None), face: DOMRefCell::new(None), } diff --git a/components/script/dom/htmlformelement.rs b/components/script/dom/htmlformelement.rs index 03d6a8268729..46caced7d45d 100644 --- a/components/script/dom/htmlformelement.rs +++ b/components/script/dom/htmlformelement.rs @@ -55,7 +55,7 @@ impl HTMLFormElement { prefix: Option, document: &Document) -> HTMLFormElement { HTMLFormElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLFormElement, localName, prefix, document), + htmlelement: HTMLElement::new_inherited(localName, prefix, document), marked_for_reset: Cell::new(false), } } diff --git a/components/script/dom/htmlframeelement.rs b/components/script/dom/htmlframeelement.rs index 9bb3251ffb0d..72b6307096a4 100644 --- a/components/script/dom/htmlframeelement.rs +++ b/components/script/dom/htmlframeelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLFrameElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -18,7 +17,7 @@ pub struct HTMLFrameElement { impl HTMLFrameElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLFrameElement { HTMLFrameElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLFrameElement, localName, prefix, document) + htmlelement: HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlframesetelement.rs b/components/script/dom/htmlframesetelement.rs index 1d47c7e4cc0b..9db912622648 100644 --- a/components/script/dom/htmlframesetelement.rs +++ b/components/script/dom/htmlframesetelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLFrameSetElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -21,7 +20,7 @@ impl HTMLFrameSetElement { document: &Document) -> HTMLFrameSetElement { HTMLFrameSetElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLFrameSetElement, localName, prefix, document) + HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlheadelement.rs b/components/script/dom/htmlheadelement.rs index 58ca3f7a94da..cc5d3d70562d 100644 --- a/components/script/dom/htmlheadelement.rs +++ b/components/script/dom/htmlheadelement.rs @@ -3,7 +3,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLHeadElementBinding; -use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId}; +use dom::bindings::codegen::InheritTypes::HTMLElementCast; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -22,7 +22,7 @@ impl HTMLHeadElement { prefix: Option, document: &Document) -> HTMLHeadElement { HTMLHeadElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLHeadElement, localName, prefix, document) + htmlelement: HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlheadingelement.rs b/components/script/dom/htmlheadingelement.rs index 65e774a27a97..f0aa4c046c74 100644 --- a/components/script/dom/htmlheadingelement.rs +++ b/components/script/dom/htmlheadingelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLHeadingElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -33,7 +32,7 @@ impl HTMLHeadingElement { level: HeadingLevel) -> HTMLHeadingElement { HTMLHeadingElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLHeadingElement, localName, prefix, document), + HTMLElement::new_inherited(localName, prefix, document), level: level, } } diff --git a/components/script/dom/htmlhrelement.rs b/components/script/dom/htmlhrelement.rs index af57c8d59a81..dc5ab695d6ba 100644 --- a/components/script/dom/htmlhrelement.rs +++ b/components/script/dom/htmlhrelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLHRElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -18,7 +17,7 @@ pub struct HTMLHRElement { impl HTMLHRElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLHRElement { HTMLHRElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLHRElement, localName, prefix, document) + htmlelement: HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlhtmlelement.rs b/components/script/dom/htmlhtmlelement.rs index f9c188298e59..85f940515470 100644 --- a/components/script/dom/htmlhtmlelement.rs +++ b/components/script/dom/htmlhtmlelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLHtmlElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -18,7 +17,7 @@ pub struct HTMLHtmlElement { impl HTMLHtmlElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLHtmlElement { HTMLHtmlElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLHtmlElement, localName, prefix, document) + htmlelement: HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs index 4f88cc7a0f24..9e09e836d855 100644 --- a/components/script/dom/htmliframeelement.rs +++ b/components/script/dom/htmliframeelement.rs @@ -6,9 +6,8 @@ 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::{ElementCast, EventCast}; -use dom::bindings::codegen::InheritTypes::{EventTargetCast, HTMLElementCast}; -use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, NodeCast}; +use dom::bindings::codegen::InheritTypes::{ElementCast, EventCast, EventTargetCast}; +use dom::bindings::codegen::InheritTypes::{HTMLElementCast, NodeCast}; use dom::bindings::conversions::ToJSValConvertible; use dom::bindings::error::{Error, ErrorResult, Fallible}; use dom::bindings::global::GlobalRef; @@ -185,8 +184,7 @@ impl HTMLIFrameElement { prefix: Option, document: &Document) -> HTMLIFrameElement { HTMLIFrameElement { - htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLIFrameElement, localName, prefix, document), + htmlelement: HTMLElement::new_inherited(localName, prefix, document), pipeline_id: Cell::new(None), subpage_id: Cell::new(None), containing_page_pipeline_id: Cell::new(None), diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs index f4a096ce17b4..c07022306d6e 100644 --- a/components/script/dom/htmlimageelement.rs +++ b/components/script/dom/htmlimageelement.rs @@ -8,8 +8,8 @@ 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, HTMLElementCast}; -use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, NodeCast}; +use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast}; +use dom::bindings::codegen::InheritTypes::{HTMLElementCast, NodeCast}; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::{LayoutJS, Root}; @@ -134,7 +134,7 @@ impl HTMLImageElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLImageElement { HTMLImageElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLImageElement, localName, prefix, document), + htmlelement: HTMLElement::new_inherited(localName, prefix, document), url: DOMRefCell::new(None), image: DOMRefCell::new(None), } diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs index 70179e5b3ccd..cc0aabdc9cb3 100644 --- a/components/script/dom/htmlinputelement.rs +++ b/components/script/dom/htmlinputelement.rs @@ -11,8 +11,7 @@ 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::{ElementCast, EventTargetCast}; -use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId}; +use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast, HTMLElementCast}; use dom::bindings::codegen::InheritTypes::{HTMLFieldSetElementDerived, HTMLInputElementCast}; use dom::bindings::codegen::InheritTypes::{KeyboardEventCast, NodeCast}; use dom::bindings::global::GlobalRef; @@ -25,7 +24,7 @@ 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}; +use dom::node::{IN_ENABLED_STATE, Node, NodeDamage, NodeFlags}; use dom::node::{document_from_node, window_from_node}; use dom::virtualmethods::VirtualMethods; use msg::constellation_msg::ConstellationChan; @@ -109,7 +108,9 @@ impl HTMLInputElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLInputElement { let chan = document.window().r().constellation_chan(); HTMLInputElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLInputElement, localName, prefix, document), + htmlelement: + HTMLElement::new_inherited_with_flags(NodeFlags::new() | IN_ENABLED_STATE, + localName, prefix, document), input_type: Cell::new(InputType::InputText), checked: Cell::new(false), placeholder: DOMRefCell::new("".to_owned()), diff --git a/components/script/dom/htmllabelelement.rs b/components/script/dom/htmllabelelement.rs index b39d88fb33c4..3beefc3db9a6 100644 --- a/components/script/dom/htmllabelelement.rs +++ b/components/script/dom/htmllabelelement.rs @@ -4,7 +4,6 @@ use dom::bindings::codegen::Bindings::HTMLLabelElementBinding; use dom::bindings::codegen::Bindings::HTMLLabelElementBinding::HTMLLabelElementMethods; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -23,7 +22,7 @@ impl HTMLLabelElement { document: &Document) -> HTMLLabelElement { HTMLLabelElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLLabelElement, localName, prefix, document) + HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmllegendelement.rs b/components/script/dom/htmllegendelement.rs index a750ef3d2e3a..bc99bcec2b1d 100644 --- a/components/script/dom/htmllegendelement.rs +++ b/components/script/dom/htmllegendelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLLegendElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -21,7 +20,7 @@ impl HTMLLegendElement { document: &Document) -> HTMLLegendElement { HTMLLegendElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLLegendElement, localName, prefix, document) + HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmllielement.rs b/components/script/dom/htmllielement.rs index 85a76d553c4a..00a99791b8f3 100644 --- a/components/script/dom/htmllielement.rs +++ b/components/script/dom/htmllielement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLLIElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -18,7 +17,7 @@ pub struct HTMLLIElement { impl HTMLLIElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLLIElement { HTMLLIElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLLIElement, localName, prefix, document) + htmlelement: HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmllinkelement.rs b/components/script/dom/htmllinkelement.rs index efbcddee8e85..6f1dc1488520 100644 --- a/components/script/dom/htmllinkelement.rs +++ b/components/script/dom/htmllinkelement.rs @@ -8,8 +8,8 @@ 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, EventTargetCast, HTMLElementCast}; -use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, NodeCast}; +use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast}; +use dom::bindings::codegen::InheritTypes::{HTMLElementCast, NodeCast}; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, MutNullableHeap, Root}; use dom::bindings::js::{RootedReference}; @@ -42,7 +42,7 @@ pub struct HTMLLinkElement { impl HTMLLinkElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLLinkElement { HTMLLinkElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLLinkElement, localName, prefix, document), + htmlelement: HTMLElement::new_inherited(localName, prefix, document), rel_list: Default::default(), } } diff --git a/components/script/dom/htmlmapelement.rs b/components/script/dom/htmlmapelement.rs index fce5c4f00328..30816c51409d 100644 --- a/components/script/dom/htmlmapelement.rs +++ b/components/script/dom/htmlmapelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLMapElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -20,7 +19,7 @@ impl HTMLMapElement { prefix: Option, document: &Document) -> HTMLMapElement { HTMLMapElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLMapElement, localName, prefix, document) + htmlelement: HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs index ca042fb04caf..06c2f32a7a4e 100644 --- a/components/script/dom/htmlmediaelement.rs +++ b/components/script/dom/htmlmediaelement.rs @@ -2,7 +2,6 @@ * 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::{HTMLElementTypeId, HTMLMediaElementTypeId}; use dom::document::Document; use dom::htmlelement::HTMLElement; use util::str::DOMString; @@ -13,12 +12,12 @@ pub struct HTMLMediaElement { } impl HTMLMediaElement { - pub fn new_inherited(type_id: HTMLMediaElementTypeId, tag_name: DOMString, + pub fn new_inherited(tag_name: DOMString, prefix: Option, document: &Document) -> HTMLMediaElement { HTMLMediaElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLMediaElement(type_id), tag_name, prefix, document) + HTMLElement::new_inherited(tag_name, prefix, document) } } diff --git a/components/script/dom/htmlmetaelement.rs b/components/script/dom/htmlmetaelement.rs index 4fc1bd7448e3..e70aee987b46 100644 --- a/components/script/dom/htmlmetaelement.rs +++ b/components/script/dom/htmlmetaelement.rs @@ -4,8 +4,7 @@ use dom::bindings::codegen::Bindings::HTMLMetaElementBinding; use dom::bindings::codegen::Bindings::HTMLMetaElementBinding::HTMLMetaElementMethods; -use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast}; -use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, NodeCast}; +use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, NodeCast}; use dom::bindings::js::{Root, RootedReference}; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -26,7 +25,7 @@ impl HTMLMetaElement { prefix: Option, document: &Document) -> HTMLMetaElement { HTMLMetaElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLMetaElement, localName, prefix, document) + htmlelement: HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlmeterelement.rs b/components/script/dom/htmlmeterelement.rs index 016a875a88cc..cfe1a4eb5d24 100644 --- a/components/script/dom/htmlmeterelement.rs +++ b/components/script/dom/htmlmeterelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLMeterElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -20,7 +19,7 @@ impl HTMLMeterElement { prefix: Option, document: &Document) -> HTMLMeterElement { HTMLMeterElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLMeterElement, localName, prefix, document) + htmlelement: HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlmodelement.rs b/components/script/dom/htmlmodelement.rs index 4bf9a748c124..d05971998bb3 100644 --- a/components/script/dom/htmlmodelement.rs +++ b/components/script/dom/htmlmodelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLModElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -21,7 +20,7 @@ impl HTMLModElement { document: &Document) -> HTMLModElement { HTMLModElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLModElement, localName, prefix, document) + HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlobjectelement.rs b/components/script/dom/htmlobjectelement.rs index cc1dd2ec7f69..a2c435afbc1e 100644 --- a/components/script/dom/htmlobjectelement.rs +++ b/components/script/dom/htmlobjectelement.rs @@ -6,7 +6,7 @@ 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::{ElementCast, HTMLElementCast, HTMLElementTypeId}; +use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast}; use dom::bindings::js::Root; use dom::document::Document; use dom::element::AttributeMutation; @@ -31,7 +31,7 @@ impl HTMLObjectElement { document: &Document) -> HTMLObjectElement { HTMLObjectElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLObjectElement, localName, prefix, document), + HTMLElement::new_inherited(localName, prefix, document), image: DOMRefCell::new(None), } } diff --git a/components/script/dom/htmlolistelement.rs b/components/script/dom/htmlolistelement.rs index bd0b54c4370a..4ac17a95d144 100644 --- a/components/script/dom/htmlolistelement.rs +++ b/components/script/dom/htmlolistelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLOListElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -20,7 +19,7 @@ impl HTMLOListElement { prefix: Option, document: &Document) -> HTMLOListElement { HTMLOListElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLOListElement, localName, prefix, document) + htmlelement: HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmloptgroupelement.rs b/components/script/dom/htmloptgroupelement.rs index a377a59c0099..b90eacff87fb 100644 --- a/components/script/dom/htmloptgroupelement.rs +++ b/components/script/dom/htmloptgroupelement.rs @@ -5,13 +5,12 @@ use dom::attr::Attr; use dom::bindings::codegen::Bindings::HTMLOptGroupElementBinding; use dom::bindings::codegen::Bindings::HTMLOptGroupElementBinding::HTMLOptGroupElementMethods; -use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLOptionElementDerived, NodeCast}; +use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLOptionElementDerived, NodeCast}; use dom::bindings::js::Root; use dom::document::Document; use dom::element::AttributeMutation; use dom::htmlelement::HTMLElement; -use dom::node::Node; +use dom::node::{IN_ENABLED_STATE, Node, NodeFlags}; use dom::virtualmethods::VirtualMethods; use util::str::DOMString; @@ -26,7 +25,8 @@ impl HTMLOptGroupElement { document: &Document) -> HTMLOptGroupElement { HTMLOptGroupElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLOptGroupElement, localName, prefix, document) + HTMLElement::new_inherited_with_flags(NodeFlags::new() | IN_ENABLED_STATE, + localName, prefix, document) } } diff --git a/components/script/dom/htmloptionelement.rs b/components/script/dom/htmloptionelement.rs index 79dedf2f94f5..74454c143551 100644 --- a/components/script/dom/htmloptionelement.rs +++ b/components/script/dom/htmloptionelement.rs @@ -7,14 +7,14 @@ 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}; -use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLScriptElementDerived}; +use dom::bindings::codegen::InheritTypes::{CharacterDataCast, ElementCast}; +use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLScriptElementDerived}; use dom::bindings::codegen::InheritTypes::{NodeCast, TextDerived}; use dom::bindings::js::Root; use dom::document::Document; use dom::element::{AttributeMutation, Element}; use dom::htmlelement::HTMLElement; -use dom::node::Node; +use dom::node::{IN_ENABLED_STATE, Node, NodeFlags}; use dom::virtualmethods::VirtualMethods; use std::cell::Cell; use util::str::{DOMString, split_html_space_chars, str_join}; @@ -36,7 +36,8 @@ impl HTMLOptionElement { document: &Document) -> HTMLOptionElement { HTMLOptionElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLOptionElement, localName, prefix, document), + HTMLElement::new_inherited_with_flags(NodeFlags::new() | IN_ENABLED_STATE, + localName, prefix, document), selectedness: Cell::new(false), dirtiness: Cell::new(false), } diff --git a/components/script/dom/htmloutputelement.rs b/components/script/dom/htmloutputelement.rs index 8888f67ce264..26c5b9c6bae7 100644 --- a/components/script/dom/htmloutputelement.rs +++ b/components/script/dom/htmloutputelement.rs @@ -4,7 +4,6 @@ use dom::bindings::codegen::Bindings::HTMLOutputElementBinding; use dom::bindings::codegen::Bindings::HTMLOutputElementBinding::HTMLOutputElementMethods; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -24,7 +23,7 @@ impl HTMLOutputElement { document: &Document) -> HTMLOutputElement { HTMLOutputElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLOutputElement, localName, prefix, document) + HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlparagraphelement.rs b/components/script/dom/htmlparagraphelement.rs index 532925ab965d..c6f867d9cfbb 100644 --- a/components/script/dom/htmlparagraphelement.rs +++ b/components/script/dom/htmlparagraphelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLParagraphElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -21,7 +20,7 @@ impl HTMLParagraphElement { document: &Document) -> HTMLParagraphElement { HTMLParagraphElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLParagraphElement, localName, prefix, document) + HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlparamelement.rs b/components/script/dom/htmlparamelement.rs index ff1c010b3841..4cf7f1b26724 100644 --- a/components/script/dom/htmlparamelement.rs +++ b/components/script/dom/htmlparamelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLParamElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -21,7 +20,7 @@ impl HTMLParamElement { document: &Document) -> HTMLParamElement { HTMLParamElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLParamElement, localName, prefix, document) + HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlpreelement.rs b/components/script/dom/htmlpreelement.rs index 2c353d15d69d..71ba4d8d8a13 100644 --- a/components/script/dom/htmlpreelement.rs +++ b/components/script/dom/htmlpreelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLPreElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -21,7 +20,7 @@ impl HTMLPreElement { document: &Document) -> HTMLPreElement { HTMLPreElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLPreElement, localName, prefix, document) + HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlprogresselement.rs b/components/script/dom/htmlprogresselement.rs index 6aae92cc9762..7bee428c8f4e 100644 --- a/components/script/dom/htmlprogresselement.rs +++ b/components/script/dom/htmlprogresselement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLProgressElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -21,7 +20,7 @@ impl HTMLProgressElement { document: &Document) -> HTMLProgressElement { HTMLProgressElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLProgressElement, localName, prefix, document) + HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlquoteelement.rs b/components/script/dom/htmlquoteelement.rs index ab5d97d527ea..bc8df25c3514 100644 --- a/components/script/dom/htmlquoteelement.rs +++ b/components/script/dom/htmlquoteelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLQuoteElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -21,7 +20,7 @@ impl HTMLQuoteElement { document: &Document) -> HTMLQuoteElement { HTMLQuoteElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLQuoteElement, localName, prefix, document) + HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs index cb6b49c094fe..3c87e28b2bee 100644 --- a/components/script/dom/htmlscriptelement.rs +++ b/components/script/dom/htmlscriptelement.rs @@ -10,8 +10,7 @@ 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::{ElementCast, EventTargetCast}; -use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId}; +use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast, HTMLElementCast}; use dom::bindings::codegen::InheritTypes::{HTMLScriptElementCast, NodeCast}; use dom::bindings::global::GlobalRef; use dom::bindings::js::RootedReference; @@ -78,7 +77,7 @@ impl HTMLScriptElement { creator: ElementCreator) -> HTMLScriptElement { HTMLScriptElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLScriptElement, localName, prefix, document), + HTMLElement::new_inherited(localName, prefix, document), already_started: Cell::new(false), parser_inserted: Cell::new(creator == ElementCreator::ParserCreated), non_blocking: Cell::new(creator != ElementCreator::ParserCreated), diff --git a/components/script/dom/htmlselectelement.rs b/components/script/dom/htmlselectelement.rs index 52d42265773e..33a46acace14 100644 --- a/components/script/dom/htmlselectelement.rs +++ b/components/script/dom/htmlselectelement.rs @@ -5,8 +5,7 @@ use dom::attr::{Attr, AttrValue}; use dom::bindings::codegen::Bindings::HTMLSelectElementBinding; use dom::bindings::codegen::Bindings::HTMLSelectElementBinding::HTMLSelectElementMethods; -use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLFieldSetElementDerived, NodeCast}; +use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLFieldSetElementDerived, NodeCast}; use dom::bindings::codegen::UnionTypes::HTMLElementOrLong; use dom::bindings::codegen::UnionTypes::HTMLOptionElementOrHTMLOptGroupElement; use dom::bindings::js::Root; @@ -14,7 +13,7 @@ use dom::document::Document; use dom::element::AttributeMutation; use dom::htmlelement::HTMLElement; use dom::htmlformelement::{FormControl, HTMLFormElement}; -use dom::node::{Node, window_from_node}; +use dom::node::{IN_ENABLED_STATE, Node, NodeFlags, window_from_node}; use dom::validitystate::ValidityState; use dom::virtualmethods::VirtualMethods; use std::borrow::ToOwned; @@ -34,7 +33,8 @@ impl HTMLSelectElement { document: &Document) -> HTMLSelectElement { HTMLSelectElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLSelectElement, localName, prefix, document) + HTMLElement::new_inherited_with_flags(NodeFlags::new() | IN_ENABLED_STATE, + localName, prefix, document) } } diff --git a/components/script/dom/htmlsourceelement.rs b/components/script/dom/htmlsourceelement.rs index 5c6bac5a35eb..b28d82f32ec9 100644 --- a/components/script/dom/htmlsourceelement.rs +++ b/components/script/dom/htmlsourceelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLSourceElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -21,7 +20,7 @@ impl HTMLSourceElement { document: &Document) -> HTMLSourceElement { HTMLSourceElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLSourceElement, localName, prefix, document) + HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlspanelement.rs b/components/script/dom/htmlspanelement.rs index f44f5e14b2e4..7f5d80361cb8 100644 --- a/components/script/dom/htmlspanelement.rs +++ b/components/script/dom/htmlspanelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLSpanElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -18,7 +17,7 @@ pub struct HTMLSpanElement { impl HTMLSpanElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLSpanElement { HTMLSpanElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLSpanElement, localName, prefix, document) + htmlelement: HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlstyleelement.rs b/components/script/dom/htmlstyleelement.rs index ca06ceea942d..e26a59976e0c 100644 --- a/components/script/dom/htmlstyleelement.rs +++ b/components/script/dom/htmlstyleelement.rs @@ -5,8 +5,7 @@ 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}; -use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, NodeCast}; +use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, NodeCast}; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -27,7 +26,7 @@ impl HTMLStyleElement { prefix: Option, document: &Document) -> HTMLStyleElement { HTMLStyleElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLStyleElement, localName, prefix, document) + htmlelement: HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmltablecaptionelement.rs b/components/script/dom/htmltablecaptionelement.rs index b0d7f645753a..7b43fe0aecec 100644 --- a/components/script/dom/htmltablecaptionelement.rs +++ b/components/script/dom/htmltablecaptionelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLTableCaptionElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -21,7 +20,7 @@ impl HTMLTableCaptionElement { document: &Document) -> HTMLTableCaptionElement { HTMLTableCaptionElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLTableCaptionElement, localName, prefix, document) + HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmltablecellelement.rs b/components/script/dom/htmltablecellelement.rs index 834f1419c946..1991d3ab3e8f 100644 --- a/components/script/dom/htmltablecellelement.rs +++ b/components/script/dom/htmltablecellelement.rs @@ -6,8 +6,7 @@ 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, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLTableCellElementDerived, HTMLTableCellElementTypeId}; +use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLTableCellElementDerived}; use dom::bindings::codegen::InheritTypes::{HTMLTableRowElementDerived, NodeCast}; use dom::bindings::js::LayoutJS; use dom::document::Document; @@ -30,14 +29,12 @@ pub struct HTMLTableCellElement { } impl HTMLTableCellElement { - pub fn new_inherited(type_id: HTMLTableCellElementTypeId, - tag_name: DOMString, + pub fn new_inherited(tag_name: DOMString, prefix: Option, document: &Document) -> HTMLTableCellElement { HTMLTableCellElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLTableCellElement(type_id), - tag_name, prefix, document), + htmlelement: HTMLElement::new_inherited(tag_name, prefix, document), background_color: Cell::new(None), colspan: Cell::new(None), width: Cell::new(LengthOrPercentageOrAuto::Auto), diff --git a/components/script/dom/htmltablecolelement.rs b/components/script/dom/htmltablecolelement.rs index 2ee79fc7db75..25ca4ed81119 100644 --- a/components/script/dom/htmltablecolelement.rs +++ b/components/script/dom/htmltablecolelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLTableColElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -21,7 +20,7 @@ impl HTMLTableColElement { document: &Document) -> HTMLTableColElement { HTMLTableColElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLTableColElement, localName, prefix, document) + HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmltabledatacellelement.rs b/components/script/dom/htmltabledatacellelement.rs index 38bff452efb0..304af9dd8441 100644 --- a/components/script/dom/htmltabledatacellelement.rs +++ b/components/script/dom/htmltabledatacellelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLTableDataCellElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLTableCellElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmltablecellelement::HTMLTableCellElement; @@ -21,8 +20,7 @@ impl HTMLTableDataCellElement { document: &Document) -> HTMLTableDataCellElement { HTMLTableDataCellElement { htmltablecellelement: - HTMLTableCellElement::new_inherited( - HTMLTableCellElementTypeId::HTMLTableDataCellElement, localName, prefix, document) + HTMLTableCellElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmltableelement.rs b/components/script/dom/htmltableelement.rs index d743d64f44cc..41568a55f104 100644 --- a/components/script/dom/htmltableelement.rs +++ b/components/script/dom/htmltableelement.rs @@ -7,8 +7,8 @@ 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::{ElementCast, HTMLElementCast}; -use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLTableCaptionElementCast}; +use dom::bindings::codegen::InheritTypes::ElementCast; +use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLTableCaptionElementCast}; use dom::bindings::codegen::InheritTypes::{HTMLTableSectionElementDerived, NodeCast}; use dom::bindings::js::{Root, RootedReference}; use dom::document::Document; @@ -35,10 +35,7 @@ impl HTMLTableElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLTableElement { HTMLTableElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLTableElement, - localName, - prefix, - document), + htmlelement: HTMLElement::new_inherited(localName, prefix, document), background_color: Cell::new(None), border: Cell::new(None), cellspacing: Cell::new(None), diff --git a/components/script/dom/htmltableheadercellelement.rs b/components/script/dom/htmltableheadercellelement.rs index 3b43c5787e9d..10803eadf146 100644 --- a/components/script/dom/htmltableheadercellelement.rs +++ b/components/script/dom/htmltableheadercellelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLTableHeaderCellElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLTableCellElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmltablecellelement::HTMLTableCellElement; @@ -20,8 +19,8 @@ impl HTMLTableHeaderCellElement { prefix: Option, document: &Document) -> HTMLTableHeaderCellElement { HTMLTableHeaderCellElement { - htmltablecellelement: HTMLTableCellElement::new_inherited( - HTMLTableCellElementTypeId::HTMLTableHeaderCellElement, localName, prefix, document) + htmltablecellelement: + HTMLTableCellElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmltablerowelement.rs b/components/script/dom/htmltablerowelement.rs index 94f7d3e3d2f1..a485048b2409 100644 --- a/components/script/dom/htmltablerowelement.rs +++ b/components/script/dom/htmltablerowelement.rs @@ -6,7 +6,7 @@ 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, HTMLElementTypeId, HTMLTableDataCellElementDerived}; +use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLTableDataCellElementDerived}; use dom::bindings::codegen::InheritTypes::{HTMLTableHeaderCellElementDerived, NodeCast}; use dom::bindings::js::{JS, MutNullableHeap, Root, RootedReference}; use dom::document::Document; @@ -39,10 +39,7 @@ impl HTMLTableRowElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLTableRowElement { HTMLTableRowElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLTableRowElement, - localName, - prefix, - document), + htmlelement: HTMLElement::new_inherited(localName, prefix, document), cells: Default::default(), background_color: Cell::new(None), } diff --git a/components/script/dom/htmltablesectionelement.rs b/components/script/dom/htmltablesectionelement.rs index 37e47eed155a..a384afcaae74 100644 --- a/components/script/dom/htmltablesectionelement.rs +++ b/components/script/dom/htmltablesectionelement.rs @@ -7,7 +7,7 @@ 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, HTMLElementCast, HTMLElementTypeId}; +use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast}; use dom::bindings::codegen::InheritTypes::{HTMLTableRowElementDerived, NodeCast}; use dom::bindings::error::Error; use dom::bindings::error::{ErrorResult, Fallible}; @@ -33,10 +33,7 @@ impl HTMLTableSectionElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLTableSectionElement { HTMLTableSectionElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLTableSectionElement, - localName, - prefix, - document), + htmlelement: HTMLElement::new_inherited(localName, prefix, document), background_color: Cell::new(None), } } diff --git a/components/script/dom/htmltemplateelement.rs b/components/script/dom/htmltemplateelement.rs index ab82cf440689..a7c7be5944d8 100644 --- a/components/script/dom/htmltemplateelement.rs +++ b/components/script/dom/htmltemplateelement.rs @@ -6,8 +6,7 @@ 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, HTMLElementTypeId}; -use dom::bindings::codegen::InheritTypes::{HTMLTemplateElementCast, NodeCast}; +use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLTemplateElementCast, NodeCast}; use dom::bindings::js::{JS, MutNullableHeap, Root}; use dom::document::Document; use dom::documentfragment::DocumentFragment; @@ -30,7 +29,7 @@ impl HTMLTemplateElement { document: &Document) -> HTMLTemplateElement { HTMLTemplateElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLTemplateElement, localName, prefix, document), + HTMLElement::new_inherited(localName, prefix, document), contents: MutNullableHeap::new(None), } } diff --git a/components/script/dom/htmltextareaelement.rs b/components/script/dom/htmltextareaelement.rs index cfd0de92b11d..19cd81e65190 100644 --- a/components/script/dom/htmltextareaelement.rs +++ b/components/script/dom/htmltextareaelement.rs @@ -8,8 +8,8 @@ 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::{ElementCast, EventTargetCast, HTMLElementCast}; -use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, HTMLFieldSetElementDerived}; +use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast}; +use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLFieldSetElementDerived}; use dom::bindings::codegen::InheritTypes::{KeyboardEventCast, NodeCast}; use dom::bindings::global::GlobalRef; use dom::bindings::js::{LayoutJS, Root}; @@ -20,8 +20,8 @@ use dom::event::{Event, EventBubbles, EventCancelable}; use dom::htmlelement::HTMLElement; use dom::htmlformelement::{FormControl, HTMLFormElement}; use dom::keyboardevent::KeyboardEvent; -use dom::node::{ChildrenMutation, Node, NodeDamage}; -use dom::node::{document_from_node, window_from_node}; +use dom::node::{ChildrenMutation, IN_ENABLED_STATE, Node, NodeDamage}; +use dom::node::{NodeFlags, document_from_node, window_from_node}; use dom::virtualmethods::VirtualMethods; use msg::constellation_msg::ConstellationChan; use script_task::ScriptTaskEventCategory::InputEvent; @@ -87,7 +87,8 @@ impl HTMLTextAreaElement { let chan = document.window().r().constellation_chan(); HTMLTextAreaElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLTextAreaElement, localName, prefix, document), + HTMLElement::new_inherited_with_flags(NodeFlags::new() | IN_ENABLED_STATE, + localName, prefix, document), textinput: DOMRefCell::new(TextInput::new(Lines::Multiple, "".to_owned(), chan)), cols: Cell::new(DEFAULT_COLS), rows: Cell::new(DEFAULT_ROWS), diff --git a/components/script/dom/htmltimeelement.rs b/components/script/dom/htmltimeelement.rs index 32d25298544c..93434c456853 100644 --- a/components/script/dom/htmltimeelement.rs +++ b/components/script/dom/htmltimeelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLTimeElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -18,7 +17,7 @@ pub struct HTMLTimeElement { impl HTMLTimeElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLTimeElement { HTMLTimeElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLTimeElement, localName, prefix, document) + htmlelement: HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmltitleelement.rs b/components/script/dom/htmltitleelement.rs index 2531d9ca750c..06c8c356f6f8 100644 --- a/components/script/dom/htmltitleelement.rs +++ b/components/script/dom/htmltitleelement.rs @@ -6,7 +6,7 @@ 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, HTMLElementCast}; -use dom::bindings::codegen::InheritTypes::{HTMLElementTypeId, NodeCast, TextCast}; +use dom::bindings::codegen::InheritTypes::{NodeCast, TextCast}; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -23,7 +23,7 @@ pub struct HTMLTitleElement { impl HTMLTitleElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLTitleElement { HTMLTitleElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLTitleElement, localName, prefix, document) + htmlelement: HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmltrackelement.rs b/components/script/dom/htmltrackelement.rs index 8cf3917a84f5..32522c18b8e6 100644 --- a/components/script/dom/htmltrackelement.rs +++ b/components/script/dom/htmltrackelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLTrackElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -18,7 +17,7 @@ pub struct HTMLTrackElement { impl HTMLTrackElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLTrackElement { HTMLTrackElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLTrackElement, localName, prefix, document) + htmlelement: HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlulistelement.rs b/components/script/dom/htmlulistelement.rs index 666d7ce324af..ccbeb9fe2b35 100644 --- a/components/script/dom/htmlulistelement.rs +++ b/components/script/dom/htmlulistelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLUListElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -18,7 +17,7 @@ pub struct HTMLUListElement { impl HTMLUListElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLUListElement { HTMLUListElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLUListElement, localName, prefix, document) + htmlelement: HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlunknownelement.rs b/components/script/dom/htmlunknownelement.rs index 908fcfb8e803..e402048cc584 100644 --- a/components/script/dom/htmlunknownelement.rs +++ b/components/script/dom/htmlunknownelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLUnknownElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlelement::HTMLElement; @@ -21,7 +20,7 @@ impl HTMLUnknownElement { document: &Document) -> HTMLUnknownElement { HTMLUnknownElement { htmlelement: - HTMLElement::new_inherited(HTMLElementTypeId::HTMLUnknownElement, localName, prefix, document) + HTMLElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/htmlvideoelement.rs b/components/script/dom/htmlvideoelement.rs index 5837f00b21ff..6ca2028161a5 100644 --- a/components/script/dom/htmlvideoelement.rs +++ b/components/script/dom/htmlvideoelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLVideoElementBinding; -use dom::bindings::codegen::InheritTypes::HTMLMediaElementTypeId; use dom::bindings::js::Root; use dom::document::Document; use dom::htmlmediaelement::HTMLMediaElement; @@ -19,7 +18,7 @@ impl HTMLVideoElement { fn new_inherited(localName: DOMString, prefix: Option, document: &Document) -> HTMLVideoElement { HTMLVideoElement { htmlmediaelement: - HTMLMediaElement::new_inherited(HTMLMediaElementTypeId::HTMLVideoElement, localName, prefix, document) + HTMLMediaElement::new_inherited(localName, prefix, document) } } diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index e5974c2d05f5..2f9762cd4de5 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -163,22 +163,8 @@ bitflags! { } impl NodeFlags { - pub fn new(type_id: NodeTypeId) -> NodeFlags { - let dirty = HAS_CHANGED | IS_DIRTY | HAS_DIRTY_SIBLINGS | HAS_DIRTY_DESCENDANTS; - match type_id { - NodeTypeId::Document => IS_IN_DOC | dirty, - // The following elements are enabled by default. - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLButtonElement)) | - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLInputElement)) | - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLSelectElement)) | - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTextAreaElement)) | - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLOptGroupElement)) | - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLOptionElement)) | - //NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLMenuItemElement)) | - NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLFieldSetElement)) => - IN_ENABLED_STATE | dirty, - _ => dirty, - } + pub fn new() -> NodeFlags { + HAS_CHANGED | IS_DIRTY | HAS_DIRTY_SIBLINGS | HAS_DIRTY_DESCENDANTS } } @@ -1358,15 +1344,19 @@ impl Node { reflect_dom_object(node, GlobalRef::Window(window.r()), wrap_fn) } - pub fn new_inherited(type_id: NodeTypeId, doc: &Document) -> Node { - Node::new_(type_id, Some(doc.clone())) + pub fn new_inherited(doc: &Document) -> Node { + Node::new_inherited_with_flags(NodeFlags::new(), doc) + } + + pub fn new_inherited_with_flags(flags: NodeFlags, doc: &Document) -> Node { + Node::new_(flags, Some(doc)) } - pub fn new_without_doc(type_id: NodeTypeId) -> Node { - Node::new_(type_id, None) + pub fn new_document_node() -> Node { + Node::new_(NodeFlags::new() | IS_IN_DOC, None) } - fn new_(type_id: NodeTypeId, doc: Option<&Document>) -> Node { + fn new_(flags: NodeFlags, doc: Option<&Document>) -> Node { Node { eventtarget: EventTarget::new_inherited(), @@ -1378,7 +1368,7 @@ impl Node { owner_doc: MutNullableHeap::new(doc.map(JS::from_ref)), child_list: Default::default(), children_count: Cell::new(0u32), - flags: Cell::new(NodeFlags::new(type_id)), + flags: Cell::new(flags), layout_data: LayoutDataRef::new(), diff --git a/components/script/dom/processinginstruction.rs b/components/script/dom/processinginstruction.rs index 7ce21de9f4d0..6f26a4ca0fa0 100644 --- a/components/script/dom/processinginstruction.rs +++ b/components/script/dom/processinginstruction.rs @@ -4,7 +4,6 @@ use dom::bindings::codegen::Bindings::ProcessingInstructionBinding; use dom::bindings::codegen::Bindings::ProcessingInstructionBinding::ProcessingInstructionMethods; -use dom::bindings::codegen::InheritTypes::CharacterDataTypeId; use dom::bindings::js::Root; use dom::characterdata::CharacterData; use dom::document::Document; @@ -21,7 +20,7 @@ pub struct ProcessingInstruction { impl ProcessingInstruction { fn new_inherited(target: DOMString, data: DOMString, document: &Document) -> ProcessingInstruction { ProcessingInstruction { - characterdata: CharacterData::new_inherited(CharacterDataTypeId::ProcessingInstruction, data, document), + characterdata: CharacterData::new_inherited(data, document), target: target } } diff --git a/components/script/dom/text.rs b/components/script/dom/text.rs index eea2e58204e1..fdc41895f392 100644 --- a/components/script/dom/text.rs +++ b/components/script/dom/text.rs @@ -7,8 +7,7 @@ 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::{CharacterDataCast, CharacterDataTypeId}; -use dom::bindings::codegen::InheritTypes::{NodeCast, TextDerived}; +use dom::bindings::codegen::InheritTypes::{CharacterDataCast, NodeCast, TextDerived}; use dom::bindings::error::{Error, Fallible}; use dom::bindings::global::GlobalRef; use dom::bindings::js::Root; @@ -27,7 +26,7 @@ pub struct Text { impl Text { fn new_inherited(text: DOMString, document: &Document) -> Text { Text { - characterdata: CharacterData::new_inherited(CharacterDataTypeId::Text, text, document) + characterdata: CharacterData::new_inherited(text, document) } }