<!DOCTYPE html>
<html>
  <head>
    <script src=../../media-resources/video-test.js></script>
    <script>
        var isFirstLoad = true;
        var testURL = "http://localhost:8000/security/resources/reference-movie-cross-origin-allow.py";

        waitForEvent('playing', function() {
          if (!isFirstLoad) {
              endTest();
              return;
          }
          isFirstLoad = false;

          video.src = "";
          setTimeout(function() {
              video.src = testURL;
              video.play();
          }, 0);
        });

        function start() {
            findMediaElement();
            video.src = testURL;
            video.play();
        }
    </script>
  </head>
  <body onload="start()">
    <video crossorigin></video>
    <p>This test passes if you do not see a CORS error.</p>
  </body>
</html>
