content/base/test/bug638112.sjs

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

     1 function getInputStream(path)
     2 {
     3   var file = Components.classes["@mozilla.org/file/directory_service;1"].
     4                         getService(Components.interfaces.nsIProperties).
     5                         get("CurWorkD", Components.interfaces.nsILocalFile);
     6   var fis  = Components.classes['@mozilla.org/network/file-input-stream;1'].
     7                         createInstance(Components.interfaces.nsIFileInputStream);
     8   var split = path.split("/");
     9   for(var i = 0; i < split.length; ++i) {
    10     file.append(split[i]);
    11   }
    12   fis.init(file, -1, -1, false);
    13   return fis;
    14 }
    18 function handleRequest(request, response)
    19 {
    20   var inputStream = getInputStream("tests/content/base/test/bug638112-response.txt")
    21   response.seizePower();
    22   response.bodyOutputStream.writeFrom(inputStream,
    23                                       inputStream.available());
    24   response.finish();
    25   inputStream.close();
    26 }

mercurial