@@ -116904,7 +116904,7 @@ document.body.appendChild(frame)</code></pre>
116904116904
116905116905 <h3 id="dom-parsing-and-serialization">DOM parsing and serialization APIs</h3>
116906116906
116907- <pre><code class="idl">partial interface <span id="Element-partial" >Element</span> {
116907+ <pre><code class="idl">partial interface <span>Element</span> {
116908116908 [<span>CEReactions</span>] undefined <span data-x="dom-Element-setHTMLUnsafe">setHTMLUnsafe</span>((<code data-x="tt-trustedhtml">TrustedHTML</code> or DOMString) html);
116909116909 DOMString <span data-x="dom-Element-getHTML">getHTML</span>(optional <span>GetHTMLOptions</span> options = {});
116910116910
@@ -116913,7 +116913,7 @@ document.body.appendChild(frame)</code></pre>
116913116913 [<span>CEReactions</span>] undefined <span data-x="dom-Element-insertAdjacentHTML">insertAdjacentHTML</span>(DOMString position, (<code data-x="tt-trustedhtml">TrustedHTML</code> or DOMString) string);
116914116914};
116915116915
116916- partial interface <span id="ShadowRoot-partial" >ShadowRoot</span> {
116916+ partial interface <span>ShadowRoot</span> {
116917116917 [<span>CEReactions</span>] undefined <span data-x="dom-ShadowRoot-setHTMLUnsafe">setHTMLUnsafe</span>((<code data-x="tt-trustedhtml">TrustedHTML</code> or DOMString) html);
116918116918 DOMString <span data-x="dom-ShadowRoot-getHTML">getHTML</span>(optional <span>GetHTMLOptions</span> options = {});
116919116919
@@ -117741,6 +117741,81 @@ interface <dfn interface>XMLSerializer</dfn> {
117741117741
117742117742 </div>
117743117743
117744+ <h3 split-filename="patching" id="patching">Patching</h3>
117745+
117746+ <p>TODO: introduction, what's all this?</p>
117747+
117748+ <pre><code class="idl">partial interface <span>Element</span> {
117749+ WritableStream <span data-x="dom-Element-patchUnsafe">patchUnsafe</span>(optional PatchUnsafeOptions options = {});
117750+ };
117751+
117752+ partial interface <span>ShadowRoot</span> {
117753+ WritableStream <span data-x="dom-ShadowRoot-patchUnsafe">patchUnsafe</span>(optional PatchUnsafeOptions options = {});
117754+ };
117755+
117756+ dictionary <dfn dictionary>PatchUnsafeOptions</dfn> {
117757+ TrustedTransformStream <dfn dict-member for="PatchUnsafeOptions" data-x="dom-PatchUnsafeOptions-trustedTransformStream">trustedTransformStream</dfn>;
117758+ };</code></pre>
117759+
117760+ <div w-nodev>
117761+
117762+ <p><code>Element</code>'s <dfn method for="Element"><code
117763+ data-x="dom-Element-patchUnsafe">patchUnsafe(<var>options</var>)</code></dfn> method steps
117764+ are:</p>
117765+
117766+ <ol>
117767+ <li><p>Let <var>writable</var> be a new WritableStream.</p></li>
117768+
117769+ <li>
117770+ <p>If <var>options</var>["<code data-x="dom-PatchUnsafeOptions-trustedTransformStream">trustedTransformStream</code>"] <span data-x="map exists">exists</span>:</p>
117771+
117772+ <ol>
117773+ <li><p>Set <var>writable</var> to the result of piping <var>writable</var> through <var>options</var>["trustedTransformStream"].</p></li>
117774+ </ol>
117775+ </li>
117776+
117777+ <li>
117778+ <p>Otherwise:</p>
117779+
117780+ <ol>
117781+ <li><p>If there's a default TT policy, use that and wrap <var>writable</var> 👋</p></li>
117782+ </ol>
117783+ </li>
117784+
117785+ <li><p>Create a new parser and do all the actual work 👋</p></li>
117786+
117787+ <li><p>Return <var>writable</var>.</p></li>
117788+ </ol>
117789+
117790+ <div class="example">
117791+ <p>Do a thing like this:</p>
117792+ <pre><code class="js">const policy = trustedTypes.createPolicy("my-policy", {
117793+ createTransformStream() {
117794+ return new TransformStream({
117795+ transform(chunk, controller) {
117796+ // TODO: some buffering
117797+ controller.enqueue(sanitize(chunk));
117798+ }
117799+ });
117800+ }
117801+ });
117802+
117803+ const trustedTransformStream = policy.createTransformStream(input);
117804+ const writable = element.patchUnsafe({ trustedTransformStream });
117805+ const response = await fetch('/fragments/something');
117806+ response.body.pipeTo(writable);</code></pre>
117807+ </div>
117808+
117809+ <p><code>ShadowRoot</code>'s <dfn method for="ShadowRoot"><code
117810+ data-x="dom-ShadowRoot-patchUnsafe">patchUnsafe(<var>options</var>)</code></dfn> method steps
117811+ are:</p>
117812+
117813+ <ol>
117814+ <li>TODO</li>
117815+ </ol>
117816+
117817+ </div>
117818+
117744117819 <h3 split-filename="timers-and-user-prompts" id="timers">Timers</h3>
117745117820
117746117821 <p>The <code data-x="dom-setTimeout">setTimeout()</code> and <code
0 commit comments