跨平台桌面应用开发工具 Electron 发布 14.0.0

Electron 14.0.0 现已发布,主要更新内容如下:

Stack Upgrades

Breaking Changes

  • 子窗口不再从其父窗口继承 BrowserWindow 构造选项。
  • 不推荐使用的worldSafeExecuteJavaScript选项已从webPreferences中移除。
  • new-windowdid-create-windowWebContents 事件中删除了已被废弃的additionalFeatures属性。
  • 删除了已废弃的app.allowRendererProcessReuse和 BrowserWindowaffinity选项。

Features

  • Additions
    • 添加BrowserWindow.isFocusable()用于确定窗口是否可聚焦。
    • 添加了WebFrameMain.visibilityState实例属性。
    • 在传递给用setWindowOpenHandler注册的窗口打开处理程序的细节对象中添加了disposition,referrerpostBody
    • 添加了@electron/remote使用的process.contextId
    • 在 Electron Fuse 后面添加了实验性 cookie 加密支持。
    • webRequestlistener details 添加了缺失的resourceType转换:fontpingcspReportmediawebSocket
    • 添加了新的session.storagePathAPI 以获取磁盘上会话特定数据的路径。
    • 添加webContents.fromDevToolsTargetId(targetId)以从关联的 Chrome DevTools 协议 TargetID 中查找 WebContents 实例。
    • 在 macOS 上增加了对 Windows Control Overlay 的支持。
    • 在 Windows 上添加了对 Windows Control Overlay 的支持。
    • 添加了对调试 URL 的支持,如chrome://gpucrash
    • 添加了对将 Chromium 日志记录到带有. 此外,现在可以通过在第一个 JS 滴答期间附加命令行开关来启用 JavaScript 的日志记录。增加了对 Chromium 日志的支持,即用--log-file=.../path/to/file.log来引导 Chromium 的日志。另外,现在也可以通过在第一个 JS tick 期间添加命令行开关来启用 JavaScript 的日志记录。
    • 在节点加密中添加了对 des-ede3 密码的支持。
    • 增加了ContextBridgeMutability功能,在暴露值时跳过了 Context Bridge DeepFreeze 和 SetReadOnlyNonConfigurable。
  • Improvements
    • 改进了通过 contextBridge 来回发送的函数的性能特征。
    • 改进了napi_threadsafe_function的性能。
  • Removed/Deprecated
    • uploadToServer为false时,crashReporter.startsubmitURL选项不再是一个必要的参数。
  • Fixes
    • 允许 Node.js 在调用uv_run()之前使用显式微任务策略管理微任务队列。
    • 允许从自定义协议和 asar 包加载 source maps。
    • 具有指定背景颜色或透明度的子窗口现在可以按预期工作。
    • systemPreferences.getAccentColor()getSystemColorgetColor返回的颜色现在被正确地转换成设备的色彩空间。之前的颜色会有细微的不正确。
    • Electron Fuses 现在跨平台的顺序一致。
    • 修复了fs.promises.readFile在向路径参数传递一个FileHandle时会出现不恰当的错误的问题。
    • 修复了当通过需要认证的代理连接已注册 WebRequest 监听器的应用程序时,CORS 预检请求总是被取消。
    • 更多更新说明......

终止对 11.xy 的支持

根据项目的支持政策,Electron 11.xy 已终止支持。鼓励开发人员和应用程序升级到较新版本的 Electron。

下一节:Facebook 官方宣布开源其用于 Web 规模服务的缓存引擎 CacheLib。