Bug 1291946 - Call mozCapturedStreamXXX in onloadedmetadata callback. r?pehrsons.
MozReview-Commit-ID: 6gLa4OYT9v2
--- 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>