如何在Chrome v3中处理onBeforeSendHeaders



我有一些已发布的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 };
}

基于"0"中的输入;细节";onBeforeSendHeadersHandler将运行一些逻辑并返回true或false。这将决定Extension是否处理url。

使用v3,我如何在运行时拦截标头并返回一些值。我试过";declarative_net_request";在manifest.json中,并尝试更新DynamicRules,它不起作用。但是,即使我可以解决这个问题,我的问题是如何定义一些fintion((在onBeforeSendHeadersHandler((中执行,因为我不能在rules.json文件中写入所有条件或动态更新它。

V3已经脱纯化了";"阻塞";电话,这是我必须的要求。对此有其他选择吗?

您可以使用declarativeNetRequest权限来阻止请求

chrome.declarativeNetRequest.updateDynamicRules({
addRules:[{
"id":1,
"action": { "type": "block" },
"condition": {
"urlFilter": 'url-part',
"resourceTypes": [
"main_frame",
"sub_frame"
]
}
}],
removeRuleIds: [1]
});

最新更新