跳转到主内容

47 篇博文 含有标签「发行版」

查看所有标签

Electron 29.0.0

· 阅读时间:约 5 分钟

Electron 29.0.0 已发布! 它包括升级 Chromium 122.0.6261.39,和 V8 12.2 以及 Node.js 20.9.2


Electron 团队很高兴发布了 Electron 29.0.0 ! 你可以通过 npm install electron@latest 或者从我们的发布网站下载它。 继续阅读此版本的详细信息。

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

重要变化

  • 添加了一个新的顶级 webUtils 模块,这是一个渲染进程模块,提供与 Web API 对象交互的实用程序层。 模块中第一个可用的 API 是 webUtils.getPathForFile。 Electron 以前的 File.path 扩充偏离了网页标准;这个新的 API 更符合当前的 web 标准行为。

架构(Stack)更新

Electron 29 将 Chromium 从 120.0.6099.56 升级到 122..0.661.39, Node 从 18.18.2 升级到 20.9.0,V8 从 12.0 升级到 12.2

新特性

  • 添加了新的 webUtils 模块,一个与 Web API 对象交互的实用程序层,替换 File.path 扩充。 #38776
  • 添加 net 模块到 utility process#40890
  • 添加了一个新的 Electron FusegrantFileProtocolExtravilegesfile:// 协议使其具有更安全和更严格的行为,与 Chromium 相匹配。 #40372
  • protocol.registerSchemesAsseged 中添加了一个选项,以允许自定义协议开启 V8 code cache。 #40544
  • 迁移 app.{set|get}LoginItemSettings(settings) 以便在 MacOS 13.0+ 上使用 Apple 推荐的新底层框架。 #37244

重大更改

行为改变:ipcRenderer 不能再通过 contextBridge 发送

现在通过 contextBridge 传送整个 ipcRenderer 模块作为对象,会在 bridge 的接收方收到一个 空对象。 此更改是为了消除/减轻一种安全隐患。 你不应该直接暴露 bridge 上的 ipcRenderer 或它的方法。 相反,应该提供一个像下面这样的安全包装器:

contextBridge.exposeInMainWorld('app', {
onEvent: (cb) => ipcRenderer.on('foo', (e, ...args) => cb(args)),
});

移除:app 上的 render-process-crashed 事件

The renderer-process-crashed event on app has been removed. 改用新的 render-process-gone 事件。

// 移除
app.on('renderer-process-crashed', (event, webContents, killed) => {
/* ... */
});

// 替换为
app.on('render-process-gone', (event, webContents, details) => {
/* ... */
});

移除:WebContents<webview> 上的 crashed 事件

WebContents<webview> 上的 crashed 事件已被移除。 改用新的 render-process-gone 事件。

// 移除
win.webContents.on('crashed', (event, killed) => {
/* ... */
});
webview.addEventListener('crashed', (event) => {
/* ... */
});

// 替换为
win.webContents.on('render-process-gone', (event, details) => {
/* ... */
});
webview.addEventListener('render-process-gone', (event) => {
/* ... */
});

Removed: gpu-process-crashed event on app

app 上的 gpu-process-crashed 事件已被移除。 使用新的 child-process-gone 事件代替。

// 移除
app.on('gpu-process-crashed', (event, killed) => {
/* ... */
});

// 替换为
app.on('child-process-gone', (event, details) => {
/* ... */
});

终止对 26.x.y 的支持

根据项目的支持政策,Electron 26.x.y 已经达到了支持的终点。 我们鼓励开发者将应用程序升级到更新的 Electron 版本。

E29(24 年 2 月)E30(24 年 4 月)E31 (24 年 6 月)
29.x.y30.x.y31.x.y
28.x.y29.x.y30.x.y
27.x.y28.x.y29.x.y

接下来

