| let frame; | |
| window.unloadChild = function() { | |
| document.body.removeChild(frame); | |
| }; | |
| promise_test(async t => { | |
| frame = document.createElement('iframe'); | |
| frame.srcdoc = `<script> | |
| navigator.hid.getDevices(); | |
| window.parent.unloadChild(); | |
| </script>`; | |
| document.body.appendChild(frame); | |
| }, 'Unload child iframe with pending getDevices promise'); | |
| promise_test(async t => { | |
| frame = document.createElement('iframe'); | |
| frame.srcdoc = `<script> | |
| navigator.hid.requestDevice({filters: []}); | |
| window.parent.unloadChild(); | |
| </script>`; | |
| document.body.appendChild(frame); | |
| }, 'Unload child iframe with pending requestDevice promise'); |