aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/script')
-rw-r--r--src/components/script/dom/bindings/codegen/Bindings.conf8
-rw-r--r--src/components/script/dom/bindings/codegen/CodegenRust.py83
-rw-r--r--src/components/script/dom/bindings/codegen/GlobalGen.py6
-rw-r--r--src/components/script/dom/bindings/element.rs123
-rw-r--r--src/components/script/dom/bindings/node.rs47
-rw-r--r--src/components/script/dom/bindings/text.rs3
-rw-r--r--src/components/script/dom/document.rs6
-rw-r--r--src/components/script/dom/domparser.rs3
-rw-r--r--src/components/script/dom/element.rs222
-rw-r--r--src/components/script/dom/htmldivelement.rs19
-rw-r--r--src/components/script/dom/htmlformelement.rs9
-rw-r--r--src/components/script/dom/htmlheadelement.rs9
-rw-r--r--src/components/script/dom/htmlhtmlelement.rs19
-rw-r--r--src/components/script/dom/htmlparagraphelement.rs19
-rw-r--r--src/components/script/dom/htmlspanelement.rs9
-rw-r--r--src/components/script/dom/node.rs46
-rw-r--r--src/components/script/dom/text.rs55
-rw-r--r--src/components/script/html/hubbub_html_parser.rs54
-rw-r--r--src/components/script/script.rc82
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;