chrome.declarativeNetRequest

説明

chrome.declarativeNetRequest API を使用してルールを宣言することで、ネットワーク リクエストをブロックまたは変更できます。これにより、拡張機能はネットワーク リクエストをインターセプトしてコンテンツを表示することなく変更できるため、プライバシーが強化されます。

権限

declarativeNetRequest
declarativeNetRequestWithHostAccess

declarativeNetRequestFeedback
host_permissions

対象

Chrome 84 以降

マニフェスト

上記の権限に加えて、特定のタイプのルールセット(特に静的ルールセット)では、"declarative_net_request" マニフェスト キーの宣言が必要です。これは、"rule_resources" という単一のキーを持つ辞書である必要があります。このキーは、次の例に示すように、Ruleset 型の辞書を含む配列です。(「Ruleset」という名前は単なる配列であるため、マニフェストの JSON には表示されません)。静的ルールセットについては、このドキュメントの後半で説明します。

{
  "name": "My extension",
  ...

  "declarative_net_request" : {
    "rule_resources" : [{
      "id": "ruleset_1",
      "enabled": true,
      "path": "rules_1.json"
    }, {
      "id": "ruleset_2",
      "enabled": false,
      "path": "rules_2.json"
    }]
  },
  "permissions": [
    "declarativeNetRequest",
    "declarativeNetRequestFeedback",
  ],
  "host_permissions": [
    "http://www.blogger.com/*",
    "http://*.google.com/*"
  ],
  ...
}

コンセプトと使用方法

この API を使用するには、1 つ以上のルールセットを指定します。ルールセットにはルールの配列が含まれています。単一のルールは次のいずれかを行います。

  • ネットワーク リクエストをブロックします。
  • スキーマをアップグレードします(http から https)。
  • 一致するブロックルールを否定して、リクエストがブロックされないようにします。
  • ネットワーク リクエストをリダイレクトします。
  • リクエスト ヘッダーまたはレスポンス ヘッダーを変更します。

ルールセットには 3 種類あり、管理方法が若干異なります。

ダイナミック
ブラウザ セッションと拡張機能のアップグレードをまたいで保持され、拡張機能の使用中に JavaScript を使用して管理されます。
セッション
ブラウザがシャットダウンしたとき、および拡張機能の新しいバージョンがインストールされたときにクリアされます。セッション ルールは、拡張機能の使用中に JavaScript を使用して管理されます。
静的
拡張機能がインストールまたはアップグレードされるときに、パッケージ化、インストール、更新されます。静的ルールは JSON 形式のルールファイルに保存され、マニフェスト ファイルにリストされます。

以降のセクションでは、ルールセットのタイプについて詳しく説明します。

動的ルールセットとセッション スコープのルールセット

拡張機能の使用中は、JavaScript を使用して動的ルールセットとセッション ルールセットが管理されます。

  • 動的ルールは、ブラウザ セッションと拡張機能のアップグレードにまたがって保持されます。
  • セッション ルールは、ブラウザがシャットダウンしたときと、新しいバージョンの拡張機能がインストールされたときにクリアされます。

これらのルールセット タイプはそれぞれ 1 つだけです。拡張機能は、ルールの上限を超えない限り、updateDynamicRules()updateSessionRules() を呼び出すことで、ルールを動的に追加または削除できます。ルールの上限については、ルールの上限をご覧ください。コード例この例を確認できます。

静的ルールセット

動的ルールやセッション ルールとは異なり、静的ルールは拡張機能のインストール時またはアップグレード時にパッケージ化、インストール、更新されます。これらは JSON 形式のルールファイルに保存され、前述のとおり "declarative_net_request" キーと "rule_resources" キー、および 1 つ以上の Ruleset ディクショナリを使用して拡張機能に示されます。Ruleset ディクショナリには、ルールファイルへのパス、ファイルに含まれるルールセットの ID、ルールセットが有効か無効かが含まれます。最後の 2 つは、ルールセットをプログラムで有効または無効にする場合に重要です。

{
  ...
  "declarative_net_request" : {
    "rule_resources" : [{
      "id": "ruleset_1",
      "enabled": true,
      "path": "rules_1.json"
    },
    ...
    ]
  }
  ...
}

ルールファイルをテストするには、拡張機能を解凍して読み込みます。無効な静的ルールに関するエラーと警告は、パッケージ化されていない拡張機能に対してのみ表示されます。パッケージ化された拡張機能の無効な静的ルールは無視されます。

静的ルールとルールセットを有効または無効にする

個々の静的ルールと完全な静的ルールセットの両方を、実行時に有効または無効にできます。

有効な静的ルールとルールセットのセットは、ブラウザ セッション間で保持されます。どちらも拡張機能の更新時に保持されないため、更新後に使用できるのは、ルールファイルに残すことを選択したルールのみです。

パフォーマンス上の理由から、一度に有効にできるルールとルールセットの数にも上限があります。getAvailableStaticRuleCount() を呼び出して、有効にできる追加ルールの数を確認します。ルールの上限については、ルールの上限をご覧ください。

静的ルールを有効または無効にするには、updateStaticRules() を呼び出します。このメソッドは、有効または無効にするルールの ID の配列を含む UpdateStaticRulesOptions オブジェクトを受け取ります。ID は、Ruleset 辞書の "id" キーを使用して定義されます。

静的ルールセットを有効または無効にするには、updateEnabledRulesets() を呼び出します。このメソッドは、有効または無効にするルールセットの ID の配列を含む UpdateRulesetOptions オブジェクトを受け取ります。ID は、Ruleset 辞書の "id" キーを使用して定義されます。

ビルドルール

タイプに関係なく、ルールは以下に示す 4 つのフィールドで始まります。"id" キーと "priority" キーは数値を指定しますが、"action" キーと "condition" キーは複数のブロック条件とリダイレクト条件を指定できます。次のルールは、"foo.com" から送信され、"abc" を部分文字列として含む URL へのすべてのスクリプト リクエストをブロックします。

{
  "id" : 1,
  "priority": 1,
  "action" : { "type" : "block" },
  "condition" : {
    "urlFilter" : "abc",
    "initiatorDomains" : ["foo.com"],
    "resourceTypes" : ["script"]
  }
}

urlFilter の一致文字

