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

function start() {
    window.firstFrame = document.createElement('iframe');
    document.body.appendChild(window.firstFrame);
    window.secondFrame = document.createElement('iframe');
    window.secondFrame.src = 'javascript:window.top.maybeStart();';
    window.firstFrame.contentDocument.documentElement.appendChild(window.secondFrame);
}

function maybeStart() {
    window.secondFrame.contentWindow.onunload = function() {
        document.documentElement.removeChild(window.bodyEl);
    };

    window.firstFrame.src = 'javascript:"";';
    document.write("PASS. WebKit didn't crash.");
    if (window.testRunner)
       testRunner.notifyDone();
}
</script>
</head>
<body id=bodyEl onload=start()></body>
</html>
