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 function test() {
2 var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
3 let baseProvider = "http://mochi.test:8888/browser/dom/tests/browser/network_geolocation.sjs";
4 prefs.setCharPref("geo.wifi.uri", baseProvider + "?desired_access_token=fff");
6 prefs.setBoolPref("geo.prompt.testing", true);
7 prefs.setBoolPref("geo.prompt.testing.allow", true);
8 var origScanValue = true; // same default in NetworkGeolocationProvider.js.
9 try {
10 origScanValue = prefs.getBoolPref("geo.wifi.scan");
11 } catch(ex) {}
12 prefs.setBoolPref("geo.wifi.scan", false);
14 const testPageURL = "http://mochi.test:8888/browser/" +
15 "dom/tests/browser/browser_geolocation_privatebrowsing_page.html";
16 waitForExplicitFinish();
18 var windowsToClose = [];
19 function testOnWindow(aIsPrivate, aCallback) {
20 let win = OpenBrowserWindow({private: aIsPrivate});
21 let gotLoad = false;
22 let gotActivate =
23 (Cc["@mozilla.org/focus-manager;1"].getService(Ci.nsIFocusManager).activeWindow == win);
24 if (!gotActivate) {
25 win.addEventListener("activate", function onActivate() {
26 info("got activate");
27 win.removeEventListener("activate", onActivate, true);
28 gotActivate = true;
29 if (gotLoad) {
30 windowsToClose.push(win);
31 win.BrowserChromeTest.runWhenReady(function() { aCallback(win) });
32 }
33 }, true);
34 } else {
35 info("Was activated");
36 }
37 win.addEventListener("load", function onLoad() {
38 info("Got load");
39 win.removeEventListener("load", onLoad, true);
40 gotLoad = true;
41 if (gotActivate) {
42 windowsToClose.push(win);
43 setTimeout(function() { aCallback(win) }, 1000);
44 }
45 }, true);
46 }
48 testOnWindow(false, function(aNormalWindow) {
49 aNormalWindow.gBrowser.selectedBrowser.addEventListener("georesult", function load(ev) {
50 aNormalWindow.gBrowser.selectedBrowser.removeEventListener("georesult", load, false);
51 is(ev.detail, 200, "unexpected access token");
53 prefs.setCharPref("geo.wifi.uri", baseProvider + "?desired_access_token=ggg");
55 testOnWindow(true, function(aPrivateWindow) {
56 aPrivateWindow.gBrowser.selectedBrowser.addEventListener("georesult", function load2(ev) {
57 aPrivateWindow.gBrowser.selectedBrowser.removeEventListener("georesult", load2, false);
58 is(ev.detail, 200, "unexpected access token");
60 prefs.setCharPref("geo.wifi.uri", baseProvider + "?expected_access_token=fff");
62 testOnWindow(false, function(aAnotherNormalWindow) {
63 aAnotherNormalWindow.gBrowser.selectedBrowser.addEventListener("georesult", function load3(ev) {
64 aAnotherNormalWindow.gBrowser.selectedBrowser.removeEventListener("georesult", load3, false);
65 is(ev.detail, 200, "unexpected access token");
66 prefs.setBoolPref("geo.prompt.testing", false);
67 prefs.setBoolPref("geo.prompt.testing.allow", false);
68 prefs.setBoolPref("geo.wifi.scan", origScanValue);
69 windowsToClose.forEach(function(win) {
70 win.close();
71 });
72 finish();
73 }, false, true);
74 aAnotherNormalWindow.content.location = testPageURL;
75 });
76 }, false, true);
77 aPrivateWindow.content.location = testPageURL;
78 });
79 }, false, true);
80 aNormalWindow.content.location = testPageURL;
81 });
82 }