Bug 1357040: P6. Don't assume that when stalling all data has been loaded. r?gerald
The stalled event can be fired as playback is starting and data has yet to be processed.
So instead we wait for playback to reach the end.
MozReview-Commit-ID: 4W3M5tee2HD
--- a/dom/media/mediasource/test/test_MediaSource_memory_reporting.html
+++ b/dom/media/mediasource/test/test_MediaSource_memory_reporting.html
@@ -9,17 +9,17 @@
<body>
<pre id="test">
<script class="testbody" type="text/javascript">
SimpleTest.waitForExplicitFinish();
runWithMSE(function (ms, v) {
// Test that memory reporting works once we've played a video.
- once(v, "stalled", () => {
+ once(v, "ended", () => {
// Grab a memory report.
var mgr = SpecialPowers.Cc["@mozilla.org/memory-reporter-manager;1"]
.getService(SpecialPowers.Ci.nsIMemoryReporterManager);
var amount = 0;
var resourcesPathSeen = false;
var handleReport = function(aProcess, aPath, aKind, aUnits, aAmount, aDesc) {
if (aPath == "explicit/media/resources") {
@@ -36,16 +36,19 @@ runWithMSE(function (ms, v) {
}
mgr.getReports(handleReport, null, finished, null, /* anonymized = */ false);
});
// Load a webm video and play it.
ms.addEventListener("sourceopen", () => {
var sb = ms.addSourceBuffer("video/webm");
- fetchAndLoad(sb, 'seek', [''], '.webm').then(() => v.play());
+ fetchAndLoad(sb, 'seek', [''], '.webm').then(function() {
+ ms.endOfStream();
+ v.play()
+ });
});
});
</script>
</pre>
</body>
</html>