分享到: 分享到QQ  分享到Twitter

作者: BigLoser    访问次数: 598 创建时间: 2020-05-07 18:37:09 更新时间: 2024-04-27 11:18:14

最近发布的 Electron 8.0、8.1 和 8.2 做出了重大改进。这些版本的亮点包括:提升了主进程和渲染进程之间通信的性能、对调用栈更好的控制、在打包的 Electron 应用程序中添加了 HTTP 解析选项,以及用于提升会话 Cookie 存储安全性的新标记 useSessionCookies。

Electron 8.0 修改了 package.json 主脚本和页面脚本之间的进程间通信。V8 的序列化结构克隆算法减少了进程间通信所需的时间,而且不会影响两个进程之间的消息延迟。

Electron 8.0 还增加了“–enable-api-filter-logging”命令行开关,以便更好地控制调用栈。这个命令可以开启 desktopCapturer remote API 的调用栈日志。

Electron 8.0 还增加了一个 timeoutType 属性,可以用来控制 Linux 和 Windows 系统通知的持续时间。新 API session.downloadURL() 取代了 webContents.downloadURL(),在通过页面 origin 来触发下载时可避免做安全检查。

在以前,开发者可以在 macOS 浏览器窗口标题栏上自定义设定红绿灯的位置。在 Electron 8.1,开发者可以通过一对 API 动态地设置这个属性。

Electron 8多个版本发布:引入调用栈日志和可选的HTTP解析选项

Electron 在内部使用了 Node.js,而在 Node.js 11.5 中,默认的 HTTP 解析器被替换掉了,影响到了一些使用场景,并导致 HTTP 头部解析和有效性验证更为严格。Electron 8.1 引入了“–http-parser=parser”选项,开发者可以切换成其他 HTTP 解析器。

在之前的 Electron 版本中,audioMuted 属性对 WebViews 不起作用。webview.audioMuted = true 本来是用来关闭 WebViews 的声音的,但却触发了如下所示的警告。Electron 8.1 解决了这个问题。

Electron 8多个版本发布:引入调用栈日志和可选的HTTP解析选项

在最近发布的 Electron 版本中,用于发送 HTTP/HTTPS 请求的 net 模块被设计成可以从主进程发送 fetch 风格的请求。不过这个模块缺乏安全性支持,不能像 fetch 请求那样使用 Cookie。这个局限性会让黑客和不怀好意的人直接利用 Cookie 头部里的信息。

Electron 8.2 为网络请求引入了一个新的 useSessionCookies 标记,可以像 fetch 请求那样安全地使用会话 Cookie 存储。这个新标志利用了 Chromium 的内部 Cookie 存储逻辑。

Electron 8.2 还为 Webpreferences 引入了 disableDialog 选项,可以像 safeDialogs 选项那样禁用对话框,并能够完全覆盖 safeDialogs 的行为。

Electron 8多个版本发布:引入调用栈日志和可选的HTTP解析选项

Electron 8.2 修复了在进程间发送数组可能会发生崩溃的问题。该版本还修复了另一个问题,即修改全局 Object prototype 可能会导致 Electron 内部逻辑抛出错误。

开发者对调用栈日志记录和可替代 HTTP 解析器给予了积极的响应,不过仍然存在一些问题。setBackground 属性在 Electron 8.x 中不起作用,而且更新到最新版本后,页面渲染性能显著下降。由于 remote 模块的安全性问题,开发者希望默认情况下禁用该模块。在未来,Electron 计划移除进程模型补丁,以便获得更好的性能、安全性和可维护性。

Electron 是一个开源框架,利用了 Node.js 和 Chromium,旨在使用 JavaScript、HTML 和 CSS 来构建跨平台的桌面应用程。Electron 采用 MIT 许可。开发者可加入 Electron 的 GitHub 代码库成为贡献者,贡献者需要遵守 Electron 的贡献者指南行为准则

原文链接

Electron 8 Releases Introduce Caller Stack Logging, HTTP Parsing Alternative

季度最有价值文章

月度最有价值文章

投票统计

是否原创: 0 %

0 % Complete (success)

是否有价值: 0 %

0% Complete

是否有素质: 0 %

0% Complete (warning)

是否合法: 0 %

0% Complete

   群组工具

   外部链接