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

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

Issue 11459003: Add Start/Stop event signalling on Prerenders. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years 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_page_removes_pending.html
diff --git a/chrome/test/data/prerender/prerender_page_removes_pending.html b/chrome/test/data/prerender/prerender_page_removes_pending.html
new file mode 100644
index 0000000000000000000000000000000000000000..04655a47ca42341866f68cc8a11a95a78232cf1e
--- /dev/null
+++ b/chrome/test/data/prerender/prerender_page_removes_pending.html
@@ -0,0 +1,48 @@
+<html>
+<!--
+This test checks to make sure that a pending prerenders which are canceled
+while pending never start.
mmenke 2012/12/17 17:08:18 nit "a pending prerenders which are" -> "pending p
gavinp 2012/12/17 20:34:02 Done.
+-->
+<link id=thePrerender rel=prerender href="does_not_exist.html" />
+<head>
+<title>Prerender Page</title>
+
+<script>
+var pageWasPrerendered = false;
+
+var receivedPrerenderStartEvents = Array();
+var receivedPrerenderStopEvents = Array();
+
+function MakePrerenderStartHandlerForLink(index) {
+ return function() { receivedPrerenderStartEvents[index] = true; };
+}
+
+function MakePrerenderStopHandlerForLink(index) {
+ return function() { receivedPrerenderStopEvents[index] = true; };
+}
+
+function DidPrerenderPass() {
+ pageWasPrerendered = true;
+ var link = document.getElementById('thePrerender');
+ if (link)
+ link.parentElement.removeChild(link)
+ return !receivedPrerenderStartEvents[1] && !receivedPrerenderStopEvents[1];
+}
+
+// Make sure DidPrerenderPass() was called first. Otherwise, the page was
+// most likely reloaded instead of using the prerendered page.
+function DidDisplayPass() {
+ return pageWasPrerendered && !receivedPrerenderStartEvents[1] &&
+ !receivedPrerenderStopEvents[1];
+}
+
+var link = document.getElementById('thePrerender');
+link.addEventListener('webkitprerenderstart',
+ MakePrerenderStartHandlerForLink(1), false);
+link.addEventListener('webkitprerenderstop',
+ MakePrerenderStopHandlerForLink(1), false);
+</script>
+
+</head>
+<body></body>
+</html>

Powered by Google App Engine
This is Rietveld 408576698