Mozilla не станет переносить все ограничения API WebExtensions из нового манифеста Chrome

Компания Mozilla объявила, что несмотря на использование в Firefox системы дополнений на основе API WebExtensions, разработчики не намерены полностью следовать будущей третьей редакции манифеста на дополнения Chrome. В частности, в Firefox будет продолжена поддержка блокирующего режима работы работы API webRequest, позволяющего менять принимаемый контент на лету и востребованного в блокировщиках рекламы и системах фильтрации контента.

Основной идеей перехода на API WebExtensions была унификация технологии разработки дополнений для Firefox и Chrome, поэтому в текущем виде в Firefox почти на 100% обеспечена совместимость с актуальной второй версией манифеста Chrome. Манифест определяет перечень возможностей и ресурсов, предоставляемых дополнениям. Из-за внесения в третью версию манифеста ограничительных мер, негативно воспринимаемых разработчикам дополнений, Mozilla отойдёт от практики полного следования манифесту и не будет переносить в Firefox изменения, нарушающие совместимость с дополнениями.

Напомним, что несмотря на все возражения, компания Google намерена прекратить поддержку в Chrome блокирующего режима работы API webRequest, ограничив его режимом только для чтения и предложив для фильтрации контента новый декларативный API declarativeNetRequest. Если API webRequest позволял подключать собственные обработчики, имеющие полный доступ к сетевым запросам и способные на лету модифицировать трафик, новый API declarativeNetRequest предоставляет доступ к готовому универсальному встроенному движку для фильтрации, самостоятельно обрабатывающему правила блокировки и не позволяющему использовать собственные алгоритмы фильтрации и задавать сложные правила, перекрывающие друг друга в зависимости от условий.

Что касается других изменений в третьей версии манифеста Chrome, то Mozilla также оценивает целесообразность переноса в Firеfox поддержки следующих изменений, нарушающих совместимость с дополнениями:

  • Переход к выполнению Service workers в форме фоновых процессов, что потребует от разработчиков внесения изменений в дополнения. Несмотря на то, что новый метод более оптимален с точки зрения производительности Mozilla рассматривает возможность сохранения поддержки выполнения фоновых страниц.
  • Новая гранулированная модель запроса полномочий — дополнение не сможет активироваться сразу для всех страниц (убрано полномочие «all_urls»), а будет работать только в контексте активной вкладки, т.е. пользователю понадобиться подтверждать работу дополнения для каждого сайта. Mozilla исследует пути усиления контроля доступа, не отвлекающие постоянно пользователя.
  • Изменение обработки Cross-origin запросов — в соответствии с новым манифестом на скрипты обработки контента будут распространяться те же ограничения полномочий, что и для основной страницы, в которую эти скрипты внедряются (например, если страница не имеет доступа к API определению местоположения, то и скрипт дополнения также не получит этот доступ). Изменение планируется реализовать в Firefox.
  • Запрет выполнения кода, загруженного с внешних серверов (речь про ситуации, когда дополнение подгружает и выполняет внешний код). В Firefox уже применяется блокировка внешнего кода и разработчики Mozilla не против усилить подобную защиту, применяя дополнительные техники отслеживания загрузок кода, предлагаемые в третьей версии манифеста.

©  OpenNet