forked from Floorp-Projects/Floorp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathecho.pl
executable file
·112 lines (99 loc) · 3.25 KB
/
echo.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/usr/bin/perl
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
use Time::HiRes qw(gettimeofday tv_interval);
sub encodeHiResTime {
my $timeref = shift;
return unless ref($timeref);
my $time = $$timeref[0] . "-" . $$timeref[1];
return $time;
}
my $time = encodeHiResTime([gettimeofday()]);
print "Content-type: text/html\n\n";
print <<"ENDOFHTML";
<html>
<head>
<script>
var gServerTime = '$time';
function tokenizeQuery() {
var query = {};
var pairs = document.location.search.substring(1).split('&');
for (var i=0; i < pairs.length; i++) {
var pair = pairs[i].split('=');
query[pair[0]] = unescape(pair[1]);
}
return query;
}
function setLocationHref(aHref, aReplace) {
if (aReplace)
document.location.replace(aHref);
else
document.location.href = aHref;
}
var gHref;
function doNextRequest(aTime) {
function getValue(arg,def) {
return !isNaN(arg) ? parseInt(Number(arg)) : def;
}
var q = tokenizeQuery();
var delay = getValue(q['delay'], 0);
var now = (new Date()).getTime();
var c_intvl = now - c_ts;
var c_ts = now + delay; // adjust for delay time
// Now make the request ...
if (q['url']) {
gHref = q['url'] +
"?c_part=" + -1 + // bogo request is not recorded
"&index=" + 0 +
"&id=" + q['id'] +
"&maxcyc=" + q['maxcyc'] +
"&replace=" + q['replace'] +
"&nocache=" + q['nocache'] +
"&delay=" + delay +
"&timeout=" + q['timeout'] +
"&c_intvl=" + c_intvl +
"&s_ts=" + gServerTime +
"&c_ts=" + c_ts;
window.setTimeout("setLocationHref(gHref,false);", delay);
return true;
}
}
function startTest() {
if (window.innerHeight && window.innerWidth) {
// force a consistent region for layout and painting.
window.innerWidth=820;
window.innerHeight=620;
}
doNextRequest(0);
}
window.setTimeout("startTest()", 1000);
</script>
</head>
<body>
<p>
This page starts the test.
</p>
<p>
dummy page dummy page dummy page dummy page dummy page dummy page
dummy page dummy page dummy page dummy page dummy page dummy page
dummy page dummy page dummy page dummy page dummy page dummy page
dummy page dummy page dummy page dummy page dummy page dummy page
</p>
<p>
dummy page dummy page dummy page dummy page dummy page dummy page
dummy page dummy page dummy page dummy page dummy page dummy page
dummy page dummy page dummy page dummy page dummy page dummy page
dummy page dummy page dummy page dummy page dummy page dummy page
</p>
<p>
dummy page dummy page dummy page dummy page dummy page dummy page
dummy page dummy page dummy page dummy page dummy page dummy page
dummy page dummy page dummy page dummy page dummy page dummy page
dummy page dummy page dummy page dummy page dummy page dummy page
</p>
</body>
</html>
ENDOFHTML
exit 0;