Index: third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-utils.js |
diff --git a/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-utils.js b/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-utils.js |
index b1e6c9207f295fb506d400ff9161e0960c9b470a..05bf9201323a8c714260108a83b9303a113a6cc6 100644 |
--- a/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-utils.js |
+++ b/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-utils.js |
@@ -17,25 +17,10 @@ function consoleWrite(text) |
function isInitDataTypeSupported(initDataType) |
{ |
return navigator.requestMediaKeySystemAccess( |
- "org.w3.clearkey", [{ initDataTypes : [initDataType] }]) |
+ "org.w3.clearkey", simpleConfigurationForInitDataType(initDataType)) |
.then(function() { return(true); }, function() { return(false); }); |
} |
-// Returns a promise that is fulfilled with an initDataType that is supported, |
-// rejected if none are supported. |
-function getSupportedInitDataType() |
-{ |
- var configuration = [{ initDataTypes : [ 'webm', 'cenc', 'keyids' ] }]; |
- return navigator.requestMediaKeySystemAccess('org.w3.clearkey', configuration) |
- .then(function(access) { |
- var initDataTypes = access.getConfiguration().initDataTypes; |
- assert_greater_than(initDataTypes.length, 0); |
- return Promise.resolve(initDataTypes[0]); |
- }, function(error) { |
- return Promise.reject('No supported initDataType.'); |
- }); |
-} |
- |
function getInitData(initDataType) |
{ |
if (initDataType == 'webm') { |
@@ -71,6 +56,53 @@ function getInitData(initDataType) |
throw 'initDataType ' + initDataType + ' not supported.'; |
} |
+// Returns an array of audioCapabilities that includes entries for a set of |
+// codecs that should cover all user agents. |
+function getPossibleAudioCapabilities() |
+{ |
+ return [ |
+ { contentType: 'audio/mp4; codecs="mp4a.40.2"' }, |
+ { contentType: 'audio/webm; codecs="opus"' }, |
+ ]; |
+} |
+ |
+// Returns a trivial MediaKeySystemConfiguration that should includes entries |
ddorwin
2016/07/20 17:05:28
Trying to make this a bit clearer. Maybe:
... that
jrummell
2016/07/20 19:07:49
Done.
|
+// that all user agents support some part of. |
+function simpleConfiguration() |
ddorwin
2016/07/20 17:05:28
These three methods are not named as actions like
jrummell
2016/07/20 19:07:49
Done.
|
+{ |
+ return [ { |
+ initDataTypes : [ 'webm', 'cenc', 'keyids' ], |
+ audioCapabilities: getPossibleAudioCapabilities() |
+ } ]; |
+} |
+ |
+// Returns a MediaKeySystemConfiguration for |initDataType|. This includes |
+// entries that should cover all user agents that support |initDataType|. |
ddorwin
2016/07/20 17:05:27
Similar text change.
jrummell
2016/07/20 19:07:48
Done.
|
+function simpleConfigurationForInitDataType(initDataType) |
+{ |
+ return [ { |
+ initDataTypes: [ initDataType ], |
+ audioCapabilities: getPossibleAudioCapabilities() |
+ } ]; |
+} |
+ |
+// Returns a MediaKeySystemConfiguration for |mediaFormat| that specifies |
+// both audio and video capabilities. |
ddorwin
2016/07/20 17:05:27
When the change below is made, add "... for the sp
jrummell
2016/07/20 19:07:48
Done.
|
+function avConfiguration(mediaFormat) |
ddorwin
2016/07/20 17:05:27
Longer-term (for spec tests), it might make sense
jrummell
2016/07/20 19:07:49
Done.
|
+{ |
+ if (mediaFormat == 'webm') { |
+ return [ { |
+ initDataTypes: [ 'webm' ], |
+ audioCapabilities: [ { contentType: 'audio/webm; codecs="opus"' } ], |
+ videoCapabilities: [ { contentType: 'video/webm; codecs="vp8"' } ] |
+ } ]; |
+ } |
+ |
+ // NOTE: Supporting other mediaFormats not currently implemented as |
ddorwin
2016/07/20 17:05:27
nit: *is* not...
jrummell
2016/07/20 19:07:48
Done.
|
+ // Chromium only tests with WebM files. |
+ throw 'mediaFormat ' + mediaFormat + ' not supported.'; |
+} |
+ |
function waitForEventAndRunStep(eventName, element, func, stepTest) |
{ |
var eventCallback = function(event) { |
@@ -268,7 +300,7 @@ function createMediaKeys(keyId, key) |
var request = stringToUint8Array(createKeyIDs(keyId)); |
var jwkSet = stringToUint8Array(createJWKSet(createJWK(keyId, key))); |
- return navigator.requestMediaKeySystemAccess('org.w3.clearkey', [{}]).then(function(access) { |
+ return navigator.requestMediaKeySystemAccess('org.w3.clearkey', simpleConfigurationForInitDataType('keyids')).then(function(access) { |
return access.createMediaKeys(); |
}).then(function(result) { |
mediaKeys = result; |