|
10 | 10 | <dialog>Dialog</dialog>
|
11 | 11 |
|
12 | 12 | <script>
|
| 13 | +const waitForTick = () => new Promise(resolve => step_timeout(resolve, 0)); |
| 14 | + |
13 | 15 | const dialog = document.querySelector('dialog');
|
14 | 16 | function openDialog(openMethod) {
|
15 | 17 | assert_false(dialog.open);
|
|
49 | 51 | dialog.setAttribute('closedby',closedby);
|
50 | 52 | }
|
51 | 53 | // Be sure any pending close events get fired.
|
52 |
| - await new Promise(resolve => requestAnimationFrame(resolve)); |
| 54 | + await waitForTick(); |
53 | 55 | return getSignal(t);
|
54 | 56 | }
|
55 | 57 |
|
|
75 | 77 | assert_false(dialog.open);
|
76 | 78 | assert_false(dialog.matches(':open'));
|
77 | 79 | assert_array_equals(events,['cancel'],'close is scheduled');
|
78 |
| - await new Promise(resolve => requestAnimationFrame(resolve)); |
| 80 | + await waitForTick(); |
79 | 81 | assert_array_equals(events,['cancel','close']);
|
80 | 82 | },`requestClose fires both cancel and close ${testDescription}`);
|
81 | 83 |
|
|
100 | 102 | assert_array_equals(events,['cancel']);
|
101 | 103 | },`closedby has no effect on dialog.requestClose() ${testDescription}`);
|
102 | 104 |
|
103 |
| - if (dialog.closedBy != "none") { |
| 105 | + if (closedby != "none") { |
104 | 106 | promise_test(async (t) => {
|
105 | 107 | const signal = await setup(t,closedby);
|
106 | 108 | let shouldPreventDefault = true;
|
|
180 | 182 | dialog.requestClose();
|
181 | 183 | assert_false(dialog.open);
|
182 | 184 | assert_array_equals(events,['cancel'],'close is scheduled');
|
183 |
| - await new Promise(resolve => requestAnimationFrame(resolve)); |
| 185 | + await waitForTick(); |
184 | 186 | assert_array_equals(events,['cancel','close']);
|
185 | 187 | },`requestClose fires cancel and close when dialog is open via attribute`);
|
186 | 188 |
|
|
0 commit comments