aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2015-09-28 01:07:32 +0200
committerAnthony Ramine <n.oxyde@gmail.com>2015-10-15 17:30:41 +0200
commit7d6ea834790445d2ea71ca186484ef59ac2ac268 (patch)
treef535bc5428961c332e4ffc3e9c948d180817922e
parent617fc08783d2356e644266d9e9addcd720a7138a (diff)
downloadservo-7d6ea834790445d2ea71ca186484ef59ac2ac268.tar.gz
servo-7d6ea834790445d2ea71ca186484ef59ac2ac268.zip
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.
-rw-r--r--components/plugins/lints/unrooted_must_root.rs3
-rw-r--r--components/script/dom/characterdata.rs7
-rw-r--r--components/script/dom/comment.rs3
-rw-r--r--components/script/dom/document.rs2
-rw-r--r--components/script/dom/documentfragment.rs4
-rw-r--r--components/script/dom/documenttype.rs4
-rw-r--r--components/script/dom/element.rs21
-rw-r--r--components/script/dom/htmlanchorelement.rs5
-rw-r--r--components/script/dom/htmlappletelement.rs4
-rw-r--r--components/script/dom/htmlareaelement.rs4
-rw-r--r--components/script/dom/htmlaudioelement.rs3
-rw-r--r--components/script/dom/htmlbaseelement.rs4
-rw-r--r--components/script/dom/htmlbodyelement.rs8
-rw-r--r--components/script/dom/htmlbrelement.rs3
-rw-r--r--components/script/dom/htmlbuttonelement.rs9
-rw-r--r--components/script/dom/htmlcanvaselement.rs4
-rw-r--r--components/script/dom/htmldataelement.rs3
-rw-r--r--components/script/dom/htmldatalistelement.rs4
-rw-r--r--components/script/dom/htmldialogelement.rs3
-rw-r--r--components/script/dom/htmldirectoryelement.rs3
-rw-r--r--components/script/dom/htmldivelement.rs3
-rw-r--r--components/script/dom/htmldlistelement.rs3
-rw-r--r--components/script/dom/htmlelement.rs17
-rw-r--r--components/script/dom/htmlembedelement.rs3
-rw-r--r--components/script/dom/htmlfieldsetelement.rs5
-rw-r--r--components/script/dom/htmlfontelement.rs4
-rw-r--r--components/script/dom/htmlformelement.rs2
-rw-r--r--components/script/dom/htmlframeelement.rs3
-rw-r--r--components/script/dom/htmlframesetelement.rs3
-rw-r--r--components/script/dom/htmlheadelement.rs4
-rw-r--r--components/script/dom/htmlheadingelement.rs3
-rw-r--r--components/script/dom/htmlhrelement.rs3
-rw-r--r--components/script/dom/htmlhtmlelement.rs3
-rw-r--r--components/script/dom/htmliframeelement.rs8
-rw-r--r--components/script/dom/htmlimageelement.rs6
-rw-r--r--components/script/dom/htmlinputelement.rs9
-rw-r--r--components/script/dom/htmllabelelement.rs3
-rw-r--r--components/script/dom/htmllegendelement.rs3
-rw-r--r--components/script/dom/htmllielement.rs3
-rw-r--r--components/script/dom/htmllinkelement.rs6
-rw-r--r--components/script/dom/htmlmapelement.rs3
-rw-r--r--components/script/dom/htmlmediaelement.rs5
-rw-r--r--components/script/dom/htmlmetaelement.rs5
-rw-r--r--components/script/dom/htmlmeterelement.rs3
-rw-r--r--components/script/dom/htmlmodelement.rs3
-rw-r--r--components/script/dom/htmlobjectelement.rs4
-rw-r--r--components/script/dom/htmlolistelement.rs3
-rw-r--r--components/script/dom/htmloptgroupelement.rs8
-rw-r--r--components/script/dom/htmloptionelement.rs9
-rw-r--r--components/script/dom/htmloutputelement.rs3
-rw-r--r--components/script/dom/htmlparagraphelement.rs3
-rw-r--r--components/script/dom/htmlparamelement.rs3
-rw-r--r--components/script/dom/htmlpreelement.rs3
-rw-r--r--components/script/dom/htmlprogresselement.rs3
-rw-r--r--components/script/dom/htmlquoteelement.rs3
-rw-r--r--components/script/dom/htmlscriptelement.rs5
-rw-r--r--components/script/dom/htmlselectelement.rs8
-rw-r--r--components/script/dom/htmlsourceelement.rs3
-rw-r--r--components/script/dom/htmlspanelement.rs3
-rw-r--r--components/script/dom/htmlstyleelement.rs5
-rw-r--r--components/script/dom/htmltablecaptionelement.rs3
-rw-r--r--components/script/dom/htmltablecellelement.rs9
-rw-r--r--components/script/dom/htmltablecolelement.rs3
-rw-r--r--components/script/dom/htmltabledatacellelement.rs4
-rw-r--r--components/script/dom/htmltableelement.rs9
-rw-r--r--components/script/dom/htmltableheadercellelement.rs5
-rw-r--r--components/script/dom/htmltablerowelement.rs7
-rw-r--r--components/script/dom/htmltablesectionelement.rs7
-rw-r--r--components/script/dom/htmltemplateelement.rs5
-rw-r--r--components/script/dom/htmltextareaelement.rs11
-rw-r--r--components/script/dom/htmltimeelement.rs3
-rw-r--r--components/script/dom/htmltitleelement.rs4
-rw-r--r--components/script/dom/htmltrackelement.rs3
-rw-r--r--components/script/dom/htmlulistelement.rs3
-rw-r--r--components/script/dom/htmlunknownelement.rs3
-rw-r--r--components/script/dom/htmlvideoelement.rs3
-rw-r--r--components/script/dom/node.rs34
-rw-r--r--components/script/dom/processinginstruction.rs3
-rw-r--r--components/script/dom/text.rs5
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<DOMString>,
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<DOMString>,
+ 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<DOMString>,
document: &Document) -> Root<Element> {
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<DOMString>, 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<DOMString>, 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<DOMString>, 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<DOMString>, 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<DOMString>,
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<DOMString>,
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<DOMString>, 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<DOMString>,
+ pub fn new_inherited(tag_name: DOMString, prefix: Option<DOMString>,
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<DOMString>, 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<DOMString>, document: &Document) -> Root<HTMLElement> {
- 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<DOMString>, 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<DOMString>, 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<DOMString>,
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<DOMString>, 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<DOMString>,
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<DOMString>, 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<DOMString>, 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<DOMString>,
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<DOMString>, 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<DOMString>, 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<DOMString>, 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<DOMString>, 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<DOMString>,
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<DOMString>, 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<DOMString>,
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<DOMString>,
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<DOMString>,
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<DOMString>, 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<DOMString>,
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<DOMString>,
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<DOMString>, 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<DOMString>,
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<DOMString>, 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<DOMString>, 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<DOMString>, 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<DOMString>, 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<DOMString>, 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<DOMString>, 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<DOMString>, 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_inherited_with_flags(flags: NodeFlags, doc: &Document) -> Node {
+ Node::new_(flags, Some(doc))
}
- pub fn new_without_doc(type_id: NodeTypeId) -> Node {
- Node::new_(type_id, None)
+ pub fn new_document_node() -> Node {
+ Node::new_(NodeFlags::new() | IS_IN_DOC, None)
}
- fn new_(type_id: NodeTypeId, doc: Option<&Document>) -> Node {
+ fn new_(flags: NodeFlags, doc: Option<&Document>) -> Node {
Node {
eventtarget: EventTarget::new_inherited(),
@@ -1378,7 +1368,7 @@ impl Node {
owner_doc: MutNullableHeap::new(doc.map(JS::from_ref)),
child_list: Default::default(),
children_count: Cell::new(0u32),
- flags: Cell::new(NodeFlags::new(type_id)),
+ flags: Cell::new(flags),
layout_data: LayoutDataRef::new(),
diff --git a/components/script/dom/processinginstruction.rs b/components/script/dom/processinginstruction.rs
index 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)
}
}