ルールの "condition" キーは、指定されたドメインの URL に対してアクションを実行するための "urlFilter" キーを許可します。パターンは、パターン マッチング トークンを使用して作成します。行動規範の例には次のようなものがあります。

urlFilter 一致 一致しない
"abc" https://abcd.com
https://example.com/abcd
https://ab.com
"abc*d" https://abcd.com
https://example.com/abcxyzd
https://abc.com
"||a.example.com" https://a.example.com/
https://b.a.example.com/xyz
https://example.com/
"|https*" https://example.com http://example.com/
http://https.com
"example*^123|" https://example.com/123
http://abc.com/example?123
https://example.com/1234
https://abc.com/example0123

ルールの優先順位付け

ルールは、ウェブページから送信されたリクエストによってトリガーされます。特定のリクエストに複数のルールが一致する場合は、ルールに優先順位を付ける必要があります。このセクションでは、優先順位付けの方法について説明します。優先順位付けは 2 つの段階で行われます。

  1. 優先度は拡張機能内のルールに対して決定されます。
  2. 複数の拡張機能がリクエストにルールを適用できる場合、特定のリクエストに一致するすべての拡張機能の優先度が決定されます。

この方法で一致を考えると、特定の拡張機能が優先するルールは、他の拡張機能のルールよりも優先されます。

拡張機能内のルールの優先順位

1 つの拡張機能内では、次のプロセスを使用して優先順位が決定されます。

  1. デベロッパーが定義した優先度(つまり "priority" フィールド)が最も高いルールが返されます。
  2. デベロッパーが定義した優先度が最も高いルールが複数ある場合、ルールは "action" フィールドを使用して次の順序で優先されます。

    1. allow
    2. allowAllRequests
    3. block
    4. upgradeScheme
    5. redirect
  3. アクション タイプが block または redirect でない場合、一致する modifyHeaders ルールが評価されます。デベロッパーが定義した優先度が allowallowAllRequests に指定された優先度よりも低いルールがある場合、それらのルールは無視されます。

  4. 複数のルールが同じヘッダーを変更する場合、変更はデベロッパーが定義した "priority" フィールドと指定されたオペレーションによって決定されます。

    • ルールでヘッダーに追加した場合、優先度の低いルールではそのヘッダーにのみ追加できます。設定と削除のオペレーションは許可されていません。
    • ルールでヘッダーが設定されている場合、優先度の低いルールではそのヘッダーに追加することしかできません。それ以外の変更は許可されていません。
    • ルールでヘッダーが削除された場合、優先度の低いルールでヘッダーをさらに変更することはできません。

拡張機能間のルールの優先度

リクエストに一致するルールを持つ拡張機能が 1 つだけの場合、そのルールが適用されます。ただし、複数の拡張機能がリクエストに一致する場合は、次のプロセスが使用されます。

  1. ルールは、"action" フィールドを使用して次の順序で優先順位が付けられます。

    1. block
    2. redirect または upgradeScheme
    3. allow または allowAllRequests
  2. 複数のルールが一致する場合は、最後にインストールされた拡張機能が優先されます。

ルールの制限事項

ブラウザでルールを読み込んで評価するとパフォーマンスのオーバーヘッドが発生するため、API を使用する際にはいくつかの制限が適用されます。上限は、使用するルールのタイプによって異なります。

静的ルール

静的ルールは、マニフェスト ファイルで宣言されたルールファイルで指定されたルールです。拡張機能は、"rule_resources" マニフェスト キーの一部として最大 50 個の静的ルールセットを指定できますが、一度に有効にできるのは 10 個のみです。後者は MAX_NUMBER_OF_ENABLED_STATIC_RULESETS と呼ばれます。これらのルールセットは、合計で少なくとも 30,000 個のルールが保証されています。これは GUARANTEED_MINIMUM_STATIC_RULES と呼ばれます。

その後利用できるルールの数は、ユーザーのブラウザにインストールされているすべての拡張機能で有効になっているルールの数によって異なります。この番号は、ランタイムに getAvailableStaticRuleCount() を呼び出すことで取得できます。コード例この例を確認できます。

ダイナミック ルールとセッション ルール

動的ルールとセッション ルールに適用される制限は、静的ルールよりもシンプルです。両方の合計数は 5,000 を超えることはできません。これは MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES と呼ばれます。

正規表現を使用するルール

すべてのタイプのルールで正規表現を使用できますが、各タイプの正規表現ルールの合計数は 1, 000 を超えることはできません。これは MAX_NUMBER_OF_REGEX_RULES と呼ばれます。

また、コンパイル後の各ルールは 2 KB 未満にする必要があります。これは、ルールの複雑さとほぼ相関関係があります。この上限を超えるルールを読み込もうとすると、次のような警告が表示され、ルールは無視されます。

rules_1.json: Rule with id 1 specified a more complext regex than allowed
as part of the "regexFilter" key.

Service Worker とのインタラクション

declarativeNetRequest は、ネットワーク スタックに到達するリクエストにのみ適用されます。これには HTTP キャッシュからのレスポンスが含まれますが、サービス ワーカーの onfetch ハンドラを通過するレスポンスは含まれない場合があります。declarativeNetRequest は、サービス ワーカーによって生成されたレスポンスや CacheStorage から取得されたレスポンスには影響しませんが、サービス ワーカーで行われた fetch() の呼び出しには影響します。

ウェブ アクセス可能なリソース

declarativeNetRequest ルールでは、公開リソース リクエストからウェブ アクセスできないリソースにリダイレクトすることはできません。このような操作を行うと、エラーが発生します。これは、指定されたウェブ アクセス可能なリソースがリダイレクト元の拡張機能によって所有されている場合でも同様です。declarativeNetRequest のリソースを宣言するには、マニフェストの "web_accessible_resources" 配列を使用します。

コードの例

ダイナミック ルールを更新する

次の例は、updateDynamicRules() を呼び出す方法を示しています。updateSessionRules() の手順も同じです。

// Get arrays containing new and old rules
const newRules = await getNewRules();
const oldRules = await chrome.declarativeNetRequest.getDynamicRules();
const oldRuleIds = oldRules.map(rule => rule.id);

// Use the arrays to update the dynamic rules
await chrome.declarativeNetRequest.updateDynamicRules({
  removeRuleIds: oldRuleIds,
  addRules: newRules
});

静的ルールセットを更新する

