Electron 14.0.0
Electron 14.0.0 已發布!它包含 Chromium 93
和 V8 9.3
的升級。我們新增了一些 API 更新、錯誤修正和一般改進。請閱讀以下內容以取得更多詳細資訊!
Electron 團隊很高興宣布發布 Electron 14.0.0!您可以使用 npm 透過 npm install electron@latest
安裝它,或從我們的發佈網站下載。請繼續閱讀以了解有關此版本的詳細資訊,並分享您的任何意見回饋!
重大變更
Electron 發佈節奏變更
從 2021 年 9 月的 Electron 15 開始,Electron 將每 8 週發佈一個新的主要穩定版本。您可以在此處閱讀完整詳細資訊。Electron 15 將於 2021 年 9 月 1 日開始測試版,並於 2021 年 9 月 21 日發佈穩定版。您可以在此處找到 Electron 的公開時間表。此外,Electron 將把支援的版本從最新的三個版本更改為最新的四個版本,直到 2022 年 5 月。請參閱我們的版本控制文件,以取得有關 Electron 版本控制的更詳細資訊。
堆疊變更
- Chromium
93
- Node.js
14.17.0
- V8
9.3
重點功能
- 預設值已變更:
nativeWindowOpen
現在預設為true
。(請參閱文件) - 子視窗不再繼承其父視窗的 BrowserWindow 建構選項。#28550
- 新增
session.storagePath
API,以取得磁碟上特定於工作階段的資料路徑。#28665 - 新增
process.contextId
,由@electron/remote
使用。#28007 - 在 Electron 保險絲後方新增實驗性 Cookie 加密支援。#29492
如需完整的新功能和變更清單,請參閱 14.0.0 版本資訊。
重大變更
以下是 Electron 14 中引入的重大變更。有關這些變更和未來變更的更多資訊,可以在計畫中的重大變更頁面上找到。
已移除:app.allowRendererProcessReuse
app.allowRendererProcessReuse
屬性已移除,作為我們為了更符合 Chromium 安全性、效能和可維護性處理程序模型計畫的一部分。
如需更詳細的資訊,請參閱#18397。
已移除:瀏覽器視窗親和性
建構新的 BrowserWindow
時的 affinity
選項已移除,作為我們為了更符合 Chromium 安全性、效能和可維護性處理程序模型計畫的一部分。
如需更詳細的資訊,請參閱#18397。
API 已變更:window.open()
選用參數 frameName
不再設定視窗的標題。此行為現在遵循 windowName
參數的原生文件中所述的規格。
如果您使用此參數來設定視窗的標題,則可以改用 win.setTitle(title)
方法。
已移除:worldSafeExecuteJavaScript
已移除 worldSafeExecuteJavaScript
,沒有替代方案。請確保您的程式碼在此屬性啟用時能正常運作。自 Electron 12 以來,預設已啟用此屬性。
如果您使用 webFrame.executeJavaScript
或 webFrame.executeJavaScriptInIsolatedWorld
,您將會受到此變更的影響。您需要確保這些方法傳回的值都受到 Context Bridge API 的支援,因為這些方法使用相同的數值傳遞語義。
預設值已變更:nativeWindowOpen
預設為 true
在 Electron 14 之前,window.open
預設會被模擬為使用 BrowserWindowProxy
。這表示 window.open('about:blank')
無法用於同步開啟可編寫指令碼的子視窗,以及其他不相容的問題。nativeWindowOpen
不再是實驗性的,現在是預設值。
如需更多詳細資訊,請參閱 Electron 中的 window.open 的文件。
已移除:BrowserWindowConstructorOptions 從父視窗繼承的行為
在 Electron 14 之前,使用 window.open
開啟的視窗會從其父視窗繼承 BrowserWindow 的建構函式選項,例如 transparent
和 resizable
。從 Electron 14 開始,此行為已移除,視窗將不再從其父視窗繼承任何 BrowserWindow 建構函式選項。
相反地,請使用 setWindowOpenHandler
為新視窗明確設定選項
webContents.setWindowOpenHandler((details) => {
return {
action: 'allow',
overrideBrowserWindowOptions: {
// ...
},
};
});
已移除:additionalFeatures
已棄用的 WebContents new-window
和 did-create-window
事件中的 additionalFeatures
屬性已被移除。由於 new-window
使用位置參數,該參數仍然存在,但將始終為空陣列 []
。(注意:new-window
事件本身已遭棄用,並已被 setWindowOpenHandler
取代。)視窗功能中的裸鍵現在將在選項物件中以值為 true
的鍵呈現。
// Removed in Electron 14
// Triggered by window.open('...', '', 'my-key')
webContents.on('did-create-window', (window, details) => {
if (details.additionalFeatures.includes('my-key')) {
// ...
}
});
// Replace with
webContents.on('did-create-window', (window, details) => {
if (details.options['my-key']) {
// ...
}
});
已移除:remote
模組
在 Electron 12 中已棄用的 remote
模組現在已從 Electron 本身移除,並提取到一個單獨的套件 @electron/remote
。 @electron/remote
模組橋接從主進程到渲染進程的 JavaScript 物件。這允許您存取主進程專用物件,就好像它們在渲染進程中可用一樣。這是 remote
模組的直接替代品。請參閱 模組的 readme 以獲取遷移說明和參考。
API 變更
- 新增
BrowserWindow.isFocusable()
方法,以判斷視窗是否可聚焦。#28642 - 新增
WebFrameMain.visibilityState
實例屬性。#28706 - 將
disposition
、referrer
和postBody
新增至傳遞給使用setWindowOpenHandler
註冊的視窗開啟處理程式的詳細資訊物件。#28518 - 新增
process.contextId
,由@electron/remote
使用。#28007 - 在 Electron 保險絲後方新增實驗性 Cookie 加密支援。#29492
- 為
webRequest
監聽器詳細資訊新增遺失的resourceType
轉換:font
、ping
、cspReport
、media
、webSocket
。#30050 - 新增
session.storagePath
API,以取得磁碟上特定於工作階段的資料路徑。#28665 - 新增對 macOS 上 Windows 控制項覆蓋層的支援。#29986
- 新增使用
--log-file=.../path/to/file.log
將 Chromium 日誌導向到檔案的支援。此外,現在可以透過在第一個 JS 週期附加命令列參數來啟用 JavaScript 的日誌記錄功能。#29963 - 新增對 node crypto 中 des-ede3 密碼的支援。#27897
- 新增允許修改上下文橋接物件的
ContextBridgeMutability
功能。#27348
已移除/棄用的變更
以下 API 已被移除或現在已棄用
- 在 Electron 12 中棄用後,已移除
remote
模組。#25734 - 子視窗不再繼承其父視窗的 BrowserWindow 建構選項。#28550
- 從
new-window
和did-create-window
WebContents 事件中移除已棄用的additionalFeatures
屬性。#28548 - 移除已棄用的
app.allowRendererProcessReuse
和 BrowserWindowaffinity
選項。#26874 - 當
uploadToServer
為 false 時,crashReporter.start
的submitURL
選項不再是必要參數。#28105
11.x.y 版本終止支援
根據專案的支援政策,Electron 11.x.y 已終止支援。建議開發人員和應用程式升級到較新版本的 Electron。
下一步
短期內,您可以預期團隊將繼續專注於跟上組成 Electron 的主要組件(包括 Chromium、Node 和 V8)的開發。雖然我們小心不對發布日期做出承諾,但我們的計劃是每季發布帶有這些組件新版本的新主要 Electron 版本。
有關即將推出的 Electron 版本中計畫的重大變更資訊,請參閱我們的計畫的重大變更。