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

Side by Side Diff: media/test/data/player.html

Issue 2360443002: [Chromecast] Add CastMediaBlocker and BrowserTest (Closed)
Patch Set: Update player.html comment Created 4 years, 3 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
« no previous file with comments | « chromecast/browser/test/chromecast_shell_media_blocking_browser_test.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <html> 1 <html>
2 <body onload="RunTest();"> 2 <body onload="RunTest();">
3 <div id="player_container"></div> 3 <div id="player_container"></div>
4 </body> 4 </body>
5 5
6 <script type="text/javascript"> 6 <script type="text/javascript">
7 // <audio> or <video> player element. 7 // <audio> or <video> player element.
8 var player; 8 var player;
9 9
10 // Listen for |event| from |element|, set document.title = |event| upon event. 10 // Listen for |event| from |element|, set document.title = |event| upon event.
(...skipping 20 matching lines...) Expand all
31 31
32 function SeekTestTimeoutSetup() { 32 function SeekTestTimeoutSetup() {
33 if (player.currentTime < 2) 33 if (player.currentTime < 2)
34 return; 34 return;
35 35
36 player.removeEventListener('timeupdate', SeekTestTimeoutSetup, false); 36 player.removeEventListener('timeupdate', SeekTestTimeoutSetup, false);
37 SeekTestStep(); 37 SeekTestStep();
38 } 38 }
39 39
40 // Uses URL query parameters to create an audio or video element using a given 40 // Uses URL query parameters to create an audio or video element using a given
41 // source. URL must be of the form "player.html?[tag]=[media_url]". Plays the 41 // source. URL must be of the form:
42 // media and waits for X seconds of playback or the ended event, at which point 42 // "player.html?[tag]=[media_url](&loop=[true/false])".
xhwang 2016/09/22 21:42:37 nit: typically we use [] for optional parameters.
derekjchow1 2016/09/22 23:00:01 Done.
43 // the test seeks near the end of the file and resumes playback. Test completes 43 //
44 // when the second ended event occurs or an error event occurs at any time. 44 // Plays the media and waits for X seconds of playback or the ended event, at
45 // which point the test seeks near the end of the file and resumes playback.
46 // Test completes when the second ended event occurs or an error event occurs at
47 // any time.
48 // There is an optional loop query parameter which when set to true, will cause
49 // the created media element to loop.
45 function RunTest() { 50 function RunTest() {
46 var url_parts = window.location.href.split('?'); 51 var url_parts = window.location.href.split('?');
47 if (url_parts.length != 2) 52 if (url_parts.length != 2)
48 return Failed(); 53 return Failed();
49 54
50 var query_parts = url_parts[1].split('='); 55 var tag = '';
51 if (query_parts.length != 2) 56 var media_url = '';
57 var loop = false;
58
59 var query_params = url_parts[1].split('&');
60 for (var query_param in query_params) {
61 var query_parts = query_params[query_param].split('=');
62 if (query_parts.length != 2) {
63 return Failed();
64 }
65
66 if (query_parts[0] == 'audio' || query_parts[0] == 'video') {
67 tag = query_parts[0];
68 media_url = query_parts[1];
69 continue;
70 }
71
72 if (query_parts[0] == 'loop') {
73 loop = (query_parts[1] == 'true');
74 continue;
75 }
76 }
77
78 if (tag != 'audio' && tag != 'video') {
52 return Failed(); 79 return Failed();
53 80 }
54 var tag = query_parts[0];
55 var media_url = query_parts[1];
56 if (tag != 'audio' && tag != 'video')
57 return Failed();
58 81
59 // Create player and insert into DOM. 82 // Create player and insert into DOM.
60 player = document.createElement(tag); 83 player = document.createElement(tag);
61 player.controls = true; 84 player.controls = true;
62 document.getElementById('player_container').appendChild(player); 85 document.getElementById('player_container').appendChild(player);
63 86
64 player.addEventListener('loadedmetadata', function(e) { 87 player.addEventListener('loadedmetadata', function(e) {
65 document.title = '' + player.videoWidth + ' ' + player.videoHeight; 88 document.title = '' + player.videoWidth + ' ' + player.videoHeight;
66 }); 89 });
67 90
68 // Transition to the seek test after X seconds of playback or when the ended 91 // Transition to the seek test after X seconds of playback or when the ended
69 // event occurs, whichever happens first. 92 // event occurs, whichever happens first.
70 player.addEventListener('ended', SeekTestStep, false); 93 player.addEventListener('ended', SeekTestStep, false);
71 player.addEventListener('timeupdate', SeekTestTimeoutSetup, false); 94 player.addEventListener('timeupdate', SeekTestTimeoutSetup, false);
72 95
73 // Ensure we percolate up any error events. 96 // Ensure we percolate up any error events.
74 InstallTitleEventHandler(player, 'error'); 97 InstallTitleEventHandler(player, 'error');
75 98
76 // Starts the player. 99 // Starts the player.
100 player.loop = loop;
77 player.src = media_url; 101 player.src = media_url;
78 player.play(); 102 player.play();
79 } 103 }
80 </script> 104 </script>
81 </html> 105 </html>
OLDNEW
« no previous file with comments | « chromecast/browser/test/chromecast_shell_media_blocking_browser_test.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698