- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / test / data / prerender / prerender_events_common.js
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // Common js for prerender loaders; defines the helper functions that put
6 // event handlers on prerenders and track the events for browser tests.
7
8 // TODO(gavinp): Put more common loader logic in here.
9
10 // Currently only errors with the ordering of Prerender events are caught.
11 var hadPrerenderEventErrors = false;
12
13 var receivedPrerenderStartEvents = [];
14 var receivedPrerenderLoadEvents = [];
15 var receivedPrerenderStopEvents = [];
16
17 function PrerenderStartHandler(index) {
18   if (receivedPrerenderStartEvents[index] ||
19       receivedPrerenderLoadEvents[index] ||
20       receivedPrerenderStopEvents[index]) {
21     hadPrerenderEventErrors = true;
22     return;
23   }
24   receivedPrerenderStartEvents[index] = true;
25 }
26
27 function PrerenderLoadHandler(index) {
28   if (!receivedPrerenderStartEvents[index] ||
29       receivedPrerenderStopEvents[index]) {
30     hadPrerenderEventErrors = true;
31     return;
32   }
33   if (!receivedPrerenderLoadEvents[index])
34     receivedPrerenderLoadEvents[index] = 0;
35   receivedPrerenderLoadEvents[index]++;
36 }
37
38 function PrerenderStopHandler(index) {
39   if (!receivedPrerenderStartEvents[index] ||
40       receivedPrerenderStopEvents[index]) {
41     hadPrerenderEventErrors = true;
42     return;
43   }
44   receivedPrerenderStopEvents[index] = true;
45 }
46
47 function AddEventHandlersToLinkElement(link, index) {
48   link.addEventListener('webkitprerenderstart',
49                         PrerenderStartHandler.bind(null, index), false);
50   link.addEventListener('webkitprerenderload',
51                         PrerenderLoadHandler.bind(null, index), false);
52   link.addEventListener('webkitprerenderstop',
53                         PrerenderStopHandler.bind(null, index), false);
54 }