diff options
author | bors-servo <release+servo@mozilla.com> | 2013-07-30 13:30:24 -0700 |
---|---|---|
committer | bors-servo <release+servo@mozilla.com> | 2013-07-30 13:30:24 -0700 |
commit | 0c105b5307bb69e8d43a1c6263b09c1b8e52c355 (patch) | |
tree | f69dc2cc92dfdbd5db54c0f7c579b3f65ec43ff2 /src/components/script/dom/domparser.rs | |
parent | ad8fa8b3d75b58102f75848b90ab4721a7cfcfce (diff) | |
parent | 5546f2105bea0a3155a1090f3a9a8dfb65c7b47d (diff) | |
download | servo-0c105b5307bb69e8d43a1c6263b09c1b8e52c355.tar.gz servo-0c105b5307bb69e8d43a1c6263b09c1b8e52c355.zip |
auto merge of #641 : jdm/servo/htmldoc2, r=jdm
There are several mechanical changes here that make this look more intimidating than it is. DOMStrings are now passed by reference, and Event and Event_ have swapped names. Finally, there are the various places that need to use `document.with_base |doc| { document.foo }` instead of `document.foo`.
Diffstat (limited to 'src/components/script/dom/domparser.rs')
-rw-r--r-- | src/components/script/dom/domparser.rs | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/src/components/script/dom/domparser.rs b/src/components/script/dom/domparser.rs index 0b8ba1f0326..1e37b081909 100644 --- a/src/components/script/dom/domparser.rs +++ b/src/components/script/dom/domparser.rs @@ -3,9 +3,11 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::DOMParserBinding; +use dom::bindings::codegen::DOMParserBinding::SupportedTypeValues::{Text_html, Text_xml}; use dom::bindings::utils::{DOMString, ErrorResult, WrapperCache, CacheableWrapper}; -use dom::document::Document; +use dom::document::{AbstractDocument, Document, XML}; use dom::element::{Element, HTMLHtmlElement, HTMLHtmlElementTypeId}; +use dom::htmldocument::HTMLDocument; use dom::node::Node; use dom::window::Window; @@ -34,17 +36,29 @@ impl DOMParser { } pub fn ParseFromString(&self, - _s: DOMString, - _type: DOMParserBinding::SupportedType, + _s: &DOMString, + ty: DOMParserBinding::SupportedType, _rv: &mut ErrorResult) - -> @mut Document { + -> AbstractDocument { unsafe { let root = ~HTMLHtmlElement { parent: Element::new(HTMLHtmlElementTypeId, ~"html") }; let root = Node::as_abstract_node((*self.owner.page).js_info.get_ref().js_compartment.cx.ptr, root); - Document(root, None) + let cx = (*self.owner.page).js_info.get_ref().js_compartment.cx.ptr; + + match ty { + Text_html => { + HTMLDocument::new(root, None) + } + Text_xml => { + AbstractDocument::as_abstract(cx, @mut Document::new(root, None, XML)) + } + _ => { + fail!("unsupported document type") + } + } } } } |