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

Electron 44.9.0 разделяет окна по значкам Dock в macOS — возможности app shims

17 октября 2026 года вышел Electron 44.9.0 с экспериментальной поддержкой app shims: окна, созданные одним приложением, могут отображаться в macOS под разными значками в Dock. В этой же версии исправили наследование настроек при открытии ссылок в новых окнах и ошибку проверки HTTPS-сертификатов при одновременных запросах.

Electron 44.9.0 разделяет окна по значкам Dock в macOS
Electron 44.9.0 разделяет окна по значкам Dock в macOS

App shims позволяют одному Electron-приложению иметь несколько значков Dock

До этого у разработчиков набора связанных программ для macOS было два основных варианта. Почта, календарь и заметки могли запускаться как отдельные приложения, каждое со своей копией Electron. Либо их объединяли в одну программу с общим значком в Dock, даже если интерфейс был разделён на несколько окон.

В Electron 44.9.0 появился третий вариант — app shims. Это небольшие вспомогательные приложения в собственных пакетах .app. Каждое из них получает свой значок в Dock, собственное меню и представление в переключателе приложений. Основной процесс Electron при этом продолжает создавать окна, загружать их содержимое и обрабатывать события.

Технически собственником системного окна NSWindow становится процесс shim. Благодаря этому macOS относит его к соответствующему приложению в Dock, Mission Control, Stage Manager и переключателе приложений. Сами продукты могут использовать общий основной процесс, сессию и установленную копию Electron. Такое устройство описано разработчиками в техническом обсуждении новой функции.

Новая возможность рассчитана на авторов настольного ПО. Для её использования предусмотрены методы app.startAppShimServer() и app.stopAppShimServer(), событие app-shim-connected и параметр appShim при создании BrowserWindow или BaseWindow. Разработчику также требуется подготовить отдельный пакет вспомогательного приложения. Сами по себе уже установленные программы после обновления фреймворка дополнительные значки не получат.

Экспериментальный API app shims пока имеет ограничения

Поддержка app shims доступна в macOS, но отсутствует в сборках для Mac App Store. Разработчики пометили API как экспериментальный: его поведение и набор возможностей ещё могут меняться.

У окон, вынесенных в shim, пока есть отличия от обычных окон Electron. В частности, не работают отдельные возможности Touch Bar, window controls overlay и режим simple fullscreen. Такое окно нельзя сделать модальным или назначить ему родительское окно; группировка вкладок действует только в пределах одного shim. Для меню предусмотрен собственный механизм shim.setApplicationMenu().

Ограничения зафиксированы в исходном описании реализации app shims. Это уточняет границы функции: отдельный значок в Dock сопровождается иной схемой взаимодействия окна с системой.

Новые окна из ссылок сохраняют сессию и настройки исходного окна

Ещё одна правка касается ссылок, которые открываются через среднюю кнопку мыши или сочетание с клавишей-модификатором. Раньше созданное таким способом окно могло попасть в сессию Electron по умолчанию и получить стандартные webPreferences, хотя исходное окно использовало собственные настройки.

Сессия в Electron определяет в том числе хранение cookies и другие параметры веб-страниц. Поэтому окно, открытое из приложения с отдельной сессией, могло оказаться в другом контексте, где отсутствуют нужные данные входа или настройки. В версии 44.9.0 такие окна создаются в контексте исходного окна с учётом его параметров и обработчика открытия новых окон. Разработчики описали прежний механизм и заменившую его реализацию в исправлении #55048.

Проверка HTTPS-сертификатов больше не пропускает пользовательский обработчик при совпадающих запросах

В Electron существует метод setCertificateVerifyProc(), позволяющий приложению назначить собственную проверку серверных сертификатов для конкретной сессии. Ошибка проявлялась, когда два запроса к одному серверу начинались почти одновременно в новой сессии.

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

Причина была в том, что один из результатов внутренней проверки возвращался синхронно из кеша. Прежняя реализация передавала запрос пользовательскому обработчику только при асинхронном завершении. В 44.9.0 обработка охватывает оба пути выполнения. Исправление подробно разобрано в изменении #55046.

Проблема касалась приложений, которые действительно используют setCertificateVerifyProc() и отправляют совпадающие по времени запросы. Для программ со стандартной проверкой сертификатов этот конкретный сценарий неприменим.

Electron 44.9.0 и предыдущий выпуск 44.8.0 используют одни версии Chromium и Node.js

По данным официального списка выпусков, Electron 44.9.0 использует Chromium 152.0.7977.167 и Node.js 24.22.0 — те же версии, что и Electron 44.8.0 от 16 октября. В предыдущем выпуске появились кнопки действий в уведомлениях Linux и исправления сетевых запросов, работы окон и взаимодействия с системным интерфейсом.

В 44.9.0 выделяются три самостоятельных сценария: распределение окон по значкам Dock на Mac, корректное наследование параметров при открытии ссылок и последовательная пользовательская проверка HTTPS-сертификатов при одновременных запросах.

Влияние версии на конкретную настольную программу зависит от того, использует ли её разработчик соответствующие API и когда выпустит новую сборку приложения. Для app shims дополнительным условием остаётся экспериментальный статус функции и её ограничения в macOS.

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

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