I am trying to migrate my extension from V2 to V3. In V3 the webRequest API has been deprecated and replaced by declarative_net_request API. I want to rewrite the below code block using declarative_net_request API, but I don't have idea on how this can be done. Below is my code.
chrome.webRequest.onBeforeSendHeaders.addListener(function (headersDetails) {
console.log("called webRequest addListener");
if (extSettings != undefined && (extSettings.IsFeatureAvail == 0 || extSettings.IsExtEnabled == 0 || extSettings.IsProdExp == 1 || extSettings.IsProdAct == 0 || extSettings.ChangeUID == 0 || extSettings.IsCopyPirated == 1 || extSettings.InternalErr != 0)){
return { requestHeaders: headersDetails.requestHeaders };
}
if (null != tabsMap && tabsMap.has(headersDetails.tabId) == true)
{
var tabInfo = tabsMap.get(headersDetails.tabId);
if (undefined != tabInfo || null != tabInfo) {
if (tabInfo.isWhiteListUrl === false && tabInfo.isVerifyWithWhiteList === false){
tabInfo.url = (tabInfo.url === '') ? headersDetails.url : tabInfo.url;
tabInfo.isWhiteListUrl = checkForWhiteListUrl(tabInfo.url);
tabInfo.isVerifyWithWhiteList = true;
}
if (tabInfo.isWhiteListUrl == true || tabInfo.isPauseTracking == true) {
return { requestHeaders: headersDetails.requestHeaders };
}
}
}
else {
if (checkForWhiteListUrl(headersDetails.url) == true) {
return { requestHeaders: headersDetails.requestHeaders };
}
}
for (var i = 0; i < headersDetails.requestHeaders.length; ++i) {
if (headersDetails.requestHeaders[i].name === "User-Agent") {
if (localStorage.getItem("myUA"))
{
headersDetails.requestHeaders[i].value = headersDetails.requestHeaders[i].value + "/" + localStorage.getItem("myUA");
}
}
}
return { requestHeaders: headersDetails.requestHeaders };
}, { urls: ["<all_urls>"] }, extraInfoSpec);
I want to rewrite the code using declarative_net_request API.