Electron 8.0.0
Electron 8.0.0 已发布!它包括 Chromium 80
、V8 8.0
和 Node.js 12.13.0
的升级。我们添加了 Chrome 的内置拼写检查器,以及更多功能!
Electron 团队很高兴地宣布 Electron 8.0.0 的发布!您可以使用 npm 通过 npm install electron@latest
安装它,或者从我们的发布网站下载它。该版本包含大量升级、修复和新功能。我们迫不及待想看看您用它们构建什么!继续阅读以了解有关此版本的详细信息,并请分享您收到的任何反馈!
值得注意的变更
堆栈变更
- Chromium
80.0.3987.86
- Node.js
12.13.0
- V8
8.0
突出显示功能
- 实现了 Chrome 内置拼写检查器功能的使用。有关更多详细信息,请参见#20692和#21266。
- IPC 通信现在使用 v8 的结构化克隆算法。这比现有逻辑更快、功能更强大且更不容易出现意外,并且为大型缓冲区和复杂对象带来了 2 倍的性能提升。小消息的延迟没有受到明显影响。有关更多详细信息,请参见#20214。
有关新功能和更改的完整列表,请参见8.0.0 发行说明。
重大变更
- 在上下文感知模块的弃用警告中显示模块名称。#21952
- 现在,通过 IPC 发送的值使用结构化克隆算法进行序列化。#20214
- 由于缺少维护人员来处理此功能,因此目前已禁用离屏渲染。它在 Chromium 升级期间中断,随后被禁用。#20772
有关这些和未来更改的更多信息,请参见计划的重大更改页面。
API 变更
app
API 变更BrowserWindow
API 变更- 更新了文档以指出 BrowserWindow 选项
hasShadow
在所有平台上都可用 #20038 - 将
trafficLightPosition
选项添加到 BrowserWindow 选项,以允许自定义交通信号灯按钮的位置。#21781 - 将
accessibleTitle
选项添加到 BrowserWindow 以设置可访问的窗口标题 #19698 BrowserWindow.fromWebContents()
现在可以返回 null #19983- 添加了
BrowserWindow.getMediaSourceId()
和BrowserWindow.moveAbove(mediaSourceId)
。#18926 - 在 macOS 上添加了对
will-move
事件的支持。#19641
- 更新了文档以指出 BrowserWindow 选项
- 记录了以前未记录的
crashReporter.getCrashesDirectory()
。#20417 dialog
API 变更Notification
API 变更session
API 变更- 在 macOS 上添加了
shell.moveItemToTrash(fullPath[, deleteOnFail])
的选项,以指定 moveItemToTrash 失败时会发生什么。#19700 systemPreferences
API 变更- 添加了
nativeTheme.themeSource
以允许应用覆盖 Chromium 和 OS 的主题选择。#19960 - TouchBar API 变更
tray
API 变更webContents
API 变更- 添加了
contents.executeJavaScriptInIsolatedWorld(worldId, scripts[, userGesture])
以在 webContents API 上公开 executeJavaScriptInIsolatedWorld。#21190 - 添加了捕获隐藏 webContents 的方法。#21679
- 将选项添加到
webContents.print([options], [callback])
以启用打印页面标题和页脚的自定义。#19688 - 添加了通过
webContents.getAllSharedWorkers()
和webContents.inspectSharedWorkerById(workerId)
检查特定共享工作线程的功能。#20389 - 在 WebContents.printToPDF() 中添加了对
fitToPageEnabled
和scaleFactor
选项的支持。#20436
- 添加了
- 更新了
webview.printToPDF
文档以表明返回类型现在为 Uint8Array。#20505
已弃用的 API
以下 API 现在已弃用
- 弃用了
BrowserWindow.setVisibleOnAllWorkspaces
中无功能的visibleOnFullScreen
选项,之后将在下一个主要版本中将其删除。#21732 - 在 macOS 的
systemPreferences.getColor(color)
上弃用了alternate-selected-control-text
。#20611 - 在
webContents
、webFrame
和<webview> 标签
上弃用了setLayoutZoomLevelLimits
,因为 Chromium 删除了此功能。#21296 - 现在已弃用
app.allowRendererProcessReuse
的默认值false
。#21287 - 弃用了
<webview>.getWebContents()
,因为它依赖于远程模块。#20726
对 5.x.y 的支持结束
根据项目的支持策略,Electron 5.x.y 已达到支持结束状态。鼓励开发人员和应用程序升级到更新版本的 Electron。
应用反馈计划
我们将继续使用我们的应用反馈计划进行测试。参与此计划的项目在其应用程序上测试 Electron 测试版;作为回报,他们发现的新错误将在稳定版本中优先处理。如果您想参与或了解更多信息,请查看我们关于该计划的博客文章。
下一步是什么
在短期内,您可以期望该团队继续专注于跟上构成 Electron 的主要组件的开发,包括 Chromium、Node 和 V8。尽管我们小心不承诺发布日期,但我们的计划是大约每季度发布一次包含这些组件新版本的 Electron 新主要版本。暂定的 9.0.0 时间表规划了 Electron 9 开发生命周期中的关键日期。此外,请参阅我们的版本控制文档,以获取有关 Electron 中版本控制的更多详细信息。
有关即将发布的 Electron 版本中计划的重大更改的信息,请参阅我们的计划的重大更改文档。
弃用 remote
模块(从 Electron 9 开始)
由于严重的安全隐患,我们计划从 Electron 9 开始弃用 remote
模块。您可以阅读并关注 此问题,其中详细说明了我们这样做的原因,并包含了提议的弃用时间表。