diff options
author | bors-servo <release+servo@mozilla.com> | 2013-10-24 14:27:52 -0700 |
---|---|---|
committer | bors-servo <release+servo@mozilla.com> | 2013-10-24 14:27:52 -0700 |
commit | bce52855069bd8225aa495d73a7be9ee22a13d6a (patch) | |
tree | a7fe18065cc1e5e4ff63290f4aa78f5df6db392d /src/components/script/dom/domparser.rs | |
parent | 13644ccab1942c053c3fd5e4a19bb75d9ebe8739 (diff) | |
parent | 4c69d748bda8ce4a8a464b7e1108e365b6dd748e (diff) | |
download | servo-bce52855069bd8225aa495d73a7be9ee22a13d6a.tar.gz servo-bce52855069bd8225aa495d73a7be9ee22a13d6a.zip |
auto merge of #1127 : Ms2ger/servo/DOMParser, r=metajack
Diffstat (limited to 'src/components/script/dom/domparser.rs')
-rw-r--r-- | src/components/script/dom/domparser.rs | 36 |
1 files changed, 27 insertions, 9 deletions
diff --git a/src/components/script/dom/domparser.rs b/src/components/script/dom/domparser.rs index a29cdfb32ff..ea9666c7c1d 100644 --- a/src/components/script/dom/domparser.rs +++ b/src/components/script/dom/domparser.rs @@ -4,28 +4,29 @@ use dom::bindings::codegen::DOMParserBinding; use dom::bindings::codegen::DOMParserBinding::SupportedTypeValues::{Text_html, Text_xml}; -use dom::bindings::utils::{DOMString, Fallible, Reflector, Reflectable, FailureUnknown}; +use dom::bindings::utils::{DOMString, Fallible, Reflector, Reflectable, FailureUnknown, reflect_dom_object}; use dom::document::{AbstractDocument, Document, XML}; use dom::htmldocument::HTMLDocument; use dom::window::Window; +use js::jsapi::{JSContext, JSObject}; + pub struct DOMParser { owner: @mut Window, //XXXjdm Document instead? reflector_: Reflector } impl DOMParser { - pub fn new(owner: @mut Window) -> @mut DOMParser { - let parser = @mut DOMParser { + pub fn new_inherited(owner: @mut Window) -> DOMParser { + DOMParser { owner: owner, reflector_: Reflector::new() - }; + } + } - // TODO(tkuehn): This just handles the top-level page. Need to handle subframes. - let cx = owner.get_cx(); - let scope = owner.reflector().get_jsobject(); - parser.wrap_object_shared(cx, scope); - parser + pub fn new(owner: @mut Window) -> @mut DOMParser { + reflect_dom_object(@mut DOMParser::new_inherited(owner), owner, + DOMParserBinding::Wrap) } pub fn Constructor(owner: @mut Window) -> Fallible<@mut DOMParser> { @@ -51,3 +52,20 @@ impl DOMParser { } } +impl Reflectable for DOMParser { + fn reflector<'a>(&'a self) -> &'a Reflector { + &self.reflector_ + } + + fn mut_reflector<'a>(&'a mut self) -> &'a mut Reflector { + &mut self.reflector_ + } + + fn wrap_object_shared(@mut self, _cx: *JSContext, _scope: *JSObject) -> *JSObject { + unreachable!(); + } + + fn GetParentObject(&self, _cx: *JSContext) -> Option<@mut Reflectable> { + Some(self.owner as @mut Reflectable) + } +} |