Mozilla даёт новую жизнь блокировщикам рекламы, разгадав загадку Manifest V3
Mozilla выполнила обещание внедрить новую платформу расширений Google — Manifest V3 — таким образом, чтобы не нарушить функциональность блокировщиков рекламы. Новая версия Firefox, которая вышла в прошлом месяце, даст пользователям доступ к популярным инструментам для защиты приватности, в частности, к расширениям, блокирующим контент.
С одной стороны, внедряя Manifest V3 на своих условиях, Mozilla избавляет разработчиков, переходящих на новую платформу, от необходимости одновременно поддерживать две разные версии своих расширений (для Chrome и Firefox). С другой стороны, это позволяет блокирующим контент расширениям, которые были разработаны с использованием менее строгого Manifest V2, продолжать работать в полную силу.
Прежде чем двигаться дальше, давайте вспомним, что такое Manifest V3 и почему он вызвал столь резкую реакцию со стороны защитников конфиденциальности и разработчиков расширений, блокирующих контент, включая AdGuard.
В чём проблема Manifest V3
Manifest V3 — это новый API расширений Chrome, впервые анонсированный в 2018 году. Сейчас он внедряется во всех браузерах на базе Chromium, включая, конечно же, и сам Google Chrome.
API вносит значительные изменения в правила, которым должны следовать расширения, например, к каким функциям браузера расширение имеет доступ. Например, раньше браузер спрашивал у расширения, блокирующего контент, что делать с конкретным веб-запросом, и расширение либо разрешало, либо блокировало, либо перенаправляло его. Новый API передаёт право изменять запросы самому браузеру, а расширение просто представляет (или «декларирует») набор правил, которым браузер должен следовать. Google отмечает, что это не позволит расширениям, включая блокировщики рекламы, получить доступ к «потенциально важным данным пользователя» и сделает их «более безопасными для всех». Недостаток в том, что это изменение также приведёт к тому, что блокировщики рекламы потеряют часть своих функций.
Правил много не бывает
Одна из проблем Manifest V3 в том, что он ограничивает количество встроенных и пользовательских правил для расширений, установленных отдельным пользователем. Так, Chrome установил лимит в 30 000 встроенных («статических») правил для каждого расширения и общий лимит в 330 000 статических правил. Что касается добавляемых пользователем («динамических») правил, то их количество ограничено всего 5 000. Поскольку в основе любого расширения-блокировщика лежат правила фильтрации, которые «учат» его обнаруживать рекламу, такие ограничения могут сильно мешать.
Количества правил, предложенного Google, может быть достаточно, если у вас только одно расширение, которое использует декларативный API NetRequest в Manifest V3 для блокировки рекламы. Однако если вы используете больше одного расширения, это может стать проблемой: расширения будут конкурировать за оставшиеся правила, и некоторые не смогут втиснуться в лимит.
Другая проблема заключается в том, что Google хочет, чтобы разработчики уже встроили все правила в расширение на момент установки. По сути, разработчикам придётся заранее оговаривать, что их расширение будет делать с конкретными запросами, а не импровизировать, как это было раньше. Это означает, что блокировщики рекламы будут медленнее реагировать на изменения на сайте, поскольку разработчикам вместо простого обновления фильтров нужно будет загружать новую версию расширения каждый раз, когда что-то меняется — и ждать, пока она пройдёт проверку, что само по себе не быстрый процесс.
Но всё же есть проблеск надежды, что ситуация улучшится. Мы предложили увеличить количество динамических правил и наборов правил и отстаиваем эти изменения в Manifest V3 в дискуссиях между представителями браузеров и сообществом блокировщиков контента. Надеемся, наши аргументы примут во внимание.
В конце концов, поскольку Chrome занимает доминирующее положение на рынке браузеров, как только Google откажется от Manifest V2, разработчикам расширений придётся либо адаптироваться к Manifest V3, либо терять пользователей. И мы бы хотели, чтобы этот переход прошёл как можно более гладко.
Мяч на стороне Chrome
Google утверждает, что изменения в API сделают расширения «более безопасными, производительными и приватными по умолчанию». Но сохраняющиеся опасения по поводу их влияния на блокировку рекламы мешают некоторым экспертам принять новую платформу. Мы тоже неоднократно выражали тревогу по поводу негативного влияния, которое Manifest V3 может оказать на разработчиков и пользователей Chrome.
К своей чести, Google всё же попытался снять эти опасения. Будучи одним из основателей группы сообщества WebExtensions Community Group консорциума The World Wide Web Consortium (W3C) (наравне с Apple, Mozilla и Microsoft), Chrome обратился к разработчикам расширений с просьбой оставить отзывы о Manifest V3 и приветствовал критику.
Тем не менее, Google реагировал слишком медленно и до сих пор не смог развеять опасения разработчиков. Признавая эти опасения, Mozilla объявила в прошлом году, что Firefox продолжит поддерживать webRequest API для блокирования целых категорий HTTP-запросов в своей реализации Manifest V3, но также будет поддерживать совместимую версию declarativeNetRequest API, предложенную Google в качестве замены webRequest.
По сравнению с пользователями Firefox, которые будут продолжать пользоваться всеми преимуществами расширений для блокировки рекламы, 3 миллиарда пользователей Chrome вскоре могут оказаться в невыгодном положении, когда дело дойдёт до блокировки рекламы. В долгосрочной перспективе это может послужить катализатором для перехода некоторых пользователей Chrome на Firefox.
Закат, который никак не наступит
В ноябре Mozilla объявила, что продолжит поддерживать расширения Manifest V2 «в обозримом будущем» и пообещала определить сроки отказа от старого манифеста «к концу 2023 года».
Что касается Google Chrome, то его сроки отмены Manifest V2 переносились столько раз, что за ними трудно уследить. В январе 2022 года Google перестал добавлять в Chrome Web Store новые расширения, основанные на Manifest V2. К июню 2023 года техногигант должен был провести эксперимент по отключению поддержки расширений Manifest V2 в Chrome. Однако в декабре все оставшиеся сроки были пересмотрены и все эксперименты были отложены на неопределённый срок.
.
При этом угроза окончательной отмены Manifest V2 реальна. Часы судного дня для него, возможно, перестали тикать, но Google может поставить таймер в любой момент, поэтому мы решили, что важно иметь готовое решение, если и когда это произойдёт.
Блокировка рекламы в эпоху Manifest V3
Полагая, что шансы на внезапную перемену курса Google невелики, AdGuard начал работу над прототипом нового расширения, совместимого с Manifest V3, ещё в середине 2021 года. В августе прошлого года мы выпустили экспериментальное расширение для блокировки рекламы, которое отвечало всем требованиям Manifest V3, и стали первым блокировщиком рекламы, сделавшим это. Поскольку новое расширение основано на Manifest V3 со всеми его досадными ограничениями, оно может оказаться не таким эффективным, как старое, проверенное и испытанное. Но расширение будет по-прежнему эффективно блокировать запросы к трекерам, скрывать виджеты социальных сетей, баннеры и видеорекламу — другими словами, делать всё, что вы ожидаете от расширения для блокировки рекламы.
Возможно, мы и стали первыми, но другие блокировщики рекламы вскоре последовали нашему примеру, доказав, что блокировка рекламы и Manifest V3 не идеальная пара, но и его появление — не смертный приговор.
Месяц спустя автор популярного блокировщика рекламы, uBlock Origin, опубликовал экспериментальное расширение uBO Minus, совместимое с Manifest V3. AdBlock Plus также разрабатывает версию расширения которое работает на Manifest V3.
Google разочаровывает, Mozilla спасает положение
Google утверждает, что единственная цель замены старого Manifest на новый, ограничивающий блокировку рекламы, заключается в том, чтобы обезопасить пользователей и защитить их личные данные. Возможно, так и есть, и Google действительно хочет усовершенствовать платформу расширений.
К сожалению, Google принял множество решений относительно дизайна своей новой платформы, недостаточно учитывая пожелания и опасения разработчиков расширений и, в конечном счёте, своих собственных пользователей. В результате расширения, блокирующие рекламу, потеряют часть своих функций. Но мы не думаем, что компания сильно расстроится по этому поводу.
Со своей стороны, Mozilla заняла более взвешенный и менее конфронтационный подход к блокировке рекламы. Владелец Firefox показал, что возможно реализовать Manifest V3 так, чтобы не ограничивать функциональность блокировщиков рекламы и в то же время повысить безопасность.