diff --git a/dom.bs b/dom.bs index 491e2691..0e247100 100644 --- a/dom.bs +++ b/dom.bs @@ -54,9 +54,11 @@ spec:html; type:element
This specification depends on the Infra Standard. [[!INFRA]]
Some of the terms used in this specification are defined in Encoding, -Selectors, Web IDL, XML, and Namespaces in XML. +Selectors, Trusted Types, Web IDL, XML, and +Namespaces in XML. [[!ENCODING]] [[!SELECTORS4]] +[[!TRUSTED-TYPES]] [[!WEBIDL]] [[!XML]] [[!XML-NAMES]] @@ -6520,8 +6522,8 @@ interface Element : Node { sequence<DOMString> getAttributeNames(); DOMString? getAttribute(DOMString qualifiedName); DOMString? getAttributeNS(DOMString? namespace, DOMString localName); - [CEReactions] undefined setAttribute(DOMString qualifiedName, DOMString value); - [CEReactions] undefined setAttributeNS(DOMString? namespace, DOMString qualifiedName, DOMString value); + [CEReactions] undefined setAttribute(DOMString qualifiedName, (TrustedType or DOMString) value); + [CEReactions] undefined setAttributeNS(DOMString? namespace, DOMString qualifiedName, (TrustedType or DOMString) value); [CEReactions] undefined removeAttribute(DOMString qualifiedName); [CEReactions] undefined removeAttributeNS(DOMString? namespace, DOMString localName); [CEReactions] boolean toggleAttribute(DOMString qualifiedName, optional boolean force); @@ -6998,6 +7000,11 @@ string namespace (default null):
attribute attr and an element element:Let verifiedValue be the result of calling get + Trusted Types-compliant attribute value with attr's local name, + attr's namespace, element, and attr's + value. [[!TRUSTED-TYPES]] +
If attr's element is neither null nor element, throw an "{{InUseAttributeError!!exception}}" {{DOMException}}. @@ -7008,6 +7015,8 @@ string namespace (default null):
If oldAttr is attr, return attr. +
Set attr's value to verifiedValue. +
If oldAttr is non-null, then replace oldAttr with attr. @@ -7291,17 +7300,21 @@ method steps are: HTML document, then set qualifiedName to qualifiedName in ASCII lowercase. +
Let verifiedValue be the result of calling get + Trusted Types-compliant attribute value with qualifiedName, null, this, and + value. [[!TRUSTED-TYPES]] +
Let attribute be the first attribute in this's attribute list whose qualified name is qualifiedName, and null otherwise. -
If attribute is null, create an attribute whose local name is qualifiedName, value is - value, and node document is this's node document, - then append this attribute to this, and then return. + verifiedValue, and node document is this's + node document, then append this attribute + to this, and then return. -
Change attribute to value. +
Change attribute to verifiedValue.
The @@ -7312,8 +7325,12 @@ method steps are:
Let namespace, prefix, and localName be the result of passing namespace and qualifiedName to validate and extract. -
Set an attribute value for this using localName, value, - and also prefix and namespace. +
Let verifiedValue be the result of calling get + Trusted Types-compliant attribute value with localName, namespace, + element, and value. [[!TRUSTED-TYPES]] + +
Set an attribute value for this using localName, + verifiedValue, and also prefix and namespace.
The @@ -7891,7 +7908,25 @@ string value, run these steps:
If attribute's element is null, then set attribute's value to value. -
Otherwise, change attribute to value. +
Otherwise: + +
Let originalElement be attribute's element. + +
Let verifiedValue be the result of calling get + Trusted Types-compliant attribute value with attribute's + local name, attribute's namespace, this, + and value. [[!TRUSTED-TYPES]] + +
If attribute's element is null, then set attribute's + value to verifiedValue, and return. + +
If attribute's element is not originalElement, then + return. + +
Change attribute to verifiedValue. +
The {{Attr/value}} setter steps are to set an existing attribute value with this