mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-28 03:17:31 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
94
dom/base/test/bug704320_counter.sjs
Normal file
94
dom/base/test/bug704320_counter.sjs
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
// Handle counting loads for bug 704320.
|
||||
|
||||
const SHARED_KEY="bug704320_counter";
|
||||
const DEFAULT_STATE = {'css': {'count': 0, 'referrers': []},
|
||||
'img': {'count': 0, 'referrers': []},
|
||||
'js': {'count': 0, 'referrers': []}};
|
||||
const TYPE_MAP = {'css': 'text/css',
|
||||
'js': 'application/javascript',
|
||||
'img': 'image/png',
|
||||
'html': 'text/html'};
|
||||
|
||||
// Writes an image to the response
|
||||
function WriteOutImage(response)
|
||||
{
|
||||
var file = Components.classes["@mozilla.org/file/directory_service;1"]
|
||||
.getService(Components.interfaces.nsIProperties)
|
||||
.get("CurWorkD", Components.interfaces.nsIFile);
|
||||
|
||||
file.append("tests");
|
||||
file.append("image");
|
||||
file.append("test");
|
||||
file.append("mochitest");
|
||||
file.append('blue.png');
|
||||
|
||||
var fileStream = Components.classes['@mozilla.org/network/file-input-stream;1']
|
||||
.createInstance(Components.interfaces.nsIFileInputStream);
|
||||
fileStream.init(file, 1, 0, false);
|
||||
response.bodyOutputStream.writeFrom(fileStream, fileStream.available());
|
||||
}
|
||||
|
||||
function handleRequest(request, response)
|
||||
{
|
||||
var query = {};
|
||||
request.queryString.split('&').forEach(function (val) {
|
||||
var [name, value] = val.split('=');
|
||||
query[name] = unescape(value);
|
||||
});
|
||||
|
||||
var referrerLevel = "none";
|
||||
if (request.hasHeader('Referer')) {
|
||||
let referrer = request.getHeader('Referer');
|
||||
if (referrer.indexOf("bug704320") > 0) {
|
||||
referrerLevel = "full";
|
||||
} else if (referrer == "http://mochi.test:8888/") {
|
||||
referrerLevel = "origin";
|
||||
}
|
||||
}
|
||||
|
||||
var state = getSharedState(SHARED_KEY);
|
||||
if (state === '') {
|
||||
state = DEFAULT_STATE;
|
||||
} else {
|
||||
state = JSON.parse(state);
|
||||
}
|
||||
|
||||
response.setStatusLine(request.httpVersion, 200, "OK");
|
||||
|
||||
|
||||
//avoid confusing cache behaviors
|
||||
response.setHeader("Cache-Control", "no-cache", false);
|
||||
|
||||
if ("reset" in query) {
|
||||
//reset server state
|
||||
setSharedState(SHARED_KEY, JSON.stringify(DEFAULT_STATE));
|
||||
//serve any CSS that we want to use.
|
||||
response.write("");
|
||||
return;
|
||||
}
|
||||
|
||||
if ("results" in query) {
|
||||
response.setHeader("Content-Type", "text/javascript", false);
|
||||
response.write(JSON.stringify(state));
|
||||
return;
|
||||
}
|
||||
|
||||
if ('type' in query) {
|
||||
state[query.type].count++;
|
||||
response.setHeader("Content-Type", TYPE_MAP[query.type], false);
|
||||
if (state[query.type].referrers.indexOf(referrerLevel) < 0) {
|
||||
state[query.type].referrers.push(referrerLevel);
|
||||
}
|
||||
|
||||
if (query.type == 'img') {
|
||||
WriteOutImage(response);
|
||||
}
|
||||
}
|
||||
|
||||
if ('content' in query) {
|
||||
response.write(unescape(query['content']));
|
||||
}
|
||||
|
||||
setSharedState(SHARED_KEY, JSON.stringify(state));
|
||||
return;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue