Tags: gptenv/html5ever-wasm
Tags
Compare prefix and local name when looking for duplicate attributes (s… …ervo#780) The duplicate check compared the raw attribute name we had just read against the local names of the attributes already on the tag. The stored ones have been through process_qname by then, so xml:lang is sitting there as prefix "xml" with local name "lang", and reading a plain lang right after it matched and got rejected as a duplicate. That is why it was order dependent. Writing lang first and xml:lang second was fine, because the raw name "xml:lang" never matches the local name "lang". Namespaces in XML section 6.3 says attributes are the same only when their expanded names are the same, and xml:lang and lang have different expanded names, so both orderings should parse cleanly. This also shows up on the WPT test table-align-float.xhtml, whose root element carries both. So process the name first and compare the prefix along with the local name. Real duplicates, including two attributes with the same prefix, are still reported. The tokenizer has no namespace bindings yet, they are resolved later in XmlTreeBuilder::bind_qname, so two different prefixes bound to the same namespace still slip through here. That is a separate thing and it needs to be handled in the tree builder. Fixes servo#775
Compare prefix and local name when looking for duplicate attributes (s… …ervo#780) The duplicate check compared the raw attribute name we had just read against the local names of the attributes already on the tag. The stored ones have been through process_qname by then, so xml:lang is sitting there as prefix "xml" with local name "lang", and reading a plain lang right after it matched and got rejected as a duplicate. That is why it was order dependent. Writing lang first and xml:lang second was fine, because the raw name "xml:lang" never matches the local name "lang". Namespaces in XML section 6.3 says attributes are the same only when their expanded names are the same, and xml:lang and lang have different expanded names, so both orderings should parse cleanly. This also shows up on the WPT test table-align-float.xhtml, whose root element carries both. So process the name first and compare the prefix along with the local name. Real duplicates, including two attributes with the same prefix, are still reported. The tokenizer has no namespace bindings yet, they are resolved later in XmlTreeBuilder::bind_qname, so two different prefixes bound to the same namespace still slip through here. That is a separate thing and it needs to be handled in the tree builder. Fixes servo#775
Compare prefix and local name when looking for duplicate attributes (s… …ervo#780) The duplicate check compared the raw attribute name we had just read against the local names of the attributes already on the tag. The stored ones have been through process_qname by then, so xml:lang is sitting there as prefix "xml" with local name "lang", and reading a plain lang right after it matched and got rejected as a duplicate. That is why it was order dependent. Writing lang first and xml:lang second was fine, because the raw name "xml:lang" never matches the local name "lang". Namespaces in XML section 6.3 says attributes are the same only when their expanded names are the same, and xml:lang and lang have different expanded names, so both orderings should parse cleanly. This also shows up on the WPT test table-align-float.xhtml, whose root element carries both. So process the name first and compare the prefix along with the local name. Real duplicates, including two attributes with the same prefix, are still reported. The tokenizer has no namespace bindings yet, they are resolved later in XmlTreeBuilder::bind_qname, so two different prefixes bound to the same namespace still slip through here. That is a separate thing and it needs to be handled in the tree builder. Fixes servo#775
Compare prefix and local name when looking for duplicate attributes (s… …ervo#780) The duplicate check compared the raw attribute name we had just read against the local names of the attributes already on the tag. The stored ones have been through process_qname by then, so xml:lang is sitting there as prefix "xml" with local name "lang", and reading a plain lang right after it matched and got rejected as a duplicate. That is why it was order dependent. Writing lang first and xml:lang second was fine, because the raw name "xml:lang" never matches the local name "lang". Namespaces in XML section 6.3 says attributes are the same only when their expanded names are the same, and xml:lang and lang have different expanded names, so both orderings should parse cleanly. This also shows up on the WPT test table-align-float.xhtml, whose root element carries both. So process the name first and compare the prefix along with the local name. Real duplicates, including two attributes with the same prefix, are still reported. The tokenizer has no namespace bindings yet, they are resolved later in XmlTreeBuilder::bind_qname, so two different prefixes bound to the same namespace still slip through here. That is a separate thing and it needs to be handled in the tree builder. Fixes servo#775
Add shadowrootslotassignment atom (servo#736) Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
Simplify version management (servo#637) Signed-off-by: Nico Burns <nico@nicoburns.com>
PreviousNext