diff options
Diffstat (limited to 'src/components/script')
19 files changed, 327 insertions, 495 deletions
diff --git a/src/components/script/dom/bindings/codegen/Bindings.conf b/src/components/script/dom/bindings/codegen/Bindings.conf index 2ee86c3cca1..a06d1f2d989 100644 --- a/src/components/script/dom/bindings/codegen/Bindings.conf +++ b/src/components/script/dom/bindings/codegen/Bindings.conf @@ -230,6 +230,12 @@ DOMInterfaces = { 'pointerType': '', }, +'HTMLFormElement': { + 'nativeType': 'AbstractNode<ScriptView>', + 'pointerType': '', + 'register': False +}, + 'HTMLOptionsCollection': [ { 'nativeType': 'nsHTMLOptionCollection', @@ -565,7 +571,7 @@ addHTMLElement('HTMLElement') addHTMLElement('HTMLEmbedElement') addHTMLElement('HTMLFieldSetElement') addHTMLElement('HTMLFontElement') -addHTMLElement('HTMLFormElement') +#addHTMLElement('HTMLFormElement') addHTMLElement('HTMLFrameElement') addHTMLElement('HTMLFrameSetElement') addHTMLElement('HTMLHeadElement') diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py index c9dc5d28aee..e524f927e47 100644 --- a/src/components/script/dom/bindings/codegen/CodegenRust.py +++ b/src/components/script/dom/bindings/codegen/CodegenRust.py @@ -4612,75 +4612,15 @@ class CGBindingRoot(CGThing): 'js::jsapi::*', 'js::jsfriendapi::bindgen::*', 'js::glue::*', - 'dom::characterdata::CharacterData', #XXXjdm - 'dom::node::{AbstractNode, Node, Text}', #XXXjdm - 'dom::document::{Document, AbstractDocument}', #XXXjdm - 'dom::element::{Element, HTMLHeadElement, HTMLHtmlElement}', #XXXjdm - 'dom::element::{HTMLDivElement, HTMLSpanElement, HTMLParagraphElement}', #XXXjdm - 'dom::htmlanchorelement::HTMLAnchorElement', #XXXjdm - 'dom::htmlappletelement::HTMLAppletElement', #XXXjune0cho - 'dom::htmlareaelement::HTMLAreaElement', #XXXjune0cho - 'dom::htmlbaseelement::HTMLBaseElement', #XXXjune0cho - 'dom::htmlbodyelement::HTMLBodyElement', #XXXjune0cho - 'dom::htmlbrelement::HTMLBRElement', #XXXrecrack - 'dom::htmlbuttonelement::HTMLButtonElement', #XXXjdm - 'dom::htmlcanvaselement::HTMLCanvasElement', - 'dom::htmldataelement::HTMLDataElement', #XXXjune0cho - 'dom::htmldatalistelement::HTMLDataListElement', - 'dom::htmldlistelement::HTMLDListElement', - 'dom::htmldirectoryelement::HTMLDirectoryElement', - 'dom::htmlelement::HTMLElement', #XXXjdm - 'dom::htmlembedelement::HTMLEmbedElement', #XXXjdm - 'dom::htmlfieldsetelement::HTMLFieldSetElement', #XXXjdm - 'dom::htmlfontelement::HTMLFontElement', #XXXjdm - 'dom::htmlframeelement::HTMLFrameElement', #XXXjdm - 'dom::htmlframesetelement::HTMLFrameSetElement', #XXXjdm - 'dom::htmldocument::HTMLDocument', #XXXjdm - 'dom::htmlheadingelement::HTMLHeadingElement', - 'dom::htmlhrelement::HTMLHRElement', - 'dom::htmliframeelement::HTMLIFrameElement', #XXXjdm - 'dom::htmlimageelement::HTMLImageElement', #XXXjdm - 'dom::htmlinputelement::HTMLInputElement', - 'dom::htmllielement::HTMLLIElement', - 'dom::htmllinkelement::HTMLLinkElement', #XXXrecrack - 'dom::htmlmapelement::HTMLMapElement', - 'dom::htmlmetaelement::HTMLMetaElement', - 'dom::htmlolistelement::HTMLOListElement', - 'dom::htmlprogresselement::HTMLProgressElement', - 'dom::htmlquoteelement::HTMLQuoteElement', - 'dom::htmlscriptelement::HTMLScriptElement', - 'dom::htmlsourceelement::HTMLSourceElement', - 'dom::htmlstyleelement::HTMLStyleElement', - 'dom::htmltablecaptionelement::HTMLTableCaptionElement', - 'dom::htmltableelement::HTMLTableElement', - 'dom::htmltablecellelement::HTMLTableCellElement', - 'dom::htmltablecolelement::HTMLTableColElement', - 'dom::htmltablerowelement::HTMLTableRowElement', - 'dom::htmltablesectionelement::HTMLTableSectionElement', - 'dom::htmltextareaelement::HTMLTextAreaElement', - 'dom::htmltimeelement::HTMLTimeElement', - 'dom::htmltitleelement::HTMLTitleElement', #XXXyusukesuzuki - 'dom::htmlulistelement::HTMLUListElement', + 'dom::types::*', 'dom::bindings::utils::*', 'dom::bindings::conversions::*', - 'dom::blob::*', #XXXjdm - 'dom::clientrect::*', #XXXjdm - 'dom::clientrectlist::*', #XXXjdm - 'dom::htmlcollection::*', #XXXjdm - 'dom::bindings::proxyhandler::*', - 'dom::domparser::*', #XXXjdm - 'dom::event::*', #XXXjdm - 'dom::eventtarget::*', #XXXjdm - 'dom::formdata::*', #XXXjdm - 'dom::mouseevent::*', #XXXjdm - 'dom::uievent::*', #XXXjdm - 'dom::validitystate::*', #XXXjdm - 'dom::windowproxy::*', #XXXjdm - 'dom::window::Window', #XXXjdm 'dom::bindings::codegen::*', #XXXjdm 'script_task::{JSPageInfo, page_from_context}', 'dom::bindings::utils::EnumEntry', - 'dom::node::ScriptView', + 'dom::bindings::proxyhandler::*', + 'dom::document::AbstractDocument', + 'dom::node::{AbstractNode, ScriptView}', 'servo_util::vec::zip_copies', 'std::cast', 'std::libc', @@ -4782,3 +4722,18 @@ class GlobalGenRoots(): # Done. return curr + @staticmethod + def InterfaceTypes(config): + + descriptors = [d.name for d in config.getDescriptors(register=True)] + curr = CGList([CGGeneric(declare="pub use dom::%s::%s;\n" % (name.lower(), name)) for name in descriptors]) + curr = CGWrapper(curr, pre=AUTOGENERATED_WARNING_COMMENT) + return curr + + @staticmethod + def BindingDeclarations(config): + + descriptors = [d.name for d in config.getDescriptors(register=True)] + curr = CGList([CGGeneric(declare="pub mod %sBinding;\n" % name) for name in descriptors]) + curr = CGWrapper(curr, pre=AUTOGENERATED_WARNING_COMMENT) + return curr diff --git a/src/components/script/dom/bindings/codegen/GlobalGen.py b/src/components/script/dom/bindings/codegen/GlobalGen.py index ab6427a638c..9f46c786065 100644 --- a/src/components/script/dom/bindings/codegen/GlobalGen.py +++ b/src/components/script/dom/bindings/codegen/GlobalGen.py @@ -80,6 +80,12 @@ def main(): # Generate the common code. generate_file(config, 'RegisterBindings', 'declare+define') + # Generate the type list. + generate_file(config, 'InterfaceTypes', 'declare+define') + + # Generate the module declarations. + generate_file(config, 'BindingDeclarations', 'declare+define') + #XXXjdm No union support yet #generate_file(config, 'UnionTypes', 'declare') #generate_file(config, 'UnionConversions', 'declare') diff --git a/src/components/script/dom/bindings/element.rs b/src/components/script/dom/bindings/element.rs index 60d4ca9cfc2..b7e6e013b9c 100644 --- a/src/components/script/dom/bindings/element.rs +++ b/src/components/script/dom/bindings/element.rs @@ -2,10 +2,13 @@ * 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::types::*; +use dom::bindings::codegen::*; use dom::bindings::node::unwrap; use dom::bindings::utils::jsval_to_str; use dom::bindings::utils::{domstring_to_jsval, WrapNewBindingObject}; use dom::bindings::utils::{str, CacheableWrapper, DOM_OBJECT_SLOT, DOMString}; +use dom::bindings::utils::{BindingObject, WrapperCache}; use dom::element::Element; use dom::element::{HTMLImageElementTypeId, HTMLHeadElementTypeId, HTMLScriptElementTypeId, HTMLDivElementTypeId}; @@ -306,3 +309,123 @@ pub fn create(cx: *JSContext, node: &mut AbstractNode<ScriptView>) -> jsobj { return obj; } + +pub macro_rules! generate_cacheable_wrapper( + ($name: ident, $wrap: path) => ( + impl CacheableWrapper for $name { + fn get_wrappercache(&mut self) -> &mut WrapperCache { + self.parent.get_wrappercache() + } + + fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject { + let mut unused = false; + $wrap(cx, scope, self, &mut unused) + } + } + ) +) + +pub macro_rules! generate_binding_object( + ($name: ident) => ( + impl BindingObject for $name { + fn GetParentObject(&self, cx: *JSContext) -> Option<@mut CacheableWrapper> { + self.parent.GetParentObject(cx) + } + } + ) +) + +generate_cacheable_wrapper!(HTMLHeadElement, HTMLHeadElementBinding::Wrap) +generate_binding_object!(HTMLHeadElement) +generate_cacheable_wrapper!(HTMLAnchorElement, HTMLAnchorElementBinding::Wrap) +generate_binding_object!(HTMLAnchorElement) +generate_cacheable_wrapper!(HTMLAppletElement, HTMLAppletElementBinding::Wrap) +generate_binding_object!(HTMLAppletElement) +generate_cacheable_wrapper!(HTMLAreaElement, HTMLAreaElementBinding::Wrap) +generate_binding_object!(HTMLAreaElement) +generate_cacheable_wrapper!(HTMLBaseElement, HTMLBaseElementBinding::Wrap) +generate_binding_object!(HTMLBaseElement) +generate_cacheable_wrapper!(HTMLBodyElement, HTMLBodyElementBinding::Wrap) +generate_binding_object!(HTMLBodyElement) +generate_cacheable_wrapper!(HTMLButtonElement, HTMLButtonElementBinding::Wrap) +generate_binding_object!(HTMLButtonElement) +generate_cacheable_wrapper!(HTMLCanvasElement, HTMLCanvasElementBinding::Wrap) +generate_binding_object!(HTMLCanvasElement) +generate_cacheable_wrapper!(HTMLDataListElement, HTMLDataListElementBinding::Wrap) +generate_binding_object!(HTMLDataListElement) +generate_cacheable_wrapper!(HTMLDListElement, HTMLDListElementBinding::Wrap) +generate_binding_object!(HTMLDListElement) +generate_cacheable_wrapper!(HTMLFrameElement, HTMLFrameElementBinding::Wrap) +generate_binding_object!(HTMLFrameElement) +generate_cacheable_wrapper!(HTMLFrameSetElement, HTMLFrameSetElementBinding::Wrap) +generate_binding_object!(HTMLFrameSetElement) +generate_cacheable_wrapper!(HTMLBRElement, HTMLBRElementBinding::Wrap) +generate_binding_object!(HTMLBRElement) +generate_cacheable_wrapper!(HTMLHRElement, HTMLHRElementBinding::Wrap) +generate_binding_object!(HTMLHRElement) +generate_cacheable_wrapper!(HTMLHtmlElement, HTMLHtmlElementBinding::Wrap) +generate_binding_object!(HTMLHtmlElement) +generate_cacheable_wrapper!(HTMLDataElement, HTMLDataElementBinding::Wrap) +generate_binding_object!(HTMLDataElement) +generate_cacheable_wrapper!(HTMLDirectoryElement, HTMLDirectoryElementBinding::Wrap) +generate_binding_object!(HTMLDirectoryElement) +generate_cacheable_wrapper!(HTMLDivElement, HTMLDivElementBinding::Wrap) +generate_binding_object!(HTMLDivElement) +generate_cacheable_wrapper!(HTMLEmbedElement, HTMLEmbedElementBinding::Wrap) +generate_binding_object!(HTMLEmbedElement) +generate_cacheable_wrapper!(HTMLFieldSetElement, HTMLFieldSetElementBinding::Wrap) +generate_binding_object!(HTMLFieldSetElement) +generate_cacheable_wrapper!(HTMLFontElement, HTMLFontElementBinding::Wrap) +generate_binding_object!(HTMLFontElement) +generate_cacheable_wrapper!(HTMLHeadingElement, HTMLHeadingElementBinding::Wrap) +generate_binding_object!(HTMLHeadingElement) +generate_cacheable_wrapper!(HTMLIFrameElement, HTMLIFrameElementBinding::Wrap) +generate_binding_object!(HTMLIFrameElement) +generate_cacheable_wrapper!(HTMLImageElement, HTMLImageElementBinding::Wrap) +generate_binding_object!(HTMLImageElement) +generate_cacheable_wrapper!(HTMLInputElement, HTMLInputElementBinding::Wrap) +generate_binding_object!(HTMLInputElement) +generate_cacheable_wrapper!(HTMLLIElement, HTMLLIElementBinding::Wrap) +generate_binding_object!(HTMLLIElement) +generate_cacheable_wrapper!(HTMLLinkElement, HTMLLinkElementBinding::Wrap) +generate_binding_object!(HTMLLinkElement) +generate_cacheable_wrapper!(HTMLMapElement, HTMLMapElementBinding::Wrap) +generate_binding_object!(HTMLMapElement) +generate_cacheable_wrapper!(HTMLMetaElement, HTMLMetaElementBinding::Wrap) +generate_binding_object!(HTMLMetaElement) +generate_cacheable_wrapper!(HTMLOListElement, HTMLOListElementBinding::Wrap) +generate_binding_object!(HTMLOListElement) +generate_cacheable_wrapper!(HTMLParagraphElement, HTMLParagraphElementBinding::Wrap) +generate_binding_object!(HTMLParagraphElement) +generate_cacheable_wrapper!(HTMLProgressElement, HTMLProgressElementBinding::Wrap) +generate_binding_object!(HTMLProgressElement) +generate_cacheable_wrapper!(HTMLQuoteElement, HTMLQuoteElementBinding::Wrap) +generate_binding_object!(HTMLQuoteElement) +generate_cacheable_wrapper!(HTMLScriptElement, HTMLScriptElementBinding::Wrap) +generate_binding_object!(HTMLScriptElement) +generate_cacheable_wrapper!(HTMLSourceElement, HTMLSourceElementBinding::Wrap) +generate_binding_object!(HTMLSourceElement) +generate_cacheable_wrapper!(HTMLSpanElement, HTMLSpanElementBinding::Wrap) +generate_binding_object!(HTMLSpanElement) +generate_cacheable_wrapper!(HTMLStyleElement, HTMLStyleElementBinding::Wrap) +generate_binding_object!(HTMLStyleElement) +generate_cacheable_wrapper!(HTMLTableElement, HTMLTableElementBinding::Wrap) +generate_binding_object!(HTMLTableElement) +generate_cacheable_wrapper!(HTMLTableCaptionElement, HTMLTableCaptionElementBinding::Wrap) +generate_binding_object!(HTMLTableCaptionElement) +generate_cacheable_wrapper!(HTMLTableCellElement, HTMLTableCellElementBinding::Wrap) +generate_binding_object!(HTMLTableCellElement) +generate_cacheable_wrapper!(HTMLTableColElement, HTMLTableColElementBinding::Wrap) +generate_binding_object!(HTMLTableColElement) +generate_cacheable_wrapper!(HTMLTableRowElement, HTMLTableRowElementBinding::Wrap) +generate_binding_object!(HTMLTableRowElement) +generate_cacheable_wrapper!(HTMLTableSectionElement, HTMLTableSectionElementBinding::Wrap) +generate_binding_object!(HTMLTableSectionElement) +generate_cacheable_wrapper!(HTMLTextAreaElement, HTMLTextAreaElementBinding::Wrap) +generate_binding_object!(HTMLTextAreaElement) +generate_cacheable_wrapper!(HTMLTitleElement, HTMLTitleElementBinding::Wrap) +generate_binding_object!(HTMLTitleElement) +generate_cacheable_wrapper!(HTMLTimeElement, HTMLTimeElementBinding::Wrap) +generate_binding_object!(HTMLTimeElement) +generate_cacheable_wrapper!(HTMLUListElement, HTMLUListElementBinding::Wrap) +generate_binding_object!(HTMLUListElement) diff --git a/src/components/script/dom/bindings/node.rs b/src/components/script/dom/bindings/node.rs index 0d7b99776d4..f7681775e24 100644 --- a/src/components/script/dom/bindings/node.rs +++ b/src/components/script/dom/bindings/node.rs @@ -25,52 +25,9 @@ use dom::element::{HTMLElementTypeId, HTMLTableColElementTypeId, HTMLTableRowElementTypeId, HTMLTableSectionElementTypeId, HTMLTimeElementTypeId, HTMLTitleElementTypeId, HTMLUListElementTypeId, HTMLDListElementTypeId}; -use dom::element::{HTMLHeadElement,HTMLHtmlElement, HTMLDivElement, HTMLParagraphElement, HTMLSpanElement}; -use dom::htmlelement::HTMLElement; -use dom::htmlanchorelement::HTMLAnchorElement; -use dom::htmlappletelement::HTMLAppletElement; -use dom::htmlareaelement::HTMLAreaElement; -use dom::htmlbaseelement::HTMLBaseElement; -use dom::htmlbodyelement::HTMLBodyElement; -use dom::htmlbuttonelement::HTMLButtonElement; -use dom::htmlhrelement::HTMLHRElement; -use dom::htmlbrelement::HTMLBRElement; -use dom::htmlcanvaselement::HTMLCanvasElement; -use dom::htmldataelement::HTMLDataElement; -use dom::htmldatalistelement::HTMLDataListElement; -use dom::htmldirectoryelement::HTMLDirectoryElement; -use dom::htmldlistelement::HTMLDListElement; -use dom::htmlembedelement::HTMLEmbedElement; -use dom::htmlfieldsetelement::HTMLFieldSetElement; -use dom::htmlfontelement::HTMLFontElement; -use dom::htmlframeelement::HTMLFrameElement; -use dom::htmlframesetelement::HTMLFrameSetElement; -use dom::htmlheadingelement::HTMLHeadingElement; -use dom::htmliframeelement::HTMLIFrameElement; -use dom::htmlimageelement::HTMLImageElement; -use dom::htmlinputelement::HTMLInputElement; -use dom::htmllielement::HTMLLIElement; -use dom::htmllinkelement::HTMLLinkElement; -use dom::htmlmapelement::HTMLMapElement; -use dom::htmlmetaelement::HTMLMetaElement; -use dom::htmlolistelement::HTMLOListElement; -use dom::htmlprogresselement::HTMLProgressElement; -use dom::htmlquoteelement::HTMLQuoteElement; -use dom::htmlscriptelement::HTMLScriptElement; -use dom::htmlsourceelement::HTMLSourceElement; -use dom::htmlstyleelement::HTMLStyleElement; -use dom::htmltableelement::HTMLTableElement; -use dom::htmltablecaptionelement::HTMLTableCaptionElement; -use dom::htmltablecellelement::HTMLTableCellElement; -use dom::htmltablecolelement::HTMLTableColElement; -use dom::htmltablerowelement::HTMLTableRowElement; -use dom::htmltablesectionelement::HTMLTableSectionElement; -use dom::htmltextareaelement::HTMLTextAreaElement; -use dom::htmltimeelement::HTMLTimeElement; -use dom::htmltitleelement::HTMLTitleElement; -use dom::htmlulistelement::HTMLUListElement; +use dom::types::*; use dom::node::{AbstractNode, Node, ElementNodeTypeId, TextNodeTypeId, CommentNodeTypeId}; -use dom::node::{DoctypeNodeTypeId, ScriptView, Text}; +use dom::node::{DoctypeNodeTypeId, ScriptView}; use std::cast; use std::libc::c_uint; diff --git a/src/components/script/dom/bindings/text.rs b/src/components/script/dom/bindings/text.rs index efa8cc90206..9b231d7087d 100644 --- a/src/components/script/dom/bindings/text.rs +++ b/src/components/script/dom/bindings/text.rs @@ -6,8 +6,9 @@ use dom::bindings::element; use dom::bindings::node::unwrap; use dom::bindings::utils; use dom::bindings::utils::{DOM_OBJECT_SLOT, CacheableWrapper}; -use dom::node::{AbstractNode, Text, Comment, Doctype, TextNodeTypeId, CommentNodeTypeId}; +use dom::node::{AbstractNode, Comment, Doctype, TextNodeTypeId, CommentNodeTypeId}; use dom::node::{DoctypeNodeTypeId, ScriptView}; +use dom::text::Text; use js::jsapi::{JSFreeOp, JSObject, JSContext}; use js::jsapi::{JS_SetReservedSlot}; diff --git a/src/components/script/dom/document.rs b/src/components/script/dom/document.rs index 8547a0e3cc7..2048e8f7988 100644 --- a/src/components/script/dom/document.rs +++ b/src/components/script/dom/document.rs @@ -5,13 +5,15 @@ use dom::bindings::codegen::DocumentBinding; use dom::bindings::utils::{DOMString, WrapperCache, ErrorResult, null_string, str}; use dom::bindings::utils::{BindingObject, CacheableWrapper, rust_box, DerivedWrapper}; -use dom::element::{Element, HTMLHtmlElement}; +use dom::element::{Element}; use dom::element::{HTMLHtmlElementTypeId, HTMLHeadElementTypeId, HTMLTitleElementTypeId}; use dom::event::Event; use dom::htmlcollection::HTMLCollection; use dom::htmldocument::HTMLDocument; use dom::htmlelement::HTMLElement; -use dom::node::{AbstractNode, ScriptView, Node, ElementNodeTypeId, Text}; +use dom::htmlhtmlelement::HTMLHtmlElement; +use dom::node::{AbstractNode, ScriptView, Node, ElementNodeTypeId}; +use dom::text::Text; use dom::window::Window; use dom::windowproxy::WindowProxy; use dom::htmltitleelement::HTMLTitleElement; diff --git a/src/components/script/dom/domparser.rs b/src/components/script/dom/domparser.rs index 58756ca8710..6d11ab8a8c7 100644 --- a/src/components/script/dom/domparser.rs +++ b/src/components/script/dom/domparser.rs @@ -6,9 +6,10 @@ use dom::bindings::codegen::DOMParserBinding; use dom::bindings::codegen::DOMParserBinding::SupportedTypeValues::{Text_html, Text_xml}; use dom::bindings::utils::{DOMString, ErrorResult, WrapperCache, CacheableWrapper}; use dom::document::{AbstractDocument, Document, XML}; -use dom::element::{HTMLHtmlElement, HTMLHtmlElementTypeId}; +use dom::element::HTMLHtmlElementTypeId; use dom::htmldocument::HTMLDocument; use dom::htmlelement::HTMLElement; +use dom::htmlhtmlelement::HTMLHtmlElement; use dom::node::Node; use dom::window::Window; diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs index 8a296c5d3d0..c4484bcd38d 100644 --- a/src/components/script/dom/element.rs +++ b/src/components/script/dom/element.rs @@ -4,77 +4,12 @@ //! Element nodes. -use dom::bindings::codegen::{HTMLAnchorElementBinding, HTMLAppletElementBinding, - HTMLAreaElementBinding, HTMLBaseElementBinding, - HTMLBodyElementBinding, HTMLBRElementBinding, - HTMLButtonElementBinding, HTMLCanvasElementBinding, - HTMLDataElementBinding, HTMLDataListElementBinding, - HTMLDirectoryElementBinding, HTMLDListElementBinding, - HTMLDivElementBinding, HTMLEmbedElementBinding, - HTMLFieldSetElementBinding, HTMLFontElementBinding, - HTMLFrameElementBinding, HTMLFrameSetElementBinding, - HTMLHeadElementBinding, HTMLHeadingElementBinding, - HTMLHRElementBinding, HTMLHtmlElementBinding, - HTMLIFrameElementBinding, HTMLImageElementBinding, - HTMLInputElementBinding, HTMLLIElementBinding, - HTMLLinkElementBinding, HTMLMapElementBinding, - HTMLMetaElementBinding, - HTMLOListElementBinding, HTMLParagraphElementBinding, - HTMLProgressElementBinding, HTMLQuoteElementBinding, - HTMLScriptElementBinding, HTMLSourceElementBinding, HTMLSpanElementBinding, - HTMLStyleElementBinding, HTMLTableElementBinding, - HTMLTableCaptionElementBinding, HTMLTableCellElementBinding, - HTMLTableColElementBinding, HTMLTableRowElementBinding, - HTMLTableSectionElementBinding, HTMLTextAreaElementBinding, - HTMLTimeElementBinding, HTMLTitleElementBinding, HTMLUListElementBinding}; use dom::bindings::utils::{null_string, str}; use dom::bindings::utils::{BindingObject, CacheableWrapper, DOMString, ErrorResult, WrapperCache}; +use dom::htmlelement::HTMLElement; +use dom::htmlcollection::HTMLCollection; use dom::clientrect::ClientRect; use dom::clientrectlist::ClientRectList; -use dom::htmlanchorelement::HTMLAnchorElement; -use dom::htmlappletelement::HTMLAppletElement; -use dom::htmlareaelement::HTMLAreaElement; -use dom::htmlbaseelement::HTMLBaseElement; -use dom::htmlbodyelement::HTMLBodyElement; -use dom::htmlbrelement::HTMLBRElement; -use dom::htmlbuttonelement::HTMLButtonElement; -use dom::htmlcanvaselement::HTMLCanvasElement; -use dom::htmlcollection::HTMLCollection; -use dom::htmldataelement::HTMLDataElement; -use dom::htmldatalistelement::HTMLDataListElement; -use dom::htmldirectoryelement::HTMLDirectoryElement; -use dom::htmldlistelement::HTMLDListElement; -use dom::htmlelement::HTMLElement; -use dom::htmlembedelement::HTMLEmbedElement; -use dom::htmlfieldsetelement::HTMLFieldSetElement; -use dom::htmlfontelement::HTMLFontElement; -use dom::htmlframeelement::HTMLFrameElement; -use dom::htmlframesetelement::HTMLFrameSetElement; -use dom::htmlheadingelement::HTMLHeadingElement; -use dom::htmlhrelement::HTMLHRElement; -use dom::htmliframeelement::HTMLIFrameElement; -use dom::htmlimageelement::HTMLImageElement; -use dom::htmlinputelement::HTMLInputElement; -use dom::htmllielement::HTMLLIElement; -use dom::htmllinkelement::HTMLLinkElement; -use dom::htmlmapelement::HTMLMapElement; -use dom::htmlmetaelement::HTMLMetaElement; -use dom::htmlolistelement::HTMLOListElement; -use dom::htmlprogresselement::HTMLProgressElement; -use dom::htmlquoteelement::HTMLQuoteElement; -use dom::htmlscriptelement::HTMLScriptElement; -use dom::htmlsourceelement::HTMLSourceElement; -use dom::htmlstyleelement::HTMLStyleElement; -use dom::htmltableelement::HTMLTableElement; -use dom::htmltablecaptionelement::HTMLTableCaptionElement; -use dom::htmltablecellelement::HTMLTableCellElement; -use dom::htmltablecolelement::HTMLTableColElement; -use dom::htmltablerowelement::HTMLTableRowElement; -use dom::htmltablesectionelement::HTMLTableSectionElement; -use dom::htmltextareaelement::HTMLTextAreaElement; -use dom::htmltimeelement::HTMLTimeElement; -use dom::htmltitleelement::HTMLTitleElement; -use dom::htmlulistelement::HTMLUListElement; use dom::node::{ElementNodeTypeId, Node, ScriptView, AbstractNode}; use layout_interface::{ContentBoxQuery, ContentBoxResponse, ContentBoxesQuery}; use layout_interface::{ContentBoxesResponse}; @@ -171,164 +106,11 @@ pub enum ElementTypeId { // Regular old elements // -pub struct HTMLDivElement { parent: HTMLElement } -pub struct HTMLFormElement { parent: HTMLElement } -pub struct HTMLHeadElement { parent: HTMLElement } -pub struct HTMLHtmlElement { parent: HTMLElement } pub struct HTMLOptionElement { parent: HTMLElement } -pub struct HTMLParagraphElement { parent: HTMLElement } pub struct HTMLSelectElement { parent: HTMLElement } pub struct HTMLSmallElement { parent: HTMLElement } -pub struct HTMLSpanElement { parent: HTMLElement } pub struct UnknownElement { parent: HTMLElement } -impl HTMLHtmlElement { - pub fn Version(&self) -> DOMString { - null_string - } - - pub fn SetVersion(&mut self, _version: &DOMString, _rv: &mut ErrorResult) { - } -} - -impl HTMLDivElement { - pub fn Align(&self) -> DOMString { - null_string - } - - pub fn SetAlign(&mut self, _align: &DOMString, _rv: &mut ErrorResult) { - } -} - -impl HTMLParagraphElement { - pub fn Align(&self) -> DOMString { - null_string - } - - pub fn SetAlign(&mut self, _align: &DOMString, _rv: &mut ErrorResult) { - } -} - -pub macro_rules! generate_cacheable_wrapper( - ($name: ident, $wrap: path) => ( - impl CacheableWrapper for $name { - fn get_wrappercache(&mut self) -> &mut WrapperCache { - self.parent.get_wrappercache() - } - - fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject { - let mut unused = false; - $wrap(cx, scope, self, &mut unused) - } - } - ) -) - -pub macro_rules! generate_binding_object( - ($name: ident) => ( - impl BindingObject for $name { - fn GetParentObject(&self, cx: *JSContext) -> Option<@mut CacheableWrapper> { - self.parent.GetParentObject(cx) - } - } - ) -) - -generate_cacheable_wrapper!(HTMLHeadElement, HTMLHeadElementBinding::Wrap) -generate_binding_object!(HTMLHeadElement) -generate_cacheable_wrapper!(HTMLAnchorElement, HTMLAnchorElementBinding::Wrap) -generate_binding_object!(HTMLAnchorElement) -generate_cacheable_wrapper!(HTMLAppletElement, HTMLAppletElementBinding::Wrap) -generate_binding_object!(HTMLAppletElement) -generate_cacheable_wrapper!(HTMLAreaElement, HTMLAreaElementBinding::Wrap) -generate_binding_object!(HTMLAreaElement) -generate_cacheable_wrapper!(HTMLBaseElement, HTMLBaseElementBinding::Wrap) -generate_binding_object!(HTMLBaseElement) -generate_cacheable_wrapper!(HTMLBodyElement, HTMLBodyElementBinding::Wrap) -generate_binding_object!(HTMLBodyElement) -generate_cacheable_wrapper!(HTMLButtonElement, HTMLButtonElementBinding::Wrap) -generate_binding_object!(HTMLButtonElement) -generate_cacheable_wrapper!(HTMLCanvasElement, HTMLCanvasElementBinding::Wrap) -generate_binding_object!(HTMLCanvasElement) -generate_cacheable_wrapper!(HTMLDataListElement, HTMLDataListElementBinding::Wrap) -generate_binding_object!(HTMLDataListElement) -generate_cacheable_wrapper!(HTMLDListElement, HTMLDListElementBinding::Wrap) -generate_binding_object!(HTMLDListElement) -generate_cacheable_wrapper!(HTMLFrameElement, HTMLFrameElementBinding::Wrap) -generate_binding_object!(HTMLFrameElement) -generate_cacheable_wrapper!(HTMLFrameSetElement, HTMLFrameSetElementBinding::Wrap) -generate_binding_object!(HTMLFrameSetElement) -generate_cacheable_wrapper!(HTMLBRElement, HTMLBRElementBinding::Wrap) -generate_binding_object!(HTMLBRElement) -generate_cacheable_wrapper!(HTMLHRElement, HTMLHRElementBinding::Wrap) -generate_binding_object!(HTMLHRElement) -generate_cacheable_wrapper!(HTMLHtmlElement, HTMLHtmlElementBinding::Wrap) -generate_binding_object!(HTMLHtmlElement) -generate_cacheable_wrapper!(HTMLDataElement, HTMLDataElementBinding::Wrap) -generate_binding_object!(HTMLDataElement) -generate_cacheable_wrapper!(HTMLDirectoryElement, HTMLDirectoryElementBinding::Wrap) -generate_binding_object!(HTMLDirectoryElement) -generate_cacheable_wrapper!(HTMLDivElement, HTMLDivElementBinding::Wrap) -generate_binding_object!(HTMLDivElement) -generate_cacheable_wrapper!(HTMLEmbedElement, HTMLEmbedElementBinding::Wrap) -generate_binding_object!(HTMLEmbedElement) -generate_cacheable_wrapper!(HTMLFieldSetElement, HTMLFieldSetElementBinding::Wrap) -generate_binding_object!(HTMLFieldSetElement) -generate_cacheable_wrapper!(HTMLFontElement, HTMLFontElementBinding::Wrap) -generate_binding_object!(HTMLFontElement) -generate_cacheable_wrapper!(HTMLHeadingElement, HTMLHeadingElementBinding::Wrap) -generate_binding_object!(HTMLHeadingElement) -generate_cacheable_wrapper!(HTMLIFrameElement, HTMLIFrameElementBinding::Wrap) -generate_binding_object!(HTMLIFrameElement) -generate_cacheable_wrapper!(HTMLImageElement, HTMLImageElementBinding::Wrap) -generate_binding_object!(HTMLImageElement) -generate_cacheable_wrapper!(HTMLInputElement, HTMLInputElementBinding::Wrap) -generate_binding_object!(HTMLInputElement) -generate_cacheable_wrapper!(HTMLLIElement, HTMLLIElementBinding::Wrap) -generate_binding_object!(HTMLLIElement) -generate_cacheable_wrapper!(HTMLLinkElement, HTMLLinkElementBinding::Wrap) -generate_binding_object!(HTMLLinkElement) -generate_cacheable_wrapper!(HTMLMapElement, HTMLMapElementBinding::Wrap) -generate_binding_object!(HTMLMapElement) -generate_cacheable_wrapper!(HTMLMetaElement, HTMLMetaElementBinding::Wrap) -generate_binding_object!(HTMLMetaElement) -generate_cacheable_wrapper!(HTMLOListElement, HTMLOListElementBinding::Wrap) -generate_binding_object!(HTMLOListElement) -generate_cacheable_wrapper!(HTMLParagraphElement, HTMLParagraphElementBinding::Wrap) -generate_binding_object!(HTMLParagraphElement) -generate_cacheable_wrapper!(HTMLProgressElement, HTMLProgressElementBinding::Wrap) -generate_binding_object!(HTMLProgressElement) -generate_cacheable_wrapper!(HTMLQuoteElement, HTMLQuoteElementBinding::Wrap) -generate_binding_object!(HTMLQuoteElement) -generate_cacheable_wrapper!(HTMLScriptElement, HTMLScriptElementBinding::Wrap) -generate_binding_object!(HTMLScriptElement) -generate_cacheable_wrapper!(HTMLSourceElement, HTMLSourceElementBinding::Wrap) -generate_binding_object!(HTMLSourceElement) -generate_cacheable_wrapper!(HTMLSpanElement, HTMLSpanElementBinding::Wrap) -generate_binding_object!(HTMLSpanElement) -generate_cacheable_wrapper!(HTMLStyleElement, HTMLStyleElementBinding::Wrap) -generate_binding_object!(HTMLStyleElement) -generate_cacheable_wrapper!(HTMLTableElement, HTMLTableElementBinding::Wrap) -generate_binding_object!(HTMLTableElement) -generate_cacheable_wrapper!(HTMLTableCaptionElement, HTMLTableCaptionElementBinding::Wrap) -generate_binding_object!(HTMLTableCaptionElement) -generate_cacheable_wrapper!(HTMLTableCellElement, HTMLTableCellElementBinding::Wrap) -generate_binding_object!(HTMLTableCellElement) -generate_cacheable_wrapper!(HTMLTableColElement, HTMLTableColElementBinding::Wrap) -generate_binding_object!(HTMLTableColElement) -generate_cacheable_wrapper!(HTMLTableRowElement, HTMLTableRowElementBinding::Wrap) -generate_binding_object!(HTMLTableRowElement) -generate_cacheable_wrapper!(HTMLTableSectionElement, HTMLTableSectionElementBinding::Wrap) -generate_binding_object!(HTMLTableSectionElement) -generate_cacheable_wrapper!(HTMLTextAreaElement, HTMLTextAreaElementBinding::Wrap) -generate_binding_object!(HTMLTextAreaElement) -generate_cacheable_wrapper!(HTMLTitleElement, HTMLTitleElementBinding::Wrap) -generate_binding_object!(HTMLTitleElement) -generate_cacheable_wrapper!(HTMLTimeElement, HTMLTimeElementBinding::Wrap) -generate_binding_object!(HTMLTimeElement) -generate_cacheable_wrapper!(HTMLUListElement, HTMLUListElementBinding::Wrap) -generate_binding_object!(HTMLUListElement) - // // Element methods // diff --git a/src/components/script/dom/htmldivelement.rs b/src/components/script/dom/htmldivelement.rs new file mode 100644 index 00000000000..b46281234e7 --- /dev/null +++ b/src/components/script/dom/htmldivelement.rs @@ -0,0 +1,19 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * 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::utils::{DOMString, null_string, ErrorResult}; +use dom::htmlelement::HTMLElement; + +pub struct HTMLDivElement { + parent: HTMLElement +} + +impl HTMLDivElement { + pub fn Align(&self) -> DOMString { + null_string + } + + pub fn SetAlign(&mut self, _align: &DOMString, _rv: &mut ErrorResult) { + } +} diff --git a/src/components/script/dom/htmlformelement.rs b/src/components/script/dom/htmlformelement.rs new file mode 100644 index 00000000000..06ab7f52fc9 --- /dev/null +++ b/src/components/script/dom/htmlformelement.rs @@ -0,0 +1,9 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * 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::htmlelement::HTMLElement; + +pub struct HTMLFormElement { + parent: HTMLElement +} diff --git a/src/components/script/dom/htmlheadelement.rs b/src/components/script/dom/htmlheadelement.rs new file mode 100644 index 00000000000..577e8a1584c --- /dev/null +++ b/src/components/script/dom/htmlheadelement.rs @@ -0,0 +1,9 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * 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::htmlelement::HTMLElement; + +pub struct HTMLHeadElement { + parent: HTMLElement +} diff --git a/src/components/script/dom/htmlhtmlelement.rs b/src/components/script/dom/htmlhtmlelement.rs new file mode 100644 index 00000000000..7aa36abb90c --- /dev/null +++ b/src/components/script/dom/htmlhtmlelement.rs @@ -0,0 +1,19 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * 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::utils::{DOMString, null_string, ErrorResult}; +use dom::htmlelement::HTMLElement; + +pub struct HTMLHtmlElement { + parent: HTMLElement +} + +impl HTMLHtmlElement { + pub fn Version(&self) -> DOMString { + null_string + } + + pub fn SetVersion(&mut self, _version: &DOMString, _rv: &mut ErrorResult) { + } +} diff --git a/src/components/script/dom/htmlparagraphelement.rs b/src/components/script/dom/htmlparagraphelement.rs new file mode 100644 index 00000000000..618a22d94d9 --- /dev/null +++ b/src/components/script/dom/htmlparagraphelement.rs @@ -0,0 +1,19 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * 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::utils::{DOMString, null_string, ErrorResult}; +use dom::htmlelement::HTMLElement; + +pub struct HTMLParagraphElement { + parent: HTMLElement +} + +impl HTMLParagraphElement { + pub fn Align(&self) -> DOMString { + null_string + } + + pub fn SetAlign(&mut self, _align: &DOMString, _rv: &mut ErrorResult) { + } +} diff --git a/src/components/script/dom/htmlspanelement.rs b/src/components/script/dom/htmlspanelement.rs new file mode 100644 index 00000000000..d12e4ae922d --- /dev/null +++ b/src/components/script/dom/htmlspanelement.rs @@ -0,0 +1,9 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * 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::htmlelement::HTMLElement; + +pub struct HTMLSpanElement { + parent: HTMLElement +} diff --git a/src/components/script/dom/node.rs b/src/components/script/dom/node.rs index e06c77577ed..23d76712022 100644 --- a/src/components/script/dom/node.rs +++ b/src/components/script/dom/node.rs @@ -4,7 +4,6 @@ //! The core DOM types. Defines the basic DOM hierarchy as well as all the HTML elements. -use dom::bindings::codegen::TextBinding; use dom::bindings::node; use dom::bindings::utils::{WrapperCache, DOMString, null_string, ErrorResult}; use dom::bindings::utils::{BindingObject, CacheableWrapper, rust_box}; @@ -15,7 +14,7 @@ use dom::element::{Element, ElementTypeId, HTMLImageElementTypeId, HTMLIframeEle use dom::element::{HTMLStyleElementTypeId}; use dom::htmlimageelement::HTMLImageElement; use dom::htmliframeelement::HTMLIFrameElement; -use dom::window::Window; +use dom::text::Text; use std::cast; use std::cast::transmute; @@ -143,33 +142,6 @@ impl Comment { } } -/// An HTML text node. -pub struct Text { - parent: CharacterData, -} - -impl Text { - /// Creates a new HTML text node. - pub fn new(text: ~str) -> Text { - Text { - parent: CharacterData::new(TextNodeTypeId, text) - } - } - - pub fn Constructor(owner: @mut Window, text: &DOMString, _rv: &mut ErrorResult) -> AbstractNode<ScriptView> { - let cx = unsafe {(*owner.page).js_info.get_ref().js_compartment.cx.ptr}; - unsafe { Node::as_abstract_node(cx, @Text::new(text.to_str())) } - } - - pub fn SplitText(&self, _offset: u32, _rv: &mut ErrorResult) -> AbstractNode<ScriptView> { - fail!("unimplemented") - } - - pub fn GetWholeText(&self, _rv: &mut ErrorResult) -> DOMString { - null_string - } -} - impl<View> Clone for AbstractNode<View> { fn clone(&self) -> AbstractNode<View> { *self @@ -707,19 +679,3 @@ impl BindingObject for Node<ScriptView> { } } -impl CacheableWrapper for Text { - fn get_wrappercache(&mut self) -> &mut WrapperCache { - self.parent.get_wrappercache() - } - - fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject { - let mut unused = false; - TextBinding::Wrap(cx, scope, self, &mut unused) - } -} - -impl BindingObject for Text { - fn GetParentObject(&self, cx: *JSContext) -> Option<@mut CacheableWrapper> { - self.parent.GetParentObject(cx) - } -} diff --git a/src/components/script/dom/text.rs b/src/components/script/dom/text.rs new file mode 100644 index 00000000000..95926d12d92 --- /dev/null +++ b/src/components/script/dom/text.rs @@ -0,0 +1,55 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * 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::utils::{DOMString, ErrorResult, null_string, CacheableWrapper}; +use dom::bindings::utils::{BindingObject, WrapperCache}; +use dom::bindings::codegen::TextBinding; +use dom::characterdata::CharacterData; +use dom::node::{AbstractNode, ScriptView, Node, TextNodeTypeId}; +use dom::window::Window; +use js::jsapi::{JSContext, JSObject}; + +/// An HTML text node. +pub struct Text { + parent: CharacterData, +} + +impl Text { + /// Creates a new HTML text node. + pub fn new(text: ~str) -> Text { + Text { + parent: CharacterData::new(TextNodeTypeId, text) + } + } + + pub fn Constructor(owner: @mut Window, text: &DOMString, _rv: &mut ErrorResult) -> AbstractNode<ScriptView> { + let cx = unsafe {(*owner.page).js_info.get_ref().js_compartment.cx.ptr}; + unsafe { Node::as_abstract_node(cx, @Text::new(text.to_str())) } + } + + pub fn SplitText(&self, _offset: u32, _rv: &mut ErrorResult) -> AbstractNode<ScriptView> { + fail!("unimplemented") + } + + pub fn GetWholeText(&self, _rv: &mut ErrorResult) -> DOMString { + null_string + } +} + +impl CacheableWrapper for Text { + fn get_wrappercache(&mut self) -> &mut WrapperCache { + self.parent.get_wrappercache() + } + + fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject { + let mut unused = false; + TextBinding::Wrap(cx, scope, self, &mut unused) + } +} + +impl BindingObject for Text { + fn GetParentObject(&self, cx: *JSContext) -> Option<@mut CacheableWrapper> { + self.parent.GetParentObject(cx) + } +} diff --git a/src/components/script/html/hubbub_html_parser.rs b/src/components/script/html/hubbub_html_parser.rs index 8c912d28136..2b814b50700 100644 --- a/src/components/script/html/hubbub_html_parser.rs +++ b/src/components/script/html/hubbub_html_parser.rs @@ -23,59 +23,15 @@ use dom::element::{HTMLElementTypeId, HTMLTableRowElementTypeId, HTMLTextAreaElementTypeId, HTMLTimeElementTypeId, HTMLTitleElementTypeId, HTMLUListElementTypeId, UnknownElementTypeId}; -use dom::element::{HTMLDivElement, HTMLFormElement, - HTMLHeadElement, HTMLHtmlElement, - HTMLOptionElement, HTMLParagraphElement, - HTMLSelectElement, HTMLSmallElement, - HTMLSpanElement}; +use dom::element::{HTMLOptionElement, HTMLSelectElement, HTMLSmallElement}; use dom::element::{HTMLHeadingElementTypeId}; -use dom::htmlbrelement::HTMLBRElement; -use dom::htmlanchorelement::HTMLAnchorElement; -use dom::htmlappletelement::HTMLAppletElement; -use dom::htmlareaelement::HTMLAreaElement; -use dom::htmlbaseelement::HTMLBaseElement; -use dom::htmlbodyelement::HTMLBodyElement; -use dom::htmlbuttonelement::HTMLButtonElement; -use dom::htmlcanvaselement::HTMLCanvasElement; -use dom::htmldataelement::HTMLDataElement; -use dom::htmldatalistelement::HTMLDataListElement; -use dom::htmldirectoryelement::HTMLDirectoryElement; -use dom::htmldlistelement::HTMLDListElement; -use dom::htmlembedelement::HTMLEmbedElement; -use dom::htmlfieldsetelement::HTMLFieldSetElement; -use dom::htmlfontelement::HTMLFontElement; -use dom::htmlframeelement::HTMLFrameElement; -use dom::htmlframesetelement::HTMLFrameSetElement; -use dom::htmlheadingelement::{HTMLHeadingElement, Heading1, Heading2, Heading3, Heading4, - Heading5, Heading6}; -use dom::htmlhrelement::HTMLHRElement; -use dom::htmliframeelement::{IFrameSize, HTMLIFrameElement}; -use dom::htmlimageelement::HTMLImageElement; -use dom::htmlinputelement::HTMLInputElement; -use dom::htmllielement::HTMLLIElement; -use dom::htmllinkelement::HTMLLinkElement; -use dom::htmlmapelement::HTMLMapElement; -use dom::htmlmetaelement::HTMLMetaElement; -use dom::htmlolistelement::HTMLOListElement; -use dom::htmlprogresselement::HTMLProgressElement; -use dom::htmlquoteelement::HTMLQuoteElement; -use dom::htmlscriptelement::HTMLScriptElement; -use dom::htmlsourceelement::HTMLSourceElement; -use dom::htmlstyleelement::HTMLStyleElement; -use dom::htmltableelement::HTMLTableElement; -use dom::htmltablecaptionelement::HTMLTableCaptionElement; -use dom::htmltablecellelement::HTMLTableCellElement; -use dom::htmltablecolelement::HTMLTableColElement; -use dom::htmltablerowelement::HTMLTableRowElement; -use dom::htmltablesectionelement::HTMLTableSectionElement; -use dom::htmltextareaelement::HTMLTextAreaElement; -use dom::htmltimeelement::HTMLTimeElement; -use dom::htmltitleelement::HTMLTitleElement; -use dom::htmlulistelement::HTMLUListElement; +use dom::htmlheadingelement::{Heading1, Heading2, Heading3, Heading4, Heading5, Heading6}; +use dom::htmliframeelement::IFrameSize; +use dom::htmlformelement::HTMLFormElement; +use dom::types::*; use dom::element::Element; use dom::htmlelement::HTMLElement; use dom::node::{AbstractNode, Comment, Doctype, ElementNodeTypeId, Node, ScriptView}; -use dom::node::{Text}; use dom::bindings::utils::str; use html::cssparse::{InlineProvenance, StylesheetProvenance, UrlProvenance, spawn_css_parser}; use js::jsapi::JSContext; diff --git a/src/components/script/script.rc b/src/components/script/script.rc index 2cbf9333de9..1350113c498 100644 --- a/src/components/script/script.rc +++ b/src/components/script/script.rc @@ -32,77 +32,18 @@ pub mod dom { pub mod proxyhandler; pub mod domparser; pub mod codegen { - pub mod BlobBinding; - pub mod CharacterDataBinding; - pub mod ClientRectBinding; - pub mod ClientRectListBinding; - pub mod DocumentBinding; - pub mod DOMParserBinding; - pub mod ElementBinding; - pub mod EventBinding; - pub mod EventTargetBinding; - pub mod FormDataBinding; - pub mod HTMLAnchorElementBinding; - pub mod HTMLAppletElementBinding; - pub mod HTMLAreaElementBinding; - pub mod HTMLBaseElementBinding; - pub mod HTMLBodyElementBinding; - pub mod HTMLBRElementBinding; - pub mod HTMLButtonElementBinding; - pub mod HTMLCanvasElementBinding; - pub mod HTMLCollectionBinding; - pub mod HTMLDataElementBinding; - pub mod HTMLDataListElementBinding; - pub mod HTMLDirectoryElementBinding; - pub mod HTMLDListElementBinding; - pub mod HTMLDivElementBinding; - pub mod HTMLDocumentBinding; - pub mod HTMLElementBinding; - pub mod HTMLEmbedElementBinding; - pub mod HTMLFieldSetElementBinding; - pub mod HTMLFontElementBinding; - pub mod HTMLFrameElementBinding; - pub mod HTMLFrameSetElementBinding; - pub mod HTMLHeadElementBinding; - pub mod HTMLHeadingElementBinding; - pub mod HTMLHRElementBinding; - pub mod HTMLHtmlElementBinding; - pub mod HTMLIFrameElementBinding; - pub mod HTMLImageElementBinding; - pub mod HTMLInputElementBinding; - pub mod HTMLLIElementBinding; - pub mod HTMLLinkElementBinding; - pub mod HTMLMapElementBinding; - pub mod HTMLMetaElementBinding; - pub mod HTMLOListElementBinding; - pub mod HTMLParagraphElementBinding; - pub mod HTMLProgressElementBinding; - pub mod HTMLQuoteElementBinding; - pub mod HTMLScriptElementBinding; - pub mod HTMLSourceElementBinding; - pub mod HTMLSpanElementBinding; - pub mod HTMLStyleElementBinding; - pub mod HTMLTableElementBinding; - pub mod HTMLTableCaptionElementBinding; - pub mod HTMLTableCellElementBinding; - pub mod HTMLTableColElementBinding; - pub mod HTMLTableRowElementBinding; - pub mod HTMLTableSectionElementBinding; - pub mod HTMLTextAreaElementBinding; - pub mod HTMLTimeElementBinding; - pub mod HTMLTitleElementBinding; - pub mod HTMLUListElementBinding; - pub mod MouseEventBinding; - pub mod NodeBinding; + pub use self::BindingDeclarations::*; + pub mod InterfaceTypes; pub mod PrototypeList; pub mod RegisterBindings; - pub mod TextBinding; - pub mod UIEventBinding; - pub mod ValidityStateBinding; - pub mod WindowBinding; - pub mod WindowProxyBinding; + pub mod BindingDeclarations; } } + + pub mod types { + pub use super::bindings::codegen::InterfaceTypes::*; + } + pub mod blob; pub mod characterdata; pub mod clientrect; @@ -125,16 +66,20 @@ pub mod dom { pub mod htmldataelement; pub mod htmldatalistelement; pub mod htmldirectoryelement; + pub mod htmldivelement; pub mod htmldlistelement; pub mod htmldocument; pub mod htmlelement; pub mod htmlembedelement; pub mod htmlfieldsetelement; pub mod htmlfontelement; + pub mod htmlformelement; pub mod htmlframeelement; pub mod htmlframesetelement; + pub mod htmlheadelement; pub mod htmlheadingelement; pub mod htmlhrelement; + pub mod htmlhtmlelement; pub mod htmliframeelement; pub mod htmlimageelement; pub mod htmlinputelement; @@ -143,9 +88,11 @@ pub mod dom { pub mod htmlmapelement; pub mod htmlmetaelement; pub mod htmlolistelement; + pub mod htmlparagraphelement; pub mod htmlprogresselement; pub mod htmlquoteelement; pub mod htmlscriptelement; + pub mod htmlspanelement; pub mod htmlsourceelement; pub mod htmlstyleelement; pub mod htmltableelement; @@ -161,6 +108,7 @@ pub mod dom { pub mod mouseevent; pub mod node; pub mod uievent; + pub mod text; pub mod validitystate; pub mod window; pub mod windowproxy; |