diff options
Diffstat (limited to 'components')
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) } } |