跳至主要内容

Electron 12.0.0

·阅读时长:5 分钟

Electron 12.0.0 已发布!它包括 Chromium 89、V8 8.9 和 Node.js 14.16 的升级。我们对远程模块添加了更改,为 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 更改
    • 已将非本地化的 serviceName 添加到 'child-process-gone' / app.getAppMetrics()#25975
    • 已添加新的 app.runningUnderRosettaTranslation 属性以检测在 Apple 硅上运行时是否在 rosetta 下运行。 #26444
    • 已将 exitCode 添加到 render-process-gone 详细信息(应用程序和 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
    • 添加了 串行 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 未来版本中计划的重大更改的信息,请参阅我们计划的重大更改文档