Am 21. November wird der Katalog AMO (addons.mozilla.org) beginnen, Erweiterungen, die die dritte Version des Manifests von Chrome verwenden, digital zu signieren und zu validieren. Diese Erweiterungen können in den Nightly-Bauten von Firefox getestet werden. In stabilen Versionen wird die UnterstĂŒtzung fĂŒr die dritte Manifestversion in Firefox 109, die fĂŒr den 17. Januar 2023 geplant ist, integriert. Die UnterstĂŒtzung der zweiten Manifestversion wird in naher Zukunft beibehalten, aber Ende 2023 wird, nach Beurteilung des Fortschritts der Umstellung der Erweiterungen auf die dritte Manifestversion, die Möglichkeit erwogen, die UnterstĂŒtzung der zweiten Manifestversion als veraltet zu klassifizieren.
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.
Derzeit arbeitet Chrome an der Umstellung auf die dritte Manifestversion, wĂ€hrend die UnterstĂŒtzung der zweiten Version im Januar 2024 eingestellt wird. Das Hauptziel der Ănderungen in der neuen Version besteht darin, die Erstellung sicherer und leistungsstarker Erweiterungen zu erleichtern und die Möglichkeit der Erstellung unsicherer und langsamer Erweiterungen zu erschweren. Da die dritte Manifestversion kritisiert wurde und die FunktionalitĂ€t vieler Erweiterungen zur Blockierung unerwĂŒnschter Inhalte und zur SicherheitsgewĂ€hrleistung beeintrĂ€chtigen dĂŒrfte, hat Mozilla beschlossen, von der GewĂ€hrleistung vollstĂ€ndiger KompatibilitĂ€t mit dem Manifest in Firefox abzuweichen und einige Ănderungen anders umzusetzen.
Die Hauptkritik an der dritten Manifestversion bezieht sich auf die Umstellung der API webRequest in den Nur-Lese-Modus. Diese API erlaubte es, eigene Handler zu integrieren, die vollen Zugriff auf Netzwerkrequests hatten und den Datenverkehr in Echtzeit modifizieren konnten. Diese API wird in uBlock Origin und vielen anderen Erweiterungen zur Blockierung unerwĂŒnschter Inhalte und zur SicherheitsgewĂ€hrleistung verwendet. Statt der API webRequest wird in der dritten Manifestversion eine eingeschrĂ€nkte API namens declarativeNetRequest angeboten, die Zugriff auf eine integrierte Engine fĂŒr die Filterung bietet, die Regeln zur Blockierung selbst verarbeitet, aber keine eigenen Filteralgorithmen und keine komplexen, sich gegenseitig ĂŒberlappenden Regeln je nach Bedingungen zulĂ€sst.
Zu den Besonderheiten der Implementierung des neuen Manifests in Firefox gehört:
- 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.
- Im Manifest wird der Austausch von Hintergrundseiten durch eine Variante von Service Workers definiert, die als Hintergrundprozesse (Background Service Workers) agieren. Um die zukĂŒnftige KompatibilitĂ€t sicherzustellen, wird Firefox die UnterstĂŒtzung fĂŒr Service Workers implementieren, allerdings wird derzeit ein neuer Mechanismus namens Event Pages vorgeschlagen, der fĂŒr Webentwickler vertrauter ist, keine vollstĂ€ndige Neugestaltung von ErgĂ€nzungen erfordert und die EinschrĂ€nkungen im Zusammenhang mit der Verwendung von Service Workers beseitigt. Event Pages ermöglichen es, bestehende ErgĂ€nzungen mit Hintergrundseiten an die Anforderungen der dritten Manifestversion anzupassen, wĂ€hrend der Zugriff auf alle benötigten Funktionen fĂŒr die Arbeit mit dem DOM 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 eine neue SchaltflĂ€che "Unified Extensions" hinzugefĂŒgt, die bereits in den Nightly-Builds von Firefox getestet werden kann. Diese SchaltflĂ€che bietet Werkzeuge zur direkten Verwaltung des Zugriffs jedes ErgĂ€nzungs auf verschiedene Webseiten â der Benutzer kann den Zugriff der ErgĂ€nzung auf jede Webseite gewĂ€hren und widerrufen. Die Berechtigungsverwaltung gilt nur fĂŒr ErgĂ€nzungen, die auf der dritten Manifestversion basieren; fĂŒr ErgĂ€nzungen der zweiten Manifestversion erfolgt keine granulare Zugangskontrolle zu Webseiten.

- Ă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.
- Promise-basierte API. Firefox unterstĂŒtzt diese API und wird sie fĂŒr die dritte Manifestversion in den Namensraum "chrome.*" ĂŒbertragen.
- Verbot der AusfĂŒhrung von Code, der von externen Quellen geladen wird Server (bezieht sich auf Situationen, in denen eine ErgĂ€nzung externen Code lĂ€dt und ausfĂŒhrt). In Firefox wird der externe Code blockiert, und die Mozilla-Entwickler haben zusĂ€tzliche Techniken zur Ăberwachung von Code-Downloads hinzugefĂŒgt, die in der dritten Manifestversion angeboten werden. FĂŒr Inhalteverarbeitende Skripte wird eine separate Zugriffssteuerungspolitik fĂŒr Inhalte (CSP, Content Security Policy) bereitgestellt.
Quelle: opennet.ru

