Skip to content

Commit 67c0b7c

Browse files
kotolukewarlow
authored andcommitted
Draft integration with Trusted Types, take 2.
See w3c/trusted-types#418 and whatwg#789. Supercedes PR whatwg#809.
1 parent cbf4c0d commit 67c0b7c

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

dom.bs

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6213,8 +6213,8 @@ interface Element : Node {
62136213
sequence<DOMString> getAttributeNames();
62146214
DOMString? getAttribute(DOMString qualifiedName);
62156215
DOMString? getAttributeNS(DOMString? namespace, DOMString localName);
6216-
[CEReactions] undefined setAttribute(DOMString qualifiedName, DOMString value);
6217-
[CEReactions] undefined setAttributeNS(DOMString? namespace, DOMString qualifiedName, DOMString value);
6216+
[CEReactions] undefined setAttribute(DOMString qualifiedName, (TrustedType or DOMString) value);
6217+
[CEReactions] undefined setAttributeNS(DOMString? namespace, DOMString qualifiedName, (TrustedType or DOMString) value);
62186218
[CEReactions] undefined removeAttribute(DOMString qualifiedName);
62196219
[CEReactions] undefined removeAttributeNS(DOMString? namespace, DOMString localName);
62206220
[CEReactions] boolean toggleAttribute(DOMString qualifiedName, optional boolean force);
@@ -6535,6 +6535,10 @@ null), and boolean <var>synchronousCustomElements</var> (default false):
65356535
<a>attribute</a> <var>attribute</var> to <var>value</var>, run these steps:
65366536

65376537
<ol>
6538+
<li><p>Set <var>value</var> to the result of calling <a>Get Trusted Types-compliant attribute
6539+
value</a> for <var>attribute</var>, with <var>attribute</var>'s <a for=Attr>element</a> and
6540+
<var>value</var>. [[!TRUSTED-TYPES]]
6541+
65386542
<li><p>Let <var>oldValue</var> be <var>attribute</var>'s <a for=Attr>value</a>.</p></li>
65396543

65406544
<li><p>Set <var>attribute</var>'s <a for=Attr>value</a> to <var>value</var>.
@@ -6548,6 +6552,11 @@ null), and boolean <var>synchronousCustomElements</var> (default false):
65486552
steps:
65496553

65506554
<ol>
6555+
<li><p>Set <var>attribute</var>'s
6556+
<a for=Attr>value</a> to the result of calling <a>Get Trusted Types-compliant attribute value</a>
6557+
for <var>attribute</var>, with <var>element</var> and <var>attribute</var>'s <a for=Attr>value</a>.
6558+
[[!TRUSTED-TYPES]]
6559+
65516560
<li><p><a for=list>Append</a> <var>attribute</var> to <var>element</var>'s
65526561
<a for=Element>attribute list</a>.
65536562

@@ -6576,6 +6585,11 @@ steps:
65766585
<a>attribute</a> <var>oldAttr</var> with an <a>attribute</a> <var>newAttr</var>, run these steps:
65776586

65786587
<ol>
6588+
<li><p>Set <var>newAttr</var>'s
6589+
<a for=Attr>value</a> to the result of calling <a>Get Trusted Types-compliant attribute value</a>
6590+
for <var>newAttr</var>, with <var>oldAttr</var>'s <a for=Attr>element</a> and <var>newAttr</var>'s
6591+
<a for=Attr>value</a>.[[!TRUSTED-TYPES]]
6592+
65796593
<li><p><a for=list>Replace</a> <var>oldAttr</var> by <var>newAttr</var> in <var>oldAttr</var>'s
65806594
<a for=Attr>element</a>'s <a for=Element>attribute list</a>.
65816595

@@ -6662,7 +6676,7 @@ string <var>namespace</var> (default null):</p>
66626676

66636677
<div algorithm>
66646678
<p>To <dfn export id=concept-element-attributes-set-value>set an attribute value</dfn> given an
6665-
<a for=/>element</a> <var>element</var>, a string <var>localName</var>, a string <var>value</var>,
6679+
<a for=/>element</a> <var>element</var>, a string <var>localName</var>, a string or <a>TrustedType</a> <var>value</var>,
66666680
an optional null or string <var>prefix</var> (default null), and an optional null or string
66676681
<var>namespace</var> (default null):
66686682

@@ -6673,7 +6687,7 @@ an optional null or string <var>prefix</var> (default null), and an optional nul
66736687

66746688
<li>If <var>attribute</var> is null, create an <a>attribute</a> whose <a for=Attr>namespace</a> is
66756689
<var>namespace</var>, <a for=Attr>namespace prefix</a> is <var>prefix</var>,
6676-
<a for=Attr>local name</a> is <var>localName</var>, <a for=Attr>value</a> is <var>value</var>, and
6690+
<a for=Attr>local name</a> is <var>localName</var>, <a for=Attr>value</a> is stringified <var>value</var>, and
66776691
<a for=Node>node document</a> is <var>element</var>'s <a for=Node>node document</a>, then
66786692
<a lt="append an attribute">append</a> this <a>attribute</a> to <var>element</var>, and then
66796693
return.
@@ -6941,7 +6955,7 @@ method steps are:
69416955

69426956
<li><p>If <var>attribute</var> is null, create an <a>attribute</a> whose
69436957
<a for=Attr>local name</a> is <var>qualifiedName</var>, <a for=Attr>value</a> is
6944-
<var>value</var>, and <a for=Node>node document</a> is <a>this</a>'s <a for=Node>node document</a>,
6958+
stringified <var>value</var>, and <a for=Node>node document</a> is <a>this</a>'s <a for=Node>node document</a>,
69456959
then <a lt="append an attribute">append</a> this <a>attribute</a> to <a>this</a>, and then return.
69466960

69476961
<li><p><a lt="change an attribute">Change</a> <var>attribute</var> to <var>value</var>.

0 commit comments

Comments
 (0)