<body onload="setTimeout('test()', 500)">
<p>Test that frame count limit is reset on navigations.</p>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

function test()
{
    var loop = parseFloat(document.location.search.substring(1));
    if (!loop)
        loop = 0;

    try {
        window.frames[100].document.documentElement.innerHTML;
    } catch (ex) {
        document.write("FAIL: " + ex + "<p>");
        if (window.testRunner)
            testRunner.notifyDone();
        return;
    }

    if (loop < 2) {
        ++loop;
        document.location.search = "?" + loop;
        return;
    }

    document.body.appendChild(document.createTextNode((/World/.test(window.frames[100].document.documentElement.innerHTML) ? "PASS" : "FAIL")));

    var ifr;
    while (ifr = document.getElementsByTagName("iframe")[0])
        document.body.removeChild(ifr);

    if (window.testRunner)
        testRunner.notifyDone();
}
</script>

<!-- 101 iframe -->
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="about:blank"></iframe>
<iframe src="javascript:'<p>Hello, World!</p>'"></iframe>
</body>
