Chrome 120 теперь доступен в бета-версии и включает множество интересных обновлений для разработчиков расширений Chrome.
Этот год выдался насыщенным для команды Chrome Extensions. Вчерашний релиз бета-версии Chrome 120 ознаменовал собой ещё один большой шаг вперёд в развитии платформы расширений. Обзор событий этого года можно найти в наших ежеквартальных отчётах за июль и октябрь . Читайте далее о новых возможностях Chrome 120 для расширений.
Устранение разрыва между платформами
С выпуском Chrome 120 мы устраним оставшиеся пробелы в платформе, перечисленные на странице известных проблем Manifest V3 . Новый API UserScript и поддержка обработки файлов в ChromeOS — два оставшихся пункта в списке, которые мы теперь можем вычеркнуть. В сочетании с изменениями, описанными в предыдущем квартальном отчёте, мы очень довольны текущим состоянием платформы расширений Chrome и нашими достижениями за последний год.
Новый API пользовательских скриптов
Реализована поддержка пользовательских скриптов! Пользовательские скрипты — это (обычно относительно небольшие) фрагменты кода, которые расширения могут внедрять в веб-страницы для изменения их внешнего вида или поведения. Они могут быть созданы непосредственно пользователем или найдены в различных репозиториях пользовательских скриптов в Интернете. Начиная с версии Chrome 120 Manifest V3, расширения могут управлять коллекцией пользовательских скриптов и определять, когда и как внедрять их на веб-страницы.
Поддержка пользовательских скриптов в Manifest V2 и Manifest V3 имеет одно существенное различие. Поскольку пользовательские скрипты обладают высокой эффективностью и требуют высокого уровня доверия к их автору, команда Chrome решила, что пользователи должны включить режим разработчика, прежде чем смогут запускать пользовательский скрипт.

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

Для начала ознакомьтесь с документацией или взгляните на официальный пример .
Более высокие статические ограничения набора правил DNR
Мы значительно увеличили лимит включенных статических наборов правил — с 10 до 50. Кроме того, мы увеличили общее количество разрешенных статических наборов правил — с 50 до 100. Это сделано в ответ на отзывы, полученные нами в группе сообщества Web Extensions.
Новый API ReadingList
В Chrome список для чтения появился в 2021 году. В прошлом году команда Chrome сделала доступ к нему ещё проще через боковую панель. В версии Chrome 120 мы добавляем возможность создавать, читать, обновлять и удалять записи в списке для чтения с помощью расширений Chrome. Чтобы узнать больше, ознакомьтесь с документацией по API и нашим новым примером .

Обработка файлов в ChromeOS
Функция обработки файлов позволяет расширениям открывать файлы с заданными типами MIME и расширениями аналогично работе с файлами на веб-платформах. Подробнее об использовании этой функции читайте в статье «Обработка файлов в 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 и поддержкой пользовательских скриптов.