aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/htmliframeelement.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/script/dom/htmliframeelement.rs')
-rw-r--r--src/components/script/dom/htmliframeelement.rs127
1 files changed, 82 insertions, 45 deletions
diff --git a/src/components/script/dom/htmliframeelement.rs b/src/components/script/dom/htmliframeelement.rs
index 99ddf3d30f2..31c2981a5e1 100644
--- a/src/components/script/dom/htmliframeelement.rs
+++ b/src/components/script/dom/htmliframeelement.rs
@@ -5,7 +5,7 @@
use dom::bindings::codegen::BindingDeclarations::HTMLIFrameElementBinding;
use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLIFrameElementDerived, HTMLElementCast};
use dom::bindings::error::ErrorResult;
-use dom::bindings::js::JS;
+use dom::bindings::js::{JSRef, Temporary};
use dom::bindings::trace::Untraceable;
use dom::document::Document;
use dom::element::{HTMLIFrameElementTypeId, Element};
@@ -54,18 +54,23 @@ pub struct IFrameSize {
pub subpage_id: SubpageId,
}
-impl HTMLIFrameElement {
- pub fn is_sandboxed(&self) -> bool {
+pub trait HTMLIFrameElementHelpers {
+ fn is_sandboxed(&self) -> bool;
+ fn set_frame(&mut self, frame: Url);
+}
+
+impl<'a> HTMLIFrameElementHelpers for JSRef<'a, HTMLIFrameElement> {
+ fn is_sandboxed(&self) -> bool {
self.sandbox.is_some()
}
- pub fn set_frame(&mut self, frame: Url) {
+ fn set_frame(&mut self, frame: Url) {
*self.frame = Some(frame);
}
}
impl HTMLIFrameElement {
- pub fn new_inherited(localName: DOMString, document: JS<Document>) -> HTMLIFrameElement {
+ pub fn new_inherited(localName: DOMString, document: &JSRef<Document>) -> HTMLIFrameElement {
HTMLIFrameElement {
htmlelement: HTMLElement::new_inherited(HTMLIFrameElementTypeId, localName, document),
frame: Untraceable::new(None),
@@ -74,136 +79,168 @@ impl HTMLIFrameElement {
}
}
- pub fn new(localName: DOMString, document: &JS<Document>) -> JS<HTMLIFrameElement> {
- let element = HTMLIFrameElement::new_inherited(localName, document.clone());
+ pub fn new(localName: DOMString, document: &JSRef<Document>) -> Temporary<HTMLIFrameElement> {
+ let element = HTMLIFrameElement::new_inherited(localName, document);
Node::reflect_node(~element, document, HTMLIFrameElementBinding::Wrap)
}
}
-impl HTMLIFrameElement {
- pub fn Src(&self) -> DOMString {
+pub trait HTMLIFrameElementMethods {
+ fn Src(&self) -> DOMString;
+ fn SetSrc(&mut self, _src: DOMString) -> ErrorResult;
+ fn Srcdoc(&self) -> DOMString;
+ fn SetSrcdoc(&mut self, _srcdoc: DOMString) -> ErrorResult;
+ fn Name(&self) -> DOMString;
+ fn SetName(&mut self, _name: DOMString) -> ErrorResult;
+ fn Sandbox(&self) -> DOMString;
+ fn SetSandbox(&mut self, sandbox: DOMString);
+ fn AllowFullscreen(&self) -> bool;
+ fn SetAllowFullscreen(&mut self, _allow: bool) -> ErrorResult;
+ fn Width(&self) -> DOMString;
+ fn SetWidth(&mut self, _width: DOMString) -> ErrorResult;
+ fn Height(&self) -> DOMString;
+ fn SetHeight(&mut self, _height: DOMString) -> ErrorResult;
+ fn GetContentDocument(&self) -> Option<Temporary<Document>>;
+ fn GetContentWindow(&self) -> Option<Temporary<Window>>;
+ fn Align(&self) -> DOMString;
+ fn SetAlign(&mut self, _align: DOMString) -> ErrorResult;
+ fn Scrolling(&self) -> DOMString;
+ fn SetScrolling(&mut self, _scrolling: DOMString) -> ErrorResult;
+ fn FrameBorder(&self) -> DOMString;
+ fn SetFrameBorder(&mut self, _frameborder: DOMString) -> ErrorResult;
+ fn LongDesc(&self) -> DOMString;
+ fn SetLongDesc(&mut self, _longdesc: DOMString) -> ErrorResult;
+ fn MarginHeight(&self) -> DOMString;
+ fn SetMarginHeight(&mut self, _marginheight: DOMString) -> ErrorResult;
+ fn MarginWidth(&self) -> DOMString;
+ fn SetMarginWidth(&mut self, _marginwidth: DOMString) -> ErrorResult;
+ fn GetSVGDocument(&self) -> Option<Temporary<Document>>;
+}
+
+impl<'a> HTMLIFrameElementMethods for JSRef<'a, HTMLIFrameElement> {
+ fn Src(&self) -> DOMString {
~""
}
- pub fn SetSrc(&mut self, _src: DOMString) -> ErrorResult {
+ fn SetSrc(&mut self, _src: DOMString) -> ErrorResult {
Ok(())
}
- pub fn Srcdoc(&self) -> DOMString {
+ fn Srcdoc(&self) -> DOMString {
~""
}
- pub fn SetSrcdoc(&mut self, _srcdoc: DOMString) -> ErrorResult {
+ fn SetSrcdoc(&mut self, _srcdoc: DOMString) -> ErrorResult {
Ok(())
}
- pub fn Name(&self) -> DOMString {
+ fn Name(&self) -> DOMString {
~""
}
- pub fn SetName(&mut self, _name: DOMString) -> ErrorResult {
+ fn SetName(&mut self, _name: DOMString) -> ErrorResult {
Ok(())
}
- pub fn Sandbox(&self, abstract_self: &JS<HTMLIFrameElement>) -> DOMString {
- let element: JS<Element> = ElementCast::from(abstract_self);
+ fn Sandbox(&self) -> DOMString {
+ let element: &JSRef<Element> = ElementCast::from_ref(self);
element.get_string_attribute("sandbox")
}
- pub fn SetSandbox(&mut self, abstract_self: &mut JS<HTMLIFrameElement>, sandbox: DOMString) {
- let mut element: JS<Element> = ElementCast::from(abstract_self);
+ fn SetSandbox(&mut self, sandbox: DOMString) {
+ let element: &mut JSRef<Element> = ElementCast::from_mut_ref(self);
element.set_string_attribute("sandbox", sandbox);
}
- pub fn AllowFullscreen(&self) -> bool {
+ fn AllowFullscreen(&self) -> bool {
false
}
- pub fn SetAllowFullscreen(&mut self, _allow: bool) -> ErrorResult {
+ fn SetAllowFullscreen(&mut self, _allow: bool) -> ErrorResult {
Ok(())
}
- pub fn Width(&self) -> DOMString {
+ fn Width(&self) -> DOMString {
~""
}
- pub fn SetWidth(&mut self, _width: DOMString) -> ErrorResult {
+ fn SetWidth(&mut self, _width: DOMString) -> ErrorResult {
Ok(())
}
- pub fn Height(&self) -> DOMString {
+ fn Height(&self) -> DOMString {
~""
}
- pub fn SetHeight(&mut self, _height: DOMString) -> ErrorResult {
+ fn SetHeight(&mut self, _height: DOMString) -> ErrorResult {
Ok(())
}
- pub fn GetContentDocument(&self) -> Option<JS<Document>> {
+ fn GetContentDocument(&self) -> Option<Temporary<Document>> {
None
}
- pub fn GetContentWindow(&self) -> Option<JS<Window>> {
+ fn GetContentWindow(&self) -> Option<Temporary<Window>> {
None
}
- pub fn Align(&self) -> DOMString {
+ fn Align(&self) -> DOMString {
~""
}
- pub fn SetAlign(&mut self, _align: DOMString) -> ErrorResult {
+ fn SetAlign(&mut self, _align: DOMString) -> ErrorResult {
Ok(())
}
- pub fn Scrolling(&self) -> DOMString {
+ fn Scrolling(&self) -> DOMString {
~""
}
- pub fn SetScrolling(&mut self, _scrolling: DOMString) -> ErrorResult {
+ fn SetScrolling(&mut self, _scrolling: DOMString) -> ErrorResult {
Ok(())
}
- pub fn FrameBorder(&self) -> DOMString {
+ fn FrameBorder(&self) -> DOMString {
~""
}
- pub fn SetFrameBorder(&mut self, _frameborder: DOMString) -> ErrorResult {
+ fn SetFrameBorder(&mut self, _frameborder: DOMString) -> ErrorResult {
Ok(())
}
- pub fn LongDesc(&self) -> DOMString {
+ fn LongDesc(&self) -> DOMString {
~""
}
- pub fn SetLongDesc(&mut self, _longdesc: DOMString) -> ErrorResult {
+ fn SetLongDesc(&mut self, _longdesc: DOMString) -> ErrorResult {
Ok(())
}
- pub fn MarginHeight(&self) -> DOMString {
+ fn MarginHeight(&self) -> DOMString {
~""
}
- pub fn SetMarginHeight(&mut self, _marginheight: DOMString) -> ErrorResult {
+ fn SetMarginHeight(&mut self, _marginheight: DOMString) -> ErrorResult {
Ok(())
}
- pub fn MarginWidth(&self) -> DOMString {
+ fn MarginWidth(&self) -> DOMString {
~""
}
- pub fn SetMarginWidth(&mut self, _marginwidth: DOMString) -> ErrorResult {
+ fn SetMarginWidth(&mut self, _marginwidth: DOMString) -> ErrorResult {
Ok(())
}
- pub fn GetSVGDocument(&self) -> Option<JS<Document>> {
+ fn GetSVGDocument(&self) -> Option<Temporary<Document>> {
None
}
}
-impl VirtualMethods for JS<HTMLIFrameElement> {
- fn super_type(&self) -> Option<~VirtualMethods:> {
- let htmlelement: JS<HTMLElement> = HTMLElementCast::from(self);
- Some(~htmlelement as ~VirtualMethods:)
+impl<'a> VirtualMethods for JSRef<'a, HTMLIFrameElement> {
+ fn super_type<'a>(&'a mut self) -> Option<&'a mut VirtualMethods:> {
+ let htmlelement: &mut JSRef<HTMLElement> = HTMLElementCast::from_mut_ref(self);
+ Some(htmlelement as &mut VirtualMethods:)
}
fn after_set_attr(&mut self, name: DOMString, value: DOMString) {
@@ -227,7 +264,7 @@ impl VirtualMethods for JS<HTMLIFrameElement> {
_ => AllowNothing
} as u8;
}
- self.get_mut().sandbox = Some(modes);
+ self.deref_mut().sandbox = Some(modes);
}
}
@@ -238,7 +275,7 @@ impl VirtualMethods for JS<HTMLIFrameElement> {
}
if "sandbox" == name {
- self.get_mut().sandbox = None;
+ self.deref_mut().sandbox = None;
}
}
}