Electron 5.0.0
Electron 團隊很高興宣布 Electron 5.0.0 的發布!您可以使用 npm 透過 npm install electron@latest
安裝它,或從我們的發行頁面下載 tarball。此版本包含許多升級、修復和新功能。我們迫不及待想看看您使用它們建置什麼!繼續閱讀以了解有關此版本的詳細資訊,並請分享您有的任何意見回饋!
新功能?
Electron 的許多功能是由 Chromium、Node.js 和 V8 的核心元件提供的。Electron 與這些專案保持同步更新,以便為我們的使用者提供新的 JavaScript 功能、效能改進和安全性修復。這些套件在 Electron 5 中都有主要版本更新
- Chromium
73.0.3683.119
- Node.js
12.0.0
- V8
7.3.492.27
。
Electron 5 還包括對 Electron 特定 API 的改進。以下是主要變更的摘要;如需完整的變更清單,請查看 Electron v5.0.0 發行說明。
Promise 化
Electron 5 繼續 Promise 化倡議,將 Electron 基於回呼的 API 轉換為使用 Promise。這些 API 已針對 Electron 5 進行轉換
app.getFileIcon
contentTracing.getCategories
contentTracing.startRecording
contentTracing.stopRecording
debugger.sendCommand
- Cookies API
shell.openExternal
webContents.loadFile
webContents.loadURL
webContents.zoomLevel
webContents.zoomFactor
win.capturePage
macOS 的系統顏色存取權
這些函式已變更或新增至 systemPreferences
,以存取 macOS 系統的顏色
systemPreferences.getAccentColor
systemPreferences.getColor
systemPreferences.getSystemColor
程序記憶體資訊
已新增函式 process.getProcessMemoryInfo
,以取得有關目前程序的記憶體使用統計資訊。
遠端 API 的額外篩選
為了提高 remote
API 的安全性,已新增遠端事件,以便可以篩選 remote.getBuiltin
、remote.getCurrentWindow
、remote.getCurrentWebContents
和 <webview>.getWebContents
。
BrowserWindow 上的多個 BrowserView
BrowserWindow 現在支援在同一個 BrowserWindow 中管理多個 BrowserView。
重大變更
封裝應用程式的預設值
封裝的應用程式現在的行為會與預設應用程式相同:除非應用程式有應用程式選單,否則會建立預設應用程式選單,並且除非應用程式處理 window-all-closed
事件,否則會自動處理該事件。
混合沙盒
混合沙盒模式現在預設為啟用。以 sandbox: true
啟動的渲染器現在實際上會進行沙盒處理,而先前僅在也啟用混合沙盒模式時才會進行沙盒處理。
安全性改進
nodeIntegration
和 webviewTag
的預設值現在為 false
,以提高安全性。
拼字檢查器現在是非同步的
拼字檢查 API 已變更為提供非同步結果。
棄用
以下 API 在 Electron 5.0.0 中已新增為已棄用,並計畫在 6.0.0 中移除
適用於 arm 和 arm64 的 Mksnapshot 二進位檔
適用於 arm 和 arm64 的 mksnapshot 原生二進位檔已棄用,並將在 6.0.0 中移除。可以使用 x64 二進位檔為 arm 和 arm64 建立快照。
WebContents 上的 ServiceWorker API
已棄用 WebContents 上的 ServiceWorker API,以為移除它們做準備。
webContents.hasServiceWorker
webContents.unregisterServiceWorker
具有沙盒化 webContents 的自動模組
為了提高安全性,以下模組已棄用,無法直接透過 require
使用,而是需要透過沙盒化 webcontents 中的 remote.require
包含
electron.screen
child_process
fs
os
path
webFrame 隔離世界 API
webFrame.setIsolatedWorldContentSecurityPolicy
、webFrame.setIsolatedWorldHumanReadableName
、webFrame.setIsolatedWorldSecurityOrigin
已棄用,改用 webFrame.setIsolatedWorldInfo
。
混合沙盒
enableMixedSandbox
和 --enable-mixed-sandbox
命令列開關仍然存在以實現相容性,但已棄用且無效。
終止對 2.0.x 的支援
根據我們的支援的版本政策,2.0.x 已達到生命週期終止。
應用程式回饋計畫
我們繼續使用我們的應用程式回饋計畫進行測試。參與此計畫的專案在其應用程式上測試 Electron beta 版;作為回報,他們發現的新錯誤會在穩定版本中優先處理。如果您想參與或了解更多資訊,請查看我們關於該計畫的部落格文章。
下一步?
在短期內,您可以預期團隊將繼續專注於跟上構成 Electron 的主要元件(包括 Chromium、Node 和 V8)的開發。儘管我們謹慎不對發行日期做出承諾,但我們的計畫是每季左右發行包含這些元件新版本的 Electron 主要版本。暫定的 6.0.0 時程表繪製了 Electron 6 開發生命週期中的關鍵日期。此外,請參閱我們的版本控制文件,以取得有關 Electron 中版本控制的更詳細資訊。
有關即將推出的 Electron 版本中計畫的重大變更的資訊,請參閱我們的計畫重大變更文件。