拦截来自侧边栏面板的请求

Intercept requests going from the sidebar panel

Firefox 允许我们在使用 webRequest.RequestFilter

拦截请求之前将 tabIdurls 等过滤器应用于请求

到目前为止一切顺利。问题是这段代码

browser.sidebarAction.setPanel({
    panel: 'https://google.com'
});

这里我们请求一个将加载到侧边栏的网页(我只想拦截该请求

如您所见,似乎没有办法只过滤 sidebars' 请求,因为即使 tabId 也会 return 与“父”选项卡具有相同的 ID

是否真的可以只拦截来自侧边栏面板的请求?

我们可以通过将 tabId 设置为 -1

来过滤与选项卡无关的请求
browser.webRequest.onBeforeSendHeaders.addListener(
  listener,
  {
      urls: ["<all_urls>"],
      tabId: -1
  },
  ["blocking", "requestHeaders"]
);

这现在符合我们侧边栏的要求