diff options
author | Simon Sapin <simon.sapin@exyr.org> | 2014-08-12 19:57:44 +0100 |
---|---|---|
committer | Simon Sapin <simon.sapin@exyr.org> | 2014-08-16 08:31:23 +0100 |
commit | 639a6c51bf5a6e3394c4fef8a2eb4fa2f4066b48 (patch) | |
tree | ae34b965d82e897333d207035759dc88291d33c6 /src/components/script/dom/node.rs | |
parent | 06efa195e8789ac714e7017859252a0e6c26bc74 (diff) | |
download | servo-639a6c51bf5a6e3394c4fef8a2eb4fa2f4066b48.tar.gz servo-639a6c51bf5a6e3394c4fef8a2eb4fa2f4066b48.zip |
Fix case sensitivity of local name selectors.
Diffstat (limited to 'src/components/script/dom/node.rs')
-rw-r--r-- | src/components/script/dom/node.rs | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/components/script/dom/node.rs b/src/components/script/dom/node.rs index d6076ab7b71..1b0869eb3f2 100644 --- a/src/components/script/dom/node.rs +++ b/src/components/script/dom/node.rs @@ -1997,29 +1997,32 @@ impl<'a> style::TNode<JSRef<'a, Element>> for JSRef<'a, Node> { fn parent_node(&self) -> Option<JSRef<'a, Node>> { (self as &NodeHelpers).parent_node().map(|node| *node.root()) } + fn prev_sibling(&self) -> Option<JSRef<'a, Node>> { (self as &NodeHelpers).prev_sibling().map(|node| *node.root()) } + fn next_sibling(&self) -> Option<JSRef<'a, Node>> { (self as &NodeHelpers).next_sibling().map(|node| *node.root()) } + fn is_document(&self) -> bool { (self as &NodeHelpers).is_document() } + fn is_element(&self) -> bool { (self as &NodeHelpers).is_element() } + fn as_element(&self) -> JSRef<'a, Element> { let elem: Option<&JSRef<'a, Element>> = ElementCast::to_ref(self); assert!(elem.is_some()); *elem.unwrap() } + fn match_attr(&self, attr: &style::AttrSelector, test: |&str| -> bool) -> bool { let name = { - let elem: Option<&JSRef<'a, Element>> = ElementCast::to_ref(self); - assert!(elem.is_some()); - let elem: &ElementHelpers = elem.unwrap() as &ElementHelpers; - if elem.html_element_in_html_document() { + if self.is_html_element_in_html_document() { attr.lower_name.as_slice() } else { attr.name.as_slice() @@ -2034,6 +2037,13 @@ impl<'a> style::TNode<JSRef<'a, Element>> for JSRef<'a, Node> { style::AnyNamespace => false, } } + + fn is_html_element_in_html_document(&self) -> bool { + let elem: Option<&JSRef<'a, Element>> = ElementCast::to_ref(self); + assert!(elem.is_some()); + let elem: &ElementHelpers = elem.unwrap() as &ElementHelpers; + elem.html_element_in_html_document() + } } pub trait DisabledStateHelpers { |