Wat er veranderde
Manifest V2 (de oude regels) gaf extensies een krachtige API genaamd webRequest. Extensies konden elk verzoek zien dat de browser ging doen en per verzoek beslissen of het geblokkeerd werd. uBlock Origin gebruikte dit om:
- Verzoeken te blokkeren op basis van het type inhoud (afbeelding, script, lettertype enz.)
- Te blokkeren op basis van de pagina die het verzoek deed (toestaan bij de uitgever, blokkeren bij de tracker van derden)
- Reguliere expressies en complexe logica op URL's los te laten
- De blokkeerlijst direct bij te werken zonder de beoordeling van de Chrome Web Store
Manifest V3 verving webRequest door declarativeNetRequest. De nieuwe API neemt een vaste lijst regels die de browser intern uitvoert; de extensie mag nooit live beslissingen nemen. Er is een harde limiet op het aantal regels per extensie. Updates van de regellijst moeten via updates in de Chrome Web Store.
Waarom het adblocking brak
De blokkeerlijsten van uBlock Origin zijn groot en worden vaak bijgewerkt. Allebei werkte dat niet meer onder Manifest V3. De maker documenteerde de verschillen uitgebreid; de korte versie:
- De volledige versie van uBlock Origin kon onder V3 niet blijven werken en werd dus uit Chrome gehaald.
- uBlock Origin Lite werd speciaal gebouwd om binnen de beperkingen van V3 te passen. Hij doet minder.
- Andere goede blockers (Adguard, Ghostery) brachten V3-compatibele versies uit met vergelijkbare compromissen.
Waarom Google het deed
De officiële reden was veiligheid en prestaties: de oude webRequest-API gaf extensies enorm veel bereik, tot en met het lezen van al het HTTP-verkeer van elk tabblad. Je kunt serieus stellen dat dat te veel rechten waren.
De praktische reden die veel mensen opviel: de kernactiviteit van Google is advertenties. De browser waarvan de nieuwe regels adblockers beperken, is van het grootste advertentiebedrijf ter wereld. Die twee feiten betekenen niet per se dat de wijziging kwaadwillig was, maar het beeld is niet best.
Hoe browsers reageerden
Firefox hield Manifest V2 naast V3, dus de volledige uBlock Origin werkt daar nog. Brave, Vivaldi, Opera en Edge gebruiken allemaal Chromium en erven V3. De meeste leveren hun eigen ingebouwde adblocker mee die niet aan de extensieregels gebonden is, en dat is de oplossing op de lange termijn. Dazr doet hetzelfde: een ingebouwde adblocker op netwerkniveau, met dezelfde blokkeerlijsten als uBlock Origin, die helemaal niet door de extensie-API van Chrome hoeft.