@@ -116904,7 +116904,7 @@ document.body.appendChild(frame)</code></pre>
116904
116904
116905
116905
<h3 id="dom-parsing-and-serialization">DOM parsing and serialization APIs</h3>
116906
116906
116907
- <pre><code class="idl">partial interface <span id="Element-partial" >Element</span> {
116907
+ <pre><code class="idl">partial interface <span>Element</span> {
116908
116908
[<span>CEReactions</span>] undefined <span data-x="dom-Element-setHTMLUnsafe">setHTMLUnsafe</span>((<code data-x="tt-trustedhtml">TrustedHTML</code> or DOMString) html);
116909
116909
DOMString <span data-x="dom-Element-getHTML">getHTML</span>(optional <span>GetHTMLOptions</span> options = {});
116910
116910
@@ -116913,7 +116913,7 @@ document.body.appendChild(frame)</code></pre>
116913
116913
[<span>CEReactions</span>] undefined <span data-x="dom-Element-insertAdjacentHTML">insertAdjacentHTML</span>(DOMString position, (<code data-x="tt-trustedhtml">TrustedHTML</code> or DOMString) string);
116914
116914
};
116915
116915
116916
- partial interface <span id="ShadowRoot-partial" >ShadowRoot</span> {
116916
+ partial interface <span>ShadowRoot</span> {
116917
116917
[<span>CEReactions</span>] undefined <span data-x="dom-ShadowRoot-setHTMLUnsafe">setHTMLUnsafe</span>((<code data-x="tt-trustedhtml">TrustedHTML</code> or DOMString) html);
116918
116918
DOMString <span data-x="dom-ShadowRoot-getHTML">getHTML</span>(optional <span>GetHTMLOptions</span> options = {});
116919
116919
@@ -117741,6 +117741,84 @@ interface <dfn interface>XMLSerializer</dfn> {
117741
117741
117742
117742
</div>
117743
117743
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 WindowPostMessageOptions</dfn> : <span>StructuredSerializeOptions</span> {
117757
+ USVString targetOrigin</dfn> = "/";
117758
+ };
117759
+ dictionary <dfn dictionary>PatchUnsafeOptions</dfn> {
117760
+ TrustedTransformStream <dfn dict-member for="PatchUnsafeOptions" >trustedTransformStream</dfn>;
117761
+ };</code></pre>
117762
+
117763
+ <div w-nodev>
117764
+
117765
+ <p><code>Element</code>'s <dfn method for="Element"><code
117766
+ data-x="dom-Element-patchUnsafe">patchUnsafe(<var>options</var>)</code></dfn> method steps
117767
+ are:</p>
117768
+
117769
+ <ol>
117770
+ <li><p>Let <var>writable</var> be a new WritableStream.</p></li>
117771
+
117772
+ <li>
117773
+ <p>If <var>options</var>["<code data-x="dom-PatchUnsafeOptions-trustedTransformStream">trustedTransformStream</code>"] <span data-x="map exists">exists</span>:</p>
117774
+
117775
+ <ol>
117776
+ <li><p>Set <var>writable</var> to the result of piping <var>writable</var> through <var>options</var>["trustedTransformStream"].</p></li>
117777
+ </ol>
117778
+ </li>
117779
+
117780
+ <li>
117781
+ <p>Otherwise:</p>
117782
+
117783
+ <ol>
117784
+ <li><p>If there's a default TT policy, use that and wrap <var>writable</var> 👋</p></li>
117785
+ </ol>
117786
+ </li>
117787
+
117788
+ <li><p>Create a new parser and do all the actual work 👋</p></li>
117789
+
117790
+ <li><p>Return <var>writable</var>.</p></li>
117791
+ </ol>
117792
+
117793
+ <div class="example">
117794
+ <p>Do a thing like this:</p>
117795
+ <pre><code class="js">const policy = trustedTypes.createPolicy("my-policy", {
117796
+ createTransformStream() {
117797
+ return new TransformStream({
117798
+ transform(chunk, controller) {
117799
+ // TODO: some buffering
117800
+ controller.enqueue(sanitize(chunk));
117801
+ }
117802
+ });
117803
+ }
117804
+ });
117805
+
117806
+ const trustedTransformStream = policy.createTransformStream(input);
117807
+ const writable = element.patchUnsafe({ trustedTransformStream });
117808
+ const response = await fetch('/fragments/something');
117809
+ response.body.pipeTo(writable);</code></pre>
117810
+ </div>
117811
+
117812
+ <p><code>ShadowRoot</code>'s <dfn method for="ShadowRoot"><code
117813
+ data-x="dom-ShadowRoot-patchUnsafe">patchUnsafe(<var>options</var>)</code></dfn> method steps
117814
+ are:</p>
117815
+
117816
+ <ol>
117817
+ <li>TODO</li>
117818
+ </ol>
117819
+
117820
+ </div>
117821
+
117744
117822
<h3 split-filename="timers-and-user-prompts" id="timers">Timers</h3>
117745
117823
117746
117824
<p>The <code data-x="dom-setTimeout">setTimeout()</code> and <code
0 commit comments