跳过主内容

Electron 36.0.0

·5 分钟阅读

Electron 36.0.0 已发布!它包括 Chromium 136、V8 13.6 和 Node 22.14.0 的升级。


Electron 团队很高兴地宣布 Electron 36.0.0 发布!您可以通过 npm 安装它,运行 npm install electron@latest,或从我们的发布网站下载。继续阅读以获取此版本的详细信息。

如果您有任何反馈,请通过 BlueskyMastodon 与我们分享,或加入我们的社区 Discord!Bug 和功能请求可以在 Electron 的问题跟踪器中报告。

值得注意的更改

书写工具支持

在 Electron 36 中,您可以在上下文菜单中启用 macOS 系统级功能,如书写工具(拼写和语法)、自动填充和服务菜单项。为此,请将 WebFrameMain 实例传递到 menu.popup()frame 参数中。

import { BrowserWindow, Menu, WebFrameMain } from 'electron';

const currentWindow = BrowserWindow.getFocusedWindow();
const focusedFrame = currentWindow.webContents.focusedFrame;
const menu = Menu.buildFromTemplate([{ label: 'Copy', role: 'copy' }]);

menu.popup({
window: currentWindow,
frame: focusedFrame,
});

堆栈变更

Electron 36 将 Chromium 从 134.0.6998.23 升级到 136.0.7103.48,并将 V8 从 13.5 升级到 13.6

新功能和改进

  • 添加了 BrowserWindow.isSnapped() 以指示给定窗口是否已通过 Windows 上的 Snap 进行排列。 #46226
  • 添加了 WebContents.focusedFrame 以获取焦点帧。
  • 修复了 WebContents.opener 以指定可能的 null 类型。 #45667
  • ffmpeg.dll 添加到延迟加载配置。 #46173(同时在 34, 35 中)
  • 添加了 nativeTheme.shouldUseDarkColorsForSystemIntegratedUI 以区分系统和应用程序主题。 #46598(同时在 35 中)
  • webRequest 过滤器中添加了 excludeUrls 并弃用了 urls 属性中使用空数组。 #44692(同时在 35 中)
  • 通过 menu.popup 中新的 frame 选项,添加了对上下文菜单中 Autofill、Writing Tools 和 Services macOS 级别菜单项的支持。 #46350
  • 添加了对 Linux 上 system-context-menu 的支持。 #46399
  • 改进了 Windows 上 ASAR 完整性检查。 #46537
  • 改进了在 macOS 上不请求缩略图时 desktopCapturer.getSources 的性能。 #46251(同时在 34, 35 中)
  • 移除了使用共享纹理 OSR 时的 240 FPS 限制。 #45669(同时在 35 中)

重大更改

已弃用:NativeImage.getBitmap()

NativeImage.getBitmap() 函数现已弃用,并被记录为 NativeImage.toBitmap() 的别名。这两个函数都返回位图的新分配副本,功能上是等效的。

已弃用:session 上的扩展方法和事件

session.loadExtensionsession.removeExtensionsession.getExtensionsession.getAllExtensions 以及事件 extension-loadedextension-unloadedextension-ready 都已移至可通过 session.extensions 实例属性访问的新 Extensions 对象

已移除:session.clearStorageData(options) 中的 quota 类型 syncable

当调用 session.clearStorageData(options) 时,不再支持 options.quota 类型 syncable,因为它已从上游 Chromium 移除

已弃用:session.clearStorageData(options) 中的 quota 属性

当调用 Session.clearStorageData(options) 时,options.quota 属性已弃用。由于 syncable 类型已被移除,只剩下一种类型——'temporary'——因此指定它是不必要的。

行为变更:在 GNOME 上运行时 GTK 4 成为默认

在上游 更改 后,在 GNOME 上运行时 GTK 4 现已成为默认。

在极少数情况下,这可能会导致某些应用程序或配置 出错,并显示以下消息

Gtk-ERROR **: 11:30:38.382: GTK 2/3 symbols detected. Using GTK 2/3 and GTK 4 in the same process is not supported

受影响的用户可以通过指定 gtk-version 命令行标志来解决此问题

$ electron --gtk-version=3   # or --gtk-version=2

同样可以通过 app.commandLine.appendSwitch 函数完成。

行为变更:app.commandLine

app.commandLine 将把大写开关和参数转换为小写。

app.commandLine 仅用于处理 Chromium 开关(不区分大小写),通过 app.commandLine 传递的开关不会传递给任何子进程。

如果您使用 app.commandLine 解析特定于应用程序的命令行参数,则应通过 process.argv 进行。

对 33.x.y 的支持结束

根据项目的支持策略,Electron 33.x.y 已达到支持终止日期。鼓励开发者和应用程序升级到更新的 Electron 版本。

E36 (25年4月)E37 (25年6月)E38 (25年8月)
36.x.y37.x.y38.x.y
35.x.y36.x.y37.x.y
34.x.y35.x.y36.x.y

下一步计划

在短期内,您可以期待团队继续专注于跟上构成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发。

您可以在此处找到 Electron 的公开时间表

有关未来更改的更多信息,请参阅计划中的重大更改页面。