32 lines
794 B
JavaScript
32 lines
794 B
JavaScript
// Verify that calling Response clone() in a detached iframe doesn't crash.
|
|
// Regression test for https://crbug.com/1082688.
|
|
|
|
'use strict';
|
|
|
|
promise_test(async () => {
|
|
// Wait for the document body to be available.
|
|
await new Promise(resolve => {
|
|
onload = resolve;
|
|
});
|
|
|
|
window.iframe = document.createElement('iframe');
|
|
document.body.appendChild(iframe);
|
|
iframe.srcdoc = `<!doctype html>
|
|
<script>
|
|
const response = new Response('body');
|
|
window.parent.postMessage('okay', '*');
|
|
window.parent.iframe.remove();
|
|
response.clone();
|
|
</script>
|
|
`;
|
|
|
|
await new Promise(resolve => {
|
|
onmessage = evt => {
|
|
if (evt.data === 'okay') {
|
|
resolve();
|
|
}
|
|
};
|
|
});
|
|
|
|
// If it got here without crashing, the test passed.
|
|
}, 'clone within removed iframe should not crash');
|