跳转到主要内容

Electron 9.0.0

·阅读时长 5 分钟

Electron 9.0.0 已发布! 它包含了对 Chromium 83、V8 8.3 和 Node.js 12.14 的升级。 我们为拼写检查功能添加了几个新的 API 集成,启用了 PDF 查看器,以及更多!


Electron 团队很高兴地宣布 Electron 9.0.0 版本发布!您可以通过 npm 使用 npm install electron@latest 安装它,或从我们的 发布网站 下载。此版本包含升级、修复和新功能。我们迫不及待地想看看您将用它们构建什么!继续阅读以了解有关此版本的详细信息,并请分享您的反馈!

值得注意的变化

  • 对拼写检查功能进行了多项改进。有关更多详细信息,请参阅 #22128#22368
  • 在 Linux 上改进了窗口事件处理程序的效率。 #23260
  • 启用 PDF 查看器。 #22131

请参阅 9.0.0 版本说明,以获取完整的全新功能和更改列表。

堆栈变化

破坏性变更

  • 在使用未启用 enableRemoteModule: trueremote 时发出弃用警告。 #21546
    • 这是我们计划弃用 remote 模块并将其迁移到用户空间的第一个步骤。您可以阅读并关注 此 issue,其中详细说明了我们这样做的原因,并包含弃用计划的时间表。
  • 默认情况下将 app.enableRendererProcessReuse 设置为 true。 #22336
    • 这是为未来要求在渲染器进程中加载的本机 Node 模块必须是 N-APIContext Aware 所做的持续工作。有关完整信息和计划时间表,请参阅 此 issue
  • 通过 IPC 发送非 JavaScript 对象现在会抛出异常。 #21560
    • 此行为在 Electron 8.0 中已被弃用。 在 Electron 9.0 中,旧的序列化算法已被移除,发送这类不可序列化的对象现在将抛出“object could not be cloned”错误。

有关这些和未来更改的更多信息,请参阅 计划中的破坏性更改 页面。

API 变更

  • shell API 变更
    • shell.openItem API 已被异步 shell.openPath API 替换。 提案
  • session API 变更
    • 添加了 session.listWordsFromSpellCheckerDictionary API 以列出字典中的自定义单词。 #22128
    • 添加了 session.removeWordFromSpellCheckerDictionary API 以删除字典中的自定义单词。 #22368
    • 添加了 session.serviceWorkerContext API 以访问基本 service worker 信息并接收来自 service worker 的控制台日志。 #22313
  • app API 变更
    • 在 macOS 上为 app.focus() 添加了一个新的 force 参数,以允许应用程序强制获取焦点。 #23447
  • BrowserWindow API 变更
    • BrowserWindow 上某些 getter/setter 对添加了属性访问支持。 #23208

已弃用的 API

以下 API 现已弃用或被移除

  • shell.openItem API 现已弃用,并由异步的 `shell.openPath API` 替代。
  • 在 Electron 8.0 中被弃用的 `<webview>.getWebContents` 现已被移除。
  • 在 Electron 8.0 中被弃用的 `webFrame.setLayoutZoomLevelLimits` 现已被移除。

6.x.y 版本停止支持

根据项目的 支持策略,Electron 6.x.y 已停止支持。鼓励开发人员和应用程序升级到较新版本的 Electron。

接下来是什么

在短期内,团队将继续专注于维护构成 Electron 的主要组件的开发,包括 Chromium、Node 和 V8。虽然我们小心谨慎,不会承诺发布日期,但我们的计划是大约每季度发布 Electron 的新主要版本,其中包含这些组件的新版本。 暂定的 10.0.0 时间表 概述了 Electron 10.0 开发生命周期的关键日期。此外,请参阅我们的版本控制文档,以获取有关 Electron 版本控制的更多详细信息。

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

contextIsolation 的默认值从 false 更改为 true(Electron 10 开始)

在没有 contextIsolation 的情况下,渲染器进程中运行的任何代码都可以相当容易地访问 Electron 内部或应用的预加载脚本。 然后,该代码可以执行 Electron 希望加以限制的特权操作。

更改此默认设置可以提高 Electron 应用程序的默认安全性,因此应用程序将需要故意选择不安全的行为。Electron 将在 Electron 10.0 中弃用 contextIsolation 的当前默认值,并在 Electron 12.0 中更改为新默认值 (true)。

有关 contextIsolation 的更多信息、如何轻松启用它及其安全优势,请参阅我们的专用 Context Isolation 文档