В Electron 45.1.0, выпущенном 27 октября 2026 года, восстановили работу нескольких механизмов расширений, устранили падения приложений на Linux и исправили ограничения доступа к системным файлам. Изменения затрагивают настольные программы на Electron, в которых используются расширения Chromium, загрузка файлов и дополнительные процессы.

Расширения Manifest V3 снова получают события и обрабатывают сетевые запросы
В Electron 45.1.0 исправили несколько ошибок, из-за которых расширения могли терять события, переставать реагировать на запросы и некорректно работать после перезапуска приложения. Часть проблем касалась Manifest V3 (MV3) — современной системы расширений Chromium, где фоновую работу часто выполняет service worker, специальный скрипт, запускаемый по мере необходимости.
До исправления события некоторых расширений MV3 не доходили до фоновых обработчиков. В других ситуациях вызов session.clearStorageData() удалял регистрацию фонового service worker, и расширение переставало получать события до повторной загрузки. Релиз исправляет оба сценария.
Отдельная ошибка возникала при использовании блокирующего обработчика chrome.webRequest. Такой обработчик может приостанавливать сетевой запрос, пока расширение его проверяет. Из-за ошибки во взаимодействии с Chromium запрос иногда оставался в состоянии ожидания. В версии 45.1.0 восстановлено завершение этой процедуры, поэтому запрос может продолжить обработку после ответа расширения.
Исправили и идентификацию вкладок: chrome.webRequest мог возвращать tabId: -1, а правила chrome.declarativeNetRequest с условиями по идентификатору вкладки не срабатывали. Раньше расширение, которое должно было применять правило только к определённой вкладке, не могло корректно сопоставить запрос с ней. Теперь в соответствующих событиях используется идентификатор WebContents.
Среди других исправлений — сохранение chrome.alarms и постоянных content scripts после перезапуска, работа API chrome.management, локализация стилей расширений и предотвращение преждевременной остановки service worker при активном WebSocket. Всё это относится прежде всего к программам, в которые разработчики встроили поддержку расширений Chromium.
Electron 45.1.0 устраняет падения при работе с Linux и загрузке данных
На Linux сбой соединения с D-Bus мог завершаться аварийным закрытием программы. D-Bus — механизм обмена сообщениями между приложениями и системными службами. Если приложение пыталось вызвать метод после отключения шины, внутренний код мог передать некорректный объект и завершиться сигналом SIGABRT. Теперь ошибка обрабатывается без такого аварийного завершения.
Ещё одно исправление касается отправки данных через интернет. При загрузке Blob — объекта, в котором браузерное приложение может хранить файл или другой набор байтов, — наблюдатель onSendHeaders иногда приводил к падению основного процесса Electron. Причиной была одновременная работа двух потоков с данными тела запроса. Исправленная обработка устраняет этот конфликт.
На macOS устранена ситуация, когда Menu.popup() иногда не показывал меню после закрытия предыдущего. Для фоновых служебных процессов исправили пропуск события exit, если программа завершалась в момент запуска utilityProcess. Последняя ошибка могла мешать приложению корректно отслеживать завершение собственных вспомогательных процессов.
Доступ к .git/hooks и повреждённым ASAR-архивам обрабатывается строже
В File System Access устранили пробелы в проверке путей. Этот браузерный механизм позволяет веб-интерфейсам открывать и сохранять файлы при выполнении предусмотренных проверок доступа. До исправления правила блокировки записи в каталог .git/hooks применялись некорректно. Теперь ограничение действует при сохранении через диалог и программной записи. Чтение этой папки по-прежнему допускается в рамках соответствующих разрешений.
В Windows исправили распознавание UNC-путей, через которые виртуальные машины предоставляют доступ к папкам компьютера-хоста. В частности, обработка учитывает имена серверов, используемые Parallels, VMware и VirtualBox. Это влияет на применение ограничений File System Access к таким путям.
Изменили и проверку ASAR — формата архивов, в котором Electron-приложения часто упаковывают свои ресурсы. Если внутренние размеры или смещения файлов не соответствуют фактической длине архива, обработчик теперь распознаёт повреждённые данные. Раньше неверные значения могли вызывать непонятные ошибки операций с файлами. Исправлено также расхождение в обработке путей ASAR между основным и дочерними процессами.
Предзагрузочные скрипты Electron можно привязать к определённым адресам
Метод session.registerPreloadScript получил фильтры matches, excludeMatches, includeGlobs, excludeGlobs и matchOriginAsFallback. Предзагрузочный скрипт (preload) выполняется перед обычным кодом страницы и может связывать веб-интерфейс с функциями настольного приложения.
Раньше при регистрации такого скрипта для сессии возможности выборочного запуска по адресам были ограничены. Теперь разработчик может разрешить его выполнение на конкретных сайтах и исключить отдельные страницы. Например, скрипт для корпоративного веб-сервиса можно ограничить адресами этого сервиса, а страницы выхода из учётной записи исключить через фильтр.
Параметр matchOriginAsFallback учитывает происхождение некоторых документов с адресами вроде about:blank, которые создаёт другая страница. Это помогает применять правила фильтрации и к таким вложенным окнам. Согласно документации Electron, фильтры также работают для service workers, а переход внутри уже загруженной страницы сам по себе повторно preload-скрипт не запускает.
Chromium 156 и Node.js 24 получили небольшие обновления
Electron объединяет Chromium для отображения интерфейса, Node.js для серверных возможностей JavaScript и движок V8 для выполнения кода. В выпуске 45.1.0 используются Chromium 156.0.8078.49, Node.js 24.22.1 и V8 15.6.75.19.
Для сравнения, в первоначальном выпуске Electron 45.0.0 использовались Chromium 156.0.8078.48 и Node.js 24.22.0. Крупные изменения ветки 45, включая новый порядок обработки некоторых preload-скриптов и разрешений на захват экрана, появились ещё в базовом релизе. Версия 45.1.0 исправляет обнаруженные после него проблемы совместимости и поведения отдельных механизмов.
Влияние этого выпуска зависит от устройства конкретного приложения. Программа без поддержки расширений может не сталкиваться с ошибками MV3, а проблема D-Bus относится к Linux. Само обновление Electron в исходном проекте ещё не означает, что все выпущенные на нём настольные программы автоматически перешли на новую версию.
Источники
- Electron — официальные примечания к выпуску 45.1.0
- Electron — документация API session и фильтров preload-скриптов
- GitHub — исправления работы расширений Chromium, PR #55283
- GitHub — зависание запросов в chrome.webRequest, PR #55271
- GitHub — устранение аварийного завершения D-Bus, PR #55292
- GitHub — исправление загрузки Blob, PR #55169
- GitHub — ограничения File System Access, PR #55329
- GitHub — проверка повреждённых ASAR-архивов, PR #55175
- Electron — обзор основной версии Electron 45