跳过主内容

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: true 的情况下使用 remote 会出现弃用警告。 #21546
    • 这是我们计划弃用 remote 模块并将其移至用户领域的第一个步骤。您可以阅读并关注此问题,其中详细说明了我们这样做的原因,并包括了弃用的拟议时间表。
  • 默认将 app.enableRendererProcessReuse 设置为 true。 #22336
    • 这是未来要求在渲染器进程中加载的原生 Node 模块必须是 N-API上下文感知的持续工作。完整信息和拟议时间表详见此问题
  • 现在通过 IPC 发送非 JavaScript 对象会抛出异常。 #21560
    • 此行为在 Electron 8.0 中已弃用。在 Electron 9.0 中,旧的序列化算法已移除,发送此类不可序列化的对象现在会抛出“对象无法克隆”错误。

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

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 开始)

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

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

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