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:
Beitrag
RE: Script Warnung beim Beenden funktioniert im Nightly 94 nicht mehr
Folgendes Skript funktioniert mit den letzten paar Nightlies. Da die Texte bei mehreren Tabs jetzt kürzer sind, habe ich auch hier die Texte kürzer gemacht. Sie stehen in den Zeilen 143 und 144.
(Quelltext, 197 Zeilen)
(Quelltext, 197 Zeilen)
aborix