Etwas OT:
Laut Sören Hentzschel sollen ja immer mehr benutzerdefinierte Objekte in Shadow-Objekte umgewandelt werden.
Ich habe mir überlegt, dass es doch recht einfach möglich sein sollte, eine CSS-Datei, mit dem exakt gleichen Inhalt wie die 'userChrome.css'-Datei innerhalb eines JavaScripts in einen String zu laden, der dann nach dem üblichen Schema im Script zur Ausführung gebracht wird. Die 'userChrome.css' wird dann natürlich vorher gelöscht oder eben umbenannt.
Dann müsste man nicht den CSS-Code in das Script reinpfriemeln und verliert z.B. in Notepad++ nicht das Sysntax-Highlighting für 'css'. Das heißt man arbeitet genauso weiter wie vorher, kann aber jetzt die ganze '#shadow-root' Problematik umgehen.
Ich werde es mal versuchen, ob ich das mit dem Laden der Datei hinbekomme
( aborix und Sören Hentzschel würde es wahrscheinlich nur ein 'Fingerschnipser' kosten... )
Das Script müsste dann ungefähr wohl so aussehen ( 'mockup' )
// Script01.uc.js
(function() {
if (location != 'chrome://browser/content/browser.xhtml') return;
try {
let cssIn = LoadFile('Test.css'); //??????
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) { };
})();
Alles anzeigen
Edit: Ok, etwaige import-Befehle in der userChrome.css müssten natürlich noch berücksichtigt werden.