跳至主要內容

Electron 30.0.0

·閱讀時間 4 分鐘

Electron 30.0.0 已發布!它包含 Chromium 124.0.6367.49、V8 12.4 和 Node.js 20.11.1 的升級。


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

如果您有任何意見反應,請在 TwitterMastodon 上與我們分享,或加入我們的社群 Discord!錯誤和功能請求可以在 Electron 的問題追蹤器中回報。

重大變更

重點

  • Windows 上現在支援 ASAR 完整性熔斷器 (#40504)
    • 如果未正確設定,則啟用 ASAR 完整性的現有應用程式可能無法在 Windows 上運作。使用 Electron 打包工具的應用程式應升級至 @electron/packager@18.3.1@electron/forge@7.4.0
    • 請查看我們的ASAR 完整性教學課程,以取得更多資訊。
  • 新增了 WebContentsViewBaseWindow 主要程序模組,棄用和取代 BrowserView (#35658)。在這篇部落格文章中,深入了解如何從 BrowserView 遷移至 WebContentsView
    • BrowserView 現在是 WebContentsView 的 shim,且舊的實作已移除。
    • 請參閱我們的 Web Embeds 文件,以比較新的 WebContentsView API 與其他類似的 API。
  • 實作了對檔案系統 API 的支援 (#41827)

堆疊變更

Electron 30 將 Chromium 從 122.0.6261.39 升級至 124.0.6367.49、將 Node 從 20.9.0 升級至 20.11.1,並將 V8 從 12.2 升級至 12.4

新功能

  • 在 webview 中新增了 transparent webpreference。( #40301)
  • 在 webContents API 上新增了新的執行個體屬性 navigationHistory,以及 navigationHistory.getEntryAtIndex 方法,讓應用程式能夠擷取瀏覽歷程記錄中任何導覽項目的 URL 和標題。( #41662)
  • 新增了新的 BrowserWindow.isOccluded() 方法,允許應用程式檢查遮蔽狀態。( #38982)
  • 新增了對從公用程式程序使用 net 模組發出的請求設定 Proxy 的支援。( #41417)
  • 新增了在 navigator.serial 中透過服務類別 ID 請求藍牙埠的支援。( #41734)
  • 新增了對 Node.js NODE_EXTRA_CA_CERTS CLI 旗標的支援。( #41822)

重大變更

行為變更:跨來源 iframe 現在使用權限政策來存取功能

跨來源 iframe 現在必須透過 allow 屬性指定可供特定 iframe 使用的功能,才能存取這些功能。

請參閱文件以獲取更多資訊。

已移除:--disable-color-correct-rendering 命令列開關

此開關從未正式記錄,但無論如何在此處註明其移除。Chromium 本身現在對色彩空間有更好的支援,因此應該不需要此標誌。

行為變更:macOS 上 BrowserView.setAutoResize 的行為

在 Electron 30 中,BrowserView 現在是新 WebContentsView API 的包裝器。

先前,BrowserView API 的 setAutoResize 函式由 macOS 上的 autoresizing 和 Windows 與 Linux 上的自訂演算法支援。對於簡單的使用案例,例如讓 BrowserView 填滿整個視窗,這兩種方法的行為是相同的。然而,在更進階的情況下,BrowserView 在 macOS 上的自動調整大小方式會與其他平台不同,因為 Windows 和 Linux 的自訂調整大小演算法並不能完美符合 macOS 的自動調整大小 API 的行為。自動調整大小的行為現在在所有平台上都已標準化。

如果您的應用程式使用 BrowserView.setAutoResize 來執行比讓 BrowserView 填滿整個視窗更複雜的操作,那麼您可能已經有自訂邏輯來處理 macOS 上這種行為的差異。如果有的話,由於自動調整大小行為一致,因此在 Electron 30 中將不再需要該邏輯。

已移除:WebContentscontext-menu 中的 params.inputFormType 屬性

已移除 WebContentscontext-menu 事件中 params 物件的 inputFormType 屬性。請改用新的 formControlType 屬性。

已移除:process.getIOCounters()

Chromium 已移除對此資訊的存取權。

停止支援 27.x.y

根據專案的支援政策,Electron 27.x.y 已停止支援。建議開發人員和應用程式升級到較新版本的 Electron。

E30 (2024 年 4 月)E31 (2024 年 6 月)E32 (2024 年 8 月)
30.x.y31.x.y32.x.y
29.x.y30.x.y31.x.y
28.x.y29.x.y30.x.y

下一步

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

您可以在此處找到 Electron 的公開時間軸

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