<html>
<head>
<script>
if (window.testRunner && window.internals) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
    window.internals.settings.setFrameFlatteningEnabled(true);
}

</script>
</head>
<body>
<div>Frame flattening: this tests if removing the iframe, while the iframe's object's beforeload is executed is safe.</div> 
<div>PASS if no crash is observed, while loading iframe.</div>
<iframe onload='setTimeout("if (window.testRunner) testRunner.notifyDone()", 100);' 
        src='../resources/remove-this-during-object-beforeload.html'></iframe>
</body>
</html>
