diff options
Diffstat (limited to 'components/script/dom/element.rs')
-rw-r--r-- | components/script/dom/element.rs | 14 |
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()); } } |