次の例は、使用可能な静的ルールセットの数と有効な静的ルールセットの最大数を考慮して、ルールセットを有効または無効にする方法を示しています。これは、必要な静的ルールの数が許容される数を超える場合に行います。これを行うには、ルールセットの一部を無効にした状態で(マニフェスト ファイル内で "Enabled"false に設定)、ルールセットの一部をインストールする必要があります。

async function updateStaticRules(enableRulesetIds, disableCandidateIds) {
  // Create the options structure for the call to updateEnabledRulesets()
  let options = { enableRulesetIds: enableRulesetIds }
  // Get the number of enabled static rules
  const enabledStaticCount = await chrome.declarativeNetRequest.getEnabledRulesets();
  // Compare rule counts to determine if anything needs to be disabled so that
  // new rules can be enabled
  const proposedCount = enableRulesetIds.length;
  if (enabledStaticCount + proposedCount > chrome.declarativeNetRequest.MAX_NUMBER_OF_ENABLED_STATIC_RULESETS) {
    options.disableRulesetIds = disableCandidateIds
  }
  // Update the enabled static rules
  await chrome.declarativeNetRequest.updateEnabledRulesets(options);
}

ルールの例

以下の例は、Chrome が拡張機能のルールをどのように優先順位付けするかを示しています。確認する際は、優先順位付けルールを別のウィンドウで開くことをおすすめします。

「priority」キー

これらの例では、*://*.example.com/* へのホスト権限が必要です。

特定の URL の優先度を判断するには、(デベロッパーが定義した)"priority" キー、"action" キー、"urlFilter" キーを確認します。これらの例は、以下のルールファイルの例を参照しています。

https://google.com へのナビゲーション
この URL には、ID が 1 と 4 の 2 つのルールが適用されます。"block" アクションは "redirect" アクションよりも優先度が高いため、ID 1 のルールが適用されます。残りのルールは、URL が長いため適用されません。
https://google.com/1234 へのナビゲーション
URL が長くなったため、ID 1 と 4 のルールに加えて、ID 2 のルールも一致するようになりました。"allow""block""redirect" よりも優先度が高いため、ID 2 のルールが適用されます。
https://google.com/12345 へのナビゲーション
4 つのルールすべてがこの URL と一致します。ID 3 のルールは、デベロッパーが定義した優先度がグループ内で最も高いため、適用されます。
[
  {
    "id": 1,
    "priority": 1,
    "action": { "type": "block" },
    "condition": {"urlFilter": "google.com", "resourceTypes": ["main_frame"] }
  },
  {
    "id": 2,
    "priority": 1,
    "action": { "type": "allow" },
    "condition": { "urlFilter": "google.com/123", "resourceTypes": ["main_frame"] }
  },
  {
    "id": 3,
    "priority": 2,
    "action": { "type": "block" },
    "condition": { "urlFilter": "google.com/12345", "resourceTypes": ["main_frame"] }
  },
  {
    "id": 4,
    "priority": 1,
    "action": { "type": "redirect", "redirect": { "url": "https://example.com" } },
    "condition": { "urlFilter": "google.com", "resourceTypes": ["main_frame"] }
  },
]

リダイレクト

次の例では、*://*.example.com/* に対するホスト権限が必要です。

次の例は、example.com から拡張機能内のページにリクエストをリダイレクトする方法を示しています。拡張機能のパス /a.jpgchrome-extension://EXTENSION_ID/a.jpg に解決されます。ここで、EXTENSION_ID は拡張機能の ID です。この機能を動作させるには、マニフェストで /a.jpgウェブ アクセス可能なリソースとして宣言する必要があります。

{
  "id": 1,
  "priority": 1,
  "action": { "type": "redirect", "redirect": { "extensionPath": "/a.jpg" } },
  "condition": {
    "urlFilter": "https://www.example.com",
    "resourceTypes": ["main_frame"]
  }
}

次の例では、"transform" キーを使用して example.com のサブドメインにリダイレクトしています。ドメイン名アンカー(「||」)を使用して、example.com からのスキームを含むリクエストをインターセプトしています。"transform""scheme" キーは、サブドメインへのリダイレクトで常に「https」を使用することを指定しています。

{
  "id": 1,
  "priority": 1,
  "action": {
    "type": "redirect",
    "redirect": {
      "transform": { "scheme": "https", "host": "new.example.com" }
    }
  },
  "condition": {
    "urlFilter": "||example.com",
    "resourceTypes": ["main_frame"]
  }
}

次の例では、正規表現を使用して https://www.abc.xyz.com/path から https://abc.xyz.com/path にリダイレクトします。"regexFilter" キーで、期間がエスケープされ、キャプチャ グループが「abc」または「def」を選択していることを確認します。"regexSubstitution" キーは、正規表現の最初の一致を「\1」を使用して指定します。この場合、リダイレクトされた URL から「abc」がキャプチャされ、置換に配置されます。

{
  "id": 1,
  "priority": 1,
  "action": {
    "type": "redirect",
    "redirect": {
      "regexSubstitution": "https://\\1.xyz.com/"
    }
  },
  "condition": {
    "regexFilter": "^https://www\\.(abc|def)\\.xyz\\.com/",
    "resourceTypes": [
      "main_frame"
    ]
  }
}

ヘッダー

次の例では、メインフレームとサブフレームの両方からすべての Cookie を削除します。

{
  "id": 1,
  "priority": 1,
  "action": {
    "type": "modifyHeaders",
    "requestHeaders": [{ "header": "cookie", "operation": "remove" }]
  },
  "condition": { "resourceTypes": ["main_frame", "sub_frame"] }
}

DomainType

これは、リクエストが送信元のフレームに対してファーストパーティかサードパーティかを示します。リクエストが送信されたフレームと同じドメイン(eTLD+1)を持つ場合、そのリクエストはファーストパーティ リクエストと見なされます。

列挙型

「firstParty」
ネットワーク リクエストは、そのリクエストが開始されたフレームのファーストパーティです。

「thirdParty」
ネットワーク リクエストは、そのリクエストが開始されたフレームのサードパーティです。

ExtensionActionOptions

Chrome 88 以降

プロパティ

  • displayActionCountAsBadgeText

    ブール値(省略可)

    ページの操作数を拡張機能のバッジテキストとして自動的に表示するかどうか。この設定はセッション間で保持されます。

  • tabUpdate
    Chrome 89 以降

    タブのアクション数を調整する方法の詳細。

