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/packager@18.3.1或@electron/forge@7.4.0。 - 请参阅我们的 ASAR 完整性教程 以获取更多信息。
- 如果配置不正确,现有已启用 ASAR 完整性的应用程序可能无法在 Windows 上运行。使用 Electron 打包工具的应用程序应升级到
- 添加了
WebContentsView和BaseWindow主进程模块,废弃并替换了BrowserView(#35658)。了解更多关于如何从BrowserView迁移到WebContentsView的信息,请参阅 这篇博文。BrowserView现在是WebContentsView的一个垫片,旧的实现已被移除。- 请参阅 我们的 Web Embeds 文档,以比较新的
WebContentsViewAPI 与其他类似 API。
- 实现了对 文件系统 API 的支持 (#41827)
堆栈变化
- Chromium
124.0.6367.49- Chrome 124 中的新特性 和 DevTools 124 中的新特性 (Chrome 124 和 DevTools 124)
- Chrome 123 中的新特性 和 DevTools 123 中的新特性 (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 添加了一个
transparentwebpreference。(#40301) - 在 webContents API 上添加了一个新的实例属性
navigationHistory,并带有navigationHistory.getEntryAtIndex方法,使应用程序能够检索浏览历史记录中任何导航条目的 URL 和标题。(#41662) - 添加了新的
BrowserWindow.isOccluded()方法,允许应用程序检查遮挡状态。(#38982) - 添加了对使用
net模块从实用程序进程发出的请求的代理配置支持。(#41417) - 添加了对在
navigator.serial中通过服务类 ID 请求蓝牙端口的支持。(#41734) - 添加了对 Node.js
NODE_EXTRA_CA_CERTSCLI 标志的支持。(#41822)
破坏性变更
行为变更:跨域 iframe 现在使用权限策略来访问功能
跨域 iframe 现在必须通过 allow 属性指定可用于给定 iframe 的功能,才能访问它们。
请参阅 文档 以获取更多信息。
移除:--disable-color-correct-rendering 命令行开关
这个开关从未被正式记录,但在此仍会注明其移除。Chromium 本身现在对颜色空间有更好的支持,所以应该不再需要这个标志。
行为变更:macOS 上的 BrowserView.setAutoResize 行为
在 Electron 30 中,BrowserView 现在是新 WebContentsView API 的包装器。
此前,BrowserView API 的 setAutoResize 函数在 macOS 上由 autoresizing 支持,在 Windows 和 Linux 上则由自定义算法支持。对于诸如使 BrowserView 填充整个窗口之类的简单用例,这两种方法的行为是相同的。但是,在更高级的用例中,BrowserView 在 macOS 上的自动调整大小方式与在其他平台上的方式不同,因为 Windows 和 Linux 的自定义调整大小算法与 macOS 的自动调整大小 API 的行为并不完全匹配。现在,自动调整大小的行为在所有平台上都已标准化。
如果您的应用程序使用 BrowserView.setAutoResize 来执行比让 BrowserView 充满整个窗口更复杂的操作,那么您可能已经实现了自定义逻辑来处理 macOS 上的这种行为差异。如果是这样,在 Electron 30 中,由于 autoresize 行为已一致,这些自定义逻辑将不再需要。
移除: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 的公共时间线。
有关未来变更的更多信息,请参见 计划中的破坏性变更 页面。

