aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/components/script/dom/documenttype.rs29
-rw-r--r--src/components/script/html/hubbub_html_parser.rs12
2 files changed, 28 insertions, 13 deletions
diff --git a/src/components/script/dom/documenttype.rs b/src/components/script/dom/documenttype.rs
index 97d339f797e..463ddcfa239 100644
--- a/src/components/script/dom/documenttype.rs
+++ b/src/components/script/dom/documenttype.rs
@@ -2,9 +2,10 @@
* 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::DocumentTypeBinding;
use dom::bindings::utils::DOMString;
use dom::document::AbstractDocument;
-use dom::node::{ScriptView, Node, DoctypeNodeTypeId};
+use dom::node::{AbstractNode, ScriptView, Node, DoctypeNodeTypeId};
/// The `DOCTYPE` tag.
pub struct DocumentType {
@@ -16,12 +17,11 @@ pub struct DocumentType {
}
impl DocumentType {
- /// Creates a new `DOCTYPE` tag.
- pub fn new(name: ~str,
- public_id: Option<~str>,
- system_id: Option<~str>,
- force_quirks: bool,
- document: AbstractDocument)
+ pub fn new_inherited(name: ~str,
+ public_id: Option<~str>,
+ system_id: Option<~str>,
+ force_quirks: bool,
+ document: AbstractDocument)
-> DocumentType {
DocumentType {
node: Node::new(DoctypeNodeTypeId, document),
@@ -32,6 +32,21 @@ impl DocumentType {
}
}
+ pub fn new(name: ~str,
+ public_id: Option<~str>,
+ system_id: Option<~str>,
+ force_quirks: bool,
+ document: AbstractDocument) -> AbstractNode<ScriptView> {
+ let documenttype = DocumentType::new_inherited(name,
+ public_id,
+ system_id,
+ force_quirks,
+ document);
+ Node::reflect_node(@mut documenttype, document, DocumentTypeBinding::Wrap)
+ }
+}
+
+impl DocumentType {
pub fn Name(&self) -> DOMString {
Some(self.name.clone())
}
diff --git a/src/components/script/html/hubbub_html_parser.rs b/src/components/script/html/hubbub_html_parser.rs
index f1622d8215e..d9813d502f4 100644
--- a/src/components/script/html/hubbub_html_parser.rs
+++ b/src/components/script/html/hubbub_html_parser.rs
@@ -325,13 +325,13 @@ pub fn parse_html(cx: *JSContext,
public_id: public_id,
system_id: system_id,
force_quirks: force_quirks } = doctype;
- let node = @DocumentType::new(name,
- public_id,
- system_id,
- force_quirks,
- document);
+ let node = DocumentType::new(name,
+ public_id,
+ system_id,
+ force_quirks,
+ document);
unsafe {
- Node::as_abstract_node(cx, node).to_hubbub_node()
+ node.to_hubbub_node()
}
},
create_element: |tag: ~hubbub::Tag| {