近期,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 和.getWebContents。
Electron 4 的 WebContents 实例提供了一个新方法 setBackgroundThrottling(allowed),用于在页面移动到后台时启用或禁用对定时器和动画的 throttling。
Electron 5 提供了一个新函数 process.getProcessMemoryInfo,用于获取当前进程相关的内存使用情况统计信息。 此外,BrowserWindow 支持在单个 BrowserWindow 中管理多个 BrowserViews。
Electron 4 和 5 中的重大变更和错误修复的完整列表分别列出在这两个版本的发行说明中:
此外,因为更新了 Chromium、V8 和 Node.js 依赖项,Electron 也具备了当前很多 JavaScript 和 Web 标准的改进特性。值得关注的改进可以在相关的发行说明中找到:
正在开发当中的 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
评论