微软推出 Edge 开发工具协议

  • Kevin Ball
  • 周元昊

2018 年 5 月 31 日

话题:JavaScript语言 & 开发

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

微软于 4 月 30 日发布了 Edge 17 版,其中推出了微软 Edge 开发工具协议(Microsoft Edge DevTools Protocol),这是一组 JSON 和 JSON-RPC 的 API,用于让客户端与 Edge 浏览器的选项卡进行交互。该协议遵循了 Chrome 开发工具协议模型,让开发人员能够通过标准 Web 技术来构建可与 Edge 浏览器交互的工具。在发布申明博客中,微软资深产品经理 Brendyn Alexander 表示:

该协议通过解耦客户端与平台,让我们开始了推进 Edge 浏览器开发工具生态系统的第二阶段任务。在本地和 Web 开发环境中,HTTP 和 WebSocket 技术随处可见,因此各种编程语言编写的客户端可以通过该协议与 Edge 浏览器进行集成。我们希望该协议的推出,可以大大降低那些想要创建 Edge 开发工具的开发者们的门槛。

微软还发布了使用该协议的两个客户端:微软 Edge 开发预览工具和 Visual Studio 2017。该协议仿照 Chrome 开发工具协议以及正在发展中的WICG 开发工具标准。根据目前客户端上的文档

开发工具协议 0.1 初始版本提供了一些核心的调试功能,如设置断点、代码步进以及查看堆栈信息。 在 Edge 开发工具的界面中,这些就是调试器面板中的各个功能,但没有缓存视图(如 Web 存储,Service worker,Cache API 和 IndexedDB)。

协议的功能按“域”维度来组织,初始版本主要支持了“调试器”域,并最小限度支持了“页面”和“运行时”域,当然还有用于查询可用域列表的“Schema”元数据域。

如果微软继续基于 Chrome 开发工具协议进行开发,可以预计在未来的版本中将增加更多其他域。在谷歌开发工具协议的文档中重点介绍了 39 个不同的域,从可访问性到 Service worker,外部工具可以使用大量的浏览器功能。

其他主流浏览器也都正处于实现开发工具协议的不同阶段。按 Chrome最新稳定版文档中描述,其包含了 16 个域,而 webkit(即 Safari)的 github 中的协议目录上显示,有 24 个不同域的协议正在开发中。Firefox 似乎是主流浏览器中最落后的一个,只存在一个已经停滞的相关 tracking bug也没有相关文档。

在浏览器外,Node.js 也支持了谷歌开发工具协议的一个子集,在文档中显示目前支持六个域。开发人员可以通过 Chrome 工具来直接调试 Node 程序。想要了解如何通过该方式对 Node 进行调试,可以查看 Chrome 开发工具的开发者Paul Irish相关博客

有兴趣深入了解微软 Edge 开发工具协议和微软的开发者生态系统的开发人员可以试用微软 Edge 开发预览工具,或参阅协议文档

查看英文原文:Microsoft Introduces Edge DevTools Protocol

JavaScript语言 & 开发