Index: chrome/test/data/prerender/prerender_html5_video_script.html |
diff --git a/chrome/test/data/prerender/prerender_html5_video_script.html b/chrome/test/data/prerender/prerender_html5_video_script.html |
index 9e6595145253793a41e1be9e13eb47d3bf9e3f5a..717a9a4ccdbd263f28267d5a9e0e91f113cc8479 100644 |
--- a/chrome/test/data/prerender/prerender_html5_video_script.html |
+++ b/chrome/test/data/prerender/prerender_html5_video_script.html |
@@ -1,20 +1,67 @@ |
<html> |
<!-- |
- This test checks that prerender is cancelled when an video starts playing |
- through javascript. |
+ This test checks that video tags created by javascript are are deferred |
+ during prerendering and the autoplay is enabled during swap ins. |
--> |
- <head> |
- <title>Prerender cancellation for HTML5 video.</title> |
- </head> |
- <body> |
- <div id="vid"> |
- </div> |
- |
- <script> |
- var videoTag = document.createElement("video"); |
- videoTag.src = "nonexistant.mp4"; |
- var element = document.getElementById("vid"); |
- element.appendChild(videoTag); |
- </script> |
- </body> |
+<head> |
+<title>Prerender for HTML5 video.</title> |
+</head> |
+ |
+<body> |
+<div id="vid"> |
+</div> |
+ |
+<script> |
+ var videoTag = document.createElement("video"); |
+ videoTag.src = "bear.ogv" |
+ videoTag.id = "videoEl"; |
+ var element = document.getElementById("vid"); |
+ element.appendChild(videoTag); |
+</script> |
+ |
+<script> |
+var canPlaySeen = false; |
+var playingSeen = false; |
+var hasError = false; |
+var canPlayThroughSeen = false; |
+ |
+var videoEl = document.getElementById("videoEl"); |
+videoEl.play(); |
+ |
+function videoEventHandler(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"; |
+ } |
+} |
+ |
+videoEl.addEventListener('playing', videoEventHandler, false); |
+videoEl.addEventListener('canplay', videoEventHandler, false); |
+videoEl.addEventListener('canplaythrough', videoEventHandler, false); |
+videoEl.addEventListener('error', videoEventHandler, false); |
+ |
+function DidPrerenderPass() { |
+ // The video should not have started at this point. |
+ return !canPlaySeen && !playingSeen && !hasError && |
+ videoEl.currentTime == 0 && |
+ videoEl.readyState == videoEl.HAVE_NOTHING; |
+} |
+ |
+function DidDisplayPass() { |
+ // The actual test is done via the TitleWatcher. |
+ return true; |
+} |
+ |
+</script> |
+</body> |
</html> |