Chromium Code Reviews| Index: chrome/test/data/prerender/prerender_html5_audio_jsplay.html |
| diff --git a/chrome/test/data/prerender/prerender_html5_audio_jsplay.html b/chrome/test/data/prerender/prerender_html5_audio_jsplay.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..82bc4140c5c52e0c2719afc69a916149df69e165 |
| --- /dev/null |
| +++ b/chrome/test/data/prerender/prerender_html5_audio_jsplay.html |
| @@ -0,0 +1,62 @@ |
| +<html> |
| + <!-- |
| + This test checks that: |
| + - Audio tags are deferred during prerendering. |
| + - The audio starts playing on page swap in when it has been played by js. |
| + --> |
| +<head> |
| +<title>Prerender for HTML5 audio.</title> |
| +</head> |
| + |
| +<body> |
| +<audio id="audioEl" controls> |
| + <source src="bear.wav" type="audio/wav" /> |
| +</audio> |
| + |
| +<script> |
| +var canPlaySeen = false; |
| +var playingSeen = false; |
| +var canPlayThroughSeen = false; |
| +var hasError = false; |
| + |
| +var audioEl = document.getElementById("audioEl"); |
| +audioEl.play(); |
| + |
| +function audioEventHandler(e) { |
| + console.log(e.type); |
| + |
| + if (e.type == 'canplay') { |
|
scherkus (not reviewing)
2011/10/24 18:30:44
nit: I'd use a switch/case statement here instead
Shishir
2011/10/31 21:16:31
Done.
|
| + canPlaySeen = true; |
| + } else if (e.type == 'playing') { |
| + playingSeen = true; |
| + if (canPlayThroughSeen) |
| + document.title = "PASS"; |
| + } else if (e.type == 'error') { |
| + hasError = true; |
| + } else if (e.type == 'canplaythrough') { |
| + canPlayThroughSeen = true; |
| + if (playingSeen) |
| + document.title = "PASS"; |
| + } |
| +} |
| + |
| +audioEl.addEventListener('playing', audioEventHandler, false); |
|
scherkus (not reviewing)
2011/10/24 18:30:44
is it possible to move some of this code inside a
Shishir
2011/10/31 21:16:31
Done.
|
| +audioEl.addEventListener('canplay', audioEventHandler, false); |
| +audioEl.addEventListener('canplaythrough', audioEventHandler, false); |
| +audioEl.addEventListener('error', audioEventHandler, false); |
| + |
| +function DidPrerenderPass() { |
| + // The audio should not have started at this point. |
| + return !canPlaySeen && !playingSeen && !hasError && |
| + audioEl.currentTime == 0 && |
| + audioEl.readyState == audioEl.HAVE_NOTHING; |
| +} |
| + |
| +function DidDisplayPass() { |
| + // The actual test is done via the TitleWatcher. |
| + return true; |
| +} |
| + |
| +</script> |
| +</body> |
| +</html> |