跳到主要内容

Electron 9.0.0

·4 分钟阅读

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 模块并将其移至用户空间的第一步。您可以阅读并关注 此问题,其中详细说明了我们这样做的原因,并包括了建议的弃用时间表。
  • 默认情况下将 app.enableRendererProcessReuse 设置为 true。 #22336
    • 这是未来要求的持续工作,即在渲染器进程中加载的本机 Node 模块必须是 N-APIContext Aware。完整信息和建议的时间表在 此问题 中详细说明。
  • 通过 IPC 发送非 JavaScript 对象现在会抛出异常。 #21560
    • 此行为已在 Electron 8.0 中弃用。在 Electron 9.0 中,旧的序列化算法已被删除,发送此类不可序列化的对象现在将抛出 "object could not be cloned" 错误。

有关这些和未来更改的更多信息,请访问 计划的重大更改 页面。

API 更改

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

已弃用的 API

以下 API 现在已弃用或删除

  • shell.openItem API 现在已弃用,并替换为异步 shell.openPath API
  • <webview>.getWebContents 已在 Electron 8.0 中弃用,现已删除。
  • webFrame.setLayoutZoomLevelLimits 已在 Electron 8.0 中弃用,现已删除。

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 文档