Co się zmieniło
Manifest V2 (stare zasady) dawał rozszerzeniom potężne API o nazwie webRequest. Rozszerzenia widziały każde żądanie, które przeglądarka miała wysłać, i dla każdego decydowały, czy je zablokować. uBlock Origin używał go, żeby:
- Blokować żądania na podstawie typu treści (obraz, skrypt, czcionka itp.)
- Blokować na podstawie strony, która wysłała żądanie (zezwalać u wydawcy, blokować u trackera stron trzecich)
- Stosować wyrażenia regularne i złożoną logikę na adresach URL
- Natychmiast aktualizować listę blokowania bez przechodzenia przez weryfikację w Chrome Web Store
Manifest V3 zastąpił webRequest przez declarativeNetRequest. Nowe API przyjmuje stałą listę reguł, którą przeglądarka interpretuje wewnętrznie; rozszerzenie nigdy nie podejmuje decyzji w czasie rzeczywistym. Liczba reguł na rozszerzenie ma twardy limit. Aktualizacje listy reguł muszą przechodzić przez aktualizacje w Chrome Web Store.
Dlaczego to zepsuło blokowanie reklam
Listy blokowania uBlock Origin są duże i często aktualizowane. W Manifest V3 przestało to działać na obu frontach. Autor szczegółowo opisał różnice; w skrócie:
- Pełna wersja uBlock Origin nie mogła dalej działać w V3, więc została wycofana z Chrome.
- uBlock Origin Lite stworzono specjalnie tak, by mieścił się w ograniczeniach V3. Robi mniej.
- Inne dobre blokery (Adguard, Ghostery) wydały wersje zgodne z V3, z podobnymi kompromisami.
Dlaczego Google to zrobiło
Oficjalnym powodem było bezpieczeństwo i wydajność: stare API webRequest dawało rozszerzeniom ogromny zasięg, łącznie z możliwością odczytu całego ruchu HTTP w każdej karcie. Można poważnie argumentować, że to były zbyt duże uprawnienia.
Praktyczny powód, który zauważyło wielu: głównym biznesem Google są reklamy. Przeglądarka, której nowe zasady ograniczają blokery reklam, należy do największej firmy reklamowej świata. Te dwa fakty nie muszą oznaczać, że zmiana była złośliwa, ale nie wygląda to dobrze.
Jak zareagowały przeglądarki
Firefox zachował Manifest V2 obok V3, więc pełny uBlock Origin nadal tam działa. Brave, Vivaldi, Opera i Edge korzystają z Chromium i dziedziczą V3. Większość z nich ma własny wbudowany bloker reklam, którego nie dotyczą reguły rozszerzeń, i to jest długoterminowe rozwiązanie. Dazr robi to samo: wbudowany bloker reklam działający na poziomie sieci, z tymi samymi listami co uBlock Origin, który w ogóle nie musi przechodzić przez API rozszerzeń Chrome.