跳到主要內容

Electron 34.0.0

·4 分鐘閱讀

Electron 34.0.0 已發布!它包含 Chromium 132.0.6834.83、V8 13.2 和 Node 20.18.1 的升級。


Electron 團隊很高興宣布 Electron 34.0.0 的發布!您可以使用 npm 透過 npm install electron@latest 安裝它,或從我們的發行網站下載它。繼續閱讀以了解有關此版本的詳細資訊。

如果您有任何意見回饋,請在 BlueskyMastodon 上與我們分享,或加入我們的社群 Discord!錯誤和功能請求可以在 Electron 的 issue tracker 中回報。

重大變更

HTTP 壓縮共用字典管理 API

HTTP 壓縮允許資料在被瀏覽器接收之前由網路伺服器壓縮。現代版本的 Chromium 支援 Brotli 和 Zstandard,它們是比 gzip 等舊方案更適用於文字檔案的新壓縮演算法。

自訂共用字典進一步提高了 Brotli 和 Zstandard 壓縮的效率。有關更多資訊,請參閱Chrome for Developers 部落格關於共用字典的文章

@felixrieseberg#44950 中新增了以下 API,以在 Session 層級管理共用字典

  • session.getSharedDictionaryUsageInfo()
  • session.getSharedDictionaryInfo(options)
  • session.clearSharedDictionaryCache()
  • session.clearSharedDictionaryCacheForIsolationKey(options)

無回應渲染器 JavaScript 呼叫堆疊

當渲染器程序掛起過長時間時,就會發生 Electron 的 unresponsive 事件。由 @samuelmaddock#44204 中新增的新的 WebFrameMain.collectJavaScriptCallStack() API 允許您從相關的 WebFrameMain 物件 (webContnets.mainFrame) 收集 JavaScript 呼叫堆疊。

當長時間運行的 JavaScript 事件導致程序掛起時,此 API 可用於確定幀無回應的原因。有關更多資訊,請參閱提議的網路標準 Crash Reporting API

主程序
const { app } = require('electron');

app.commandLine.appendSwitch(
'enable-features',
'DocumentPolicyIncludeJSCallStacksInCrashReports',
);

app.on('web-contents-created', (_, webContents) => {
webContents.on('unresponsive', async () => {
// Interrupt execution and collect call stack from unresponsive renderer
const callStack = await webContents.mainFrame.collectJavaScriptCallStack();
console.log('Renderer unresponsive\n', callStack);
});
});
警告

此 API 需要啟用 'Document-Policy': 'include-js-call-stacks-in-crash-reports' 標頭。有關更多詳細資訊,請參閱 #45356

堆疊變更

Electron 34 將 Chromium 從 130.0.6723.44 升級到 132.0.6834.83,Node 從 20.18.0 升級到 20.18.1,V8 從 13.0 升級到 13.2

新功能

  • 新增 API 以使用 Brotli 或 ZStandard 管理共用字典,以提高壓縮效率。新的 API 為 session.getSharedDictionaryUsageInfo()session.getSharedDictionaryInfo(options)session.clearSharedDictionaryCache()session.clearSharedDictionaryCacheForIsolationKey(options)#44950
  • 新增 WebFrameMain.collectJavaScriptCallStack() 以存取無回應渲染器的 JavaScript 呼叫堆疊。#44938
  • 為處於卸載狀態的幀新增 WebFrameMain.detached
    • 新增 WebFrameMain.isDestroyed() 以判斷幀是否已被銷毀。
    • 修復了當幀正在卸載時,webFrameMain.fromId(processId, frameId) 傳回的 WebFrameMain 實例與給定參數不符的問題。#43473
  • 在公用程式程序中新增錯誤事件,以支援 V8 嚴重錯誤的診斷報告。#43774
  • 功能:GPU 加速的共用紋理離螢幕渲染。#42953

重大變更

行為已變更:在 Windows 上全螢幕期間將隱藏選單列

這使行為與 Linux 保持一致。先前行為:在 Windows 上全螢幕期間,選單列仍然可見。新行為:在 Windows 上全螢幕期間,選單列將被隱藏。

更正:這先前在 Electron 33 中被列為重大變更,但實際上是在 Electron 34 中首次發布。

終止對 31.x.y 的支援

根據專案的支援政策,Electron 31.x.y 已達到終止支援。鼓勵開發人員和應用程式升級到較新版本的 Electron。

E34 (25 年 1 月)E35 (25 年 4 月)E36 (25 年 6 月)
34.x.y35.x.y36.x.y
33.x.y34.x.y35.x.y
32.x.y33.x.y34.x.y

下一步

在短期內,您可以預期團隊將繼續專注於跟上構成 Electron 的主要組件(包括 Chromium、Node 和 V8)的開發。

您可以在此處找到Electron 的公開時程表

有關未來變更的更多資訊,請參閱計畫的重大變更頁面。