Bug 1291946 - Call mozCapturedStreamXXX in onloadedmetadata callback. r?pehrsons. draft
authorctai <ctai@mozilla.com>
Mon, 15 Aug 2016 14:46:30 +0800
changeset 401039 44f76ca77189ae1c2003c6cac839f040986fd7af
parent 400633 c2ec19b1e169b783a296c94aebb2821cde3baf8c
child 528380 2fbf1981a6d5821308f439593fd88fb1b69629a4
push id26346
push userbmo:ctai@mozilla.com
push dateTue, 16 Aug 2016 06:23:59 +0000
reviewerspehrsons
bugs1291946
milestone51.0a1
Bug 1291946 - Call mozCapturedStreamXXX in onloadedmetadata callback. r?pehrsons. MozReview-Commit-ID: 6gLa4OYT9v2
dom/media/test/test_streams_element_capture_createObjectURL.html
--- a/dom/media/test/test_streams_element_capture_createObjectURL.html
+++ b/dom/media/test/test_streams_element_capture_createObjectURL.html
@@ -29,39 +29,43 @@ function isGreaterThanOrEqualEps(a, b, m
 function startTest(test, token) {
   manager.started(token);
 
   var v = document.createElement('video');
   var vout = document.createElement('video');
   vout.token = token;
 
   v.src = test.name;
-  var stream = v.mozCaptureStreamUntilEnded();
-  is(stream.currentTime, 0, test.name + " stream initial currentTime");
-  vout.src = URL.createObjectURL(stream);
+  v.preload = "metadata"
+  var stream;
 
-  var checkEnded = function(test, vout, stream) { return function() {
+  var checkEnded = function() {
     is(stream.currentTime, vout.currentTime, test.name + " stream final currentTime");
     if (test.duration) {
       isGreaterThanOrEqualEps(vout.currentTime, test.duration,
          test.name + " current time at end");
     }
     is(vout.readyState, vout.HAVE_CURRENT_DATA, test.name + " checking readyState");
     ok(vout.ended, test.name + " checking playback has ended");
     if (test.type.match(/^video/)) {
       checkDrawImage(vout);
     }
     vout.parentNode.removeChild(vout);
     URL.revokeObjectURL(vout.src);
     manager.finished(vout.token);
-  }}(test, vout, stream);
+  };
   vout.addEventListener("ended", checkEnded, false);
 
   document.body.appendChild(vout);
-  v.play();
-  vout.play();
+  v.onloadedmetadata = function () {
+    stream = v.mozCaptureStreamUntilEnded();
+    is(stream.currentTime, 0, test.name + " stream initial currentTime");
+    vout.src = URL.createObjectURL(stream);
+    v.play();
+    vout.play();
+  };
 }
 
 manager.runTests([getPlayableVideo(gSmallTests)], startTest);
 </script>
 </pre>
 </body>
 </html>