Что нового в Chrome 120 для расширений

Chrome 120 теперь доступен в бета-версии и включает в себя множество интересных обновлений для разработчиков расширений Chrome.

Для команды расширений Chrome это был напряженный год. Со вчерашним выпуском бета-версии Chrome 120 платформа расширений делает еще один большой шаг вперед. Чтобы получить общее представление о том, что произошло в этом году, ознакомьтесь с нашими ежеквартальными обновлениями за июль и октябрь . Прочтите, что нового в Chrome 120 для расширений.

Устранение разрыва в платформах

С выпуском Chrome 120 мы закроем оставшиеся пробелы в платформе, перечисленные на странице известных проблем Manifest V3 . Новый API userScript, а также поддержка обработки файлов в ChromeOS были двумя оставшимися пунктами в списке, которые мы теперь можем вычеркнуть. Вместе с изменениями, описанными в предыдущем ежеквартальном обновлении, мы очень довольны текущим состоянием Chrome. Платформа расширения и чего мы достигли за последний год.

Новый API пользовательских сценариев

Добавлена ​​поддержка пользовательских сценариев! Пользовательские сценарии — это (обычно относительно небольшие) фрагменты кода, которые расширения могут внедрять в веб-страницы, чтобы изменить внешний вид или поведение страницы. Они могут быть созданы непосредственно пользователем или обнаружены в различных репозиториях пользовательских сценариев в Интернете. Начиная с Chrome 120, расширения Manifest V3 теперь могут управлять коллекцией пользовательских скриптов и определять, когда и как их внедрять на веб-страницы.

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

Страница расширений
Страница расширений (chrome://extensions)

Наш новый образец пользовательского сценария демонстрирует простой подход к определению того, включен ли режим разработчика, и обеспечивает простой процесс регистрации.

Пример процесса адаптации для пользовательских сценариев.
Включайте пользователей, когда режим разработчика отключен.

Для начала ознакомьтесь с документацией или взгляните на официальный образец .

Более высокие ограничения статического набора правил DNR

Мы значительно увеличили ограничение на количество включенных статических наборов правил с 10 до 50. Кроме того, мы увеличили общее количество разрешенных статических наборов правил с 50 до 100. Это ответ на отзывы, полученные нами в группе сообщества веб-расширений.

Новый API списка чтения

Chrome представил список для чтения в 2021 году. В прошлом году команда Chrome еще больше упростила доступ к списку для чтения через боковую панель. В Chrome 120 мы добавляем возможность расширениям Chrome создавать, читать, обновлять и удалять записи списка чтения. Чтобы узнать больше, ознакомьтесь с документацией по API и нашим новым примером .

Список чтения Chrome, показывающий страницы документации расширений.
Боковая панель списка чтения в Chrome.

Обработка файлов в ChromeOS

Обработка файлов позволяет расширениям открывать файлы с указанными типами MIME и расширениями файлов аналогично обработке файлов веб-платформы. Узнайте больше о том, как его использовать, в разделе «Обработка файлов в ChromeOS» .

Снимок экрана: диалоговое окно открытия файла с расширением в ChromeOS
Открывайте файлы в расширении на ChromeOS.

Включите сигнализацию за 30 секунд

Это небольшое обновление, но оно устраняет важный пробел в жизненном цикле сервис-воркера. Из-за того, что сервис-воркеры ориентированы на события, рекомендуемый способ запуска события в будущем — использовать chrome.alarms . API сигналов тревоги гарантирует, что событие будет запущено, даже если сервисный работник тем временем отключится.

Однако есть одна загвоздка. До Chrome 120 кратчайший промежуток времени для срабатывания будильника составлял одну минуту. Однако работники службы отключаются после 30 секунд бездействия. Таким образом, не было простого способа запланировать срабатывание сигнала тревоги через 45 секунд, поскольку при использовании setTimeout() для установки события через 45 секунд сервис-воркер потенциально мог быть отключен до того, как событие будет запущено.

Начиная с Chrome 120, вы можете запустить событие в:

  • менее 30 секунд с помощью setTimeout() .
  • что-либо длиннее или равное 30 секундам с использованием chrome.alarms :
await chrome.alarms.create('demo-default-alarm', {
   periodInMinutes: 0.45
 });

Краткое содержание

Мы очень воодушевлены прогрессом, достигнутым платформой расширения за последний год. Chrome 120 — это еще один большой шаг в увеличении ограничений DNR и поддержке пользовательских сценариев.