aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <release+servo@mozilla.com>2013-10-24 14:27:52 -0700
committerbors-servo <release+servo@mozilla.com>2013-10-24 14:27:52 -0700
commitbce52855069bd8225aa495d73a7be9ee22a13d6a (patch)
treea7fe18065cc1e5e4ff63290f4aa78f5df6db392d
parent13644ccab1942c053c3fd5e4a19bb75d9ebe8739 (diff)
parent4c69d748bda8ce4a8a464b7e1108e365b6dd748e (diff)
downloadservo-bce52855069bd8225aa495d73a7be9ee22a13d6a.tar.gz
servo-bce52855069bd8225aa495d73a7be9ee22a13d6a.zip
auto merge of #1127 : Ms2ger/servo/DOMParser, r=metajack
-rw-r--r--src/components/script/dom/bindings/domparser.rs27
-rw-r--r--src/components/script/dom/domparser.rs36
-rw-r--r--src/components/script/script.rc1
3 files changed, 27 insertions, 37 deletions
diff --git a/src/components/script/dom/bindings/domparser.rs b/src/components/script/dom/bindings/domparser.rs
deleted file mode 100644
index 0d2af282e01..00000000000
--- a/src/components/script/dom/bindings/domparser.rs
+++ /dev/null
@@ -1,27 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * 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::codegen::DOMParserBinding;
-use dom::bindings::utils::{Reflectable, Reflector};
-use dom::domparser::DOMParser;
-
-use js::jsapi::{JSContext, JSObject};
-
-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 {
- DOMParserBinding::Wrap(cx, scope, self)
- }
-
- fn GetParentObject(&self, _cx: *JSContext) -> Option<@mut Reflectable> {
- Some(self.owner as @mut Reflectable)
- }
-}
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)
+ }
+}
diff --git a/src/components/script/script.rc b/src/components/script/script.rc
index acd023c6175..cf376f08fcd 100644
--- a/src/components/script/script.rc
+++ b/src/components/script/script.rc
@@ -30,7 +30,6 @@ pub mod dom {
pub mod utils;
pub mod conversions;
pub mod proxyhandler;
- pub mod domparser;
pub mod codegen {
pub use self::BindingDeclarations::*;
pub mod InterfaceTypes;