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