Electron 30.0.0
Electron 30.0.0 已发布!它包括对 Chromium 124.0.6367.49
、V8 12.4
和 Node.js 20.11.1
的升级。
Electron 团队很高兴宣布 Electron 30.0.0 的发布!您可以使用 npm 通过 npm install electron@latest
安装它,或从我们的发布网站下载它。继续阅读以了解有关此版本的详细信息。
如果您有任何反馈,请在Twitter或Mastodon上与我们分享,或加入我们的社区 Discord!错误和功能请求可以在 Electron 的问题跟踪器中报告。
重要更改
亮点
- Windows 现在支持 ASAR 完整性熔断器 (#40504)
- 如果未正确配置,启用 ASAR 完整性的现有应用程序可能无法在 Windows 上运行。使用 Electron 打包工具的应用程序应升级到
@electron/[email protected]
或@electron/[email protected]
。 - 请查看我们的ASAR 完整性教程以获取更多信息。
- 如果未正确配置,启用 ASAR 完整性的现有应用程序可能无法在 Windows 上运行。使用 Electron 打包工具的应用程序应升级到
- 添加了
WebContentsView
和BaseWindow
主进程模块,弃用并替换BrowserView
(#35658)。在这篇博客文章中了解有关如何从BrowserView
迁移到WebContentsView
的更多信息。BrowserView
现在是WebContentsView
的一个 shim,并且旧的实现已被删除。- 有关新的
WebContentsView
API 与其他类似 API 的比较,请参阅我们的 Web 嵌入文档。
- 实施了对文件系统 API 的支持 (#41827)
堆栈更改
- Chromium
124.0.6367.49
- Chrome 124和DevTools 124 中的新功能
- Chrome 123和DevTools 123 中的新功能
- Node
20.11.1
- V8
12.4
Electron 30 将 Chromium 从 122.0.6261.39
升级到 124.0.6367.49
,Node 从 20.9.0
升级到 20.11.1
,V8 从 12.2
升级到 12.4
。
新功能
- 在 webview 中添加了
transparent
webpreference。( #40301 ) - 在 webContents API 上添加了一个新的实例属性
navigationHistory
,其中包含navigationHistory.getEntryAtIndex
方法,使应用程序能够检索浏览历史记录中任何导航条目的 URL 和标题。( #41662 ) - 添加了新的
BrowserWindow.isOccluded()
方法,允许应用程序检查遮挡状态。( #38982 ) - 添加了对从实用程序进程使用
net
模块发出的请求的代理配置支持。( #41417 ) - 添加了对
navigator.serial
中按服务类 ID 请求的蓝牙端口的支持。( #41734 ) - 添加了对 Node.js
NODE_EXTRA_CA_CERTS
CLI 标志的支持。( #41822 )
重大更改
行为已更改:跨域 iframe 现在使用权限策略来访问功能
跨域 iframe 现在必须通过 allow
属性指定给定 iframe
可以使用的功能,以便访问它们。
有关更多信息,请参阅文档。
已删除:--disable-color-correct-rendering
命令行开关
此开关从未被正式记录,但此处仍记录了它的移除。 Chromium 本身现在对色彩空间有更好的支持,因此应该不再需要此标志。
行为变更:macOS 上 BrowserView.setAutoResize
的行为
在 Electron 30 中,BrowserView 现在是新的 WebContentsView API 的包装器。
以前,BrowserView
API 的 setAutoResize
函数在 macOS 上由 自动调整大小 提供支持,在 Windows 和 Linux 上则由自定义算法提供支持。对于简单的用例,例如使 BrowserView 填充整个窗口,这两种方法的行为是相同的。但是,在更高级的情况下,BrowserView 在 macOS 上的自动调整大小方式与其他平台不同,因为 Windows 和 Linux 的自定义调整大小算法与 macOS 的自动调整大小 API 的行为并不完全匹配。现在,自动调整大小的行为在所有平台上都已标准化。
如果您的应用使用 BrowserView.setAutoResize
来执行比使 BrowserView 填充整个窗口更复杂的操作,那么您可能已经有了自定义逻辑来处理 macOS 上这种行为的差异。如果是这样,则在 Electron 30 中不再需要该逻辑,因为自动调整大小的行为是一致的。
已移除:WebContents
上 context-menu
的 params.inputFormType
属性
已移除 WebContents
中 context-menu
事件中 params 对象的 inputFormType
属性。请改用新的 formControlType
属性。
已移除:process.getIOCounters()
Chromium 已删除对此信息的访问。
对 27.x.y 的支持已结束
根据项目的支持政策,Electron 27.x.y 已达到支持结束日期。鼓励开发人员和应用程序升级到较新版本的 Electron。
E30(24 年 4 月) | E31(24 年 6 月) | E32(24 年 8 月) |
---|---|---|
30.x.y | 31.x.y | 32.x.y |
29.x.y | 30.x.y | 31.x.y |
28.x.y | 29.x.y | 30.x.y |
下一步
在短期内,您可以期望团队继续专注于跟上构成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发。
您可以在此处找到Electron 的公共时间表。
有关未来更改的更多信息,请访问计划的重大更改页面。