


27 октября выпущен Electron 45.1.0. Обновление добавляет фильтрацию адресов в session.registerPreloadScript и исправляет ряд сбоев настольных приложений. На Mentoring.digital разбираем главное изменение для разработчика: как задать, на каких страницах должен запускаться предварительно загружаемый скрипт.
Метод получил параметры matches, excludeMatches, includeGlobs, excludeGlobs и matchOriginAsFallback. Они позволяют описать подходящие адреса и исключения. Если одновременно заданы matches и includeGlobs, адрес должен удовлетворять обоим условиям. Исключающие правила запрещают запуск даже при совпадении разрешающих.
Для документа во фрейме проверяется его адрес, а для service worker применяется область действия. Параметр matchOriginAsFallback позволяет учитывать происхождение создавшей страницы для некоторых документов без собственного подходящего адреса. Неверный шаблон URL, а также пустые массивы matches или includeGlobs вызывают ошибку.
Полезный первый шаг для проекта: выписать разрешённые страницы и те, где скрипт не должен выполняться. Например, основной интерфейс приложения и внешний адрес, открытый из него, могут требовать разных правил. Сначала проверьте эту границу на стенде и только затем переносите настройку в рабочую сборку.
Разработчики исправили падение при вызове D-Bus через отключённую шину в Linux и сбой главного процесса, когда onSendHeaders наблюдал загрузку Blob. В расширениях исправлены неверный tabId в событиях chrome.webRequest и правила chrome.declarativeNetRequest, ограниченные вкладками.
В поставку входят Chromium 156.0.8078.49 и Node.js 24.22.1. Номер Electron сам по себе не подтверждает совместимость используемых зависимостей, поэтому при обновлении стоит проверять приложение целиком.
Документация отдельно уточняет: переход внутри страницы не запускает preload повторно. Для приложения с клиентской маршрутизацией это важно учитывать при ожиданиях от новых фильтров.
Проверьте стартовое окно, полную перезагрузку, переход по внутреннему маршруту и открытие внешней страницы. Для каждого случая зафиксируйте ожидаемый запуск или отсутствие запуска скрипта. Если приложение использует расширения или отправляет файлы, добавьте соответствующие сценарии. Разобрать границы доступа между интерфейсом и основным процессом можно с наставником по разработке пользовательских интерфейсов.