【问题标题】:How to retrieve the Initiator of a request when extending Chrome DevTool?扩展 Chrome DevTool 时如何检索请求的发起者?
【发布时间】:2013-07-13 02:16:24
【问题描述】:

我正在编写一个扩展程序,它需要知道在发出网络请求时谁负责。网络面板的发起者正是我想要的。但我无法使用 devtools.network 或 devtools.panels API 获得它。是因为他们根本没有公开这些信息还是我遗漏了什么?

【问题讨论】:

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


    【解决方案1】:

    您是正确的,启动器没有通过 devtools 扩展 API 公开——目前,API 公开的资源属性仅限于 HAR 规范中的资源属性,其中不包括启动器。 您可以使用原始 DevTools 协议 (https://developers.google.com/chrome-developer-tools/docs/debugger-protocol) 来获取 DevTools 前端可用的所有数据。请注意,它也暴露给 Chrome 扩展程序 (http://developer.chrome.com/extensions/debugger.html),但是当 DevTools 前端打开时您无法使用它,因此您将无法在 DevTools 扩展程序中访问它。

    根据您要执行的操作,实验性 Timeline API 可能会有一些用处(此测试显示了这是如何完成的:https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/LayoutTests/inspector/extensions/extensions-events.html&q=webInspector.timeline&sq=package:chromium&type=cs&l=148)。与 Network 中的启动器不同,它不会向您显示文档中导致静态引用资源被加载的位置,但它会为您提供 XHR 和动态添加到文档中的资源的堆栈跟踪。

    【讨论】:

      【解决方案2】:

      这可能与最初的答案有所不同,但为了将来参考,这可以通过debugger extension API 收听network events 来实现

      示例(在扩展中)

      var tabId = parseInt(window.location.search.substring(1));
      
      window.addEventListener("load", function() {
        chrome.debugger.sendCommand({tabId:tabId}, "Network.enable");
        chrome.debugger.onEvent.addListener(onEvent);
      });
      
      window.addEventListener("unload", function() {
        chrome.debugger.detach({tabId:tabId});
      });
      
      var requests = {};
      
      function onEvent(debuggeeId, message, params) {
        if (tabId != debuggeeId.tabId)
          return;
      
        if (message == "Network.requestWillBeSent") {
          console.log(params.initiator);
        }
      }
      

      代码修改自HTTP extension example

      【讨论】:

      • 我回应上述问题(试图引起@Stephen 的注意)。
      • 答案有更新吗?我试过这个尝试,但是关于initiator的信息非常有限。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-08
      • 2014-09-26
      • 2014-02-09
      • 2012-04-22
      • 1970-01-01
      相关资源
      最近更新 更多