blob: 85c3a6f6dc086794c9dd201ee3a34a083605a80e [file] [log] [blame]
<!DOCTYPE html>
<meta charset="utf-8">
<title>Worker: Worker.postMessage() on a detached iframe</title>
<body>
</body>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script>
function with_iframe(url) {
return new Promise(resolve => {
let frame = document.createElement('iframe');
frame.src = url;
frame.onload = () => { resolve(frame); };
document.body.appendChild(frame);
add_result_callback(() => frame.remove());
});
}
// This test should not be upstreamed to WPT because the spec does not define
// behavior in the case where Worker.postMessage() is called from a detached
// frame.
promise_test(async t => {
const frame = await with_iframe('resources/blank.html');
const worker = new frame.contentWindow.Worker('resources/empty.js');
frame.remove();
try {
worker.postMessage('hello');
} catch (e) {
assert_unreached();
}
}, 'Worker.postMessage() on a detached iframe should not throw an exception ' +
'nor crash.');
</script>