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 - 为 BrowserWindow 选项添加了
trafficLightPosition
选项,以允许自定义交通灯按钮的位置。 #21781 - 为 BrowserWindow 添加了
accessibleTitle
选项,用于设置可访问的窗口标题 #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 和操作系统的颜色主题选择。 #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> Tag
上的setLayoutZoomLevelLimits
,因为 Chromium 移除了此功能。 #21296 app.allowRendererProcessReuse
的默认值false
现已废弃。 #21287- 废弃了
<webview>.getWebContents()
,因为它依赖于 remote 模块。 #20726
停止支持 5.x.y 版本
根据项目的支持政策,Electron 5.x.y 已达到支持终止阶段。 建议开发者和应用程序升级到更新版本的 Electron。
应用反馈计划
我们继续使用我们的应用反馈计划进行测试。 参与此计划的项目在其应用程序上测试 Electron 的 Beta 版本;作为回报,他们发现的新 bug 将优先处理以确保在稳定版本中得到修复。 如果您想参与或了解更多信息,请查看我们关于该计划的博客文章。
下一步计划
短期内,您可以期望团队继续专注于与构成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发保持同步。 尽管我们谨慎地不承诺发布日期,但我们的计划是大约每季度发布包含这些组件新版本的新主要 Electron 版本。 暂定的 9.0.0 发布时间表列出了 Electron 9 开发生命周期中的关键日期。 此外,有关 Electron 版本控制的更详细信息,请参阅我们的版本控制文档。
有关未来 Electron 版本中计划的重大变更的信息,请参阅我们的计划中的重大变更文档。
废弃 remote
模块(从 Electron 9 开始)
由于严重的安全风险,我们开始计划从 Electron 9 开始废弃 remote
模块。 您可以阅读并关注此 issue,其中详细说明了我们这样做的原因以及废弃的拟议时间表。