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

Side by Side Diff: chrome/test/data/media/eme_player_js/player.js

Issue 308553002: Integrate browser tests with new EME player. (Closed) Base URL: http://git.chromium.org/chromium/src.git@eme_player
Patch Set: Created 6 years, 6 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 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Prepares a video element for playback by setting default event handlers 5 // Prepares a video element for playback by setting default event handlers
6 // and source attribute. 6 // and source attribute.
7 function InitPlayer(player, video) { 7 function InitPlayer(player, video) {
8 Utils.timeLog('Registering video event handlers.'); 8 Utils.timeLog('Registering video event handlers.');
9 9
10 // Map from event name to event listener function name. It is common for 10 // Map from event name to event listener function name. It is common for
11 // event listeners to be named onEventName. 11 // event listeners to be named onEventName.
12 var eventListenerMap = { 12 var eventListenerMap = {
13 'needkey': 'onNeedKey', 13 'needkey': 'onNeedKey',
14 'webkitneedkey': 'onWebkitNeedKey', 14 'webkitneedkey': 'onWebkitNeedKey',
15 'webkitkeymessage': 'onWebkitKeyMessage', 15 'webkitkeymessage': 'onWebkitKeyMessage',
16 'webkitkeyadded': 'onWebkitKeyAdded', 16 'webkitkeyadded': 'onWebkitKeyAdded',
17 'webkitkeyerror': 'onWebkitKeyError',
17 'error': 'onError', 18 'error': 'onError',
18 'abort': 'onAbort' 19 'abort': 'onAbort'
19 }; 20 };
20 21
21 // List of events that fail tests. 22 // List of events that fail tests.
22 var failingEvents = ['error', 'onAbort']; 23 var failingEvents = ['error', 'onAbort'];
jrummell 2014/05/29 21:45:05 I'm confused. The first entry is event name, the s
shadi 2014/05/31 00:31:37 Done.
23 24
24 for (eventName in eventListenerMap) { 25 for (eventName in eventListenerMap) {
25 video.addEventListener(eventName, 26 video.addEventListener(eventName,
26 player[eventListenerMap[eventName]] || function(){}); 27 player[eventListenerMap[eventName]] || function(){});
27 } 28 }
28 29
29 for (var i = 0; i < failingEvents.length; i++) { 30 for (var i = 0; i < failingEvents.length; i++) {
30 video.addEventListener(failingEvents[i], Utils.failTest); 31 video.addEventListener(failingEvents[i], Utils.failTest);
31 } 32 }
32 33
33 if (TestConfig.useSRC) { 34 if (TestConfig.useSRC) {
34 Utils.timeLog('Loading media using src.'); 35 Utils.timeLog('Loading media using src.');
35 video.src = TestConfig.mediaFile; 36 video.src = TestConfig.mediaFile;
36 } else { 37 } else {
37 var mediaSource = MediaSourceUtils.loadMediaSourceForTest(); 38 var mediaSource = MediaSourceUtils.loadMediaSourceForTest();
38 video.src = window.URL.createObjectURL(mediaSource); 39 video.src = window.URL.createObjectURL(mediaSource);
39 } 40 }
40 } 41 }
41 42
42 function InitEMEPlayer(player, video) { 43 function InitEMEPlayer(player, video) {
43 player.onNeedKey = function(message) { 44 player.onNeedKey = function(message) {
44 Utils.timeLog('Creating new media key session for contentType: ' + 45 Utils.timeLog('Creating new media key session for contentType: ' +
45 message.contentType + ', initData: ' + 46 message.contentType + ', initData: ' +
46 Utils.getHexString(message.initData)); 47 Utils.getHexString(message.initData));
47 try { 48 try {
48 var mediaKeySession = message.target.mediaKeys.createSession( 49 var mediaKeySession = message.target.mediaKeys.createSession(
49 message.contentType, message.initData); 50 message.contentType, message.initData);
50 mediaKeySession.addEventListener('message', player.onMessage); 51 mediaKeySession.addEventListener('message', player.onMessage);
52 mediaKeySession.addEventListener('message', function(message) {
53 video.receivedKeyMessage = true;
54 if (Utils.isHeartBeatMessage(message.message)) {
55 Utils.timeLog('MediaKeySession onMessage - heart beat', message);
56 video.receivedHeartbeat = true;
57 return;
jrummell 2014/05/29 21:45:05 The return is not really necessary.
shadi 2014/05/31 00:31:37 Done.
58 }
59 });
51 mediaKeySession.addEventListener('error', function(error) { 60 mediaKeySession.addEventListener('error', function(error) {
52 Utils.failTest(error); 61 Utils.failTest(error, KEY_ERROR);
53 }); 62 });
54 } catch (e) { 63 } catch (error) {
ddorwin 2014/05/30 17:42:56 This is really an "exception". I think "e" is prob
shadi 2014/05/31 00:31:37 Done.
55 Utils.failTest(e); 64 Utils.failTest(error);
56 } 65 }
57 }; 66 };
58 67
59 InitPlayer(player, video); 68 InitPlayer(player, video);
60 try { 69 try {
61 Utils.timeLog('Setting video media keys: ' + TestConfig.keySystem); 70 Utils.timeLog('Setting video media keys: ' + TestConfig.keySystem);
62 video.setMediaKeys(new MediaKeys(TestConfig.keySystem)); 71 video.setMediaKeys(new MediaKeys(TestConfig.keySystem));
63 } catch (e) { 72 } catch (e) {
64 Utils.failTest(e); 73 Utils.failTest(e);
65 } 74 }
66 } 75 }
67 76
68 function InitPrefixedEMEPlayer(player, video) { 77 function InitPrefixedEMEPlayer(player, video) {
69 player.onWebkitNeedKey = function(message) { 78 player.onWebkitNeedKey = function(message) {
70 Utils.timeLog(TestConfig.keySystem + ' Generate key request, initData: ' + 79 Utils.timeLog(TestConfig.keySystem + ' Generate key request, initData: ' +
71 Utils.getHexString(message.initData)); 80 Utils.getHexString(message.initData));
72 message.target.webkitGenerateKeyRequest( 81 try {
73 TestConfig.keySystem, message.initData); 82 message.target.webkitGenerateKeyRequest(
83 TestConfig.keySystem, message.initData);
84 } catch(error) {
85 Utils.failTest(error);
86 }
74 }; 87 };
75 88
76 player.onWebkitKeyAdded = function(message) { 89 player.onWebkitKeyAdded = function(message) {
77 Utils.timeLog('onWebkitKeyAdded', message); 90 Utils.timeLog('onWebkitKeyAdded', message);
78 message.target.hasKeyAdded = true; 91 message.target.receivedKeyAdded = true;
79 }; 92 };
80 93
94 video.addEventListener('webkitkeyerror', function(error) {
jrummell 2014/05/29 21:45:05 Curious why some events are done as play.onWebKitx
shadi 2014/05/31 00:31:37 The disadvantage of using player.[event_name] here
95 Utils.timeLog('onWebkitKeyError', error);
96 Utils.failTest(error, KEY_ERROR);
97 });
98
99 video.addEventListener('webkitkeymessage', function(message) {
100 Utils.timeLog('onWebkitKeyMessage', message);
101 message.target.receivedKeyMessage = true;
102 if (Utils.isHeartBeatMessage(message.message)) {
103 Utils.timeLog('onWebkitKeyMessage - heart beat', message);
104 message.target.receivedHeartbeat = true;
105 return;
106 }
107 });
108
81 InitPlayer(player, video); 109 InitPlayer(player, video);
82 } 110 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698