Skip to content

Commit 8eaf940

Browse files
authored
Add request-close command for dialogs
This new command maps to the dialog's requestClose() method. Tests: web-platform-tests/wpt#50804.
1 parent f3444c2 commit 8eaf940

File tree

1 file changed

+57
-37
lines changed

1 file changed

+57
-37
lines changed

source

Lines changed: 57 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -53652,6 +53652,11 @@ interface <dfn interface>HTMLButtonElement</dfn> : <span>HTMLElement</span> {
5365253652
data-x="attr-button-command-close"><code>close</code></dfn>
5365353653
<td><dfn data-x="attr-button-command-close-state">Close</dfn>
5365453654
<td>Closes the targeted <code>dialog</code> element.
53655+
<tr>
53656+
<td><dfn attr-value for="html-global/command"
53657+
data-x="attr-button-command-request-close"><code>request-close</code></dfn>
53658+
<td><dfn data-x="attr-button-command-request-close-state">Request Close</dfn>
53659+
<td>Requests to close the targeted <code>dialog</code> element.
5365553660
<tr>
5365653661
<td><dfn attr-value for="html-global/command"
5365753662
data-x="attr-button-command-show-modal"><code>show-modal</code></dfn>
@@ -62344,25 +62349,10 @@ interface <dfn interface>HTMLDialogElement</dfn> : <span>HTMLElement</span> {
6234462349
are:</p>
6234562350

6234662351
<ol>
62347-
<li><p>If <span>this</span> does not have an <code data-x="attr-dialog-open">open</code>
62348-
attribute, then return.</p></li>
62349-
62350-
<li><p><span>Assert</span>: <span>this</span>'s <span data-x="dialog-close-watcher">close
62351-
watcher</span> is not null.</p></li>
62352-
62353-
<li><p>Set <var>dialog</var>'s <span>enable close watcher for <code
62354-
data-x="dom-dialog-requestClose">requestClose()</code></span> to true.</p></li>
62355-
6235662352
<li><p>If <var>returnValue</var> is not given, then set it to null.</p></li>
6235762353

62358-
<li><p>Set <span>this</span>'s <span>request close return value</span> to
62359-
<var>returnValue</var>.</p></li>
62360-
62361-
<li><p><span data-x="close-watcher-request-close">Request to close</span> <var>dialog</var>'s
62362-
<span data-x="dialog-close-watcher">close watcher</span> with false.</p></li>
62363-
62364-
<li><p>Set <var>dialog</var>'s <span>enable close watcher for <code
62365-
data-x="dom-dialog-requestClose">requestClose()</code></span> to false.</p></li>
62354+
<li><p><span data-x="dialog-request-close">Request to close the dialog</span> <span>this</span>
62355+
with <var>returnValue</var>.</p></li>
6236662356
</ol>
6236762357

6236862358
<div class="note" id="note-dialog-method-names">
@@ -62439,8 +62429,15 @@ interface <dfn interface>HTMLDialogElement</dfn> : <span>HTMLElement</span> {
6243962429
<p>Each <code>dialog</code> element has a <dfn>request close return value</dfn>, which is a
6244062430
string, initially null.</p>
6244162431

62442-
<p>Each <code>dialog</code> element has an <dfn>enable close watcher for <code
62443-
data-x="dom-dialog-requestClose">requestClose()</code></dfn> boolean, initially false.</p>
62432+
<p>Each <code>dialog</code> element has an <dfn
62433+
id="enable-close-watcher-for-requestclose()">enable close watcher for request close</dfn> boolean,
62434+
initially false.</p>
62435+
62436+
<p class="note"><code>dialog</code>'s <span>enable close watcher for request close</span> is used
62437+
to force enable the dialog's <span data-x="dialog-close-watcher">close watcher</span> while <span
62438+
data-x="dialog-request-close">requesting to close</span> it. A dialog whose <span>computed
62439+
closed-by state</span> is the <span data-x="attr-dialog-closedby-none-state">None</span> state
62440+
would otherwise have a disabled <span data-x="dialog-close-watcher">close watcher</span>.</p>
6244462441

6244562442
<p>Each <code>dialog</code> element has an <dfn>is modal</dfn> boolean, initially false.</p>
6244662443

@@ -62585,22 +62582,21 @@ interface <dfn interface>HTMLDialogElement</dfn> : <span>HTMLElement</span> {
6258562582
value</span>.</p></li>
6258662583

6258762584
<li><p><i data-x="create-close-watcher-getEnabledState">getEnabledState</i> being to return
62588-
true if <var>dialog</var>'s <span>enable close watcher for <code
62589-
data-x="dom-dialog-requestClose">requestClose()</code></span> is true or <var>dialog</var>'s
62590-
<span>computed closed-by state</span> is not <span
62585+
true if <var>dialog</var>'s <span>enable close watcher for request close</span> is true or
62586+
<var>dialog</var>'s <span>computed closed-by state</span> is not <span
6259162587
data-x="attr-dialog-closedby-none-state">None</span>; otherwise false.</p></li>
6259262588
</ul>
6259362589
</li>
6259462590
</ol>
6259562591

62596-
<p>The <span>is valid invoker command steps</span> for <code>dialog</code> elements, given
62597-
a <code data-x="attr-button-command">command</code> attribute <var>command</var>, are:</p>
62592+
<p>The <span>is valid invoker command steps</span> for <code>dialog</code> elements, given a <code
62593+
data-x="attr-button-command">command</code> attribute <var>command</var>, are:</p>
6259862594

6259962595
<ol>
6260062596
<li><p>If <var>command</var> is in the <span
62601-
data-x="attr-button-command-close-state">Close</span> state or in the <span
62602-
data-x="attr-button-command-show-modal-state">Show Modal</span> state, then
62603-
return true.</p></li>
62597+
data-x="attr-button-command-close-state">Close</span> state, <span
62598+
data-x="attr-button-command-request-close-state">Request Close</span> state, or the <span
62599+
data-x="attr-button-command-show-modal-state">Show Modal</span> state, then return true.</p></li>
6260462600

6260562601
<li><p>Return false.</p></li>
6260662602
</ol>
@@ -62613,17 +62609,17 @@ interface <dfn interface>HTMLDialogElement</dfn> : <span>HTMLElement</span> {
6261362609
<li><p>If <var>element</var> is in the <span
6261462610
data-x="popover-showing-state">popover showing</span> state, then return.</p></li>
6261562611

62616-
<li>
62617-
<p>If <var>command</var> is in the <span data-x="attr-button-command-close-state">Close</span>
62618-
state and <var>element</var> has an <code data-x="attr-dialog-open">open</code> attribute:</p>
62619-
62620-
<ol>
62621-
<li><p>Let <var>value</var> be <var>invoker</var>'s <span
62622-
data-x="concept-fe-optional-value">optional value</span>.</p></li>
62612+
<li><p>If <var>command</var> is in the <span
62613+
data-x="attr-button-command-close-state">Close</span> state and <var>element</var> has an <code
62614+
data-x="attr-dialog-open">open</code> attribute, then <span>close the dialog</span>
62615+
<var>element</var> with <var>invoker</var>'s <span data-x="concept-fe-optional-value">optional
62616+
value</span>.</p></li>
6262362617

62624-
<li><p><span>Close the dialog</span> <var>element</var> with <var>value</var>.</p></li>
62625-
</ol>
62626-
</li>
62618+
<li><p>If <var>command</var> is in the <span
62619+
data-x="attr-button-command-request-close-state">Request Close</span> state and
62620+
<var>element</var> has an <code data-x="attr-dialog-open">open</code> attribute, then <span
62621+
data-x="dialog-request-close">request to close the dialog</span> <var>element</var> with
62622+
<var>invoker</var>'s <span data-x="concept-fe-optional-value">optional value</span>.</p></li>
6262762623

6262862624
<li><p>If <var>command</var> is the <span
6262962625
data-x="attr-button-command-show-modal-state">Show Modal</span> state and <var>element</var> does
@@ -62727,6 +62723,29 @@ interface <dfn interface>HTMLDialogElement</dfn> : <span>HTMLElement</span> {
6272762723
</li>
6272862724
</ol>
6272962725

62726+
<p>To <dfn data-x="dialog-request-close">request to close</dfn> <code>dialog</code> element
62727+
<var>subject</var>, given null or a string <var>returnValue</var>:</p>
62728+
62729+
<ol>
62730+
<li><p>If <var>subject</var> does not have an <code data-x="attr-dialog-open">open</code>
62731+
attribute, then return.</p></li>
62732+
62733+
<li><p><span>Assert</span>: <var>subject</var>'s <span data-x="dialog-close-watcher">close
62734+
watcher</span> is not null.</p></li>
62735+
62736+
<li><p>Set <var>subject</var>'s <span>enable close watcher for request close</span> to
62737+
true.</p></li>
62738+
62739+
<li><p>Set <var>subject</var>'s <span>request close return value</span> to
62740+
<var>returnValue</var>.</p></li>
62741+
62742+
<li><p><span data-x="close-watcher-request-close">Request to close</span> <var>subject</var>'s
62743+
<span data-x="dialog-close-watcher">close watcher</span> with false.</p></li>
62744+
62745+
<li><p>Set <var>subject</var>'s <span>enable close watcher for request close</span> to
62746+
false.</p></li>
62747+
</ol>
62748+
6273062749
</div>
6273162750

6273262751
<p>To <dfn>queue a dialog toggle event task</dfn> given a <code>dialog</code> element
@@ -144236,6 +144255,7 @@ interface <dfn interface>External</dfn> {
144236144255
"<code data-x="attr-button-command-show-popover">show-popover</code>";
144237144256
"<code data-x="attr-button-command-hide-popover">hide-popover</code>";
144238144257
"<code data-x="attr-button-command-close">close</code>";
144258+
"<code data-x="attr-button-command-request-close">request-close</code>";
144239144259
"<code data-x="attr-button-command-show-modal">show-modal</code>";
144240144260
a <span data-x="attr-button-command-custom">custom command keyword</span>
144241144261
<tr>

0 commit comments

Comments
 (0)