Chromium Code Reviews| 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..fc7607b9806eeed651cbf2e49816fd29d799b1f9 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,7 +17,7 @@ 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); }); |
| } |
| @@ -25,7 +25,10 @@ function isInitDataTypeSupported(initDataType) |
| // rejected if none are supported. |
| function getSupportedInitDataType() |
|
ddorwin
2016/06/24 03:05:23
We may not actually need this anymore if we follow
jrummell
2016/06/28 23:04:26
Done.
|
| { |
| - var configuration = [{ initDataTypes : [ 'webm', 'cenc', 'keyids' ] }]; |
| + var configuration = [ { |
| + initDataTypes : [ 'webm', 'cenc', 'keyids' ], |
| + audioCapabilities: [ { contentType: 'audio/webm; codecs="vorbis"' } ] |
|
ddorwin
2016/06/24 03:05:23
We should add a note that one would need to includ
jrummell
2016/06/28 23:04:26
Done.
|
| + } ]; |
| return navigator.requestMediaKeySystemAccess('org.w3.clearkey', configuration) |
| .then(function(access) { |
| var initDataTypes = access.getConfiguration().initDataTypes; |
| @@ -71,6 +74,48 @@ function getInitData(initDataType) |
| throw 'initDataType ' + initDataType + ' not supported.'; |
| } |
| +// Returns a trivial MediaKeySystemConfiguration. Since Chromium only |
| +// supports WebM by default, use an audio codec so that at least one |
| +// capability is specified. |
| +// NOTE: Supporting user agents that don't support WebM and/or Vorbis would |
| +// require passing in an audio content type. |
| +function simpleConfiguration() |
| +{ |
| + return [ { |
| + audioCapabilities: [ { contentType: 'audio/webm; codecs="vorbis"' } ] |
|
ddorwin
2016/06/24 03:05:23
Actually, that might work here too. We just need o
jrummell
2016/06/28 23:04:26
Done.
|
| + } ]; |
| +} |
| + |
| +// Returns a MediaKeySystemConfiguration for |initDataType|. Since Chromium |
| +// only supports WebM by default, use an audio codec so that at least one |
| +// capability is specified. |
| +// NOTE: Supporting user agents that don't support WebM and/or Vorbis would |
| +// require passing in an audio content type. |
| +function simpleConfigurationForInitDataType(initDataType) |
| +{ |
| + return [ { |
| + initDataTypes: [ initDataType ], |
| + audioCapabilities: [ { contentType: 'audio/webm; codecs="vorbis"' } ] |
| + } ]; |
| +} |
| + |
| +// Returns a MediaKeySystemConfiguration for |initDataType| that specifies |
| +// both audio and video capabilities. |
| +function avConfiguration(initDataType) |
|
ddorwin
2016/06/24 03:05:23
Passing the IDT isn't strictly correct. Also, FTR,
jrummell
2016/06/28 23:04:26
Renamed the parameter since it is really the media
|
| +{ |
| + if (initDataType == 'webm') { |
| + return [ { |
|
ddorwin
2016/06/24 21:24:56
(Especially for cases where more than one configur
jrummell
2016/06/28 23:04:26
Acknowledged. Doesn't look like we need to handle
|
| + initDataTypes: [ 'webm' ], |
| + audioCapabilities: [ { contentType: 'audio/webm; codecs="vorbis"' } ], |
| + videoCapabilities: [ { contentType: 'video/webm; codecs="vp8"' } ] |
| + } ]; |
| + } |
| + |
| + // NOTE: Supporting other initDataTypes not currently implemented as |
| + // Chromium only tests with WebM files. |
| + throw 'initDataType ' + initDataType + ' not supported.'; |
| +} |
| + |
| function waitForEventAndRunStep(eventName, element, func, stepTest) |
| { |
| var eventCallback = function(event) { |
| @@ -268,7 +313,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; |