// Parallel test must be disabled for media.video_stats.enabled is a global setting
// to prevent the setting from changing unexpectedly in the middle of the test.
PARALLEL_TESTS = 1;
SimpleTest.waitForExplicitFinish(); var manager = new MediaTestManager;
function checkStats(v, aShouldBeEnabled) {
if (aShouldBeEnabled) {
ok(v.mozParsedFrames != 0, "At least one value should be different from 0 if stats are enabled");
} else {
ok(!v.mozParsedFrames, "mozParsedFrames should be 0 if stats are disabled");
ok(!v.mozDecodedFrames, "mozDecodedFrames should be 0 if stats are disabled");
ok(!v.mozPresentedFrames, "mozPresentedFrames should be 0 if stats are disabled");
ok(!v.mozPaintedFrames, "mozPaintedFrames should be 0 if stats are disabled");
}
}
function ontimeupdate_statsEnabled(event) { var v = event.target;
v.removeEventListener('timeupdate', ontimeupdate_statsEnabled);
checkStats(v, true);
SpecialPowers.popPrefEnv(
function() {
v.addEventListener("timeupdate", ontimeupdate_statsDisabled);
});
}
function ontimeupdate_statsDisabled(event) { var v = event.target;
v.removeEventListener('timeupdate', ontimeupdate_statsDisabled);
checkStats(v, false);
removeNodeAndSource(v);
manager.finished(v.token);
}
function startTest(test, token) { var v = document.createElement('video');
v.token = token;
v.src = test.name;
// playback may reach the end before pref is changed for the duration is short
// set 'loop' to true to keep playing so that we won't miss 'timeupdate' events
v.loop = true;
manager.started(token);
SpecialPowers.pushPrefEnv({"set": [["media.video_stats.enabled", true]]},
function() {
v.play();
v.addEventListener("timeupdate", ontimeupdate_statsEnabled);
});
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.