跳到主要内容

Electron 30.0.0

·4 分钟阅读

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 安装它,或者从我们的发布网站下载它。继续阅读以了解有关此版本的详细信息。

如果您有任何反馈,请在 TwitterMastodon 上与我们分享,或加入我们的社区 Discord!错误和功能请求可以在 Electron 的 issue tracker 中报告。

值得注意的更改

亮点

  • Windows 上现在支持 ASAR 完整性熔断器 (#40504)
    • 如果配置不正确,启用 ASAR 完整性的现有应用可能无法在 Windows 上运行。使用 Electron 打包工具的应用应升级到 @electron/packager@18.3.1@electron/forge@7.4.0
    • 请查看我们的 ASAR 完整性教程 以获取更多信息。
  • 添加了 WebContentsViewBaseWindow 主进程模块,弃用并替换了 BrowserView (#35658)。在 这篇博文 中了解有关如何从 BrowserView 迁移到 WebContentsView 的更多信息。
    • BrowserView 现在是 WebContentsView 的 shim,并且旧的实现已被删除。
    • 请参阅 我们的 Web Embeds 文档,以比较新的 WebContentsView API 与其他类似 API。
  • 实现了对 文件系统 API 的支持 (#41827)

堆栈更改

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 中不再需要该逻辑,因为自动调整大小行为是一致的。

已删除:WebContentscontext-menuparams.inputFormType 属性

已删除 WebContentscontext-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.y31.x.y32.x.y
29.x.y30.x.y31.x.y
28.x.y29.x.y30.x.y

下一步是什么

在短期内,您可以期望团队继续专注于跟上构成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发步伐。

您可以在此处找到 Electron 的公共时间表

有关未来更改的更多信息,请访问计划的重大更改页面。