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 即将发布的版本中计划的重大更改的信息,请参阅我们的计划重大更改文档。