← 文章 / 编程开发
electronjs 7小时前 · 2026-09-06 22:18:52 · 4 阅读

Electron 43 发布

Electron 43 已发布!本次版本升级至 Chromium 150.0.7871.46、V8 15.0 和 Node v24.17.0。


Electron 团队很高兴宣布 Electron 43 正式发布!你可以通过 npm install electron@latest 使用 npm 安装,或从我们的 发布页面 下载。继续阅读以了解本次版本的详细信息。

如有任何反馈,欢迎通过 BlueskyMastodon 联系我们,或加入我们的社区 Discord!Bug 和问题可在 Electron 的 Issue 追踪器 中提交。

重要变更

应用启动性能优化

Electron 43 带来多项应用启动性能改进:主进程现基于嵌入式的 Node.js 启动快照运行,框架包和预加载脚本以编译后的 V8 字节码形式缓存,沙盒渲染器的启动数据在导航前预先推送而非通过阻塞 IPC 获取。此外,预加载脚本的堆栈追踪现在能正确显示文件路径和行号。 #51792

Linux 下无边框窗口默认圆角

在 Linux 上,无边框窗口现默认启用圆角,与 macOS 和 Windows 的行为保持一致。所有平台均可通过在窗口配置中设置 roundedCorners: false 来禁用圆角效果。 #52111

文件下载默认打开至下载文件夹

文件下载现默认在用户的「下载」文件夹中打开;若该文件夹不存在,则回退至用户主目录。 #49868

macOS 通知管理新 API

Electron 43 在 macOS 上新增了 Notification.remove()Notification.removeAll()Notification.removeGroup() 三个静态方法,让开发者能更精细地控制已发出的通知。配合已有的 Notification.getHistory() API,现在可以完整管理通知中心中通知的生命周期。#51690

技术栈变更

Electron 43 将 Chromium 从 148.0.7778.96 升级到 150.0.7871.46,Node.js 从 v24.15.0 升级到 v24.17.0,V8 从 14.8 升级到 15.0

新功能与改进

  • WebContents 新增了 Clone 方法。#49959
  • 渲染进程发生 OOM 崩溃时,崩溃报告中现在会包含 JS 堆栈信息。#50043
  • app.getApplicationInfoForProtocol() 新增了 Linux 支持。#51297
  • 为 macOS 新增了 Notification.remove()Notification.removeAll()Notification.removeGroup() 静态方法。#51690
  • 为 macOS 新增了 Notification.getHistory(),允许开发者恢复通知中心中仍然存在的所有已发出通知。#50325
  • MenuItem 的构造参数和属性中新增了 accessibilityLabel,用于定义对屏幕阅读器友好的标签。#50240
  • protocol.registerSchemesAsPrivileged() 新增 allowExtensions 权限,以在自定义协议中支持 Chrome 扩展。#49951
  • 新增 app.configureWebAuthn() 以在 macOS 上为 WebAuthn 启用 Touch ID 平台认证,并新增 select-webauthn-account session 事件用于在多个可发现凭据之间进行选择。#51255
  • 新增 globalShortcut.setSuspended()globalShortcut.isSuspended() 方法,支持临时挂起和恢复全局快捷键处理。#50425
  • macOS 的 Notification 构造函数新增 idgroupId 选项。id 允许使用自定义标识符,groupId 可在通知中心中将通知按组视觉聚合。#50097
  • Windows 通知新增 idgroupIdgroupTitle 支持。#50328
  • macOS 新增 nativeTheme.shouldDifferentiateWithoutColor#49912
  • 新增 nv12 OSR 像素格式支持,面向专业用途。#49799
  • 新增 view.setBackgroundBlur()#51076
  • 新增 webContents.copyVideoFrameAt(x, y)webContents.saveVideoFrameAs(x, y) 方法。#48149
  • net 模块的请求新增对 utility process 中 session 的支持。#51279
  • 通过 contentTracing.enableHeapProfiling() 新增堆内存分析支持。#50826
  • 新增基于 nv16 像素格式的共享纹理导入支持。#50728
    • Windows 通知新增支持 urgency 选项。#50225
    • yarn install 新增代理支持。#50322
    • 允许 Electron 透传 Node.js 的 --experimental-inspector-network-resource 标志。#49689
    • macOS 构建启用 ThinLTO。#51819
    • Release 构建为 V8 内置函数启用基于配置文件的优化(PGO),提升 Array、String、RegExp 等 JavaScript 内置函数的性能。#50416
    • 改善应用启动性能:主进程改为从内嵌 Node.js 启动快照启动,框架包和 preload 脚本以编译后的 V8 字节码缓存,沙箱渲染进程启动数据改为在导航前预推送,而非通过阻塞 IPC 获取。#51792
    • Linux 和 Windows release 构建为主 Electron 二进制启用 ThinLTO 链接时优化,提升性能。#51820
    • Linux 上 app.getApplicationNameForProtocol() 性能提升。#51251
    • Linux 上 app.isDefaultProtocolClient()app.setAsDefaultProtocolClient() 性能提升。#51316
    • webRequest 头转换及若干其他 gin converter 热路径性能提升。#51608
    • 原生事件派发、IPC 分发和选项字典解析性能提升。#51615

    破坏性变更

    行为变更:文件下载现在默认在「下载」文件夹中打开

    文件下载完成后,默认会在用户的 Downloads 文件夹中打开(如果该文件夹不存在,则使用 Home 目录)。#49868

    行为变更:nativeImage 的像素值被规范化为 SRGB

    如果传给 nativeImage 的图片带有色彩配置文件,其像素值现在会被规范化为 SRGB。这样可以保证两幅在应用色彩空间后视觉上完全相同的图片,转换成 nativeImage 时能得到相近的像素值。#51565

    行为变更:Linux 上的无边框窗口默认带圆角

    在 Linux 上,无边框窗口现在默认显示圆角,与 macOS 和 Windows 的行为保持一致。如需在所有平台上禁用圆角,可以在窗口上设置 roundedCorners: false#52111

    行为变更:WCO 在 Linux 上遵循原生标题栏布局

    带 Window Controls Overlay(WCO)的无边框窗口在 Linux 上现在会采用原生标题栏布局和用户设置。例如,在 RTL 系统上控制按钮会显示在窗口框架左侧,而在 GNOME 上默认只显示关闭按钮。由于用户的桌面环境和配置不同,按钮可能出现在框架的左侧、右侧或两侧都有。为兼容所有情况,建议使用 CSS 变量 env(titlebar-area-x, 0px)env(titlebar-area-width, 100%),把应用的标题栏内容限制在安全区域内。#52018

    行为变更:chrome.scripting 的 CSS 注入匹配更多回退 frame

    使用 chrome.scripting.insertCSS()chrome.scripting.removeCSS() 的扩展程序现在会在 Electron 无法直接匹配页面 URL(如 about:blankdata: 的 frame)时,遵循 Chrome 的行为。若扩展程序有权访问创建该 frame 的页面,CSS 现在也可以插入或移除这些 fallback frame。依赖 Electron 跳过这些 frame 的应用或扩展应缩小注入目标、frame ID 或匹配模式。#51376

    已移除:Linux 上 dialog API 中的 showHiddenFiles

    dialog API 在 Linux 上已移除 showHiddenFiles 支持。#51880

    40.x.y 版本停止支持

    根据项目的 支持政策,Electron 40.x.y 已停止支持。建议开发者和应用升级到更新的 Electron 版本。查看 https://releases.electronjs.org/schedule 了解 Electron 受支持版本的时间线。

    32 位平台支持结束

    Electron 43.x.y 将是最后一批提供 32 位预构建二进制文件的 Electron 版本系列,涵盖 Windows x86(win32-ia32)和 Linux ARM(linux-armv7l)。v43 系列将于 2027 年 1 月结束生命周期,届时这些 32 位平台将不再受支持。

    接下来

    短期内,团队将继续致力于紧跟 Electron 核心组件——包括 Chromium、Node 和 V8——的开发进度。

    你可以在这里找到 Electron 的公开时间线。

    有关未来变更的更多信息,请参见计划中的破坏性变更页面。

原始来源: electronjs

评论 (0)