Разработчики браузера Vivaldi, который поставляется со встроенным блокировщиком рекламы и трекеров, заверили, что блокировка рекламы продолжит работать даже после окончательного вступления в силу Google Manifest V3, который определяет возможности и ограничения для расширений.

Предыстория

Напомню, что впервые о Manifest V3 заговорили еще в 2018 году. Тогда разработчики Google сообщили, что намерены ограничить работу webRequest API, вместо которого блокировщики контента и другие расширения станут использовать declarativeNetRequest. Разумеется, сообщалось, что эти улучшения призваны повысить безопасность и производительность, а также дать пользователям больший контроль над тем, что расширения делают и с какими сайтами взаимодействуют.

Тогда разработчики расширений быстро обнаружили, что переход на другой API, сильно отличающийся от webRequest и во многом ему уступающий, в сущности, станет «смертью» их продуктов. В частности это касалось  блокировщиков рекламы,  антивирусов, решений для родительского контроля и различных продуктов, повышающих конфиденциальность.

В итоге замысел Google подвергся жесткой критике, и под давлением общественности компания была вынуждены отказаться от некоторых обновлений из числа Manifest V3, а затем пересмотрела свои планы еще больше, отменив еще ряд изменений вовсе.

С тех пор изменения Manifest V3 уже начали внедрять в Chrome, и недовольство постепенно утихло, хотя некоторые разработчики блокировщиков, похоже, просто смирились тем, что их продукты не смогут надежно блокировать рекламу, как только изменения достигнут стабильных версий Chrome.

Осенью 2021 года инженеры Google рассказали, как именно в итоге будет происходить внедрение Manifest V3. Так, с января 2022 года в Chrome Web Store был прекращен прием новых расширений с поддержкой Manifest V2, хотя разработчики по-прежнему могли обновлять существующие расширения.

Совсем скоро, с января 2023 года, браузер Chrome перестанет использовать расширения Manifest V2 вообще. Разработчики более не смогут обновлять существующие расширения и будут вынуждены перейти на Manifest V3.

До января 2023 года разработчики Google обещают продолжать доработку нового манифеста, чтобы учесть все пожелания и критику разработчиков расширений, а также внедрить в него все желаемые функции. К примеру, еще в прошлом году сообщалось, что в Google добавили дополнительные механизмы в новый Scripting API и расширили возможности Declarative Net Request API для поддержки нескольких статических наборов правил, правил сеанса и фильтрации на основе tab ID.

Vivaldi

Как нетрудно понять, пока Manifest V3 крайне далеко от идеала, однако совсем скоро он окончательно вступит в силу. Разработчики вынуждены считаться с этим обстоятельством.

К примеру, недавно разработчики блокировщика рекламы AdGuard детально рассказывали о том, чем чреват переход на Manifest V3 в настоящее время, и с какими проблемами им пришлось при этом столкнуться, создавая новую версию блокировщика. Вкратце: лимитов на правила фильтрации не хватает, синтаксис декларативных правил сильно ограничен, пользователи не могут просматривать логи фильтрации, и нововведения вызывают проблемы с производительностью.

Теперь тему скорого «релиза» Manifest V3 решили затронуть и разработчики браузера Vivaldi, которые посвятили этой проблеме большой пост в блоге компании.

Еще в 2019 году команда Vivaldi уверяла, что в любом случае предоставит пользователям выбор. Тогда разработчики писали, что существует множество возможных сценариев реагирования на третью версию манифеста Google, включая даже восстановление функциональности API, что команде Vivaldi уже приходилось делать ранее.

Как рассказывают в компании теперь, команда Vivaldi намерена сдержать данное несколько лет назад слово и поддерживать работу своего блокировщика рекламы, который исходно был создан как ответ на грядущий Manifest V3.

Инженеры объясняют, что еще на ранних этапах разработки они внесли в код блокировщика ряд  «архитектурных решений», которые должны поддерживать его функциональность, независимо от изменений в Manifest V3. Так, блокировщик Vivali опирается и на webRequest из Manifest V2, и на новый declarativeNetRequest, о который уже сломано столько копей.

«Конечно, всегда есть вероятность, что базовая архитектура Chromium изменится сейчас или в будущем, и нам придется проделать дополнительную работу, чтобы все работало, — говорят разработчики. — [Наш блокировщик] создан таким образом, чтобы эмбеддеры Chromium/контента могли взаимодействовать с запросами, выполняемыми с помощью сетевой службы Chromium в целом. Основная идея состоит в том, что запросы от сетевой службы проходят  через определенный фрагмент кода, предоставленный эмбеддером, который может проверить или изменить запрос на разных его этапах, почти так же, как в настоящее время делает webRequest».

В целом разработчики уверены, что с уходом webRequest этот конкретный API не станет бесполезным и не исчезнет вместе с ним. Для этого, по их словам, есть несколько причин:

  • webRequest не исчезает полностью. Пропадает только возможность блокировать запросы. Так что, как минимум, должен существовать механизм проксирования запросов от сетевых служб через расширения.
  • declarativeNetRequest в настоящее время построен поверх webRequest. Вполне возможно, что позже он будет перестроен для обработки блокировки на более глубоком уровне. Если это когда-то произойдет, он будет использовать новый набор хуков для обработки блокировки, которые также должен использовать блокировщик Vivaldi. Но, похоже, причин для такого пока нет.
  • Возможность блокировки webRequest сохраняется для корпоративных пользователей (по крайней мере, пока). Таким образом, весь базовый код для webRequest, включая его блокирующие возможности, должен остаться нетронутым.

Все это приводит к закономерному вопросу, можно ли будет использовать другие блокировщики рекламы в Vivaldi, особенно учитывая упомянутый нюанс про корпоративные среды? Разработчики пишут, что не могут ничего гарантировать, но обещают, что если существует хоть какой-то способ продлить работоспособность webRequest, они обязательно его рассмотрят и постараются применить.

«Важно отметить, что расширения-блокировщики часто зависят от других API-интерфейсов, которые удалены в Manifest V3 (и, вероятно, их будет куда сложнее вернуть обратно). Поэтому нет гарантий, что простого сохранения блокирующей функции webRequest будет достаточно, и не понадобится дополнительная работа со стороны мейнтейнеров этих расширений», — говорят инженеры Vivaldi.

В конце своего послания разработчики браузера резюмируют:

«Поскольку Vivaldi построен на базе Chromium, то, как мы справимся с изменениями в API, зависит от того, как Google реализует свои ограничения. Можем заверить, что какие бы ограничения ни добавляли в Google, в итоге мы постараемся их снять. Наша миссия всегда будет заключаться в том, чтобы у вас был выбор».

Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии