mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-02 01:48:05 +00:00
Bug 844561 - Avoid prompting about closing private windows unnecessarily. r=ehsan
This commit is contained in:
parent
c0251edf27
commit
47f3f605c4
@ -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;
|
||||
|
@ -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)
|
||||
|
13
browser/base/content/test/browser_private_no_prompt.js
Normal file
13
browser/base/content/test/browser_private_no_prompt.js
Normal file
@ -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);
|
||||
}
|
Loading…
Reference in New Issue
Block a user