declarativeNetRequest modifyHeaders issue for safari extension. Header is not recognized

Declarative net Request modify header rule is not working for safari. Works fine on all other browsers (chrome, edge , FF etc)

Error: [Error] Error: Invalid call to declarativeNetRequest.updateDynamicRules(). Error with rule at index 0: Rule with id 100 is invalid. The header x-source is not recognized.

> > let x = [{ "id": 100, "priority": 1, "action": { "type": "modifyHeaders", "requestHeaders": [ { "header": "x-source", "operation": "set", "value": "test" } ] }, "condition": { "urlFilter": "https://*/*" } }]

await browser.declarativeNetRequest.updateDynamicRules({ addRules: x });


However, if I change the header name to "Origin" it works. Is there a restriction on which all header names are supported?

Safari Version 16.5.2 (18615.2.9.11.10) manifest permission added: declarativeNetRequestWithHostAccess

With known headers eg. "Origins" or "User-Agent", we can see the request getting modified

  • Origin: RandomHeaderValue
  • Referer: https://www.cnn.com/
  • Sec-Fetch-Dest: empty
  • Sec-Fetch-Mode: cors
  • Sec-Fetch-Site: cross-site
  • User-Agent: RandomHeaderValue
declarativeNetRequest modifyHeaders issue for safari extension. Header is not recognized
 
 
Q