Electron 9.0.0
Electron 9.0.0 已发布! 它包含了对 Chromium 83、V8 8.3 和 Node.js 12.14 的升级。 我们为拼写检查功能添加了几个新的 API 集成,启用了 PDF 查看器,以及更多!
Electron 团队很高兴地宣布 Electron 9.0.0 发布!您可以通过 npm install electron@latest 使用 npm 安装,或者从我们的发布网站下载。此版本包含大量升级、修复和新功能。我们迫不及待地想看到您用它们构建出什么!请继续阅读本版本的详细信息,并请分享您的任何反馈!
重要变更
技术栈变更
- Chromium
83.0.4103.64 - Node.js
12.14.1 - V8
8.3
重点特性
有关新功能和变化的完整列表,请参见 9.0.0 发行说明。
破坏性变更
- 在 `enableRemoteModule: true` 未设置的情况下使用 `remote` 会出现弃用警告。 #21546
- 这是我们计划弃用
remote模块并将其移至用户领域的首要步骤。您可以阅读并关注此议题,其中详细说明了我们这样做的原因,并包含了弃用的拟议时间表。
- 这是我们计划弃用
- 默认设置 `app.enableRendererProcessReuse` 为 true。 #22336
- 通过 IPC 发送非 JavaScript 对象现在会抛出异常。 #21560
- 此行为在 Electron 8.0 中已被弃用。 在 Electron 9.0 中,旧的序列化算法已被移除,发送这类不可序列化的对象现在将抛出“object could not be cloned”错误。
有关这些及未来更改的更多信息,请参阅计划中的重大更改页面。
API 更改
shellAPI 变更shell.openItemAPI 已被异步的shell.openPath API取代。提案
sessionAPI 变更appAPI 变更- 在 macOS 的 `app.focus()` 中添加了一个新的 force 参数,以允许应用强制获取焦点。 #23447
BrowserWindowAPI 变更- 在 `BrowserWindow` 上为一些 getter/setter 对添加了属性访问支持。 #23208
已弃用的 API
以下 API 现已弃用或被移除
shell.openItemAPI 现已弃用,并由异步的 `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 新主要版本。Electron 10.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、如何轻松启用它及其安全优势的更多信息,请参阅我们的专用上下文隔离文档。

