AdGuard Browsererweiterung v4.2: Bereit für MV3
Die neue Version der AdGuard Browsererweiterung hat größere Änderungen erfahren, die nicht sofort auffallen. Wir haben den gesamten Filtercode in TypeScript neu geschrieben und in eine neue, separate Bibliothek verschoben — so können wir die Erweiterung für einen reibungslosen Übergang zu MV3 vorbereiten.
Manifest V3 (MV3) ist die neue Erweiterungs-API von Chrome. Unter anderem wird es Browsererweiterungen erheblich erschwert, Werbung zu blockieren, da die Anzahl der anwendbaren Filterregeln begrenzt wird. Wen Sie interessiert sind, können Sie mehr über die Beschränkungen von Chrome und wie wir versucht haben, uns in dem weltweit ersten Werbeblocker auf Manifest V3 an diese anzupassen lesen.
Ein bisschen Hintergrund
Vor einiger Zeit haben wir die URL-Filterung der Erweiterung in eine separate Bibliothek namens tsurlfilter
ausgelagert. Der Hauptzweck dieser Bibliothek ist die Wiederverwendung der Filterlogik in unseren Produkten (Browsererweiterungen für Chrome und Firefox, Regelkonverter für Safari, Linter, etc.)
Der tsurlfilter
hatte zwei Hauptteile:
- Eine Filter-Engine, die URLs mit den in sie geladenen Regeln abgleicht
- Eine Chrome- und Firefox-spezifische Programmierschnittstelle, die für die Anwendung der gefundenen Regeln verantwortlich ist
Mit MV3 müssen wir den Filtercode nicht nur für verschiedene Browser, sondern auch für verschiedene Manifest-Versionen pflegen und einen nahtlosen Übergang von MV2 zu MV3 ermöglichen, wenn die Browser die alte API entfernen. Wir haben es nicht eilig, sofort auf MV3 umzusteigen, da dessen API sehr begrenzt ist.
Das Hinzufügen einer neuen Logik zur Lösung dieses Problems in tsurlfilter
hätte die Bibliothek zu schwer gemacht. Daher beschlossen wir, eine neue Softwareplattform zu entwickeln, die die für verschiedene Browser und Manifeste spezifische Logik hinter einer einzigen und einfachen API versteckt. Die neue Bibliothek wurde tswebextension
genannt.
Die neue tswebextension
-Bibliothek
Mit tswebextension
wird es einfacher sein, unsere Produkte zu pflegen und zu aktualisieren.
In der neuen Version der Browsererweiterung für Chrome und Firefox haben wir den Hintergrunddienst unter Verwendung von tswebextension
komplett umgestaltet – dies ermöglicht uns den reibungslosen Übergang zu MV3 in Chrome in zukünftigen Hauptversionen.
Außerdem haben wir die AdGuard-API aktualisiert, die unter der Haube ebenfalls tswebextension
verwendet.
Das vollständige Änderungsprotokoll ist auf GitHub verfügbar. Wie immer freuen wir uns über Ihre Meinung zu unserer Browsererweiterung in sozialen Netzwerken (suchen Sie AdGuard in Ihrem bevorzugten Netzwerk) oder über GitHub issues.