sjs_slow-response-test-server.sjs (998B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 "use strict"; 4 5 function handleRequest(request, response) { 6 response.processAsync(); 7 8 const params = new Map( 9 request.queryString 10 .replace("?", "") 11 .split("&") 12 .map(s => s.split("=")) 13 ); 14 const delay = params.has("delay") ? params.get("delay") : 300; 15 const status = params.has("status") ? params.get("status") : 200; 16 17 let timer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer); 18 timer.initWithCallback( 19 () => { 20 // to avoid garbage collection 21 timer = null; 22 response.setStatusLine(request.httpVersion, status, "OK"); 23 response.setHeader("Content-Type", "text/plain", false); 24 response.setHeader( 25 "Set-Cookie", 26 "foo=bar; Max-Age=10; HttpOnly; SameSite=Lax", 27 true 28 ); 29 response.write("Some response data"); 30 response.finish(); 31 }, 32 delay, 33 Ci.nsITimer.TYPE_ONE_SHOT 34 ); 35 }