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.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
以提高安全性。
拼写检查器现在是异步的
拼写检查 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 即将推出的版本中计划的重大更改的信息,请参阅我们的计划的重大更改文档。