зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1131392 - Fix EME tests after disable non-MSE EME - r=cpearce
This commit is contained in:
Родитель
14e52f9763
Коммит
ee5eb077e9
|
@ -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]
|
||||
|
|
Двоичный файл не отображается.
|
@ -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>
|
||||
|
Загрузка…
Ссылка в новой задаче