Lediglich das im Menü Datei funktioniert nicht mehr. Möglicherweise liegt es dort am Eventhandler onclick:
Wenn, dann nur indirekt. Es gibt noch keine Content Security Policy (CSP), welche Inline-Handler verbietet. Indirekt kann es natürlich sein, dass Mozilla aus dieser Motivation heraus Anpassungen vorgenommen hat, ein Detail jetzt etwas anders funktioniert und das betroffene Script daran angepasst werden muss.
Ehrlich gesagt weiß ich gar nicht, ob eine CSP das auch blockieren würde, wenn das on*-Attribut überhaupt erst via Script gesetzt wird. Was Mozilla macht, ist, die entsprechenden Attribute aus dem HTML zu entfernen. Falls das so nicht mehr funktioniert, wäre der Umbau aber auch nicht schwer (falls es sonst kein weiteres Problem gibt). Man setzt dann eben nicht mehr das onclick-Attribut und dann den Code als String, sondern verwendet die addEventListener-Methode und schreibt den Code direkt, also nicht als String, was ohne die nervigen „\“ nach jeder Zeile auch angenehmer anzupassen ist und darüber hinaus hier im Forum auch noch den Vorteil hat, dass man für diesen Teil dann auch Syntax-Highlighting bekommt, wenn man den Code teilt. So sieht beispielsweise das erste Script aus Beitrag #2 umgebaut aus:
// RestartFirefoxButtonM.uc.js
// v. 0.3.unicorn
(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.createXULElement('toolbarbutton');
var props = {
id: 'restart-button2a',
class: 'toolbarbutton-1 chromeclass-toolbar-additional',
label: 'Neustart',
tooltiptext: 'Neustart (mit Rechts- 2 und Linksklick 0 wird userChrome.js-Cache geleert)',
style: 'list-style-image: url(file:///C:/Users/weiss/AppData/Roaming/Mozilla/Firefox/Profiles/i3gghgwc.default/chrome/Icons/refresh.svg)'
};
for (var p in props)
toolbaritem.setAttribute(p, props[p]);
toolbaritem.addEventListener('click', event => {
if (event.button == 1) {
Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit);
}
if (event.button == 0 || event.button == 2) {
event.preventDefault();
Services.appinfo.invalidateCachesOnRestart();
Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit);
}
});
return toolbaritem;
}
});
} catch (e) {
}
})();
Alles anzeigen
Der Code in Beitrag #9 ist an mehreren Stellen fehlerhaft, der dürfte so nicht funktionieren: Am Ende von Zeile 10 steht ein Komma statt einer schließenden Klammer und auch in der letzten Zeile wird nicht korrekt geschlossen, was in der ersten Zeile begonnen wurde.