Hallo @ all..
mit dem aktuellen Nightly und auch der Beta, funktioniert dieses Script hier nicht mehr:
JavaScript
(function() {
if (window.__SSi != 'window0')
return;
const { BrowserGlue } = ChromeUtils.import('resource:///modules/BrowserGlue.jsm');
BrowserGlue.prototype._onQuitRequest = function BG__onQuitRequest(aCancelQuit, aQuitType) {
if (aCancelQuit instanceof Ci.nsISupportsPRBool && aCancelQuit.data) {
return;
}
if (aQuitType == "restart" || aQuitType == "os-restart") {
return;
}
var windowcount = 0;
var pagecount = 0;
let pinnedcount = 0;
for (let win of BrowserWindowTracker.orderedWindows) {
if (win.closed) {
continue;
}
windowcount++;
let tabbrowser = win.gBrowser;
if (tabbrowser) {
pinnedcount += tabbrowser._numPinnedTabs;
pagecount +=
tabbrowser.browsers.length -
tabbrowser._numPinnedTabs -
tabbrowser._removingTabs.length;
}
}
if (!aQuitType) {
aQuitType = "quit";
}
if (!Services.prefs.getBoolPref("browser.warnOnQuit")) {
return;
}
let sessionWillBeRestored =
Services.prefs.getIntPref("browser.startup.page") == 3 ||
Services.prefs.getBoolPref("browser.sessionstore.resume_session_once");
if (sessionWillBeRestored) {
if (
!Services.prefs.getBoolPref("browser.sessionstore.warnOnQuit", false)
) {
return;
}
} else if (!Services.prefs.getBoolPref("browser.tabs.warnOnClose")) {
return;
}
let win = BrowserWindowTracker.getTopWindow();
win.gDialogBox.replaceDialogIfOpen();
let warningMessage;
if (windowcount > 1) {
let tabSubstring = gTabBrowserBundle.GetStringFromName(
"tabs.closeWarningMultipleWindowsTabSnippet"
);
tabSubstring = PluralForm.get(pagecount, tabSubstring).replace(
/#1/,
pagecount
);
let stringID = sessionWillBeRestored
? "tabs.closeWarningMultipleWindowsSessionRestore3"
: "tabs.closeWarningMultipleWindows2";
let windowString = gTabBrowserBundle.GetStringFromName(stringID);
windowString = PluralForm.get(windowcount, windowString).replace(
/#1/,
windowcount
);
warningMessage = windowString.replace(/%(?:1\$)?S/i, tabSubstring);
} else {
let stringID = sessionWillBeRestored
? "tabs.closeWarningMultipleTabsSessionRestore"
: "tabs.closeWarningMultipleTabs";
warningMessage = gTabBrowserBundle.GetStringFromName(stringID);
warningMessage = PluralForm.get(pagecount, warningMessage).replace(
"#1",
pagecount
);
}
let warnOnClose = { value: true };
let titleId =
AppConstants.platform == "win"
? "tabs.closeTabsAndQuitTitleWin"
: "tabs.closeTabsAndQuitTitle";
let flags =
Services.prompt.BUTTON_TITLE_IS_STRING * Services.prompt.BUTTON_POS_0 +
Services.prompt.BUTTON_TITLE_CANCEL * Services.prompt.BUTTON_POS_1;
let checkboxLabel = !sessionWillBeRestored
? gTabBrowserBundle.GetStringFromName("tabs.closeWarningPrompt")
: null;
let buttonPressed;
if (pagecount < 2) {
buttonPressed = Services.prompt.confirmEx(
win,
" Firefox und diesen Tab schließen?",
"Du bist dabei, Firefox und diesen Tab zu schließen. " +
"Soll dieser Vorgang fortgesetzt werden?",
flags,
"Firefox schließen",
null,
null,
null,
warnOnClose
);
} else {
buttonPressed = Services.prompt.confirmEx(
win,
gTabBrowserBundle.GetStringFromName(titleId),
warningMessage,
flags,
gTabBrowserBundle.GetStringFromName("tabs.closeButtonMultiple"),
null,
null,
checkboxLabel,
warnOnClose
);
}
Services.telemetry.setEventRecordingEnabled("close_tab_warning", true);
let warnCheckbox = warnOnClose.value ? "checked" : "unchecked";
if (!checkboxLabel) {
warnCheckbox = "not-present";
}
Services.telemetry.recordEvent(
"close_tab_warning",
"shown",
"application",
null,
{
source: this._quitSource,
button: buttonPressed == 0 ? "close" : "cancel",
warn_checkbox: warnCheckbox,
closing_wins: "" + windowcount,
closing_tabs: "" + (pagecount + pinnedcount),
will_restore: sessionWillBeRestored ? "yes" : "no",
}
);
this._quitSource = "unknown";
if (!sessionWillBeRestored && buttonPressed == 0 && !warnOnClose.value) {
Services.prefs.setBoolPref("browser.tabs.warnOnClose", false);
}
aCancelQuit.data = buttonPressed != 0;
}
})();
Alles anzeigen
Der Firefox wird ohne jegliche Warnung geschlossen.
Ohne das Script funktioniert diese Einstellung einwandfrei:
Ab 2 Tabs kommt die Warnung.
Das Script erstellt schon bei einem Tab den Hinweis:
Kann das jemand bestätigen?
Danke wie immer für jegliche Hilfe.
Edit:
Hat sich mit diesem Script erledigt: