【问题标题】:Allow URI schemes for chrome extension manifest matches允许用于 chrome 扩展清单匹配的 URI 方案
【发布时间】:2020-07-31 21:05:05
【问题描述】:

我正在制作一个 chrome 扩展,但是,我遇到了我的内容脚本无法在 chrome-extension://* 方案上运行的问题。我发现这是因为它是 URI 方案而不是 URL。是否可以在我的manifest.json 中允许将 URI 方案添加到匹配数组?

否则如果不行的话,有没有其他方法可以在文件路径下打开这个html?

ma​​nifest.json

  "background": {
    "scripts": [ "background.js" ]
  },
  "permissions": [
    "tabs"
  ],
  "description": "Description",
  "manifest_version": 2,
  "name": "Extension Name",
  "version": "1.0",
  "content_scripts": [
    {
        "matches": ["<all_urls>"],
        "js": ["content.js"]
    }
  ]
}

编辑
我发现了这个站点(https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/permissions/permissions_data_unittest.cc),其中377 to 393 行讨论了“常规”和“组件”扩展以及在指定&lt;all_urls&gt; 时“组件”扩展应该如何访问chrome-extension:// 方案。我不确定这个源代码是什么,但如果有任何相关信息,那么这就是我目前研究的重点。

【问题讨论】:

    标签: javascript google-chrome uri


    【解决方案1】:

    第 377 行中 https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/permissions/permissions_data_unittest.cc 代码的方法对您来说可能是可行的(如果您已经弄清楚了,请发布您实施的解决方案)。但是,如果您遵循上述方法,您仍将使用 URL。也许如果您解释如何假装从后台脚本访问 URI 以及 URI 是如何形成的(也许它们有一个共同的模式),它会更清楚。如果您需要使用将位于您的范围内的 URL 的特定资源,实现“匹配”:[“https://yourpage1.com/, https://yourpage2.com/ >"],即使对于 URI 长版本(例如:mydomain.yourpage1.com/resource1.png、mydomain.yourpage1.com/resource1.index.html 等),也应该在不关心 CORS 或 SOP 的情况下做到这一点.

    【讨论】:

      猜你喜欢
      • 2021-04-08
      • 1970-01-01
      • 1970-01-01
      • 2019-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-02
      相关资源
      最近更新 更多