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 继续 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 上的多个 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 beta 版本;作为回报,他们发现的新错误将在稳定版本中优先处理。如果您想参与或了解更多信息,请查看我们关于该计划的博客文章。
下一步是什么
在短期内,您可以期待团队继续专注于跟上构成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发。虽然我们小心不承诺发布日期,但我们的计划是大约每季度发布带有这些组件新版本的 Electron 主要版本。暂定的 6.0.0 时间表 概述了 Electron 6 开发生命周期中的关键日期。此外,请参阅我们的版本控制文档,了解有关 Electron 版本控制的更多详细信息。
有关计划在即将发布的 Electron 版本中进行的重大更改的信息,请参阅我们的计划重大变更文档。