跳转到主要内容

Electron 12.0.0

·7分钟阅读

Electron 12.0.0 已发布!它包含了 Chromium 89、V8 8.9 和 Node.js 14.16 的升级。我们对 remote 模块进行了更改,为 contextIsolation 设置了新的默认值,引入了新的 webFrameMain API,并进行了一些通用改进。请继续阅读以获取更多详细信息!


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

重要变更

技术栈变更

重点特性

  • 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 变更
    • 'child-process-gone' / app.getAppMetrics() 添加了非本地化的 serviceName#25975
    • 添加了新的 app.runningUnderRosettaTranslation 属性,用于检测在 Apple silicon 上通过 Rosetta 运行时的情况。 #26444
    • render-process-gone 详细信息(app 和 webContents)添加了 exitCode#27677
  • BrowserWindow API 变更
    • 添加了 BrowserWindow.isTabletMode() API。 #25209
    • BrowserWindow 添加了 resized(Windows/macOS)和 moved(Windows)事件。 #26216
    • 添加了新的 system-context-menu 事件,以允许阻止和覆盖系统上下文菜单。 #25795
    • 添加了 win.setTopBrowserView(),以便可以提升 BrowserView#27713
    • 添加了 webPreferences.preferredSizeMode,以允许根据文档的最小尺寸调整视图大小。 #25874
  • contextBridge API 更改
    • 允许 ContextBridge exposeInMainWorld 方法暴露非对象 API。 #26834
  • display API 更改
    • Display 对象添加了 displayFrequency 属性,以允许获取有关 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 主要版本。 Electron 13.0.0 的暂定时间表 概述了 Electron 13.0 开发生命周期中的关键日期。此外,有关 Electron 版本控制的更多详细信息,请参阅我们的 版本控制文档

有关 Electron 未来版本中计划的重大更改的信息,请参阅我们的计划中的重大更改文档