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 使用 npm install electron@latest
安装它,或从我们的发布网站下载。此版本包含大量升级、修复和新功能。我们迫不及待地想看到您用它们构建出什么!继续阅读以获取有关此版本的详细信息,并请分享您的任何反馈!
重要变更
技术栈变更
- Chromium
83.0.4103.64
- Node.js
12.14.1
- V8
8.3
重点功能
有关新功能和变更的完整列表,请参阅9.0.0 发布说明。
重大变更
- 在使用
remote
但未设置enableRemoteModule: true
时发出弃用警告。#21546- 这是我们弃用
remote
模块并将其移至用户空间的计划中的第一步。您可以阅读并关注此问题,其中详细说明了我们这样做的原因,并包含了提议的弃用时间表。
- 这是我们弃用
- 默认将
app.enableRendererProcessReuse
设置为 true。#22336- 这是为了满足将来在渲染进程中加载的原生 Node 模块必须是 N-API 或 Context Aware 的要求而进行的持续工作。完整信息和提议的时间表详见此问题。
- 通过 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 变更app
API 变更- 在 macOS 上为
app.focus()
添加了一个新的 force 参数,允许应用程序强制获取焦点。#23447
- 在 macOS 上为
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
、如何轻松启用它及其安全优势的更多信息,请参阅我们的专用上下文隔离文档。