aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/components/script/dom/bindings/domparser.rs4
-rw-r--r--src/components/script/dom/bindings/element.rs114
-rw-r--r--src/components/script/dom/bindings/node.rs6
-rw-r--r--src/components/script/dom/bindings/utils.rs5
-rw-r--r--src/components/script/dom/blob.rs4
-rw-r--r--src/components/script/dom/characterdata.rs4
-rw-r--r--src/components/script/dom/clientrect.rs4
-rw-r--r--src/components/script/dom/clientrectlist.rs4
-rw-r--r--src/components/script/dom/document.rs8
-rw-r--r--src/components/script/dom/element.rs4
-rw-r--r--src/components/script/dom/event.rs6
-rw-r--r--src/components/script/dom/eventtarget.rs4
-rw-r--r--src/components/script/dom/formdata.rs6
-rw-r--r--src/components/script/dom/htmlcollection.rs20
-rw-r--r--src/components/script/dom/htmldocument.rs4
-rw-r--r--src/components/script/dom/mouseevent.rs4
-rw-r--r--src/components/script/dom/navigator.rs4
-rw-r--r--src/components/script/dom/node.rs7
-rw-r--r--src/components/script/dom/nodelist.rs18
-rw-r--r--src/components/script/dom/uievent.rs4
-rw-r--r--src/components/script/dom/validitystate.rs4
-rw-r--r--src/components/script/dom/window.rs6
-rw-r--r--src/components/script/dom/windowproxy.rs18
23 files changed, 62 insertions, 200 deletions
diff --git a/src/components/script/dom/bindings/domparser.rs b/src/components/script/dom/bindings/domparser.rs
index 586ef039911..0d2af282e01 100644
--- a/src/components/script/dom/bindings/domparser.rs
+++ b/src/components/script/dom/bindings/domparser.rs
@@ -3,7 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::DOMParserBinding;
-use dom::bindings::utils::{BindingObject, Reflectable, Reflector};
+use dom::bindings::utils::{Reflectable, Reflector};
use dom::domparser::DOMParser;
use js::jsapi::{JSContext, JSObject};
@@ -20,9 +20,7 @@ impl Reflectable for DOMParser {
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
DOMParserBinding::Wrap(cx, scope, self)
}
-}
-impl BindingObject for DOMParser {
fn GetParentObject(&self, _cx: *JSContext) -> Option<@mut Reflectable> {
Some(self.owner as @mut Reflectable)
}
diff --git a/src/components/script/dom/bindings/element.rs b/src/components/script/dom/bindings/element.rs
index 83e1667b149..949fc0e9852 100644
--- a/src/components/script/dom/bindings/element.rs
+++ b/src/components/script/dom/bindings/element.rs
@@ -4,7 +4,7 @@
use dom::types::*;
use dom::bindings::codegen::*;
-use dom::bindings::utils::{BindingObject, Reflector, Reflectable, Traceable};
+use dom::bindings::utils::{Reflectable, Reflector, Traceable};
use js::jsapi::{JSContext, JSObject, JSTracer};
@@ -53,45 +53,7 @@ macro_rules! generate_cacheable_wrapper_base(
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
$wrap(cx, scope, self)
}
- }
- )
-)
-
-// generate_binding_object
-macro_rules! generate_binding_object(
- ($name: path) => (
- generate_binding_base!($name, element)
- )
-)
-
-macro_rules! generate_binding_object_htmlelement(
- ($name: path) => (
- generate_binding_base!($name, htmlelement)
- )
-)
-
-macro_rules! generate_binding_object_htmlmediaelement(
- ($name: path) => (
- generate_binding_base!($name, htmlmediaelement)
- )
-)
-
-macro_rules! generate_binding_object_htmltablecellelement(
- ($name: path) => (
- generate_binding_base!($name, htmltablecellelement)
- )
-)
-
-macro_rules! generate_binding_object_node(
- ($name: path) => (
- generate_binding_base!($name, node)
- )
-)
-
-macro_rules! generate_binding_base(
- ($name: path, $parent: ident) => (
- impl BindingObject for $name {
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> {
self.$parent.GetParentObject(cx)
}
@@ -143,295 +105,221 @@ macro_rules! generate_traceable_base(
generate_cacheable_wrapper!(Comment, CommentBinding::Wrap)
-generate_binding_object!(Comment)
generate_traceable!(Comment)
generate_cacheable_wrapper_node!(DocumentFragment, DocumentFragmentBinding::Wrap)
-generate_binding_object_node!(DocumentFragment)
generate_traceable_node!(DocumentFragment)
generate_cacheable_wrapper_node!(DocumentType, DocumentTypeBinding::Wrap)
-generate_binding_object_node!(DocumentType)
generate_traceable_node!(DocumentType)
generate_cacheable_wrapper!(Text, TextBinding::Wrap)
-generate_binding_object!(Text)
generate_traceable!(Text)
generate_cacheable_wrapper_htmlelement!(HTMLHeadElement, HTMLHeadElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLHeadElement)
generate_traceable_htmlelement!(HTMLHeadElement)
generate_cacheable_wrapper_htmlelement!(HTMLAnchorElement, HTMLAnchorElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLAnchorElement)
generate_traceable_htmlelement!(HTMLAnchorElement)
generate_cacheable_wrapper_htmlelement!(HTMLAppletElement, HTMLAppletElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLAppletElement)
generate_traceable_htmlelement!(HTMLAppletElement)
generate_cacheable_wrapper_htmlelement!(HTMLAreaElement, HTMLAreaElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLAreaElement)
generate_traceable_htmlelement!(HTMLAreaElement)
generate_cacheable_wrapper_htmlmediaelement!(HTMLAudioElement, HTMLAudioElementBinding::Wrap)
-generate_binding_object_htmlmediaelement!(HTMLAudioElement)
generate_traceable_htmlmediaelement!(HTMLAudioElement)
generate_cacheable_wrapper_htmlelement!(HTMLBaseElement, HTMLBaseElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLBaseElement)
generate_traceable_htmlelement!(HTMLBaseElement)
generate_cacheable_wrapper_htmlelement!(HTMLBodyElement, HTMLBodyElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLBodyElement)
generate_traceable_htmlelement!(HTMLBodyElement)
generate_cacheable_wrapper_htmlelement!(HTMLButtonElement, HTMLButtonElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLButtonElement)
generate_traceable_htmlelement!(HTMLButtonElement)
generate_cacheable_wrapper_htmlelement!(HTMLCanvasElement, HTMLCanvasElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLCanvasElement)
generate_traceable_htmlelement!(HTMLCanvasElement)
generate_cacheable_wrapper_htmlelement!(HTMLDataListElement, HTMLDataListElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLDataListElement)
generate_traceable_htmlelement!(HTMLDataListElement)
generate_cacheable_wrapper_htmlelement!(HTMLDListElement, HTMLDListElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLDListElement)
generate_traceable_htmlelement!(HTMLDListElement)
generate_cacheable_wrapper_htmlelement!(HTMLFormElement, HTMLFormElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLFormElement)
generate_traceable_htmlelement!(HTMLFormElement)
generate_cacheable_wrapper_htmlelement!(HTMLFrameElement, HTMLFrameElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLFrameElement)
generate_traceable_htmlelement!(HTMLFrameElement)
generate_cacheable_wrapper_htmlelement!(HTMLFrameSetElement, HTMLFrameSetElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLFrameSetElement)
generate_traceable_htmlelement!(HTMLFrameSetElement)
generate_cacheable_wrapper_htmlelement!(HTMLBRElement, HTMLBRElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLBRElement)
generate_traceable_htmlelement!(HTMLBRElement)
generate_cacheable_wrapper_htmlelement!(HTMLHRElement, HTMLHRElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLHRElement)
generate_traceable_htmlelement!(HTMLHRElement)
generate_cacheable_wrapper_htmlelement!(HTMLHtmlElement, HTMLHtmlElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLHtmlElement)
generate_traceable_htmlelement!(HTMLHtmlElement)
generate_cacheable_wrapper_htmlelement!(HTMLDataElement, HTMLDataElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLDataElement)
generate_traceable_htmlelement!(HTMLDataElement)
generate_cacheable_wrapper_htmlelement!(HTMLDirectoryElement, HTMLDirectoryElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLDirectoryElement)
generate_traceable_htmlelement!(HTMLDirectoryElement)
generate_cacheable_wrapper_htmlelement!(HTMLDivElement, HTMLDivElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLDivElement)
generate_traceable_htmlelement!(HTMLDivElement)
generate_cacheable_wrapper_htmlelement!(HTMLEmbedElement, HTMLEmbedElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLEmbedElement)
generate_traceable_htmlelement!(HTMLEmbedElement)
generate_cacheable_wrapper_htmlelement!(HTMLFieldSetElement, HTMLFieldSetElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLFieldSetElement)
generate_traceable_htmlelement!(HTMLFieldSetElement)
generate_cacheable_wrapper_htmlelement!(HTMLFontElement, HTMLFontElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLFontElement)
generate_traceable_htmlelement!(HTMLFontElement)
generate_cacheable_wrapper_htmlelement!(HTMLHeadingElement, HTMLHeadingElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLHeadingElement)
generate_traceable_htmlelement!(HTMLHeadingElement)
generate_cacheable_wrapper_htmlelement!(HTMLIFrameElement, HTMLIFrameElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLIFrameElement)
generate_traceable_htmlelement!(HTMLIFrameElement)
generate_cacheable_wrapper_htmlelement!(HTMLImageElement, HTMLImageElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLImageElement)
generate_traceable_htmlelement!(HTMLImageElement)
generate_cacheable_wrapper_htmlelement!(HTMLInputElement, HTMLInputElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLInputElement)
generate_traceable_htmlelement!(HTMLInputElement)
generate_cacheable_wrapper_htmlelement!(HTMLLabelElement, HTMLLabelElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLLabelElement)
generate_traceable_htmlelement!(HTMLLabelElement)
generate_cacheable_wrapper_htmlelement!(HTMLLegendElement, HTMLLegendElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLLegendElement)
generate_traceable_htmlelement!(HTMLLegendElement)
generate_cacheable_wrapper_htmlelement!(HTMLLIElement, HTMLLIElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLLIElement)
generate_traceable_htmlelement!(HTMLLIElement)
generate_cacheable_wrapper_htmlelement!(HTMLLinkElement, HTMLLinkElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLLinkElement)
generate_traceable_htmlelement!(HTMLLinkElement)
generate_cacheable_wrapper_htmlelement!(HTMLMapElement, HTMLMapElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLMapElement)
generate_traceable_htmlelement!(HTMLMapElement)
generate_cacheable_wrapper_htmlelement!(HTMLMediaElement, HTMLMediaElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLMediaElement)
generate_traceable_htmlelement!(HTMLMediaElement)
generate_cacheable_wrapper_htmlelement!(HTMLMetaElement, HTMLMetaElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLMetaElement)
generate_traceable_htmlelement!(HTMLMetaElement)
generate_cacheable_wrapper_htmlelement!(HTMLMeterElement, HTMLMeterElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLMeterElement)
generate_traceable_htmlelement!(HTMLMeterElement)
generate_cacheable_wrapper_htmlelement!(HTMLModElement, HTMLModElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLModElement)
generate_traceable_htmlelement!(HTMLModElement)
generate_cacheable_wrapper_htmlelement!(HTMLObjectElement, HTMLObjectElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLObjectElement)
generate_traceable_htmlelement!(HTMLObjectElement)
generate_cacheable_wrapper_htmlelement!(HTMLOListElement, HTMLOListElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLOListElement)
generate_traceable_htmlelement!(HTMLOListElement)
generate_cacheable_wrapper_htmlelement!(HTMLOptGroupElement, HTMLOptGroupElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLOptGroupElement)
generate_traceable_htmlelement!(HTMLOptGroupElement)
generate_cacheable_wrapper_htmlelement!(HTMLOptionElement, HTMLOptionElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLOptionElement)
generate_traceable_htmlelement!(HTMLOptionElement)
generate_cacheable_wrapper_htmlelement!(HTMLOutputElement, HTMLOutputElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLOutputElement)
generate_traceable_htmlelement!(HTMLOutputElement)
generate_cacheable_wrapper_htmlelement!(HTMLParagraphElement, HTMLParagraphElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLParagraphElement)
generate_traceable_htmlelement!(HTMLParagraphElement)
generate_cacheable_wrapper_htmlelement!(HTMLParamElement, HTMLParamElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLParamElement)
generate_traceable_htmlelement!(HTMLParamElement)
generate_cacheable_wrapper_htmlelement!(HTMLPreElement, HTMLPreElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLPreElement)
generate_traceable_htmlelement!(HTMLPreElement)
generate_cacheable_wrapper_htmlelement!(HTMLProgressElement, HTMLProgressElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLProgressElement)
generate_traceable_htmlelement!(HTMLProgressElement)
generate_cacheable_wrapper_htmlelement!(HTMLQuoteElement, HTMLQuoteElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLQuoteElement)
generate_traceable_htmlelement!(HTMLQuoteElement)
generate_cacheable_wrapper_htmlelement!(HTMLScriptElement, HTMLScriptElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLScriptElement)
generate_traceable_htmlelement!(HTMLScriptElement)
generate_cacheable_wrapper_htmlelement!(HTMLSelectElement, HTMLSelectElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLSelectElement)
generate_traceable_htmlelement!(HTMLSelectElement)
generate_cacheable_wrapper_htmlelement!(HTMLSourceElement, HTMLSourceElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLSourceElement)
generate_traceable_htmlelement!(HTMLSourceElement)
generate_cacheable_wrapper_htmlelement!(HTMLSpanElement, HTMLSpanElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLSpanElement)
generate_traceable_htmlelement!(HTMLSpanElement)
generate_cacheable_wrapper_htmlelement!(HTMLStyleElement, HTMLStyleElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLStyleElement)
generate_traceable_htmlelement!(HTMLStyleElement)
generate_cacheable_wrapper_htmlelement!(HTMLTableElement, HTMLTableElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLTableElement)
generate_traceable_htmlelement!(HTMLTableElement)
generate_cacheable_wrapper_htmlelement!(HTMLTableCaptionElement, HTMLTableCaptionElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLTableCaptionElement)
generate_traceable_htmlelement!(HTMLTableCaptionElement)
generate_cacheable_wrapper_htmlelement!(HTMLTableCellElement, HTMLTableCellElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLTableCellElement)
generate_traceable_htmlelement!(HTMLTableCellElement)
generate_cacheable_wrapper_htmltablecellelement!(HTMLTableDataCellElement, HTMLTableDataCellElementBinding::Wrap)
-generate_binding_object_htmltablecellelement!(HTMLTableDataCellElement)
generate_traceable_htmltablecellelement!(HTMLTableDataCellElement)
generate_cacheable_wrapper_htmltablecellelement!(HTMLTableHeaderCellElement, HTMLTableHeaderCellElementBinding::Wrap)
-generate_binding_object_htmltablecellelement!(HTMLTableHeaderCellElement)
generate_traceable_htmltablecellelement!(HTMLTableHeaderCellElement)
generate_cacheable_wrapper_htmlelement!(HTMLTableColElement, HTMLTableColElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLTableColElement)
generate_traceable_htmlelement!(HTMLTableColElement)
generate_cacheable_wrapper_htmlelement!(HTMLTableRowElement, HTMLTableRowElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLTableRowElement)
generate_traceable_htmlelement!(HTMLTableRowElement)
generate_cacheable_wrapper_htmlelement!(HTMLTableSectionElement, HTMLTableSectionElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLTableSectionElement)
generate_traceable_htmlelement!(HTMLTableSectionElement)
generate_cacheable_wrapper_htmlelement!(HTMLTemplateElement, HTMLTemplateElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLTemplateElement)
generate_traceable_htmlelement!(HTMLTemplateElement)
generate_cacheable_wrapper_htmlelement!(HTMLTextAreaElement, HTMLTextAreaElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLTextAreaElement)
generate_traceable_htmlelement!(HTMLTextAreaElement)
generate_cacheable_wrapper_htmlelement!(HTMLTitleElement, HTMLTitleElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLTitleElement)
generate_traceable_htmlelement!(HTMLTitleElement)
generate_cacheable_wrapper_htmlelement!(HTMLTimeElement, HTMLTimeElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLTimeElement)
generate_traceable_htmlelement!(HTMLTimeElement)
generate_cacheable_wrapper_htmlelement!(HTMLTrackElement, HTMLTrackElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLTrackElement)
generate_traceable_htmlelement!(HTMLTrackElement)
generate_cacheable_wrapper_htmlelement!(HTMLUListElement, HTMLUListElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLUListElement)
generate_traceable_htmlelement!(HTMLUListElement)
generate_cacheable_wrapper_htmlelement!(HTMLUnknownElement, HTMLUnknownElementBinding::Wrap)
-generate_binding_object_htmlelement!(HTMLUnknownElement)
generate_traceable_htmlelement!(HTMLUnknownElement)
generate_cacheable_wrapper_htmlmediaelement!(HTMLVideoElement, HTMLVideoElementBinding::Wrap)
-generate_binding_object_htmlmediaelement!(HTMLVideoElement)
generate_traceable_htmlmediaelement!(HTMLVideoElement)
generate_cacheable_wrapper!(HTMLElement, HTMLElementBinding::Wrap)
-generate_binding_object!(HTMLElement)
generate_traceable!(HTMLElement)
-generate_binding_object_node!(Element)
generate_traceable_node!(Element)
-generate_binding_object_node!(CharacterData)
generate_traceable_node!(CharacterData)
diff --git a/src/components/script/dom/bindings/node.rs b/src/components/script/dom/bindings/node.rs
index a036689a375..ac467a9a5c2 100644
--- a/src/components/script/dom/bindings/node.rs
+++ b/src/components/script/dom/bindings/node.rs
@@ -114,6 +114,12 @@ impl Reflectable for AbstractNode<ScriptView> {
fn wrap_object_shared(@mut self, _cx: *JSContext, _scope: *JSObject) -> *JSObject {
fail!(~"need to implement wrapping");
}
+
+ fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> {
+ do self.with_mut_base |base| {
+ base.GetParentObject(cx)
+ }
+ }
}
impl Traceable for Node<ScriptView> {
diff --git a/src/components/script/dom/bindings/utils.rs b/src/components/script/dom/bindings/utils.rs
index 0beb98d61c0..87fa9477e52 100644
--- a/src/components/script/dom/bindings/utils.rs
+++ b/src/components/script/dom/bindings/utils.rs
@@ -541,6 +541,7 @@ pub trait Reflectable {
fn reflector<'a>(&'a self) -> &'a Reflector;
fn mut_reflector<'a>(&'a mut self) -> &'a mut Reflector;
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject;
+ fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable>;
}
pub struct Reflector {
@@ -607,10 +608,6 @@ pub fn WrapNativeParent(cx: *JSContext, scope: *JSObject, mut p: Option<@mut Ref
}
}
-pub trait BindingObject {
- fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable>;
-}
-
#[fixed_stack_segment]
pub fn GetPropertyOnPrototype(cx: *JSContext, proxy: *JSObject, id: jsid, found: *mut bool,
vp: *JSVal) -> bool {
diff --git a/src/components/script/dom/blob.rs b/src/components/script/dom/blob.rs
index ccac0a702af..3d17c44bc26 100644
--- a/src/components/script/dom/blob.rs
+++ b/src/components/script/dom/blob.rs
@@ -2,7 +2,7 @@
* 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::{Reflector, BindingObject, Reflectable};
+use dom::bindings::utils::{Reflectable, Reflector};
use dom::bindings::codegen::BlobBinding;
use script_task::{page_from_context};
@@ -32,9 +32,7 @@ impl Reflectable for Blob {
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
BlobBinding::Wrap(cx, scope, self)
}
-}
-impl BindingObject for Blob {
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> {
let page = page_from_context(cx);
unsafe {
diff --git a/src/components/script/dom/characterdata.rs b/src/components/script/dom/characterdata.rs
index 064a4976a16..d93d8faa534 100644
--- a/src/components/script/dom/characterdata.rs
+++ b/src/components/script/dom/characterdata.rs
@@ -70,4 +70,8 @@ impl Reflectable for CharacterData {
fn wrap_object_shared(@mut self, _cx: *JSContext, _scope: *JSObject) -> *JSObject {
fail!(~"need to implement wrapping");
}
+
+ fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> {
+ self.node.GetParentObject(cx)
+ }
}
diff --git a/src/components/script/dom/clientrect.rs b/src/components/script/dom/clientrect.rs
index 543ea2a5f88..2c76bada0d2 100644
--- a/src/components/script/dom/clientrect.rs
+++ b/src/components/script/dom/clientrect.rs
@@ -2,7 +2,7 @@
* 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::{Reflectable, Reflector, BindingObject};
+use dom::bindings::utils::{Reflectable, Reflector};
use dom::bindings::codegen::ClientRectBinding;
use script_task::page_from_context;
@@ -70,9 +70,7 @@ impl Reflectable for ClientRect {
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
ClientRectBinding::Wrap(cx, scope, self)
}
-}
-impl BindingObject for ClientRect {
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> {
let page = page_from_context(cx);
unsafe {
diff --git a/src/components/script/dom/clientrectlist.rs b/src/components/script/dom/clientrectlist.rs
index 47c1538b7ed..1c6b7870fd6 100644
--- a/src/components/script/dom/clientrectlist.rs
+++ b/src/components/script/dom/clientrectlist.rs
@@ -3,7 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::ClientRectListBinding;
-use dom::bindings::utils::{Reflector, Reflectable, BindingObject};
+use dom::bindings::utils::{Reflectable, Reflector};
use dom::clientrect::ClientRect;
use script_task::page_from_context;
@@ -58,9 +58,7 @@ impl Reflectable for ClientRectList {
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
ClientRectListBinding::Wrap(cx, scope, self)
}
-}
-impl BindingObject for ClientRectList {
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> {
let page = page_from_context(cx);
unsafe {
diff --git a/src/components/script/dom/document.rs b/src/components/script/dom/document.rs
index 26a9c7a88a9..931221cabe0 100644
--- a/src/components/script/dom/document.rs
+++ b/src/components/script/dom/document.rs
@@ -4,8 +4,8 @@
use dom::comment::Comment;
use dom::bindings::codegen::DocumentBinding;
-use dom::bindings::utils::{DOMString, Reflector, ErrorResult, Fallible};
-use dom::bindings::utils::{BindingObject, Reflectable, DerivedWrapper};
+use dom::bindings::utils::{DOMString, ErrorResult, Fallible};
+use dom::bindings::utils::{Reflectable, Reflector, DerivedWrapper};
use dom::bindings::utils::{is_valid_element_name, InvalidCharacter, Traceable, null_str_as_empty, null_str_as_word_null};
use dom::documentfragment::DocumentFragment;
use dom::element::{Element};
@@ -176,9 +176,7 @@ impl Reflectable for AbstractDocument {
}
}
}
-}
-impl BindingObject for AbstractDocument {
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> {
do self.with_mut_base |doc| {
doc.GetParentObject(cx)
@@ -207,9 +205,7 @@ impl Reflectable for Document {
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
DocumentBinding::Wrap(cx, scope, self)
}
-}
-impl BindingObject for Document {
fn GetParentObject(&self, _cx: *JSContext) -> Option<@mut Reflectable> {
Some(self.window as @mut Reflectable)
}
diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs
index 3c4f7e9d9b4..3f0e77a4e4c 100644
--- a/src/components/script/dom/element.rs
+++ b/src/components/script/dom/element.rs
@@ -42,6 +42,10 @@ impl Reflectable for Element {
fn wrap_object_shared(@mut self, _cx: *JSContext, _scope: *JSObject) -> *JSObject {
fail!("no wrapping")
}
+
+ fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> {
+ self.node.GetParentObject(cx)
+ }
}
#[deriving(Eq)]
diff --git a/src/components/script/dom/event.rs b/src/components/script/dom/event.rs
index 2f5f8a96fd7..00bf6868e43 100644
--- a/src/components/script/dom/event.rs
+++ b/src/components/script/dom/event.rs
@@ -5,8 +5,8 @@
use dom::eventtarget::EventTarget;
use dom::window::Window;
use dom::bindings::codegen::EventBinding;
-use dom::bindings::utils::{Reflectable, BindingObject};
-use dom::bindings::utils::{DOMString, ErrorResult, Fallible, Reflector};
+use dom::bindings::utils::{Reflectable, Reflector};
+use dom::bindings::utils::{DOMString, ErrorResult, Fallible};
use geom::point::Point2D;
use js::jsapi::{JSObject, JSContext};
@@ -121,9 +121,7 @@ impl Reflectable for Event {
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
EventBinding::Wrap(cx, scope, self)
}
-}
-impl BindingObject for Event {
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> {
let page = page_from_context(cx);
unsafe {
diff --git a/src/components/script/dom/eventtarget.rs b/src/components/script/dom/eventtarget.rs
index 73d8867e144..35a1fe6e6cc 100644
--- a/src/components/script/dom/eventtarget.rs
+++ b/src/components/script/dom/eventtarget.rs
@@ -3,7 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::EventTargetBinding;
-use dom::bindings::utils::{Reflectable, Reflector, BindingObject};
+use dom::bindings::utils::{Reflectable, Reflector};
use script_task::page_from_context;
use js::jsapi::{JSObject, JSContext};
@@ -36,9 +36,7 @@ impl Reflectable for EventTarget {
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
EventTargetBinding::Wrap(cx, scope, self)
}
-}
-impl BindingObject for EventTarget {
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> {
let page = page_from_context(cx);
// TODO(tkuehn): This only handles top-level pages. Needs to handle subframes.
diff --git a/src/components/script/dom/formdata.rs b/src/components/script/dom/formdata.rs
index 0a3917dfca0..e961f3fd2fa 100644
--- a/src/components/script/dom/formdata.rs
+++ b/src/components/script/dom/formdata.rs
@@ -2,8 +2,8 @@
* 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::{Reflectable, BindingObject};
-use dom::bindings::utils::{Reflector, DOMString, null_str_as_empty};
+use dom::bindings::utils::{Reflectable, Reflector};
+use dom::bindings::utils::{DOMString, null_str_as_empty};
use dom::bindings::codegen::FormDataBinding;
use dom::blob::Blob;
use script_task::{page_from_context};
@@ -59,9 +59,7 @@ impl Reflectable for FormData {
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
FormDataBinding::Wrap(cx, scope, self)
}
-}
-impl BindingObject for FormData {
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> {
let page = page_from_context(cx);
unsafe {
diff --git a/src/components/script/dom/htmlcollection.rs b/src/components/script/dom/htmlcollection.rs
index e76e65c4a66..1f26eaaff95 100644
--- a/src/components/script/dom/htmlcollection.rs
+++ b/src/components/script/dom/htmlcollection.rs
@@ -3,7 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::HTMLCollectionBinding;
-use dom::bindings::utils::{Reflectable, BindingObject, Reflector};
+use dom::bindings::utils::{Reflectable, Reflector};
use dom::bindings::utils::{DOMString, Fallible};
use dom::node::{AbstractNode, ScriptView};
use script_task::page_from_context;
@@ -57,16 +57,6 @@ impl HTMLCollection {
}
}
-impl BindingObject for HTMLCollection {
- fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> {
- let page = page_from_context(cx);
- // TODO(tkuehn): This only handles the top-level frame. Need to grab subframes.
- unsafe {
- Some((*page).frame.get_ref().window as @mut Reflectable)
- }
- }
-}
-
impl Reflectable for HTMLCollection {
fn reflector<'a>(&'a self) -> &'a Reflector {
&self.reflector_
@@ -79,4 +69,12 @@ impl Reflectable for HTMLCollection {
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
HTMLCollectionBinding::Wrap(cx, scope, self)
}
+
+ fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> {
+ let page = page_from_context(cx);
+ // TODO(tkuehn): This only handles the top-level frame. Need to grab subframes.
+ unsafe {
+ Some((*page).frame.get_ref().window as @mut Reflectable)
+ }
+ }
}
diff --git a/src/components/script/dom/htmldocument.rs b/src/components/script/dom/htmldocument.rs
index 7acd47bc154..caf54316aae 100644
--- a/src/components/script/dom/htmldocument.rs
+++ b/src/components/script/dom/htmldocument.rs
@@ -4,7 +4,7 @@
use dom::bindings::codegen::HTMLDocumentBinding;
use dom::bindings::utils::{DOMString, ErrorResult, Fallible, Traceable};
-use dom::bindings::utils::{Reflectable, BindingObject, Reflector};
+use dom::bindings::utils::{Reflectable, Reflector};
use dom::document::{AbstractDocument, Document, ReflectableDocument, HTML};
use dom::element::HTMLHeadElementTypeId;
use dom::htmlcollection::HTMLCollection;
@@ -196,9 +196,7 @@ impl Reflectable for HTMLDocument {
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
HTMLDocumentBinding::Wrap(cx, scope, self)
}
-}
-impl BindingObject for HTMLDocument {
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> {
self.parent.GetParentObject(cx)
}
diff --git a/src/components/script/dom/mouseevent.rs b/src/components/script/dom/mouseevent.rs
index e8e52be7939..ffe871b6485 100644
--- a/src/components/script/dom/mouseevent.rs
+++ b/src/components/script/dom/mouseevent.rs
@@ -4,7 +4,7 @@
use dom::bindings::codegen::MouseEventBinding;
use dom::bindings::utils::{ErrorResult, Fallible, DOMString};
-use dom::bindings::utils::{Reflectable, Reflector, BindingObject};
+use dom::bindings::utils::{Reflectable, Reflector};
use dom::eventtarget::EventTarget;
use dom::uievent::UIEvent;
use dom::window::Window;
@@ -153,9 +153,7 @@ impl Reflectable for MouseEvent {
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
MouseEventBinding::Wrap(cx, scope, self)
}
-}
-impl BindingObject for MouseEvent {
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> {
self.parent.GetParentObject(cx)
}
diff --git a/src/components/script/dom/navigator.rs b/src/components/script/dom/navigator.rs
index 69db9f18453..99b75a39030 100644
--- a/src/components/script/dom/navigator.rs
+++ b/src/components/script/dom/navigator.rs
@@ -2,7 +2,7 @@
* 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::{Reflector, BindingObject, Reflectable};
+use dom::bindings::utils::{Reflectable, Reflector};
use dom::bindings::utils::{DOMString, Fallible};
use dom::bindings::codegen::NavigatorBinding;
use script_task::{page_from_context};
@@ -97,9 +97,7 @@ impl Reflectable for Navigator {
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
NavigatorBinding::Wrap(cx, scope, self)
}
-}
-impl BindingObject for Navigator {
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> {
let page = page_from_context(cx);
unsafe {
diff --git a/src/components/script/dom/node.rs b/src/components/script/dom/node.rs
index 292c54aa7d1..d0b0ec81671 100644
--- a/src/components/script/dom/node.rs
+++ b/src/components/script/dom/node.rs
@@ -5,8 +5,9 @@
//! The core DOM types. Defines the basic DOM hierarchy as well as all the HTML elements.
use dom::bindings::node;
-use dom::bindings::utils::{Reflector, DOMString, ErrorResult, Fallible, NotFound, HierarchyRequest};
-use dom::bindings::utils::{BindingObject, Reflectable, null_str_as_empty};
+use dom::bindings::utils::{Reflectable, Reflector};
+use dom::bindings::utils::{DOMString, null_str_as_empty};
+use dom::bindings::utils::{ErrorResult, Fallible, NotFound, HierarchyRequest};
use dom::characterdata::CharacterData;
use dom::document::AbstractDocument;
use dom::documenttype::DocumentType;
@@ -901,9 +902,7 @@ impl Reflectable for Node<ScriptView> {
fn wrap_object_shared(@mut self, _cx: *JSContext, _scope: *JSObject) -> *JSObject {
fail!(~"need to implement wrapping");
}
-}
-impl BindingObject for Node<ScriptView> {
fn GetParentObject(&self, _cx: *JSContext) -> Option<@mut Reflectable> {
match self.parent_node {
Some(node) => Some(unsafe {node.as_cacheable_wrapper()}),
diff --git a/src/components/script/dom/nodelist.rs b/src/components/script/dom/nodelist.rs
index 47a9c527972..768331384c9 100644
--- a/src/components/script/dom/nodelist.rs
+++ b/src/components/script/dom/nodelist.rs
@@ -3,7 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::NodeListBinding;
-use dom::bindings::utils::{Reflectable, BindingObject, Reflector};
+use dom::bindings::utils::{Reflectable, Reflector};
use dom::node::{AbstractNode, ScriptView};
use script_task::page_from_context;
@@ -66,15 +66,6 @@ impl NodeList {
}
}
-impl BindingObject for NodeList {
- fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> {
- let page = page_from_context(cx);
- unsafe {
- Some((*page).frame.get_ref().window as @mut Reflectable)
- }
- }
-}
-
impl Reflectable for NodeList {
fn reflector<'a>(&'a self) -> &'a Reflector {
&self.reflector_
@@ -87,4 +78,11 @@ impl Reflectable for NodeList {
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
NodeListBinding::Wrap(cx, scope, self)
}
+
+ fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> {
+ let page = page_from_context(cx);
+ unsafe {
+ Some((*page).frame.get_ref().window as @mut Reflectable)
+ }
+ }
}
diff --git a/src/components/script/dom/uievent.rs b/src/components/script/dom/uievent.rs
index 5f1b8b175ba..d049be1f55e 100644
--- a/src/components/script/dom/uievent.rs
+++ b/src/components/script/dom/uievent.rs
@@ -4,7 +4,7 @@
use dom::bindings::codegen::UIEventBinding;
use dom::bindings::utils::{DOMString, Fallible};
-use dom::bindings::utils::{Reflectable, Reflector, BindingObject};
+use dom::bindings::utils::{Reflectable, Reflector};
use dom::node::{AbstractNode, ScriptView};
use dom::event::Event;
use dom::window::Window;
@@ -126,9 +126,7 @@ impl Reflectable for UIEvent {
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
UIEventBinding::Wrap(cx, scope, self)
}
-}
-impl BindingObject for UIEvent {
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> {
self.parent.GetParentObject(cx)
}
diff --git a/src/components/script/dom/validitystate.rs b/src/components/script/dom/validitystate.rs
index 523c2a0cb01..20c0cf211b0 100644
--- a/src/components/script/dom/validitystate.rs
+++ b/src/components/script/dom/validitystate.rs
@@ -2,7 +2,7 @@
* 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::{Reflector, BindingObject, Reflectable};
+use dom::bindings::utils::{Reflectable, Reflector};
use dom::bindings::codegen::ValidityStateBinding;
use js::jsapi::{JSContext, JSObject};
@@ -70,9 +70,7 @@ impl Reflectable for ValidityState {
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
ValidityStateBinding::Wrap(cx, scope, self)
}
-}
-impl BindingObject for ValidityState {
fn GetParentObject(&self, _cx: *JSContext) -> Option<@mut Reflectable> {
None
}
diff --git a/src/components/script/dom/window.rs b/src/components/script/dom/window.rs
index f13d767e8e1..82d098d9b22 100644
--- a/src/components/script/dom/window.rs
+++ b/src/components/script/dom/window.rs
@@ -3,8 +3,8 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::WindowBinding;
-use dom::bindings::utils::{Reflector, DOMString, Traceable};
-use dom::bindings::utils::{Reflectable, BindingObject, null_str_as_empty};
+use dom::bindings::utils::{Reflectable, Reflector};
+use dom::bindings::utils::{DOMString, null_str_as_empty, Traceable};
use dom::document::AbstractDocument;
use dom::node::{AbstractNode, ScriptView};
use dom::navigator::Navigator;
@@ -152,9 +152,7 @@ impl Reflectable for Window {
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
WindowBinding::Wrap(cx, scope, self)
}
-}
-impl BindingObject for Window {
fn GetParentObject(&self, _cx: *JSContext) -> Option<@mut Reflectable> {
None
}
diff --git a/src/components/script/dom/windowproxy.rs b/src/components/script/dom/windowproxy.rs
index 235facca913..b5ff91f1c0d 100644
--- a/src/components/script/dom/windowproxy.rs
+++ b/src/components/script/dom/windowproxy.rs
@@ -2,7 +2,7 @@
* 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::{Reflectable, Reflector, BindingObject};
+use dom::bindings::utils::{Reflectable, Reflector};
use script_task::page_from_context;
use js::jsapi::{JSContext, JSObject};
@@ -23,15 +23,6 @@ impl WindowProxy {
}
}
-impl BindingObject for WindowProxy {
- fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> {
- let page = page_from_context(cx);
- unsafe {
- Some((*page).frame.get_ref().window as @mut Reflectable)
- }
- }
-}
-
impl Reflectable for WindowProxy {
fn reflector<'a>(&'a self) -> &'a Reflector {
&self.reflector_
@@ -44,4 +35,11 @@ impl Reflectable for WindowProxy {
fn wrap_object_shared(@mut self, _cx: *JSContext, _scope: *JSObject) -> *JSObject {
fail!("not yet implemented")
}
+
+ fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> {
+ let page = page_from_context(cx);
+ unsafe {
+ Some((*page).frame.get_ref().window as @mut Reflectable)
+ }
+ }
}