GetDisabledRuleIdsOptions

Chrome 111+

プロパティ

  • rulesetId

    文字列

    静的 Ruleset に対応する ID。

GetRulesFilter

Chrome 111+

プロパティ

  • ruleIds

    number[] 省略可

    指定した場合、一致する ID を持つルールのみが含まれます。

HeaderInfo

Chrome 128 以降

プロパティ

  • excludedValues

    string[] 省略可

    指定した場合、ヘッダーが存在し、その値にこのリストの要素が 1 つ以上含まれていると、この条件は一致しません。これは values と同じ一致パターンの構文を使用します。

  • header

    文字列

    ヘッダーの名前。この条件は、valuesexcludedValues の両方が指定されていない場合にのみ、名前に一致します。

  • values

    string[] 省略可

    指定した場合、ヘッダーの値がこのリスト内の少なくとも 1 つのパターンと一致すると、この条件は一致します。これにより、大文字と小文字を区別しないヘッダー値の一致と、次の構造がサポートされます。

    「*」 : 任意の数の文字に一致します。

    「?」 : 0 個または 1 個の文字に一致します。

    '*' と '?' はバックスラッシュでエスケープできます(例: '\*'、'\?')。

HeaderOperation

Chrome 86 以降

ここでは、modifyHeaders ルールの可能なオペレーションについて説明します。

列挙型

「append」
指定されたヘッダーの新しいエントリを追加します。このオペレーションはリクエスト ヘッダーではサポートされていません。

「set」
指定されたヘッダーの新しい値を設定し、同じ名前の既存のヘッダーを削除します。

「remove」
指定されたヘッダーのすべてのエントリを削除します。

IsRegexSupportedResult

Chrome 87 以降

プロパティ

  • isSupported

    ブール値

  • reason

    正規表現がサポートされていない理由を指定します。isSupported が false の場合にのみ指定されます。

MatchedRule

プロパティ

  • ruleId

    数値

    一致するルールの ID。

  • rulesetId

    文字列

    このルールが属する Ruleset の ID。動的ルールのセットから発信されたルールの場合、これは DYNAMIC_RULESET_ID と同じになります。

MatchedRuleInfo

プロパティ

  • ルール
  • tabId

    数値

    リクエストの送信元タブの tabId(タブがまだアクティブな場合)。それ以外の場合は -1。

  • timeStamp

    数値

    ルールが一致した時刻。タイムスタンプは、Javascript の時刻の慣例(エポックからの経過ミリ秒数)に対応します。

MatchedRuleInfoDebug

プロパティ

MatchedRulesFilter

プロパティ

  • minTimeStamp

    number 省略可

    指定した場合、指定されたタイムスタンプ以降のルールのみが一致します。

  • tabId

    number 省略可

    指定されている場合、指定されたタブのルールのみが一致します。-1 に設定されている場合、アクティブなタブに関連付けられていないルールに一致します。

ModifyHeaderInfo

Chrome 86 以降

プロパティ

  • header

    文字列

    変更するヘッダーの名前。

  • オペレーション

    ヘッダーに対して実行するオペレーション。

  • 文字列 省略可

    ヘッダーの新しい値。append オペレーションと set オペレーションで指定する必要があります。

QueryKeyValue

プロパティ

  • key

    文字列

  • replaceOnly

    ブール値(省略可)

    Chrome 94 以降

    true の場合、クエリキーがすでに存在する場合にのみ置き換えられます。それ以外の場合は、キーがない場合に追加されます。デフォルトは false です。

  • 文字列

QueryTransform

プロパティ

  • addOrReplaceParams

    QueryKeyValue[] 省略可

    追加または置換するクエリ Key-Value ペアのリスト。

  • removeParams

    string[] 省略可

    削除するクエリキーのリスト。

Redirect

プロパティ

  • extensionPath

    文字列 省略可

    拡張機能ディレクトリからの相対パス。「/」で始める必要があります。

  • regexSubstitution

    文字列 省略可

    regexFilter を指定するルールの置換パターン。URL 内の regexFilter の最初のマッチがこのパターンに置き換えられます。regexSubstitution 内で、バックスラッシュでエスケープされた数字(\1 ~\9)を使用して、対応するキャプチャ グループを挿入できます。\0 は、一致するテキスト全体を参照します。

  • 変換

    URLTransform 省略可

    実行する URL 変換。

  • URL

    文字列 省略可

    リダイレクト URL。JavaScript URL へのリダイレクトは許可されていません。

RegexOptions

Chrome 87 以降

プロパティ

  • isCaseSensitive

    ブール値(省略可)

    指定された regex で大文字と小文字が区別されるかどうか。デフォルトは true です。

  • regex

    文字列

    チェックする正規表現。

  • requireCapturing

    ブール値(省略可)

    指定された regex でキャプチャが必要かどうか。キャプチャが必要なのは、regexSubstition アクションを指定するリダイレクト ルールのみです。デフォルトは false です。

RequestDetails

プロパティ

  • documentId

    文字列 省略可

    Chrome 106 以降

    このリクエストがフレームに対するものである場合、フレームのドキュメントの一意の識別子。

  • documentLifecycle
    Chrome 106 以降

    このリクエストがフレームに対するものである場合、フレームのドキュメントのライフサイクル。

  • frameId

    数値

    値 0 は、リクエストがメインフレームで発生したことを示します。正の値は、リクエストが発生したサブフレームの ID を示します。(サブ)フレームのドキュメントが読み込まれた場合(typemain_frame または sub_frame の場合)、frameId は外側のフレームの ID ではなく、このフレームの ID を示します。フレーム ID はタブ内で一意です。

  • frameType

    FrameType 省略可

    Chrome 106 以降

    このリクエストがフレームに対するものである場合のフレームのタイプ。

  • イニシエータ

    文字列 省略可

    リクエストが開始されたオリジン。これはリダイレクトによって変更されません。これが不透明なオリジンである場合は、文字列「null」が使用されます。

  • method

    文字列

    標準の HTTP メソッド。

  • parentDocumentId

    文字列 省略可

    Chrome 106 以降

    このリクエストがフレームに対するもので、親がある場合、フレームの親ドキュメントの固有識別子。

  • parentFrameId

    数値

    リクエストを送信したフレームをラップするフレームの ID。親フレームが存在しない場合は -1 に設定します。

  • requestId

    文字列

    リクエストの ID。リクエスト ID はブラウザ セッション内で一意です。

  • tabId

    数値

    リクエストが行われるタブの ID。リクエストがタブに関連付けられていない場合は -1 に設定します。

  • リクエストのリソースタイプ。

  • URL

    文字列

    リクエストの URL。

