<!DOCTYPE html>
<html>
<script src="media-file.js"></script>
        
<script>
    if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.waitUntilDone();
    }

    function onLoad()
    {
        setSrcByTagName('video', findMediaFile('video', 'content/test-25fps'));
        // Removes the video element here.
        container.innerHTML = "PASS. WebKit didn't crash.";

        setTimeout(function() {
            if (window.testRunner)
                testRunner.notifyDone();
        }, 100);
    }
</script>

<body onload="onLoad()">
    <p>When an element containing video is removed, WebKit should not crash.</p>
    <div id="container">
        <div id="contents">
            <!-- This is required to reproduce. -->
            <video>
            <!-- Only if we cannot eval the content of oncanplaythrough (i.e. only if the content of oncanplaythough
                 has invalid syntax), this test causes a crash. -->
            <video oncanplaythrough='if'>
        </div>
    </div>
</body>
</html>
