Was macht das dritte Script?
Das dient der allgemeinen Funktion für Shadow, und hat darum auch kein Icon.
JavaScript
// userChromeShadow.uc.js by aborix
// 28.07.2022 FF104+ Fix: using PathUtils.join (Sören Hentzschel)
// https://www.camp-firefox.de/forum/thema/132865-shadowroot-neue-aufruf-methode-f%C3%BCr-css-regeln-wichtiges-update-28-07-2022/?postID=1175307#post1175307
(async function() {
if (location != 'chrome://browser/content/browser.xhtml') return;
try {
let path = PathUtils.join(PathUtils.profileDir, 'chrome', 'userChromeShadow.css');
let cssIn = await IOUtils.readUTF8(path);
let sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
let uri = makeURI('data:text/css;charset=UTF=8,' + encodeURIComponent(cssIn));
sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
} catch(e) {
console.log("UserChromeShadow-Error: " + e.name + ': ' + e.message );
};
})();
Alles anzeigen
Und dann noch:
JavaScript
// ruft die Datei Test - Shadow im Ordner CSSShadow direkt auf
(function() {
if (location != 'chrome://browser/content/browser.xhtml') return;
try {
Components.utils.import("resource:///modules/CustomizableUI.jsm");
CustomizableUI.createWidget({
id: "button-TestShadow",
defaultArea: CustomizableUI.AREA_NAVBAR,
removable: true,
label: "Test - Shadow.css",
tooltiptext: "Test - Shadow.css",
onClick: function(event) {
if (event.button != 0){
return;
}
var dir = Services.dirsvc.get('UChrm', Ci.nsIFile);
dir.append('CSSShadow');
dir.append('Test - Shadow.css');
dir.launch();
},
onCreated: function(aNode) {
aNode.style.listStyleImage = 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzA5QzA3NDI1OUJFMTFFMjkzMzREOTMyMThDMjMyQjIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzA5QzA3NDM1OUJFMTFFMjkzMzREOTMyMThDMjMyQjIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDMDlDMDc0MDU5QkUxMUUyOTMzNEQ5MzIxOEMyMzJCMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDMDlDMDc0MTU5QkUxMUUyOTMzNEQ5MzIxOEMyMzJCMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuDSWLwAAAKwSURBVHjajFJNSFRRFP7enRknp6koayqKNu6dzAQV3FhJWqEooTA4FUVQWRAhrTRKSNy3cmlSWm8cRxxTR8sKi0opClq5iDLNfhgdf9447+d03nPGZnYd3nkX7j3fd7/znYsDN8IEji2XQ79I+Unwy0SxOcJZmQ7dGiFKLFNJcRG53W7yer0UjUYpEAzKSEWKYNuVfqI1k+AxpQL+gLUKCZQe8/PzJslDEyfM377r4WkhSbjUNQ33ZieQWITkewR/8W4+NWDwFaqm80rokWV4PB6UlpTUB0MhWagLs106IbfI+NAc/hxF58VCKMtx0P0KdL76wQQ6Gnw+ZDnsyPfmYQ+DH3R3w+V2wzCMWlPAfs4Czh3x6JwlMfaHW6nrptybg6QpMdITCu9qpK3EMlqRe3vJzsCZZGJofAJV1bVQWfJKxzFw70ioKrIlgtQwYHlmdBzFwqqK7Tm7TGNgR1pI7INVBBvWdAlOu4DLaYN0Lozh5grLMHHhCeIdxzcwGQRca4VDCO5ZIHuTHdKZfoy1nEDr4BewDpifXYhMgpzGEC0lCFlCszZd2Q44zJt9fXh65yTahr5aJo68/QjqqkJ8VYMtReC51k+DTeVQVAOlLQOgSvZ9JYqs8xN43noKd4e/YVlR8PrTNKizBnpC4xbTFJhGtUW+I84HL25XQvL3mG4g0lyO9tEZOOy2JPg0oKnQjH9eWb6ZI/Rc7ZssK8yDktDRdGSvtdk+OsuFAqFn71h2PTur82MyrMdkwpxOB3iMSFEV7Gzsmywvzuex6WwWFzE4EHnDD6rOKiDDsMaWHBcEGykHgxvNTP2+V3049PI9XC4nm+hEYHxqA2xhGCBstvVMTsFcpfQxvh0LLZYFpK3mRZEaIBo3EDdlGwRkPhiIdRVLUuYJDnLa8P+h/xVgAFr+W65MY1bZAAAAAElFTkSuQmCC)';
return aNode;
}
});
} catch (e) {
Components.utils.reportError(e);
};
})();
Alles anzeigen
Und:
JavaScript
// ruft die Datei userChromeShadow.css direkt auf per neuem Button
(function() {
if (location != 'chrome://browser/content/browser.xhtml') return;
try {
Components.utils.import("resource:///modules/CustomizableUI.jsm");
CustomizableUI.createWidget({
id: "Shadowbutton",
defaultArea: CustomizableUI.AREA_NAVBAR,
removable: true,
label: "Shadowbutton",
tooltiptext: "userChromeShadow.css",
onClick: function(event) {
if (event.button != 0){
return;
}
var dir = Services.dirsvc.get('UChrm', Ci.nsIFile);
dir.append('userChromeShadow.css');
// dir.append('Test.css');
dir.launch();
},
onCreated: function(aNode) {
aNode.style.listStyleImage = 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAACGElEQVQokYWRT0iTcRjHv7+3vW5rbrmxvSZjEjmITupldrEOUWF0ELzULQhhlaekMlIoDwVBHYzq0MVAWkVg3QrSsiiYh4ZRk7nm2DvXnG3p3j9u794/vw5bK8Pyc3j4Pjx84fs8D6GUyg+78Qs5LwGwuRvlvFSv+APTbLqyKy8polLtd1z4IkYm1wDHsX0fx4f39A6mF97ZwmPVqdluJmFe4a5asZHy8TuWR2exGSTMK8nonN3KbDr+C7FkkDCvBHwN6zo0gwIwMUQzaLVuiM4QAJpBGQCqgeyqemhk3sGSxw/uh0b7pcSUyJLQaP/cvVPlbNTBkpSKlAoxMokwr8gajSxkcoJKKS1ImlDMVPSayAlqLvW5IGnFiiFrNCeoZDomdLXZpXXt/+mlUqkqGJvVnC+qA8HgQDBosWyrx63y+kOkKnxu+27OfuJWmgGgaeVEkk8keRNDGrebhq9c6zlyVDXI85dvZl69+La8ohoEANdzI3TOR6ZjQqvLEot+AtDe3qHrxo/Cdw/XrOsGgKln4wd7TwJoaWJZBp2HT9cMW34gk8nW7gugUKLv5zM7PVzA1/Avg9fb8tsgl5TYV36pUA74/LPpCoC9XtuTy32Xbt4+PxF3RcYSi4v+7r5VmQ5eHGKWZcZJRJuTS6fiALq8Rpub9XAYuvt0peIZOXNgranjeuitv7XZ6XIDIBMz8f2d/i13qPMTIMz9uyOVOjQAAAAASUVORK5CYII=)';
return aNode;
}
});
} catch (e) {
Components.utils.reportError(e);
};
})();
Alles anzeigen