Electron 8.0.0
Electron 8.0.0 已经发布!它包含了 Chromium 80、V8 8.0 和 Node.js 12.13.0 的升级。我们添加了 Chrome 内置的拼写检查器,以及更多功能!
Electron 团队很高兴地宣布 Electron 8.0.0 版本发布!您可以通过 npm 使用 npm install electron@latest 安装它,或从我们的 发布网站 下载。此版本包含升级、修复和新功能。我们迫不及待地想看看您用它们构建什么!继续阅读以了解此版本的详细信息,并请分享您的反馈!
值得注意的变化
- 实现了 Chrome 内置拼写检查功能的使用。更多详细信息请参见 #20692 和 #21266。
- IPC 通信现在使用 v8 的结构化克隆算法。这比现有的逻辑更快、功能更丰富且更不容易出错,并且为大型缓冲区和复杂对象带来了 2 倍的性能提升。小消息的延迟没有明显影响。更多详细信息请参见 #20214。
请参阅 8.0.0 版本说明,以获取完整的全新功能和更改列表。
堆栈变化
- Chromium
80.0.3987.86 - Node.js
12.13.0 - V8
8.0
破坏性变更
- 在上下文感知模块的弃用警告中显示模块名称。 #21952
- 通过 IPC 发送的值现在使用结构化克隆算法进行序列化。 #20214
- 由于缺乏维护者来处理此功能,目前已禁用屏幕外渲染。它在 Chromium 升级期间中断,随后被禁用。 #20772
有关这些和未来更改的更多信息,请参阅 计划中的破坏性更改 页面。
API 变更
appAPI 变更BrowserWindowAPI 变更- 更新了文档,指出
hasShadow选项在所有平台上都可用 #20038 - 添加了
trafficLightPosition选项到 BrowserWindow 选项,以允许自定义交通灯按钮的位置。 #21781 - 为 BrowserWindow 添加了
accessibleTitle选项,用于设置可访问的窗口标题 #19698 BrowserWindow.fromWebContents()现在可以返回 null #19983- 添加了
BrowserWindow.getMediaSourceId()和BrowserWindow.moveAbove(mediaSourceId)。 #18926 - 添加了 macOS 上的
will-move事件的支持。 #19641
- 更新了文档,指出
- 记录了先前未记录的
crashReporter.getCrashesDirectory()。 #20417 dialogAPI 变更NotificationAPI 变更sessionAPI 变更- 在 macOS 上,为
shell.moveItemToTrash(fullPath[, deleteOnFail])添加了选项,以指定 moveItemToTrash 失败时发生的情况。 #19700 systemPreferencesAPI 变更- 添加了
nativeTheme.themeSource,允许应用程序覆盖 Chromium 和操作系统的主题选择。 #19960 - TouchBar API 变更
trayAPI 变更webContentsAPI 变更- 添加了
contents.executeJavaScriptInIsolatedWorld(worldId, scripts[, userGesture]),以在 webContents API 上公开 executeJavaScriptInIsolatedWorld。 #21190 - 添加了捕获隐藏 webContents 的方法。 #21679
- 为
webContents.print([options], [callback])添加了选项,以启用打印页面页眉和页脚的自定义。 #19688 - 添加了检查特定共享 worker 的能力,通过
webContents.getAllSharedWorkers()和webContents.inspectSharedWorkerById(workerId)。 #20389 - 添加了对 WebContents.printToPDF() 中
fitToPageEnabled和scaleFactor选项的支持。 #20436
- 添加了
- 更新了
webview.printToPDF文档,以说明返回类型现在是 Uint8Array。 #20505
已弃用的 API
以下 API 现已弃用
- 弃用了
BrowserWindow.setVisibleOnAllWorkspaces中非功能性的visibleOnFullScreen选项,以便在下一个主要版本中删除它。 #21732 - 弃用了 macOS 上
systemPreferences.getColor(color)中的alternate-selected-control-text。 #20611 - 由于 Chromium 删除了此功能,因此弃用了
webContents、webFrame和<webview> Tag上的setLayoutZoomLevelLimits。 #21296 app.allowRendererProcessReuse的默认值false现在已被弃用。 #21287- 弃用了
<webview>.getWebContents(),因为它依赖于 remote 模块。 #20726
5.x.y 版本停止支持
根据项目的 支持策略,Electron 5.x.y 已停止支持。鼓励开发人员和应用程序升级到较新版本的 Electron。
应用反馈计划
我们继续使用我们的 应用反馈计划 进行测试。 参与此计划的项目会在其应用上测试 Electron beta 版;作为回报,他们发现的新 bug 将优先在稳定版本中修复。 如果您想参与或了解更多信息,请 查看我们关于该计划的博客文章。
接下来是什么
在短期内,团队将继续专注于维护构成 Electron 的主要组件的开发,包括 Chromium、Node 和 V8。虽然我们小心谨慎,不承诺发布日期,但我们的计划是大约每季度发布 Electron 的新主要版本,其中包含这些组件的新版本。 暂定的 9.0.0 时间表 概述了 Electron 9 开发生命周期的关键日期。此外,请参阅我们的版本控制文档,以获取有关 Electron 版本控制的更详细信息。
有关 Electron 未来版本中计划的破坏性更改的信息,请参阅 我们的计划中的破坏性更改文档。
弃用 remote 模块(从 Electron 9 开始)
由于存在严重的安全性问题,我们开始计划从 Electron 9 开始弃用 remote 模块。您可以阅读并关注 此问题,其中详细说明了我们的原因,并包含弃用计划的建议时间表。

