Electron 9.0.0
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
安裝它,或從我們的發佈網站下載它。此版本包含升級、修復和新功能。我們迫不及待想看看您使用它們構建什麼!繼續閱讀以了解有關此版本的詳細資訊,並請分享您有的任何意見反應!
重要變更
堆疊變更
- Chromium
83.0.4103.64
- Node.js
12.14.1
- V8
8.3
重點功能
請參閱9.0.0 發行說明以取得新功能和變更的完整列表。
重大變更
- 當使用
remote
但未啟用enableRemoteModule: true
時,會發出棄用警告。#21546- 這是我們計劃棄用
remote
模組並將其移至 userland 的第一步。您可以閱讀並追蹤此 issue,其中詳細說明了我們這樣做的原因,並包含建議的棄用時程表。
- 這是我們計劃棄用
- 預設將
app.enableRendererProcessReuse
設定為 true。#22336- 這是為了未來的要求而持續進行的工作,該要求是在渲染器程序中載入的原生 Node 模組必須是 N-API 或 Context Aware。完整資訊和建議的時程表在此 issue 中詳細說明。
- 透過 IPC 發送非 JavaScript 物件現在會擲回例外狀況。#21560
- 此行為已在 Electron 8.0 中棄用。在 Electron 9.0 中,舊的序列化演算法已被移除,並且發送此類不可序列化的物件現在將擲回「無法複製物件」錯誤。
有關這些和未來變更的更多資訊,請參閱計劃中的重大變更頁面。
API 變更
shell
API 變更shell.openItem
API 已被非同步的shell.openPath API
取代。提案
session
API 變更app
API 變更- 在 macOS 上為
app.focus()
新增了 force 參數,以允許應用程式強制取得焦點。#23447
- 在 macOS 上為
BrowserWindow
API 變更- 新增了對
BrowserWindow
上某些 getter/setter 配對的屬性存取支援。#23208
- 新增了對
已棄用的 API
以下 API 現在已棄用或移除
shell.openItem
API 現在已棄用,並被非同步的shell.openPath API
取代。<webview>.getWebContents
在 Electron 8.0 中已棄用,現在已移除。webFrame.setLayoutZoomLevelLimits
在 Electron 8.0 中已棄用,現在已移除。
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 內部機制或應用程式的預先載入腳本。然後,該程式碼可以執行 Electron 想要保持限制的特權動作。
變更此預設值可提高 Electron 應用程式的預設安全性,以便應用程式需要刻意選擇加入不安全的行為。Electron 將在 Electron 10.0 中棄用目前的 contextIsolation
預設值,並在 Electron 12.0 中變更為新的預設值 (true
)。
有關 contextIsolation
、如何輕鬆啟用它及其安全性優勢的更多資訊,請參閱我們專門的Context Isolation 文件。