Skip to content

Commit

Permalink
xml_name_type() should report namespace error if name ends with colon
Browse files Browse the repository at this point in the history
This means that either there is a non-qualified name colon, or no local name. The WPT tests expect
a NAMESPACE_ERR to be thrown, so this blocks servo#2185 to some degree
  • Loading branch information
caitp committed Apr 27, 2014
1 parent 4942cc7 commit 7080100
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions src/components/script/dom/bindings/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -704,6 +704,7 @@ pub fn xml_name_type(name: &str) -> XMLName {
let mut iter = name.chars();
let mut non_qname_colons = false;
let mut seen_colon = false;
let mut was_colon = false;
match iter.next() {
None => return InvalidXMLName,
Some(c) => {
Expand All @@ -721,13 +722,20 @@ pub fn xml_name_type(name: &str) -> XMLName {
return InvalidXMLName;
}
if c == ':' {
was_colon = true;
match seen_colon {
true => non_qname_colons = true,
false => seen_colon = true
}
} else {
was_colon = false;
}
}

if was_colon {
return Name;
}

match non_qname_colons {
false => QName,
true => Name
Expand Down

0 comments on commit 7080100

Please sign in to comment.