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