1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/dom/tests/browser/browser_geolocation_privatebrowsing_perwindowpb.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,82 @@ 1.4 +function test() { 1.5 + var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch); 1.6 + let baseProvider = "http://mochi.test:8888/browser/dom/tests/browser/network_geolocation.sjs"; 1.7 + prefs.setCharPref("geo.wifi.uri", baseProvider + "?desired_access_token=fff"); 1.8 + 1.9 + prefs.setBoolPref("geo.prompt.testing", true); 1.10 + prefs.setBoolPref("geo.prompt.testing.allow", true); 1.11 + var origScanValue = true; // same default in NetworkGeolocationProvider.js. 1.12 + try { 1.13 + origScanValue = prefs.getBoolPref("geo.wifi.scan"); 1.14 + } catch(ex) {} 1.15 + prefs.setBoolPref("geo.wifi.scan", false); 1.16 + 1.17 + const testPageURL = "http://mochi.test:8888/browser/" + 1.18 + "dom/tests/browser/browser_geolocation_privatebrowsing_page.html"; 1.19 + waitForExplicitFinish(); 1.20 + 1.21 + var windowsToClose = []; 1.22 + function testOnWindow(aIsPrivate, aCallback) { 1.23 + let win = OpenBrowserWindow({private: aIsPrivate}); 1.24 + let gotLoad = false; 1.25 + let gotActivate = 1.26 + (Cc["@mozilla.org/focus-manager;1"].getService(Ci.nsIFocusManager).activeWindow == win); 1.27 + if (!gotActivate) { 1.28 + win.addEventListener("activate", function onActivate() { 1.29 + info("got activate"); 1.30 + win.removeEventListener("activate", onActivate, true); 1.31 + gotActivate = true; 1.32 + if (gotLoad) { 1.33 + windowsToClose.push(win); 1.34 + win.BrowserChromeTest.runWhenReady(function() { aCallback(win) }); 1.35 + } 1.36 + }, true); 1.37 + } else { 1.38 + info("Was activated"); 1.39 + } 1.40 + win.addEventListener("load", function onLoad() { 1.41 + info("Got load"); 1.42 + win.removeEventListener("load", onLoad, true); 1.43 + gotLoad = true; 1.44 + if (gotActivate) { 1.45 + windowsToClose.push(win); 1.46 + setTimeout(function() { aCallback(win) }, 1000); 1.47 + } 1.48 + }, true); 1.49 + } 1.50 + 1.51 + testOnWindow(false, function(aNormalWindow) { 1.52 + aNormalWindow.gBrowser.selectedBrowser.addEventListener("georesult", function load(ev) { 1.53 + aNormalWindow.gBrowser.selectedBrowser.removeEventListener("georesult", load, false); 1.54 + is(ev.detail, 200, "unexpected access token"); 1.55 + 1.56 + prefs.setCharPref("geo.wifi.uri", baseProvider + "?desired_access_token=ggg"); 1.57 + 1.58 + testOnWindow(true, function(aPrivateWindow) { 1.59 + aPrivateWindow.gBrowser.selectedBrowser.addEventListener("georesult", function load2(ev) { 1.60 + aPrivateWindow.gBrowser.selectedBrowser.removeEventListener("georesult", load2, false); 1.61 + is(ev.detail, 200, "unexpected access token"); 1.62 + 1.63 + prefs.setCharPref("geo.wifi.uri", baseProvider + "?expected_access_token=fff"); 1.64 + 1.65 + testOnWindow(false, function(aAnotherNormalWindow) { 1.66 + aAnotherNormalWindow.gBrowser.selectedBrowser.addEventListener("georesult", function load3(ev) { 1.67 + aAnotherNormalWindow.gBrowser.selectedBrowser.removeEventListener("georesult", load3, false); 1.68 + is(ev.detail, 200, "unexpected access token"); 1.69 + prefs.setBoolPref("geo.prompt.testing", false); 1.70 + prefs.setBoolPref("geo.prompt.testing.allow", false); 1.71 + prefs.setBoolPref("geo.wifi.scan", origScanValue); 1.72 + windowsToClose.forEach(function(win) { 1.73 + win.close(); 1.74 + }); 1.75 + finish(); 1.76 + }, false, true); 1.77 + aAnotherNormalWindow.content.location = testPageURL; 1.78 + }); 1.79 + }, false, true); 1.80 + aPrivateWindow.content.location = testPageURL; 1.81 + }); 1.82 + }, false, true); 1.83 + aNormalWindow.content.location = testPageURL; 1.84 + }); 1.85 +}