Modify Request Header and set it to user's provided value

234 views
Skip to first unread message

Ahmad Hassan

unread,
Jan 8, 2022, 6:10:37 AM1/8/22
to Chromium Extensions
As per guidance on chrome.declarativeNetRequest documentation, it is possible to modify the request header to preset value.

Please guide how to change/modify a request header to a dynamic value 
- either specified by the user in options page while using the extension OR
- fetched by an API or any external source

Following is an example of what I was doing to achieve this in MV2 while using WebRequest and WebRequestBlocking

var onBeforeSendHeadersHandler = function (details) {
if (settings.disabled) {
return {};
}
details.requestHeaders.forEach(function (header) {
switch (header.name) {
case 'Accept-Language':
if (settings.hl && settings.gl) {
header.value = settings.hl + '-' + settings.gl;
}
break;
}
});

return { requestHeaders: details.requestHeaders };
};

chrome.webRequest.onBeforeSendHeaders.addListener(onBeforeSendHeadersHandler, requestFilter, ["blocking", "requestHeaders", "extraHeaders"]);

Thanks

wOxxOm

unread,
Jan 8, 2022, 12:43:30 PM1/8/22
to Chromium Extensions, onepoord...@gmail.com
Call chrome.declarativeNetRequest.updateDynamicRules every time your settings change and add a rule with the corresponding `requestHeaders`.
Reply all
Reply to author
Forward
0 new messages