tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

webcam-simulacrum.sjs (1552B)


      1 /* Any copyright is dedicated to the Public Domain.
      2  * http://creativecommons.org/publicdomain/zero/1.0/
      3  */
      4 
      5 var counter = 2;
      6 var frames = ["red.gif", "blue.gif"];
      7 var timer = Cc["@mozilla.org/timer;1"];
      8 var partTimer = timer.createInstance(Ci.nsITimer);
      9 
     10 function getFileAsInputStream(aFilename) {
     11   var file = Services.dirsvc.get("CurWorkD", Ci.nsIFile);
     12 
     13   file.append("tests");
     14   file.append("image");
     15   file.append("test");
     16   file.append("mochitest");
     17   file.append(aFilename);
     18 
     19   var fileStream = Cc[
     20     "@mozilla.org/network/file-input-stream;1"
     21   ].createInstance(Ci.nsIFileInputStream);
     22   fileStream.init(file, 1, 0, false);
     23   return fileStream;
     24 }
     25 
     26 function handleRequest(request, response) {
     27   response.setHeader(
     28     "Content-Type",
     29     "multipart/x-mixed-replace;boundary=BOUNDARYOMG",
     30     false
     31   );
     32   response.setHeader("Cache-Control", "no-cache", false);
     33   response.setStatusLine(request.httpVersion, 200, "OK");
     34   response.processAsync();
     35   response.write("--BOUNDARYOMG\r\n");
     36   while (frames.length) {
     37     sendNextPart(response);
     38   }
     39   response.write("--BOUNDARYOMG--\r\n");
     40   response.finish();
     41 }
     42 
     43 function sendNextPart(response) {
     44   var nextPartHead = "Content-Type: image/gif\r\n\r\n";
     45   var inputStream = getFileAsInputStream(frames.shift());
     46   response.bodyOutputStream.write(nextPartHead, nextPartHead.length);
     47   response.bodyOutputStream.writeFrom(inputStream, inputStream.available());
     48   inputStream.close();
     49   // Toss in the boundary, so the browser can know this part is complete
     50   response.write("--BOUNDARYOMG\r\n");
     51 }