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!错误和功能请求可以在 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 中添加的新 WebFrameMain.collectJavaScriptCallStack() API 允许您从关联的 WebFrameMain 对象(webContnets.mainFrame)收集 JavaScript 调用堆栈。
此 API 在导致进程挂起的长时间运行 JavaScript 事件的情况下,可以帮助确定框架无响应的原因。有关更多信息,请参阅 提议的网络标准崩溃报告 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 的公共时间线。
有关未来变更的更多信息,请参见 计划中的破坏性变更 页面。
