diff options
author | Josh Matthews <josh@joshmatthews.net> | 2013-11-30 21:04:49 +0100 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2014-02-24 15:16:42 -0500 |
commit | 625325434b5c7dc72e784a592f7e014c16cf1018 (patch) | |
tree | 9078f192cd7f41132a64124b7f70a3bb51e0936d /src/components/script/dom/domparser.rs | |
parent | 061269f9639199a7419e2467ebbe3c28cac1e8ff (diff) | |
download | servo-625325434b5c7dc72e784a592f7e014c16cf1018.tar.gz servo-625325434b5c7dc72e784a592f7e014c16cf1018.zip |
Implement JSManaged for DOM objects.
Diffstat (limited to 'src/components/script/dom/domparser.rs')
-rw-r--r-- | src/components/script/dom/domparser.rs | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/components/script/dom/domparser.rs b/src/components/script/dom/domparser.rs index 1dec0025e8a..3b545e0be62 100644 --- a/src/components/script/dom/domparser.rs +++ b/src/components/script/dom/domparser.rs @@ -4,46 +4,49 @@ use dom::bindings::codegen::DOMParserBinding; use dom::bindings::codegen::DOMParserBinding::SupportedTypeValues::{Text_html, Text_xml}; +use dom::bindings::codegen::InheritTypes::DocumentCast; +use dom::bindings::js::JS; use dom::bindings::utils::{Reflector, Reflectable, reflect_dom_object}; use dom::bindings::utils::Fallible; use dom::bindings::utils::FailureUnknown; -use dom::document::{AbstractDocument, Document}; +use dom::document::Document; use dom::htmldocument::HTMLDocument; use dom::window::Window; use servo_util::str::DOMString; +#[deriving(Encodable)] pub struct DOMParser { - owner: @mut Window, //XXXjdm Document instead? + owner: JS<Window>, //XXXjdm Document instead? reflector_: Reflector } impl DOMParser { - pub fn new_inherited(owner: @mut Window) -> DOMParser { + pub fn new_inherited(owner: JS<Window>) -> DOMParser { DOMParser { owner: owner, reflector_: Reflector::new() } } - pub fn new(owner: @mut Window) -> @mut DOMParser { - reflect_dom_object(@mut DOMParser::new_inherited(owner), owner, + pub fn new(owner: &JS<Window>) -> JS<DOMParser> { + reflect_dom_object(~DOMParser::new_inherited(owner.clone()), owner.get(), DOMParserBinding::Wrap) } - pub fn Constructor(owner: @mut Window) -> Fallible<@mut DOMParser> { + pub fn Constructor(owner: &JS<Window>) -> Fallible<JS<DOMParser>> { Ok(DOMParser::new(owner)) } pub fn ParseFromString(&self, _s: DOMString, ty: DOMParserBinding::SupportedType) - -> Fallible<AbstractDocument> { + -> Fallible<JS<Document>> { match ty { Text_html => { - Ok(HTMLDocument::new(self.owner, None)) + Ok(DocumentCast::from(&HTMLDocument::new(&self.owner, None))) } Text_xml => { - Document::Constructor(self.owner) + Document::Constructor(&self.owner) } _ => { Err(FailureUnknown) |