blob: 603f89400b6849cca4b763c49fea68d911a9ac86 [file] [log] [blame]
<html>
<head>
<script src="/js-test-resources/js-test-pre.js"></script>
<script>
function write(s)
{
document.getElementById('pre').appendChild(document.createTextNode(s));
}
var didCollect = false;
function collect()
{
didCollect = true;
gc();
}
function processStateChange(e)
{
if (didCollect)
write("PASS: event handler fired after garbage collection.\n");
if (e.target.readyState == 4) {
if (window.testRunner)
testRunner.notifyDone();
}
}
function test()
{
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
var request = new XMLHttpRequest();
request.onreadystatechange = processStateChange;
request.open("GET", "print-content-type.cgi", true);
request.send(null);
setTimeout('collect();', 0); // timeout ensures stack references to request are cleared when we collect
}
</script>
</head>
<body onload="test();">
<p>This test checks whether event handlers for outstanding XMLHttpRequests survive garbage collection.</p>
<p>See https://bugs.webkit.org/show_bug.cgi?id=9113 REGRESSION (14581):
XMLHttpRequest never calls onreadystatechange with a readystate == 4</p>
<p>If the test passes, you'll see a series of 'PASS' messages below.</p>
<hr>
<pre id='pre'></pre>
</body>
</html>