跳至主要内容

Electron 32.0.0

·阅读时长:4 分钟

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

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

重大变化

重点

  • 在我们的文档中添加了新的 API 版本历史记录,此功能由 @piotrpdev 作为 Google Summer of Code 项目的一部分创建。您可以在 这篇博文 中了解更多信息。 #42982
  • 从 Web 文件 API 中删除了非标准的 File.path 扩展。 #42053
  • 当尝试在被阻止的路径中打开文件或目录时,将 Web 文件系统 API 中的失败路径与上游对齐。 #42993
  • 将以下现有导航相关 API 添加到 webcontents.navigationHistorycanGoBackgoBackcanGoForwardgoForwardcanGoToOffsetgoToOffsetclear。之前的导航 API 现在已弃用。 #41752

堆栈更改

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
  • cumulativeCPUUsage 属性添加到 CPUUsage 结构中,该属性返回自进程启动以来的总 CPU 时间使用量。 #41819
  • 将以下现有导航相关 API 添加到 webContents.navigationHistorycanGoBackgoBackcanGoForwardgoForwardcanGoToOffsetgoToOffsetclear#41752
  • 扩展了 WebContentsView 以接受预先存在的 webContents 对象。 #42086
  • 添加了一个名为 prefersReducedTransparency 的新属性到 nativeTheme 中,它指示用户是否已选择通过系统辅助功能设置减少操作系统级别的透明度。 #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 上的 clearHistorycanGoBackgoBackcanGoForwardgoForwardgoToIndexcanGoToOffsetgoToOffset

WebContents 实例上的导航相关 API 现在已弃用。这些 API 已移至 WebContentsnavigationHistory 属性中,以便为管理导航历史记录提供更结构化和直观的界面。

// 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);

不再支持 29.x.y

根据项目的 支持策略,Electron 29.x.y 已达到支持终止日期。鼓励开发人员和应用程序升级到 Electron 的更新版本。

E32 (2024 年 8 月)E33 (2024 年 10 月)E34 (2025 年 1 月)
32.x.y33.x.y34.x.y
31.x.y32.x.y33.x.y
30.x.y31.x.y32.x.y

下一步

短期内,团队将继续专注于跟进构成 Electron 的主要组件的开发,包括 Chromium、Node 和 V8。

您可以在 此处找到 Electron 的公开时间线

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