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
- 为将多个 BrowserWindow 收集到单个进程中添加 `affinity` 选项。#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
- 修复沙箱渲染器中 preload 路径包含特殊字符时 preload 未加载的问题。#12643
- 根据文档更正 allowRunningInsecureContent 的默认值。#12629
- 修复 nativeImage 的透明度问题。#12683
- 修复 `Menu.buildFromTemplate` 的问题。#12703
- 确认 menu.popup 选项是对象。#12330
- 移除新进程创建和上下文释放之间的竞态条件。#12361
- 更改 BrowserView 时更新可拖动区域。#12370
- 修复聚焦时菜单栏切换 alt 键检测的问题。#12235
- 修复 webviews 中的错误警告。#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
- 修复从 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
- 修复带有透明度的 `disableHardwareAcceleration` 问题。#11704
下一步
Electron 团队正努力支持更新版本的 Chromium、Node 和 v8。敬请期待 3.0.0-beta.1 的到来!