我有一些已发布的Chrome扩展。我正试图将它从mv2移动到mv3格式。在background.js中,我用下面的代码截取标题。
chrome.webRequest.onBeforeSendHeaders.addListener(
onBeforeSendHeadersHandler, {
urls: <url list obtained using websocket from machine>,
types: ['main_frame']
},
['blocking', 'requestHeaders']
);
var onBeforeSendHeadersHandler = function(details) {
if (details.requestHeaders[idx].name === 'Purpose' &&details.requestHeaders[idx].name === 'prefetch') {
return {};
}
var condition = <some code>;
chrome.tabs.update(params);
return {cancel: condition ? true : false };
}
基于“details”中的输入,onBeforeSendHeadersHandler将运行一些逻辑并返回true或false。这将决定扩展是否将处理该URL。
使用v3如何在运行时拦截头文件并返回一些值。我尝试了manifest.json中的“declarative_net_request”和updateDynamicRules,但都不起作用。但即使我可以修复这个问题,我的问题是如何定义一些要在onBeforeSendHeadersHandler()中执行的函数(),因为我无法在rules.json文件中写入所有条件或动态更新它。
V3已经取消了“阻塞”调用,这是我的要求必须要做的,有没有替代方案?
1条答案
按热度按时间68bkxrlz1#
可以使用declarativeNetRequest权限来阻止请求