mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-07-11 06:29:02 +00:00
36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
const CC = Components.Constructor;
|
|
const BinaryInputStream = CC("@mozilla.org/binaryinputstream;1",
|
|
"nsIBinaryInputStream",
|
|
"setInputStream");
|
|
|
|
function handleRequest(request, response)
|
|
{
|
|
var query = {};
|
|
request.queryString.split('&').forEach(function (val) {
|
|
var [name, value] = val.split('=');
|
|
query[name] = unescape(value);
|
|
});
|
|
|
|
var bodyStream = new BinaryInputStream(request.bodyInputStream);
|
|
var bodyBytes = [];
|
|
while ((bodyAvail = bodyStream.available()) > 0)
|
|
Array.prototype.push.apply(bodyBytes, bodyStream.readByteArray(bodyAvail));
|
|
|
|
var body = decodeURIComponent(
|
|
escape(String.fromCharCode.apply(null, bodyBytes)));
|
|
|
|
var currentHop = query.hop ? parseInt(query.hop) : 0;
|
|
|
|
var obj = JSON.parse(body);
|
|
if (currentHop < obj.hops) {
|
|
var newURL = '/tests/dom/workers/test/serviceworkers/redirect_post.sjs?hop=' +
|
|
(1 + currentHop);
|
|
response.setStatusLine(null, 307, 'redirect');
|
|
response.setHeader('Location', newURL);
|
|
return;
|
|
}
|
|
|
|
response.setHeader('Content-Type', 'application/json');
|
|
response.write(body);
|
|
}
|