Рэймонд Хилл (Raymond Hill), автор систем блокирования нежелательного контента uBlock Origin, опубликовал экспериментальное браузерное дополнение uBO Minus с реализацией варианта uBlock Origin, переведённого на API declarativeNetRequest, использование которого предписано в третьей версии манифеста Chrome. В отличие от классического uBlock Origin новое дополнение использует возможности встроенного в браузер движка для фильтрации содержимого и не требует при установке предоставления полномочий для перехвата и изменения всех данных сайтов.
В дополнении пока отсутствует всплывающая панель и страницы настройки параметров, а функциональность ограничена блокировкой сетевых запросов. Для работы без расширенных полномочий отключены такие возможности, как косметические фильтры для замены содержимого на странице («##»), подстановка скриптов на сайты («##+js»), фильтры для перенаправления запросов («redirect=»), фильтры заголовков CSP (Content Security Policy) и фильтры для удаления параметров запросов («removeparam=»). В остальном список предлагаемых по умолчанию фильтров полностью соответствует набору из uBlock Origin и включает около 22 тысяч правил.
Кроме того, несколько дней назад представлен экспериментальный вариант дополнения для блокировки рекламы AdGuard — AdGuardMV3, также переведённый на API declarativeNetRequest и способный работать в браузерах, поддерживающих только третью редакцию манифеста Chrome. Предложенный для тестирования прототип предоставляет всю необходимую обычным пользователям функциональность для блокировки рекламы, но отстаёт от дополнения для второй редакции манифеста по своим расширенным возможностям, которые могут представлять интерес для продвинутых пользователей.
В новом AdGuard продолжит работать скрытие баннеров, виджетов социальных сетей и назойливых элементов, блокировка рекламы на видеоплатформах подобных YouTube и упреждающая блокировка запросов, связанных с отслеживанием перемещений. Из ограничений отмечается мерцание рекламных вставок из-за задержки применения косметических правил на 1.5-2 секунды, потеря некоторых возможностей, связанных с фильтрацией Cookie, применением регулярных выражений и фильтрацией параметров запросов (новый API предоставляет упрощённые регулярные выражения), доступность статистики и лога срабатываний фильтров только в режиме разработчика (Developer Mode).
Также упоминается возможное сокращение числа правил из-за ограничений, введённых в третьей версии манифеста. Если в браузере установлено одно дополнение, использующее declarativeNetRequest, проблем со статическими правилами не возникает, так как действует общий лимит на все дополнения, допускающий 330 тысяч правил. Когда дополнений несколько, применяется лимит в 30 тысяч правил, которого может оказаться недостаточно. Для динамических правил введён лимит в 5000 правил, а для регулярных выражений — 1000 правил.
Начиная с января 2023 года в браузере Chrome планируют прекратить поддержку второй версии манифеста и сделать третью версию обязательной для всех дополнений. Изначально третья версия манифеста стала объектом критики из-за нарушения работы многих дополнений для блокирования нежелательного контента и обеспечения безопасности. Манифест Chrome определяет возможности и ресурсы, предоставляемые дополнениям. Третья версия манифеста разработана в рамках инициативы по усилению безопасности, конфиденциальности и производительности дополнений. Главной целью внесённых изменений является упрощение создания безопасных и высокопроизводительных дополнений, и усложнение возможности создания небезопасных и медленных дополнений.
Kolmanda versiooni manifesti peamine rahulolematus on seotud webRequest API muutmisega ainult lugemise režiimi, mis võimaldas ühendada oma töötlejad, kellel on täielik juurdepääs võrgupäringutele ja kes suudavad liiklust reaalajas modifitseerida. Antud API-d kasutatakse uBlock Originis, AdGuardis ja paljudes teistes soovimatute sisude blokeerimise ja turvalisuse tagamise täiendustes. Kolmandas versioonis pakutakse webRequest API asemel piiratud võimalustega API-d declarativeNetRequest, mis annab juurdepääsu sisseehitatud filtreerimisselektorile, mis töötleb blokeerimise reegleid iseseisvalt, ei luba kasutada oma filtreerimisalgoritme ja ei võimalda määrata keerulisi tingimustest sõltuvaid üksteist kattuvaid reegleid.
Kolme aasta arutelude käigus tulevase kolmanda versiooni manifesti kohta arvestas Google mitmeid kogukonna soove ja laiendas algselt pakutud API declarativeNetRequest funktsionaalsust, mis on nõutud olemasolevates laiendustes. Näiteks lisas Google API declarativeNetRequest tuge mitme staatilise reeglite kogumi kasutamiseks, regulaaravaldiste kaudu filtreerimiseks, HTTP-päise muutmiseks, reeglite dünaamiliseks muutmiseks ja lisamiseks, päringute parameetrite eemaldamiseks ja asendamiseks, vahekaartide kaupa filtreerimiseks ning sessioonispetsiifiliste reeglite kogumite loomiseks.
Allikas: opennet.ru
