<!doctype html>
<html>
    <head>
        <script src="../media-file.js"></script>
        <script src="../video-test.js"></script>
        <script type="text/javascript">
            var firstSeek = true;

            function seeked()
            {
                if (!firstSeek) {
                    endTest();
                    return;
                }

                // Remove the text tra
                video.innerHTML = "This is a test";

                // Seek again to force a repaint.
                run("video.currentTime = 7.9");
                firstSeek = false;
            }

            function loaded()
            {
                findMediaElement();
                waitForEvent('error');
                waitForEvent('seeked', seeked);
                waitForEvent('canplaythrough', function()
                {
                    video.currentTime = 0.5;
                });
                video.src = findMediaFile('video', '../content/counting');
            }
        </script>
    </head>
    <body onload=loaded()>
        <video>
            <track default="" src="captions-webvtt/captions-gaps.vtt">
        </video>
        <div>
          This test makes sure that removing a track by setting video.innerHTML doesn't crash (https://bugs.webkit.org/show_bug.cgi?id=100981).
          <p>If this test does not crash, it passes.</p>
        </div>
    </body>
</html>
