Rename the element field of the DOM Node hierarchy

Renamed htmlelement, and element

Fixes #924
This commit is contained in:
Luis de Bethencourt 2013-09-19 18:05:48 -04:00
parent 0ca4c19b57
commit 2dbd065d91
77 changed files with 347 additions and 312 deletions

View file

@ -127,7 +127,7 @@ impl UnscannedTextRenderBox {
// a text node? // a text node?
UnscannedTextRenderBox { UnscannedTextRenderBox {
base: base, base: base,
text: text_node.parent.data.to_str(), text: text_node.element.data.to_str(),
} }
} }
} }

View file

@ -13,7 +13,22 @@ macro_rules! generate_cacheable_wrapper(
($name: path, $wrap: path) => ( ($name: path, $wrap: path) => (
impl CacheableWrapper for $name { impl CacheableWrapper for $name {
fn get_wrappercache(&mut self) -> &mut WrapperCache { fn get_wrappercache(&mut self) -> &mut WrapperCache {
self.parent.get_wrappercache() self.element.get_wrappercache()
}
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
let mut unused = false;
$wrap(cx, scope, self, &mut unused)
}
}
)
)
macro_rules! generate_cacheable_wrapper_htmlelement(
($name: path, $wrap: path) => (
impl CacheableWrapper for $name {
fn get_wrappercache(&mut self) -> &mut WrapperCache {
self.htmlelement.get_wrappercache()
} }
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject { fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
@ -28,7 +43,17 @@ macro_rules! generate_binding_object(
($name: path) => ( ($name: path) => (
impl BindingObject for $name { impl BindingObject for $name {
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut CacheableWrapper> { fn GetParentObject(&self, cx: *JSContext) -> Option<@mut CacheableWrapper> {
self.parent.GetParentObject(cx) self.element.GetParentObject(cx)
}
}
)
)
macro_rules! generate_binding_object_htmlelement(
($name: path) => (
impl BindingObject for $name {
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut CacheableWrapper> {
self.htmlelement.GetParentObject(cx)
} }
} }
) )
@ -38,7 +63,17 @@ macro_rules! generate_traceable(
($name: path) => ( ($name: path) => (
impl Traceable for $name { impl Traceable for $name {
fn trace(&self, trc: *mut JSTracer) { fn trace(&self, trc: *mut JSTracer) {
self.parent.trace(trc); self.element.trace(trc);
}
}
)
)
macro_rules! generate_traceable_htmlelement(
($name: path) => (
impl Traceable for $name {
fn trace(&self, trc: *mut JSTracer) {
self.htmlelement.trace(trc);
} }
} }
) )
@ -53,201 +88,201 @@ generate_traceable!(DocumentType<ScriptView>)
generate_cacheable_wrapper!(Text, TextBinding::Wrap) generate_cacheable_wrapper!(Text, TextBinding::Wrap)
generate_binding_object!(Text) generate_binding_object!(Text)
generate_traceable!(Text) generate_traceable!(Text)
generate_cacheable_wrapper!(HTMLHeadElement, HTMLHeadElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLHeadElement, HTMLHeadElementBinding::Wrap)
generate_binding_object!(HTMLHeadElement) generate_binding_object_htmlelement!(HTMLHeadElement)
generate_traceable!(HTMLHeadElement) generate_traceable_htmlelement!(HTMLHeadElement)
generate_cacheable_wrapper!(HTMLAnchorElement, HTMLAnchorElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLAnchorElement, HTMLAnchorElementBinding::Wrap)
generate_binding_object!(HTMLAnchorElement) generate_binding_object_htmlelement!(HTMLAnchorElement)
generate_traceable!(HTMLAnchorElement) generate_traceable_htmlelement!(HTMLAnchorElement)
generate_cacheable_wrapper!(HTMLAppletElement, HTMLAppletElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLAppletElement, HTMLAppletElementBinding::Wrap)
generate_binding_object!(HTMLAppletElement) generate_binding_object_htmlelement!(HTMLAppletElement)
generate_traceable!(HTMLAppletElement) generate_traceable_htmlelement!(HTMLAppletElement)
generate_cacheable_wrapper!(HTMLAreaElement, HTMLAreaElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLAreaElement, HTMLAreaElementBinding::Wrap)
generate_binding_object!(HTMLAreaElement) generate_binding_object_htmlelement!(HTMLAreaElement)
generate_traceable!(HTMLAreaElement) generate_traceable_htmlelement!(HTMLAreaElement)
generate_cacheable_wrapper!(HTMLAudioElement, HTMLAudioElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLAudioElement, HTMLAudioElementBinding::Wrap)
generate_binding_object!(HTMLAudioElement) generate_binding_object_htmlelement!(HTMLAudioElement)
generate_traceable!(HTMLAudioElement) generate_traceable_htmlelement!(HTMLAudioElement)
generate_cacheable_wrapper!(HTMLBaseElement, HTMLBaseElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLBaseElement, HTMLBaseElementBinding::Wrap)
generate_binding_object!(HTMLBaseElement) generate_binding_object_htmlelement!(HTMLBaseElement)
generate_traceable!(HTMLBaseElement) generate_traceable_htmlelement!(HTMLBaseElement)
generate_cacheable_wrapper!(HTMLBodyElement, HTMLBodyElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLBodyElement, HTMLBodyElementBinding::Wrap)
generate_binding_object!(HTMLBodyElement) generate_binding_object_htmlelement!(HTMLBodyElement)
generate_traceable!(HTMLBodyElement) generate_traceable_htmlelement!(HTMLBodyElement)
generate_cacheable_wrapper!(HTMLButtonElement, HTMLButtonElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLButtonElement, HTMLButtonElementBinding::Wrap)
generate_binding_object!(HTMLButtonElement) generate_binding_object_htmlelement!(HTMLButtonElement)
generate_traceable!(HTMLButtonElement) generate_traceable_htmlelement!(HTMLButtonElement)
generate_cacheable_wrapper!(HTMLCanvasElement, HTMLCanvasElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLCanvasElement, HTMLCanvasElementBinding::Wrap)
generate_binding_object!(HTMLCanvasElement) generate_binding_object_htmlelement!(HTMLCanvasElement)
generate_traceable!(HTMLCanvasElement) generate_traceable_htmlelement!(HTMLCanvasElement)
generate_cacheable_wrapper!(HTMLDataListElement, HTMLDataListElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLDataListElement, HTMLDataListElementBinding::Wrap)
generate_binding_object!(HTMLDataListElement) generate_binding_object_htmlelement!(HTMLDataListElement)
generate_traceable!(HTMLDataListElement) generate_traceable_htmlelement!(HTMLDataListElement)
generate_cacheable_wrapper!(HTMLDListElement, HTMLDListElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLDListElement, HTMLDListElementBinding::Wrap)
generate_binding_object!(HTMLDListElement) generate_binding_object_htmlelement!(HTMLDListElement)
generate_traceable!(HTMLDListElement) generate_traceable_htmlelement!(HTMLDListElement)
generate_cacheable_wrapper!(HTMLFormElement, HTMLFormElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLFormElement, HTMLFormElementBinding::Wrap)
generate_binding_object!(HTMLFormElement) generate_binding_object_htmlelement!(HTMLFormElement)
generate_traceable!(HTMLFormElement) generate_traceable_htmlelement!(HTMLFormElement)
generate_cacheable_wrapper!(HTMLFrameElement, HTMLFrameElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLFrameElement, HTMLFrameElementBinding::Wrap)
generate_binding_object!(HTMLFrameElement) generate_binding_object_htmlelement!(HTMLFrameElement)
generate_traceable!(HTMLFrameElement) generate_traceable_htmlelement!(HTMLFrameElement)
generate_cacheable_wrapper!(HTMLFrameSetElement, HTMLFrameSetElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLFrameSetElement, HTMLFrameSetElementBinding::Wrap)
generate_binding_object!(HTMLFrameSetElement) generate_binding_object_htmlelement!(HTMLFrameSetElement)
generate_traceable!(HTMLFrameSetElement) generate_traceable_htmlelement!(HTMLFrameSetElement)
generate_cacheable_wrapper!(HTMLBRElement, HTMLBRElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLBRElement, HTMLBRElementBinding::Wrap)
generate_binding_object!(HTMLBRElement) generate_binding_object_htmlelement!(HTMLBRElement)
generate_traceable!(HTMLBRElement) generate_traceable_htmlelement!(HTMLBRElement)
generate_cacheable_wrapper!(HTMLHRElement, HTMLHRElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLHRElement, HTMLHRElementBinding::Wrap)
generate_binding_object!(HTMLHRElement) generate_binding_object_htmlelement!(HTMLHRElement)
generate_traceable!(HTMLHRElement) generate_traceable_htmlelement!(HTMLHRElement)
generate_cacheable_wrapper!(HTMLHtmlElement, HTMLHtmlElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLHtmlElement, HTMLHtmlElementBinding::Wrap)
generate_binding_object!(HTMLHtmlElement) generate_binding_object_htmlelement!(HTMLHtmlElement)
generate_traceable!(HTMLHtmlElement) generate_traceable_htmlelement!(HTMLHtmlElement)
generate_cacheable_wrapper!(HTMLDataElement, HTMLDataElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLDataElement, HTMLDataElementBinding::Wrap)
generate_binding_object!(HTMLDataElement) generate_binding_object_htmlelement!(HTMLDataElement)
generate_traceable!(HTMLDataElement) generate_traceable_htmlelement!(HTMLDataElement)
generate_cacheable_wrapper!(HTMLDirectoryElement, HTMLDirectoryElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLDirectoryElement, HTMLDirectoryElementBinding::Wrap)
generate_binding_object!(HTMLDirectoryElement) generate_binding_object_htmlelement!(HTMLDirectoryElement)
generate_traceable!(HTMLDirectoryElement) generate_traceable_htmlelement!(HTMLDirectoryElement)
generate_cacheable_wrapper!(HTMLDivElement, HTMLDivElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLDivElement, HTMLDivElementBinding::Wrap)
generate_binding_object!(HTMLDivElement) generate_binding_object_htmlelement!(HTMLDivElement)
generate_traceable!(HTMLDivElement) generate_traceable_htmlelement!(HTMLDivElement)
generate_cacheable_wrapper!(HTMLEmbedElement, HTMLEmbedElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLEmbedElement, HTMLEmbedElementBinding::Wrap)
generate_binding_object!(HTMLEmbedElement) generate_binding_object_htmlelement!(HTMLEmbedElement)
generate_traceable!(HTMLEmbedElement) generate_traceable_htmlelement!(HTMLEmbedElement)
generate_cacheable_wrapper!(HTMLFieldSetElement, HTMLFieldSetElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLFieldSetElement, HTMLFieldSetElementBinding::Wrap)
generate_binding_object!(HTMLFieldSetElement) generate_binding_object_htmlelement!(HTMLFieldSetElement)
generate_traceable!(HTMLFieldSetElement) generate_traceable_htmlelement!(HTMLFieldSetElement)
generate_cacheable_wrapper!(HTMLFontElement, HTMLFontElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLFontElement, HTMLFontElementBinding::Wrap)
generate_binding_object!(HTMLFontElement) generate_binding_object_htmlelement!(HTMLFontElement)
generate_traceable!(HTMLFontElement) generate_traceable_htmlelement!(HTMLFontElement)
generate_cacheable_wrapper!(HTMLHeadingElement, HTMLHeadingElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLHeadingElement, HTMLHeadingElementBinding::Wrap)
generate_binding_object!(HTMLHeadingElement) generate_binding_object_htmlelement!(HTMLHeadingElement)
generate_traceable!(HTMLHeadingElement) generate_traceable_htmlelement!(HTMLHeadingElement)
generate_cacheable_wrapper!(HTMLIFrameElement, HTMLIFrameElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLIFrameElement, HTMLIFrameElementBinding::Wrap)
generate_binding_object!(HTMLIFrameElement) generate_binding_object_htmlelement!(HTMLIFrameElement)
generate_traceable!(HTMLIFrameElement) generate_traceable_htmlelement!(HTMLIFrameElement)
generate_cacheable_wrapper!(HTMLImageElement, HTMLImageElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLImageElement, HTMLImageElementBinding::Wrap)
generate_binding_object!(HTMLImageElement) generate_binding_object_htmlelement!(HTMLImageElement)
generate_traceable!(HTMLImageElement) generate_traceable_htmlelement!(HTMLImageElement)
generate_cacheable_wrapper!(HTMLInputElement, HTMLInputElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLInputElement, HTMLInputElementBinding::Wrap)
generate_binding_object!(HTMLInputElement) generate_binding_object_htmlelement!(HTMLInputElement)
generate_traceable!(HTMLInputElement) generate_traceable_htmlelement!(HTMLInputElement)
generate_cacheable_wrapper!(HTMLLabelElement, HTMLLabelElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLLabelElement, HTMLLabelElementBinding::Wrap)
generate_binding_object!(HTMLLabelElement) generate_binding_object_htmlelement!(HTMLLabelElement)
generate_traceable!(HTMLLabelElement) generate_traceable_htmlelement!(HTMLLabelElement)
generate_cacheable_wrapper!(HTMLLegendElement, HTMLLegendElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLLegendElement, HTMLLegendElementBinding::Wrap)
generate_binding_object!(HTMLLegendElement) generate_binding_object_htmlelement!(HTMLLegendElement)
generate_traceable!(HTMLLegendElement) generate_traceable_htmlelement!(HTMLLegendElement)
generate_cacheable_wrapper!(HTMLLIElement, HTMLLIElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLLIElement, HTMLLIElementBinding::Wrap)
generate_binding_object!(HTMLLIElement) generate_binding_object_htmlelement!(HTMLLIElement)
generate_traceable!(HTMLLIElement) generate_traceable_htmlelement!(HTMLLIElement)
generate_cacheable_wrapper!(HTMLLinkElement, HTMLLinkElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLLinkElement, HTMLLinkElementBinding::Wrap)
generate_binding_object!(HTMLLinkElement) generate_binding_object_htmlelement!(HTMLLinkElement)
generate_traceable!(HTMLLinkElement) generate_traceable_htmlelement!(HTMLLinkElement)
generate_cacheable_wrapper!(HTMLMapElement, HTMLMapElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLMapElement, HTMLMapElementBinding::Wrap)
generate_binding_object!(HTMLMapElement) generate_binding_object_htmlelement!(HTMLMapElement)
generate_traceable!(HTMLMapElement) generate_traceable_htmlelement!(HTMLMapElement)
generate_cacheable_wrapper!(HTMLMediaElement, HTMLMediaElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLMediaElement, HTMLMediaElementBinding::Wrap)
generate_binding_object!(HTMLMediaElement) generate_binding_object_htmlelement!(HTMLMediaElement)
generate_traceable!(HTMLMediaElement) generate_traceable_htmlelement!(HTMLMediaElement)
generate_cacheable_wrapper!(HTMLMetaElement, HTMLMetaElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLMetaElement, HTMLMetaElementBinding::Wrap)
generate_binding_object!(HTMLMetaElement) generate_binding_object_htmlelement!(HTMLMetaElement)
generate_traceable!(HTMLMetaElement) generate_traceable_htmlelement!(HTMLMetaElement)
generate_cacheable_wrapper!(HTMLMeterElement, HTMLMeterElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLMeterElement, HTMLMeterElementBinding::Wrap)
generate_binding_object!(HTMLMeterElement) generate_binding_object_htmlelement!(HTMLMeterElement)
generate_traceable!(HTMLMeterElement) generate_traceable_htmlelement!(HTMLMeterElement)
generate_cacheable_wrapper!(HTMLModElement, HTMLModElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLModElement, HTMLModElementBinding::Wrap)
generate_binding_object!(HTMLModElement) generate_binding_object_htmlelement!(HTMLModElement)
generate_traceable!(HTMLModElement) generate_traceable_htmlelement!(HTMLModElement)
generate_cacheable_wrapper!(HTMLObjectElement, HTMLObjectElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLObjectElement, HTMLObjectElementBinding::Wrap)
generate_binding_object!(HTMLObjectElement) generate_binding_object_htmlelement!(HTMLObjectElement)
generate_traceable!(HTMLObjectElement) generate_traceable_htmlelement!(HTMLObjectElement)
generate_cacheable_wrapper!(HTMLOListElement, HTMLOListElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLOListElement, HTMLOListElementBinding::Wrap)
generate_binding_object!(HTMLOListElement) generate_binding_object_htmlelement!(HTMLOListElement)
generate_traceable!(HTMLOListElement) generate_traceable_htmlelement!(HTMLOListElement)
generate_cacheable_wrapper!(HTMLOptGroupElement, HTMLOptGroupElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLOptGroupElement, HTMLOptGroupElementBinding::Wrap)
generate_binding_object!(HTMLOptGroupElement) generate_binding_object_htmlelement!(HTMLOptGroupElement)
generate_traceable!(HTMLOptGroupElement) generate_traceable_htmlelement!(HTMLOptGroupElement)
generate_cacheable_wrapper!(HTMLOptionElement, HTMLOptionElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLOptionElement, HTMLOptionElementBinding::Wrap)
generate_binding_object!(HTMLOptionElement) generate_binding_object_htmlelement!(HTMLOptionElement)
generate_traceable!(HTMLOptionElement) generate_traceable_htmlelement!(HTMLOptionElement)
generate_cacheable_wrapper!(HTMLOutputElement, HTMLOutputElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLOutputElement, HTMLOutputElementBinding::Wrap)
generate_binding_object!(HTMLOutputElement) generate_binding_object_htmlelement!(HTMLOutputElement)
generate_traceable!(HTMLOutputElement) generate_traceable_htmlelement!(HTMLOutputElement)
generate_cacheable_wrapper!(HTMLParagraphElement, HTMLParagraphElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLParagraphElement, HTMLParagraphElementBinding::Wrap)
generate_binding_object!(HTMLParagraphElement) generate_binding_object_htmlelement!(HTMLParagraphElement)
generate_traceable!(HTMLParagraphElement) generate_traceable_htmlelement!(HTMLParagraphElement)
generate_cacheable_wrapper!(HTMLParamElement, HTMLParamElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLParamElement, HTMLParamElementBinding::Wrap)
generate_binding_object!(HTMLParamElement) generate_binding_object_htmlelement!(HTMLParamElement)
generate_traceable!(HTMLParamElement) generate_traceable_htmlelement!(HTMLParamElement)
generate_cacheable_wrapper!(HTMLPreElement, HTMLPreElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLPreElement, HTMLPreElementBinding::Wrap)
generate_binding_object!(HTMLPreElement) generate_binding_object_htmlelement!(HTMLPreElement)
generate_traceable!(HTMLPreElement) generate_traceable_htmlelement!(HTMLPreElement)
generate_cacheable_wrapper!(HTMLProgressElement, HTMLProgressElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLProgressElement, HTMLProgressElementBinding::Wrap)
generate_binding_object!(HTMLProgressElement) generate_binding_object_htmlelement!(HTMLProgressElement)
generate_traceable!(HTMLProgressElement) generate_traceable_htmlelement!(HTMLProgressElement)
generate_cacheable_wrapper!(HTMLQuoteElement, HTMLQuoteElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLQuoteElement, HTMLQuoteElementBinding::Wrap)
generate_binding_object!(HTMLQuoteElement) generate_binding_object_htmlelement!(HTMLQuoteElement)
generate_traceable!(HTMLQuoteElement) generate_traceable_htmlelement!(HTMLQuoteElement)
generate_cacheable_wrapper!(HTMLScriptElement, HTMLScriptElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLScriptElement, HTMLScriptElementBinding::Wrap)
generate_binding_object!(HTMLScriptElement) generate_binding_object_htmlelement!(HTMLScriptElement)
generate_traceable!(HTMLScriptElement) generate_traceable_htmlelement!(HTMLScriptElement)
generate_cacheable_wrapper!(HTMLSelectElement, HTMLSelectElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLSelectElement, HTMLSelectElementBinding::Wrap)
generate_binding_object!(HTMLSelectElement) generate_binding_object_htmlelement!(HTMLSelectElement)
generate_traceable!(HTMLSelectElement) generate_traceable_htmlelement!(HTMLSelectElement)
generate_cacheable_wrapper!(HTMLSourceElement, HTMLSourceElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLSourceElement, HTMLSourceElementBinding::Wrap)
generate_binding_object!(HTMLSourceElement) generate_binding_object_htmlelement!(HTMLSourceElement)
generate_traceable!(HTMLSourceElement) generate_traceable_htmlelement!(HTMLSourceElement)
generate_cacheable_wrapper!(HTMLSpanElement, HTMLSpanElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLSpanElement, HTMLSpanElementBinding::Wrap)
generate_binding_object!(HTMLSpanElement) generate_binding_object_htmlelement!(HTMLSpanElement)
generate_traceable!(HTMLSpanElement) generate_traceable_htmlelement!(HTMLSpanElement)
generate_cacheable_wrapper!(HTMLStyleElement, HTMLStyleElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLStyleElement, HTMLStyleElementBinding::Wrap)
generate_binding_object!(HTMLStyleElement) generate_binding_object_htmlelement!(HTMLStyleElement)
generate_traceable!(HTMLStyleElement) generate_traceable_htmlelement!(HTMLStyleElement)
generate_cacheable_wrapper!(HTMLTableElement, HTMLTableElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLTableElement, HTMLTableElementBinding::Wrap)
generate_binding_object!(HTMLTableElement) generate_binding_object_htmlelement!(HTMLTableElement)
generate_traceable!(HTMLTableElement) generate_traceable_htmlelement!(HTMLTableElement)
generate_cacheable_wrapper!(HTMLTableCaptionElement, HTMLTableCaptionElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLTableCaptionElement, HTMLTableCaptionElementBinding::Wrap)
generate_binding_object!(HTMLTableCaptionElement) generate_binding_object_htmlelement!(HTMLTableCaptionElement)
generate_traceable!(HTMLTableCaptionElement) generate_traceable_htmlelement!(HTMLTableCaptionElement)
generate_cacheable_wrapper!(HTMLTableCellElement, HTMLTableCellElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLTableCellElement, HTMLTableCellElementBinding::Wrap)
generate_binding_object!(HTMLTableCellElement) generate_binding_object_htmlelement!(HTMLTableCellElement)
generate_traceable!(HTMLTableCellElement) generate_traceable_htmlelement!(HTMLTableCellElement)
generate_cacheable_wrapper!(HTMLTableColElement, HTMLTableColElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLTableColElement, HTMLTableColElementBinding::Wrap)
generate_binding_object!(HTMLTableColElement) generate_binding_object_htmlelement!(HTMLTableColElement)
generate_traceable!(HTMLTableColElement) generate_traceable_htmlelement!(HTMLTableColElement)
generate_cacheable_wrapper!(HTMLTableRowElement, HTMLTableRowElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLTableRowElement, HTMLTableRowElementBinding::Wrap)
generate_binding_object!(HTMLTableRowElement) generate_binding_object_htmlelement!(HTMLTableRowElement)
generate_traceable!(HTMLTableRowElement) generate_traceable_htmlelement!(HTMLTableRowElement)
generate_cacheable_wrapper!(HTMLTableSectionElement, HTMLTableSectionElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLTableSectionElement, HTMLTableSectionElementBinding::Wrap)
generate_binding_object!(HTMLTableSectionElement) generate_binding_object_htmlelement!(HTMLTableSectionElement)
generate_traceable!(HTMLTableSectionElement) generate_traceable_htmlelement!(HTMLTableSectionElement)
generate_cacheable_wrapper!(HTMLTemplateElement, HTMLTemplateElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLTemplateElement, HTMLTemplateElementBinding::Wrap)
generate_binding_object!(HTMLTemplateElement) generate_binding_object_htmlelement!(HTMLTemplateElement)
generate_traceable!(HTMLTemplateElement) generate_traceable_htmlelement!(HTMLTemplateElement)
generate_cacheable_wrapper!(HTMLTextAreaElement, HTMLTextAreaElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLTextAreaElement, HTMLTextAreaElementBinding::Wrap)
generate_binding_object!(HTMLTextAreaElement) generate_binding_object_htmlelement!(HTMLTextAreaElement)
generate_traceable!(HTMLTextAreaElement) generate_traceable_htmlelement!(HTMLTextAreaElement)
generate_cacheable_wrapper!(HTMLTitleElement, HTMLTitleElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLTitleElement, HTMLTitleElementBinding::Wrap)
generate_binding_object!(HTMLTitleElement) generate_binding_object_htmlelement!(HTMLTitleElement)
generate_traceable!(HTMLTitleElement) generate_traceable_htmlelement!(HTMLTitleElement)
generate_cacheable_wrapper!(HTMLTimeElement, HTMLTimeElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLTimeElement, HTMLTimeElementBinding::Wrap)
generate_binding_object!(HTMLTimeElement) generate_binding_object_htmlelement!(HTMLTimeElement)
generate_traceable!(HTMLTimeElement) generate_traceable_htmlelement!(HTMLTimeElement)
generate_cacheable_wrapper!(HTMLTrackElement, HTMLTrackElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLTrackElement, HTMLTrackElementBinding::Wrap)
generate_binding_object!(HTMLTrackElement) generate_binding_object_htmlelement!(HTMLTrackElement)
generate_traceable!(HTMLTrackElement) generate_traceable_htmlelement!(HTMLTrackElement)
generate_cacheable_wrapper!(HTMLUListElement, HTMLUListElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLUListElement, HTMLUListElementBinding::Wrap)
generate_binding_object!(HTMLUListElement) generate_binding_object_htmlelement!(HTMLUListElement)
generate_traceable!(HTMLUListElement) generate_traceable_htmlelement!(HTMLUListElement)
generate_cacheable_wrapper!(HTMLUnknownElement, HTMLUnknownElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLUnknownElement, HTMLUnknownElementBinding::Wrap)
generate_binding_object!(HTMLUnknownElement) generate_binding_object_htmlelement!(HTMLUnknownElement)
generate_traceable!(HTMLUnknownElement) generate_traceable_htmlelement!(HTMLUnknownElement)
generate_cacheable_wrapper!(HTMLVideoElement, HTMLVideoElementBinding::Wrap) generate_cacheable_wrapper_htmlelement!(HTMLVideoElement, HTMLVideoElementBinding::Wrap)
generate_binding_object!(HTMLVideoElement) generate_binding_object_htmlelement!(HTMLVideoElement)
generate_traceable!(HTMLVideoElement) generate_traceable_htmlelement!(HTMLVideoElement)
generate_traceable!(HTMLElement) generate_traceable!(HTMLElement)
generate_traceable!(Element) generate_traceable!(Element)

View file

@ -10,14 +10,14 @@ use dom::node::{Node, NodeTypeId, ScriptView};
use js::jsapi::{JSObject, JSContext}; use js::jsapi::{JSObject, JSContext};
pub struct CharacterData { pub struct CharacterData {
parent: Node<ScriptView>, element: Node<ScriptView>,
data: ~str data: ~str
} }
impl CharacterData { impl CharacterData {
pub fn new(id: NodeTypeId, data: ~str) -> CharacterData { pub fn new(id: NodeTypeId, data: ~str) -> CharacterData {
CharacterData { CharacterData {
parent: Node::new(id), element: Node::new(id),
data: data data: data
} }
} }
@ -59,7 +59,7 @@ impl CharacterData {
impl CacheableWrapper for CharacterData { impl CacheableWrapper for CharacterData {
fn get_wrappercache(&mut self) -> &mut WrapperCache { fn get_wrappercache(&mut self) -> &mut WrapperCache {
self.parent.get_wrappercache() self.element.get_wrappercache()
} }
fn wrap_object_shared(@mut self, _cx: *JSContext, _scope: *JSObject) -> *JSObject { fn wrap_object_shared(@mut self, _cx: *JSContext, _scope: *JSObject) -> *JSObject {
@ -69,6 +69,6 @@ impl CacheableWrapper for CharacterData {
impl BindingObject for CharacterData { impl BindingObject for CharacterData {
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut CacheableWrapper> { fn GetParentObject(&self, cx: *JSContext) -> Option<@mut CacheableWrapper> {
self.parent.GetParentObject(cx) self.element.GetParentObject(cx)
} }
} }

View file

@ -9,14 +9,14 @@ use dom::window::Window;
/// An HTML comment. /// An HTML comment.
pub struct Comment { pub struct Comment {
parent: CharacterData, element: CharacterData,
} }
impl Comment { impl Comment {
/// Creates a new HTML comment. /// Creates a new HTML comment.
pub fn new(text: ~str) -> Comment { pub fn new(text: ~str) -> Comment {
Comment { Comment {
parent: CharacterData::new(CommentNodeTypeId, text) element: CharacterData::new(CommentNodeTypeId, text)
} }
} }

View file

@ -106,7 +106,7 @@ impl Document {
pub fn Constructor(owner: @mut Window) -> Fallible<AbstractDocument> { pub fn Constructor(owner: @mut Window) -> Fallible<AbstractDocument> {
let root = @HTMLHtmlElement { let root = @HTMLHtmlElement {
parent: HTMLElement::new(HTMLHtmlElementTypeId, ~"html") htmlelement: HTMLElement::new(HTMLHtmlElementTypeId, ~"html")
}; };
let cx = owner.page.js_info.get_ref().js_compartment.cx.ptr; let cx = owner.page.js_info.get_ref().js_compartment.cx.ptr;
@ -295,7 +295,7 @@ impl Document {
for child in node.children() { for child in node.children() {
if child.is_text() { if child.is_text() {
do child.with_imm_text() |text| { do child.with_imm_text() |text| {
let s = text.parent.Data(); let s = text.element.Data();
title = title + null_str_as_empty(&s); title = title + null_str_as_empty(&s);
} }
} }
@ -335,7 +335,7 @@ impl Document {
} }
if !has_title { if !has_title {
let new_title = @HTMLTitleElement { let new_title = @HTMLTitleElement {
parent: HTMLElement::new(HTMLTitleElementTypeId, ~"title") htmlelement: HTMLElement::new(HTMLTitleElementTypeId, ~"title")
}; };
let new_title = unsafe { let new_title = unsafe {
Node::as_abstract_node(cx, new_title) Node::as_abstract_node(cx, new_title)

View file

@ -7,7 +7,7 @@ use dom::node::{ScriptView, Node, DoctypeNodeTypeId};
/// The `DOCTYPE` tag. /// The `DOCTYPE` tag.
pub struct DocumentType<View> { pub struct DocumentType<View> {
parent: Node<View>, element: Node<View>,
name: ~str, name: ~str,
public_id: Option<~str>, public_id: Option<~str>,
system_id: Option<~str>, system_id: Option<~str>,
@ -22,7 +22,7 @@ impl DocumentType<ScriptView> {
force_quirks: bool) force_quirks: bool)
-> DocumentType<ScriptView> { -> DocumentType<ScriptView> {
DocumentType { DocumentType {
parent: Node::new(DoctypeNodeTypeId), element: Node::new(DoctypeNodeTypeId),
name: name, name: name,
public_id: public_id, public_id: public_id,
system_id: system_id, system_id: system_id,

View file

@ -43,7 +43,7 @@ impl DOMParser {
-> Fallible<AbstractDocument> { -> Fallible<AbstractDocument> {
unsafe { unsafe {
let root = @HTMLHtmlElement { let root = @HTMLHtmlElement {
parent: HTMLElement::new(HTMLHtmlElementTypeId, ~"html") htmlelement: HTMLElement::new(HTMLHtmlElementTypeId, ~"html")
}; };
let root = Node::as_abstract_node((*self.owner.page).js_info.get_ref().js_compartment.cx.ptr, root); let root = Node::as_abstract_node((*self.owner.page).js_info.get_ref().js_compartment.cx.ptr, root);

View file

@ -22,7 +22,7 @@ use std::str::eq_slice;
use std::ascii::StrAsciiExt; use std::ascii::StrAsciiExt;
pub struct Element { pub struct Element {
parent: Node<ScriptView>, element: Node<ScriptView>,
tag_name: ~str, // TODO: This should be an atom, not a ~str. tag_name: ~str, // TODO: This should be an atom, not a ~str.
attrs: ~[Attr], attrs: ~[Attr],
style_attribute: Option<Stylesheet>, style_attribute: Option<Stylesheet>,
@ -30,7 +30,7 @@ pub struct Element {
impl CacheableWrapper for Element { impl CacheableWrapper for Element {
fn get_wrappercache(&mut self) -> &mut WrapperCache { fn get_wrappercache(&mut self) -> &mut WrapperCache {
self.parent.get_wrappercache() self.element.get_wrappercache()
} }
fn wrap_object_shared(@mut self, _cx: *JSContext, _scope: *JSObject) -> *JSObject { fn wrap_object_shared(@mut self, _cx: *JSContext, _scope: *JSObject) -> *JSObject {
@ -40,7 +40,7 @@ impl CacheableWrapper for Element {
impl BindingObject for Element { impl BindingObject for Element {
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut CacheableWrapper> { fn GetParentObject(&self, cx: *JSContext) -> Option<@mut CacheableWrapper> {
self.parent.GetParentObject(cx) self.element.GetParentObject(cx)
} }
} }
@ -121,7 +121,7 @@ pub enum ElementTypeId {
impl<'self> Element { impl<'self> Element {
pub fn new(type_id: ElementTypeId, tag_name: ~str) -> Element { pub fn new(type_id: ElementTypeId, tag_name: ~str) -> Element {
Element { Element {
parent: Node::new(ElementNodeTypeId(type_id)), element: Node::new(ElementNodeTypeId(type_id)),
tag_name: tag_name, tag_name: tag_name,
attrs: ~[], attrs: ~[],
style_attribute: None, style_attribute: None,
@ -180,14 +180,14 @@ impl<'self> Element {
_ => () _ => ()
} }
match self.parent.owner_doc { match self.element.owner_doc {
Some(owner) => do owner.with_base |owner| { owner.content_changed() }, Some(owner) => do owner.with_base |owner| { owner.content_changed() },
None => {} None => {}
} }
} }
fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) { fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) {
let doc = self.parent.owner_doc.unwrap(); let doc = self.element.owner_doc.unwrap();
let win = doc.with_base(|doc| doc.window.unwrap()); let win = doc.with_base(|doc| doc.window.unwrap());
let cx = win.page.js_info.get_ref().js_compartment.cx.ptr; let cx = win.page.js_info.get_ref().js_compartment.cx.ptr;
let cache = win.get_wrappercache(); let cache = win.get_wrappercache();
@ -276,7 +276,7 @@ impl Element {
} }
pub fn GetClientRects(&self, abstract_self: AbstractNode<ScriptView>) -> @mut ClientRectList { pub fn GetClientRects(&self, abstract_self: AbstractNode<ScriptView>) -> @mut ClientRectList {
let (rects, cx, scope) = match self.parent.owner_doc { let (rects, cx, scope) = match self.element.owner_doc {
Some(doc) => { Some(doc) => {
match doc.with_base(|doc| doc.window) { match doc.with_base(|doc| doc.window) {
Some(win) => { Some(win) => {
@ -318,7 +318,7 @@ impl Element {
} }
pub fn GetBoundingClientRect(&self, abstract_self: AbstractNode<ScriptView>) -> @mut ClientRect { pub fn GetBoundingClientRect(&self, abstract_self: AbstractNode<ScriptView>) -> @mut ClientRect {
match self.parent.owner_doc { match self.element.owner_doc {
Some(doc) => { Some(doc) => {
match doc.with_base(|doc| doc.window) { match doc.with_base(|doc| doc.window) {
Some(win) => { Some(win) => {

View file

@ -6,7 +6,7 @@ use dom::htmlelement::HTMLElement;
use dom::bindings::utils::{DOMString, ErrorResult}; use dom::bindings::utils::{DOMString, ErrorResult};
pub struct HTMLAnchorElement { pub struct HTMLAnchorElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLAnchorElement { impl HTMLAnchorElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLAppletElement { pub struct HTMLAppletElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLAppletElement { impl HTMLAppletElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLAreaElement { pub struct HTMLAreaElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLAreaElement { impl HTMLAreaElement {

View file

@ -5,7 +5,7 @@
use dom::htmlmediaelement::HTMLMediaElement; use dom::htmlmediaelement::HTMLMediaElement;
pub struct HTMLAudioElement { pub struct HTMLAudioElement {
parent: HTMLMediaElement htmlelement: HTMLMediaElement
} }
impl HTMLAudioElement { impl HTMLAudioElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLBaseElement { pub struct HTMLBaseElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLBaseElement { impl HTMLBaseElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLBodyElement { pub struct HTMLBodyElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLBodyElement { impl HTMLBodyElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLBRElement { pub struct HTMLBRElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLBRElement { impl HTMLBRElement {

View file

@ -8,7 +8,7 @@ use dom::node::{AbstractNode, ScriptView};
use dom::validitystate::ValidityState; use dom::validitystate::ValidityState;
pub struct HTMLButtonElement { pub struct HTMLButtonElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLButtonElement { impl HTMLButtonElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLCanvasElement { pub struct HTMLCanvasElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLCanvasElement { impl HTMLCanvasElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLDataElement { pub struct HTMLDataElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLDataElement { impl HTMLDataElement {

View file

@ -9,12 +9,12 @@ use dom::htmlelement::HTMLElement;
use js::jsapi::{JSObject, JSContext}; use js::jsapi::{JSObject, JSContext};
pub struct HTMLDataListElement { pub struct HTMLDataListElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLDataListElement { impl HTMLDataListElement {
fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) { fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) {
let doc = self.parent.parent.parent.owner_doc.unwrap(); let doc = self.htmlelement.element.element.owner_doc.unwrap();
let win = doc.with_base(|doc| doc.window.unwrap()); let win = doc.with_base(|doc| doc.window.unwrap());
let cx = win.page.js_info.get_ref().js_compartment.cx.ptr; let cx = win.page.js_info.get_ref().js_compartment.cx.ptr;
let cache = win.get_wrappercache(); let cache = win.get_wrappercache();

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::ErrorResult;
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLDirectoryElement { pub struct HTMLDirectoryElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLDirectoryElement { impl HTMLDirectoryElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLDivElement { pub struct HTMLDivElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLDivElement { impl HTMLDivElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLDListElement { pub struct HTMLDListElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLDListElement { impl HTMLDListElement {

View file

@ -11,13 +11,13 @@ use js::jsapi::{JSObject, JSContext, JSVal};
use js::JSVAL_NULL; use js::JSVAL_NULL;
pub struct HTMLElement { pub struct HTMLElement {
parent: Element element: Element
} }
impl HTMLElement { impl HTMLElement {
pub fn new(type_id: ElementTypeId, tag_name: ~str) -> HTMLElement { pub fn new(type_id: ElementTypeId, tag_name: ~str) -> HTMLElement {
HTMLElement { HTMLElement {
parent: Element::new(type_id, tag_name) element: Element::new(type_id, tag_name)
} }
} }
} }
@ -150,7 +150,7 @@ impl HTMLElement {
impl CacheableWrapper for HTMLElement { impl CacheableWrapper for HTMLElement {
fn get_wrappercache(&mut self) -> &mut WrapperCache { fn get_wrappercache(&mut self) -> &mut WrapperCache {
self.parent.get_wrappercache() self.element.get_wrappercache()
} }
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject { fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
@ -161,6 +161,6 @@ impl CacheableWrapper for HTMLElement {
impl BindingObject for HTMLElement { impl BindingObject for HTMLElement {
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut CacheableWrapper> { fn GetParentObject(&self, cx: *JSContext) -> Option<@mut CacheableWrapper> {
self.parent.GetParentObject(cx) self.element.GetParentObject(cx)
} }
} }

View file

@ -7,7 +7,7 @@ use dom::document::AbstractDocument;
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLEmbedElement { pub struct HTMLEmbedElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLEmbedElement { impl HTMLEmbedElement {

View file

@ -11,7 +11,7 @@ use dom::validitystate::ValidityState;
use js::jsapi::{JSContext, JSObject}; use js::jsapi::{JSContext, JSObject};
pub struct HTMLFieldSetElement { pub struct HTMLFieldSetElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLFieldSetElement { impl HTMLFieldSetElement {
@ -40,7 +40,7 @@ impl HTMLFieldSetElement {
} }
fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) { fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) {
let doc = self.parent.parent.parent.owner_doc.unwrap(); let doc = self.htmlelement.element.element.owner_doc.unwrap();
let win = doc.with_base(|doc| doc.window.unwrap()); let win = doc.with_base(|doc| doc.window.unwrap());
let cx = win.page.js_info.get_ref().js_compartment.cx.ptr; let cx = win.page.js_info.get_ref().js_compartment.cx.ptr;
let cache = win.get_wrappercache(); let cache = win.get_wrappercache();

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLFontElement { pub struct HTMLFontElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLFontElement { impl HTMLFontElement {

View file

@ -11,12 +11,12 @@ use dom::node::{AbstractNode, ElementNodeTypeId, Node, ScriptView};
use js::jsapi::{JSObject, JSContext}; use js::jsapi::{JSObject, JSContext};
pub struct HTMLFormElement { pub struct HTMLFormElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLFormElement { impl HTMLFormElement {
fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) { fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) {
let doc = self.parent.parent.parent.owner_doc.unwrap(); let doc = self.htmlelement.element.element.owner_doc.unwrap();
let win = doc.with_base(|doc| doc.window.unwrap()); let win = doc.with_base(|doc| doc.window.unwrap());
let cx = win.page.js_info.get_ref().js_compartment.cx.ptr; let cx = win.page.js_info.get_ref().js_compartment.cx.ptr;
let cache = win.get_wrappercache(); let cache = win.get_wrappercache();

View file

@ -8,7 +8,7 @@ use dom::htmlelement::HTMLElement;
use dom::windowproxy::WindowProxy; use dom::windowproxy::WindowProxy;
pub struct HTMLFrameElement { pub struct HTMLFrameElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLFrameElement { impl HTMLFrameElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLFrameSetElement { pub struct HTMLFrameSetElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLFrameSetElement { impl HTMLFrameSetElement {

View file

@ -5,5 +5,5 @@
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLHeadElement { pub struct HTMLHeadElement {
parent: HTMLElement htmlelement: HTMLElement
} }

View file

@ -15,7 +15,7 @@ pub enum HeadingLevel {
} }
pub struct HTMLHeadingElement { pub struct HTMLHeadingElement {
parent: HTMLElement, htmlelement: HTMLElement,
level: HeadingLevel, level: HeadingLevel,
} }

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLHRElement { pub struct HTMLHRElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLHRElement { impl HTMLHRElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLHtmlElement { pub struct HTMLHtmlElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLHtmlElement { impl HTMLHtmlElement {

View file

@ -28,7 +28,7 @@ enum SandboxAllowance {
} }
pub struct HTMLIFrameElement { pub struct HTMLIFrameElement {
parent: HTMLElement, htmlelement: HTMLElement,
frame: Option<Url>, frame: Option<Url>,
size: Option<IFrameSize>, size: Option<IFrameSize>,
sandbox: Option<u8> sandbox: Option<u8>
@ -84,11 +84,11 @@ impl HTMLIFrameElement {
} }
pub fn Sandbox(&self, _abstract_self: AbstractNode<ScriptView>) -> DOMString { pub fn Sandbox(&self, _abstract_self: AbstractNode<ScriptView>) -> DOMString {
self.parent.parent.GetAttribute(&Some(~"sandbox")) self.htmlelement.element.GetAttribute(&Some(~"sandbox"))
} }
pub fn SetSandbox(&mut self, abstract_self: AbstractNode<ScriptView>, sandbox: &DOMString) { pub fn SetSandbox(&mut self, abstract_self: AbstractNode<ScriptView>, sandbox: &DOMString) {
self.parent.parent.SetAttribute(abstract_self, &Some(~"sandbox"), sandbox); self.htmlelement.element.SetAttribute(abstract_self, &Some(~"sandbox"), sandbox);
} }
pub fn AfterSetAttr(&mut self, name: &DOMString, value: &DOMString) { pub fn AfterSetAttr(&mut self, name: &DOMString, value: &DOMString) {

View file

@ -13,7 +13,7 @@ use servo_net::image_cache_task::ImageCacheTask;
use servo_util::url::make_url; use servo_util::url::make_url;
pub struct HTMLImageElement { pub struct HTMLImageElement {
parent: HTMLElement, htmlelement: HTMLElement,
image: Option<Url>, image: Option<Url>,
} }
@ -21,7 +21,7 @@ impl HTMLImageElement {
/// Makes the local `image` member match the status of the `src` attribute and starts /// Makes the local `image` member match the status of the `src` attribute and starts
/// prefetching the image. This method must be called after `src` is changed. /// prefetching the image. This method must be called after `src` is changed.
pub fn update_image(&mut self, image_cache: ImageCacheTask, url: Option<Url>) { pub fn update_image(&mut self, image_cache: ImageCacheTask, url: Option<Url>) {
let elem = &mut self.parent.parent; let elem = &mut self.htmlelement.element;
let src_opt = elem.get_attr("src").map(|x| x.to_str()); let src_opt = elem.get_attr("src").map(|x| x.to_str());
match src_opt { match src_opt {
None => {} None => {}
@ -42,7 +42,7 @@ impl HTMLImageElement {
pub fn AfterSetAttr(&mut self, name: &DOMString, _value: &DOMString) { pub fn AfterSetAttr(&mut self, name: &DOMString, _value: &DOMString) {
let name = null_str_as_empty(name); let name = null_str_as_empty(name);
if "src" == name { if "src" == name {
let doc = self.parent.parent.parent.owner_doc; let doc = self.htmlelement.element.element.owner_doc;
for doc in doc.iter() { for doc in doc.iter() {
do doc.with_base |doc| { do doc.with_base |doc| {
for window in doc.window.iter() { for window in doc.window.iter() {
@ -69,7 +69,7 @@ impl HTMLImageElement {
pub fn SetSrc(&mut self, pub fn SetSrc(&mut self,
abstract_self: AbstractNode<ScriptView>, abstract_self: AbstractNode<ScriptView>,
src: &DOMString) -> ErrorResult { src: &DOMString) -> ErrorResult {
let node = &mut self.parent.parent; let node = &mut self.htmlelement.element;
node.set_attr(abstract_self, node.set_attr(abstract_self,
&Some(~"src"), &Some(~"src"),
&Some(null_str_as_empty(src))); &Some(null_str_as_empty(src)));
@ -101,7 +101,7 @@ impl HTMLImageElement {
} }
pub fn Width(&self, abstract_self: AbstractNode<ScriptView>) -> u32 { pub fn Width(&self, abstract_self: AbstractNode<ScriptView>) -> u32 {
let node = &self.parent.parent.parent; let node = &self.htmlelement.element.element;
match node.owner_doc { match node.owner_doc {
Some(doc) => { Some(doc) => {
match doc.with_base(|doc| doc.window) { match doc.with_base(|doc| doc.window) {
@ -130,7 +130,7 @@ impl HTMLImageElement {
pub fn SetWidth(&mut self, pub fn SetWidth(&mut self,
abstract_self: AbstractNode<ScriptView>, abstract_self: AbstractNode<ScriptView>,
width: u32) -> ErrorResult { width: u32) -> ErrorResult {
let node = &mut self.parent.parent; let node = &mut self.htmlelement.element;
node.set_attr(abstract_self, node.set_attr(abstract_self,
&Some(~"width"), &Some(~"width"),
&Some(width.to_str())); &Some(width.to_str()));
@ -138,7 +138,7 @@ impl HTMLImageElement {
} }
pub fn Height(&self, abstract_self: AbstractNode<ScriptView>) -> u32 { pub fn Height(&self, abstract_self: AbstractNode<ScriptView>) -> u32 {
let node = &self.parent.parent.parent; let node = &self.htmlelement.element.element;
match node.owner_doc { match node.owner_doc {
Some(doc) => { Some(doc) => {
match doc.with_base(|doc| doc.window) { match doc.with_base(|doc| doc.window) {
@ -167,7 +167,7 @@ impl HTMLImageElement {
pub fn SetHeight(&mut self, pub fn SetHeight(&mut self,
abstract_self: AbstractNode<ScriptView>, abstract_self: AbstractNode<ScriptView>,
height: u32) -> ErrorResult { height: u32) -> ErrorResult {
let node = &mut self.parent.parent; let node = &mut self.htmlelement.element;
node.set_attr(abstract_self, node.set_attr(abstract_self,
&Some(~"height"), &Some(~"height"),
&Some(height.to_str())); &Some(height.to_str()));

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult, Fallible};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLInputElement { pub struct HTMLInputElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLInputElement { impl HTMLInputElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::DOMString;
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLLabelElement { pub struct HTMLLabelElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLLabelElement { impl HTMLLabelElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLLegendElement { pub struct HTMLLegendElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLLegendElement { impl HTMLLegendElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLLIElement { pub struct HTMLLIElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLLIElement { impl HTMLLIElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLLinkElement { pub struct HTMLLinkElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLLinkElement { impl HTMLLinkElement {

View file

@ -8,7 +8,7 @@ use dom::htmlelement::HTMLElement;
use js::jsapi::{JSObject, JSContext}; use js::jsapi::{JSObject, JSContext};
pub struct HTMLMapElement { pub struct HTMLMapElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLMapElement { impl HTMLMapElement {
@ -21,7 +21,7 @@ impl HTMLMapElement {
} }
fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) { fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) {
let doc = self.parent.parent.parent.owner_doc.unwrap(); let doc = self.htmlelement.element.element.owner_doc.unwrap();
let win = doc.with_base(|doc| doc.window.unwrap()); let win = doc.with_base(|doc| doc.window.unwrap());
let cx = win.page.js_info.get_ref().js_compartment.cx.ptr; let cx = win.page.js_info.get_ref().js_compartment.cx.ptr;
let cache = win.get_wrappercache(); let cache = win.get_wrappercache();

View file

@ -7,13 +7,13 @@ use dom::element::ElementTypeId;
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLMediaElement { pub struct HTMLMediaElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLMediaElement { impl HTMLMediaElement {
pub fn new(type_id: ElementTypeId, tag_name: ~str) -> HTMLMediaElement { pub fn new(type_id: ElementTypeId, tag_name: ~str) -> HTMLMediaElement {
HTMLMediaElement { HTMLMediaElement {
parent: HTMLElement::new(type_id, tag_name) htmlelement: HTMLElement::new(type_id, tag_name)
} }
} }
} }

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLMetaElement { pub struct HTMLMetaElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLMetaElement { impl HTMLMetaElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::ErrorResult;
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLMeterElement { pub struct HTMLMeterElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLMeterElement { impl HTMLMeterElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLModElement { pub struct HTMLModElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLModElement { impl HTMLModElement {

View file

@ -10,7 +10,7 @@ use dom::validitystate::ValidityState;
use dom::windowproxy::WindowProxy; use dom::windowproxy::WindowProxy;
pub struct HTMLObjectElement { pub struct HTMLObjectElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLObjectElement { impl HTMLObjectElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLOListElement { pub struct HTMLOListElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLOListElement { impl HTMLOListElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLOptGroupElement { pub struct HTMLOptGroupElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLOptGroupElement { impl HTMLOptGroupElement {

View file

@ -7,7 +7,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{AbstractNode, ScriptView}; use dom::node::{AbstractNode, ScriptView};
pub struct HTMLOptionElement { pub struct HTMLOptionElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLOptionElement { impl HTMLOptionElement {

View file

@ -8,7 +8,7 @@ use dom::node::{AbstractNode, ScriptView};
use dom::validitystate::ValidityState; use dom::validitystate::ValidityState;
pub struct HTMLOutputElement { pub struct HTMLOutputElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLOutputElement { impl HTMLOutputElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLParagraphElement { pub struct HTMLParagraphElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLParagraphElement { impl HTMLParagraphElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLParamElement { pub struct HTMLParamElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLParamElement { impl HTMLParamElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLPreElement { pub struct HTMLPreElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLPreElement { impl HTMLPreElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{ErrorResult, Fallible};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLProgressElement { pub struct HTMLProgressElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLProgressElement { impl HTMLProgressElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLQuoteElement { pub struct HTMLQuoteElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLQuoteElement { impl HTMLQuoteElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLScriptElement { pub struct HTMLScriptElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLScriptElement { impl HTMLScriptElement {

View file

@ -8,7 +8,7 @@ use dom::node::{AbstractNode, ScriptView};
use dom::validitystate::ValidityState; use dom::validitystate::ValidityState;
pub struct HTMLSelectElement { pub struct HTMLSelectElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLSelectElement { impl HTMLSelectElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLSourceElement { pub struct HTMLSourceElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLSourceElement { impl HTMLSourceElement {

View file

@ -5,5 +5,5 @@
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLSpanElement { pub struct HTMLSpanElement {
parent: HTMLElement htmlelement: HTMLElement
} }

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLStyleElement { pub struct HTMLStyleElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLStyleElement { impl HTMLStyleElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLTableCaptionElement { pub struct HTMLTableCaptionElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLTableCaptionElement { impl HTMLTableCaptionElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLTableCellElement { pub struct HTMLTableCellElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLTableCellElement { impl HTMLTableCellElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLTableColElement { pub struct HTMLTableColElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLTableColElement { impl HTMLTableColElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLTableElement { pub struct HTMLTableElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLTableElement { impl HTMLTableElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLTableRowElement { pub struct HTMLTableRowElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLTableRowElement { impl HTMLTableRowElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLTableSectionElement { pub struct HTMLTableSectionElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLTableSectionElement { impl HTMLTableSectionElement {

View file

@ -5,7 +5,7 @@
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLTemplateElement { pub struct HTMLTemplateElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLTemplateElement { impl HTMLTemplateElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult, Fallible};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLTextAreaElement { pub struct HTMLTextAreaElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLTextAreaElement { impl HTMLTextAreaElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLTimeElement { pub struct HTMLTimeElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLTimeElement { impl HTMLTimeElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLTitleElement { pub struct HTMLTitleElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLTitleElement { impl HTMLTitleElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLTrackElement { pub struct HTMLTrackElement {
parent: HTMLElement, htmlelement: HTMLElement,
} }
impl HTMLTrackElement { impl HTMLTrackElement {

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLUListElement { pub struct HTMLUListElement {
parent: HTMLElement htmlelement: HTMLElement
} }
impl HTMLUListElement { impl HTMLUListElement {

View file

@ -5,5 +5,5 @@
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
pub struct HTMLUnknownElement { pub struct HTMLUnknownElement {
parent: HTMLElement htmlelement: HTMLElement
} }

View file

@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
use dom::htmlmediaelement::HTMLMediaElement; use dom::htmlmediaelement::HTMLMediaElement;
pub struct HTMLVideoElement { pub struct HTMLVideoElement {
parent: HTMLMediaElement htmlelement: HTMLMediaElement
} }
impl HTMLVideoElement { impl HTMLVideoElement {

View file

@ -570,7 +570,7 @@ impl Node<ScriptView> {
for node in abstract_self.traverse_preorder() { for node in abstract_self.traverse_preorder() {
if node.is_text() { if node.is_text() {
do node.with_imm_text() |text| { do node.with_imm_text() |text| {
let s = text.parent.Data(); let s = text.element.Data();
content = content + null_str_as_empty(&s); content = content + null_str_as_empty(&s);
} }
} }

View file

@ -9,14 +9,14 @@ use dom::window::Window;
/// An HTML text node. /// An HTML text node.
pub struct Text { pub struct Text {
parent: CharacterData, element: CharacterData,
} }
impl Text { impl Text {
/// Creates a new HTML text node. /// Creates a new HTML text node.
pub fn new(text: ~str) -> Text { pub fn new(text: ~str) -> Text {
Text { Text {
parent: CharacterData::new(TextNodeTypeId, text) element: CharacterData::new(TextNodeTypeId, text)
} }
} }

View file

@ -35,7 +35,7 @@ macro_rules! handle_element(
($cx: expr, $tag:expr, $string:expr, $type_id:expr, $ctor:ident, [ $(($field:ident : $field_init:expr)),* ]) => ( ($cx: expr, $tag:expr, $string:expr, $type_id:expr, $ctor:ident, [ $(($field:ident : $field_init:expr)),* ]) => (
if eq_slice($tag, $string) { if eq_slice($tag, $string) {
let _element = @$ctor { let _element = @$ctor {
parent: HTMLElement::new($type_id, ($tag).to_str()), htmlelement: HTMLElement::new($type_id, ($tag).to_str()),
$( $(
$field: $field_init, $field: $field_init,
)* )*
@ -60,7 +60,7 @@ macro_rules! handle_htmlmediaelement(
($cx: expr, $tag:expr, $string:expr, $type_id:expr, $ctor:ident) => ( ($cx: expr, $tag:expr, $string:expr, $type_id:expr, $ctor:ident) => (
if eq_slice($tag, $string) { if eq_slice($tag, $string) {
let _element = @$ctor { let _element = @$ctor {
parent: HTMLMediaElement::new($type_id, ($tag).to_str()) htmlelement: HTMLMediaElement::new($type_id, ($tag).to_str())
}; };
unsafe { unsafe {
return Node::as_abstract_node(cx, _element); return Node::as_abstract_node(cx, _element);
@ -291,7 +291,7 @@ pub fn build_element_from_tag(cx: *JSContext, tag: &str) -> AbstractNode<ScriptV
unsafe { unsafe {
let element = @HTMLUnknownElement { let element = @HTMLUnknownElement {
parent: HTMLElement::new(HTMLUnknownElementTypeId, tag.to_str()) htmlelement: HTMLElement::new(HTMLUnknownElementTypeId, tag.to_str())
}; };
Node::as_abstract_node(cx, element) Node::as_abstract_node(cx, element)
} }
@ -333,7 +333,7 @@ pub fn parse_html(cx: *JSContext,
let url3 = url.clone(); let url3 = url.clone();
// Build the root node. // Build the root node.
let root = @HTMLHtmlElement { parent: HTMLElement::new(HTMLHtmlElementTypeId, ~"html") }; let root = @HTMLHtmlElement { htmlelement: HTMLElement::new(HTMLHtmlElementTypeId, ~"html") };
let root = unsafe { Node::as_abstract_node(cx, root) }; let root = unsafe { Node::as_abstract_node(cx, root) };
debug!("created new node"); debug!("created new node");
let mut parser = hubbub::Parser("UTF-8", false); let mut parser = hubbub::Parser("UTF-8", false);
@ -400,7 +400,7 @@ pub fn parse_html(cx: *JSContext,
do node.with_mut_iframe_element |iframe_element| { do node.with_mut_iframe_element |iframe_element| {
let iframe_chan = iframe_chan.take(); let iframe_chan = iframe_chan.take();
let sandboxed = iframe_element.is_sandboxed(); let sandboxed = iframe_element.is_sandboxed();
let elem = &mut iframe_element.parent.parent; let elem = &mut iframe_element.htmlelement.element;
let src_opt = elem.get_attr("src").map(|x| x.to_str()); let src_opt = elem.get_attr("src").map(|x| x.to_str());
for src in src_opt.iter() { for src in src_opt.iter() {
let iframe_url = make_url(src.clone(), Some(url2.clone())); let iframe_url = make_url(src.clone(), Some(url2.clone()));
@ -519,7 +519,7 @@ pub fn parse_html(cx: *JSContext,
for child in scriptnode.children() { for child in scriptnode.children() {
debug!("child = %?", child); debug!("child = %?", child);
do child.with_imm_text() |text| { do child.with_imm_text() |text| {
data.push(text.parent.data.to_str()); // FIXME: Bad copy. data.push(text.element.data.to_str()); // FIXME: Bad copy.
} }
} }
@ -545,7 +545,7 @@ pub fn parse_html(cx: *JSContext,
for child in style.children() { for child in style.children() {
debug!("child = %?", child); debug!("child = %?", child);
do child.with_imm_text() |text| { do child.with_imm_text() |text| {
data.push(text.parent.data.to_str()); // FIXME: Bad copy. data.push(text.element.data.to_str()); // FIXME: Bad copy.
} }
} }