xiHeaders

webextension to modify request headers  https://addons.mozilla.org/firefox/addon/xiheaders/
git clone https://git.ce9e.org/xiHeaders.git

commit
5a2b1cdf1da141669e22abe1db2c138b5f6a6d32
parent
026393bc6cd3835b7b01ec3e8a3c28bd248b2265
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2025-05-03 09:04
allow to specify request type

breaking: rules now by default apply to all requests, not just
main_frame

Diffstat

M README.md 1 +
M src/bg.js 8 ++++----

2 files changed, 5 insertions, 4 deletions


diff --git a/README.md b/README.md

@@ -12,6 +12,7 @@ Rules are defined as a JSON. Each rule has the following properties:
   12    12 -   `header`: the name of the header
   13    13 -   `value`: the new value
   14    14 -   `action`: `add|replace|remove` [default: `replace`]
   -1    15 -   `request_types`: a list of [request types](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/ResourceType) [default: any]
   15    16 
   16    17 ## Examples
   17    18 

diff --git a/src/bg.js b/src/bg.js

@@ -19,6 +19,9 @@ browser.webRequest.onBeforeSendHeaders.addListener(async details => {
   19    19     var data = await browser.storage.local.get('rules');
   20    20 
   21    21     for (const rule of data.rules) {
   -1    22         if (rule.request_types && !rule.request_types.includes(details.type)) {
   -1    23             continue;
   -1    24         }
   22    25         if (glob(details.url, rule.pattern)) {
   23    26             if (rule.action !== 'add') {
   24    27                 clearHeader(details.requestHeaders, rule.header);
@@ -33,10 +36,7 @@ browser.webRequest.onBeforeSendHeaders.addListener(async details => {
   33    36     }
   34    37 
   35    38     return {requestHeaders: details.requestHeaders};
   36    -1 }, {
   37    -1     urls: ['<all_urls>'],
   38    -1     types: ['main_frame'],
   39    -1 }, ['blocking', 'requestHeaders']);
   -1    39 }, {urls: ['<all_urls>']}, ['blocking', 'requestHeaders']);
   40    40 
   41    41 browser.action.onClicked.addListener(() => {
   42    42     browser.runtime.openOptionsPage();