Chrome 88 переведён на третью редакцию манифеста, несовместимого с uBlock Origin
9 декабря 2020 года
Компания Google сообщила о включении в Chrome 88, релиз которого ожидается 19 января 2021 года, третьей редакции манифеста Chrome, нарушающей работу многих дополнений для блокирования нежелательного контента и обеспечения безопасности. Отмечается, что поддержка дополнений, использующих вторую версию манифеста, какое-то время будет сохранена - дата прекращения поддержки Manifest V2 пока не определена, но период миграции на новый манифест продлится как минимум год.
Напомним, что манифест Chrome определяет возможности и ресурсы, предоставляемые дополнениям. Новый манифест разработан в рамках инициативы по усилению безопасности, конфиденциальности и производительности дополнений. Основной целью вносимых изменений является упрощение создания безопасных и высокопроизводительных дополнений, и усложнение возможности создания небезопасных и медленных дополнений.
Основное недовольство новым манифестом связано с прекращением поддержки блокирующего режима работы API webRequest, который будет ограничен режимом только для чтения. Исключение будет сделано лишь для редакции Chrome для предприятий (Chrome for Enterprise), в которых поддержка API webRequest будет сохранена. Компания Mozilla решила не следовать за новым манифестом и сохранит в Firefox возможность полного использования API webRequest.
Вместо API webRequest для фильтрации контента в новом манифесте предложен декларативный API declarativeNetRequest. API webRequest позволял подключать собственные обработчики, имеющие полный доступ к сетевым запросам и способные на лету модифицировать трафик Новый API declarativeNetRequest предоставляет доступ к готовому универсальному встроенному движку для фильтрации, самостоятельно обрабатывающему правила блокировки, не разрешающему использовать собственные алгоритмы фильтрации и не позволяющему задавать сложные правила, перекрывающие друг друга в зависимости от условий. В качестве причины перехода на API declarativeNetRequest отмечается забота о конфиденциальности - с новым API дополнения лишаться неограниченного доступа к ко всем потокам данных, которые могут включать в том числе и конфиденциальную информацию пользователя.
В ходе дебатов с разработчика дополнений, на работу которых повлияет API declarativeNetRequest (например, перестанет работать дополнение uBlock Origin, авторы которого считают функциональность declarativeNetRequest недостаточной для полноценной работы дополнения), компания Google попыталась гладить некоторые острые моменты. Например, добавлена поддержка использования declarativeNetRequest для нескольких статических наборов правил, фильтрации по регулярным выражениям, модификации HTTP-заголовков, динамического изменения и добавления правил, удаления и замены параметров запросов.
В новом манифесте также представлены следующие изменения, влияющие на совместимость с дополнениями:
- Переход к выполнению Service workers в форме фоновых процессов, что потребует от разработчиков изменения кода некоторых дополнений.
- Новая гранулированная модель запроса полномочий - дополнение не сможет активироваться сразу для всех страниц (убрано полномочие "all_urls"), а будет работать только в контексте активной вкладки, т.е. пользователю потребуется подтверждать работу дополнения для каждого сайта.
- Изменение обработки Cross-origin запросов - в соответствии с новым манифестом на скрипты обработки контента будут распространяться те же ограничения полномочий, что и для основной страницы, в которую эти скрипты внедряются (например, если страница не имеет доступа к API определению местоположения, то и скрипт дополнения также не получит этот доступ).
- Запрет выполнения кода, загруженного с внешних серверов (когда дополнение подгружает и выполняет внешний код).
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.