<body>
<script>
function log(message) {
    var item = document.createElement("li");
    item.appendChild(document.createTextNode(message));
    document.getElementById("console").appendChild(item);
}
function prefetch_onload() {
    log("SUCCESS!  prefetch onload called.");
    testRunner.notifyDone();
}
if (window.testRunner) {
    testRunner.waitUntilDone();
    testRunner.dumpAsText();
    testRunner.dumpResourceResponseMIMETypes();
}
</script>
<html>
<p>This test requires DumpRenderTree to see the log of what resources are loaded.
<link href="prefetch.link" rel="prefetch" onload="prefetch_onload()">
<p><ol id="console"></ol>
</html>