您是否知道 Electron 最近添加了社区征求意见 (RFC) 流程? 如果您想在框架中添加一项功能,RFC 可以成为您与维护者就功能设计展开对话的有用工具。 您还可以查看 PR 中正在讨论的即将发生的更改。 若要了解更多信息,请直接查看我们的 introduction electron/rfcs 博客文章,或查看 electron/rfcs 版本库的 README。

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

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

有关这些和未来变化的更多信息可在计划的突破性变化页面找到。

Electron 28.0.0

· 阅读时间:约 4 分钟

Electron 28.0.0 已发布! 它包括升级 Chromium 120.0.6099.56 和 V8 12.0 以及 Node.js 18.18.2


Electron 团队很高兴发布了 Electron 28.0.0 ! 你可以通过 npm install electron@latest 或者从我们的发布网站下载它。 继续阅读此版本的详细信息。

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

重要变化

  • 实现了对 ECMAScript 模块或 ESM 的支持(什么是 ECMAScript 模块?) 在这里了解更多信息. 这包括在 Electron 本身中支持 ESM,以及诸如 UtilityProcess API 入口点等方面。 详情见我们的 ESM 文档 以获取更多详细信息。
  • 除了在 Electron 本身中启用 ESM 支持外,Electron Forge 还支持使用 ESM 来打包、构建和开发 Electron 应用程序。 您可以在 Forge v7.0.0 或更高版本中找到这种支持。

架构(Stack)更新

新特性

  • 启用 ESM 支持。 #37535
  • UtilityProcess API 添加了 ESM 入口点。 #40047
  • 添加了几个属性到 display 对象中,包括 detectedmaximumCursorSizenativeOrigin#40554
  • 新增对 Linux 上 ELECTRON_OZONE_PLATFORM_HINT 环境变量的支持。 #39792

重大更改

行为改变:在宿主 BrowserWindow 中将 WebContents.backgroundThrottling 设置为 false 将影响所有的 WebContents

WebContents.backgroundThrottling 设置为 false 将禁用由 BrowserWindow 显示的所有 WebContents 的帧节流。

移除: BrowserWindow.setTrafficLightPosition(position)

已经移除了 BrowserWindow.setTrafficLightPosition(position) 方法,应该改用 BrowserWindow.setWindowButtonPosition(position)方法。新的方法接受 null 作为替换 { x: 0, y: 0 } 的参数,以将位置重置为系统默认值。

// 在 Electron 28 移除
win.setTrafficLightPosition({ x: 10, y: 10 });
win.setTrafficLightPosition({ x: 0, y: 0 });

// 代替为
win.setWindowButtonPosition({ x: 10, y: 10 });
win.setWindowButtonPosition(null);

移除: BrowserWindow.getTrafficLightPosition()

已经删除了 BrowserWindow.getTrafficLightPosition(),应该使用 BrowserWindow.getWindowButtonPosition() API 代替,当没有自定义位置时,它返回 null 而不是 { x: 0, y: 0 }

// 在 Electron 28 移除
const pos = win.getTrafficLightPosition();
if (pos.x === 0 && pos.y === 0) {
// 没有自定义位置
}

// 代替为
const ret = win.getWindowButtonPosition();
if (ret === null) {
// 没有自定义位置
}

移除: ipcRenderer.sendTo()

ipcRenderer.sendTo() API 已经被删除。 应该用渲染进程之间的 MessageChannel 来替代它

IpcRendererEventsenderIdsenderIsMainFrame 属性也已经被移除。

移除: app.runningUnderRosettaTranslation

app.runningUnderRosettaTranslation 属性已经被移除。 使用 app.runningUnderARM64Translation 代替.

// 移除
console.log(app.runningUnderRosettaTranslation);
// 代替为
console.log(app.runningUnderARM64Translation);

终止对 25.x.y 的支持

根据项目的支持政策,Electron 25.x.y 已经达到了支持的终点。 我们鼓励开发者将应用程序升级到更新的 Electron 版本。

