Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add setHTMLUnsafe and parseHTMLUnsafe methods #9538

Merged
merged 27 commits into from
Oct 11, 2023
Merged
Changes from 1 commit
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 35 additions & 7 deletions source
Original file line number Diff line number Diff line change
Expand Up @@ -10668,6 +10668,20 @@ partial interface <dfn id="document" data-lt="">Document</dfn> {
readonly attribute <span>Element</span>? <span data-x="dom-documentorshadowroot-activeElement">activeElement</span>;
};</code></pre>

<h4>The <code>ShadowRoot</code> interface</h4>
domenic marked this conversation as resolved.
Show resolved Hide resolved

<p><cite>DOM</cite> defines the <code>ShadowRoot</code> interface, which this specification
extends.</p>

<pre><code class="idl">partial interface <span id="ShadowRoot-partial">ShadowRoot</span> {
undefined <span data-x="dom-ShadowRoot-setHTMLUnsafe">setHTMLUnsafe</span>(DOMString string);
domenic marked this conversation as resolved.
Show resolved Hide resolved
};</code></pre>

<p>The <dfn method for="ShadowRoot"><code
data-x="dom-ShadowRoot-setHTMLUnsafe">setHTMLUnsafe(<var>string</var>)</code></dfn> method steps
are to run the <span>unsafe set HTML</span> steps given <span>this</span>, <span>this</span>'s
<span>shadow host</span>, and <var>string</var>.</p>

<h4><dfn>Resource metadata management</dfn></h4>

<dl class="domintro">
Expand Down Expand Up @@ -109017,13 +109031,21 @@ enum <dfn enum>DOMParserSupportedType</dfn> {

<dl class="domintro">
<dt><code data-x=""><var>element</var>.<span subdfn
data-x="dom-setHTMLUnsafe">setHTMLUnsafe</span>(<var>string</var>)</code></dt>
data-x="dom-Element-setHTMLUnsafe">setHTMLUnsafe</span>(<var>string</var>)</code></dt>
josepharhar marked this conversation as resolved.
Show resolved Hide resolved

domenic marked this conversation as resolved.
Show resolved Hide resolved
<dd>
<p>Parses <var>string</var> using the HTML parser, and replaces the children of
<var>element</var> with the result.</p>
josepharhar marked this conversation as resolved.
Show resolved Hide resolved
</dd>
domenic marked this conversation as resolved.
Show resolved Hide resolved

<dt><code data-x=""><var>shadowRoot</var>.<span subdfn
data-x="dom-ShadowRoot-setHTMLUnsafe">setHTMLUnsafe</span>(<var>string</var>)</code></dt>

josepharhar marked this conversation as resolved.
Show resolved Hide resolved
<dd>
<p>Parses <var>string</var> using the HTML parser, and replaces the children of
<var>shadowRoot</var> with the result.</p>
</dd>

<dt><code data-x=""><var>doc</var> = Document.<span
josepharhar marked this conversation as resolved.
Show resolved Hide resolved
data-x="dom-parseHTMLUnsafe">parseHTMLUnsafe</span>(<var>string</var>)</code></dt>

Expand All @@ -109037,24 +109059,30 @@ enum <dfn enum>DOMParserSupportedType</dfn> {
attributes like <code>script</code> or <span>event handler content attributes</span>.</p>

<pre><code class="idl">partial interface <span id="Element-partial">Element</span> {
annevk marked this conversation as resolved.
Show resolved Hide resolved
undefined <span data-x="dom-setHTMLUnsafe">setHTMLUnsafe</span>(DOMString string);
undefined <span data-x="dom-Element-setHTMLUnsafe">setHTMLUnsafe</span>(DOMString string);
};</code></pre>

<p>The <dfn method for="Element"><code
data-x="dom-setHTMLUnsafe">setHTMLUnsafe(<var>string</var>)</code></dfn> method steps are:</p>
data-x="dom-Element-setHTMLUnsafe">setHTMLUnsafe(<var>string</var>)</code></dfn> method steps are
to run the <span>unsafe set HTML</span> steps given <span>this</span>, <span>this</span>, and
<var>string</var>.</p>

<p>To <dfn>unsafe set HTML</dfn>, given an <code>Element</code> or <code>ShadowRoot</code>
<var>container</var>, an <code>Element</code> <var>contextElement</var>, and a <span>string</span>
josepharhar marked this conversation as resolved.
Show resolved Hide resolved
<var>string</var>:</p>
josepharhar marked this conversation as resolved.
Show resolved Hide resolved

<ol>
<li><p>Let <var>newChildren</var> be the result of the <span>HTML fragment parsing algorithm</span>
given <span>this</span> and <var>string</var>.</p></li>
given <var>contextElement</var> and <var>string</var>.</p></li>

<li><p>Let <var>fragment</var> be a new <code>DocumentFragment</code> whose <span>node
document</span> is <span>this</span>'s <span>node document</span>.</p></li>
document</span> is <var>contextElement</var>'s <span>node document</span>.</p></li>

<li><p>For each <var>node</var> in <var>newChildren</var>, <span
data-x="concept-node-append">append</span> <var>node</var> to <var>fragment</var>.</p></li>

<li><p>Let <var>target</var> be <span>this</span>'s <span>template contents</span> if
<span>this</span> is a <code>template</code> element; otherwise <span>this</span>.</p></li>
<li><p>Let <var>target</var> be <var>container</var>'s <span>template contents</span> if
<var>container</var> is a <code>template</code> element; otherwise <var>container</var>.</p></li>
josepharhar marked this conversation as resolved.
Show resolved Hide resolved

<li><p><span data-x="concept-node-replace-all">Replace all</span> with <var>fragment</var> within
<var>target</var>.</p></li>
Expand Down