RequestMethod

Chrome 91 以降

ネットワーク リクエストの HTTP リクエスト メソッドを表します。

列挙型

"connect"

"delete"

"get"

"head"

"options"

"patch"

"post"

"put"

"other"

ResourceType

これは、ネットワーク リクエストのリソースタイプを表します。

列挙型

"main_frame"

"sub_frame"

"stylesheet"

"script"

"image"

"font"

"object"

"xmlhttprequest"

"ping"

"csp_report"

"media"

"websocket"

"webtransport"

"webbundle"

"other"

Rule

プロパティ

  • アクション

    このルールが一致した場合に実行するアクション。

  • 状態

    このルールがトリガーされる条件。

  • id

    数値

    ルールを一意に識別する ID。必須で、1 以上にする必要があります。

  • priority

    number 省略可

    ルールの優先度。デフォルトは 1 です。指定する場合は、1 以上にする必要があります。

RuleAction

プロパティ

  • リダイレクト

    Redirect 省略可

    リダイレクトの実行方法を記述します。リダイレクト ルールでのみ有効です。

  • requestHeaders

    ModifyHeaderInfo[] 省略可

    Chrome 86 以降

    リクエストで変更するリクエスト ヘッダー。RuleActionType が "modifyHeaders" の場合にのみ有効です。

  • responseHeaders

    ModifyHeaderInfo[] 省略可

    Chrome 86 以降

    リクエストで変更するレスポンス ヘッダー。RuleActionType が "modifyHeaders" の場合にのみ有効です。

  • 実行するアクションのタイプ。

RuleActionType

特定の RuleCondition が一致した場合に実行するアクションの種類を記述します。

列挙型

「block」
ネットワーク リクエストをブロックします。

「redirect」
ネットワーク リクエストをリダイレクトします。

「allow」
ネットワーク リクエストを許可します。リクエストに一致する許可ルールがある場合、リクエストはインターセプトされません。

「upgradeScheme」
リクエストが http または ftp の場合、ネットワーク リクエスト URL のスキームを https にアップグレードします。

「modifyHeaders」
ネットワーク リクエストからリクエスト ヘッダーとレスポンス ヘッダーを変更します。

"allowAllRequests"
フレーム リクエスト自体を含む、フレーム階層内のすべてのリクエストを許可します。

RuleCondition

