[Chrome拡張] リクエストヘッダを追加する

Manifest V3 で、リクエストのヘッダを追加するには declarativeNetRequest を利用します。
静的ルールのサンプルになります。localhost 宛てのリクエストに対して、特定のヘッダを追加します。

manifest.json の内容です
・permissions で declarativeNetRequest を指定
・rule_resoures で Rule の静的ファイルを指定
・host_permissions で対象とするURLを指定

{
  "manifest_version": 3,
  "name": "addHeader",
  "version": "1.0",
  "description": "addHeader",
  "permissions": [
    "declarativeNetRequest"
  ],
  "declarative_net_request": {
    "rule_resources": [
      {
        "id": "addHeaderRules",
        "enabled": true,
        "path": "rules.json"
      }
    ]
  },
  "host_permissions":[
    "*://localhost:*/*"
  ]
}

rules.json では Rule を記載していきます。複数設定することができます。
・type は modifyHeaders を指定
・requestHeaders で、追加するヘッダ内容を指定
・condition の urlFilter にて対象URLを指定

[
  {
    "id": 1,
    "priority": 1,
    "action": {
      "type": "modifyHeaders",
      "requestHeaders": [
        {
          "header": "TEST",
          "value": "TEST_VALUE",
          "operation": "set"
        }
      ]
    },
    "condition": {
      "urlFilter": "localhost",
      "resourceTypes":[
        "main_frame"
      ]
    }
  }
]

URL は <all_urls> といった指定はせずに、個別のドメインを指定します。一致していない場合などは、動作せずに何も出力されないため問題判別が難しくなります。

上記2つのファイルを同じフォルダに置いて、そのフォルダを「パッケージ化されていない拡張機能を読み込む」で読み込みを行うことで動かすことができます。

ChromeChrome

Posted by kidatti