如何从chrome调试API中捕获时间轴数据

时间:2015-06-29 05:08:50

标签: javascript google-chrome debugging google-chrome-extension google-chrome-devtools

任务:目标是获取已安装扩展程序触发的所有功能。

预期输出: Javascript函数调用,类似于时间轴面板中显示的内容。

说明:如上所述,我想从chrome获取时间轴数据。为此,我使用chrome remote debugging protocol的时间轴功能来使用chrome javascript debugger API获取时间轴数据。我开始使用以下代码进行debuger:

chrome.debugger.attach({ tabId: tabid }, version, onAttach.bind(null,tabid); chrome.debugger.sendCommand({ tabId: tabid }, "Tracing.start");

但是,当我运行此代码时,我收到一条错误,指出时间轴已弃用,请使用跟踪。虽然官方文档没有提到时间表已被弃用。我也尝试过跟踪删除错误,但仍然没有捕获事件。是否有任何旗帜问题?

在阅读Chrome Apps & Extensions Developer Tool的代码后,我发现 chrome.activityLogPrivate API可以按不同的扩展名记录所有事件。但是,我无法通过调用我的扩展程序来运行它,它仍未定义。我也无法找到此扩展的文档。

1 个答案:

答案 0 :(得分:1)

稳定的1.1 Debugging protocol没有"跟踪"但是,"tip of the tree" docs正是这样说的:

  

不推荐使用时间轴域。请改为使用跟踪。

它应该只是一个警告,因为:

  

自Google Chrome 31起,我们承诺支持v1.1。协议的所有后续1. *版本将向后兼容1.1。我们的协议向后兼容性承诺是:

     
      
  • 协议中不会删除任何命令或事件。
  •   
  • 没有必要的参数添加到命令中。
  •   
  • 不会从命令响应或事件中删除任何必需参数。
  •   

所以你的命令正常工作。

chrome.activityLogPrivate API就是它所说的 - 私有。它仅适用于Chrome代码中的特定白名单扩展程序,并且未公开记录。

所以不,你不能使用它,除非你使用黑客like this one,但不能保证工作。