diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js index 9223c88b8be..a3c9d51eee3 100644 --- a/browser/base/content/browser.js +++ b/browser/base/content/browser.js @@ -3494,17 +3494,16 @@ function OpenBrowserWindow(options) var wintype = document.documentElement.getAttribute('windowtype'); var extraFeatures = ""; - var forcePrivate = false; #ifdef MOZ_PER_WINDOW_PRIVATE_BROWSING - forcePrivate = typeof options == "object" && "private" in options && options.private; + if (typeof options == "object" && options.private) { #else - forcePrivate = gPrivateBrowsingUI.privateBrowsingEnabled; + if (gPrivateBrowsingUI.privateBrowsingEnabled) { #endif - - if (forcePrivate) { extraFeatures = ",private"; // Force the new window to load about:privatebrowsing instead of the default home page defaultArgs = "about:privatebrowsing"; + } else { + extraFeatures = ",non-private"; } // if and only if the current window is a browser window and it has a document with a character diff --git a/browser/base/content/test/browser_private_browsing_window.js b/browser/base/content/test/browser_private_browsing_window.js index 85ee31666f9..d71f98e27f5 100644 --- a/browser/base/content/test/browser_private_browsing_window.js +++ b/browser/base/content/test/browser_private_browsing_window.js @@ -1,11 +1,24 @@ // 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"); - privateWin.close(); + + 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(); + privateWin.close(); + finish(); + }); } diff --git a/browser/components/privatebrowsing/test/browser/global/browser_privatebrowsing_ui.js b/browser/components/privatebrowsing/test/browser/global/browser_privatebrowsing_ui.js index 35485012a64..679383dd763 100644 --- a/browser/components/privatebrowsing/test/browser/global/browser_privatebrowsing_ui.js +++ b/browser/components/privatebrowsing/test/browser/global/browser_privatebrowsing_ui.js @@ -40,7 +40,7 @@ function test() { Services.obs.removeObserver(observer1, "domwindowopened"); }, false); }, "domwindowopened", false); - OpenBrowserWindow(); + OpenBrowserWindow({private: PrivateBrowsingUtils.isWindowPrivate(window)}); } // test the gPrivateBrowsingUI object diff --git a/browser/components/privatebrowsing/test/browser/obsolete/browser_privatebrowsing_newwindow_stopcmd.js b/browser/components/privatebrowsing/test/browser/obsolete/browser_privatebrowsing_newwindow_stopcmd.js index 2c5c4a4b65e..979e171f369 100644 --- a/browser/components/privatebrowsing/test/browser/obsolete/browser_privatebrowsing_newwindow_stopcmd.js +++ b/browser/components/privatebrowsing/test/browser/obsolete/browser_privatebrowsing_newwindow_stopcmd.js @@ -13,7 +13,7 @@ function test() { pb.privateBrowsingEnabled = true; - let win = OpenBrowserWindow(); + let win = OpenBrowserWindow({private: PrivateBrowsingUtils.isWindowPrivate(window)}); win.addEventListener("load", function() { win.removeEventListener("load", arguments.callee, false); executeSoon(function() {