- Firefox-Version
- 138.0.1 (64-Bit)
- Betriebssystem
- Windows 10 Version 22H2 (Build 19044.5737)
Es geistern hier onBoard ja einige Versionen dieses Skriptes herum.
Ich habe mich mal diesem angenommen und es fit gemacht.
JavaScript
// Restart_Firefox.uc.js
// RestartFirefoxButtonM.uc.js
// v. 0.8
// Source file https://www.camp-firefox.de/forum/thema/126132/?postID=1093563#post1093563
// Source file https://www.camp-firefox.de/forum/thema/139338/?postID=1271880#post1271880
/* ----------------------------------------------------------------------------------- */
/* Zu beachten ist, dass die Grafiken sich im richtigen Ordner befinden müssen */
/* %appdata%\Mozilla\Firefox\Profiles\"Profilname"\chrome\icons */
/* ----------------------------------------------------------------------------------- */
// Linksklick if (event.button == 0)
// Mittelklick if (event.button == 1)
// Rechtsklick if (event.button == 2)
(function() {
if (location.href !== 'chrome://browser/content/browser.xhtml') return;
try {
CustomizableUI.createWidget({
id: 'restart-button2a',
type: 'custom',
defaultArea: CustomizableUI.AREA_NAVBAR,
onBuild: function(aDocument) {
var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
let props = {
id: 'restart-button2a',
class: 'toolbarbutton-1 chromeclass-toolbar-additional',
label: 'Neustart',
tooltiptext: 'Neustart (inkl. SkriptCache Löschen)',
// Hier wird die Hintergrundfarbe und die Iconfarbe direkt gesetzt
//style: 'background-color: #FF5733; color: white;'
//style: 'color: #f60000;',
};
for (let p in props)
toolbaritem.setAttribute(p, props[p]);
// Pfad zum Profilordner
let ProfilePath = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");
// Pfad in den entsprechenden Unterordner
let IconPath = '/chrome/icons/';
// Name & Dateiendung des anzuzeigenden Symbols!
let ButtonIcon = "restart.svg";
// Erstelle ein img-Element, um zu überprüfen, ob die Grafik geladen werden kann
let img = new Image();
img.src = "file:" + ProfilePath + IconPath + ButtonIcon;
img.onload = function() {
// Wenn die Grafik geladen werden kann, setze das listStyleImage
toolbaritem.style.listStyleImage = 'url("' + ("file:" + ProfilePath + IconPath + ButtonIcon) + '")';
toolbaritem.style.fill = 'red'; // Hier wird die Iconfarbe direkt gesetzt
};
img.onerror = function() {
// Wenn die Grafik nicht geladen werden kann, verwende das Fallback-Icon
toolbaritem.style.listStyleImage = 'url("chrome://browser/skin/fxa/avatar-empty.svg")';
toolbaritem.style.fill = 'red'; // Hier wird die Iconfarbe direkt gesetzt
};
return toolbaritem;
}
});
} catch(e) { };
document.getElementById('restart-button2a').addEventListener('click', event => {
// rechte Maus Neustart
if (event.button == 2) {
Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit);
}
// linke Maus Neustart mit Löschung des Start-Caches
if (event.button == 0) {
event.preventDefault();
Services.appinfo.invalidateCachesOnRestart();
Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit);
}
// Mittelklick
if (event.button == 1) {
// event.preventDefault();
// Services.appinfo.invalidateCachesOnRestart();
// Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit);
openTrustedLinkIn("about:config", "tab");
}
});
let sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService);
let uri = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent(`
#restart-button2a.toolbarbutton-1.chromeclass-toolbar-additional image.toolbarbutton-icon {
width: 32px !important;
height: 32px !important;
}
`), null, null);
sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
})();
Alles anzeigen