Bug 1131392 - Fix EME tests after disable non-MSE EME - r=cpearce

This commit is contained in:
Edwin Flores 2015-03-03 11:02:36 +13:00
Родитель 14e52f9763
Коммит ee5eb077e9
5 изменённых файлов: 157 добавлений и 0 удалений

Просмотреть файл

@ -672,6 +672,14 @@ var gEMETests = [
},
];
var gEMENonFragmentedTests = [
{
name:"short-cenc.mp4",
type:"video/mp4; codecs=\"avc1.64000d,mp4a.40.2\"",
duration:0.47,
},
];
function checkMetadata(msg, e, test) {
if (test.width) {
is(e.videoWidth, test.width, msg + " video width");

Просмотреть файл

@ -231,6 +231,7 @@ support-files =
seek_support.js
seekLies.sjs
seek_with_sound.ogg^headers^
short-cenc.mp4
sine.webm
sine.webm^headers^
short-video.ogv
@ -367,6 +368,8 @@ skip-if = buildapp == 'b2g' && toolkit != 'gonk' # bug 1082984
skip-if = buildapp == 'b2g' || toolkit == 'android' || e10s # bug 1043403, bug 1057908
[test_eme_canvas_blocked.html]
skip-if = buildapp == 'b2g' || toolkit == 'android' || e10s # bug 1043403, bug 1057908
[test_eme_non_fragmented.html]
skip-if = buildapp == 'b2g' || toolkit == 'android' || e10s # bug 1043403, bug 1057908
[test_eme_obs_notification.html]
skip-if = buildapp == 'b2g' || toolkit == 'android' || e10s # bug 1043403, bug 1057908
[test_eme_persistent_sessions.html]

Двоичные данные
dom/media/test/short-cenc.mp4 Normal file

Двоичный файл не отображается.

Просмотреть файл

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
This XML file describes the encryption applied to short-cenc.mp4. To generate
short-cenc, run the following command:
MP4Box -crypt short-cenc.xml -out short-cenc.mp4 short.mp4
-->
<GPACDRM type="CENC AES-CTR">
<DRMInfo type="pssh" version="1">
<!--
SystemID specified in
https://dvcs.w3.org/hg/html-media/raw-file/tip/encrypted-media/cenc-format.html
-->
<BS ID128="1077efecc0b24d02ace33c1e52e2fb4b" />
<!-- Number of KeyIDs = 2 -->
<BS bits="32" value="2" />
<!-- KeyID -->
<BS ID128="0x7e571d017e571d017e571d017e571d01" />
<BS ID128="0x7e571d027e571d027e571d027e571d02" />
</DRMInfo>
<CrypTrack trackID="1" isEncrypted="1" IV_size="16" saiSavedBox="senc"
first_IV="0x00000000000000000000000000000000">
<key KID="0x7e571d017e571d017e571d017e571d01"
value="0x7e5711117e5711117e5711117e571111" />
</CrypTrack>
<CrypTrack trackID="2" isEncrypted="1" IV_size="16" saiSavedBox="senc"
first_IV="0x00000000000000000000000000000000">
<key KID="0x7e571d027e571d027e571d027e571d02"
value="0x7e5722227e5722227e5722227e572222" />
</CrypTrack>
</GPACDRM>

Просмотреть файл

@ -0,0 +1,109 @@
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1131392 - Test that EME does not work for non-MSE media</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>
<script type="text/javascript" src="eme.js"></script>
</head>
<body>
<pre id="test">
<script class="testbody" type="text/javascript">
var manager = new MediaTestManager;
function DoSetMediaKeys(v)
{
var options = [{
initDataType: "cenc",
videoType: test.type,
}];
return navigator.requestMediaKeySystemAccess("org.w3.clearkey", options)
.then(function(keySystemAccess) {
return keySystemAccess.createMediaKeys();
})
.catch(function() {
ok(false, token + " was not expecting failure (yet)");
})
.then(function(mediaKeys) {
return v.setMediaKeys(mediaKeys);
});
}
function TestSetMediaKeys(test, token)
{
manager.started(token);
var v = document.createElement("video");
// XXX the encrypted event should never fire here after bug 1134434
v.addEventListener("encrypted", function() {
DoSetMediaKeys(v)
.then(function() {
ok(false, token + " expected setMediaKeys to fail.");
manager.finished(token);
}, function(err) {
is(err.name, "NotSupportedError", token + " should return correct error");
manager.finished(token);
});
});
v.src = test.name;
}
function TestSetSrc(test, token)
{
manager.started(token);
var v = document.createElement("video");
v.addEventListener("error", function(err) {
ok(true, token + " got error setting src on video element, as expected");
manager.finished(token);
});
DoSetMediaKeys(v)
.then(function() {
v.src = test.name;
})
.catch(function() {
ok(false, token + " got error setting media keys");
});
}
function startTest(test, token)
{
TestSetMediaKeys(test, token + "_setMediaKeys");
TestSetSrc(test, token + "_setSrc");
}
function beginTest() {
manager.runTests(gEMENonFragmentedTests, startTest);
}
var prefs = [
[ "media.mediasource.enabled", true ],
[ "media.mediasource.youtubeonly", false ],
[ "media.mediasource.mp4.enabled", true ],
];
if (/Linux/.test(navigator.userAgent) ||
!document.createElement('video').canPlayType("video/mp4")) {
// XXX remove once we have mp4 PlatformDecoderModules on all platforms.
prefs.push([ "media.fragmented-mp4.exposed", true ]);
prefs.push([ "media.fragmented-mp4.use-blank-decoder", true ]);
}
SimpleTest.waitForExplicitFinish();
SpecialPowers.pushPrefEnv({ "set" : prefs }, beginTest);
</script>
</pre>
</body>
</html>