Die Entwickler von Mozilla haben Informationen ĂŒber die PlĂ€ne zur UnterstĂŒtzung der zweiten und dritten Version des Chrome-Manifests in Firefox aktualisiert. Google plant, die UnterstĂŒtzung fĂŒr Add-ons, die die zweite Version des Manifests verwenden, im Juni dieses Jahres in den Testversionen von Chrome 127 (Dev, Canary und Beta) einzustellen. In der stabilen Version wird die UnterstĂŒtzung der zweiten Version des Manifests nicht vor Juli eingestellt.
Im Gegenzug wird Mozilla in naher Zukunft die UnterstĂŒtzung der zweiten Version des Manifests nicht einstellen und die Möglichkeit beibehalten, Add-ons auszufĂŒhren, die Funktionen verwenden, die in der dritten Version des Manifests nicht verfĂŒgbar sind. Die Entscheidung, die vollstĂ€ndige KompatibilitĂ€t mit der dritten Version des Chrome-Manifests in Firefox nicht zu gewĂ€hrleisten, bleibt bestehen. Die vollstĂ€ndige API webRequest wird in Firefox beibehalten, wĂ€hrend sie in Chrome in den Nur-Lese-Modus versetzt wird.
In Firefox wird auch durch den Mechanismus der Event Pages die UnterstĂŒtzung fĂŒr die AusfĂŒhrung von Hintergrundskripten auf Basis des DOM beibehalten, wĂ€hrend in der dritten Version des Manifests die Verwendung von Service Workers vorgeschrieben ist. Hintergrundskripte auf Basis von Service Workers werden in Firefox derzeit nicht unterstĂŒtzt, aber Entwicklern wird die Möglichkeit geboten, im Add-on sowohl Event Pages als auch Service Workers als Handler zu definieren, was die Erstellung von Add-ons ermöglicht, die mit der dritten Version des Manifests kompatibel sind und in Chrome sowie Firefox funktionieren.
Das Chrome-Manifest definiert die Funktionen und Ressourcen, die fĂŒr Add-ons verfĂŒgbar sind, die die API WebExtensions verwenden. Seit Version 57 hat Firefox vollstĂ€ndig auf die Verwendung der API WebExtensions zur Entwicklung von Add-ons umgestellt und die UnterstĂŒtzung fĂŒr die XUL-Technologie eingestellt. Der Ăbergang zu WebExtensions hat die Entwicklung von Add-ons mit den Plattformen Chrome, Opera, Safari und Edge vereinheitlicht, das Portieren von Add-ons zwischen verschiedenen Webbrowsern vereinfacht und die vollstĂ€ndige Nutzung des Mehrprozessmodus ermöglicht (WebExtensions-Add-ons können in separaten Prozessen ausgefĂŒhrt werden, isoliert von den anderen Teilen des Browsers). Um die Entwicklung von Add-ons mit anderen Browsern zu vereinheitlichen, wird in Firefox nahezu vollstĂ€ndige KompatibilitĂ€t mit der zweiten Version des Chrome-Manifests gewĂ€hrleistet.
Im Rahmen der Initiative zur Vereinfachung der Erstellung sicherer und leistungsfĂ€higer Erweiterungen sowie zur Erschwerung der Möglichkeit, unsichere und langsame Erweiterungen zu erstellen, hat Google die dritte Version des Manifests entwickelt. Die Hauptkritik an der dritten Version des Manifests resultiert aus der Umstellung des webRequest-API in einen Nur-Lese-Modus, der es ermöglichte, eigene Handler zu verbinden, die vollen Zugriff auf Netzwerkrequests hatten und den Verkehr in Echtzeit modifizieren konnten. Anstelle des webRequest-API wurde in der dritten Version des Manifests ein eingeschrĂ€nktes API, das declarativeNetRequest, hinzugefĂŒgt, das den Zugriff auf die integrierte Filtermaschine ermöglicht, die die Blockierungsregeln selbststĂ€ndig verarbeitet und die Verwendung eigener Filteralgorithmen nicht zulĂ€sst.
Zu den Besonderheiten der Implementierung der dritten Version des Manifests in Firefox gehören:
- Ein neuer deklarativer API zur Inhaltsfilterung wurde hinzugefĂŒgt, aber im Gegensatz zu Chrome wurde die UnterstĂŒtzung fĂŒr den alten blockierenden Modus des webRequest-API nicht eingestellt.
- Ein Mechanismus fĂŒr Event Pages wurde implementiert, der fĂŒr Webentwickler vertrauter ist, keine vollstĂ€ndige Ăberarbeitung von Erweiterungen erfordert und die EinschrĂ€nkungen im Zusammenhang mit der Verwendung von Service Workern beseitigt. Event Pages ermöglichen es, bestehende Erweiterungen mit Hintergrundseiten an die Anforderungen der dritten Version des Manifests anzupassen, wĂ€hrend der Zugang zu allen fĂŒr die Arbeit mit dem DOM erforderlichen Funktionen erhalten bleibt.
- Ein neues granuliertes Berechtigungsanforderungsmodell â eine Erweiterung kann nicht mehr sofort fĂŒr alle Seiten aktiviert werden (die Berechtigung âall_urlsâ wurde entfernt), sondern arbeitet nur im Kontext des aktiven Tabs, d.h. der Benutzer muss die Nutzung der Erweiterung fĂŒr jede Website bestĂ€tigen. In Firefox werden alle Anfragen nach Zugang zu den Daten einer Website als optional betrachtet, und die endgĂŒltige Entscheidung ĂŒber den Zugriff liegt beim Benutzer, der auswĂ€hlen kann, welcher Erweiterung die Erlaubnis zu seinen Daten auf einer bestimmten Website gewĂ€hrt werden soll.
Um die Berechtigungen zu verwalten, wurde im Interface die SchaltflĂ€che âUnified Extensionsâ hinzugefĂŒgt, um direkt zu steuern, auf welche Websites jede Erweiterung Zugriff hat â der Benutzer kann der Erweiterung den Zugang zu einer beliebigen Website gewĂ€hren oder entziehen. Die Verwaltung der Berechtigungen gilt nur fĂŒr Erweiterungen auf Basis des dritten Manifestes, fĂŒr Erweiterungen auf Basis des zweiten Manifestes erfolgt keine granulare Zugriffskontrolle auf Websites.

- Ănderung der Verarbeitung von Cross-Origin-Anfragen â gemÀà dem neuen Manifest unterliegen die Skripte zur Verarbeitung von Inhalten denselben BerechtigungsbeschrĂ€nkungen wie die Hauptseite, in die diese Skripte eingefĂŒgt werden (z.B. wenn die Seite keinen Zugriff auf die Standort-API hat, erhĂ€lt auch das Erweiterungsskript diesen Zugriff nicht). Diese Ănderung ist vollstĂ€ndig in Firefox implementiert.
- API basierend auf Promises. Firefox unterstĂŒtzt dieses API auch fĂŒr die dritte Version des Manifests.
- Verbot der AusfĂŒhrung von Code, der von externen Quellen geladen wird Server (es handelt sich um Situationen, in denen eine Erweiterung externen Code lĂ€dt und ausfĂŒhrt). In Firefox wird externe Code blockiert und die Entwickler von Mozilla haben zusĂ€tzliche Techniken zur Verfolgung von Code-Downloads hinzugefĂŒgt. FĂŒr die Skripte zur Verarbeitung von Inhalten wurde eine separate Politik zur EinschrĂ€nkung des Zugriffs auf Inhalte (CSP, Content Security Policy) eingefĂŒhrt.
Quelle: opennet.ru

