<!DOCTYPE html>
<html>
  <head>
    <title>Self painting layers</title>

    <style type="text/css" media="screen">

    .container {
      overflow: hidden;
      width: 300px;
      border: 1px solid black;
    }
    
    </style>
    <script type="text/javascript" charset="utf-8">
      if (window.testRunner) {
          testRunner.dumpAsText();
          testRunner.waitUntilDone();
      }

      function testOnLoad()
      {
        window.setTimeout(function() {
          if (window.testRunner)
            testRunner.notifyDone();
        }, 0);
      }
      
      window.addEventListener('load', function() {
        var video = document.getElementById('video');
        video.addEventListener('loadeddata', testOnLoad, false);
        video.src = 'resources/video.' + (video.canPlayType('video/ogg') ? 'ogv' : 'mp4');
      }, false);
    </script>
  </head>
  <body>

      <p>This test should not assert in debug builds.</p>
      <div class="container">
          <video id="video" width="300" height="200"></video>
      </div>

  </body>
</html>