プロパティ

  • domainType

    DomainType 省略可

    ネットワーク リクエストが、そのリクエストの送信元ドメインに対してファーストパーティかサードパーティかを指定します。省略すると、すべてのリクエストが受け入れられます。

  • domains

    string[] 省略可

    Chrome 101 以降で非推奨

    代わりに initiatorDomains を使用してください

    このルールは、domains のリストから発信されたネットワーク リクエストにのみ一致します。

  • excludedDomains

    string[] 省略可

    Chrome 101 以降で非推奨

    代わりに excludedInitiatorDomains を使用してください

    このルールは、excludedDomains のリストから発信されたネットワーク リクエストと一致しません。

  • excludedInitiatorDomains

    string[] 省略可

    Chrome 101 以降

    このルールは、excludedInitiatorDomains のリストから発信されたネットワーク リクエストと一致しません。リストが空の場合や省略されている場合は、除外されるドメインはありません。これは initiatorDomains よりも優先されます。

    注:

    • 「a.example.com」などのサブドメインも使用できます。
    • エントリは ASCII 文字のみで構成されている必要があります。
    • 国際化ドメイン名には Punycode エンコードを使用します。
    • これは、リクエスト URL ではなく、リクエスト イニシエータと照合されます。
    • リストに記載されているドメインのサブドメインも除外されます。
  • excludedRequestDomains

    string[] 省略可

    Chrome 101 以降

    ドメインが excludedRequestDomains のリストのいずれかに一致する場合、ルールはネットワーク リクエストと一致しません。リストが空の場合や省略されている場合は、除外されるドメインはありません。これは requestDomains よりも優先されます。

    注:

    • 「a.example.com」などのサブドメインも使用できます。
    • エントリは ASCII 文字のみで構成されている必要があります。
    • 国際化ドメイン名には Punycode エンコードを使用します。
    • リストに記載されているドメインのサブドメインも除外されます。
  • excludedRequestMethods

    RequestMethod[] 省略可

    Chrome 91 以降

    ルールが一致しないリクエスト メソッドのリスト。requestMethodsexcludedRequestMethods のどちらか 1 つのみを指定します。どちらも指定されていない場合、すべてのリクエスト メソッドが一致します。

  • excludedResourceTypes

    ResourceType[] 省略可

    ルールが一致しないリソースタイプのリスト。resourceTypesexcludedResourceTypes のどちらか 1 つのみを指定します。どちらも指定されていない場合は、「main_frame」を除くすべてのリソースタイプがブロックされます。

  • excludedResponseHeaders

    HeaderInfo[] 省略可

    Chrome 128 以降

    リクエストがこのリストのレスポンス ヘッダー条件(指定されている場合)のいずれかに一致する場合、ルールは一致しません。excludedResponseHeadersresponseHeaders の両方が指定されている場合は、excludedResponseHeaders プロパティが優先されます。

  • excludedTabIds

    number[] 省略可

    Chrome 92 以降

    ルールが一致しない tabs.Tab.id のリスト。tabs.TAB_ID_NONE の ID は、タブから発生していないリクエストを除外します。セッション スコープのルールでのみサポートされます。

  • initiatorDomains

    string[] 省略可

    Chrome 101 以降

    このルールは、initiatorDomains のリストから発信されたネットワーク リクエストにのみ一致します。リストを省略すると、すべてのドメインからのリクエストにルールが適用されます。空のリストは使用できません。

    注:

    • 「a.example.com」などのサブドメインも使用できます。
    • エントリは ASCII 文字のみで構成されている必要があります。
    • 国際化ドメイン名には Punycode エンコードを使用します。
    • これは、リクエスト URL ではなく、リクエスト イニシエータと照合されます。
    • リストに登録されているドメインのサブドメインも一致します。
  • isUrlFilterCaseSensitive

    ブール値(省略可)

    urlFilter または regexFilter(指定された方)で大文字と小文字が区別されるかどうか。デフォルトは false です。

  • regexFilter

    文字列 省略可

    ネットワーク リクエストの URL と照合する正規表現。これは RE2 構文に従います。

    注: 指定できるのは urlFilter または regexFilter のいずれか 1 つのみです。

    注: regexFilter は ASCII 文字のみで構成する必要があります。これは、ホストが punycode 形式でエンコードされ(国際化ドメインの場合)、他の ASCII 以外の文字が utf-8 で URL エンコードされている URL と照合されます。

  • requestDomains

    string[] 省略可

    Chrome 101 以降

    このルールは、ドメインが requestDomains のリストのいずれかと一致する場合にのみ、ネットワーク リクエストと一致します。リストを省略すると、すべてのドメインからのリクエストにルールが適用されます。空のリストは使用できません。

    注:

    • 「a.example.com」などのサブドメインも使用できます。
    • エントリは ASCII 文字のみで構成されている必要があります。
    • 国際化ドメイン名には Punycode エンコードを使用します。
    • リストに登録されているドメインのサブドメインも一致します。
  • requestMethods

    RequestMethod[] 省略可

    Chrome 91 以降

    ルールが照合できる HTTP リクエスト メソッドのリスト。空のリストは使用できません。

    注: requestMethods ルール条件を指定すると、HTTP(s) 以外のリクエストも除外されますが、excludedRequestMethods を指定しても除外されません。

  • resourceTypes

    ResourceType[] 省略可

    ルールが一致するリソースタイプのリスト。空のリストは使用できません。

    注: これは allowAllRequests ルールで指定する必要があり、sub_frame リソースタイプと main_frame リソースタイプのみを含めることができます。

  • responseHeaders

    HeaderInfo[] 省略可

    Chrome 128 以降

    リクエストがこのリストのレスポンス ヘッダー条件のいずれかに一致する場合、ルールが一致します(指定されている場合)。

  • tabIds

    number[] 省略可

    Chrome 92 以降

    ルールが一致する必要がある tabs.Tab.id のリスト。tabs.TAB_ID_NONE の ID は、タブから発信されていないリクエストと一致します。空のリストは使用できません。セッション スコープのルールでのみサポートされます。

  • urlFilter

    文字列 省略可

    ネットワーク リクエストの URL と照合されるパターン。サポートされているコンストラクト:

    「*」 : ワイルドカード: 任意の数の文字に一致します。

    '|' : 左/右アンカー: パターンのいずれかの端で使用すると、それぞれ URL の先頭/末尾を指定します。

    '||' : ドメイン名アンカー: パターンの先頭で使用すると、URL の(サブ)ドメインの開始を指定します。

    '^': 区切り文字: 文字、数字、_-.% 以外のものに一致します。これは URL の末尾にも一致します。

    したがって、urlFilter は、(左/ドメイン名のアンカー(省略可))+ パターン +(右アンカー(省略可))で構成されます。

    省略すると、すべての URL が照合されます。空の文字列は使用できません。

    ||* で始まるパターンは許可されていません。代わりに * を使用してください。

    注: 指定できるのは urlFilter または regexFilter のいずれか 1 つのみです。

    注: urlFilter は ASCII 文字のみで構成する必要があります。これは、ホストが punycode 形式でエンコードされ(国際化ドメインの場合)、他の ASCII 以外の文字が utf-8 で URL エンコードされている URL と照合されます。たとえば、リクエスト URL が http://abc.рф?q=ф の場合、urlFilter は URL http://abc.xn--p1ai/?q=%D1%84 と照合されます。

Ruleset

プロパティ

  • 有効

    ブール値

    ルールセットがデフォルトで有効になっているかどうか。

  • id

    文字列

    ルールセットを一意に識別する空でない文字列。「_」で始まる ID は内部使用のために予約されています。

  • パス

    文字列

    拡張機能ディレクトリを基準とする JSON ルールセットのパス。

RulesMatchedDetails

プロパティ

  • rulesMatchedInfo

    指定されたフィルタに一致するルール。

TabActionCountUpdate

Chrome 89 以降

プロパティ

  • インクリメント

    数値

    タブのアクション数を増やす量。負の値はカウントを減らします。

  • tabId

    数値

    アクション数を更新するタブ。

TestMatchOutcomeResult

Chrome 103 以降

プロパティ

  • matchedRules

    仮説リクエストに一致するルール(存在する場合)。

TestMatchRequestDetails

Chrome 103 以降

プロパティ

  • イニシエータ

    文字列 省略可

    仮想リクエストのイニシエータ URL(存在する場合)。

  • method

    RequestMethod 省略可

    仮説リクエストの標準 HTTP メソッド。HTTP リクエストのデフォルトは「get」で、HTTP 以外のリクエストでは無視されます。

  • responseHeaders

    オブジェクト 省略可

    Chrome 129 以降

    リクエストが送信される前にブロックまたはリダイレクトされない場合に、仮説的なレスポンスによって提供されるヘッダー。ヘッダー名を文字列値のリストにマッピングするオブジェクトとして表されます。指定されていない場合、仮説レスポンスは空のレスポンス ヘッダーを返します。これは、ヘッダーが存在しない場合に一致するルールと一致する可能性があります。例: {"content-type": ["text/html; charset=utf-8", "multipart/form-data"]}

  • tabId

    number 省略可

    仮説リクエストが行われるタブの ID。実際のタブ ID に対応している必要はありません。デフォルトは -1 で、リクエストがタブに関連付けられていないことを意味します。

  • 仮説リクエストのリソースタイプ。

  • URL

    文字列

    仮説リクエストの URL。

UnsupportedRegexReason

Chrome 87 以降

特定の正規表現がサポートされていない理由を説明します。

列挙型

"syntaxError"
正規表現の構文が正しくないか、RE2 構文で使用できない機能が使用されています。

「memoryLimitExceeded」
正規表現がメモリの上限を超えています。

UpdateRuleOptions

Chrome 87 以降

