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

Side by Side Diff: third_party/WebKit/LayoutTests/imported/wpt/encrypted-media/scripts/setmediakeys-again-after-resetting-src.js

Issue 2546853003: Add W3C encrypted-media tests (Closed)
Patch Set: rebase now that content files landed Created 4 years 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
(Empty)
1 function runTest(config, qualifier) {
2 var testname = testnamePrefix(qualifier, config.keysystem)
3 + ', setmediakeys again after resetting src ';
4
5 var configuration = getSimpleConfigurationForContent(config.content);
6
7 if (config.initDataType && config.initData) {
8 configuration.initDataTypes = [config.initDataType];
9 }
10
11 async_test(function(test) {
12 var _video = config.video,
13 _access,
14 _mediaKeys,
15 _mediaKeySession,
16 _mediaSource;
17
18 function onFailure(error) {
19 forceTestFailureFromPromise(test, error);
20 }
21
22 function onMessage(event) {
23 config.messagehandler(event.messageType, event.message).then(functio n(response) {
24 _mediaKeySession.update(response).catch(onFailure).then(function () {
25 _video.play();
26 });
27 });
28 }
29
30 function onEncrypted(event) {
31 waitForEventAndRunStep('message', _mediaKeySession, onMessage, test) ;
32 _mediaKeySession.generateRequest( config.initData ? config.initDat aType : event.initDataType,
33 config.initData || event.initDat a )
34 .catch(onFailure);
35 }
36
37 function playVideoAndWaitForTimeupdate()
38 {
39 return new Promise(function(resolve) {
40 testmediasource(config).then(function(source) {
41 _mediaKeySession = _mediaKeys.createSession('temporary');
42 _video.src = URL.createObjectURL(source);
43 });
44 _video.addEventListener('timeupdate', function listener(event) {
45 if (event.target.currentTime < (config.duration || 1))
46 return;
47 _video.removeEventListener('timeupdate', listener);
48 resolve('success');
49 });
50 });
51 }
52
53 waitForEventAndRunStep('encrypted', _video, onEncrypted, test);
54 navigator.requestMediaKeySystemAccess(config.keysystem, [configuration]) .then(function(access) {
55 _access = access;
56 return _access.createMediaKeys();
57 }).then(function(result) {
58 _mediaKeys = result;
59 return _video.setMediaKeys(_mediaKeys);
60 }).then(function() {
61 return config.servercertificate ? _mediaKeys.setServerCertificate( c onfig.servercertificate ) : true;
62 }).then(function( success ) {
63 return playVideoAndWaitForTimeupdate();
64 }).then(function(results) {
65 return _access.createMediaKeys();
66 }).then(function(result) {
67 _mediaKeys = result;
68 _video.src = '';
69 return _video.setMediaKeys(_mediaKeys);
70 }).then(function() {
71 return config.servercertificate ? _mediaKeys.setServerCertificate( c onfig.servercertificate ) : true;
72 }).then(function( success ) {
73 return playVideoAndWaitForTimeupdate();
74 }).then(function() {
75 _video.src = '';
76 test.done();
77 }).catch(onFailure);
78 }, testname);
79 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698