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

Unified Diff: chrome/test/data/prerender/prerender_events_common.js

Issue 170173003: Revert of Re-enable prerender RemovingLink browser tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 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
« no previous file with comments | « chrome/browser/prerender/prerender_browsertest.cc ('k') | chrome/test/data/prerender/prerender_loader.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/data/prerender/prerender_events_common.js
diff --git a/chrome/test/data/prerender/prerender_events_common.js b/chrome/test/data/prerender/prerender_events_common.js
index 6d125e1e0a20ef9ee82fe263d2b282db2c47c048..7903b3eddd9cb69bdf70d35beee5e208a9e1d90d 100644
--- a/chrome/test/data/prerender/prerender_events_common.js
+++ b/chrome/test/data/prerender/prerender_events_common.js
@@ -10,98 +10,71 @@
// Currently only errors with the ordering of Prerender events are caught.
var hadPrerenderEventErrors = false;
-var receivedPrerenderEvents = {
- 'webkitprerenderstart': [],
- 'webkitprerenderdomcontentloaded': [],
- 'webkitprerenderload': [],
- 'webkitprerenderstop': [],
-}
-// A list of callbacks to be called on every prerender event. Each callback
-// returns true if it should never be called again, or false to remain in the
-// list and be called on future events. These are used to implement
-// WaitForPrerenderEventCount.
-var prerenderEventCallbacks = [];
+var receivedPrerenderStartEvents = [];
+var receivedPrerenderLoadEvents = [];
+var receivedPrerenderDomContentLoadedEvents = [];
+var receivedPrerenderStopEvents = [];
-function GetPrerenderEventCount(index, type) {
- return receivedPrerenderEvents[type][index] || 0;
+function PrerenderStartHandler(index) {
+ if (receivedPrerenderStartEvents[index] ||
+ receivedPrerenderLoadEvents[index] ||
+ receivedPrerenderStopEvents[index]) {
+ hadPrerenderEventErrors = true;
+ return;
+ }
+ receivedPrerenderStartEvents[index] = true;
}
-function PrerenderEventHandler(index, ev) {
- // Check for errors.
- if (ev.type == 'webkitprerenderstart') {
- // No event may preceed start.
- if (GetPrerenderEventCount(index, 'webkitprerenderstart') ||
- GetPrerenderEventCount(index, 'webkitprerenderdomcontentloaded') ||
- GetPrerenderEventCount(index, 'webkitprerenderload') ||
- GetPrerenderEventCount(index, 'webkitprerenderstop')) {
- hadPrerenderEventErrors = true;
- }
- } else {
- // There may be multiple load or domcontentloaded events, but they must not
- // come after start and must come before stop. And there may be at most one
- // start. Note that stop may be delivered without any load events.
- if (!GetPrerenderEventCount(index, 'webkitprerenderstart') ||
- GetPrerenderEventCount(index, 'webkitprerenderstop')) {
- hadPrerenderEventErrors = true;
- }
+function PrerenderLoadHandler(index) {
+ if (!receivedPrerenderStartEvents[index] ||
+ receivedPrerenderStopEvents[index]) {
+ hadPrerenderEventErrors = true;
+ return;
}
-
- // Update count.
- receivedPrerenderEvents[ev.type][index] =
- (receivedPrerenderEvents[ev.type][index] || 0) + 1;
-
- // Run all callbacks. Remove the ones that are done.
- prerenderEventCallbacks = prerenderEventCallbacks.filter(function(callback) {
- return !callback();
- });
+ if (!receivedPrerenderLoadEvents[index])
+ receivedPrerenderLoadEvents[index] = 0;
+ receivedPrerenderLoadEvents[index]++;
}
-// Calls |callback| when at least |count| instances of event |type| have been
-// observed for prerender |index|.
-function WaitForPrerenderEventCount(index, type, count, callback) {
- var checkCount = function() {
- if (GetPrerenderEventCount(index, type) >= count) {
- callback();
- return true;
- }
- return false;
- };
- if (!checkCount())
- prerenderEventCallbacks.push(checkCount);
+function PrerenderDomContentLoadedHandler(index) {
+ if (!receivedPrerenderStartEvents[index] ||
+ receivedPrerenderStopEvents[index]) {
+ hadPrerenderEventErrors = true;
+ return;
+ }
+ if (!receivedPrerenderDomContentLoadedEvents[index])
+ receivedPrerenderDomContentLoadedEvents[index] = 0;
+ receivedPrerenderDomContentLoadedEvents[index]++;
+}
+
+function PrerenderStopHandler(index) {
+ if (!receivedPrerenderStartEvents[index] ||
+ receivedPrerenderStopEvents[index]) {
+ hadPrerenderEventErrors = true;
+ return;
+ }
+ receivedPrerenderStopEvents[index] = true;
}
function AddEventHandlersToLinkElement(link, index) {
link.addEventListener('webkitprerenderstart',
- PrerenderEventHandler.bind(null, index), false);
+ PrerenderStartHandler.bind(null, index), false);
+ link.addEventListener('webkitprerenderload',
+ PrerenderLoadHandler.bind(null, index), false);
link.addEventListener('webkitprerenderdomcontentloaded',
- PrerenderEventHandler.bind(null, index), false);
- link.addEventListener('webkitprerenderload',
- PrerenderEventHandler.bind(null, index), false);
+ PrerenderDomContentLoadedHandler.bind(null, index),
+ false);
link.addEventListener('webkitprerenderstop',
- PrerenderEventHandler.bind(null, index), false);
+ PrerenderStopHandler.bind(null, index), false);
}
function AddPrerender(url, index) {
var link = document.createElement('link');
- link.id = 'prerenderElement' + index;
link.rel = 'prerender';
link.href = url;
AddEventHandlersToLinkElement(link, index);
document.body.appendChild(link);
return link;
-}
-
-function RemoveLinkElement(index) {
- var link = document.getElementById('prerenderElement' + index);
- link.parentElement.removeChild(link);
-}
-
-function ExtractGetParameterBadlyAndInsecurely(param, defaultValue) {
- var re = RegExp('[&?]' + param + '=([^&?#]*)');
- var result = re.exec(document.location);
- if (result)
- return result[1];
- return defaultValue;
}
function AddAnchor(href, target) {
« no previous file with comments | « chrome/browser/prerender/prerender_browsertest.cc ('k') | chrome/test/data/prerender/prerender_loader.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698