blob: 25626732aceee18ca2e6a7500dae0f624b224a97 [file] [log] [blame]
<script>
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
function addElement() {
document.documentElement.appendChild(document.createTextNode('X'));
}
document.addEventListener("DOMContentLoaded", addElement, false);
window.onload = addElement;
var xhr = new XMLHttpRequest;
function sendXHR()
{
console.log('Sending XHR');
xhr.open("GET", "", true);
try {
xhr.send();
}
catch(e) {
// In case of reentrant call, the call to "open" will be aborted by reentrant call.
// The call to "send" following the "open" aborted call will throw an exception (XHR not in open mode)
if (e.name != "InvalidStateError") {
console.log("FAILED: Was expecting an InvalidStateError exception");
}
testRunner.notifyDone();
}
}
window.addEventListener("DOMSubtreeModified", sendXHR);
addElement();
window.addEventListener('load', () => setTimeout(() => {
if (window.testRunner)
testRunner.notifyDone();
}, 0));
</script>
This tests that when we re-entrantly create and cancel XHRs, we don't try to disconnect the same CachedResourceClient
multiple times from its CachedResource. We pass if we don't crash.