chrome.declarativeNetRequest

説明

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

権限

declarativeNetRequest
declarativeNetRequestWithHostAccess

declarativeNetRequest」と「declarativeNetRequestWithHostAccess」権限 同じ機能を提供します。両者の違いは、権限の付与と 許可または拒否されます。

"declarativeNetRequest"
インストール時に権限の警告をトリガーしますが、次のリソースへの暗黙的なアクセスを提供します。 allowallowAllRequestsblock のルール。これを回避できる場合は、この方法を使用します。 ホストへの完全アクセス権をリクエストする必要があります。
"declarativeNetRequestFeedback"
パッケージ化されていない拡張機能(具体的には getMatchedRules()onRuleMatchedDebug)のデバッグ機能を有効にします。
"declarativeNetRequestWithHostAccess"
インストール時に権限の警告が表示されないが、ホストをリクエストする必要がある 権限を事前に付与しておく必要があります。この 宣言型のネット リクエスト ルールを すでにホスト権限が付与されており、追加の権限は生成されていません。 表示されます。

対象

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" キーを使用して定義されます。無効化できる静的ルールの上限は 5,000 個です。

静的ルールセットを有効または無効にするには、updateEnabledRulesets() を呼び出します。このメソッドは UpdateRulesetOptions オブジェクトを受け取ります。このオブジェクトには、有効または無効にするルールセットの ID の配列が含まれます。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"]
  }
}

URL の一致判定

宣言型ネット リクエストでは、いずれかのパターンで URL を照合できます。 正規表現を使用して照合できます。

URL フィルタの構文

ルールの "condition" キーを使用すると、"urlFilter" キーを使用して、指定したドメインの URL にアクションを実行できます。パターン マッチング トークンを使用してパターンを作成します。いくつか例を挙げましょう。

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://a.example.company
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

正規表現

条件では正規表現を使用することもできます。詳しくは、 "regexFilter" キー詳細については、 制限については、以下をご覧ください。 正規表現を使用するルール

適切な URL 条件を記述する

常にドメイン全体に一致するようにルールを作成するときは注意が必要です。それ以外の場合: ルールが予期せず一致する場合があります。たとえば、 パターン照合の構文:

  • google.comhttps://example.com/?param=google.com と誤って一致します
  • ||google.comhttps://google.company と誤って一致します
  • https://www.google.comhttps://example.com/?param=https://www.google.com と誤って一致します

以下を検討してください。

  • ||google.com/: すべてのパスとサブドメインに一致します。
  • |https://www.google.com/: すべてのパスに一致し、サブドメインは一致しません。

同様に、正規表現を固定するには ^ 文字と / 文字を使用します。対象 たとえば、^https:\/\/www\.google\.com\/ は https://www.google.com.

ルールの評価

DNR ルールは、ネットワーク リクエストのライフサイクルのさまざまな段階でブラウザによって適用されます。

リクエスト前

拡張機能は、リクエストが行われる前に、一致するルールを使用してリクエストをブロックまたはリダイレクトできます(スキームの HTTP から HTTPS へのアップグレードを含む)。

ブラウザは拡張機能ごとに、一致するルールのリストを決定します。modifyHeaders アクションを含むルールは後で処理されるため、ここには含まれません。また、responseHeaders 条件を含むルールは、後で(レスポンス ヘッダーが利用できる場合)考慮され、含まれません。

その後、拡張機能ごとに、リクエストごとに最大 1 つの候補が選択されます。Chrome は、一致するすべてのルールを優先度順に並べて、一致するルールを見つけます。同じ優先度のルールの場合は、アクション(allow または allowAllRequests > block > upgradeScheme > redirect)の順になります。

候補が allow ルールまたは allowAllRequests ルールの場合、またはリクエストが行われているフレームが、この拡張機能の優先度の高いまたは同等の allowAllRequests ルールに一致した場合、リクエストは「許可」されます。拡張機能はリクエストには作用しません。

複数の拡張機能がこのリクエストをブロックまたはリダイレクトする場合は、実行するアクションが 1 つ選択されます。Chrome はルールを block > の順序で並べ替えます。redirect または upgradeScheme >allow または allowAllRequests。同じ種類のルールが 2 つある場合は、最後にインストールされた拡張機能のルールが選択されます。

