不得不看的electron 12.0 版本更新日志

3,242 阅读5分钟

Electron 12.0.0 已发布! 它包括对 Chromium 89, V8 8.9 和 Node.js 14.16的升级. 我们添加了对远程模块的更改,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:WebwebFrameMain模块可用于查找现有WebContents实例中的事例。这是相当于现有 Web 框架 API 的主要过程。有关此新 API 的更多信息,可在此处找到,并在我们的文档中.

  • app

    • 将非本地化serviceName添加到'child-process-gone' / app.getAppMetrics(). #25975
    • 添加了新的app.runningUnderRosettaTranslation属性,以检测何时在Apple硅片上的rosetta下运行. #26444
    • 添加exitCoderender-process-gone详细信息(应用程序和WebContents). #27677
  • BrowserWindow

    • 添加BrowserWindow.isTabletMode() API. #25209
    • 添加resized (Windows/macOS) ,并将 (Windows) 事件movedBrowserWindow. #26216
    • 添加了新的 system-context-menu 事件,以便防止和覆盖系统上下文菜单. #25795
    • 添加 win.setTopBrowserView() 以便 BrowserView 可以提高. #27713
    • 添加 webPreferences.preferredSizeMode 以便根据其文档的最小大小进行大小浏览. #25874
  • contextBridge

    • 允许ContextBridge exposeInMainWorld方法公开非对象API. #26834
  • display

    • Display对象添加displayFrequency属性,以便获取有关 Windows 刷新率的信息. #26472
  • extensions

    • 增加了对一些chrome.management API 的支持 #25098
  • MenuItem

    • 添加了对显示macOS共享菜单的支持. #25629
  • net

    • net.request() 添加了一个新的 credentials的选项 . #25284
    • 添加 net.online用于检测当前是否存在互联网连接。. #21004
  • powerMonitor

    • 添加 powerMonitor.onBatteryPower. #26494
    • 在macOS上的powerMonitor中添加了快速用户切换事件. #25321
  • session

    • 添加 allowFileAccess 选项到 ses.loadExtension() API. #27702
    • 添加 display-capture API 到 session.setPermissionRequestHandler. #27696
    • 添加一个 disabledCipherSuites 选项到 session.setSSLConfig. #25818
    • 添加 extension-loaded, extension-unloaded, 和 extension-ready 事件到 session. #25385
    • 添加 session.setSSLConfig() 以允许配置SSL. #25461
    • 增加对 session.setProxy()中明确direct指定直接auto_detectsystem模式的支持. #24937
    • 增加 Serial API 支持. #25237
    • 添加API以启用/禁用拼写检查器. #26276
  • shell

    • 添加了一个新的异步shell.trashItem() API,取代了同步shell.moveItemToTrash(). #25114
  • webContents

    • 向控制台添加了一个小控制台提示,以帮助调试渲染器崩溃. #25317
    • 在 Web 要求处理程序中的详细信息对象中添加framewebContents控制属性. #27334
    • 添加webContents.forcefullyCrashRenderer()以强制终止渲染器过程,以帮助恢复悬挂渲染器. #25580
    • 为渲染器创建的子窗口添加setWindowOpenHandler API,并弃用new-window事件. #24517
  • webFrame

    • 向渲染器添加拼写检查API. #25060

已删除/弃用更改

已删除或现在弃用以下 API::

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

结束对9.0版本的支持

根据项目的 支持政策. Electron 9.0已终止支持。鼓励开发人员和应用程序升级到新版本的Electron

下一步是什么

在短期内,您可以期望团队继续专注于跟上构成Electron的主要组件(包括Chromium,Node和V8)的开发。尽管我们小心谨慎,不要对发布日期做出保证,但我们的计划是发布Electron的新主要版本,并大约每季度发布这些组件的新版本。该暂定时间表13.0.0绘制了 Electron 13.0 开发生命周期中的关键日期。另外,请参阅我们的版本控制文档,以获取有关Electron中版本控制的更多详细信息。

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