Tue, 06 Jan 2015 21:39:09 +0100
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 }