<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" 
"http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>No relayout when all frames are fixed</title>
<script type="text/javascript">
if (window.testRunner)
    testRunner.waitUntilDone();
var i = 0;
function test()
{
    i++;
    var f = document.getElementById('f');
    switch(i) {
        case 1:
            window.setTimeout(test, 100);
            break;
        case 2:
            f.src = "resources/frame2.html";
            break;
        case 3:
            window.setTimeout(test, 100);
            break;
        case 4:
            f.src = "resources/frame1.html";
            break;
        case 5:
            window.setTimeout(test, 100);
            break;
        case 6:
            if (window.testRunner)
                testRunner.notifyDone();
            break;
    }
}
</script>
</head>
<frameset>
    <frame onload="test()" id="f" src="resources/frame1.html" noresize>
</frameset>
</html>