E28(23 年 12 月)E29(24 年 2 月)E30(24 年 4 月)
28.x.y29.x.y30.x.y
27.x.y28.x.y29.x.y
26.x.y27.x.y28.x.y

接下来

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

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

有关这些和未来变化的更多信息可在计划的突破性变化页面找到。

Electron 27.0.0

· 阅读时间:约 4 分钟

Electron 27.0.0 已发布! 此次升级中包含 Chromium 118.0.5993.32,V8 11.8,和 Node.js 18.17.1


Electron 团队很高兴发布了 Electron 27.0.0! You can install it with npm via npm install electron@latest or download it from our releases website. 继续阅读此版本的详细信息。

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

Electron 26.0.0

· 阅读时间:约 3 分钟

Electron 26.0.0 已发布! 此次升级中包含 Chromium 116.0.5845.62,V8 11.2,和 Node.js 18.16.1 。 请阅读下文了解更多详情!


Electron 团队很高兴发布了 Electron 26.0.0 ! You can install it with npm via npm install electron@latest or download it from our releases website. 继续阅读此版本的详细信息。

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

Electron 25.0.0

· 阅读时间:约 5 分钟

Electron 25.0.0 已发布! 此次升级中包含 Chromium 114,V8 11.4,和 Node.js 18.15.0 。 请阅读下文了解更多详情!


Electron 团队很高兴发布了 Electron 25.0.0 ! You can install it with npm via npm install electron@latest or download it from our releases website. 继续阅读此版本的详细信息。

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

22.x.y 持续支持

正如再见 Windows 7/8/8.1 所述,Electron 22(Chromium 108)的计划寿命终止日期将从 2023 年 5 月 30 日延长至 2023 年 10 月 10 日。 Electron 团队将会继续向 Electron 22 提供本计划中的任何安全修复,直到 2023 年 10 月 10 日。 十月 支持日期遵循 Chromium 和 Microsoft 的延长支持日期。 10 月 11 日,Electron 团队将支持回退到最新的三个稳定主要版本,将不再支持 Windows 7/8/8.1。

E25(23 年 5 月)E26(23 年 8月)E27(23 年 10 月)
25.x.y26.x.y27.x.y
24.x.y25.x.y26.x.y
23.x.y24.x.y25.x.y
22.x.y22.x.y--

重要变化

  • 使用 Chromium 的网络栈在 Electron 的 net 模块中实现了 net.fetch。 和 Node 的 fetch() 不同的是后者使用了 Node.js 的 HTTP 栈。 请参阅 #36733#36606
  • 添加了 protocol.handle,它取代并弃用了 protocol.{register,intercept}{String,Buffer,Stream,Http,File}Protocol#36674
  • 增加了对 Electron 22 的支持,以配合 Chromium 和 Microsoft 的 Windows 7/8/8.1 弃用计划。 请参阅本博文末尾的更多详细信息。

Electron 24.0.0

· 阅读时间:约 4 分钟

Electron 24.0.0 已发布! 此次升级中包含 Chromium 112.0.5615.49,V8 11.2,和 Node.js 18.14.0 。 请阅读下文了解更多详情!


Electron 团队很高兴发布了 Electron 24.0.0 ! You can install it with npm via npm install electron@latest or download it from our releases website. 继续阅读此版本的详细信息。

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

Electron 23.0.0

· 阅读时间:约 4 分钟

Electron 23.0.0 已发布! 此次升级中包含 Chromium 110, V8 11.0, 和 Node.js 18.12.1。 此外,取消了对Windows 7/8.1的支持。 请阅读下文了解更多详情!


Electron 团队很高兴发布了 Electron 23.0.0! You can install it with npm via npm install electron@latest or download it from our releases website. 继续阅读此版本的详细信息。

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

放弃对 Windows 7/8.1 支持

Electron 23 不再支持 Windows 7/8.1。 Electron 遵循计划中的 Chromium 弃用政策,该政策将 在 Chromium 109 中弃用 Windows 7/8/8.1 支持(在此处阅读更多信息)