プロパティ

  • addRules

    Rule[] 省略可

    追加するルール。

  • removeRuleIds

    number[] 省略可

    削除するルールの ID。無効な ID は無視されます。

UpdateRulesetOptions

Chrome 87 以降

プロパティ

  • disableRulesetIds

    string[] 省略可

    無効にする必要がある静的 Ruleset に対応する ID のセット。

  • enableRulesetIds

    string[] 省略可

    有効にする静的 Ruleset に対応する ID のセット。

UpdateStaticRulesOptions

Chrome 111+

プロパティ

  • disableRuleIds

    number[] 省略可

    無効にする Ruleset のルールに対応する ID のセット。

  • enableRuleIds

    number[] 省略可

    有効にする Ruleset のルールに対応する ID のセット。

  • rulesetId

    文字列

    静的 Ruleset に対応する ID。

URLTransform

プロパティ

  • fragment

    文字列 省略可

    リクエストの新しいフラグメント。空にするか、「#」で始める必要があります。空にした場合は、既存のフラグメントがクリアされます。

  • ホスト

    文字列 省略可

    リクエストの新しいホスト。

  • パスワード

    文字列 省略可

    リクエストの新しいパスワード。

  • パス

    文字列 省略可

    リクエストの新しいパス。空の場合、既存のパスはクリアされます。

  • ポート

    文字列 省略可

    リクエストの新しいポート。空の場合、既存のポートはクリアされます。

  • クエリ

    文字列 省略可

    リクエストの新しいクエリ。空にするか、'?' で始める必要があります。空にした場合は、既存のクエリがクリアされます。

  • queryTransform

    QueryTransform (省略可)

    クエリの Key-Value ペアを追加、削除、または置換します。

  • スキーム

    文字列 省略可

    リクエストの新しいスキーム。使用できる値は、「http」、「https」、「ftp」、「chrome-extension」です。

  • ユーザー名

    文字列 省略可

    リクエストの新しいユーザー名。

プロパティ

DYNAMIC_RULESET_ID

拡張機能によって追加された動的ルールのルールセット ID。

"_dynamic"

GETMATCHEDRULES_QUOTA_INTERVAL

MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules 呼び出しを行うことができる時間間隔(分単位)。追加の呼び出しはすぐに失敗し、runtime.lastError を設定します。注: ユーザー操作に関連付けられた getMatchedRules 呼び出しは割り当ての対象外です。

10

GUARANTEED_MINIMUM_STATIC_RULES

Chrome 89 以降

有効な静的ルールセット全体で拡張機能に保証される静的ルールの最小数。この上限を超えるルールは、グローバル静的ルールの上限としてカウントされます。

30000

MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL

GETMATCHEDRULES_QUOTA_INTERVAL の期間内に getMatchedRules を呼び出すことができる回数。

20

MAX_NUMBER_OF_DYNAMIC_RULES

拡張機能が追加できる動的ルールの最大数。

30000

MAX_NUMBER_OF_ENABLED_STATIC_RULESETS

Chrome 94 以降

拡張機能が一度に有効にできる静的 Rulesets の最大数。

50

MAX_NUMBER_OF_REGEX_RULES

拡張機能が追加できる正規表現ルールの最大数。この上限は、動的ルールのセットとルール リソース ファイルで指定されたルールに対して個別に評価されます。

1000

MAX_NUMBER_OF_SESSION_RULES

Chrome 120 以降

拡張機能が追加できるセッション スコープ ルールの最大数。

5000

MAX_NUMBER_OF_STATIC_RULESETS

拡張機能が "rule_resources" マニフェスト キーの一部として指定できる静的 Rulesets の最大数。

100

MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES

Chrome 120 以降

拡張機能が追加できる「安全でない」動的ルールの最大数。

5000

MAX_NUMBER_OF_UNSAFE_SESSION_RULES

Chrome 120 以降

拡張機能が追加できる「安全でない」セッション スコープ ルールの最大数。

5000

SESSION_RULESET_ID

Chrome 90 以降

拡張機能によって追加されたセッション スコープのルールのルールセット ID。

"_session"

メソッド

getAvailableStaticRuleCount()

Promise Chrome 89 以降
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
  callback?: function,
)
: Promise<number>

拡張機能が有効にできる静的ルールの数(グローバル静的ルールの上限に達するまで)を返します。

パラメータ

  • callback

    関数 省略可

    callback パラメータは次のようになります。

    (count: number) => void

    • count

      数値

戻り値

  • Promise<number>

    Chrome 91 以降

    Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。

getDisabledRuleIds()

Promise Chrome 111 以降
chrome.declarativeNetRequest.getDisabledRuleIds(
  options: GetDisabledRuleIdsOptions,
  callback?: function,
)
: Promise<number[]>

現在無効になっている、指定された Ruleset 内の静的ルールのリストを返します。

パラメータ

  • オプション

    クエリするルールセットを指定します。

  • callback

    関数 省略可

    callback パラメータは次のようになります。

    (disabledRuleIds: number[]) => void

    • disabledRuleIds

      number[]

戻り値

  • Promise<number[]>

    Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。

getDynamicRules()

Promise
chrome.declarativeNetRequest.getDynamicRules(
  filter?: GetRulesFilter,
  callback?: function,
)
: Promise<Rule[]>

拡張機能の現在の動的ルールのセットを返します。発信者は、filter を指定して、取得したルールのリストをフィルタできます。

パラメータ

  • フィルタ

    GetRulesFilter 省略可

    Chrome 111+

    取得したルールのリストをフィルタするオブジェクト。

  • callback

    関数 省略可

    callback パラメータは次のようになります。

    (rules: Rule[]) => void

戻り値

  • Promise<Rule[]>

    Chrome 91 以降

    Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。

getEnabledRulesets()

Promise
chrome.declarativeNetRequest.getEnabledRulesets(
  callback?: function,
)
: Promise<string[]>

現在有効になっている静的ルールセットの ID のセットを返します。

パラメータ

  • callback

    関数 省略可

    callback パラメータは次のようになります。

    (rulesetIds: string[]) => void

    • rulesetIds

      string[]

戻り値

  • Promise<string[]>

    Chrome 91 以降

    Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。

getMatchedRules()

Promise
chrome.declarativeNetRequest.getMatchedRules(
  filter?: MatchedRulesFilter,
  callback?: function,
)
: Promise<RulesMatchedDetails>

