Electron 5.0.0
Electron 团队很高兴宣布 Electron 5.0.0 发布!您可以通过 npm install electron@latest
使用 npm 安装它,或从 我们的发布页面 下载 tarballs。该版本包含大量升级、修复和新功能。我们迫不及待地想看看您用它们构建的内容!继续阅读以了解有关此版本的详细信息,并请分享您对它的任何反馈!
新功能?
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 发布说明。
承诺化
Electron 5 继续 承诺化计划 计划,将 Electron 基于回调的 API 转换为使用 Promise。这些 API 已针对 Electron 5 进行转换
app.getFileIcon
contentTracing.getCategories
contentTracing.startRecording
contentTracing.stopRecording
debugger.sendCommand
- Cookies API
shell.openExternal
webContents.loadFile
webContents.loadURL
webContents.zoomLevel
webContents.zoomFactor
win.capturePage
macOS 的系统颜色访问
这些函数已更改或添加到 systemPreferences
中以访问 macOS 系统颜色
systemPreferences.getAccentColor
systemPreferences.getColor
systemPreferences.getSystemColor
进程内存信息
已添加函数 process.getProcessMemoryInfo
来获取有关当前进程的内存使用统计信息。
对远程 API 的额外过滤
为了提高 remote
API 的安全性,已添加新的远程事件,以便 remote.getBuiltin
、remote.getCurrentWindow
、remote.getCurrentWebContents
和 <webview>.getWebContents
可以 过滤。
BrowserWindow 上的多个 BrowserView
BrowserWindow 现在支持在同一个 BrowserWindow 内管理多个 BrowserView。
重大变更
打包应用程序的默认值
打包应用程序现在将与默认应用程序的行为相同:除非应用程序具有一个,否则将创建默认应用程序菜单,并且除非应用程序处理该事件,否则 window-all-closed
事件将被自动处理。
混合沙箱
混合沙箱模式现在默认启用。使用 sandbox: true
启动的渲染器现在将真正被沙箱化,而以前它们只有在也启用了混合沙箱模式的情况下才会被沙箱化。
安全改进
nodeIntegration
和 webviewTag
的默认值现在为 false
,以提高安全性。
拼写检查器现在异步
SpellCheck 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.hasServiceWorker
webContents.unregisterServiceWorker
使用沙箱化 WebContents 的自动模块
为了提高安全性,以下模块已被弃用,不能直接通过 require
使用,而需要在沙箱化的 webcontents 中通过 remote.require
包含它们
electron.screen
child_process
fs
os
path
webFrame 隔离世界 API
webFrame.setIsolatedWorldContentSecurityPolicy
、webFrame.setIsolatedWorldHumanReadableName
、webFrame.setIsolatedWorldSecurityOrigin
已被弃用,建议使用 webFrame.setIsolatedWorldInfo
。
混合沙箱
enableMixedSandbox
和 --enable-mixed-sandbox
命令行开关仍然存在以兼容,但已被弃用,不再起作用。
2.0.x 版本支持结束
根据我们的 支持版本策略,2.0.x 版本已停止维护。
应用反馈计划
我们继续使用我们的 应用反馈计划 进行测试。参与此计划的项目将在他们的应用程序上测试 Electron 测试版,作为回报,他们发现的新错误将优先在稳定版中修复。如果您想参与或了解更多信息,请 查看我们关于该计划的博客文章。
下一步
在短期内,您可以期待团队继续专注于跟进组成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发。虽然我们谨慎地不承诺发布日期,但我们的计划是每季度发布新的主要版本 Electron,其中包含这些组件的新版本。 6.0.0 版本计划 概述了 Electron 6 开发周期中的关键日期。此外,请查看我们的版本控制文档,以获取有关 Electron 中版本控制的更详细的信息。
有关即将发布的 Electron 版本中计划的重大更改信息,请查看我们计划的重大更改文档。