// Make sure that we can open private browsing windows function test() { waitForExplicitFinish(); var nonPrivateWin = OpenBrowserWindow(); ok(!PrivateBrowsingUtils.isWindowPrivate(nonPrivateWin), "OpenBrowserWindow() should open a normal window"); nonPrivateWin.close(); var privateWin = OpenBrowserWindow({private: true}); ok(PrivateBrowsingUtils.isWindowPrivate(privateWin), "OpenBrowserWindow({private: true}) should open a private window"); nonPrivateWin = OpenBrowserWindow({private: false}); ok(!PrivateBrowsingUtils.isWindowPrivate(nonPrivateWin), "OpenBrowserWindow({private: false}) should open a normal window"); nonPrivateWin.close(); whenDelayedStartupFinished(privateWin, function() { nonPrivateWin = privateWin.OpenBrowserWindow({private: false}); ok(!PrivateBrowsingUtils.isWindowPrivate(nonPrivateWin), "privateWin.OpenBrowserWindow({private: false}) should open a normal window"); nonPrivateWin.close(); [ { normal: "menu_newNavigator", private: "menu_newPrivateWindow", accesskey: true }, { normal: "appmenu_newNavigator", private: "appmenu_newPrivateWindow", accesskey: false }, ].forEach(function(menu) { let newWindow = privateWin.document.getElementById(menu.normal); let newPrivateWindow = privateWin.document.getElementById(menu.private); if (newWindow && newPrivateWindow) { ok(!newPrivateWindow.hidden, "New Private Window menu item should be hidden"); isnot(newWindow.label, newPrivateWindow.label, "New Window's label shouldn't be overwritten"); if (menu.accesskey) { isnot(newWindow.accessKey, newPrivateWindow.accessKey, "New Window's accessKey shouldn't be overwritten"); } isnot(newWindow.command, newPrivateWindow.command, "New Window's command shouldn't be overwritten"); } }); privateWin.close(); Services.prefs.setBoolPref("browser.privatebrowsing.autostart", true); privateWin = OpenBrowserWindow({private: true}); whenDelayedStartupFinished(privateWin, function() { [ { normal: "menu_newNavigator", private: "menu_newPrivateWindow", accessKey: true }, { normal: "appmenu_newNavigator", private: "appmenu_newPrivateWindow", accessKey: false }, ].forEach(function(menu) { let newWindow = privateWin.document.getElementById(menu.normal); let newPrivateWindow = privateWin.document.getElementById(menu.private); if (newWindow && newPrivateWindow) { ok(newPrivateWindow.hidden, "New Private Window menu item should be hidden"); is(newWindow.label, newPrivateWindow.label, "New Window's label should be overwritten"); if (menu.accesskey) { is(newWindow.accessKey, newPrivateWindow.accessKey, "New Window's accessKey should be overwritten"); } is(newWindow.command, newPrivateWindow.command, "New Window's command should be overwritten"); } }); privateWin.close(); Services.prefs.clearUserPref("browser.privatebrowsing.autostart"); finish(); }); }); }