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

Unified Diff: chrome/test/data/prerender/prerender_html5_audio_jsplay.html

Issue 8095007: Defer loading of audio/video tags while prerendering. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Adding more tests and addressing all comments. Created 9 years, 2 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 side-by-side diff with in-line comments
Download patch
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>
« no previous file with comments | « chrome/test/data/prerender/prerender_html5_audio_autoplay.html ('k') | chrome/test/data/prerender/prerender_html5_video.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698