Skip to content

Commit 6c33e42

Browse files
keithamusmoz-wptsync-bot
authored andcommitted
Implement Dialog requestClose
Differential Revision: https://phabricator.services.mozilla.com/D245566 bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1960556 gecko-commit: 4863fcfe00ad36b8c2e930e88dc0bb252d21458e gecko-reviewers: webidl, smaug
1 parent e68931e commit 6c33e42

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

html/semantics/interactive-elements/the-dialog-element/dialog-requestclose.html

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
<dialog>Dialog</dialog>
1111

1212
<script>
13+
const waitForTick = () => new Promise(resolve => step_timeout(resolve, 0));
14+
1315
const dialog = document.querySelector('dialog');
1416
function openDialog(openMethod) {
1517
assert_false(dialog.open);
@@ -49,7 +51,7 @@
4951
dialog.setAttribute('closedby',closedby);
5052
}
5153
// Be sure any pending close events get fired.
52-
await new Promise(resolve => requestAnimationFrame(resolve));
54+
await waitForTick();
5355
return getSignal(t);
5456
}
5557

@@ -75,7 +77,7 @@
7577
assert_false(dialog.open);
7678
assert_false(dialog.matches(':open'));
7779
assert_array_equals(events,['cancel'],'close is scheduled');
78-
await new Promise(resolve => requestAnimationFrame(resolve));
80+
await waitForTick();
7981
assert_array_equals(events,['cancel','close']);
8082
},`requestClose fires both cancel and close ${testDescription}`);
8183

@@ -100,7 +102,7 @@
100102
assert_array_equals(events,['cancel']);
101103
},`closedby has no effect on dialog.requestClose() ${testDescription}`);
102104

103-
if (dialog.closedBy != "none") {
105+
if (closedby != "none") {
104106
promise_test(async (t) => {
105107
const signal = await setup(t,closedby);
106108
let shouldPreventDefault = true;
@@ -180,7 +182,7 @@
180182
dialog.requestClose();
181183
assert_false(dialog.open);
182184
assert_array_equals(events,['cancel'],'close is scheduled');
183-
await new Promise(resolve => requestAnimationFrame(resolve));
185+
await waitForTick();
184186
assert_array_equals(events,['cancel','close']);
185187
},`requestClose fires cancel and close when dialog is open via attribute`);
186188

0 commit comments

Comments
 (0)