<html>
<head>
  <style>
    div {
        border 2px solid blue;
    }
  </style>
  <script>
    if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.waitUntilDone();
    }
    
    function testFinished() {
        p = document.getElementById("parent");
        f = document.getElementById("frame");
        p.removeChild(f);
        if (window.GCController)
            GCController.collect();
        document.getElementById('results').innerHTML = 'Did not crash, so PASSED';
        
        if (window.testRunner)
            testRunner.notifyDone();
    };
  </script>
</head>
<body>

<p>Tests element removal and hiding in webkitTransitionEnd event handler. Should not crash.</p>

<div id="parent">
    <iframe id="frame" src="resources/transition-end-event-destroy-iframe-inner.html" width="400px" height="400px"></iframe>
</div>
<div id="results"></div>
</body>
</html>
