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 版本纳入分阶段推出,为 Electron 提供了有史以来最佳的 Beta 版本系列反馈循环。
更改/新功能
- 对 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
选项,用于将多个 BrowserWindows 收集到一个进程中。 #11501 - 添加了使 saveDialog 列出可用扩展名的功能。 #11873
- 支持其他通知操作 #11647
- 设置 macOS 通知关闭按钮标题的功能。 #11654
- 添加了 menu.popup(window, callback) 的条件
- 改进了触控栏项目的内存使用。 #12527
- 改进了安全建议清单。
- 添加了应用范围的安全作用域书签。 #11711
- 添加了在渲染器进程中设置任意参数的功能。 #11850
- 添加了格式选择器的附件视图。 #11873
- 修复了网络委托竞争条件。 #12053
- 放弃对 Linux 上的
mips64el
架构的支持。Electron 需要 C++14 工具链,该工具链在发布时无法用于该架构。我们希望将来重新添加支持。
破坏性 API 更改
- 删除了 已弃用的 API,包括
错误修复
- 更改以确保
webContents.isOffscreen()
始终可用。 #12531 - 修复了当 DevTools 未停靠且处于焦点状态时
BrowserWindow.getFocusedWindow()
的问题。 #12554 - 修复了如果预加载路径包含特殊字符,则沙盒渲染中不会加载预加载的问题。 #12643
- 根据文档更正 allowRunningInsecureContent 的默认值。 #12629
- 修复了 nativeImage 上的透明度问题。 #12683
- 修复了
Menu.buildFromTemplate
的问题。 #12703 - 确认菜单.popup 选项是对象。 #12330
- 删除了新进程创建和上下文释放之间的竞争条件。 #12361
- 更改 BrowserView 时更新可拖动区域。 #12370
- 修复了菜单栏切换 alt 键在焦点上的检测。 #12235
- 修复了 webview 中不正确的警告。 #12236
- 修复了从父窗口继承“显示”选项的问题。 #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 角色与驼峰命名法兼容。 #11532
- 改进了触控栏更新。 #11812,#11761。
- 删除了额外的菜单分隔符。 #11827
- 修复了蓝牙选择器错误。关闭 #11399。
- 修复了 macOS 全屏切换菜单项标签。 #11633
- 改进了窗口停用时隐藏工具提示的方式。 #11644
- 迁移了已弃用的 web-view 方法。 #11798
- 修复了关闭从 browserview 打开的窗口的问题。 #11799
- 修复了蓝牙选择器错误。 #11492
- 更新为使用任务调度程序进行 app.getFileIcon API。 #11595
- 更改为即使在屏幕外渲染时也触发
console-message
事件。 #11921 - 修复了使用
WebContents.downloadURL
从自定义协议下载的问题。 #11804 - 修复了透明窗口在开发者工具分离时丢失透明度的问题。 #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 - 修复了带有透明度的
disableHardwareAcceleration
问题。 #11704
下一步
Electron 团队正在努力支持更新版本的 Chromium、Node 和 v8。 敬请期待 3.0.0-beta.1 即将发布!