Google Chrome переходит на Manifest V3. Что это значит для пользователей?

Возможно, некоторые из ваших любимых расширений вскоре перестанут работать.

Google Chrome переходит на Manifest V3. Что это значит для пользователей?

Google начала постепенное отключение Chrome-расширений, которые созданы для второй версии манифеста. Manifest.json — это специальный файл, который декларирует правила взаимодействия браузера и дополнений.

Третья версия манифеста вносит несколько кардинальных изменений в работе расширений. Есть риск, что блокировщики рекламы перестанут эффективно справляться со своей задачей. Кроме того, под угрозой полезные, но давно не обновляющиеся расширения.

Изменения касаются не только Google Chrome, но и проекта Chromium в целом, то есть браузеров Microsoft Edge, Opera, «Яндекс Браузер», Arc и других.

Разбираемся в изменениях Manifest V3 и приводим несколько способов избежать ограничения.

Чем Manifest V3 отличается от V2

Полный список изменений в платформе расширений довольно длинный, но можно выделить три главных.

Переход на сервис-воркеры. В текущем варианте расширения для Chrome работают на основе фоновой страницы: по большому счёту, это ещё одна активная вкладка, просто невидимая для пользователя.

В отличие от фоновых страниц, сервис-воркеры функционируют вне основного потока браузера и запускаются по необходимости, а не работают постоянно. 

Новый способ управления сетевыми запросами. Расширения на базе Manifest V2 могут контролировать сетевые запросы — команды для отправки и получения данных с веб-сайтов — при помощи webRequest API. Инструмент довольно гибкий: можно модифицировать и блокировать запросы без ограничений. Именно при помощи webRequest блокировщики рекламы отфильтровывают запросы к рекламным серверам.

В Manifest V3 на смену webRequest приходит declarativeNetRequest. Его основное отличие заключается в том, что взаимодействие с сетевыми запросами производит не расширение, а браузер. Дополнение может лишь подготовить список правил для фильтрации запросов.

С одной стороны, это хорошо: несколько расширений с совпадающими фильтрами не будут выполнять одну и ту же работу дважды, замедляя работу браузера. С другой — declarativeNetRequest принимает от каждого дополнения не более 30 000 правил фильтрации. Это не очень много: популярный блокировщик рекламы uBlock Origin использует более 300 000.

Следовательно, есть риск, что обновлённые до Manifest V3 блокировщики не смогут так же эффективно бороться с рекламой, как сейчас. Разработчик uBlock Origin Рэймонд Хилл уже выпустил оптимизированную под новые правила версию расширения — uBlock Origin Lite. При этом Хилл рассказал, что не все фильтры оригинальной утилиты можно конвертировать в формат MV3.

Запрет на использование удалённого кода. Manifest V3 позволяет расширениям исполнять только код, который включён в пакет изначально. Разработчикам придётся каждый раз выкладывать обновление расширения в Chrome Web Store, проходя этап модерации. Иногда проверка занимает несколько недель.

Это проблема, ведь обычно блокировщики используют внешние списки фильтров. Иначе не получается: списки обновляются чуть ли не ежедневно, чтобы эффективно противостоять постоянно адаптирующимся рекламным сетям. 

После шумихи в сети Google предоставила возможность пропустить модерацию в случае обновления списка статических фильтров declarativeNetRequest.

Когда случится переход на Manifest V3

Google начала работу над обновлённым манифестом ещё в 2018 году. С 2022 года компания начинает внедрение технологии. Дорожная карта выглядит так:

  • С июня 2022 года магазин расширений Chrome Web Store не принимает новые дополнения, написанные под Manifest V2.
  • С июня 2024 года пользователи Chrome Beta, Dev и Canary, которые продолжают использовать MV2-расширения, начнут видеть предупреждение о скором отключении их дополнений.
  • В последующие месяцы Google постепенно начнёт отключать устаревшие расширения. Процесс начнётся с тестовых сборок Chrome.
  • К июню 2025 года переход на Manifest V3 завершится полностью, в том числе в корпоративной версии Chrome.

У других браузеров на основе проекта Chromium могут быть иные политики. В Microsoft планируют определить дату полного отключения Manifest V3 позднее. Vivaldi рассчитывает сохранить поддержку MV2 до тех пор, пока она присутствует в коде Chromium, то есть до июня следующего года. Разработчики Brave объявили, что планируют поддерживать некоторые популярные MV2-блокировщики рекламы, включая AdGuard AdBlocker, NoScript, uBlock Origin и uMatrix.

Как обойти ограничения Manifest V3

Есть несколько способов остаться с привычной версией uBlock Origin и прочими расширениями, которые давно не обновлялись или несовместимы с особенностями MV2.

Переход на Firefox или Safari. На самом деле в браузерах Mozilla и Apple тоже есть манифест в рамках унифицированной платформы расширений WebExtensions. Но Mozila не планирует отказываться от MV2 «в обозримом будущем». Apple не раскрывает планы по полному переходу на новую версию манифеста. Текущая версия Safari поддерживает и MV2, и MV3.

Правда, в Safari не так уж много расширений — например, тот же uBlock Origin есть только в Chromium и Firefox. 

Переключение политик браузера. Google предоставляет расширенную совместимость с MV2-расширениями для предприятий. Корпоративные версии браузера, использующие политику ExtensionManifestV2Availability, могут использовать устаревшие дополнения вплоть до июня 2025 года. Не исключено, что поддержка будет продлена на более длительный срок.

Чтобы активировать соответствующую настройку, на Windows придётся покопаться в реестре, а на macOS — воспользоваться терминалом.

Инструкция для Windows:

  1. Закройте браузер Google Chrome.
  2. Откройте приложение «Редактор реестра».
  3. Через левое меню перейдите в раздел HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome
  4. В свободном месте справа нажмите «Создать» → «Параметр DWORD (32 бита)».
  5. В колонке «Имя» введите ExtensionManifestV2Availability и нажмите Enter.
  6. Кликните правой кнопкой мыши по свежесозданной записи и выберите «Изменить».
  7. В разделе «Система счисления» выберите «Десятичная», в поле «Значения» введите цифру 2. Нажмите «ОК».
  8. Откройте браузер, скопируйте эту строку, введите в адресную строку и нажмите Enter: chrome://policy
  9. Убедитесь, что на странице указана политика ExtensionManifestV2Availability со значением 2.

Если вы пользуетесь не Chrome, а Edge, «Яндекс Браузером» или другим Chromium-браузером, инструкция точно такая же. Отличается только пункт 3: например, в случае MS Edge путь до нужного раздела выглядит как HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge.

Инструкция для macOS:

  1. Закройте браузер Google Chrome.
  2. Откройте приложение «Терминал».
  3. Введите эту строку и нажмите Enter: defaults write com.google.Chrome ExtensionManifestV2Availability -int 2
  4. Откройте браузер, скопируйте эту строку, введите в адресную строку и нажмите Enter: chrome://policy
  5. Убедитесь, что на странице указана политика ExtensionManifestV2Availability со значением 2.

Если вы пользуетесь не Chrome, а Edge, «Яндекс Браузером» и другим Chromium-браузером, инструкция точно такая же. Отличается только название пакета приложения в пункте 3: 

  • Для Edge: com.microsoft.Edge
  • Для «Яндекс Браузера»: com.yandex.Browser
  • Для Vivaldi: com.vivaldi.Vivaldi