|
1 var timer; |
|
2 |
|
3 function armTimer(response) { |
|
4 timer = Components.classes["@mozilla.org/timer;1"] |
|
5 .createInstance(Components.interfaces.nsITimer); |
|
6 timer.initWithCallback(function() { |
|
7 if (getState("docwritepreloadssecond") == "second" && getState("docwritepreloadsthird") == "third") { |
|
8 response.write("ok(true, 'Second and third scripts should have started loading while the first one is loading');"); |
|
9 response.finish(); |
|
10 } else { |
|
11 armTimer(response); |
|
12 } |
|
13 }, 20, Components.interfaces.nsITimer.TYPE_ONE_SHOT); |
|
14 } |
|
15 |
|
16 function handleRequest(request, response) |
|
17 { |
|
18 response.setHeader("Cache-Control", "no-cache", false); |
|
19 response.setHeader("Content-Type", "text/javascript", false); |
|
20 if (request.queryString.indexOf("first") != -1) { |
|
21 response.write("// first\n"); |
|
22 response.processAsync(); |
|
23 armTimer(response); |
|
24 } else if (request.queryString.indexOf("second") != -1) { |
|
25 response.write("// second\n"); |
|
26 setState("docwritepreloadssecond", "second"); |
|
27 } else { |
|
28 response.write("// third\n"); |
|
29 setState("docwritepreloadsthird", "third"); |
|
30 } |
|
31 } |
|
32 |