diff options
author | Simon Wülker <simon.wuelker@arcor.de> | 2025-02-19 05:34:42 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-19 04:34:42 +0000 |
commit | 29e0fad21ec561b1778e8d973c4e800702f1b38b (patch) | |
tree | e7b44428d785374bc91388449080bc2b8b5c5efa /components/script/dom/element.rs | |
parent | b57eba29196f16f5fb4460532b64471790d249e8 (diff) | |
download | servo-29e0fad21ec561b1778e8d973c4e800702f1b38b.tar.gz servo-29e0fad21ec561b1778e8d973c4e800702f1b38b.zip |
Ensure that qualified-name segments start with a valid start character (#35530)
* Add spec comments to various methods
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Ensure that qualified-name segments start with a valid start character
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Update WPT expectations
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
---------
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
Diffstat (limited to 'components/script/dom/element.rs')
-rw-r--r-- | components/script/dom/element.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index 9783b65b9ce..c9e4318e263 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -88,9 +88,8 @@ use crate::dom::bindings::refcounted::{Trusted, TrustedPromise}; use crate::dom::bindings::reflector::DomObject; use crate::dom::bindings::root::{Dom, DomRoot, LayoutDom, MutNullableDom}; use crate::dom::bindings::str::{DOMString, USVString}; -use crate::dom::bindings::xmlname::XMLName::Invalid; use crate::dom::bindings::xmlname::{ - namespace_from_domstring, validate_and_extract, xml_name_type, + matches_name_production, namespace_from_domstring, validate_and_extract, }; use crate::dom::characterdata::CharacterData; use crate::dom::create::create_element; @@ -1658,7 +1657,7 @@ impl Element { can_gc: CanGc, ) -> ErrorResult { // Step 1. - if let Invalid = xml_name_type(&name) { + if !matches_name_production(&name) { return Err(Error::InvalidCharacter); } @@ -2309,7 +2308,7 @@ impl ElementMethods<crate::DomTypeHolder> for Element { can_gc: CanGc, ) -> Fallible<bool> { // Step 1. - if xml_name_type(&name) == Invalid { + if !matches_name_production(&name) { return Err(Error::InvalidCharacter); } @@ -2349,10 +2348,11 @@ impl ElementMethods<crate::DomTypeHolder> for Element { } } - // https://dom.spec.whatwg.org/#dom-element-setattribute + /// <https://dom.spec.whatwg.org/#dom-element-setattribute> fn SetAttribute(&self, name: DOMString, value: DOMString, can_gc: CanGc) -> ErrorResult { - // Step 1. - if xml_name_type(&name) == Invalid { + // Step 1. If qualifiedName does not match the Name production in XML, + // then throw an "InvalidCharacterError" DOMException. + if !matches_name_production(&name) { return Err(Error::InvalidCharacter); } |