リクエスト ヘッダーの送信前

Chrome がリクエスト ヘッダーをサーバーに送信する前に、ヘッダーは一致する modifyHeaders ルールに基づいて更新されます。

Chrome では、1 つの拡張機能内で、一致するすべての modifyHeaders ルールを検索することで、実行する変更のリストを作成します。以前と同様に、一致する allow ルールまたは allowAllRequests ルールよりも優先度の高いルールのみが含まれます。

これらのルールは、より最近インストールされた拡張機能のルールが常に古い拡張機能のルールよりも先に評価されるという順序で、Chrome によって適用されます。また、1 つの広告表示オプションの優先度が高いルールは常に、同じ広告表示オプションの優先度の低いルールよりも常に適用されます。拡張機能をまたいでも注目すべき点:

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

レスポンスの受信後

レスポンス ヘッダーを受信すると、Chrome は responseHeaders 条件を含むルールを評価します。

これらのルールを actionpriority で並べ替え、allow または allowAllRequests の一致するルールによって冗長になったルール(「リクエストの前」の手順と同じ)を除外した後、Chrome は拡張機能の代わりにリクエストをブロックまたはリダイレクトすることがあります。

リクエストがこのステージに到達した場合、リクエストはすでにサーバーに送信され、サーバーはリクエスト本文などのデータを受信しています。レスポンス ヘッダーの条件を含むブロックルールまたはリダイレクト ルールは引き続き実行されますが、リクエストを実際にブロックまたはリダイレクトすることはできません。

ブロックルールの場合、これはリクエストがブロックされたレスポンスの受信元ページによって処理され、Chrome はリクエストを早期に終了します。リダイレクト ルールの場合、Chrome はリダイレクト URL に対して新しいリクエストを作成します。これらの動作が拡張機能のプライバシーの要件を満たしているかどうか確認してください。

リクエストがブロックまたはリダイレクトされない場合、Chrome はすべての modifyHeaders ルールを適用します。レスポンス ヘッダーの変更の適用は、「リクエスト ヘッダーが送信される前」で説明した方法で行われます。リクエスト ヘッダーに変更を加えても、リクエストはすでに完了しているため、何も起こりません。

安全なルール

安全なルールは、アクションが blockallowallowAllRequests または upgradeScheme。これらのルールには、 ダイナミック ルールの割り当て

ルールの制限事項

ブラウザでルールを読み込んで評価すると、パフォーマンスのオーバーヘッドが発生します。 API を使用する場合はいくつかの制限が適用されます。上限は 確認できます。

静的ルール

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

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

セッション ルール

拡張機能には最大 5,000 個のセッション ルールを設定できます。これは MAX_NUMBER_OF_SESSION_RULES

Chrome 120 より前は、動的ルールとセッション ルールを合わせて 5, 000 個という上限がありました。

ダイナミック ルール

広告表示オプションにはダイナミック ルールを 5,000 件以上設定できます。これは MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES

Chrome 121 以降では、安全なダイナミック ルールに使用できるルール数の上限が 30,000 件に引き上げられます。 MAX_NUMBER_OF_DYNAMIC_RULES として公開されます。制限なし 上限である 5,000 個以内に追加された安全でないルールも、この上限にカウントされます。

Chrome 120 より前は、動的ルールとセッション ルールを合わせて 5, 000 件の上限がありました。

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

すべてのタイプのルールで正規表現を使用できます。ただし、各タイプの正規表現ルールの合計数は 1, 000 以下にする必要があります。これは MAX_NUMBER_OF_REGEX_RULES と呼ばれます。

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

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

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

declarativeNetRequest は、ネットワーク スタックに到達したリクエストにのみ適用されます。これには HTTP キャッシュからのレスポンスが含まれますが、Service Worker の onfetch ハンドラを経由するレスポンスは含まれません。declarativeNetRequest は、Service Worker によって生成されたレスポンスや CacheStorage から取得したレスポンスには影響しませんが、Service Worker での fetch() の呼び出しには影響します。

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

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

