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

Unified Diff: chrome/test/data/prerender/prerender_html5_video_script.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_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>

Powered by Google App Engine
This is Rietveld 408576698