Electron 34.0.0
Electron 34.0.0 已发布!它包含对 Chromium 132.0.6834.83、V8 13.2 和 Node 20.18.1 的升级。
Electron 团队很高兴地宣布 Electron 34.0.0 发布!您可以通过 npm 安装它,运行 npm install electron@latest
,或从我们的发布网站下载。请继续阅读以了解此版本的详细信息。
如果您有任何反馈,请通过 Bluesky 或 Mastodon 与我们分享,或加入我们的社区 Discord!Bug 和功能请求可以在 Electron 的问题追踪器中报告。
值得注意的更改
HTTP 压缩共享字典管理 API
HTTP 压缩允许 Web 服务器在数据被浏览器接收之前对其进行压缩。现代版本的 Chromium 支持 Brotli 和 Zstandard,它们是比 gzip 等旧方案对文本文件性能更好的新压缩算法。
自定义共享字典进一步提高了 Brotli 和 Zstandard 压缩的效率。有关更多信息,请参阅Chrome for Developers 博客上的共享字典。
@felixrieseberg 在 #44950 中添加了以下 API 以在会话级别管理共享字典:
session.getSharedDictionaryUsageInfo()
session.getSharedDictionaryInfo(options)
session.clearSharedDictionaryCache()
session.clearSharedDictionaryCacheForIsolationKey(options)
无响应渲染器 JavaScript 调用堆栈
当渲染器进程长时间挂起时,Electron 的unresponsive
事件就会发生。由 @samuelmaddock 在 #44204 中添加的新 API WebFrameMain.collectJavaScriptCallStack()
允许您从关联的 WebFrameMain
对象 (webContnets.mainFrame
) 收集 JavaScript 调用堆栈。
此 API 在因长时间运行的 JavaScript 事件导致进程挂起的情况下,有助于确定帧无响应的原因。有关更多信息,请参阅提议的 Web 标准崩溃报告 API。
const { app } = require('electron');
app.commandLine.appendSwitch(
'enable-features',
'DocumentPolicyIncludeJSCallStacksInCrashReports',
);
app.on('web-contents-created', (_, webContents) => {
webContents.on('unresponsive', async () => {
// Interrupt execution and collect call stack from unresponsive renderer
const callStack = await webContents.mainFrame.collectJavaScriptCallStack();
console.log('Renderer unresponsive\n', callStack);
});
});
此 API 需要启用 'Document-Policy': 'include-js-call-stacks-in-crash-reports'
头。有关更多详细信息,请参阅 #45356。
技术栈更新
- Chromium
132.0.6834.83
- Node
20.18.1
- V8
13.2
Electron 34 将 Chromium 从 130.0.6723.44
升级到 132.0.6834.83
,Node 从 20.18.0
升级到 20.18.1
,V8 从 13.0
升级到 13.2
。
新功能
- 添加了 API 以使用 Brotli 或 ZStandard 管理共享字典,以提高压缩效率。新 API 包括
session.getSharedDictionaryUsageInfo()
、session.getSharedDictionaryInfo(options)
、session.clearSharedDictionaryCache()
和session.clearSharedDictionaryCacheForIsolationKey(options)
。#44950 - 添加了
WebFrameMain.collectJavaScriptCallStack()
以访问无响应渲染器的 JavaScript 调用堆栈。#44938 - 添加了
WebFrameMain.detached
用于处于卸载状态的帧。- 添加了
WebFrameMain.isDestroyed()
以确定帧是否已被销毁。 - 修复了
webFrameMain.fromId(processId, frameId)
在帧卸载时返回与给定参数不匹配的WebFrameMain
实例的问题。#43473
- 添加了
- 在实用进程中添加了错误事件,以支持 V8 致命错误诊断报告。#43774
- 功能:GPU 加速共享纹理离屏渲染。#42953
重大变更
行为改变:在 Windows 全屏时将隐藏菜单栏
这使得行为与 Linux 保持一致。之前的行为:在 Windows 全屏时菜单栏仍然可见。新行为:在 Windows 全屏时菜单栏将被隐藏。
更正:这之前被列为 Electron 33 中的重大变更,但首次发布是在 Electron 34 中。
31.x.y 版本结束支持
根据项目的支持策略,Electron 31.x.y 已达到支持结束。建议开发者和应用程序升级到更新的 Electron 版本。
E34 (25 年 1 月) | E35 (25 年 4 月) | E36 (25 年 6 月) |
---|---|---|
34.x.y | 35.x.y | 36.x.y |
33.x.y | 34.x.y | 35.x.y |
32.x.y | 33.x.y | 34.x.y |
下一步
短期内,您可以期待团队继续专注于跟上构成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发。
您可以在这里找到 Electron 的公开时间线。
有关未来更改的更多信息,请参见计划中的重大变更页面。