近期,Electron團隊發佈了Electron 4和Electron 5。爲了與Chromium、V8和Node.js最新更新保持同步,Electron一直保持積極的發佈週期。在新發布的兩個版本中,最值得關注的更新包括對remote和request更好的控制,以及爲使用promise而更新的Electron回調API,後者是一項正在推進中的工作。
Electron爲使用Node.js、Chrome和其他現代Web開發API構建桌面應用程序提供了一種快速穩定的平臺。Electron 4更新了主依賴關係,使用了Chromium 73.0.3683.119、Node.js 12.0.0和V8 7.3.492.27。
大量的Electron API都是先於ECMAScript的標準化promise出現。Electron正在推進將基於回調的Electron API轉換爲使用promise的工作,目前進展良好。該工作涉及大量Electron特性,包括追蹤、cookie。
爲向開發人員提供更多應用安全性方面的控制,Electron 4針對BrowserWindow和webview標籤增加了禁用遠程模塊的功能,即通過renderer進程訪問主進程模塊的機制。
針對應用程序不希望完全禁用遠程模塊但又希望對使用remote.require獲取模塊進行控制的場景,Electron 4增加了對remote.require()/remote.getGlobal()請求的過濾功能。
上述遠程過濾控制在Electron 5得到了進一步擴展。Electron 5通過引入新的遠程事件,支持過濾remote.getBuiltin、remote.getCurrentWindow、remote.getCurrentWebContents和
Electron 4的WebContents實例提供了一個新方法setBackgroundThrottling(allowed),用於在頁面移動到後臺時啓用或禁用對定時器和動畫的throttling。
Electron 5提供了一個新函數process.getProcessMemoryInfo,用於獲取當前進程相關的內存使用情況統計信息。 此外,BrowserWindow支持在單個BrowserWindow中管理多個BrowserViews。
Electron 4和5中的重大變更和錯誤修復的完整列表分別列出在這兩個版本的發行說明中:
- https://github.com/electron/electron/releases/tag/v4.0.0
- https://github.com/electron/electron/releases/tag/v5.0.0
此外,因爲更新了Chromium、V8和Node.js依賴項,Electron也具備了當前很多JavaScript和Web標準的改進特性。值得關注的改進可以在相關的發行說明中找到:
- Chromium 70發行說明;
- Chromium 71發行說明;
- Chromium 72發行說明;
- Chromium 73發行說明;
- Node.js 12發行說明;
- V8 .7 and 7.3發行說明。
正在開發當中的Electron 6將給出大量的改進,具體進展情況可通過Electron發布摘要查看。Electron這一強大平臺將在當前和未來版本中進一步改進,爲使用Web技術構建桌面應用提供支持。
Electron還給出了應用反饋計劃,支持開發人員在測試版發佈週期中提供早期的反饋。Electron團隊感謝Atlassian、Atom、Microsoft Teams、Oculus、OpenFin、Slack、Symphony和VS Code等成員爲3.0版本提供幫助。
Electron基於MIT開源許可。歡迎貢獻者在遵循Electron的貢獻指南和行爲準則的條件下通過Electron的GitHub做出貢獻。
查看英文原文: Electron 4 and 5 Releases Add Security and Modern Web APIs