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 发行说明。
Promise 化
Electron 5 继续Promise 化计划 计划,将 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 上的多个 BrowserViews
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.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 Beta版本;作为回报,他们发现的新错误将被优先考虑用于稳定版本。如果您想参与或了解更多信息,请查看我们关于该计划的博文。
下一步
短期内,您可以期待团队继续专注于维护构成Electron的主要组件的开发,包括Chromium、Node和V8。虽然我们谨慎地不承诺发布日期,但我们的计划是大约每季度发布Electron的新主要版本,其中包含这些组件的新版本。Electron 6的初步发布计划概述了Electron 6开发生命周期中的关键日期。此外,请参阅我们的版本控制文档,以获取有关Electron版本控制的更多详细信息。
有关Electron未来版本中计划的重大更改的信息,请参阅我们的计划重大更改文档。