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

function run() {
    var frameElement = document.createElement('iframe')
    frameElement.setAttribute("src", "resources/images.html");
    document.getElementById("frameDiv").appendChild(frameElement);
    if (window.testRunner) {
        testRunner.setDefersLoading(true);
        setTimeout("testRunner.setDefersLoading(false);testRunner.notifyDone();",1000);
    } else
        alert("Deferring loads");
}

</script>
<body onload='run()'>
<p>For the test to pass there should be no crash.</p>
<div id="frameDiv"></div>
</body>
</html>
