aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/element.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/element.rs')
-rw-r--r--components/script/dom/element.rs14
1 files changed, 8 insertions, 6 deletions
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs
index e0d0b79f640..b30e7006160 100644
--- a/components/script/dom/element.rs
+++ b/components/script/dom/element.rs
@@ -561,7 +561,7 @@ pub trait ElementHelpers<'a> {
fn get_important_inline_style_declaration(self, property: &Atom) -> Option<PropertyDeclaration>;
fn serialize(self, traversal_scope: TraversalScope) -> Fallible<DOMString>;
fn get_root_element(self) -> Temporary<Element>;
- fn lookup_prefix(self, namespace: Option<DOMString>) -> Option<DOMString>;
+ fn lookup_prefix(self, namespace: Namespace) -> Option<DOMString>;
}
impl<'a> ElementHelpers<'a> for JSRef<'a, Element> {
@@ -722,21 +722,23 @@ impl<'a> ElementHelpers<'a> for JSRef<'a, Element> {
}
// https://dom.spec.whatwg.org/#locate-a-namespace-prefix
- fn lookup_prefix(self, namespace: Option<DOMString>) -> Option<DOMString> {
+ fn lookup_prefix(self, namespace: Namespace) -> Option<DOMString> {
for node in NodeCast::from_ref(self).inclusive_ancestors() {
match ElementCast::to_ref(node.root().r()) {
Some(element) => {
// Step 1.
- if element.GetNamespaceURI() == namespace && element.GetPrefix().is_some() {
- return element.GetPrefix();
+ if *element.namespace() == namespace {
+ if let Some(prefix) = element.GetPrefix() {
+ return Some(prefix);
+ }
}
// Step 2.
let attrs = element.Attributes().root();
for i in 0..attrs.r().Length() {
let attr = attrs.r().Item(i).unwrap().root();
- if attr.r().GetPrefix() == Some("xmlns".to_owned()) &&
- Some(attr.r().Value()) == namespace {
+ if *attr.r().prefix() == Some(atom!("xmlns")) &&
+ **attr.r().value() == *namespace.0 {
return Some(attr.r().LocalName());
}
}