跳到主要內容

Electron 9.0.0

·閱讀時間 4 分鐘

Electron 9.0.0 已發布!它包含升級至 Chromium 83、V8 8.3 和 Node.js 12.14。我們為拼字檢查功能新增了幾個新的 API 整合、啟用 PDF 檢視器,以及更多功能!


Electron 團隊很高興宣布發布 Electron 9.0.0!您可以使用 npm 透過 npm install electron@latest 安裝它,或從我們的發行版本網站下載它。此版本包含升級、修正和新功能。我們迫不及待想看看您使用它們建置什麼!繼續閱讀以了解此版本的詳細資訊,並請分享您的任何意見反應!

重要變更

堆疊變更

重點功能

  • 對拼字檢查功能進行多項改進。請參閱#22128#22368 中的更多詳細資訊。
  • 改進了 Linux 上的視窗事件處理常式效率。#23260
  • 啟用 PDF 檢視器。#22131

請參閱9.0.0 發行版本說明,以取得新功能和變更的完整清單。

重大變更

  • 在沒有 enableRemoteModule: true 的情況下使用 remote 時的淘汰警告。#21546
    • 這是我們淘汰 remote 模組並將其移至 userland 的計劃中的第一步。您可以閱讀並追蹤此問題,其中詳細說明了我們這樣做的原因,並包含建議的淘汰時程表。
  • 預設將 app.enableRendererProcessReuse 設定為 true。#22336
    • 這是為了未來在轉譯器程序中載入的原生 Node 模組必須是 N-APIContext Aware 的後續工作。完整資訊和建議的時程表在此問題中詳細說明。
  • 透過 IPC 傳送非 JavaScript 物件現在會擲回例外狀況。#21560
    • 此行為已在 Electron 8.0 中淘汰。在 Electron 9.0 中,舊的序列化演算法已移除,而傳送此類不可序列化的物件現在會擲回「物件無法複製」錯誤。

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

API 變更

  • shell API 變更
    • shell.openItem API 已被非同步的 shell.openPath API 取代。提案
  • session API 變更
    • 新增 session.listWordsFromSpellCheckerDictionary API 以列出字典中的自訂單字。#22128
    • 新增 session.removeWordFromSpellCheckerDictionary API 以移除字典中的自訂單字。#22368
    • 新增 session.serviceWorkerContext API 以存取基本 Service Worker 資訊,並接收來自 Service Worker 的主控台記錄。#22313
  • app API 變更
    • 在 macOS 上,為 app.focus() 新增了新的 force 參數,以允許應用程式強制取得焦點。#23447
  • BrowserWindow API 變更
    • 新增對 BrowserWindow 上某些 getter/setter 配對的屬性存取支援。#23208

已淘汰的 API

以下 API 現在已淘汰或移除

  • shell.openItem API 現在已淘汰,並以非同步的 shell.openPath API 取代。
  • 已在 Electron 8.0 中淘汰的 <webview>.getWebContents 現在已移除。
  • 已在 Electron 8.0 中淘汰的 webFrame.setLayoutZoomLevelLimits 現在已移除。

對 6.x.y 的支援終止

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

下一步

短期內,您可以預期團隊將持續專注於跟上構成 Electron 的主要元件的開發進度,包括 Chromium、Node 和 V8。雖然我們謹慎地不對發布日期做出承諾,但我們的計畫是約每季發布包含這些元件新版本的 Electron 主要版本。 暫定的 10.0.0 時程表 列出了 Electron 10.0 開發生命週期的關鍵日期。此外,請參閱我們的版本控制文件,以取得關於 Electron 版本控制的更詳細資訊。

如需關於 Electron 即將推出的版本中計畫的重大變更,請參閱我們的計畫重大變更文件

contextIsolation 的預設值從 false 變更為 true (從 Electron 10 開始)

如果沒有 contextIsolation,任何在渲染器程序中執行的程式碼都可以輕易地存取 Electron 內部或應用程式的 preload 腳本。接著,該程式碼可以執行 Electron 希望保持限制的特權操作。

變更此預設值可以提高 Electron 應用程式的預設安全性,因此應用程式將需要故意選擇加入不安全的行為。 Electron 將在 Electron 10.0 中棄用目前的 contextIsolation 預設值,並在 Electron 12.0 中變更為新的預設值 (true)。

如需關於 contextIsolation 的更多資訊,如何輕鬆啟用它及其安全性優勢,請參閱我們專門的 Context Isolation 文件