Browsererweiterung MV3 v0.4.0: Zeit für ein Update
Es ist fast eineinhalb Jahre her, dass wir die für MV3 geeignete Erweiterung veröffentlicht haben, und es ist Zeit für ein großes Update. Schließlich leben wir in der MV3-Wirklichkeit! Die Erweiterung benutzt nun unseren aktualisierten Filter-Engines, TSWebExtension und TSUrlFilter. Einen Rückblick, wie wir es geschafft haben, die erste Erweiterung zu erstellen, die auf Manifest V3 funktioniert, finden Sie in unserem Blog.
5 Gründe, warum die Erweiterung jetzt besser ist
Grund Nr. 1: das neue Prioritätsschema für Regeln
In der Vergangenheit hatten wir 4 verschiedene Regelprioritäten, aber die Auswahl und Priorisierung von Regeln innerhalb einer Gruppe war nicht klar. Mit unserem neuen Schema berechnen wir die Gewichtung einer Regel anhand der Modifikatoren, die sie enthält. Diese Modifikatoren werden nach Priorität geordnet, von der niedrigsten zur höchsten, und ihre Auswirkung auf den Anwendungsbereich einer Regel bestimmt ihre Gesamtprioritätsgewichtung. Dieser neue Ansatz ermöglicht es, eine deklarative Priorität für eine Regel in der Konvertierungsphase festzulegen, was insbesondere für die neue MV3 nützlich ist. Weitere Details zum neuen Prioritätsschema finden Sie in unserer Wissensdatenbank.
Grund Nr. 2: Unterstützung für $badfilter
Der Modifikator $badfilter
hat die Macht, jede andere Regel zu deaktivieren. So funktioniert es: Filterentwickler fügen eine Regel mit diesem Modifikator hinzu, und wenn die Erweiterung dynamisch aktualisiert wird, hat die Regel mit dem Modifikator $badfilter
Vorrang vor der Regel, auf die er angewendet wurde.
In der Vergangenheit war es nicht möglich, eine zuvor hinzugefügte Regel in MV3 zu deaktivieren. Aus diesem Grund haben wir die Unterstützung für $badfilter
zunächst nur für Regeln hinzugefügt, die bereits in derselben Datei vorhanden waren. Wenn man eine Regel in einer Datei hatte und $badfilter
in einer anderen Datei hinzufügte, funktionierte es einfach nicht.
Dank des Feedbacks von Erweiterungsentwicklern hat die W3C Working Group jedoch zugehört und eine neue API eingeführt, die es erlaubt, andere deklarative Regeln zu deaktivieren. Dies hat uns die Möglichkeit gegeben, $badfilter
für alle Regeln in allen Dateien zu unterstützen. Zu diesem Zweck haben wir das Regelkonvertierungsschema überarbeitet, um zusätzliche Metadaten für Filter zu generieren und dynamisch die Regeln zu finden, die deaktiviert werden müssen.
Grund Nr. 3: Unterstützung für den Modifikator $cookie
Mit dem Modifikator $cookie
kann die Lebensdauer (time to live, TTL) von Cookies angegeben werden. Die aktuelle MV3-Funktionalität reicht nicht aus, um diesen Modifikator korrekt arbeiten zu lassen, daher haben wir einige Verbesserungen vorgenommen:
- Wenn die MV3 API ausreicht, damit die Filterregel funktioniert, wandeln wir die Regel in eine deklarative Regel um und fügen sie dem statischen Regelsatz hinzu
- Andernfalls verarbeiten wir Cookies zusätzlich in unserer TSUrlFilter-Engine und verwenden die browser.cookies-API, um Cookies zu entfernen, die nicht gesetzt werden sollen, oder um die Lebensdauer von Cookies zu verkürzen
Grund Nr. 4: Unterstützung für die Modifikatoren $elemhide
, $generichide
, $specifichide
Diese Modifikatoren helfen uns, die kosmetische Filterung für bestimmte Websites zu deaktivieren. Da MV3 noch nicht über solche Tools verfügt, haben wir die Unterstützung für die Modifikatoren durch unsere TSUrlFilter-Engine hinzugefügt. Diese Engine vergleicht blockierende Regeln mit Ausnahmeregeln und sendet nur Regeln, die nicht ausgeschlossen sind, an das content scrypt.
Grund Nr. 5: einige andere Modifikatoren
Wir haben Unterstützung auch für die folgenden Modifikatoren hinzugefügt:
$method
schränkt den Regelbereich auf Anfragen ein, die die angegebenen HTTP-Methoden verwenden$to
schränkt den Regelbereich auf Anfragen an die angegebenen Domains und deren Subdomains ein$removeheader
: Regeln mit diesem Modifikator sollen Header aus HTTP-Anfrage und -Antworten entfernen- Der Modifikator
$all
besteht aus allen content-type Modifikatoren und$popup
$csp
ändert das Verhalten der Regel komplett. Wenn es auf eine Regel angewendet wird, blockiert die Regel die entsprechende Anfrage nicht. Stattdessen werden die Antwort-header geändert
Dies ist der erste Werbeblocker, der unter den strengen Bedingungen des Manifest V3 funktioniert. Sie helfen uns sehr, wenn Sie Probleme mit der Erweiterung auf GitHub melden.