Die Mozilla-Stiftung hat einen Plan zur Umsetzung der dritten Version des Chrome-Manifests in Firefox veröffentlicht, das die Möglichkeiten und Ressourcen fĂŒr Erweiterungen definiert. Die dritte Version des Manifests wurde wegen der BeeintrĂ€chtigung der Funktion vieler Erweiterungen zur Blockierung unerwĂŒnschten Inhalts und zur GewĂ€hrleistung der Sicherheit kritisiert.
In Firefox sollen fast alle Funktionen und EinschrĂ€nkungen des neuen Manifests umgesetzt werden, einschlieĂlich der deklarativen API zur Inhaltsfilterung (declarativeNetRequest). Im Gegensatz zu Chrome wird in Firefox jedoch die UnterstĂŒtzung des alten blockierenden Modus der API webRequest nicht eingestellt, zumindest so lange, bis die neue API vollstĂ€ndig den BedĂŒrfnissen der Entwickler von Erweiterungen, die die API webRequest verwenden, gerecht wird. Dieser Ansatz wird die KompatibilitĂ€t mit Chrome-Erweiterungen ermöglichen, ohne die KompatibilitĂ€t mit Erweiterungen, die auf der API webRequest basieren, zu beeintrĂ€chtigen.
Erinnern wir uns daran, dass das Hauptunbehagen ĂŒber das neue Manifest mit der Umstellung der API webRequest auf den Nur-Lese-Modus verbunden ist, die das AnschlieĂen eigener Handler ermöglichte, die vollen Zugriff auf Netzwerkabfragen hatten und den Datenverkehr dynamisch modifizieren konnten. Diese API wird in uBlock Origin und vielen anderen Erweiterungen zur Blockierung unerwĂŒnschten Inhalts und zur GewĂ€hrleistung der Sicherheit verwendet. Statt der API webRequest wird eine eingeschrĂ€nkte API declarativeNetRequest vorgeschlagen, die den Zugriff auf die eingebaute Filter-Engine gewĂ€hrt, die die Blockierungsregeln selbst verarbeitet, ohne dass eigene Filteralgorithmen verwendet werden dĂŒrfen und komplizierte, ĂŒberlappende Regeln je nach Bedingungen definiert werden können.
Die UnterstĂŒtzung der dritten Version des Chrome-Manifests soll in Firefox Ende 2021 zu Testzwecken bereitgestellt werden, und die EinfĂŒhrung des neuen Manifests ist fĂŒr Anfang 2022 geplant. Zu den Besonderheiten der Umsetzung des neuen Manifests in Firefox gehören:
- Bereitstellung der API declarativeNetRequest, jedoch mit der Möglichkeit, die alte API webRequest weiterhin zu verwenden.
- Ănderung der Verarbeitung von Cross-Origin-Anfragen â gemÀà dem neuen Manifest gelten fĂŒr Skripte zur Verarbeitung von Inhalten dieselben BerechtigungsbeschrĂ€nkungen wie fĂŒr die Hauptseite, in die diese Skripte integriert werden (zum Beispiel, wenn die Seite keinen Zugang zur API zur Standortbestimmung hat, erhĂ€lt auch das Erweiterungsskript keinen Zugang). Ein Teil der mit den Cross-Origin-Anfragen verbundenen EinschrĂ€nkungen ist bereits in den Nachtsitzungen von Firefox zum Testen verfĂŒgbar (entwickelt als Teil des Fission-Projekts, das in about:preferences#experimental aktiviert werden kann) und soll im dritten Quartal 2021 allgemein eingefĂŒhrt werden.
- Hintergrundseiten werden durch Service Worker ersetzt, die als Hintergrundprozesse arbeiten. Diese Ănderung ist noch nicht bereit fĂŒr den Teststart.
- API basierend auf Promise. Firefox unterstĂŒtzt bereits diesen API-Typ im Namensraum âbrowser.*â und wird ihn fĂŒr die dritte Version des Manifests in den Namensraum âchrome.*â ĂŒbertragen.
- Ein neues granuliertes Berechtigungsanforderungsmodell â die Erweiterung kann sich nicht sofort fĂŒr alle Seiten aktivieren (die Berechtigung âall_urlsâ wurde entfernt), sondern funktioniert nur im Kontext des aktiven Tabs, d.h. der Benutzer muss die AktivitĂ€t der Erweiterung fĂŒr jede Website bestĂ€tigen. Mozilla arbeitet daran, den Zugriff zu verstĂ€rken, beabsichtigt jedoch, den Benutzern die Möglichkeit zu geben, selbst zu entscheiden, ob sie Erweiterungen auf verschiedenen Seiten zulassen möchten.
- Verbot der AusfĂŒhrung von Code, der von externen Quellen geladen wird Server (es geht um Situationen, in denen eine Erweiterung externen Code lĂ€dt und ausfĂŒhrt). In Firefox wird bereits das Laden externen Codes blockiert und Mozilla-Entwickler sind bereit, zusĂ€tzliche Techniken zur Nachverfolgung von Code-Downloads hinzuzufĂŒgen, die im dritten Versionsmanifest vorgeschlagen werden. FĂŒr Content-Handling-Skripte wird eine separate ZugriffsbeschrĂ€nkungspolitik (CSP, Content Security Policy) eingefĂŒhrt, und die bestehenden APIs userScripts und contentScripts werden ĂŒberarbeitet, um die UnterstĂŒtzung fĂŒr Erweiterungen auf Basis von Service Workers zu gewĂ€hrleisten.
Quelle: opennet.ru
