Skip to main content

Electron 2.0.0

· 8 min read

经过四个多月的开发、八个测试版本以及来自众多应用分阶段发布的全球范围测试,Electron 2.0.0 现已在 electronjs.org 上发布。

🌐 After more than four months of development, eight beta releases, and worldwide testing from many apps' staged rollouts, the release of Electron 2.0.0 is now available from electronjs.org.


发布进程

🌐 Release Process

从 2.0.0 版本开始,Electron 的发布将遵循语义化版本控制。这意味着主版本的更新频率会更高,通常会包含 Chromium 的重大更新。补丁版本应该更稳定,因为它们只包含高优先级的错误修复。

🌐 Starting with 2.0.0, Electron's releases will follow semantic versioning. This means the major version will bump more often and will usually be a major update to Chromium. Patch releases should be more stable because they will contain only high-priority bug fixes.

Electron 2.0.0 还改进了在重大版本发布前 Electron 的稳定性。几个大型 Electron 应用已经在分阶段推出中包含了 2.0.0 测试版,为 Electron 的测试版系列提供了有史以来最好的反馈循环。

🌐 Electron 2.0.0 also represents an improvement to how Electron is stabilized before a major release. Several large scale Electron apps have included 2.0.0 betas in staged rollouts, providing the best feedback loop Electron's ever had for a beta series.

变更/新功能

🌐 Changes / New Features

  • Electron 工具链的几个重要部分发生了重大变化,包括 Chrome 61、Node 8.9.3、V8 6.1.534.41、Linux 上的 GTK+ 3、更新的拼写检查器和 Squirrel。
  • MacOS 现在支持应用内购买#11292
  • 用于加载文件的新 API。#11565
  • 新的 API 用于启用/禁用窗口。#11832
  • 新的 API app.setLocale()。#11469
  • 新增对记录 IPC 消息的支持。#11880
  • 新菜单活动。 #11754
  • 向 powerMonitor 添加一个 shutdown 事件。 #11417
  • 为将多个 BrowserWindows 聚合到单个进程中添加 affinity 选项。#11501
  • 为 saveDialog 添加列出可用扩展名的功能。 #11873
  • 支持更多通知操作 #11647
  • 能够设置 macOS 通知关闭按钮的标题。 #11654
  • 为 menu.popup(window, callback) 添加条件语句。
  • 触控栏项目的内存改进。 #12527
  • 改进了安全建议清单。
  • 添加应用范围的安全范围书签。 #11711
  • 在渲染器进程中添加设置任意参数的能力。#11850
  • 为格式选择器添加附件视图。#11873
  • 修复了网络代理竞争条件问题。 #12053
  • 不再支持 Linux 上的 mips64el 架构。Electron 需要 C++14 工具链,但在发布时该架构上无法使用。我们希望将来能够重新添加支持。

重大 API 更改

🌐 Breaking API changes

  • 已移除已弃用的 API,包括:
    • 更改了 menu.popup 签名。 #11968
    • 已移除弃用的 crashReporter.setExtraParameter #11972
    • 已移除已弃用的 webContents.setZoomLevelLimitswebFrame.setZoomLevelLimits#11974
    • 已移除不推荐使用的 clipboard 方法。 #11973
    • 已移除对 tray.setHighlightMode 布尔参数的支持。 #11981

错误修复

🌐 Bug Fixes

  • 已更改以确保 webContents.isOffscreen() 始终可用。 #12531
  • 修复了在开发者工具未停靠且获得焦点时的 BrowserWindow.getFocusedWindow()#12554
  • 如果预加载路径包含特殊字符,则沙箱渲染中预加载无法加载已修复。 #12643
  • 根据文档更正 allowRunningInsecureContent 的默认值。#12629
  • 修复了 nativeImage 的透明度问题。#12683
  • 修复了 Menu.buildFromTemplate 的问题。 #12703
  • 已确认 menu.popup 选项是对象。 #12330
  • 已消除新进程创建与上下文释放之间的竞争条件。#12361
  • 在更改 BrowserView 时更新可拖动区域。#12370
  • 修复了在聚焦时菜单栏切换替代键的检测。#12235
  • 修复了 webview 中的不正确警告。 #12236
  • 修复了从父窗口继承 'show' 选项的问题。#122444
  • 确保 getLastCrashReport() 实际上是最后一个崩溃报告。#12255
  • 修复了网络共享路径上的 require。#12287
  • 修复了上下文菜单点击回调。#12170
  • 固定了弹出菜单的位置。 #12181
  • 改进了 libuv 循环清理。 #11465
  • 修复了透明颜色的 hexColorDWORDToRGBA#11557
  • 修复了使用 getWebPreferences API 时的空指针引用问题。#12245
  • 修复了菜单委托中的循环引用。 #11967
  • 修复了 net.request 的协议过滤。#11657
  • WebFrame.setVisualZoomLevelLimits 现在设置用户代理缩放限制 #12510
  • 为 WebView 选项设置适当的默认值。 #12292
  • 改进了鲜艳度支持。#12157 #12171 #11886
  • 修复了单例固件中的计时问题。
  • 修复了 NotifierSupportsActions() 中损坏的生产缓存问题。
  • 使 MenuItem 角色兼容 camelCase。 #11532
  • 改进了触控栏更新。#11812#11761
  • 已移除多余的菜单分隔符。#11827
  • 修复了蓝牙选择器的错误。关闭了 #11399
  • 修复 macOS 全屏切换菜单项标签。#11633
  • 当窗口失去激活时,改进了工具提示的隐藏。#11644
  • 迁移已弃用的 web-view 方法。 #11798
  • 修复了从浏览器视图打开的窗口无法关闭的问题。 #11799
  • 修复了蓝牙选择器的错误。 #11492
  • 已更新为使用任务计划程序来调用 app.getFileIcon API。#11595
  • 即使在屏幕外渲染也改为触发 console-message 事件。 #11921
  • 修复了使用 WebContents.downloadURL 从自定义协议下载的问题。 #11804
  • 修复了在开发者工具分离时透明窗口失去透明度的问题。 #11956
  • 修复了 Electron 应用取消重启或关机的问题。 #11625

macOS

  • 修复了触控栏项目重复使用时的事件泄漏问题。#12624
  • 修复夜间模式下托盘高亮显示。 #12398
  • 修复了异步对话框阻塞主进程的问题。 #12407
  • 修复了 setTitle 托盘崩溃问题。 #12356
  • 修复设置停靠菜单时的崩溃问题。#12087

Linux

  • 更好的 Linux 桌面通知。 #12229 #12216 #11965 #11980
  • 为菜单提供更好的 GTK+ 主题支持。 #12331
  • 在 Linux 上优雅地退出。 #12139
  • 将应用的名称用作托盘图标的默认工具提示。#12393

Windows

  • 增加了对 Visual Studio 2017 的支持。 #11656
  • 修复了将异常传递给系统崩溃处理程序的问题。#12259
  • 修复了最小化窗口时隐藏工具提示的问题。#11644
  • 修复了 desktopCapturer 以捕获正确的屏幕。 #11664
  • 修复了具有透明度的 disableHardwareAcceleration#11704

下一步计划

🌐 What's Next

Electron 团队正在努力支持更新版本的 Chromium、Node 和 v8。3.0.0-beta.1 版本即将推出!

🌐 The Electron team is hard at work to support newer versions of Chromium, Node, and v8. Expect 3.0.0-beta.1 soon!