Выпуск платформы Electron 27.0 с включением режима декорирования окон для Wayland

Опубликован релиз платформы Electron 27.0.0, которая предоставляет самодостаточный фреймворк для разработки многоплатформенных пользовательских приложений, использующий в качестве основы компоненты Chromium, V8 и Node.js. Значительное изменение номера версии связано с обновлением до кодовой базы Chromium 118, платформы Node.js 18.17.1 и JavaScript-движка V8 11.8.

Среди изменений в новом выпуске:

  • Включён по умолчанию режим WaylandWindowDecorations, позволяющий при запуске с поддержкой Wayland (–ozone-platform=wayland) корректно менять размер и перемещать окна в Wayland-окружениях на базе GNOME и Weston, в которых не поддерживается протокол XDG Decoration. В окружениях с поддержкой XDG Decoration, таких как KDE и Sway, режим WaylandWindowDecorations игнорируется.
  • Добавлен API для учёта системных настроек, управляющих уровнем прозрачности фона в приложениях.
  • Добавлена поддержка API chrome.scripting, позволяющего подставлять свой JavaScript и CSS на страницы.
  • Добавлены методы safeStorage.setUsePlainTextEncryption и safeStorage.getSelectedStorageBackend.
  • Добавлен API BrowserWindow.showAllTabs. В объект BrowserWindow добавлено свойство tabbingIdentifier. Частично реализован API chrome.tabs.query.
  • В методы session.downloadURL() и webContents.downloadURL() добавлена возможность отправки определённых HTTP-заголовков.
  • Добавлен флаг “–dns-result-order”.
  • В Linux реализовано определение настроек тёмной темы оформления через портал “xdg settings”.
  • Объявлен устаревшим API ipcRenderer.sendTo(), вместо которого следует использовать MessageChannel для взаимодействия между двумя рендерами.
  • Удалён метод webContents.getPrinters, вместо которого следует использовать webContents.getPrintersAsync.
  • Удалены методы systemPreferences.{get,set}AppLevelAppearance и systemPreferences.appLevelAppearance, на смену которым пришёл модуль nativeTheme.
  • В методе systemPreferences.getColor прекращена поддержка значения alternate-selected-control-text, вместо которого нужно использовать selected-content-background.
  • В systemPreferences удалены события изменения цветовых схем (вместо inverted-color-scheme-changed и high-contrast-color-scheme-changed следует использовать событие updated из модуля nativeTheme).
  • Прекращена поддержка macOS 10.13 (High Sierra) и macOS 10.14 (Mojave).
  • Завершён цикл сопровождения Electron 22.x, последней ветки
    с поддержкой Windows 7/8/8.1.

Платформа Electron позволяет создавать любые графические приложения с использованием браузерных технологий, логика работы которых определяется на JavaScript, HTML и CSS, а функциональность может быть расширена через систему дополнений. Разработчикам доступны модули Node.js, а также расширенный API для формирования нативных диалогов, интеграции приложений, создания контекстных меню, интеграции с системой вывода уведомлений, манипуляции окнами, взаимодействия с подсистемами Chromium.

В отличие от web-приложений, программы на базе Electron поставляются в виде самодостаточных исполняемых файлов, не привязанных к браузеру. При этом разработчику не нужно заботиться о портировании приложения для различных платформ, Electron обеспечит возможность сборки для всех систем, поддерживаемых в Chromium. Electron также предоставляет средства для организации автоматической доставки и установки обновлений (обновления можно доставлять как с отдельного сервера, так и напрямую с GitHub).

Из программ, построенных на базе платформы Electron можно отметить редактор Atom, почтовый клиент Mailspring, инструментарий для работы с Git GitKraken, система ведения блогов WordPress Desktop, BitTorrent-клиент WebTorrent Desktop, а также официальные клиенты к таким сервисам, как Skype, Signal, Slack, Basecamp, Twitch, Ghost, Wire, Wrike, Visual Studio Code и Discord. Всего в каталоге программ Electron представлено 744 приложения. Для упрощения разработки новых приложений подготовлен набор типовых демонстрационных приложений, включающих примеры кода для решения различных задач.

Release. Ссылка here.