Electron 5.0.0
Electron 团队很高兴地宣布 Electron 5.0.0 版本发布!您可以通过 npm 使用 npm install electron@latest 安装它,或从 我们的发布页面 下载 tarball 包。此版本包含升级、修复和新功能。我们迫不及待地想看看您用它构建什么!继续阅读以了解此版本的详细信息,并请分享您的反馈!
有什么新功能?
Electron 的大部分功能由 Chromium、Node.js 和 V8 的核心组件提供。Electron 会及时跟进这些项目的最新进展,为用户提供新的 JavaScript 功能、性能改进和安全修复。在 Electron 5 中,所有这些包都进行了主版本升级。
- Chromium
73.0.3683.119 - Node.js
12.0.0 - V8
7.3.492.27。
Electron 5 还包括对 Electron 特定 API 的改进。以下是主要更改的摘要;有关完整更改列表,请查看 Electron v5.0.0 发布说明。
Promise 化
Electron 5 继续 Promisification 倡议,将 Electron 的基于回调的 API 转换为使用 Promises。这些 API 在 Electron 5 中进行了转换
app.getFileIconcontentTracing.getCategoriescontentTracing.startRecordingcontentTracing.stopRecordingdebugger.sendCommand- Cookies API
shell.openExternalwebContents.loadFilewebContents.loadURLwebContents.zoomLevelwebContents.zoomFactorwin.capturePage
macOS 系统颜色访问
以下函数已更改或添加到 systemPreferences 中,用于访问 macOS 系统的颜色:
systemPreferences.getAccentColorsystemPreferences.getColorsystemPreferences.getSystemColor
进程内存信息
已添加 process.getProcessMemoryInfo 函数,用于获取当前进程的内存使用情况统计信息。
远程 API 的附加过滤
为了提高 remote API 的安全性,已添加新的远程事件,以便可以过滤 remote.getBuiltin、remote.getCurrentWindow、remote.getCurrentWebContents 和 <webview>.getWebContents。
BrowserWindow 上的多个 BrowserView
BrowserWindow 现在支持在同一个 BrowserWindow 中管理多个 BrowserViews。
破坏性变更
打包应用程序的默认设置
打包应用程序现在将与默认应用程序的行为相同:将创建一个默认的应用程序菜单,除非应用程序已有菜单并且 window-all-closed 事件将被自动处理,除非应用程序已处理该事件。
混合沙箱
混合沙箱模式现在默认启用。使用 sandbox: true 启动的渲染器现在将真正进行沙箱化,而以前只有在启用混合沙箱模式时才会进行沙箱化。
安全改进
为了提高安全性,nodeIntegration 和 webviewTag 的默认值现在为 false。
拼写检查器现在是异步的
拼写检查 API 已更改为提供 异步结果。
弃用
以下 API 在 Electron 5.0.0 中已弃用,并计划在 6.0.0 中移除:
适用于 arm 和 arm64 的 Mksnapshot 二进制文件
arm 和 arm64 的 mksnapshot 原生二进制文件已弃用,并将于 6.0.0 中移除。可以使用 x64 二进制文件为 arm 和 arm64 创建快照。
WebContents 上的 ServiceWorker API
为准备移除,WebContents 上的 ServiceWorker API 已弃用。
webContents.hasServiceWorkerwebContents.unregisterServiceWorker
带有沙箱 WebContents 的自动模块
为了提高安全性,以下模块通过 require 直接使用的行为已被弃用,在沙箱化的 WebContents 中需要通过 remote.require 来包含:
electron.screenchild_processfsospath
webFrame Isolated World API
webFrame.setIsolatedWorldContentSecurityPolicy、webFrame.setIsolatedWorldHumanReadableName、webFrame.setIsolatedWorldSecurityOrigin 已弃用,改用 webFrame.setIsolatedWorldInfo。
混合沙箱
enableMixedSandbox 和命令行开关 --enable-mixed-sandbox 仍然存在以兼容,但它们已被弃用且无效。
停止支持 2.0.x
根据我们的 支持版本策略,2.0.x 已达到生命周期结束。
应用反馈计划
我们继续使用我们的 应用反馈计划 进行测试。 参与此计划的项目会在其应用上测试 Electron beta 版;作为回报,他们发现的新 bug 将优先在稳定版本中修复。 如果您想参与或了解更多信息,请 查看我们关于该计划的博客文章。
接下来是什么
在短期内,团队将继续专注于跟上构成 Electron 的主要组件的开发,包括 Chromium、Node 和 V8。虽然我们小心谨慎,不会承诺发布日期,但我们的计划是大约每季度发布 Electron 的新主要版本,其中包含这些组件的新版本。 暂定的 6.0.0 时间表 概述了 Electron 6 开发生命周期的关键日期。此外,请参阅我们的版本控制文档,以获取有关 Electron 版本控制的更详细信息。
有关 Electron 未来版本中计划的破坏性更改的信息,请 参阅我们的计划破坏性更改文档。


