Предлагаемые изменения в Chromium нарушат работу uBlock Origin
Разработчик uBlock Origin заявил, что его расширение для блокировки рекламы не сможет работать, если будут приняты изменения в Chromium. Речь идёт о внедрении declarativeNetRequest API, которые лишают возможности использовать webRequest API. Google считает, что изменения необходимы для быстрой работы встроенного в Chromium блокировщика рекламы, а также реализации в браузере функциональности, которая сейчас есть в Adblock Plus (тот же синтаксис и т. д.).
Проблема в том, что эти интерфейсы плохо совместимы с текущей схемой работы uBlock Origin: «Если блокировщики смогут работать только через эти (весьма ограниченные) declarativeNetRequest API, то фактически это означает, что два блокировщика, которые я поддерживал в течение многих лет, uBlock Origin и uMatrix, больше не смогут существовать», — написал Реймонд Хилл.
Изменения не отключат полностью сторонние блокировщики. Просто их лишают доступа к webRequest API, который они используют для прослушивания событий и блокировки контента на лету во время загрузки страницы. В новой системе блокировщики не смогут блокировать события на основании webRequest API, а смогут только просматривать события. Это должно ускорить загрузку страниц в браузере, потому что расширения больше не будут тормозить основной поток, считают инженеры Google.
Вместо этого расширениям предлагают перейти на declarativeNetRequest API — и сообщать браузеру о тех событиях, которые они хотят заблокировать. То есть контроль переходит к браузеру. Кроме ускорения работы, изменения делаются якобы для улучшения приватности пользователей: «DeclarativeNetRequest API обеспечивает лучшую конфиденциальность для пользователей, поскольку расширения не могут фактически читать сетевые запросы, сделанные от имени пользователя», — объясняет документация API от Google.
Блокировщики контента основаны на идее, что пользователи, а не кто-то другой, контролирую контент в своём браузере и то, как их отображает его и взаимодействует с удалёнными ресурсами. Никто не имеет право заставлять человека просмотреть ту информацию, которую он не желает смотреть: это одно из базовых прав и свобод личности.
Управление блокировкой рекламы через браузер, а не стороннее расширение, можно только приветствовать, если бы не одно возражение. Дело в том, что на Chromium основан самый популярный браузер в интернете Chrome, который выпускает компания Google. А она львиную долю своей прибыли получает именно от рекламы в интернете. Наивно предполагать, что компания станет прилагать особенные усилия, чтобы помочь пользователям заблокировать свою рекламу. Скорее наоборот, она приложит усилия, чтобы встроенными в браузер средствами сделать это было как можно труднее или вообще невозможно. А если внедрят изменения Manifest v3, то uBlock Origin перестанет работать.
Реймонд Хилл обращает внимание, что в declarativeNetRequest API используется система фильтрации в стиле Adblock Plus, не совместимая с uBlock Origin. Он считает, что это фундаментальная ошибка: «Кроме того, что uBlock Origin и uMatrix не смогут существовать, вызывает озабоченность тот факт, что предлагаемые declarativeNetRequest API блокируют внедрение новых движков фильтрации контента на инновационной архитектуре, поскольку declarativeNetRequest API — не больше чем реализация одного конкретного движка фильтрации, и довольно ограниченная реализация (лимита в 30 000 ограничений недостаточно для отработки одних только известных списков EasyList)».
Хилл заметил, что в новом API не поддерживаются некоторые другие возможности, включая блокировку мультимедийных элементов больше указанного размера, отключение выполнения JavaScript путём введения директив Content-Security-Policy и удаление исходящих заголовков куков. Рэймонд считает, что эти изменения не в интересах пользователей.
Если примут Manifest v3, это может ускорить работу Chrome, но ограничит возможности всех расширений браузера, не только для блокировки рекламы, но и других. Реймонд Хилл пишет, что Chrome станет похож на браузер Safari от Apple, который теперь поддерживает «блокировщики контента», которые работают в быстром, стандартном режиме.
Это своеобразный компромисс. С одной стороны, браузерные расширения, такие как uBlock Origin, больше не смогут реализовать собственный механизм фильтрации. С другой стороны, встроенный в Chromium механизм фильтрации станет гораздо быстрее, чем сейчас. В принципе, другие браузеры тоже движутся в сторону постепенного ограничения в правах сторонних расширений.
Некоторые другие разработчики, комментируя предлагаемое изменение, выразили тревогу, что Google использует конфиденциальность в качестве предлога для того, чтобы поставить интересы своего рекламного бизнеса над интересами пользователей браузера.
Представители Google сказали, что окончательные спецификации Manifest v3 ещё не утверждены, продолжается обсуждение.