aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/element.rs31
-rw-r--r--components/script/dom/htmlserializer.rs4
-rw-r--r--components/script/dom/node.rs2
3 files changed, 18 insertions, 19 deletions
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs
index 923a587d5bc..143f025fc72 100644
--- a/components/script/dom/element.rs
+++ b/components/script/dom/element.rs
@@ -242,6 +242,7 @@ pub trait ElementHelpers {
fn get_local_name<'a>(&'a self) -> &'a Atom;
fn get_namespace<'a>(&'a self) -> &'a Namespace;
fn summarize(&self) -> Vec<AttrInfo>;
+ fn is_void(&self) -> bool;
}
impl<'a> ElementHelpers for JSRef<'a, Element> {
@@ -269,6 +270,20 @@ impl<'a> ElementHelpers for JSRef<'a, Element> {
}
summarized
}
+
+ fn is_void(&self) -> bool {
+ if self.namespace != namespace::HTML {
+ return false
+ }
+ match self.local_name.as_slice() {
+ /* List of void elements from
+ http://www.whatwg.org/specs/web-apps/current-work/multipage/the-end.html#html-fragment-serialization-algorithm */
+ "area" | "base" | "basefont" | "bgsound" | "br" | "col" | "embed" |
+ "frame" | "hr" | "img" | "input" | "keygen" | "link" | "menuitem" |
+ "meta" | "param" | "source" | "track" | "wbr" => true,
+ _ => false
+ }
+ }
}
pub trait AttributeHandlers {
@@ -489,22 +504,6 @@ impl<'a> AttributeHandlers for JSRef<'a, Element> {
}
}
-impl Element {
- pub fn is_void(&self) -> bool {
- if self.namespace != namespace::HTML {
- return false
- }
- match self.local_name.as_slice() {
- /* List of void elements from
- http://www.whatwg.org/specs/web-apps/current-work/multipage/the-end.html#html-fragment-serialization-algorithm */
- "area" | "base" | "basefont" | "bgsound" | "br" | "col" | "embed" |
- "frame" | "hr" | "img" | "input" | "keygen" | "link" | "menuitem" |
- "meta" | "param" | "source" | "track" | "wbr" => true,
- _ => false
- }
- }
-}
-
impl<'a> ElementMethods for JSRef<'a, Element> {
// http://dom.spec.whatwg.org/#dom-element-namespaceuri
fn GetNamespaceURI(&self) -> Option<DOMString> {
diff --git a/components/script/dom/htmlserializer.rs b/components/script/dom/htmlserializer.rs
index d11871b89b9..19aa7e2f0dd 100644
--- a/components/script/dom/htmlserializer.rs
+++ b/components/script/dom/htmlserializer.rs
@@ -10,7 +10,7 @@ use dom::bindings::js::JSRef;
use dom::characterdata::CharacterData;
use dom::comment::Comment;
use dom::documenttype::DocumentType;
-use dom::element::Element;
+use dom::element::{Element, ElementHelpers};
use dom::node::{Node, NodeIterator};
use dom::node::{DoctypeNodeTypeId, DocumentFragmentNodeTypeId, CommentNodeTypeId};
use dom::node::{DocumentNodeTypeId, ElementNodeTypeId, ProcessingInstructionNodeTypeId};
@@ -131,7 +131,7 @@ fn serialize_elem(elem: JSRef<Element>, open_elements: &mut Vec<String>, html: &
_ => {}
}
- if !elem.deref().is_void() {
+ if !(elem.is_void()) {
open_elements.push(elem.deref().local_name.as_slice().to_string());
}
}
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs
index db8c7456b28..a95123d0bc7 100644
--- a/components/script/dom/node.rs
+++ b/components/script/dom/node.rs
@@ -929,7 +929,7 @@ impl NodeIterator {
fn next_child<'b>(&self, node: JSRef<'b, Node>) -> Option<JSRef<'b, Node>> {
if !self.include_descendants_of_void && node.is_element() {
let elem: JSRef<Element> = ElementCast::to_ref(node).unwrap();
- if elem.deref().is_void() {
+ if elem.is_void() {
None
} else {
node.first_child().map(|child| (*child.root()).clone())