gecko/content/media/test/test_streams_gc.html
Robert O'Callahan 9f2a4c9275 Bug 806754. Part 2: Fix bogus assertions. r=cpearce
SendStreamAudio gets called by SendStreamData which can be called
on the state machine thread since bug 794426 was fixed.
At the same time PlayFromAudioQueuec can no longer guarantee that
mAudioCaptured is false. It could be true and we're waiting for
the audio thread to shut down. We can just remove that assertion;
the logic in SendStreamData guarantees that we don't try to pass
audio to MediaStreams until the audio thread has actually stopped.

--HG--
extra : rebase_source : 431b4af63710ef13a57f7560aeec553b8aae6139
2013-01-30 17:20:03 +13:00

46 lines
1.1 KiB
HTML

<!DOCTYPE HTML>
<html>
<head>
<title>Test garbage collection of captured stream (bug 806754)</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
<script type="text/javascript" src="manifest.js"></script>
</head>
<body onload="doTest()">
<audio id="a"></audio>
<pre id="test">
<script class="testbody" type="text/javascript">
SimpleTest.waitForExplicitFinish();
var a = document.getElementById('a');
a.src = getPlayableAudio(gSmallTests).name;
function forceGC() {
SpecialPowers.gc();
SpecialPowers.forceGC();
SpecialPowers.forceCC();
}
function doTest() {
a.mozCaptureStreamUntilEnded();
a.addEventListener("seeked", function() {
a.play();
a.addEventListener("play", function() {
a.addEventListener("ended", function() {
ok(true, "GC completed OK");
SimpleTest.finish();
}, false);
}, false);
}, false);
a.currentTime = a.duration;
setTimeout(forceGC, 0);
}
</script>
</pre>
</body>
</html>