How to handle onBeforeSendHeaders in Chrome v3

Viewed 23

I have some published Chrome Extension. I am trying to move it from mv2 to mv3 format. Inside background.js , I am intercepting the header with below code.

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 };
}

Based upon the input in "details" onBeforeSendHeadersHandler will run some logic and return true or false. Which will decide whether Extension will handle the url or not.

With v3 how can I intercept the header at runtime and return some values. I tried "declarative_net_request" in manifest.json and tried updateDynamicRules , it's not working. But even though I can fix the issue, my query is how can I define some finction() to be executed inside onBeforeSendHeadersHandler() , as I can not write all the conditions inside rules.json file or update it dynamically.

V3 has depricated "blocking" call , which is a must for my requirement. Is there any alternative for this ?

0 Answers
Related