Electron 22.0.0

· 阅读时间:约 6 分钟

Electron 22.0.0 已发布! 它包括了一个新的实用进程 API、对 Windows 7/8/8.1 支持的更新,以及对 Chromium 108、V8 10.8 和 Node.js 16.17.1 的升级。 请阅读下文了解更多详情!


Electron 团队很高兴发布了 Electron 22.0.0! You can install it with npm via npm install electron@latest or download it from our releases website. 继续阅读此版本的详细信息。

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

Windows 7/8/8.1 支持更新

info

2023/02/16: An update on Windows Server 2012 support

Last month, Google announced that Chrome 109 would continue to receive critical security fixes for Windows Server 2012 and Windows Server 2012 R2 until October 10, 2023. In accordance, Electron 22's (Chromium 108) planned end of life date will be extended from May 30, 2023 to October 10, 2023. The Electron team will continue to backport any security fixes that are part of this program to Electron 22 until October 10, 2023.

Note that we will not make additional security fixes for Windows 7/8/8.1. Also, Electron 23 (Chromium 110) will only function on Windows 10 and above as previously announced.

Electron 22 将是最后一个支持 Windows 7/8/8.1 的 Electron 主要版本。 Electron 遵循计划中的 Chromium 弃用政策,该政策将 [在 Chromium 109 中弃用 Windows 7/8/8.1 支持(在此处阅读更多信息)](https://support.google.com/chrome/thread/185534985/sunsetting-support-for-windows-7-8-8-1-in-early -2023?hl=en)。

Electron 23 及以后的主要版本将不支持 Windows 7/8/8.1。

重要变化

UtilityProcess API #36089

新的 UtilityProcess 主进程模块允许创建仅集成 Node.js 的轻量级 Chromium 子进程,同时还允许使用 MessageChannel 与沙盒渲染器进行通信。 该API是基于Node.js的 child_process.fork 设计的,以允许更容易的过渡,一个主要的区别是,入口点 modulePath 必须来自打包的应用程序内,以允许只加载受信任的脚本。 此外,该模块默认情况下会阻止与渲染器建立通信通道,以保证主进程是应用程序中唯一受信任进程。

您可以在此处阅读有关我们文档中的新 UtilityProcess API 的更多信息。

其他显著的更改

  • 添加了对 Linux 和 Windows 上的 Web Bluetooth pin 配对的支持。 #35416
  • 添加了 LoadBrowserProcessSpecificV8Snapshot 作为新的 Fuse(引信),让主/浏览器进程从位于 browser_v8_context_snapshot.bin的文件加载其 v8 快照。 任何其他进程将使用与之相同的路径。 #35266
  • 添加了 WebContents.opener 以访问窗口打开器和 webContents.fromFrame(frame) 以获取与 WebFrameMain 实例对应的 WebContents。 #35140
  • 通过新的会话处理程序 ses.setDisplayMediaRequestHandler 添加了对 navigator.mediaDevices.getDisplayMedia 的支持。 #30702

Electron 21.0.0

· 阅读时间:约 3 分钟

Electron 21.0.0 已发布! 此次升级中包含 Chromium 106, V8 10.6, 和 Node.js 16.16.0。 请阅读下文了解更多详情!


Electron 团队很高兴发布了 Electron 21.0.0! You can install it with npm via npm install electron@latest or download it from our releases website. 继续阅读此版本的详细信息。

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

Electron 20.0.0

· 阅读时间:约 4 分钟

Electron 20.0.0 已发布! 它包括升级到 Chromium 104, V8 10.4, 和 Node.js 16.15.0。 请阅读下文了解更多详情!


Electron 团队很高兴发布了 Electron 20.0.0! You can install it with npm via npm install electron@latest or download it from our releases website. 继续阅读有关此版本的详细信息,并请分享您的任何反馈!