Electron 6.0.0 发布

Electron 6.0.0 稳定版已于昨天正式发布,此版本的更新内容包括升级组件、修复 bug 以及引入新特性等。有意思的是,团队表示这是首次在同一天同时发布与 Electron 稳定版对应的 Chrome 稳定版(Chrome 76)。

可通过 npm install electron@latest 命令进行升级,或者从下载页面下载新版本。

Electron 是 GitHub 开发的跨平台桌面应用开发工具,支持使用 Web 技术开发桌面应用,其基于 C++ 开发,GUI 核心来自于 Chromium,而 JavaScript 引擎使用 V8。

310726a6663f4df79a5194e36b2523f772f.jpg

更新内容

Electron 的核心组件是 Chromium、Node.js 与 V8,按照国际惯例它一般都会与这些项目保持同步更新,以提供最新的 JavaScript 特性、性能改进和安全修复。在此版本中这三者分别升级到了:Chromium 76.0.3809.88、Node.js 12.4.0、V8 7.6.303.22

除了针对组件的更新,此版本还包括对 Electron API 的改进。完整列表请查看发布说明,值得关注的如下:

Promisification

Electron 6.0 继续践行从 5.0 版本开始的现代化方案,以改进对 Promise 的支持。

下面的函数现在会返回 Promises 并支持旧版的基于回调的调用:

  • contentTracing.getCategories() #16583
  • contentTracing.getCategories() #16583
  • contentTracing.getTraceBufferUsage() #16600
  • contents.executeJavaScript() #17312
  • cookies.flushStore() #16464
  • cookies.get() #16464
  • cookies.remove() #16464
  • cookies.set() #16464
  • dialog.showCertificateTrustDialog() #17181
  • inAppPurchase.getProducts() #17355
  • inAppPurchase.purchaseProduct()#17355
  • netLog.stopLogging() #16862
  • session.clearAuthCache() #17259
  • session.clearCache() #17185
  • session.clearHostResolverCache() #17229
  • session.clearStorageData() #17249
  • session.getBlobData() #17303
  • session.getCacheSize() #17185
  • session.resolveProxy() #17222
  • session.setProxy() #17222
  • webContents.hasServiceWorker() #16535
  • webContents.printToPDF() #16795
  • webContents.savePage() #16742
  • webFrame.executeJavaScript() #17312
  • webFrame.executeJavaScriptInIsolatedWorld() #17312
  • webviewTag.executeJavaScript() #17312

下面的函数现在有两种形式,分别是同步和基于 Promise 的异步:

  • dialog.showMessageBox()/dialog.showMessageBoxSync() #17298
  • dialog.showOpenDialog()/dialog.showOpenDialogSync() #16973
  • dialog.showSaveDialog()/dialog.showSaveDialogSync() #17054

下面的函数会返回 Promises:

Electron Helper (Renderer).app, Electron Helper (GPU).app 和 Electron Helper (Plugin).app

由于要启用 hardened runtime(强化运行时) 功能,这会限制可写可执行内存(writable-executable memory)和加载由不同团队 ID 签名的代码,另外还需要向 Helper 授予专用的代码签名权限。

因此,为了将这些权限限定在需要它们的的流程类型(process types),Chromium 添加了三个新的 Helper.app 变体:一个用于渲染器 (Electron Helper (Renderer).app)、一个用于 GPU 进程 (Electron Helper (GPU).app),还有一个用于插件 (Electron Helper (Plugin).app)。

使用 electron-osx-sign 对其 Electron App 进行代码签名的开发者不会对他们的构建逻辑进行任何变更,如果使用自定义脚本对 App 进行签名,则应确保三个新的 Help 应用程序已正确签名。

为了使用这些新的 helper 正确打包应用程序,我们需要使用 [email protected] 或更高版本。如果正在使用 electron-builder建议遵循此 issue 来跟踪对新 helper 的支持。

结束对 3.x.y 的支持

根据版本支持计划Electron 3.x.y 已经到达 EOF 阶段,官方不再对其提供支持。

未来计划

短期来看,团队会继续升级 Electron 的核心组件,包括 Chromium、Node 和 V8。至于更新频率,计划是每季度发布一次新的主要版本,同时对核心组件进行升级。7.0.0 的暂定发布时间表列出了 Electron 7 开发周期中的关键时间节点。如需获取有关 Electron 版本的更多信息,请查看版本控制文档

猜你喜欢

转载自www.oschina.net/news/108708/electron-6-0-released