Electron 8.0.0
Electron 8.0.0 已發布!它包含 Chromium 80
、V8 8.0
和 Node.js 12.13.0
的升級。我們新增了 Chrome 的內建拼字檢查器,以及更多功能!
Electron 團隊很高興宣布 Electron 8.0.0 的發布!您可以透過 npm 使用 npm install electron@latest
安裝它,或從我們的發行版本網站下載。此版本包含許多升級、修復和新功能。我們迫不及待想看看您會用它們構建什麼!請繼續閱讀以了解有關此版本的詳細資訊,並請分享您的任何意見回饋!
重點變更
堆疊變更
- Chromium
80.0.3987.86
- Node.js
12.13.0
- V8
8.0
重點功能
- 實作了 Chrome 內建拼字檢查器功能的使用。請參閱 #20692 和 #21266 以了解更多詳細資訊。
- IPC 通訊現在使用 v8 的結構化複製演算法。這比現有的邏輯更快、功能更豐富且更不易出錯,並為大型緩衝區和複雜物件帶來 2 倍的效能提升。小型訊息的延遲沒有顯著影響。請參閱 #20214 以了解更多詳細資訊。
請參閱 8.0.0 發行說明 以取得新功能和變更的完整列表。
重大變更
- 在內容感知模組的棄用警告中顯示模組名稱。 #21952
- 這是為了未來要求在渲染器進程中載入的原生 Node 模組必須是 N-API 或內容感知模組的持續工作。完整資訊和建議的時程表詳述於 此 issue 中。
- 透過 IPC 發送的值現在使用結構化複製演算法序列化。 #20214
- 由於缺乏維護人員來處理此功能,螢幕外渲染目前已停用。它在 Chromium 升級期間損壞,隨後被停用。 #20772
有關這些變更和未來變更的更多資訊,請參閱計畫中的重大變更頁面。
API 變更
- `app` API 變更
- `BrowserWindow` API 變更
- 更新文件以註明 BrowserWindow 選項 `hasShadow` 在所有平台上都可用 #20038
- 在 BrowserWindow 選項中新增了 `trafficLightPosition` 選項,以允許自訂交通號誌燈按鈕的位置。 #21781
- 為 BrowserWindow 新增了 `accessibleTitle` 選項,用於設定可存取的視窗標題 #19698
- `BrowserWindow.fromWebContents()` 現在可以傳回 null #19983
- 新增了 `BrowserWindow.getMediaSourceId()` 和 `BrowserWindow.moveAbove(mediaSourceId)`。 #18926
- 在 macOS 上新增了對 `will-move` 事件的支援。 #19641
- 記錄了先前未記錄的 `crashReporter.getCrashesDirectory()`。 #20417
- `dialog` API 變更
- `Notification` API 變更
- `session` API 變更
- 更新了關於 `session.setProxy(config)` 和 `session.setCertificateVerifyProc(proc)` 的文件,以註明可選選項。 #19604
- 新增了 `session.downloadURL(url)`,以允許在沒有 BrowserWindow 的情況下觸發下載。 #19889
- 透過 `session.preconnect(options)` 和 `preconnect` 事件新增了對 HTTP preconnect 資源提示的支援。 #18671
- 新增了 `session.addWordToSpellCheckerDictionary`,以允許在字典中新增自訂單字 #21297
- 在 macOS 上的 `shell.moveItemToTrash(fullPath[, deleteOnFail])` 中新增了選項,以指定當 moveItemToTrash 失敗時會發生什麼事。 #19700
- `systemPreferences` API 變更
- 新增了 `nativeTheme.themeSource`,以允許應用程式覆寫 Chromium 和作業系統的主題選擇。 #19960
- TouchBar API 變更
- `tray` API 變更
- `webContents` API 變更
- 新增了 `contents.executeJavaScriptInIsolatedWorld(worldId, scripts[, userGesture])`,以在 webContents API 上公開 executeJavaScriptInIsolatedWorld。 #21190
- 新增了捕獲隱藏 webContents 的方法。 #21679
- 在 `webContents.print([options], [callback])` 中新增了選項,以啟用列印頁面標頭和頁尾的自訂。 #19688
- 新增了透過 `webContents.getAllSharedWorkers()` 和 `webContents.inspectSharedWorkerById(workerId)` 檢查特定共享 worker 的能力。 #20389
- 在 WebContents.printToPDF() 中新增了對 `fitToPageEnabled` 和 `scaleFactor` 選項的支援。 #20436
- 更新了 `webview.printToPDF` 文件,以指出傳回類型現在是 Uint8Array。 #20505
已棄用的 API
以下 API 現在已棄用
- 在下一個主要發行版本中移除之前,已棄用 `BrowserWindow.setVisibleOnAllWorkspaces` 內無效的 `visibleOnFullScreen` 選項。 #21732
- 已棄用 macOS 的 `systemPreferences.getColor(color)` 上的 `alternate-selected-control-text`。 #20611
- 由於 Chromium 移除了此功能,因此已棄用 `webContents`、`webFrame` 和 `<webview> Tag` 上的 `setLayoutZoomLevelLimits`。 #21296
- `app.allowRendererProcessReuse` 的預設值 `false` 現在已棄用。 #21287
- 已棄用 `<webview>.getWebContents()`,因為它依賴於 remote 模組。 #20726
5.x.y 版本終止支援
根據專案的支援政策,Electron 5.x.y 已達到終止支援。建議開發人員和應用程式升級到較新版本的 Electron。
應用程式回饋計畫
我們繼續使用我們的應用程式回饋計畫進行測試。參與此計畫的專案在其應用程式上測試 Electron beta 版本;作為回報,他們發現的新錯誤將在穩定版本中優先處理。如果您想參與或了解更多資訊,請查看我們關於該計畫的部落格文章。
下一步
在短期內,您可以預期團隊將繼續專注於跟上構成 Electron 的主要組件(包括 Chromium、Node 和 V8)的開發。儘管我們謹慎不對發布日期做出承諾,但我們的計畫是每季發布包含這些組件新版本的 Electron 主要版本。暫定的 9.0.0 時程表 列出了 Electron 9 開發生命週期中的關鍵日期。此外,請參閱我們的版本控制文件,以取得有關 Electron 版本控制的更詳細資訊。
有關即將發布的 Electron 版本中計畫的重大變更的資訊,請參閱我們的計畫中的重大變更文件。
`remote` 模組的棄用(從 Electron 9 開始)
由於嚴重的安全性責任,我們開始計畫從 Electron 9 開始棄用 `remote` 模組。您可以閱讀並追蹤 此 issue,其中詳細說明了我們這樣做的原因,並包含建議的棄用時程表。