<!DOCTYPE html>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}
window.onload = function() {
    var el = document.getElementsByTagName("iframe")[0];
    window.frames[0].requestAnimationFrame(function() {
        el.parentNode.removeChild(el);
    });
    window.frames[1].requestAnimationFrame(function() {
    });

    if (window.testRunner) {
        window.setTimeout(function() {
            testRunner.displayAndTrackRepaints();
            testRunner.notifyDone();
        }, 50);
    }
}
</script>
Test passes is there is no crash.
<iframe></iframe>
<iframe></iframe>
