| Index: third_party/WebKit/LayoutTests/imported/wpt/encrypted-media/scripts/reset-src-after-setmediakeys.js
|
| diff --git a/third_party/WebKit/LayoutTests/imported/wpt/encrypted-media/scripts/reset-src-after-setmediakeys.js b/third_party/WebKit/LayoutTests/imported/wpt/encrypted-media/scripts/reset-src-after-setmediakeys.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..acddd8dd5f451e567728c3a379da60f13ee32348
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/imported/wpt/encrypted-media/scripts/reset-src-after-setmediakeys.js
|
| @@ -0,0 +1,61 @@
|
| +function runTest(config)
|
| +{
|
| + async_test(function(test) {
|
| + var mediaKeys;
|
| + var mediaSource;
|
| + var encryptedEventIndex = 0;
|
| + var video = config.video;
|
| + var keysystem = config.keysystem;
|
| + var configuration = {
|
| + initDataTypes: [config.initDataType],
|
| + audioCapabilities: [{
|
| + contentType: config.audioType
|
| + }],
|
| + videoCapabilities: [{
|
| + contentType: config.videoType
|
| + }],
|
| + sessionTypes: ['temporary']
|
| + };
|
| +
|
| + assert_not_equals(video, null);
|
| +
|
| + var onEncrypted = function(event) {
|
| + ++encryptedEventIndex;
|
| + assert_equals(video.mediaKeys, mediaKeys);
|
| +
|
| + // This event is fired once for the audio stream and once
|
| + // for the video stream each time .src is set.
|
| + if (encryptedEventIndex === 2) {
|
| + // Finished first video; Create new media source and wait for two more encrypted events
|
| + return testmediasource(config).then(function (source) {
|
| + video.src = URL.createObjectURL(source);
|
| + }).catch(function (error) {
|
| + forceTestFailureFromPromise(test, error)
|
| + });
|
| + } else if (encryptedEventIndex === 4) {
|
| + // Finished second video.
|
| + test.done();
|
| + }
|
| + };
|
| +
|
| + // Create a MediaKeys object and assign it to video.
|
| + return navigator.requestMediaKeySystemAccess(keysystem, [configuration]).then(test.step_func(function (access) {
|
| + assert_equals(access.keySystem, keysystem);
|
| + return access.createMediaKeys();
|
| + })).then(test.step_func(function (result) {
|
| + mediaKeys = result;
|
| + assert_not_equals(mediaKeys, null);
|
| + return video.setMediaKeys(mediaKeys);
|
| + })).then(test.step_func(function () {
|
| + assert_equals(video.mediaKeys, mediaKeys);
|
| + return testmediasource(config);
|
| + })).then(function (source) {
|
| + waitForEventAndRunStep('encrypted', video, onEncrypted, test);
|
| + mediaSource = source;
|
| + video.src = URL.createObjectURL(mediaSource);
|
| + }).catch(function (error) {
|
| + forceTestFailureFromPromise(test, error);
|
| + });
|
| +
|
| + }, 'Reset src after setMediaKeys().');
|
| +}
|
|
|