2 月 20 日,Electron 29.0.0 正式发布!该版本包括了对 Chrome 122.0.6261.39、V8 12.2 和 Node.js 20.9.0 的升级。下面就来看看该版本都有哪些更新吧!
可以通过以下命令来安装最新版本:
npm install electron@latest
依赖更新
- Chrome 122.0.6261.39
- V8 12.2
- Node.js 20.9.0
重大变化
- 通过contextBridge调用的函数现在使用预期的接收者(this)来调用(也适用于 27、28 版本)。
- 应用上的gpu-process-crashed事件已被弃用(也适用于 28 版本)。
- 应用上已弃用的gpu-process-crashed事件已被移除。
- 应用上的已弃用的renderer-process-crashed事件以及WebContents和<webview>上的crashed事件已被移除。
新特性
新增功能
- 添加了 WebContentsView 和 BaseWindow,取代了现已弃用的 BrowserView API。
- 在 ses.setPermissionRequestHandler(handler) 中添加了 keyboardLock(也适用于版本 26、27、28)。
- 在 protocol.registerSchemesAsPrivileged 中添加了一个选项,允许在自定义方案中缓存 V8 代码(也适用于版本 27、28)。
- 在实用程序中添加了 net 模块(也适用于版本 27、28)。
- 添加了新的 Electron Fuse,将 file:// 协议选择为与 Chromium 匹配的更安全、更严格的行为。
- 添加了新的 webUtils.getPathForFile 方法,以替代 File.path 的增强功能。
- 添加了通过 .npmrc 配置 use_remote_checksums 的支持。
- 将 app.{set|get}LoginItemSettings(settings) 迁移到 macOS 上的 Apple 推荐的新底层框架。
- 此 PR 向 display 对象添加了几个属性,包括 detected、maximumCursorSize 和 nativeOrigin(也适用于版本 28)。
弃用功能
- 从 Windows zip 文件中移除了多余的dll文件(也适用于版本 28)。
问题修复
- 添加了 ThumbnailCapturerMac 和 ScreenCaptureKitStreamPickerSonoma 这两个 Chromium 特性标志的支持,以在 macOS 14.4 上绕过弃用 API 的警告。
- 修复了 Electron 29.0.0-beta.3 中的一个回归问题,该问题可能导致上下文菜单在错误的位置弹出。
- 修复了在启用 contextIsolation 的渲染进程中 import.meta.url 不工作的问题。
- 修复了原始 original-fs 方法在已修补的导入中未正确修正的问题。
- 修复了跨平台时 draggable 区域不起作用的问题。
- 修复了 MessagePort::close 中的崩溃问题。
- 修复了 GrantFileProtocolExtraPrivileges 未正确阻止对 file:// URLs 的 fetch() 调用的问题。
注意事项
根据项目的支持政策,Electron 26.x.y 已经达到了支持结束的状态,鼓励开发者和应用升级到更新的 Electron 版本。