跳到主要內容

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 的 issue tracker 中回報。

重大變更

重點

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

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

已移除:process.getIOCounters()

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

終止對 27.x.y 的支援

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

E30 (24 年 4 月)E31 (24 年 6 月)E32 (24 年 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 的公開時程表

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