<html>
<body onload="many_link_updates(50);setTimeout('done();',0)">
<div id="console"></div>
<script src="../../../resources/js-test-pre.js"></script>
<script>

function addLink(url, rel) {
    var link = document.getElementById(rel) ||
               document.createElement('link');
    link.id = rel;
    link.rel = rel;
    link.href = url;
    document.body.appendChild(link);
}

function many_link_updates(iter) {
    for(var i=0;i<iter;++i) {
        addLink("many_link_updates_" + i + ".html", "prefetch");
    }
}

function done() {
    testPassed("we didn't crash.");
    if (window.testRunner) {
        testRunner.notifyDone();
    }
}

if (window.testRunner) {
    testRunner.waitUntilDone(); 
    testRunner.dumpAsText();
}
</script>
<p>This test makes sure that a single prefetch element is not a client of multiple cachedresources at the same time; by 
repeatedly changing an existing link element, we will induce a double-notify bug if that element is not releasing its
cachedresource on update.</p>
</body>
</html>
