aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/node.rs
diff options
context:
space:
mode:
authorSimon Sapin <simon.sapin@exyr.org>2014-08-12 19:57:44 +0100
committerSimon Sapin <simon.sapin@exyr.org>2014-08-16 08:31:23 +0100
commit639a6c51bf5a6e3394c4fef8a2eb4fa2f4066b48 (patch)
treeae34b965d82e897333d207035759dc88291d33c6 /src/components/script/dom/node.rs
parent06efa195e8789ac714e7017859252a0e6c26bc74 (diff)
downloadservo-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.rs18
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 {