Ab dem 21. November wird das AMO-Katalog (addons.mozilla.org) digitale Signaturen für Erweiterungen akzeptieren und verifizieren, die die dritte Version des Chrome-Manifests nutzen. Diese Erweiterungen können in den Nachtausgaben von Firefox getestet werden. Die Unterstützung der dritten Manifestversion wird in der stabilen Version von Firefox 109, die für den 17. Januar 2023 geplant ist, aktiviert. Die Unterstützung der zweiten Manifestversion wird in naher Zukunft erhalten bleiben, jedoch wird Ende 2023, nach einer Bewertung des Fortschritts bei der Migration der Erweiterungen zur dritten Manifestversion, eine Entscheidung zur möglichen Abwertung der Unterstützung der zweiten Manifestversion getroffen.
Das Chrome-Manifest definiert die Möglichkeiten und Ressourcen, die für Erweiterungen verfügbar sind, die unter Verwendung der WebExtensions-API entwickelt wurden. Seit Version 57 hat Firefox vollständig auf die Nutzung der WebExtensions-API für die Entwicklung von Erweiterungen umgestellt und die Unterstützung der XUL-Technologie eingestellt. Der Umstieg auf WebExtensions hat es ermöglicht, die Entwicklung von Erweiterungen mit den Plattformen Chrome, Opera, Safari und Edge zu vereinheitlichen, das Portieren von Erweiterungen zwischen verschiedenen Webbrowsern zu erleichtern und die vollständige Nutzung des Multiprozessmodus zu ermöglichen (WebExtensions-Erweiterungen können in separaten Prozessen ausgeführt werden, isoliert von den anderen Teilen des Browsers). Um die Entwicklung von Erweiterungen mit anderen Browsern zu vereinheitlichen, bietet Firefox eine nahezu vollständige Kompatibilität mit der zweiten Version des Chrome-Manifests.
Momentan arbeitet Chrome am Übergang zur dritten Version des Manifests, während die Unterstützung der zweiten Version im Januar 2024 eingestellt wird. Das Hauptziel der Änderungen in der neuen Version ist es, die Erstellung von sicheren und leistungsstarken Erweiterungen zu erleichtern und die Möglichkeit zur Erstellung von unsicheren und langsamen Erweiterungen zu erschweren. Da die dritte Version des Manifests kritisiert wurde und zu Funktionsstörungen vieler Erweiterungen zur Blockierung unerwünschten Inhalts und zur Sicherheit führen könnte, hat Mozilla entschieden, von der vollständigen Kompatibilität mit dem Manifest in Firefox abzusehen und einige Änderungen anders umzusetzen.
Die Hauptbeschwerde über die dritte Version des Manifests betrifft die Umstellung des API webRequest auf den Nur-Lese-Modus, der es ermöglichte, eigene Handler zu integrieren, die vollen Zugriff auf Netzwerk-Anfragen hatten und den Datenverkehr in Echtzeit modifizieren konnten. Dieses API wird in uBlock Origin und vielen anderen Erweiterungen verwendet, um unerwünschte Inhalte zu blockieren und die Sicherheit zu gewährleisten. Anstelle des API webRequest wurde in der dritten Version des Manifests ein eingeschränktes API namens declarativeNetRequest vorgeschlagen, das Zugriff auf eine interne Filter-Engine gewährt, die die Blockierungsregeln selbständig verarbeitet, keine eigenen Filteralgorithmen zulässt und keine komplexen Regeln unterstützt, die sich je nach Bedingungen überschneiden.
Zu den besonderen Merkmalen der Implementierung des neuen Manifests in Firefox gehören:
- Ein neues deklaratives API zur Filterung von Inhalten wurde hinzugefügt, jedoch wurde im Gegensatz zu Chrome die Unterstützung des alten blockierenden Modus des API webRequest nicht eingestellt.
- Im Manifest wird der Ersatz von Hintergrundseiten durch eine Variante der Service Workers beschrieben, die als Hintergrundprozesse (Background Service Workers) arbeitet. Um zukünftige Kompatibilität zu gewährleisten, wird Firefox Unterstützung für Service Workers umsetzen. Derzeit wurde jedoch ein neuer Mechanismus für Event Pages vorgeschlagen, der für Webentwickler vertrauter ist, keine umfassende Überarbeitung der Erweiterungen erfordert und die Einschränkungen des Einsatzes von Service Workers beseitigt. Event Pages ermöglichen es, bestehende Erweiterungen mit Hintergrundseiten an die Anforderungen der dritten Manifestversion anzupassen und gleichzeitig den Zugang zu allen notwendigen Funktionen für die Arbeit mit dem DOM zu erhalten.
- Das neue granulare Berechtigungsanfragenmodell – Erweiterungen können nicht mehr sofort für alle Seiten aktiviert werden (die Berechtigung „all_urls“ wurde entfernt) und funktionieren nur im Kontext des aktiven Tabs. Das bedeutet, der Nutzer muss die Aktivierung der Erweiterung für jede Website bestätigen. In Firefox werden alle Anfragen auf den Zugriff auf die Daten einer Website als optional betrachtet, und die endgültige Entscheidung über den Zugriff trifft der Nutzer, der selektiv entscheiden kann, welcher Erweiterung er den Zugriff auf seine Daten auf dieser oder jener Website gewähren möchte.
Im Interface wurde eine neue Schaltfläche ‚Unified Extensions‘ hinzugefügt, die bereits in den Nachtsichtversionen von Firefox getestet werden kann. Diese Schaltfläche bietet Möglichkeiten, um direkt zu steuern, auf welche Websites jede Erweiterung Zugriff hat – der Nutzer kann den Zugriff der Erweiterung auf beliebige Websites gewähren oder widerrufen. Die Verwaltung der Berechtigungen gilt nur für Erweiterungen basierend auf Manifestversion 3; für Erweiterungen der zweiten Version wird eine granulare Verwaltung des Zugangs zu Websites nicht durchgeführt.

- Änderung der Verarbeitung von Cross-Origin-Anfragen – gemäß dem neuen Manifest unterliegen Skripte zur Verarbeitung von Inhalten denselben Berechtigungsbeschränkungen wie die Hauptseite, in die diese Skripte integriert werden (zum Beispiel: Wenn die Seite keinen Zugriff auf die API zur Geolokalisierung hat, erhält das Erweiterungsskript ebenfalls keinen Zugriff). Diese Änderung ist vollständig in Firefox implementiert.
- Promise-basiertes API. Firefox unterstützt dieses API und wird es in der dritten Manifestversion in den Namensraum „chrome.*“ verschieben.
- 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 externem Code blockiert, und die Entwickler von Mozilla haben zusätzliche Techniken zur Verfolgung von Code-Downloads hinzugefügt, die in der dritten Manifestversion vorgeschlagen werden. Für Skripte zur Verarbeitung von Inhalten gibt es eine separate Zugriffsbeschränkungsrichtlinie für Inhalte (CSP, Content Security Policy).
Quelle: opennet.ru

