Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

// 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"
);
}
});
is(
privateWin.gBrowser.tabs[0].label,
"New Private Tab",
"New tabs in the private browsing windows should have 'New Private Tab' as the title."
);
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"
);
}
});
is(
privateWin.gBrowser.tabs[0].label,
"New Tab",
"Normal tab title is used also in the permanent private browsing mode."
);
privateWin.close();
Services.prefs.clearUserPref("browser.privatebrowsing.autostart");
finish();
});
});
}