Рекомендуем
VPS на Windows и Linux — от 49 ₽ за 7 дней Быстрый запуск сервера на NVMe для сайтов, ботов и других задач.
Выбрать VPS

Electron 45.2.2 исправляет вылеты приложений в Wayland при работе со скрытыми окнами

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

Electron 45.2.2 исправляет вылеты приложений
Electron 45.2.2 исправляет вылеты приложений

Скрытое окно могло вызвать аварийное завершение приложения в 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 и сохранение временного оформления после его программного удаления.

Источники

При использовании материалов сайта необходимо указывать ссылку на TGLand.ru. Если вы копируете фрагменты текста в интернете, прямая гиперссылка, доступная для индексации поисковыми системами, должна быть размещена в начале материала.

Вам также может понравиться