<script>
if (window.testRunner) {
   testRunner.dumpAsText();
   testRunner.waitUntilDone();
}

var numberDone = 0;

function receiveMessage(event)
{
    if (++numberDone == 2) {
        if (window.testRunner)
            testRunner.notifyDone();
        return;
    }

    window.open("http://localhost:8000/appcache/resources/identifier-test.py", "_blank");
}

window.addEventListener("message", receiveMessage, false);

window.open("http://localhost:8000/appcache/resources/identifier-test-real.py", "_blank");

</script>
This page opens a test page in a new window, and that page should get app cached.<br>
This page then opens a different test page, that redirects to the first, which should then load from the app cache.<br>
If it doesn't crash, then that's success.<br>
