
Ich möchte auf jeder Seite Erweiterungen wie Vimium und einen Farbinverter verwenden können, einschließlich der integrierten Funktionen wie chrome://settings
oder about:newtab
.
Weder Firefox noch Chromium erlauben es Erweiterungen, integrierte Seiten zu ändern.
Kann dieses Verhalten geändert werden? Ich bin keinem bestimmten Browser zugetan, ich brauche es nur, damit es in einem von beiden funktioniert. Ich spiele gerne mit den Quellen herum und kompiliere sie bei Bedarf neu.
Antwort1
WebExtensions können Seiten nicht ändern about:
, chrome://
daher kann das von Ihnen erwähnte Verhalten nicht geändert werden. Dies ist die einzige Erweiterungs-API, die sowohl von Firefox als auch von Chrome unterstützt wird, da ersterer die Unterstützung für XUL-Erweiterungen eingestellt hat.
Erweiterungen können Inhaltsskripte in Tabs einfügen, die URL-Mustern oder bestimmten Tabs entsprechen tabs.executeScript()
. Beide Methoden verwenden ein „Übereinstimmungsmuster“ für die Zielseite, das mit beginnt und , , , oder (für Firefox) <scheme>
sein muss , sodass jeglicher Zugriff auf oder URLs unmöglich ist. Die CSS-Injektions-API verwendet ebenfalls das Übereinstimmungsmuster und kann nicht zum Ändern geschützter Seiten verwendet werden.http[s]
file
ftp
app
chrome://
about:
tabs.insertCSS()
Erweiterungen können auch Hintergrundskripte haben, die keinen Zugriff auf Webseiten haben und diese indirekt über Inhaltsskripte ändern müssen, sodass sie denselben Beschränkungen unterliegen.
Da der Quellcode sowohl von Firefox als auch von Chromium verfügbar ist, können Sie sicherlich die erforderlichen Änderungen vornehmen, um Erweiterungen zusätzliche Berechtigungen zu erteilen. So etwas Einfaches wie einen Schalter zur Kompilierungszeit gibt es jedoch nicht.
Über ein Hintergrundskript registrierte Tastaturkürzel sind auf allen Seiten wirksam, aber die für wirklich beliebige Tastenkombinationen erforderliche API existiert derzeit nicht. Wenn Sie Firefox gestalten, können Sie möglicherweise about:
Seiten mit userChrome.css
Änderungen beeinflussen.
https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Match_patterns https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/Tabs/executeScript https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/tabs/insertCSS https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Background_scripts