<html manifest="THIS_FILE_DOES_NOT_EXIST.manifest">
<head>
  <script src="THIS_FILE_DOES_NOT_EXIST.js" type="text/javascript"></script>
  <script type="text/javascript">
    var isParentFrame = window == window.top;

    if (isParentFrame) {
        if (window.layoutTestController) {
            layoutTestController.dumpAsText()
            layoutTestController.waitUntilDone();
        }

        window.onmessage = function() {
            document.getElementById('result').innerHTML = "SUCCESS";
            if (window.layoutTestController)
                layoutTestController.notifyDone();
        }
    } else {
        window.applicationCache.onchecking = function() {
            parent.postMessage("hello", "*");
            parent.killChildFrame();
        }
    }

    function killChildFrame() {
        document.body.removeChild(document.getElementsByTagName("iframe")[0]);
    }
  </script>
</head>
<body>
<p>Test the destruction of an iframe while deferred events are being raised does not crash the system.</p>
<div id="result">FAILURE</div>
<iframe src="deferred-events-delete-while-raising.html"></iframe>
</body>
</html>
