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 00df29230c3..163c59de95e 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -5880,6 +5880,20 @@ impl %(name)sCast { 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 @@ impl %(name)sCast { } } -""" % {'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 a8a5f56f02e..efbf1abbc15 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 dbb2356d8a0..0ab605f5dd2 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 269a8350b0c..fc0982a4e36 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 f865d49ebd6..a01b8d53375 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 93c66071cb0..1ef9b8d956d 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 8b6b5d7ea12..f64c28b7724 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 379fe16b066..9c859aa28ec 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 e04922ad629..178ea354d86 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 5ce83d933de..0a26bd9c182 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 e58a80ca259..40865872a6b 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 36459c06bb3..09f3c31de79 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 21a9ed8c2e1..fb82c6801c6 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 167171d23ae..0ef48d4b742 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 d942d5a20d5..8f8101c3f32 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 e751b3c4a8f..c282b52c5b4 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 3ce0f1889f9..95311f2330a 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 38ca77226fe..64e8a12e1f6 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 3e66645e756..a2c40fbc10b 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 7397970b4f1..87c54fa42ae 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 14e02a53c81..be5657f6932 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 c9529d82096..8d455eaa499 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 f5c6047d93d..7cff2e2a9a5 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 cd5e4c891ce..0010aab60b5 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 7aa617d91fe..7f0ce6ab4a0 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 5aec0c2129f..ac3fbdde1b1 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 f055a51b719..01a6856e066 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 0ec0e0c5810..07f50ce900a 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 e7cddb164cc..32b8901895a 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 8be5342bd61..a7be20fe10a 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 c0edc91ea69..03d6a826872 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 c057b854cce..9bb3251ffb0 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 39a474d13d1..1d47c7e4cc0 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 e19b9fb6508..58ca3f7a94d 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 18dd24dc9a5..65e774a27a9 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 6a7136d31f0..af57c8d59a8 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 4f8f54e884a..f9c188298e5 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 cd82760d2c5..4f88cc7a0f2 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 7e1972e54b8..f4a096ce17b 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 647725678be..70179e5b3cc 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 a2d5653c025..b39d88fb33c 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 3ff1209d42d..a750ef3d2e3 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 e9545ae73c9..85a76d553c4 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 89747b00f48..efbcddee8e8 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 e8a765954cb..fce5c4f0032 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 6ee08046b26..ca042fb04ca 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 5b2d4c0d868..4fc1bd7448e 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 88a740ed839..016a875a88c 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 47e6e441dc6..4bf9a748c12 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 82b31f5519c..cc1dd2ec7f6 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 7f26bcdf204..bd0b54c4370 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 d476b0edaaa..a377a59c009 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 e8d655a2a8f..79dedf2f94f 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 1c57dea6761..8888f67ce26 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 2a383b51f5f..532925ab965 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 c2cc044c7f7..ff1c010b384 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 57e4943ab5f..2c353d15d69 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 bc0e29cbfcf..6aae92cc976 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 d631ae61525..ab5d97d527e 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 0718b75658f..cb6b49c094f 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 57a675eb88b..52d42265773 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 bab0df2514a..5c6bac5a35e 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 729ef747af5..f44f5e14b2e 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 7b41b156f99..ca06ceea942 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 4db67a16b9d..b0d7f645753 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 98b41bde6b6..834f1419c94 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 be5bef59513..2ee79fc7db7 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 46f0a4a96a3..38bff452efb 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 607f3a8ecc9..d743d64f44c 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 ff16385d3e5..3b43c5787e9 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 844220f6e0e..94f7d3e3d2f 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 bfe00f54000..37e47eed155 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 e965d87c6fa..ab82cf44068 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 522c88d3063..cfd0de92b11 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 dcc95de29f4..32d25298544 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 6740ff92904..2531d9ca750 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 4de20a0abed..8cf3917a84f 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 ea3e57d35ec..666d7ce324a 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 7e4067f3555..908fcfb8e80 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 20de1a7df35..5837f00b21f 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 c56276ecc8a..405c3813ea2 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 1b0a129f12b..94312dbcb23 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 7346482598f..5f05fc97b77 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 19a4cdafecf..e5974c2d05f 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 6610352dda1..7ce21de9f4d 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 529fc85a26e..4a9d400f57a 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 264eaf48816..eea2e58204e 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 7ae21211616..a28783bc6e4 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 52e3d4cdb3d..1bba8849eb4 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 c4d04b3ec1c..2c6868e3fdd 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 cbe1551f339..8213b59c6ac 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 257e4392132..aa0604448cd 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 2456d1079a5..e426c63c30c 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 25bae996f34..cc2ce5d8220 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 0ab605f5dd2..fce14f68c3d 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 fc0982a4e36..3bed2a647dd 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 f64c28b7724..0419895233b 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 9c859aa28ec..fd6716802ec 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 178ea354d86..4372ac1abfb 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 0a26bd9c182..651142df713 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 09f3c31de79..ca775b45672 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 fb82c6801c6..e01a03b5e47 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 0ef48d4b742..bb17cdb0ad3 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 8f8101c3f32..ed0b89cca27 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 c282b52c5b4..9fb36ae44d5 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 95311f2330a..806086a6b03 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 64e8a12e1f6..3007e772515 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 a2c40fbc10b..104619aecbb 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 87c54fa42ae..f698f42fe26 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 be5657f6932..dbbd1c5cdcf 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 8d455eaa499..66d625437b6 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 7cff2e2a9a5..0d9e534f85c 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 0010aab60b5..231fb3a711d 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 7f0ce6ab4a0..22ebca4b893 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 ac3fbdde1b1..5c42844a717 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 01a6856e066..48154d25042 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 07f50ce900a..7af4dac4da7 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 32b8901895a..c50f3bf6756 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 a7be20fe10a..1ab84f4b4d8 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 03d6a826872..46caced7d45 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 9bb3251ffb0..72b6307096a 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 1d47c7e4cc0..9db91262264 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 58ca3f7a94d..cc5d3d70562 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 65e774a27a9..f0aa4c046c7 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 af57c8d59a8..dc5ab695d6b 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 f9c188298e5..85f94051547 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 4f88cc7a0f2..9e09e836d85 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 f4a096ce17b..c07022306d6 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 70179e5b3cc..cc0aabdc9cb 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 b39d88fb33c..3beefc3db9a 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 a750ef3d2e3..bc99bcec2b1 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 85a76d553c4..00a99791b8f 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 efbcddee8e8..6f1dc148852 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 fce5c4f0032..30816c51409 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 ca042fb04ca..06c2f32a7a4 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 4fc1bd7448e..e70aee987b4 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 016a875a88c..cfe1a4eb5d2 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 4bf9a748c12..d05971998bb 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 cc1dd2ec7f6..a2c435afbc1 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 bd0b54c4370..4ac17a95d14 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 a377a59c009..b90eacff87f 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 79dedf2f94f..74454c14355 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 8888f67ce26..26c5b9c6bae 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 532925ab965..c6f867d9cfb 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 ff1c010b384..4cf7f1b2672 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 2c353d15d69..71ba4d8d8a1 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 6aae92cc976..7bee428c8f4 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 ab5d97d527e..bc8df25c351 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 cb6b49c094f..3c87e28b2be 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 52d42265773..33a46acace1 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 5c6bac5a35e..b28d82f32ec 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 f44f5e14b2e..7f5d80361cb 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 ca06ceea942..e26a59976e0 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 b0d7f645753..7b43fe0aece 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 834f1419c94..1991d3ab3e8 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 2ee79fc7db7..25ca4ed8111 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 38bff452efb..304af9dd844 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 d743d64f44c..41568a55f10 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 3b43c5787e9..10803eadf14 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 94f7d3e3d2f..a485048b240 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 37e47eed155..a384afcaae7 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 ab82cf44068..a7c7be5944d 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 cfd0de92b11..19cd81e6519 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 32d25298544..93434c45685 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 2531d9ca750..06c8c356f6f 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 8cf3917a84f..32522c18b8e 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 666d7ce324a..ccbeb9fe2b3 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 908fcfb8e80..e402048cc58 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 5837f00b21f..6ca2028161a 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 e5974c2d05f..2f9762cd4de 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_without_doc(type_id: NodeTypeId) -> Node { - Node::new_(type_id, None) + pub fn new_inherited_with_flags(flags: NodeFlags, doc: &Document) -> Node { + Node::new_(flags, Some(doc)) } - fn new_(type_id: NodeTypeId, doc: Option<&Document>) -> Node { + pub fn new_document_node() -> Node { + Node::new_(NodeFlags::new() | IS_IN_DOC, None) + } + + 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 7ce21de9f4d..6f26a4ca0fa 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 eea2e58204e..fdc41895f39 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) } }