Electron 6.0.0 穩定版已於昨天正式發布,此版本的更新內容包括升級組件、修復 bug 以及引入新特性等。有意思的是,團隊表示這是首次在同一天同時發布與 Electron 穩定版對應的 Chrome 穩定版(Chrome 76)。
可通過 npm install electron@latest
命令進行升級,或者從下載頁面下載新版本。
Electron 是 GitHub 開發的跨平台桌面應用開發工具,支持使用 Web 技術開發桌面應用,其基於 C++ 開發,GUI 核心來自於 Chromium,而 JavaScript 引擎使用 V8。
Electron 的核心組件是 Chromium、Node.js 與 V8,按照國際慣例它一般都會與這些項目保持同步更新,以提供最新的 JavaScript 特性、性能改進和安全修復。在此版本中這三者分別升級到了:Chromium 76.0.3809.88
、Node.js 12.4.0
、V8 7.6.303.22
。
Chromium 76.0.3809.88
Node.js 12.4.0
V8 7.6.303.22
除了針對組件的更新,此版本還包括對 Electron API 的改進。完整列表請查看發布說明,值得關注的如下:
Electron 6.0 繼續踐行從 5.0 版本開始的現代化方案,以改進對 Promise 的支持。
下面的函數現在會返回 Promises 並支持舊版的基於回調的調用:
contentTracing.getCategories()
#16583
contentTracing.getCategories()
#16583
contentTracing.getTraceBufferUsage()
#16600
contents.executeJavaScript()
#17312
cookies.flushStore()
#16464
cookies.get()
#16464
cookies.remove()
#16464
cookies.set()
#16464
dialog.showCertificateTrustDialog()
#17181
inAppPurchase.getProducts()
#17355
inAppPurchase.purchaseProduct()
#17355
netLog.stopLogging()
#16862
session.clearAuthCache()
#17259
session.clearCache()
#17185
session.clearHostResolverCache()
#17229
session.clearStorageData()
#17249
session.getBlobData()
#17303
session.getCacheSize()
#17185
session.resolveProxy()
#17222
session.setProxy()
#17222
webContents.hasServiceWorker()
#16535
webContents.printToPDF()
#16795
webContents.savePage()
#16742
webFrame.executeJavaScript()
#17312
webFrame.executeJavaScriptInIsolatedWorld()
#17312
webviewTag.executeJavaScript()
#17312
下面的函數現在有兩種形式,分別是同步和基於 Promise 的非同步:
dialog.showMessageBox()
/dialog.showMessageBoxSync()
#17298
dialog.showOpenDialog()
/dialog.showOpenDialogSync()
#16973
dialog.showSaveDialog()
/dialog.showSaveDialogSync()
#17054
下面的函數會返回 Promises:
app.dock.show()
#16904
由於要啟用 hardened runtime(強化運行時) 功能,這會限制可寫可執行內存(writable-executable memory)和載入由不同團隊 ID 簽名的代碼,另外還需要向 Helper 授予專用的代碼簽名許可權。
因此,為了將這些許可權限定在需要它們的的流程類型(process types),Chromium 添加了三個新的 Helper.app 變體:一個用於渲染器 (Electron Helper (Renderer).app
)、一個用於 GPU 進程 (Electron Helper (GPU).app
),還有一個用於插件 (Electron Helper (Plugin).app
)。
使用 electron-osx-sign
對其 Electron App 進行代碼簽名的開發者不會對他們的構建邏輯進行任何變更,如果使用自定義腳本對 App 進行簽名,則應確保三個新的 Help 應用程序已正確簽名。
為了使用這些新的 helper 正確打包應用程序,我們需要使用 electron-packager@14.0.4
或更高版本。如果正在使用 electron-builder
,建議遵循此 issue 來跟蹤對新 helper 的支持。
根據版本支持計劃,Electron 3.x.y 已經到達 EOF 階段,官方不再對其提供支持。
短期來看,團隊會繼續升級 Electron 的核心組件,包括 Chromium、Node 和 V8。至於更新頻率,計劃是每季度發布一次新的主要版本,同時對核心組件進行升級。7.0.0 的暫定發布時間表列出了 Electron 7 開發周期中的關鍵時間節點。如需獲取有關 Electron 版本的更多信息,請查看版本控制文檔。
[admin
]