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

Unified Diff: chrome/test/data/prerender/prerender_html5_audio_autoplay.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_autoplay.html
diff --git a/chrome/test/data/prerender/prerender_html5_audio_autoplay.html b/chrome/test/data/prerender/prerender_html5_audio_autoplay.html
new file mode 100644
index 0000000000000000000000000000000000000000..66e207fbba56d6c2289ee397d5f5b0ad4989a1de
--- /dev/null
+++ b/chrome/test/data/prerender/prerender_html5_audio_autoplay.html
@@ -0,0 +1,61 @@
+<html>
+ <!--
+ This test checks that:
+ - Audio tags are deferred during prerendering.
+ - The audio starts playing on page swap in when autoplay is set.
+ -->
+<head>
+<title>Prerender for HTML5 audio.</title>
+</head>
+
+<body>
+<audio id="audioEl" controls autoplay>
+ <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");
+
+function audioEventHandler(e) {
+ console.log(e.type);
+
+ if (e.type == 'canplay') {
+ 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);
+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>

Powered by Google App Engine
This is Rietveld 408576698