<html>
<head>
<script type="text/javascript">

function runTest()
{
    if (window.testRunner) {
        testRunner.dumpBackForwardList();
        testRunner.dumpAsText();
        testRunner.waitUntilDone();
    }

    var divElm = document.createElement("div");
    
    var iframe = document.createElement("iframe");
    iframe.name = "myFrame";
    iframe.id = "myFrame";
    iframe.onload = frameLoaded;
    divElm.appendChild(iframe);

    document.body.appendChild(divElm);
    setTimeout(submitForm, 200);
}

function submitForm()
{
    document.getElementById("myForm").submit();
}

function frameLoaded()
{
    if (document.getElementById("myFrame").contentDocument.URL === "about:blank")
        return;
    if (window.testRunner)
        testRunner.notifyDone();
}

</script>
</head>
<body onload="runTest()">
<form id="myForm" target="myFrame" action="resources/blank.txt" method="get">
</form>
In this case, Safari and Firefox adds a history item but IE doesn't.
</body>
</html>
