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 发行说明。
重大更改
- 在没有
enableRemoteModule: true
的情况下使用remote
时发出弃用警告。#21546- 这是我们计划弃用
remote
模块并将其移至用户空间的第一步。您可以阅读并关注此问题,其中详细说明了我们这样做的原因,并包括了建议的弃用时间表。
- 这是我们计划弃用
- 默认情况下将
app.enableRendererProcessReuse
设置为 true。#22336 - 通过 IPC 发送非 JavaScript 对象现在会引发异常。#21560
- 此行为已在 Electron 8.0 中弃用。在 Electron 9.0 中,旧的序列化算法已被删除,并且发送此类不可序列化对象现在将引发“无法克隆对象”错误。
有关这些和未来更改的更多信息,请参见计划的重大更改页面。
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
取代。- 在 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
、如何轻松启用它及其安全优势的更多信息,请参阅我们专门的上下文隔离文档。