看新闻很累?看技术新闻更累?试试下载 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 开发预览工具,或参阅协议文档。
评论