是否有可能从另一个扩展程序中捕获请求?

时间:2016-06-20 15:38:34

标签: google-chrome-extension webrequest

在我的扩展程序中,我使用chrome.webRequest来捕获来自任何网页的请求,它就像一个魅力 但我无法捕获从另一个扩展程序初始化的任何请求。 我的清单:

"permissions": [
    "tabs",
    "webRequest",
    "webRequestBlocking",
    "<all_urls>"
  ], 

background.js:

chrome.webRequest.onBeforeRequest.addListener(function (data) {
  console.log('catched', data);
}, {urls: ['<all_urls>']});

试验:

  1. 使用http://google.com打开标签:
    catched https://www.google.com/

  2. 打开扩展程序控制台并运行fetch('http://google.com')
    catched http://google.com/

  3. 打开另一个扩展程序控制台并运行fetch('http://google.com')
    // no output

  4. 有人知道是否可能,如果可能,如何设置? 谢谢!

1 个答案:

答案 0 :(得分:2)

更新

我之前的回答不正确,请参阅@Rob W的评论。

  

但是当@Xan mentioned that extension URLs were visible to other extensions时,很明显这种行为is undesirable and a security issue, so I removed the ability for extensions to see other extensions' requests

以前的回答

它不允许handle requests sent from other extensions

  

此外,即使某些使用上述方案之一的URL请求也会被隐藏,例如 chrome-extension:// other_extension_id,其中other_extension_id不是要处理的扩展名的ID请求https://www.google.com/chrome和其他人(此列表未完成)。