3 ноября 2026 года вышел Electron 45.2.2 с исправлением аварийного завершения Linux-приложений, когда скрытое окно используется как родительское для диалога в Wayland. В этой же версии устранили ошибку удаления временных CSS-стилей и обновили компоненты Chromium и Node.js.

Скрытое окно могло вызвать аварийное завершение приложения в Wayland
Ошибка возникала в определённой последовательности действий: приложение создавало невидимое окно и пыталось открыть от его имени системный диалог. В графической среде Wayland такая операция могла закончиться закрытием всей программы. Wayland отвечает за взаимодействие приложений с графической системой Linux, включая показ окон и диалогов.
Проблему подробно описали в отчёте Electron № 55141. Пользователь Arch Linux с оконным менеджером Hyprland наблюдал неожиданное завершение приложения Granola. Позже удалось воспроизвести сбой на Electron 44.9.3: вызов dialog.showMessageBox() с родительским окном BrowserWindow, созданным с параметром show: false, приводил к завершению процесса с сигналом SIGTRAP. После отображения того же окна вызов диалога уже не вызывал такой ошибки.
Причина была связана с передачей идентификатора окна графической системе. При попытке экспортировать скрытую поверхность композитор Wayland мог отклонить запрос, после чего процесс аварийно завершался. Исправление, перенесённое из Chromium, учитывает видимость родительского окна: для скрытой поверхности система возвращает пустой идентификатор и не пытается экспортировать её прежним способом.
Удаление временных CSS-стилей снова работает для cssOrigin: 'user'
Второе исправление затрагивает приложения, которые меняют оформление встроенных веб-страниц программно. Electron позволяет добавить CSS-правила через insertCSS(), а затем убрать их с помощью removeInsertedCSS(). Так можно, например, временно изменить внешний вид интерфейса, а позже вернуть прежнее оформление.
До исправления удаление не срабатывало для стилей, вставленных с параметром cssOrigin: 'user'. В результате правила продолжали действовать даже после вызова метода удаления. Причина находилась в механизме Blink: при удалении он искал стиль среди правил с происхождением author, хотя добавленный набор относился к категории user.
В Electron 45.2.2 ключ вставленного стиля теперь содержит информацию о его происхождении. Для правил с cssOrigin: 'user' используется префикс user:, который помогает найти нужную таблицу стилей при удалении. Исправление распространяется на соответствующие механизмы webFrame и webContents, включая путь, используемый элементом webview.
Для интерфейса результат простой: временно добавленные пользовательские стили действительно исчезают после команды удаления. Разработчики Electron добавили проверки, которые контролируют возвращение исходного оформления после удаления таких правил.
Chromium и Node.js обновлены по сравнению с Electron 45.2.1
Предыдущий выпуск Electron 45.2.1 от 31 октября в основном включал изменения, перенесённые из Chromium, и обновление его версии до 156.0.8078.75. У Electron 45.2.2 появилось два отдельно описанных исправления поведения приложений, а встроенные компоненты перешли на следующие версии:
- Chromium — 156.0.8078.80 вместо 156.0.8078.75;
- Node.js — 24.22.2 вместо 24.22.1.
Chromium отвечает за отображение веб-интерфейса внутри приложения, а Node.js предоставляет среду выполнения JavaScript для системных задач. В списке изменений Electron 45.2.2 эти обновления указаны отдельно от исправлений Wayland и CSS; конкретных показателей прироста производительности команда не приводила.
Исправление сбоя в Wayland получили и другие ветки Electron
3 ноября разработчики опубликовали аналогичное исправление для Electron 44.10.2 и 43.8.7. Это связано с тем, что дефект работы со скрытым родительским окном затрагивал несколько поддерживаемых веток фреймворка.
Ошибка удаления CSS с cssOrigin: 'user' указана в примечаниях к Electron 45.2.2 и предварительной ветке 46. Таким образом, выпуск 45.2.2 закрывает два разных сценария: аварийное завершение приложения на Wayland и сохранение временного оформления после его программного удаления.