Raymond Hill, der Autor des Blockierungssystems für unerwünschte Inhalte uBlock Origin, hat eine experimentelle Browsererweiterung namens uBO Minus veröffentlicht, die eine Version von uBlock Origin implementiert, die auf die API declarativeNetRequest umgestellt wurde, deren Verwendung im dritten Manifest von Chrome vorgeschrieben ist. Im Gegensatz zum klassischen uBlock Origin nutzt die neue Erweiterung die Möglichkeiten der im Browser integrierten Engine zur Filterung von Inhalten und erfordert bei der Installation keine Berechtigungen zum Abfangen und Ändern aller Daten von Webseiten.
In der Erweiterung fehlt derzeit die Popup-Leiste sowie die Einstellungsseiten für Parameter, und die Funktionalität ist auf das Blockieren von Netzwerkabfragen beschränkt. Funktionen wie kosmetische Filter zur Änderung von Inhalten auf der Seite („##“), das Einfügen von Skripten auf Webseiten („##+js“), Filter zur Umleitung von Anfragen („redirect=“), CSP-Header-Filter (Content Security Policy) und Filter zum Entfernen von Abfrageparametern („removeparam=“) sind deaktiviert, um ohne erweiterte Berechtigungen zu arbeiten. Ansonsten entspricht die Liste der standardmäßig angebotenen Filter vollständig dem Set von uBlock Origin und umfasst etwa 22.000 Regeln.
Außerdem wurde vor einigen Tagen eine experimentelle Version der Werbeblockierungs-Erweiterung AdGuard – AdGuardMV3 – vorgestellt, die ebenfalls auf die API declarativeNetRequest umgestellt wurde und in Browsern funktioniert, die nur das dritte Manifest von Chrome unterstützen. Der zum Testen angebotene Prototyp bietet den normalen Nutzern alle erforderlichen Funktionalitäten zum Blockieren von Werbung, bleibt jedoch hinter der Erweiterung für die zweite Manifestversion hinsichtlich ihrer erweiterten Funktionen zurück, die für erfahrene Benutzer von Interesse sein könnten.
In der neuen Version von AdGuard wird weiterhin das Verstecken von Bannern, sozialen Widgets und störenden Elementen, die Anzeigenblockierung auf Videoplattformen wie YouTube sowie die proaktive Blockierung von Tracking-Anfragen in Bewegung sein. Zu den Einschränkungen gehört das Flimmern von Werbeeinblendungen aufgrund von Verzögerungen bei der Anwendung kosmetischer Regeln von 1,5 bis 2 Sekunden, der Verlust einiger Funktionen im Zusammenhang mit der Cookie-Filterung, der Anwendung von regulären Ausdrücken und der Filterung von Anfrageparametern (die neue API bietet vereinfachte reguläre Ausdrücke), die Verfügbarkeit von Statistiken und Protokollen der Filterauslösungen nur im Entwicklermodus (Developer Mode).
Es wird auch auf eine mögliche Reduzierung der Anzahl der Regeln aufgrund von Beschränkungen verwiesen, die in der dritten Version des Manifests eingeführt wurden. Wenn im Browser eine Erweiterung installiert ist, die declarativeNetRequest verwendet, treten bei statischen Regeln keine Probleme auf, da es ein gemeinsames Limit für alle Erweiterungen gibt, das 330.000 Regeln zulässt. Wenn mehrere Erweiterungen installiert sind, gilt ein Limit von 30.000 Regeln, was unzureichend sein kann. Für dynamische Regeln wurde ein Limit von 5.000 Regeln eingeführt, während für reguläre Ausdrücke 1.000 Regeln gelten.
Ab Januar 2023 plant Chrome, die Unterstützung für die zweite Version des Manifests einzustellen und die dritte Version für alle Erweiterungen verpflichtend zu machen. Die dritte Version des Manifests wurde zunächst aufgrund von Funktionsstörungen vieler Erweiterungen zur Blockierung unerwünschter Inhalte und zur Gewährleistung der Sicherheit kritisiert. Das Chrome-Manifest definiert die Möglichkeiten und Ressourcen, die den Erweiterungen zur Verfügung stehen. Die dritte Version des Manifests wurde im Rahmen einer Initiative zur Verbesserung der Sicherheit, der Privatsphäre und der Leistung von Erweiterungen entwickelt. Hauptziel der vorgenommenen Änderungen ist es, die Erstellung sicherer und leistungsstarker Erweiterungen zu vereinfachen und die Möglichkeit, unsichere oder langsame Erweiterungen zu erstellen, zu erschweren.
Die hauptsächliche Unzufriedenheit mit der dritten Version des Manifests hängt mit der Umstellung des API webRequest auf den Nur-Lese-Modus zusammen, der es ermöglichte, eigene Handler anzuschließen, die vollen Zugriff auf Netzwerkrequests hatten und in der Lage waren, den Verkehr in Echtzeit zu ändern. Das genannte API wird in uBlock Origin, AdGuard und vielen anderen Erweiterungen zur Blockierung unerwünschter Inhalte und zur Gewährleistung von Sicherheit verwendet. Anstelle des API webRequest wurde in der dritten Version des Manifests ein eingeschränktes API declarativeNetRequest vorgeschlagen, das Zugriff auf die integrierte Engine zur Filterung bietet, die Regeln für die Blockierung eigenständig verarbeitet, eigene Filteralgorithmen nicht erlaubt und keine komplexen Regeln, die sich je nach Bedingungen überschneiden, zulässt.
In den drei Jahren der Diskussionen über die bevorstehende dritte Version des Manifests hat Google viele Wünsche der Community berücksichtigt und die ursprünglich bereitgestellte API declarativeNetRequest um geforderte Funktionen erweitert, die in bestehenden Erweiterungen benötigt werden. Zum Beispiel hat Google dem API declarativeNetRequest Unterstützung für die Verwendung mehrerer statischer Regelsets, Filterung mit regulären Ausdrücken, Modifikation von HTTP-Headern, dynamische Änderungen und Ergänzungen von Regeln, das Entfernen und Ersetzen von Anfrageparametern, tabellengebundene Filterung und die Erstellung spezifischer Regelsets für bestimmte Sitzungen hinzugefügt.
Quelle: opennet.ru
