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

Side by Side Diff: chrome/test/data/prerender/prerender_html5_common.js

Issue 9860027: Remove DemuxerFactory and URL parameter from Pipeline. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src
Patch Set: again Created 8 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | media/base/data_source.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 // Common js for the HTML5_* tests. The following variables need to be defined 5 // Common js for the HTML5_* tests. The following variables need to be defined
6 // before this js is included: 6 // before this js is included:
7 // - 'willPlay' - indicates if the media is expected to start playing during 7 // - 'willPlay' - indicates if the media is expected to start playing during
8 // the test. 8 // the test.
9 // - 'testNetworkEvents' - if set to true, the test will test for the 9 // - 'testNetworkEvents' - if set to true, the test will test for the
10 // loadstart and stalled events. NOTE that since the loadstart event fires 10 // loadstart and stalled events. NOTE that since the loadstart event fires
11 // very early, to test for it reliably, the source of the media tag 11 // very early, to test for it reliably, the source of the media tag
12 // should be added after this script is included or add 12 // should be added after this script is included or add
13 // 'onLoadStart=mediEventHandler' as an attribute to the media element. 13 // 'onLoadStart=mediEventHandler' as an attribute to the media element.
14 14
15 function assert(bool) { 15 function assert(bool) {
16 if (!bool) 16 if (!bool)
17 throw new Error('Assert Failed.'); 17 throw new Error('Assert Failed.');
18 } 18 }
19 19
20 var canPlaySeen = false; 20 var canPlaySeen = false;
21 var playingSeen = false; 21 var playingSeen = false;
22 var canPlayThroughSeen = false; 22 var canPlayThroughSeen = false;
23 var stalledSeen = false;
24 var loadStartSeen = false; 23 var loadStartSeen = false;
25 var hasError = false; 24 var hasError = false;
26 25
27 assert(typeof(willPlay) != 'undefined'); 26 assert(typeof(willPlay) != 'undefined');
28 assert(typeof(testNetworkEvents) != 'undefined'); 27 assert(typeof(testNetworkEvents) != 'undefined');
29 28
30 var mediaEl = document.getElementById("mediaEl"); 29 var mediaEl = document.getElementById("mediaEl");
31 30
32 function mediaEventHandler(e) { 31 function mediaEventHandler(e) {
33 switch (e.type) { 32 switch (e.type) {
34 case 'canplay': 33 case 'canplay':
35 canPlaySeen = true; 34 canPlaySeen = true;
36 break; 35 break;
37 case 'playing': 36 case 'playing':
38 assert(canPlaySeen); 37 assert(canPlaySeen);
39 playingSeen = true; 38 playingSeen = true;
40 break; 39 break;
41 case 'canplaythrough': 40 case 'canplaythrough':
42 assert(canPlaySeen); 41 assert(canPlaySeen);
43 canPlayThroughSeen = true; 42 canPlayThroughSeen = true;
44 break; 43 break;
45 case 'error': 44 case 'error':
46 hasError = true; 45 hasError = true;
47 break; 46 break;
48 case 'loadstart': 47 case 'loadstart':
49 loadStartSeen = true; 48 loadStartSeen = true;
50 break; 49 break;
51 case 'stalled': 50 case 'stalled':
52 assert(loadStartSeen); 51 // We should never see a stalled event during the display portion of the
53 stalledSeen = true; 52 // test.
53 assert(false);
54 break; 54 break;
55 } 55 }
56 56
57 var stallDone = !testNetworkEvents || stalledSeen;
58 var progressDone = (willPlay && canPlayThroughSeen && playingSeen) || 57 var progressDone = (willPlay && canPlayThroughSeen && playingSeen) ||
59 (!willPlay && canPlayThroughSeen && !playingSeen); 58 (!willPlay && canPlayThroughSeen && !playingSeen);
60 59
61 if (stallDone && progressDone) 60 if (progressDone)
62 document.title = 'PASS'; 61 document.title = 'PASS';
63 } 62 }
64 63
65 mediaEl.addEventListener('playing', mediaEventHandler, false); 64 mediaEl.addEventListener('playing', mediaEventHandler, false);
66 mediaEl.addEventListener('canplay', mediaEventHandler, false); 65 mediaEl.addEventListener('canplay', mediaEventHandler, false);
67 mediaEl.addEventListener('canplaythrough', mediaEventHandler, false); 66 mediaEl.addEventListener('canplaythrough', mediaEventHandler, false);
68 mediaEl.addEventListener('error', mediaEventHandler, false); 67 mediaEl.addEventListener('error', mediaEventHandler, false);
69 68
70 if (testNetworkEvents) { 69 if (testNetworkEvents) {
71 mediaEl.addEventListener('stalled', mediaEventHandler, false); 70 mediaEl.addEventListener('stalled', mediaEventHandler, false);
72 mediaEl.addEventListener('loadstart', mediaEventHandler, false); 71 mediaEl.addEventListener('loadstart', mediaEventHandler, false);
73 } 72 }
74 73
75 function DidPrerenderPass() { 74 function DidPrerenderPass() {
76 // The media should not have started at this point. 75 // The media should not have started at this point.
77 return !canPlaySeen && !playingSeen && !hasError && 76 return !canPlaySeen && !playingSeen && !hasError &&
78 mediaEl.currentTime == 0 && 77 mediaEl.currentTime == 0 &&
79 mediaEl.readyState == mediaEl.HAVE_NOTHING; 78 mediaEl.readyState == mediaEl.HAVE_NOTHING;
80 } 79 }
81 80
82 function DidDisplayPass() { 81 function DidDisplayPass() {
83 // The actual test is done via the TitleWatcher. 82 // The actual test is done via the TitleWatcher.
84 return true; 83 return true;
85 } 84 }
OLDNEW
« no previous file with comments | « no previous file | media/base/data_source.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698