Electron 6.0.0
Electron 团队很高兴地宣布发布 Electron 6.0.0!您可以通过 npm install electron@latest
使用 npm 安装它,或从我们的 发布网站 下载。此版本包含大量升级、修复和新功能。我们迫不及待地想看看您将用它们构建什么!请继续阅读以了解有关此版本的详细信息,并分享您的任何反馈!
新增功能
今天对 Electron 项目来说是一个里程碑:这是我们第一次在与相应的 Chrome 稳定版本 **同一天** 发布稳定的 Electron 版本!🎉
Electron 的大部分功能是由 Chromium、Node.js 和 V8 的核心组件提供的。Electron 与这些项目保持同步,为我们的用户提供新的 JavaScript 功能、性能改进和安全修复。Electron 6 中的每个软件包都进行了主要版本升级
- Chromium
76.0.3809.88
- Node.js
12.4.0
- V8
7.6.303.22
此版本还包括对 Electron API 的改进。 发行说明 包含更完整的列表,但以下是重点
Promise 化
Electron 6.0 继续 5.0 中开始的现代化 计划,以改进 Promise 支持。
这些函数现在返回 Promise,并且仍然支持旧的基于回调的调用
contentTracing.getCategories()
#16583contentTracing.getCategories()
#16583contentTracing.getTraceBufferUsage()
#16600contents.executeJavaScript()
#17312cookies.flushStore()
#16464cookies.get()
#16464cookies.remove()
#16464cookies.set()
#16464dialog.showCertificateTrustDialog()
#17181inAppPurchase.getProducts()
#17355inAppPurchase.purchaseProduct()
#17355netLog.stopLogging()
#16862session.clearAuthCache()
#17259session.clearCache()
#17185session.clearHostResolverCache()
#17229session.clearStorageData()
#17249session.getBlobData()
#17303session.getCacheSize()
#17185session.resolveProxy()
#17222session.setProxy()
#17222webContents.hasServiceWorker()
#16535webContents.printToPDF()
#16795webContents.savePage()
#16742webFrame.executeJavaScript()
#17312webFrame.executeJavaScriptInIsolatedWorld()
#17312webviewTag.executeJavaScript()
#17312
这些函数现在有两种形式,同步和基于 Promise 的异步
dialog.showMessageBox()
/dialog.showMessageBoxSync()
#17298dialog.showOpenDialog()
/dialog.showOpenDialogSync()
#16973dialog.showSaveDialog()
/dialog.showSaveDialogSync()
#17054
这些函数现在返回 Promise
app.dock.show()
#16904
Electron Helper (Renderer).app
、Electron Helper (GPU).app
和 Electron Helper (Plugin).app
为了启用 强化运行时,它限制了可写可执行内存和加载由不同团队 ID 签名的代码等操作,需要向 Helper 授予特殊的代码签名权利。
为了将这些权利的范围限定在需要它们的进程类型,Chromium 添加 了三种新的 Helper 应用变体:一种用于渲染器 (Electron Helper (Renderer).app
),一种用于 GPU 进程 (Electron Helper (GPU).app
),还有一种用于插件 (Electron Helper (Plugin).app
)。
使用 electron-osx-sign
对 Electron 应用进行代码签名的人员无需对构建逻辑进行任何更改。如果您使用自定义脚本对应用进行代码签名,则应确保正确对这三个新的 Helper 应用进行代码签名。
为了使用这些新的辅助程序正确打包你的应用程序,你需要使用[email protected]
或更高版本。如果你正在使用electron-builder
,你应该遵循此问题来跟踪对这些新辅助程序的支持。
重大更改
-
此版本开始为未来要求奠定基础,即在渲染器进程中加载的原生 Node 模块必须为N-API或上下文感知。进行此更改的原因是提高性能、增强安全性并减少维护工作量。在此问题中阅读完整的详细信息,包括拟议的时间表。此更改预计将在 Electron v11 中完成。
-
net.IncomingMessage
标头已略有更改,以更紧密地匹配Node.js 行为,尤其是在set-cookie
的值和处理重复标头的方式方面。#17517。 -
shell.showItemInFolder()
现在返回void并为异步调用。#17121 -
应用程序现在必须通过在使用
app.getPath('log')
之前调用新函数app.setAppLogPath()
来显式设置日志路径。#17841
3.x.y 版本结束支持
根据我们的支持策略,3.x.y 已达到生命周期结束。鼓励开发人员和应用程序升级到 Electron 的较新版本。
应用程序反馈计划
我们继续使用我们的应用程序反馈计划进行测试。参与此计划的项目会在其应用程序上测试 Electron 测试版;作为回报,他们发现的新错误将被优先考虑用于稳定版本。如果您想参与或了解更多信息,请查看我们关于该计划的博文。
下一步
短期内,您可以预期团队将继续专注于跟上构成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发。虽然我们谨慎地避免承诺发布日期,但我们的计划是大约每季度发布 Electron 的新主版本,其中包含这些组件的新版本。暂定的 7.0.0 时间表概述了 Electron 7 开发生命周期中的关键日期。此外,请参阅我们的版本控制文档,以获取有关 Electron 版本控制的更多详细信息。
有关 Electron 未来版本中计划的重大更改的信息,请参阅我们的计划重大更改文档。