跳到主要内容

Electron 12.0.0

·5 分钟阅读

Electron 12.0.0 已发布!它包括对 Chromium 89、V8 8.9 和 Node.js 14.16 的升级。我们对 remote 模块进行了更改,为 contextIsolation 添加了新默认值,添加了新的 webFrameMain API,以及进行了一些常规改进。阅读以下内容了解更多详细信息!


Electron 团队很高兴地宣布发布 Electron 12.0.0!您可以使用 npm 通过 npm install electron@latest 安装它,或者从我们的发布网站下载它。继续阅读有关此版本的详细信息,并请分享您的任何反馈!

显著变化

堆栈更改

突出特点

  • ContextBridge exposeInMainWorld 方法现在可以公开非对象 API。#26834
  • 从 Node 12 升级到 Node 14。#23249
  • 添加了一个新的 webFrameMain API,用于从主进程访问 WebContents 实例的子框架。#25464
  • contextIsolationworldSafeExecuteJavaScript 的默认值现在为 true#27949 #27502

有关新功能和更改的完整列表,请参阅12.0.0 发行说明

重大更改

有关这些和未来更改的更多信息,请访问计划的重大更改页面。

API 更改

  • 添加了 webFrameMain API:可以使用 webFrameMain 模块查找现有WebContents 实例中的框架。这是现有 webFrame API 的主进程等效项。有关此新 API 的更多信息,请访问此处,以及我们的文档
  • app API 更改
    • 将非本地化的 serviceName 添加到 'child-process-gone' / app.getAppMetrics()#25975
    • 添加了新的 app.runningUnderRosettaTranslation 属性,以检测何时在 Apple Silicon 上使用 Rosetta 运行。#26444
    • exitCode 添加到 render-process-gone 详细信息 (app & webContents)。#27677
  • BrowserWindow API 更改
    • 添加了 BrowserWindow.isTabletMode() API。#25209
    • resized (Windows/macOS) 和 moved (Windows) 事件添加到 BrowserWindow#26216
    • 添加了新的 system-context-menu 事件,以允许阻止和覆盖系统上下文菜单。#25795
    • 添加了 win.setTopBrowserView(),以便可以提升 BrowserView#27713
    • 添加了 webPreferences.preferredSizeMode,以允许根据其文档的最小尺寸调整视图的大小。#25874
  • contextBridge API 更改
    • 允许 ContextBridge exposeInMainWorld 方法公开非对象 API。#26834
  • display API 更改
    • displayFrequency 属性添加到 Display 对象,以允许获取有关 Windows 刷新率的信息。#26472
  • extensions API 变更
    • 新增对部分 chrome.management API 的支持。#25098
  • MenuItem API 变更
    • 新增显示 macOS 分享菜单的支持。#25629
  • net API 变更
    • net.request() 新增 credentials 选项。#25284
    • 新增 net.online 用于检测当前是否有互联网连接。#21004
  • powerMonitor API 变更
    • 新增 powerMonitor.onBatteryPower#26494
    • 在 macOS 上为 powerMonitor 新增快速用户切换事件。#25321
  • session API 变更
    • ses.loadExtension() API 新增 allowFileAccess 选项。#27702
    • session.setPermissionRequestHandler 新增 display-capture API。#27696
    • session.setSSLConfig 新增 disabledCipherSuites 选项。#25818
    • session 新增 extension-loadedextension-unloadedextension-ready 事件。#25385
    • 新增 session.setSSLConfig() 以允许配置 SSL。#25461
    • 新增在 session.setProxy() 中显式指定 directauto_detectsystem 模式的支持。#24937
    • 新增 Serial API 支持。#25237
    • 新增启用/禁用拼写检查器的 API。#26276
  • shell API 变更
    • 新增异步的 shell.trashItem() API,取代同步的 shell.moveItemToTrash()#25114
  • webContents API 变更
    • 为控制台添加少量控制台提示,以帮助调试渲染器崩溃问题。#25317
    • 在 webRequest 处理程序的详情对象中添加 framewebContents 属性。#27334
    • 新增 webContents.forcefullyCrashRenderer() 以强制终止渲染器进程,从而帮助恢复挂起的渲染器。#25580
    • 新增 setWindowOpenHandler API 用于渲染器创建的子窗口,并弃用 new-window 事件。#24517
  • webFrame API 变更
    • 为渲染器添加拼写检查 API。#25060

已移除/弃用的变更

以下 API 已被移除或现在已被弃用

  • 弃用了 remote 模块。它被 @electron/remote 取代。#25293
  • 移除已弃用的 crashReporter API。#26709
  • 从打包应用中的默认“帮助”菜单中移除指向 Electron 网站的链接。#25831

9.x.y 版本停止支持

根据项目的支持政策,Electron 9.x.y 已停止支持。建议开发者和应用升级到较新版本的 Electron。

下一步

短期内,您可以期望团队继续专注于跟上构成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发。虽然我们不会承诺发布日期,但我们的计划是大约每季度发布带有这些组件新版本的 Electron 主要版本。暂定的 13.0.0 时间表概述了 Electron 13.0 开发生命周期中的关键日期。此外,请参阅我们的版本控制文档,了解有关 Electron 版本控制的更多详细信息。

有关 Electron 即将发布的版本中计划的重大更改的信息,请参阅我们的计划的重大更改文档