跳转到主要内容

Electron 10.0.0

·阅读时长 5 分钟

Electron 10.0.0 已经发布!它包含了对 Chromium 85、V8 8.5 和 Node.js 12.16 的升级。我们还添加了几个新的 API 集成和改进。请阅读下文了解更多详情!


Electron 团队很高兴地宣布 Electron 10.0.0 发布!您可以通过 npm install electron@latest 使用 npm 安装它,或者从我们的 发布网站 下载。本次发布包含了大量的升级、修复和新功能。

在 Electron 10 的发布中,我们还对发布说明进行了更改。为了更容易区分 Electron 10 中哪些是全新的,哪些是 Electron 10 和之前版本之间的变化,我们现在还会包含那些已经引入到 Electron 10 中,但又被反向移植到之前版本中的更改。我们希望这能帮助应用程序在升级 Electron 时更容易找到新功能和 bug 修复。

我们迫不及待地想看到您用它们构建出什么!请继续阅读有关此版本的详细信息,并请分享您的任何反馈!

重要变更

技术栈变更

重点特性

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

请参阅 10.0.0 版本发布说明,了解新功能和更改的完整列表。

破坏性变更

  • enableRemoteModule 的默认值更改为 false#22091
    • 这是我们计划中将 remote 模块弃用并将其迁移到用户空间的计划的一部分。您可以阅读并关注 这个 issue,其中详细说明了我们这样做的原因,并包含了弃用的时间线建议。
  • app.allowRendererProcessReuse 的默认值更改为 true#22336 (也包含在 Electron 9 中)
    • 这将阻止在渲染器进程中加载非上下文感知的原生模块。
    • 您可以阅读并关注此问题,其中详细说明了我们这样做的原因,并包含了弃用的建议时间表。
  • 修复了 macOS 上当操作系统区域设置为 RTL 语言(如阿拉伯语或希伯来语)时窗口按钮的定位问题。无边框窗口应用程序在 styling 窗口时可能需要考虑此更改。 #22016

有关这些及未来更改的更多信息,请参阅计划中的重大更改页面。

API 更改

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

已弃用的 API

以下 API 现已弃用或被移除

  • 移除了 netLog 中已弃用的 currentlyLoggingPath 属性。此外,netLog.stopLogging 不再返回记录日志的路径。 #22732
  • crashReporter 中弃用了未压缩的崩溃报告上传。#23598

停止对 7.x.y 的支持

根据项目的 支持策略,Electron 7.x.y 已达到支持的终点。我们鼓励开发者和应用程序升级到更新版本的 Electron。

下一步计划

短期内,您可以期望团队继续专注于跟进构成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发。虽然我们小心翼翼地不承诺发布日期,但我们的计划是大约每季度发布一个包含这些组件新版本的新主要版本 Electron。 暂定的 11.0.0 时间表 概述了 Electron 11.0 开发生命周期中的关键日期。另外,请参阅我们的 版本文档 以获取关于 Electron 版本管理的更详细信息。

有关 Electron 未来版本中计划的重大更改的信息,请参阅我们的计划中的重大更改文档

继续进行 remote 模块的弃用工作(在 Electron 11 中)

我们在 Electron 9 中开始了移除 remote 模块的工作,并且我们正在继续计划移除 remote 模块。在 Electron 11 中,我们计划继续进行重构工作,以实现 WeakRef,正如我们在 Electron 10 中所做的那样。请阅读并关注 这个 issue 以获取完整的计划和弃用详情。

要求原生 Node 模块是上下文感知或 N-API 的最后一步 (在 Electron 12 中)

编辑:最初,这篇博客文章声明我们将在 Electron 11 中禁用渲染器进程重用。禁用渲染器进程重用现已推迟到 Electron 12。

从 Electron 6 开始,我们一直在为要求在渲染进程中加载的 原生 Node 模块 必须是 N-APIContext Aware 打下基础。强制执行此更改可以提高安全性,加快性能,并减少维护工作量。此计划的最后一步是在 Electron 12 中移除禁用渲染进程复用的能力。请阅读 这个 issue 以获取包括建议时间线在内的完整详细信息。