Electron 是一个使用 JavaScript、HTML 和 CSS 构建跨平台的桌面应用程序。它基于 Node.js 和 Chromium,被 Atom 编辑器和许多其他应用程序使用。Electron 兼容 Mac、Windows 和 Linux,可以构建出三个平台的应用程序。
Electron v28.0.0 更新内容如下:
Stack Upgrades
Breaking Changes
BrowserWindow.setTrafficLightPosition()和BrowserWindow.getTrafficLightPosition()方法已被删除。#39479app.runningUnderRosettaTranslation()方法已被删除。#39956ipcRenderer.sendTo()方法已被删除。#39087scroll-touch-{begin,end,edge}事件已被删除。#39814- 将
backgroundThrottling设置为 false 将禁用BrowserWindow对其显示的所有WebContents的 frames throttling。#38924
Features
Additions
- 启用 ESM 支持。#37535
- 有关更多详细信息,参阅 ESM 文档。
UtilityProcessAPI 现在支持 ESM entrypoints。#40047- 向
display对象添加了多个属性,包括detected、maximumCursorSize和nativeOrigin。#40554 - 添加了对 Linux 上环境变量
ELECTRON_OZONE_PLATFORM_HINT的支持。#39792
除了在 Electron 本身中启用 ESM 支持之外,Electron Forge 还支持使用 ESM 来打包、构建和开发 Electron 应用程序。可以在 Forge v7.0.0 或更高版本中找到此支持:https://github.com/electron/forge/releases/tag/v7.0.0
- 添加了 API 以帮助应用程序知道何时避免半透明背景。# 39631
- 添加了
getWebRTCUDPPortRange好setWebRTCUDPPortRangeAPI 来指定 WebRTC 的 UDP 端口范围。#39046 - 添加
keyboardLock到ses.setPermissionRequestHandler(handler)。# 40460 - 为 Windows 添加了
mouse-enter和mouse-leaveTray 事件。#40072 - 为
webContents.printToPDF()添加了generateTaggedPDF选项,以便生成带 tag(可访问)的 PDF。#39563 - 添加了一个
tabbingIdentifier属性到BrowserWindow。# 39980 - 向 tray icon 添加了 middle click mouse event。#39926
- 向
display对象添加了多个属性,包括detected、maximumCursorSize和nativeOrigin。#40554 - 添加了对 Linux 上环境变量
ELECTRON_OZONE_PLATFORM_HINT的支持。#39792 - 添加了对
chrome.scripting扩展 API 的支持。# 39395 - 添加了对更多扩展清单键的支持,包括
host_permissions、author和short_name。# 39599 - 添加了使用
webContents.downloadURL()发送 HTTP headers 的功能。# 39455 - 修改
systemPreferences.getColor(name)返回 RGBA 十六进制值 (#RRGGBBAA) 而非 plain RGB (#RRGGBB) 值。#38960 - 在 Linux 上遵循 XDG 深色主题偏好设置。# 38977
- 通过传递 dummy
module.exports提高了与沙盒预加载脚本中 CommonJS 模块的兼容性。#39484
改进
- 改进 Linux 上
child_processAPI 的fork()和execve()性能。#39253 - 修复了 macOS 上调整大小的性能问题。# 40586
- 修复了 DWM 上的不透明窗口性能回归。#39895
- 在 macOS 上重新启用分区分配。#40230
删除/弃用
app.runningUnderRosettaTranslation属性已被弃用。# 39897app上的gpu-process-crashed事件已被弃用。#40195app上的renderer-process-crashed事件以及WebContents和<webview>上的崩溃事件已被弃用。#40089
Fixes
- 修复了未引用时无法对
MessagePorts进行垃圾回收的问题。#40201 - 修复了应用程序在 macOS Sonoma 上无法正确激活面板窗口的问题。#40465
- 修复了在 Linux 中传递给
shell.showItemInFolder的文件路径不被转义的问题。#40562 - 修复了在
node_modules中加载嵌套的 ESM 依赖关系的问题。在 asar 文件中支持fs.statSync/fs.lstatSync中的throwIfNoEntry选项。#40224 - 修复了 first party sets. 的 same-party cookie 功能。#40526
- 在 macOS 上使用
activateIgnoringOtherApps来 focusing non-panels。#40621
通知
终止对 25.xy 的支持
根据项目的支持政策,Electron 25.xy 已结束支持。鼓励开发人员和应用程序升级到较新版本的 Electron。
详情可查看更新说明。