<!DOCTYPE html><!-- webkit-test-runner [ dumpJSConsoleLogInStdErr=true ] -->
<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>
