Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(269)

Side by Side Diff: media/test/data/test_key_system_instantiation.html

Issue 2349813002: EME: Update MediaKeySystemConfiguration defaults; require non-empty capabilities (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <html> 1 <html>
2 <body> 2 <body>
3 <script type="text/javascript"> 3 <script type="text/javascript">
4 // Since promises run asynchronously, use the pages title to keep track 4 // Since promises run asynchronously, use the pages title to keep track
5 // of the result. 5 // of the result.
6 function setResultInTitle(title) { 6 function setResultInTitle(title) {
7 if (title == "" || title == "success" || 7 if (title == "" || title == "success" ||
8 title == "Unsupported keySystem" || 8 title == "Unsupported keySystem" ||
9 title == "None of the requested configurations were supported.") { 9 title == "None of the requested configurations were supported.") {
10 document.title = title; 10 document.title = title;
(...skipping 15 matching lines...) Expand all
26 return actual[i].contentType + " does not match " + 26 return actual[i].contentType + " does not match " +
27 expected[i].contentType + " at index " + i; 27 expected[i].contentType + " at index " + i;
28 } 28 }
29 return "success"; 29 return "success";
30 } 30 }
31 31
32 // Calls navigator.requestMediaKeySystemAccess() using the supplied codec 32 // Calls navigator.requestMediaKeySystemAccess() using the supplied codec
33 // lists, and then verifies the result. Sets page title when done. 33 // lists, and then verifies the result. Sets page title when done.
34 function requestMediaKeySystemAccessAndVerifyConfiguration( 34 function requestMediaKeySystemAccessAndVerifyConfiguration(
35 keySystem, initDataType, audioCodecList, videoCodecList) { 35 keySystem, initDataType, audioCodecList, videoCodecList) {
36 var configuration = {initDataTypes: [initDataType]}; 36 var configuration = {
37 initDataTypes: [initDataType],
38 audioCapabilities: [],
39 videoCapabilities: []
40 };
37 if (audioCodecList !== null) { 41 if (audioCodecList !== null) {
38 configuration.audioCapabilities = [];
39 for (entry of audioCodecList) { 42 for (entry of audioCodecList) {
40 configuration.audioCapabilities.push({contentType: entry}); 43 configuration.audioCapabilities.push({contentType: entry});
41 }; 44 };
42 } 45 }
43 if (videoCodecList !== null) { 46 if (videoCodecList !== null) {
44 configuration.videoCapabilities = [];
45 for (entry of videoCodecList) { 47 for (entry of videoCodecList) {
46 configuration.videoCapabilities.push({contentType: entry}); 48 configuration.videoCapabilities.push({contentType: entry});
47 }; 49 };
48 } 50 }
49 // This is using promises which will run asynchronously. 51 // This is using promises which will run asynchronously.
50 navigator.requestMediaKeySystemAccess(keySystem, [configuration]) 52 navigator.requestMediaKeySystemAccess(keySystem, [configuration])
51 .then(function(response) { 53 .then(function(response) {
52 var allowedConfig = response.getConfiguration(); 54 var allowedConfig = response.getConfiguration();
53 if (allowedConfig.initDataTypes.length !== 1) { 55 if (allowedConfig.initDataTypes.length !== 1) {
54 setResultInTitle("initDataType length mismatch"); 56 setResultInTitle("initDataType length mismatch");
55 return; 57 return;
56 } 58 }
57 if (allowedConfig.initDataTypes[0] !== initDataType) { 59 if (allowedConfig.initDataTypes[0] !== initDataType) {
58 setResultInTitle("initDataType returned " + 60 setResultInTitle("initDataType returned " +
59 allowedConfig.initDataTypes[0] + 61 allowedConfig.initDataTypes[0] +
60 ", expected " + initDataType); 62 ", expected " + initDataType);
61 return; 63 return;
62 } 64 }
63 if (audioCodecList !== null) { 65 if (audioCodecList !== null) {
64 var result = 66 var result =
65 verifyCapabilitiesAreEqual(allowedConfig.audioCapabilities, 67 verifyCapabilitiesAreEqual(allowedConfig.audioCapabilities,
66 configuration.audioCapabilities); 68 configuration.audioCapabilities);
67 if (result !== "success") { 69 if (result !== "success") {
68 setResultInTitle(result); 70 setResultInTitle(result);
69 return; 71 return;
70 } 72 }
71 } else if (allowedConfig.audioCapabilities) { 73 } else if (allowedConfig.audioCapabilities.length > 0) {
72 setResultInTitle("audioCapabilities set when none expected"); 74 setResultInTitle("audioCapabilities set when none expected");
73 return; 75 return;
74 } 76 }
75 if (videoCodecList !== null) { 77 if (videoCodecList !== null) {
76 setResultInTitle( 78 setResultInTitle(
77 verifyCapabilitiesAreEqual(allowedConfig.videoCapabilities, 79 verifyCapabilitiesAreEqual(allowedConfig.videoCapabilities,
78 configuration.videoCapabilities)); 80 configuration.videoCapabilities));
79 return; 81 return;
80 } else if (allowedConfig.videoCapabilities) { 82 } else if (allowedConfig.videoCapabilities.length > 0) {
81 setResultInTitle("videoCapabilities set when none expected"); 83 setResultInTitle("videoCapabilities set when none expected");
82 return; 84 return;
83 } 85 }
84 setResultInTitle("success"); 86 setResultInTitle("success");
85 }) 87 })
86 .catch(function(err) { setResultInTitle(err.message); }); 88 .catch(function(err) { setResultInTitle(err.message); });
87 }; 89 };
88 90
89 function checkKeySystemWithMediaMimeType(keySystem, initDataType, 91 function checkKeySystemWithMediaMimeType(keySystem, initDataType,
90 audioCodecList, videoCodecList) { 92 audioCodecList, videoCodecList) {
91 setResultInTitle(""); 93 setResultInTitle("");
92 requestMediaKeySystemAccessAndVerifyConfiguration( 94 requestMediaKeySystemAccessAndVerifyConfiguration(
93 keySystem, initDataType, audioCodecList, videoCodecList); 95 keySystem, initDataType, audioCodecList, videoCodecList);
94 }; 96 };
95 </script> 97 </script>
96 </body> 98 </body>
97 </html> 99 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698