<html>
<script>
if (window.layoutTestController) {
    layoutTestController.setCanOpenWindows();
    layoutTestController.dumpBackForwardList();
    layoutTestController.dumpAsText();
    layoutTestController.waitUntilDone();
}

function createNewWindow() {
    var newWindow = window.open('');
    newWindow.focus();
    newWindow.document.write('<html><meta http-equiv="refresh" content="0;url=resources/redirect-1.html"></html>');
    newWindow.document.close();
}
</script>
<body onload="createNewWindow();">
This test will open a new window to an empty url and fill its contents with a document.write()<br>
That document will then redirect to another url called redirect-1.html.<br>
That document will redirect to yet another url called redirect-2.html<br>
The back/forward history of the new window should contain both redirect-1.html and redirect-2.html<br><br>
The test will run automatically with popup blocking disabled, or you can click the button.<br><br>
<input type="button" value="Run Test" onclick="createNewWindow();">
</body>
</html>