ヘッダーの変更

追記オペレーションは、ヘッダー acceptaccept-encodingaccept-languageaccess-control-request-headerscache-controlconnectioncontent-languagecookieforwardedif-matchif-none-matchkeep-aliverangetetrailertransfer-encodingupgradeuser-agentviawant-digestx-forwarded-for でのみサポートされています。

コードの例

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

次の例は、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 で拡張機能のルールが優先される仕組みを示しています。優先度ルールを別ウィンドウで開いておくことをおすすめします。

「優先度」キー

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

特定の URL の優先度を判断するには、(デベロッパー定義の)"priority" キー、"action" キー、"urlFilter" キーを調べます。以下の例では、以下に示すルール ファイルの例を参照します。

https://google.com に移動する
この URL には、ID 1 と ID 4 の 2 つのルールが適用されます。"block" 件のアクションの優先度が "redirect" 件のアクションよりも高いため、ID 1 のルールが適用されます。残りのルールは URL がより長い場合に適用されるため、適用されません。
https://google.com/1234 に移動する
URL が長いため、ID 1 と ID 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」を使用して指定します。この例では「abc」です。はリダイレクト URL から取得され、置換に配置されます。

{
  "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

    TabActionCountUpdate オプション

    Chrome 89 以降

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

GetDisabledRuleIdsOptions

Chrome 111 以降

プロパティ

  • rulesetId

    文字列

    静的 Ruleset に対応する ID。

GetRulesFilter

Chrome 111 以降

プロパティ

  • ruleIds

    数値 [] 省略可

    指定すると、ID が一致するルールのみが含まれます。

HeaderInfo

Chrome 128 以降

プロパティ

  • excludedValues

    文字列 [] 省略可

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

  • header

    文字列

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

  • values

    文字列 [] 省略可

    指定すると、ヘッダーの値がこのリストの 1 つ以上のパターンに一致する場合に、この条件が一致します。これは、大文字と小文字を区別しないヘッダー値のマッチングと、次の構造をサポートします。

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

    '?' : 0 文字または 1 文字に一致します。

    「*」および「?」バックスラッシュでエスケープできます(例:「\*」および「\?」

HeaderOperation

Chrome 86 以降

これは、「modifyHeaders」で実行されるオペレーションの説明です。適用できます。

列挙型

"append"
指定されたヘッダーに新しいエントリを追加します。この操作は、リクエスト ヘッダーではサポートされていません。

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

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

IsRegexSupportedResult

Chrome 87 以降

プロパティ

  • isSupported

    ブール値

  • reason

    UnsupportedRegexReason オプション

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

MatchedRule

プロパティ

  • ruleId

    数値

    一致するルールの ID。

  • rulesetId

    文字列

    このルールが属する Ruleset の ID。一連のダイナミック ルールに基づくルールの場合、この値は DYNAMIC_RULESET_ID になります。

MatchedRuleInfo

プロパティ

  • ルール
  • tabId

    数値

    タブがまだアクティブな場合、リクエスト送信元のタブの tabId を指定します。それ以外は -1。

  • timeStamp

    数値

    ルールが一致した時刻。タイムスタンプは JavaScript の規則の時間(エポックからのミリ秒数)に対応します。

MatchedRuleInfoDebug

プロパティ

MatchedRulesFilter

プロパティ

  • minTimeStamp

    数値(省略可)

    指定すると、指定したタイムスタンプより後のルールにのみ一致します。

  • tabId

    数値(省略可)

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

ModifyHeaderInfo

Chrome 86 以降

プロパティ

  • header

    文字列

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

  • オペレーション

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

  • 文字列(省略可)

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

QueryKeyValue

プロパティ

  • key

    文字列

  • replaceOnly

    ブール値(省略可)

    Chrome 94 以降

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

  • 文字列

QueryTransform

プロパティ

  • addOrReplaceParams

    QueryKeyValue[] 省略可

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

  • removeParams

    文字列 [] 省略可

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

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

    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 リクエスト メソッドを記述します。

列挙型

「接続」

"delete"

「get」

"head"

"options"

"patch"

"投稿"

「put」

「その他」

ResourceType

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

列挙型

"main_frame"

"sub_frame"

"スタイルシート"

"script"

"image"

"font"

"object"

"xmlhttprequest"

"ping"

"csp_report"

「media」

"websocket"

"webtransport"

"webbundle"

「その他」

Rule

プロパティ

  • アクション

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

  • 条件

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

  • id

    数値

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

  • priority

    数値(省略可)

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

RuleAction

プロパティ

  • リダイレクト

    リダイレクト (省略可)

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

  • 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

    文字列 [] 省略可

    <ph type="x-smartling-placeholder"></ph> Chrome 101 以降非推奨

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

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

  • excludedDomains

    文字列 [] 省略可

    <ph type="x-smartling-placeholder"></ph> Chrome 101 以降非推奨

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

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

  • excludedInitiatorDomains

    文字列 [] 省略可

    Chrome 101 以降

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

    注:

    • 「a.example.com」などのサブドメイン許可することもできます。
    • エントリに使用できるのは ASCII 文字のみです。
    • 国際化ドメインには Punycode エンコードを使用します。
    • これはリクエスト URL ではなくリクエスト開始者と照合されます。
    • リストに含まれるドメインのサブドメインも除外されます。
  • excludedRequestDomains

    文字列 [] 省略可

    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

    数値 [] 省略可

    Chrome 92 以降

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

  • initiatorDomains

    文字列 [] 省略可

    Chrome 101 以降

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

    注:

    • 「a.example.com」などのサブドメイン許可することもできます。
    • エントリに使用できるのは ASCII 文字のみです。
    • 国際化ドメインには Punycode エンコードを使用します。
    • これはリクエスト URL ではなくリクエスト開始者と照合されます。
    • リストされたドメインのサブドメインも照合されます。
  • isUrlFilterCaseSensitive

    ブール値(省略可)

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

  • regexFilter

    文字列(省略可)

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

    注: urlFilter または regexFilter のいずれかを指定できます。

    注: regexFilter に使用できるのは ASCII 文字のみです。これは、ホストが Punycode 形式(国際化ドメインの場合)でエンコードされ、ASCII 以外の文字が utf-8 で URL エンコードされている URL と照合されます。

  • requestDomains

    文字列 [] 省略可

    Chrome 101 以降

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

    注:

    • 「a.example.com」などのサブドメイン許可することもできます。
    • エントリに使用できるのは ASCII 文字のみです。
    • 国際化ドメインには Punycode エンコードを使用します。
    • リストされたドメインのサブドメインも照合されます。
  • requestMethods

    RequestMethod[] 省略可

    Chrome 91 以降

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

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

  • resourceTypes

    ResourceType[] 省略可

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

    注: これは allowAllRequests ルールに指定する必要があります。リソースの種類として sub_framemain_frame のみを含めることができます。

  • responseHeaders

    HeaderInfo[] 省略可

    Chrome 128 以降

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

  • tabIds

    数値 [] 省略可

    Chrome 92 以降

    ルールに一致する tabs.Tab.id のリスト。ID tabs.TAB_ID_NONE は、タブを経由しないリクエストに一致します。空のリストは使用できません。セッション スコープのルールでのみサポートされます。

  • urlFilter

    文字列(省略可)

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

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

    '|' : 左アンカー / 右アンカー: パターンの先頭または末尾に使用する場合は、URL の先頭と末尾をそれぞれ指定します。

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

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

    そのため、urlFilter は、(任意で左/ドメイン名のアンカー)+ パターン +(任意で右のアンカー)で構成されます。

    省略すると、すべての URL が一致します。空の文字列は使用できません。

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

    注: urlFilter または regexFilter のいずれかを指定できます。

    注: urlFilter に使用できるのは ASCII 文字のみです。これは、ホストが Punycode 形式(国際化ドメインの場合)でエンコードされ、ASCII 以外の文字が utf-8 で URL エンコードされている URL と照合されます。たとえば、リクエスト URL が http://abc.р吴?q=personalized の場合、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 メソッド。デフォルトは「get」これは HTTP リクエストでは無視され、HTTP 以外のリクエストでは無視されます。

  • responseHeaders

    オブジェクト(省略可)

    保留中

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

  • tabId

    数値(省略可)

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

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

  • URL

    文字列

    仮のリクエストの URL。

UnsupportedRegexReason

Chrome 87 以降

指定した正規表現がサポートされていない理由を表します。

列挙型

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

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

UpdateRuleOptions

Chrome 87 以降

プロパティ

  • addRules

    ルール [] 省略可

    追加するルール。

  • removeRuleIds

    数値 [] 省略可

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

UpdateRulesetOptions

Chrome 87 以降

プロパティ

  • disableRulesetIds

    文字列 [] 省略可

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

  • enableRulesetIds

    文字列 [] 省略可

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

UpdateStaticRulesOptions

Chrome 111 以降

プロパティ

  • disableRuleIds

    数値 [] 省略可

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

  • enableRuleIds

    数値 [] 省略可

    有効にする 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 以降

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

30,000

MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL

GETMATCHEDRULES_QUOTA_INTERVAL 期間内に getMatchedRules を呼び出せる回数。

20

MAX_NUMBER_OF_DYNAMIC_RULES

広告表示オプションが追加できるダイナミック ルールの最大数。

30,000

MAX_NUMBER_OF_ENABLED_STATIC_RULESETS

Chrome 94 以降

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

50

MAX_NUMBER_OF_REGEX_RULES

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

1,000

MAX_NUMBER_OF_SESSION_RULES

Chrome 120 以降

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

5,000

MAX_NUMBER_OF_STATIC_RULESETS

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

100

MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES

Chrome 120 以降

「安全でない」ルールが最大件数追加できるダイナミック ルールです。

5,000

MAX_NUMBER_OF_UNSAFE_SESSION_RULES

Chrome 120 以降

「安全でない」ルールが最大件数設定することもできます。

5,000

SESSION_RULESET_ID

Chrome 90 以降

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

"_session"

メソッド

getAvailableStaticRuleCount()

<ph type="x-smartling-placeholder"></ph> 約束 Chrome 89 以降 をご覧ください。
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
  callback?: function,
)

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

パラメータ

  • callback

    関数(省略可)

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

    (count: number) => void

    • count

      数値

戻り値

  • Promise&lt;number&gt;

    Chrome 91 以降

    Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

getDisabledRuleIds()

<ph type="x-smartling-placeholder"></ph> 約束 Chrome 111 以降 をご覧ください。
chrome.declarativeNetRequest.getDisabledRuleIds(
  options: GetDisabledRuleIdsOptions,
  callback?: function,
)

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

パラメータ

  • オプション

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

  • callback

    関数(省略可)

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

    (disabledRuleIds: number[]) => void

    • disabledRuleIds

      数値 []

戻り値

  • Promise<数値 []>

    Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

getDynamicRules()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.declarativeNetRequest.getDynamicRules(
  filter?: GetRulesFilter,
  callback?: function,
)

広告表示オプションの現在のダイナミック ルールのセットを返します。呼び出し元は、filter を指定することで、取得したルールのリストを必要に応じてフィルタできます。

パラメータ

  • フィルタ

    GetRulesFilter オプション

    Chrome 111 以降

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

  • callback

    関数(省略可)

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

    (rules: Rule[]) => void

戻り値

  • Promise<ルール[]>

    Chrome 91 以降

    Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

getEnabledRulesets()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.declarativeNetRequest.getEnabledRulesets(
  callback?: function,
)

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

パラメータ

  • callback

    関数(省略可)

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

    (rulesetIds: string[]) => void

    • rulesetIds

      string[]

戻り値

  • Promise&lt;string[]&gt;

    Chrome 91 以降

    Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

getMatchedRules()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.declarativeNetRequest.getMatchedRules(
  filter?: MatchedRulesFilter,
  callback?: function,
)

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

パラメータ

  • フィルタ

    MatchedRulesFilter オプション

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

  • callback

    関数(省略可)

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

    (details: RulesMatchedDetails) => void

戻り値

  • Promise&lt;RulesMatchedDetails&gt;

    Chrome 91 以降

    Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

getSessionRules()

<ph type="x-smartling-placeholder"></ph> 約束 Chrome 90 以降 をご覧ください。
chrome.declarativeNetRequest.getSessionRules(
  filter?: GetRulesFilter,
  callback?: function,
)

拡張機能のセッション スコープのルールの現在のセットを返します。呼び出し元は、filter を指定することで、取得したルールのリストを必要に応じてフィルタできます。

パラメータ

  • フィルタ

    GetRulesFilter オプション

    Chrome 111 以降

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

  • callback

    関数(省略可)

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

    (rules: Rule[]) => void

戻り値

  • Promise<ルール[]>

    Chrome 91 以降

    Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

isRegexSupported()

<ph type="x-smartling-placeholder"></ph> 約束 Chrome 87 以降 をご覧ください。
chrome.declarativeNetRequest.isRegexSupported(
  regexOptions: RegexOptions,
  callback?: function,
)

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

パラメータ

戻り値

  • Promise&lt;IsRegexSupportedResult&gt;

    Chrome 91 以降

    Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

setExtensionActionOptions()

<ph type="x-smartling-placeholder"></ph> 約束 Chrome 88 以降 をご覧ください。
chrome.declarativeNetRequest.setExtensionActionOptions(
  options: ExtensionActionOptions,
  callback?: function,
)

タブのアクション カウントを拡張機能のアクションのバッジテキストとして表示するかどうかを設定します。これにより、アクション数を増やすことができます。

パラメータ

  • オプション
  • callback

    関数(省略可)

    Chrome 89 以降

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

    () => void

戻り値

  • 約束 <void>

    Chrome 91 以降

    Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

testMatchOutcome()

<ph type="x-smartling-placeholder"></ph> 約束 Chrome 103 以降 をご覧ください。
chrome.declarativeNetRequest.testMatchOutcome(
  request: TestMatchRequestDetails,
  callback?: function,
)

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

パラメータ

戻り値

  • Promise&lt;TestMatchOutcomeResult&gt;

    Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

updateDynamicRules()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.declarativeNetRequest.updateDynamicRules(
  options: UpdateRuleOptions,
  callback?: function,
)

広告表示オプションの現在のダイナミック ルールセットを変更します。まず、options.removeRuleIds にリストされている ID を持つルールが削除され、次に options.addRules で指定されたルールが追加されます。注:

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

パラメータ

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

    関数(省略可)

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

    () => void

戻り値

  • 約束 <void>

    Chrome 91 以降

    Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

updateEnabledRulesets()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.declarativeNetRequest.updateEnabledRulesets(
  options: UpdateRulesetOptions,
  callback?: function,
)

拡張機能で有効な静的ルールセットのセットを更新します。options.disableRulesetIds にリストされている ID を持つルールセットが削除されてから、options.enableRulesetIds にリストされているルールセットが追加されます。 有効な静的ルールセットのセットはセッション間では保持されますが、拡張機能の更新間では保持されません。たとえば、rule_resources マニフェスト キーにより、拡張機能が更新されるたびに有効な静的ルールセットのセットが決定されます。

パラメータ

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

    関数(省略可)

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

    () => void

戻り値

  • 約束 <void>

    Chrome 91 以降

    Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

updateSessionRules()

<ph type="x-smartling-placeholder"></ph> 約束 Chrome 90 以降 をご覧ください。
chrome.declarativeNetRequest.updateSessionRules(
  options: UpdateRuleOptions,
  callback?: function,
)

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

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

パラメータ

  • オプション
  • callback

    関数(省略可)

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

    () => void

戻り値

  • 約束 <void>

    Chrome 91 以降

    Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

updateStaticRules()

<ph type="x-smartling-placeholder"></ph> 約束 Chrome 111 以降 をご覧ください。
chrome.declarativeNetRequest.updateStaticRules(
  options: UpdateStaticRulesOptions,
  callback?: function,
)

Ruleset で個々の静的ルールを無効または有効にします。無効になっている Ruleset に属するルールに加えた変更は、次回有効になったときに有効になります。

パラメータ

  • オプション
  • callback

    関数(省略可)

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

    () => void

戻り値

  • 約束 <void>

    Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

イベント

onRuleMatchedDebug

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

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

パラメータ