Electron 10正式发布:终止对 7.xy 的支持

Electron 10正式发布:终止对 7.xy 的支持

前言

Electron 10.0.0 已正式发布了!此次更新对 Chromium 85、V8 8.5 和 Node.js 12.16 都进行了升级。同时还添加了一些新的 API 集成和改进。

Electron 团队宣布 Electron 10.0.0 正式发布!该版本包含很多升级、修复和新功能。你可以通过 npm install electro@latest 安装,或从我们的发布网站下载。

https://electronjs.org/releases/stable

在 Electron 10 中我们还更改了发行说明。为了更容易区分 Electron 10 中的新功能,搞清楚 Electron 10 和之前版本之间的区别,我们现在还加入了 Electron 10 中引入,但可以回溯到旧版的更改说明。我们希望这可以让应用程序再升级 Electron 时更容易找到新功能和错误修复。

显著更改

栈更改

  • Chromium 85.0.4183.84
  • Node.js 12.16.3
  • V8 8.5

重要功能

  • 添加了 contents.getBackgroundThrottling() 方法和 contents.backgroundThrottling 属性。[#21036]
  • 在主进程中公开了 desktopCapturer 模块。#23548
  • 现在可以调用 ses.isPersistent() API 来检查给定的 session 是否持久。#22622
  • 解决由于网络 IP 地址更改和 ICE 而导致无法连接 RTC 调用的网络问题。#24998

有关新功能和更改的完整列表,请参见 10.0.0 发行说明:

https://github.com/electron/electron/releases/tag/v10.0.0

重大更改

  • 将 enableRemoteModule 的默认值更改为 false。#22091
    • 这是我们计划弃用 remote 模块并将其移至用户区的计划的一部分。你可以查阅并关注这个 issue,它详细说明了我们这样做的原因,还包括建议的弃用时间表。
      • https://github.com/electron/electron/issues/21408
  • 将 app.allowRendererProcessReuse 的默认值更改为 true。#22336
    • 这将防止在渲染器进程中加载非上下文感知的原生模块。
    • 你可以查阅并关注这个 issue,它详细说明了我们这样做的原因,并包括建议的弃用时间表。
      • https://github.com/electron/electron/issues/18397
    • 修复了将 OS 语言环境设置为 RTL 语言(例如阿拉伯语或希伯来语)时,macOS 上窗口按钮的位置问题。无框架窗口应用在设置其窗口样式时可能必须考虑这一更改。#22016

有关这些以及未来更改的更多信息,可以查阅“计划的重大更改”页面:

https://github.com/electron/electron/blob/master/docs/breaking-changes.md

API 更改

  • Session:现在可以通过调用 ses.isPersistent() API 来检查给定的 session 是否持久。#22622
  • Contents:添加了 contents.getBackgroundThrottling() 方法和 contents.backgroundThrottling 属性。#21036

弃用的 API

现在弃用或删除以下 API:

  • 删除了弃用的 netLog 的 currentLoggingPath 属性。此外,netLog.stopLogging 不再返回记录日志的路径。#22732
  • 在 crashReporter 中弃用未压缩崩溃上载。#23598

对 7.x.y 的支持终止

根据项目的支持政策,Electron7.x.y 已达到支持终止阶段。鼓励开发人员和应用程序升级到新版本的 Electron。

下一步计划

在短期内,你可以期望团队继续专注于构成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发。尽管我们不会承诺发布日期,但我们的计划是大约每季度发布 Electron 的大版本,以及这些组件的新版本。暂定的 11.0.0 时间表列出了 Electron 11.0 开发生命周期中的关键日期。另请参阅我们的版本控制文档,获取有关 Electron 中版本控制的更多细节。

https://electronjs.org/docs/tutorial/electron-versioning

有关即将推出的 Electron 版本中重大更改的信息,请参阅我们的“计划的重大更改”文档。

弃用 remote 模块的工作(在 Electron 11 中)

我们已在 Electron 9 中开始了删除 remote 模块的工作。在 Electron 11 中,我们计划继续努力实现 WeakRef。请查阅并关注这个 issue,以获取完整的计划和关于弃用的细节。

https://github.com/electron/electron/issues/21408

要求原生 Node 模块为上下文感知或 N-API(在 Electron 11 中)

从 Electron 6 开始,我们一直在奠定基础,要求在渲染器进程中加载的原生 Node 模块必须是 N-API 或上下文感知的。实施此更改可增强安全性、提高性能并减少维护工作量。该计划的最后一步是在 Electron 11 中取消禁用渲染进程重用的功能。有关完整细节(包括建议的时间表),请查阅这个 issue:

https://github.com/electron/electron/issues/18397

作者 | Electron 团队

您可能还会对下面的文章感兴趣: