diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js index c0c19619e578..be1b21ebd74e 100644 --- a/browser/base/content/browser.js +++ b/browser/base/content/browser.js @@ -6398,20 +6398,20 @@ function warnAboutClosingWindow() { // Figure out if there's at least one other browser window around. let e = Services.wm.getEnumerator("navigator:browser"); let otherPBWindowExists = false; - let warnAboutClosingTabs = false; + let nonPopupPresent = false; while (e.hasMoreElements()) { let win = e.getNext(); if (win != window) { if (isPBWindow && PrivateBrowsingUtils.isWindowPrivate(win)) otherPBWindowExists = true; if (win.toolbar.visible) - warnAboutClosingTabs = true; + nonPopupPresent = true; // If the current window is not in private browsing mode we don't need to // look for other pb windows, we can leave the loop when finding the // first non-popup window. If however the current window is in private // browsing mode then we need at least one other pb and one non-popup // window to break out early. - if ((!isPBWindow || otherPBWindowExists) && warnAboutClosingTabs) + if ((!isPBWindow || otherPBWindowExists) && nonPopupPresent) break; } } @@ -6426,7 +6426,8 @@ function warnAboutClosingWindow() { if (exitingCanceled.data) return false; } - if (warnAboutClosingTabs) + + if (!isPBWindow && nonPopupPresent) return gBrowser.warnAboutClosingTabs(true); let os = Services.obs; diff --git a/browser/base/content/test/Makefile.in b/browser/base/content/test/Makefile.in index 20a6721dfd22..0cf195b166a1 100644 --- a/browser/base/content/test/Makefile.in +++ b/browser/base/content/test/Makefile.in @@ -313,6 +313,7 @@ _BROWSER_FILES = \ feed_tab.html \ browser_pluginCrashCommentAndURL.js \ pluginCrashCommentAndURL.html \ + browser_private_no_prompt.js \ $(NULL) # Disable test on Windows due to frequent failures (bug 841341) diff --git a/browser/base/content/test/browser_private_no_prompt.js b/browser/base/content/test/browser_private_no_prompt.js new file mode 100644 index 000000000000..17ab1b4373c8 --- /dev/null +++ b/browser/base/content/test/browser_private_no_prompt.js @@ -0,0 +1,13 @@ +function test() { + waitForExplicitFinish(); + var privateWin = OpenBrowserWindow({private: true}); + privateWin.addEventListener("load", function onload() { + privateWin.removeEventListener("load", onload, false); + ok(true, "Load listener called"); + + privateWin.BrowserOpenTab(); + privateWin.BrowserTryToCloseWindow(); + ok(true, "didn't prompt"); + finish(); + }, false); +} \ No newline at end of file