如何使用Chrome扩展程序API拦截其他扩展程序的请求?

时间:2017-09-14 14:54:16

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

我的代码是这样的,但不能拦截来自其他扩展程序的请求(例如Postman):

chrome.webRequest.onBeforeRequest.addListener(
  function(details){
    console.log(details.method + " ====== "+ details.url + " ====== " + details.timeStamp);
    console.log("---requestbody----: " + details.requestBody);
  },
  {urls: ["<all_urls>"]},
  ["blocking"]
);

2 个答案:

答案 0 :(得分:1)

确实,这段代码赢了。

这是一项安全功能:webRequest无法拦截来自其他扩展程序或Chrome应用程序的任何请求。否则,如果另一个扩展程序正在加载第三方库,则可以注入您的代码。

used to be able to,但它是deemed a security bug并已修复。

无法覆盖此内容。

通常,由于特权升级问题,不允许扩展互相干扰(外部消息除外,但双方都必须积极参与)。

答案 1 :(得分:0)

无法拦截其他扩展请求,但 >做的是获取然后更改要拦截的扩展名,并在这两者之间添加external messaging扩展。

获取源代码并进行修改

  1. 安装Chrome extension source viewer
  2. 转到要修改的扩展程序的Chrome网上应用店中的页面。
  3. 单击黄色CRX按钮,然后选择下载(screenshot)。
  4. 解压缩zip文件。
  5. 阅读源代码,并更改需要更改的内容(在您的特定情况下,我很快就确定您要更改编辑config.js并更改"channel"属性)。保存更改。
  6. 复制要修改的扩展名的文件夹。 (根据扩展程序ID命名,要查找扩展程序的ID,请转到chrome:// extensions /)。复制后,您必须删除_metadata文件夹。

    使用扩展名的修改版本。

    1. 访问Chrome扩展程序页面(chrome://extensions/)。
    2. 启用开发者模式,勾选右上角的复选框。
    3. 点击“加载解压缩的扩展程序”按钮。
    4. 选择分机的文件夹(要知道哪个文件夹正确,请检查该文件夹是否包含名为manifest.json的文件)。
    5. 确认。你已经完成了。
    6. 除非您在上述任一步骤(包括修改源代码)中犯了错误,否则修改后的扩展名应按预期工作。

      来源:How to modify an extension from the Chrome Web Store?