Electron 2.0.0
·5 分钟阅读
经过四个多月的开发、八个 Beta 版本以及来自许多应用程序分阶段推广的全球测试,Electron 2.0.0 版本现在可以从 electronjs.org 下载。
发布过程
从 2.0.0 开始,Electron 的发布将遵循语义版本控制。这意味着主版本将更频繁地更新,并且通常是对 Chromium 的重大更新。补丁版本应该更稳定,因为它们将仅包含高优先级的错误修复。
Electron 2.0.0 还代表了 Electron 在主版本发布之前如何稳定下来的改进。几个大型 Electron 应用程序已在分阶段推广中包含 2.0.0 Beta 版,为 Beta 系列提供了 Electron 有史以来最好的反馈循环。
更改/新功能
- 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
- 添加 `affinity` 选项,用于将多个 BrowserWindow 收集到单个进程中。#11501
- 添加让 saveDialog 列出可用扩展名的功能。#11873
- 支持其他通知操作 #11647
- 能够设置 macOS 通知关闭按钮标题。#11654
- 为 menu.popup(window, callback) 添加条件
- 触控栏项目中的内存改进。#12527
- 改进的安全建议清单。
- 添加应用范围的安全作用域书签。#11711
- 添加在渲染器进程中设置任意参数的功能。#11850
- 为格式选择器添加附件视图。#11873
- 修复了网络委托竞态条件。#12053
- 在 Linux 上删除对 `mips64el` arch 的支持。Electron 需要 C++14 工具链,该工具链在发布时不适用于该 arch。我们希望在未来重新添加支持。
破坏性 API 更改
- 删除了已弃用的 API,包括
错误修复
- 修改以确保
webContents.isOffscreen()
始终可用。#12531 - 修复了当 DevTools 未停靠并获得焦点时
BrowserWindow.getFocusedWindow()
的问题。#12554 - 修复了如果预加载路径包含特殊字符,则沙盒渲染器中预加载无法加载的问题。#12643
- 根据文档更正了 allowRunningInsecureContent 的默认值。#12629
- 修复了 nativeImage 的透明度问题。#12683
- 修复了
Menu.buildFromTemplate
的问题。#12703 - 确认了 menu.popup 的选项是对象。#12330
- 移除了新进程创建和上下文释放之间的竞争条件。#12361
- 在更改 BrowserView 时更新可拖动区域。#12370
- 修复了焦点状态下菜单栏切换 Alt 键的检测。#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
- 改进了 vibrancy 支持。#12157 #12171 #11886
- 修复了单例 fixture 中的定时问题。
- 修复了 NotifierSupportsActions() 中损坏的生产缓存。
- 使 MenuItem 的角色与驼峰命名法兼容。#11532
- 改进了触摸栏更新。#11812, #11761.
- 移除了多余的菜单分隔符。#11827
- 修复了蓝牙选择器错误。关闭 #11399。
- 修复了 macos 全屏切换菜单项标签。#11633
- 改进了窗口停用时工具提示的隐藏。#11644
- 迁移了已弃用的 web-view 方法。#11798
- 修复了从 browserview 打开的窗口的关闭问题。#11799
- 修复了蓝牙选择器错误。#11492
- 更新为使用任务调度器进行 app.getFileIcon API。#11595
- 更改为即使在离屏渲染时也触发
console-message
事件。#11921 - 修复了使用
WebContents.downloadURL
从自定义协议下载的问题。#11804 - 修复了当 devtools 分离时透明窗口失去透明度的问题。#11956
- 修复了 Electron 应用程序取消重启或关机的问题。#11625
macOS
- 修复了重用触摸栏项目时的事件泄漏。#12624
- 修复了暗模式下的托盘高亮显示。#12398
- 修复了异步对话框阻塞主进程的问题。#12407
- 修复了
setTitle
托盘崩溃问题。#12356 - 修复了设置 dock 菜单时的崩溃。#12087
Linux
- 更好的 Linux 桌面通知。#12229 #12216 #11965 #11980
- 更好的 GTK+ 菜单主题支持。#12331
- 在 Linux 上优雅退出。#12139
- 使用应用程序的名称作为托盘图标的默认工具提示。#12393
Windows
- 添加了 Visual Studio 2017 支持。#11656
- 修复了将异常传递给系统崩溃处理程序的问题。#12259
- 修复了从最小化窗口隐藏工具提示的问题。#11644
- 修复了
desktopCapturer
以捕获正确的屏幕。#11664 - 修复了禁用硬件加速与透明度的问题。#11704
下一步是什么
Electron 团队正在努力支持更高版本的 Chromium、Node 和 v8。预计 3.0.0-beta.1 即将发布!