拡張機能に一致するすべてのルールを返します。呼び出し元は、必要に応じて filter を指定して、一致するルールのリストをフィルタできます。このメソッドは、"declarativeNetRequestFeedback" 権限を持つ拡張機能、または filter で指定された tabId に対して "activeTab" 権限が付与されている拡張機能でのみ使用できます。注: 5 分以上前に一致した、アクティブなドキュメントに関連付けられていないルールは返されません。

パラメータ

戻り値

  • Chrome 91 以降

    Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。

getSessionRules()

Promise Chrome 90 以降
chrome.declarativeNetRequest.getSessionRules(
  filter?: GetRulesFilter,
  callback?: function,
)
: Promise<Rule[]>

拡張機能の現在のセッション スコープ ルールのセットを返します。発信者は、filter を指定して、取得したルールのリストをフィルタできます。

パラメータ

  • フィルタ

    GetRulesFilter 省略可

    Chrome 111+

    取得したルールのリストをフィルタするオブジェクト。

  • callback

    関数 省略可

    callback パラメータは次のようになります。

    (rules: Rule[]) => void

戻り値

  • Promise<Rule[]>

    Chrome 91 以降

    Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。

isRegexSupported()

Promise Chrome 87 以降
chrome.declarativeNetRequest.isRegexSupported(
  regexOptions: RegexOptions,
  callback?: function,
)
: Promise<IsRegexSupportedResult>

指定された正規表現が regexFilter ルール条件としてサポートされるかどうかを確認します。

パラメータ

戻り値

  • Chrome 91 以降

    Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。

setExtensionActionOptions()

Promise Chrome 88 以降
chrome.declarativeNetRequest.setExtensionActionOptions(
  options: ExtensionActionOptions,
  callback?: function,
)
: Promise<void>

タブのアクション数を拡張機能アクションのバッジ テキストとして表示するかどうかを設定し、アクション数を増やす方法を提供します。

パラメータ

  • オプション
  • callback

    関数 省略可

    Chrome 89 以降

    callback パラメータは次のようになります。

    () => void

戻り値

  • Promise<void>

    Chrome 91 以降

    Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。

testMatchOutcome()

Promise Chrome 103 以降
chrome.declarativeNetRequest.testMatchOutcome(
  request: TestMatchRequestDetails,
  callback?: function,
)
: Promise<TestMatchOutcomeResult>

拡張機能の declarativeNetRequest ルールのいずれかが仮説リクエストと一致するかどうかを確認します。注: この機能は、拡張機能の開発時にのみ使用することを想定しているため、パッケージ化されていない拡張機能でのみ使用できます。

パラメータ

戻り値

  • Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。

updateDynamicRules()

Promise
chrome.declarativeNetRequest.updateDynamicRules(
  options: UpdateRuleOptions,
  callback?: function,
)
: Promise<void>

拡張機能の現在の動的ルールのセットを変更します。最初に options.removeRuleIds にリストされている ID のルールが削除され、次に options.addRules で指定されたルールが追加されます。注:

  • この更新は単一のアトミック オペレーションとして行われます。指定されたすべてのルールが追加および削除されるか、エラーが返されます。
  • これらのルールは、ブラウザ セッションと拡張機能のアップデートにわたって保持されます。
  • 拡張機能パッケージの一部として指定された静的ルールは、この関数を使用して削除できません。
  • MAX_NUMBER_OF_DYNAMIC_RULES は、拡張機能が追加できる動的ルールの最大数です。安全でないルールの数は MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES を超えてはなりません。

パラメータ

  • オプション
    Chrome 87 以降
  • callback

    関数 省略可

    callback パラメータは次のようになります。

    () => void

戻り値

  • Promise<void>

    Chrome 91 以降

    Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。

updateEnabledRulesets()

Promise
chrome.declarativeNetRequest.updateEnabledRulesets(
  options: UpdateRulesetOptions,
  callback?: function,
)
: Promise<void>

拡張機能で有効になっている静的ルールセットのセットを更新します。最初に options.disableRulesetIds にリストされている ID のルールセットが削除され、次に options.enableRulesetIds にリストされているルールセットが追加されます。有効な静的ルールセットのセットはセッション間で保持されますが、拡張機能のアップデート間では保持されません。つまり、rule_resources マニフェスト キーによって、各拡張機能のアップデートで有効な静的ルールセットのセットが決まります。

パラメータ

  • オプション
    Chrome 87 以降
  • callback

    関数 省略可

    callback パラメータは次のようになります。

    () => void

戻り値

  • Promise<void>

    Chrome 91 以降

    Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。

updateSessionRules()

Promise Chrome 90 以降
chrome.declarativeNetRequest.updateSessionRules(
  options: UpdateRuleOptions,
  callback?: function,
)
: Promise<void>

拡張機能の現在のセッション スコープ ルールのセットを変更します。最初に options.removeRuleIds にリストされている ID のルールが削除され、次に options.addRules で指定されたルールが追加されます。注:

  • この更新は単一のアトミック オペレーションとして行われます。指定されたすべてのルールが追加および削除されるか、エラーが返されます。
  • これらのルールはセッション間で保持されず、メモリにバックアップされます。
  • MAX_NUMBER_OF_SESSION_RULES は、拡張機能が追加できるセッション ルールの最大数です。

パラメータ

  • オプション
  • callback

    関数 省略可

    callback パラメータは次のようになります。

    () => void

戻り値

  • Promise<void>

    Chrome 91 以降

    Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。

updateStaticRules()

Promise Chrome 111 以降
chrome.declarativeNetRequest.updateStaticRules(
  options: UpdateStaticRulesOptions,
  callback?: function,
)
: Promise<void>

Ruleset 内の個々の静的ルールを無効または有効にします。無効になっている Ruleset に属するルールの変更は、次回有効になったときに反映されます。

パラメータ

  • オプション
  • callback

    関数 省略可

    callback パラメータは次のようになります。

    () => void

戻り値

  • Promise<void>

    Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。

イベント

onRuleMatchedDebug

chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
  callback: function,
)

ルールがリクエストと一致したときに呼び出されます。これはデバッグ目的でのみ使用されるため、"declarativeNetRequestFeedback" 権限を持つパッケージ化されていない拡張機能でのみ使用できます。

パラメータ