无法使用websockets的`declarative_net_request`的`rule_resources`修改Chrome扩展中的头

qco9c6ql  于 12个月前  发布在  Go
关注(0)|答案(1)|浏览(108)

我试图在Chrome扩展的WebSocket创建过程中修改Origin Header。我有declarativeNetRequestWithHostAccess的权限。我尝试使用modifyHeaders类型的规则。**它完美地修改了fetch()调用的头部,但没有修改websockets的头部。**我错过了什么?
下面是规则即src/rules/example.json:

[
  {
    "id": 2,
    "priority": 1,
    "action": {
      "type": "modifyHeaders",
      "requestHeaders": [
        {
          "header": "origin",
          "operation": "set",
          "value": "https://www.example.ai"
        },
        {
          "header": "referer",
          "operation": "set",
          "value": "https://www.example.ai"
        }
      ]
    },
    "condition": {
      "urlFilter": "example",
      "isUrlFilterCaseSensitive": false,
      "resourceTypes": ["xmlhttprequest", "websocket"]
    }
  }
]

这里是manifest.json

...
...
  "declarative_net_request": {
    "rule_resources": [
      {
        "id": "ruleset_example",
        "enabled": true,
        "path": "src/rules/example.json"
      }
    ]
  },
eiee3dmh

eiee3dmh1#

正如@wOxxOm所提到的,
"wss://*/*"optional_host_permissions移动到host_permissions解决了它。
我猜对于optional_host_permissions我不得不调用chrome.permissions.request({ origins: ['wss://example.com'] })以及我没有这样做。

相关问题