在匹配模式中匹配“chrome-extension://*/”

问题描述

使用 chrome.webRequest.onBeforeSendHeaders.addListener 可以指定一个 requestFilter = { urls: ["<all_urls>"] }; 作为第二个参数

每当我从我的扩展程序中获取数据时,我都会听到流量 {frameId: 0,initiator: "chrome-extension://abcdef" }

虽然我可以使用 chrome-extension 过滤器捕获 <all_url> 架构。我只想将它与 const requestFilter = { urls: ["chrome-extension://*/"] };

匹配

这不起作用,我在 https://developer.chrome.com/docs/extensions/mv2/match_patterns/ 处的文档下的架构中找不到任何关于 chrome-extension 的信息

但是它说The special pattern <all_urls> matches any URL that starts with a permitted scheme。所以它似乎是被允许的,但我不能让它工作。如果您能提供正确方向的任何帮助,我将不胜感激。

谢谢

解决方法

这些并不是真正的网络请求,因此没有标头事件。相反,您可以监听 onBeforeRequest 事件并捕获所有扩展 URL 添加另一个 * 使其看起来像 "chrome-extension://*/*"

chrome.webRequest.onBeforeRequest.addListener(console.log,{
  urls: ["chrome-extension://*/*"],});