Source code

Revision control

Copy as Markdown

Other Tools

async function check_webm(v, enabled) {
function check(type, expected) {
is(
v.canPlayType(type),
enabled ? expected : "",
type + "='" + expected + "'"
);
}
// WebM types
check("video/webm", "maybe");
check("audio/webm", "maybe");
var video = ["vp8", "vp8.0", "vp9", "vp9.0"];
var audio = ["vorbis", "opus"];
audio.forEach(function (acodec) {
check("audio/webm; codecs=" + acodec, "probably");
check("video/webm; codecs=" + acodec, "probably");
});
video.forEach(function (vcodec) {
check("video/webm; codecs=" + vcodec, "probably");
audio.forEach(function (acodec) {
check('video/webm; codecs="' + vcodec + ", " + acodec + '"', "probably");
check('video/webm; codecs="' + acodec + ", " + vcodec + '"', "probably");
});
});
// Unsupported WebM codecs
check("video/webm; codecs=xyz", "");
check("video/webm; codecs=xyz,vorbis", "");
check("video/webm; codecs=vorbis,xyz", "");
await SpecialPowers.pushPrefEnv({ set: [["media.av1.enabled", true]] });
check('video/webm; codecs="av1"', "probably");
await SpecialPowers.pushPrefEnv({ set: [["media.av1.enabled", false]] });
check('video/webm; codecs="av1"', "");
}