Electron 32.0.0
Electron 32.0.0 已发布! 此版本包含了对 Chromium 128.0.6613.36
、V8 12.8
和 Node 20.16.0
的升级。
Electron 团队激动地宣布 Electron 32.0.0 发布!您可以通过 `npm install electron@latest` 使用 npm 安装它,或从我们的 发布网站 下载。请继续阅读以获取此版本详情。
如果您有任何反馈,请在 Twitter 或 Mastodon 上与我们分享,或加入我们的社区 Discord!Bug 和功能请求可以在 Electron 的 问题跟踪器 中报告。
重要变更
亮点
- 在我们的文档中添加了新的 API 版本历史记录,这是由 @piotrpdev 作为 Google Summer of Code 的一部分创建的功能。您可以在 这篇博客文章 中了解更多信息。 #42982
- 从 Web File API 中移除了非标准的 File.path 扩展。#42053
- 在尝试打开被阻止路径下的文件或目录时,Web 文件系统 API 中的失败路径已与上游对齐。 #42993
- 已将以下现有的导航相关 API 添加到 `webcontents.navigationHistory`:`canGoBack`、`goBack`、`canGoForward`、`goForward`、`canGoToOffset`、`goToOffset`、`clear`。先前的导航 API 现已弃用。 #41752
技术栈变更
- Chromium
128.0.6613.36
- Node
20.16.0
- V8
12.8
Electron 32 将 Chromium 从 126.0.6478.36
升级到 128.0.6613.36
,Node 从 20.14.0
升级到 20.16.0
,V8 从 12.6
升级到 12.8
。
新特性
- 通过 `app` 模块的 `'login'` 事件,增加了对来自实用进程的身份验证请求响应的支持。 #43317
- 在 `CPUUsage` 结构中添加了 `cumulativeCPUUsage` 属性,它返回自进程启动以来使用的 CPU 总秒数。 #41819
- 已将以下现有的导航相关 API 添加到 `webContents.navigationHistory`:`canGoBack`、`goBack`、`canGoForward`、`goForward`、`canGoToOffset`、`goToOffset`、`clear`。 #41752
- 扩展了
WebContentsView
以接受预先存在的webContents
对象。#42086 - 在 `nativeTheme` 中添加了一个新的 `prefersReducedTransparency` 属性,它指示用户是否通过系统辅助功能设置选择了减少操作系统级别的透明度。 #43137
- 在文件系统访问 API 中,当尝试打开被阻止路径中的文件或目录时,其失败路径与上游保持一致。#42993
- 在 Linux 上启用了 Windows 控件覆盖 API。#42681
- 在网络请求中启用了
zstd
压缩。#43300
破坏性变更
已移除:File.path
Web `File` 对象中非标准的 `path` 属性在 Electron 的早期版本中被添加,作为在渲染器中处理所有事情更为常见时处理原生文件的便捷方法。然而,它偏离了标准,并且也带来了轻微的安全风险,因此从 Electron 32.0 开始,它已被移除,取而代之的是 `webUtils.getPathForFile` 方法。
// Before (renderer)
const file = document.querySelector('input[type=file]');
alert(`Uploaded file path was: ${file.path}`);
// After (renderer)
const file = document.querySelector('input[type=file]');
electron.showFilePath(file);
// After (preload)
const { contextBridge, webUtils } = require('electron');
contextBridge.exposeInMainWorld('electron', {
showFilePath(file) {
// It's best not to expose the full file path to the web content if
// possible.
const path = webUtils.getPathForFile(file);
alert(`Uploaded file path was: ${path}`);
},
});
弃用:`WebContents` 上的 `clearHistory`、`canGoBack`、`goBack`、`canGoForward`、`goForward`、`goToIndex`、`canGoToOffset`、`goToOffset`
`WebContents` 实例上的导航相关 API 现已弃用。这些 API 已移至 `WebContents` 的 `navigationHistory` 属性,以提供更结构化和直观的界面来管理导航历史。
// Deprecated
win.webContents.clearHistory();
win.webContents.canGoBack();
win.webContents.goBack();
win.webContents.canGoForward();
win.webContents.goForward();
win.webContents.goToIndex(index);
win.webContents.canGoToOffset();
win.webContents.goToOffset(index);
// Replace with
win.webContents.navigationHistory.clear();
win.webContents.navigationHistory.canGoBack();
win.webContents.navigationHistory.goBack();
win.webContents.navigationHistory.canGoForward();
win.webContents.navigationHistory.goForward();
win.webContents.navigationHistory.canGoToOffset();
win.webContents.navigationHistory.goToOffset(index);
行为变更:`userData` 中的 `databases` 目录将在 Electron 32 首次运行时被删除
如果您在 `app.getPath('userData')` 返回的目录中有名为 `databases` 的目录,它将在 Electron 32 首次运行时被删除。`databases` 目录曾被 WebSQL 使用,而 WebSQL 在 Electron 31 中已被移除。Chromium 现在执行清理操作删除此目录。有关更多信息,请参阅 issue #45396。
终止对 29.x.y 的支持
根据项目的 支持策略,Electron 29.x.y 已达到支持终点。鼓励开发者和应用程序升级到新版本的 Electron。
E32 (24年8月) | E33 (24年10月) | E34 (25年1月) |
---|---|---|
32.x.y | 33.x.y | 34.x.y |
31.x.y | 32.x.y | 33.x.y |
30.x.y | 31.x.y | 32.x.y |
下一步计划
短期内,您可以预期团队将继续专注于跟进构成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发。
您可以在此处找到 Electron 的公开时间线。
有关未来变更的更多信息,请参阅计划中的破坏性变更页面。