aboutsummaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
Diffstat (limited to 'components')
-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)
}
}