From ffdc3f5b32a345b88eed774848924e862d47c093 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Fri, 28 Mar 2014 10:17:56 -0400 Subject: Turn on GC all the time. Fix rooting errors during parsing and storing timers. Fix borrow errors during tracing. --- src/components/script/dom/htmlobjectelement.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/components/script/dom/htmlobjectelement.rs') diff --git a/src/components/script/dom/htmlobjectelement.rs b/src/components/script/dom/htmlobjectelement.rs index e2c7d16c03d..f3f48cba313 100644 --- a/src/components/script/dom/htmlobjectelement.rs +++ b/src/components/script/dom/htmlobjectelement.rs @@ -5,7 +5,7 @@ use dom::bindings::codegen::BindingDeclarations::HTMLObjectElementBinding; use dom::bindings::codegen::InheritTypes::HTMLObjectElementDerived; use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast}; -use dom::bindings::js::JS; +use dom::bindings::js::{JS, JSRef, RootCollection}; use dom::bindings::error::ErrorResult; use dom::document::Document; use dom::element::{Element, HTMLObjectElementTypeId}; @@ -47,8 +47,8 @@ impl HTMLObjectElement { } } - pub fn new(localName: DOMString, document: &JS) -> JS { - let element = HTMLObjectElement::new_inherited(localName, document.clone()); + pub fn new(localName: DOMString, document: &JSRef) -> JS { + let element = HTMLObjectElement::new_inherited(localName, document.unrooted()); Node::reflect_node(~element, document, HTMLObjectElementBinding::Wrap) } } @@ -144,9 +144,11 @@ impl HTMLObjectElement { } pub fn Validity(&self) -> JS { + let roots = RootCollection::new(); let doc = self.htmlelement.element.node.owner_doc(); let doc = doc.get(); - ValidityState::new(&doc.window) + let window = doc.window.root(&roots); + ValidityState::new(&window.root_ref()) } pub fn ValidationMessage(&self) -> DOMString { -- cgit v1.2.3 From d7b96db33ca8f2b8a162df38e0f00e95f5ea6fa1 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Mon, 31 Mar 2014 18:41:28 -0400 Subject: Implement safe rooting strategy via Unrooted, Root, JSRef, and JS. --- src/components/script/dom/htmlobjectelement.rs | 37 +++++++++++++------------- 1 file changed, 19 insertions(+), 18 deletions(-) (limited to 'src/components/script/dom/htmlobjectelement.rs') diff --git a/src/components/script/dom/htmlobjectelement.rs b/src/components/script/dom/htmlobjectelement.rs index f3f48cba313..4814ac4b337 100644 --- a/src/components/script/dom/htmlobjectelement.rs +++ b/src/components/script/dom/htmlobjectelement.rs @@ -5,7 +5,7 @@ use dom::bindings::codegen::BindingDeclarations::HTMLObjectElementBinding; use dom::bindings::codegen::InheritTypes::HTMLObjectElementDerived; use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast}; -use dom::bindings::js::{JS, JSRef, RootCollection}; +use dom::bindings::js::{JS, JSRef, RootCollection, Unrooted}; use dom::bindings::error::ErrorResult; use dom::document::Document; use dom::element::{Element, HTMLObjectElementTypeId}; @@ -47,7 +47,7 @@ impl HTMLObjectElement { } } - pub fn new(localName: DOMString, document: &JSRef) -> JS { + pub fn new(localName: DOMString, document: &JSRef) -> Unrooted { let element = HTMLObjectElement::new_inherited(localName, document.unrooted()); Node::reflect_node(~element, document, HTMLObjectElementBinding::Wrap) } @@ -57,15 +57,16 @@ trait ProcessDataURL { fn process_data_url(&mut self, image_cache: ImageCacheTask, url: Option); } -impl ProcessDataURL for JS { +impl<'a> ProcessDataURL for JSRef<'a, HTMLObjectElement> { // Makes the local `data` member match the status of the `data` attribute and starts /// prefetching the image. This method must be called after `data` is changed. fn process_data_url(&mut self, image_cache: ImageCacheTask, url: Option) { - let elem: JS = ElementCast::from(self); + let roots = RootCollection::new(); + let elem: &JSRef = ElementCast::from_ref(self); // TODO: support other values - match (elem.get_attribute(Null, "type").map(|x| x.get().Value()), - elem.get_attribute(Null, "data").map(|x| x.get().Value())) { + match (elem.get_attribute(Null, "type").map(|x| x.root(&roots).Value()), + elem.get_attribute(Null, "data").map(|x| x.root(&roots).Value())) { (None, Some(uri)) => { if is_image_data(uri) { let data_url = parse_url(uri, url); @@ -111,7 +112,7 @@ impl HTMLObjectElement { Ok(()) } - pub fn GetForm(&self) -> Option> { + pub fn GetForm(&self) -> Option> { None } @@ -131,11 +132,11 @@ impl HTMLObjectElement { Ok(()) } - pub fn GetContentDocument(&self) -> Option> { + pub fn GetContentDocument(&self) -> Option> { None } - pub fn GetContentWindow(&self) -> Option> { + pub fn GetContentWindow(&self) -> Option> { None } @@ -143,11 +144,10 @@ impl HTMLObjectElement { false } - pub fn Validity(&self) -> JS { + pub fn Validity(&self) -> Unrooted { let roots = RootCollection::new(); - let doc = self.htmlelement.element.node.owner_doc(); - let doc = doc.get(); - let window = doc.window.root(&roots); + let doc = self.htmlelement.element.node.owner_doc().root(&roots); + let window = doc.deref().window.root(&roots); ValidityState::new(&window.root_ref()) } @@ -242,25 +242,26 @@ impl HTMLObjectElement { Ok(()) } - pub fn GetSVGDocument(&self) -> Option> { + pub fn GetSVGDocument(&self) -> Option> { None } } -impl VirtualMethods for JS { +impl<'a> VirtualMethods for JSRef<'a, HTMLObjectElement> { fn super_type(&self) -> Option<~VirtualMethods:> { - let htmlelement: JS = HTMLElementCast::from(self); - Some(~htmlelement as ~VirtualMethods:) + let htmlelement: &JSRef = HTMLElementCast::from_ref(self); + Some(~htmlelement.clone() as ~VirtualMethods:) } fn after_set_attr(&mut self, name: DOMString, value: DOMString) { + let roots = RootCollection::new(); match self.super_type() { Some(ref mut s) => s.after_set_attr(name.clone(), value), _ => (), } if "data" == name { - let window = window_from_node(self); + let window = window_from_node(self).root(&roots); let url = Some(window.get().get_url()); self.process_data_url(window.get().image_cache_task.clone(), url); } -- cgit v1.2.3 From 76783b029e5e10da7fd61ab356a8f80a1eaf32e0 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Thu, 10 Apr 2014 21:29:54 -0400 Subject: Move WebIDL methods to traits implemented by JSRef types. --- src/components/script/dom/htmlobjectelement.rs | 129 +++++++++++++++++-------- 1 file changed, 87 insertions(+), 42 deletions(-) (limited to 'src/components/script/dom/htmlobjectelement.rs') diff --git a/src/components/script/dom/htmlobjectelement.rs b/src/components/script/dom/htmlobjectelement.rs index 4814ac4b337..7fcc3c0a5da 100644 --- a/src/components/script/dom/htmlobjectelement.rs +++ b/src/components/script/dom/htmlobjectelement.rs @@ -2,6 +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::attr::AttrMethods; use dom::bindings::codegen::BindingDeclarations::HTMLObjectElementBinding; use dom::bindings::codegen::InheritTypes::HTMLObjectElementDerived; use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast}; @@ -79,170 +80,214 @@ impl<'a> ProcessDataURL for JSRef<'a, HTMLObjectElement> { } } -impl HTMLObjectElement { - pub fn Data(&self) -> DOMString { +pub trait HTMLObjectElementMethods { + fn Data(&self) -> DOMString; + fn SetData(&mut self, _data: DOMString) -> ErrorResult; + fn Type(&self) -> DOMString; + fn SetType(&mut self, _type: DOMString) -> ErrorResult; + fn Name(&self) -> DOMString; + fn SetName(&mut self, _name: DOMString) -> ErrorResult; + fn UseMap(&self) -> DOMString; + fn SetUseMap(&mut self, _use_map: DOMString) -> ErrorResult; + fn GetForm(&self) -> Option>; + 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>; + fn GetContentWindow(&self) -> Option>; + fn WillValidate(&self) -> bool; + fn Validity(&self) -> Unrooted; + fn ValidationMessage(&self) -> DOMString; + fn CheckValidity(&self) -> bool; + fn SetCustomValidity(&mut self, _error: DOMString); + fn Align(&self) -> DOMString; + fn SetAlign(&mut self, _align: DOMString) -> ErrorResult; + fn Archive(&self) -> DOMString; + fn SetArchive(&mut self, _archive: DOMString) -> ErrorResult; + fn Code(&self) -> DOMString; + fn SetCode(&mut self, _code: DOMString) -> ErrorResult; + fn Declare(&self) -> bool; + fn SetDeclare(&mut self, _declare: bool) -> ErrorResult; + fn Hspace(&self) -> u32; + fn SetHspace(&mut self, _hspace: u32) -> ErrorResult; + fn Standby(&self) -> DOMString; + fn SetStandby(&mut self, _standby: DOMString) -> ErrorResult; + fn Vspace(&self) -> u32; + fn SetVspace(&mut self, _vspace: u32) -> ErrorResult; + fn CodeBase(&self) -> DOMString; + fn SetCodeBase(&mut self, _codebase: DOMString) -> ErrorResult; + fn CodeType(&self) -> DOMString; + fn SetCodeType(&mut self, _codetype: DOMString) -> ErrorResult; + fn Border(&self) -> DOMString; + fn SetBorder(&mut self, _border: DOMString) -> ErrorResult; + fn GetSVGDocument(&self) -> Option>; +} + +impl<'a> HTMLObjectElementMethods for JSRef<'a, HTMLObjectElement> { + fn Data(&self) -> DOMString { ~"" } - pub fn SetData(&mut self, _data: DOMString) -> ErrorResult { + fn SetData(&mut self, _data: DOMString) -> ErrorResult { Ok(()) } - pub fn Type(&self) -> DOMString { + fn Type(&self) -> DOMString { ~"" } - pub fn SetType(&mut self, _type: DOMString) -> ErrorResult { + fn SetType(&mut self, _type: 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 UseMap(&self) -> DOMString { + fn UseMap(&self) -> DOMString { ~"" } - pub fn SetUseMap(&mut self, _use_map: DOMString) -> ErrorResult { + fn SetUseMap(&mut self, _use_map: DOMString) -> ErrorResult { Ok(()) } - pub fn GetForm(&self) -> Option> { + fn GetForm(&self) -> Option> { None } - 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> { + fn GetContentDocument(&self) -> Option> { None } - pub fn GetContentWindow(&self) -> Option> { + fn GetContentWindow(&self) -> Option> { None } - pub fn WillValidate(&self) -> bool { + fn WillValidate(&self) -> bool { false } - pub fn Validity(&self) -> Unrooted { + fn Validity(&self) -> Unrooted { let roots = RootCollection::new(); let doc = self.htmlelement.element.node.owner_doc().root(&roots); let window = doc.deref().window.root(&roots); ValidityState::new(&window.root_ref()) } - pub fn ValidationMessage(&self) -> DOMString { + fn ValidationMessage(&self) -> DOMString { ~"" } - pub fn CheckValidity(&self) -> bool { + fn CheckValidity(&self) -> bool { false } - pub fn SetCustomValidity(&mut self, _error: DOMString) { + fn SetCustomValidity(&mut self, _error: DOMString) { } - 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 Archive(&self) -> DOMString { + fn Archive(&self) -> DOMString { ~"" } - pub fn SetArchive(&mut self, _archive: DOMString) -> ErrorResult { + fn SetArchive(&mut self, _archive: DOMString) -> ErrorResult { Ok(()) } - pub fn Code(&self) -> DOMString { + fn Code(&self) -> DOMString { ~"" } - pub fn SetCode(&mut self, _code: DOMString) -> ErrorResult { + fn SetCode(&mut self, _code: DOMString) -> ErrorResult { Ok(()) } - pub fn Declare(&self) -> bool { + fn Declare(&self) -> bool { false } - pub fn SetDeclare(&mut self, _declare: bool) -> ErrorResult { + fn SetDeclare(&mut self, _declare: bool) -> ErrorResult { Ok(()) } - pub fn Hspace(&self) -> u32 { + fn Hspace(&self) -> u32 { 0 } - pub fn SetHspace(&mut self, _hspace: u32) -> ErrorResult { + fn SetHspace(&mut self, _hspace: u32) -> ErrorResult { Ok(()) } - pub fn Standby(&self) -> DOMString { + fn Standby(&self) -> DOMString { ~"" } - pub fn SetStandby(&mut self, _standby: DOMString) -> ErrorResult { + fn SetStandby(&mut self, _standby: DOMString) -> ErrorResult { Ok(()) } - pub fn Vspace(&self) -> u32 { + fn Vspace(&self) -> u32 { 0 } - pub fn SetVspace(&mut self, _vspace: u32) -> ErrorResult { + fn SetVspace(&mut self, _vspace: u32) -> ErrorResult { Ok(()) } - pub fn CodeBase(&self) -> DOMString { + fn CodeBase(&self) -> DOMString { ~"" } - pub fn SetCodeBase(&mut self, _codebase: DOMString) -> ErrorResult { + fn SetCodeBase(&mut self, _codebase: DOMString) -> ErrorResult { Ok(()) } - pub fn CodeType(&self) -> DOMString { + fn CodeType(&self) -> DOMString { ~"" } - pub fn SetCodeType(&mut self, _codetype: DOMString) -> ErrorResult { + fn SetCodeType(&mut self, _codetype: DOMString) -> ErrorResult { Ok(()) } - pub fn Border(&self) -> DOMString { + fn Border(&self) -> DOMString { ~"" } - pub fn SetBorder(&mut self, _border: DOMString) -> ErrorResult { + fn SetBorder(&mut self, _border: DOMString) -> ErrorResult { Ok(()) } - pub fn GetSVGDocument(&self) -> Option> { + fn GetSVGDocument(&self) -> Option> { None } } -- cgit v1.2.3 From 109410900c75721a77b970be3bdd830968e47151 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Fri, 11 Apr 2014 14:46:34 -0400 Subject: Move all methods on T to JSRef or JS as appropriate. --- src/components/script/dom/htmlobjectelement.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src/components/script/dom/htmlobjectelement.rs') diff --git a/src/components/script/dom/htmlobjectelement.rs b/src/components/script/dom/htmlobjectelement.rs index 7fcc3c0a5da..085bd492b11 100644 --- a/src/components/script/dom/htmlobjectelement.rs +++ b/src/components/script/dom/htmlobjectelement.rs @@ -191,9 +191,8 @@ impl<'a> HTMLObjectElementMethods for JSRef<'a, HTMLObjectElement> { fn Validity(&self) -> Unrooted { let roots = RootCollection::new(); - let doc = self.htmlelement.element.node.owner_doc().root(&roots); - let window = doc.deref().window.root(&roots); - ValidityState::new(&window.root_ref()) + let window = window_from_node(self).root(&roots); + ValidityState::new(&*window) } fn ValidationMessage(&self) -> DOMString { -- cgit v1.2.3 From 522d3f167b12fa79401eea5525c7b6133cae0f06 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Thu, 17 Apr 2014 17:08:00 -0400 Subject: s/Unrooted/Temporary/g --- src/components/script/dom/htmlobjectelement.rs | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'src/components/script/dom/htmlobjectelement.rs') diff --git a/src/components/script/dom/htmlobjectelement.rs b/src/components/script/dom/htmlobjectelement.rs index 085bd492b11..18f8acce6b2 100644 --- a/src/components/script/dom/htmlobjectelement.rs +++ b/src/components/script/dom/htmlobjectelement.rs @@ -6,7 +6,7 @@ use dom::attr::AttrMethods; use dom::bindings::codegen::BindingDeclarations::HTMLObjectElementBinding; use dom::bindings::codegen::InheritTypes::HTMLObjectElementDerived; use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast}; -use dom::bindings::js::{JS, JSRef, RootCollection, Unrooted}; +use dom::bindings::js::{JS, JSRef, RootCollection, Temporary}; use dom::bindings::error::ErrorResult; use dom::document::Document; use dom::element::{Element, HTMLObjectElementTypeId}; @@ -48,7 +48,7 @@ impl HTMLObjectElement { } } - pub fn new(localName: DOMString, document: &JSRef) -> Unrooted { + pub fn new(localName: DOMString, document: &JSRef) -> Temporary { let element = HTMLObjectElement::new_inherited(localName, document.unrooted()); Node::reflect_node(~element, document, HTMLObjectElementBinding::Wrap) } @@ -89,15 +89,15 @@ pub trait HTMLObjectElementMethods { fn SetName(&mut self, _name: DOMString) -> ErrorResult; fn UseMap(&self) -> DOMString; fn SetUseMap(&mut self, _use_map: DOMString) -> ErrorResult; - fn GetForm(&self) -> Option>; + fn GetForm(&self) -> Option>; 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>; - fn GetContentWindow(&self) -> Option>; + fn GetContentDocument(&self) -> Option>; + fn GetContentWindow(&self) -> Option>; fn WillValidate(&self) -> bool; - fn Validity(&self) -> Unrooted; + fn Validity(&self) -> Temporary; fn ValidationMessage(&self) -> DOMString; fn CheckValidity(&self) -> bool; fn SetCustomValidity(&mut self, _error: DOMString); @@ -121,7 +121,7 @@ pub trait HTMLObjectElementMethods { fn SetCodeType(&mut self, _codetype: DOMString) -> ErrorResult; fn Border(&self) -> DOMString; fn SetBorder(&mut self, _border: DOMString) -> ErrorResult; - fn GetSVGDocument(&self) -> Option>; + fn GetSVGDocument(&self) -> Option>; } impl<'a> HTMLObjectElementMethods for JSRef<'a, HTMLObjectElement> { @@ -157,7 +157,7 @@ impl<'a> HTMLObjectElementMethods for JSRef<'a, HTMLObjectElement> { Ok(()) } - fn GetForm(&self) -> Option> { + fn GetForm(&self) -> Option> { None } @@ -177,11 +177,11 @@ impl<'a> HTMLObjectElementMethods for JSRef<'a, HTMLObjectElement> { Ok(()) } - fn GetContentDocument(&self) -> Option> { + fn GetContentDocument(&self) -> Option> { None } - fn GetContentWindow(&self) -> Option> { + fn GetContentWindow(&self) -> Option> { None } @@ -189,7 +189,7 @@ impl<'a> HTMLObjectElementMethods for JSRef<'a, HTMLObjectElement> { false } - fn Validity(&self) -> Unrooted { + fn Validity(&self) -> Temporary { let roots = RootCollection::new(); let window = window_from_node(self).root(&roots); ValidityState::new(&*window) @@ -286,7 +286,7 @@ impl<'a> HTMLObjectElementMethods for JSRef<'a, HTMLObjectElement> { Ok(()) } - fn GetSVGDocument(&self) -> Option> { + fn GetSVGDocument(&self) -> Option> { None } } -- cgit v1.2.3 From 7b3e6d1f2125faf598919722b72cc56197d0102c Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Thu, 17 Apr 2014 23:26:42 -0400 Subject: Remove all root collections. --- src/components/script/dom/htmlobjectelement.rs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'src/components/script/dom/htmlobjectelement.rs') diff --git a/src/components/script/dom/htmlobjectelement.rs b/src/components/script/dom/htmlobjectelement.rs index 18f8acce6b2..c560486c565 100644 --- a/src/components/script/dom/htmlobjectelement.rs +++ b/src/components/script/dom/htmlobjectelement.rs @@ -6,7 +6,7 @@ use dom::attr::AttrMethods; use dom::bindings::codegen::BindingDeclarations::HTMLObjectElementBinding; use dom::bindings::codegen::InheritTypes::HTMLObjectElementDerived; use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast}; -use dom::bindings::js::{JS, JSRef, RootCollection, Temporary}; +use dom::bindings::js::{JS, JSRef, Temporary}; use dom::bindings::error::ErrorResult; use dom::document::Document; use dom::element::{Element, HTMLObjectElementTypeId}; @@ -62,12 +62,11 @@ impl<'a> ProcessDataURL for JSRef<'a, HTMLObjectElement> { // Makes the local `data` member match the status of the `data` attribute and starts /// prefetching the image. This method must be called after `data` is changed. fn process_data_url(&mut self, image_cache: ImageCacheTask, url: Option) { - let roots = RootCollection::new(); let elem: &JSRef = ElementCast::from_ref(self); // TODO: support other values - match (elem.get_attribute(Null, "type").map(|x| x.root(&roots).Value()), - elem.get_attribute(Null, "data").map(|x| x.root(&roots).Value())) { + match (elem.get_attribute(Null, "type").map(|x| x.root().Value()), + elem.get_attribute(Null, "data").map(|x| x.root().Value())) { (None, Some(uri)) => { if is_image_data(uri) { let data_url = parse_url(uri, url); @@ -190,8 +189,7 @@ impl<'a> HTMLObjectElementMethods for JSRef<'a, HTMLObjectElement> { } fn Validity(&self) -> Temporary { - let roots = RootCollection::new(); - let window = window_from_node(self).root(&roots); + let window = window_from_node(self).root(); ValidityState::new(&*window) } @@ -298,14 +296,13 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLObjectElement> { } fn after_set_attr(&mut self, name: DOMString, value: DOMString) { - let roots = RootCollection::new(); match self.super_type() { Some(ref mut s) => s.after_set_attr(name.clone(), value), _ => (), } if "data" == name { - let window = window_from_node(self).root(&roots); + let window = window_from_node(self).root(); let url = Some(window.get().get_url()); self.process_data_url(window.get().image_cache_task.clone(), url); } -- cgit v1.2.3 From 0f2d0b1dc3d98ef109627dda061c5a54ff06a91d Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Fri, 18 Apr 2014 00:12:52 -0400 Subject: Address review comments. --- src/components/script/dom/htmlobjectelement.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/components/script/dom/htmlobjectelement.rs') diff --git a/src/components/script/dom/htmlobjectelement.rs b/src/components/script/dom/htmlobjectelement.rs index c560486c565..473f12aefd7 100644 --- a/src/components/script/dom/htmlobjectelement.rs +++ b/src/components/script/dom/htmlobjectelement.rs @@ -6,7 +6,7 @@ use dom::attr::AttrMethods; use dom::bindings::codegen::BindingDeclarations::HTMLObjectElementBinding; use dom::bindings::codegen::InheritTypes::HTMLObjectElementDerived; use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast}; -use dom::bindings::js::{JS, JSRef, Temporary}; +use dom::bindings::js::{JSRef, Temporary}; use dom::bindings::error::ErrorResult; use dom::document::Document; use dom::element::{Element, HTMLObjectElementTypeId}; @@ -42,14 +42,14 @@ impl HTMLObjectElementDerived for EventTarget { } impl HTMLObjectElement { - pub fn new_inherited(localName: DOMString, document: JS) -> HTMLObjectElement { + pub fn new_inherited(localName: DOMString, document: &JSRef) -> HTMLObjectElement { HTMLObjectElement { htmlelement: HTMLElement::new_inherited(HTMLObjectElementTypeId, localName, document), } } pub fn new(localName: DOMString, document: &JSRef) -> Temporary { - let element = HTMLObjectElement::new_inherited(localName, document.unrooted()); + let element = HTMLObjectElement::new_inherited(localName, document); Node::reflect_node(~element, document, HTMLObjectElementBinding::Wrap) } } -- cgit v1.2.3 From 91278da9dd55582401154e07f9eea34425a332c2 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Thu, 24 Apr 2014 13:03:19 -0400 Subject: Address review comments. --- src/components/script/dom/htmlobjectelement.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/components/script/dom/htmlobjectelement.rs') diff --git a/src/components/script/dom/htmlobjectelement.rs b/src/components/script/dom/htmlobjectelement.rs index 473f12aefd7..c020765d431 100644 --- a/src/components/script/dom/htmlobjectelement.rs +++ b/src/components/script/dom/htmlobjectelement.rs @@ -290,9 +290,9 @@ impl<'a> HTMLObjectElementMethods for JSRef<'a, HTMLObjectElement> { } impl<'a> VirtualMethods for JSRef<'a, HTMLObjectElement> { - fn super_type(&self) -> Option<~VirtualMethods:> { - let htmlelement: &JSRef = HTMLElementCast::from_ref(self); - Some(~htmlelement.clone() as ~VirtualMethods:) + fn super_type<'a>(&'a mut self) -> Option<&'a mut VirtualMethods:> { + let htmlelement: &mut JSRef = HTMLElementCast::from_mut_ref(self); + Some(htmlelement as &mut VirtualMethods:) } fn after_set_attr(&mut self, name: DOMString, value: DOMString) { @@ -303,8 +303,8 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLObjectElement> { if "data" == name { let window = window_from_node(self).root(); - let url = Some(window.get().get_url()); - self.process_data_url(window.get().image_cache_task.clone(), url); + let url = Some(window.deref().get_url()); + self.process_data_url(window.deref().image_cache_task.clone(), url); } } } -- cgit v1.2.3