dom/tests/mochitest/ajax/offline/obsoletingManifest.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 var manifest =
     2   "CACHE MANIFEST\n" +
     3   "obsolete.html\n";
     5 function handleRequest(request, response)
     6 {
     7   var match = request.queryString.match(/^state=(.*)$/);
     8   if (match)
     9   {
    10     response.setStatusLine(request.httpVersion, 204, "No content");
    11     response.setHeader("Cache-Control", "no-cache");
    12     setState("offline.obsoletingManifest", match[1]);
    13   }
    15   if (request.queryString == "")
    16   {
    17     switch (getState("offline.obsoletingManifest"))
    18     {
    19       case "": // The default value
    20         response.setStatusLine(request.httpVersion, 404, "Not found");
    21         response.setHeader("Cache-Control", "no-cache");
    22         break;
    23       case "manifestPresent":
    24         response.setStatusLine(request.httpVersion, 200, "Ok");
    25         response.setHeader("Content-Type", "text/cache-manifest");
    26         response.setHeader("Cache-Control", "no-cache");
    27         response.write(manifest);
    28         break;
    29     }
    30   }
    31 }

mercurial