browser.webRequest

説明

chrome.webRequest API を使用して、トラフィックをモニタリングして分析し、処理中のリクエストをインターセプト、ブロック、変更します。

権限

webRequest

ウェブ リクエスト API を使用するには、拡張機能マニフェストで "webRequest" 権限と、必要なホスト権限を宣言する必要があります。サブリソース リクエストをインターセプトするには、拡張機能がリクエストされた URL とそのイニシエーターの両方にアクセスできる必要があります。次に例を示します。

{
  "name": "My extension",
  ...
  "permissions": [
    "webRequest"
  ],
  "host_permissions": [
    "*://*.google.com/*"
  ],
  ...
}

webRequestBlocking

ブロッキング イベント ハンドラを登録するために必要です。Manifest V3 以降、これはポリシーでインストールされた拡張機能でのみ使用できます。

webRequestAuthProvider

onAuthRequired メソッドを使用するために必要です。認証の処理をご覧ください。

コンセプトと使用方法

リクエストのライフサイクル

ウェブ リクエスト API は、ウェブ リクエストのライフサイクルに沿った一連のイベントを定義します。これらのイベントを使用して、トラフィックをモニタリングして分析できます。特定の同期イベントでは、リクエストをインターセプト、ブロック、変更できます。

リクエストが成功した場合のイベント ライフサイクルを以下に示します。その後にイベントの定義を示します。

webrequest API の観点から見たウェブ リクエストのライフサイクル

onBeforeRequest(オプションで同期)
リクエストが発生する直前に呼び出されます。このイベントは、TCP 接続が確立される前に送信され、リクエストのキャンセルやリダイレクトに使用できます。
onBeforeSendHeaders(オプションで同期)
リクエストが発生する直前で、最初のヘッダーが準備されたときに呼び出されます。このイベントは、拡張機能がリクエスト ヘッダー (*) を追加、変更、削除できるようにすることを目的としています。onBeforeSendHeaders イベントはすべてのサブスクライバーに渡されるため、異なるサブスクライバーがリクエストを変更しようとする可能性があります。この処理方法については、実装の詳細セクションをご覧ください。このイベントは、リクエストをキャンセルするために使用できます。
onSendHeaders
すべての拡張機能がリクエスト ヘッダーを変更する機会を得た後に起動し、最終的な (*) バージョンを提示します。このイベントは、ヘッダーがネットワークに送信される前にトリガーされます。このイベントは情報提供を目的としており、非同期で処理されます。リクエストの変更やキャンセルはできません。
onHeadersReceived(オプションで同期)
HTTP(S) レスポンス ヘッダーが受信されるたびに呼び出されます。リダイレクトと認証リクエストにより、リクエストごとに複数回発生する可能性があります。このイベントは、拡張機能がレスポンス ヘッダー(受信 Content-Type ヘッダーなど)を追加、変更、削除できるようにすることを目的としています。キャッシュ ディレクティブは、このイベントがトリガーされる前に処理されるため、Cache-Control などのヘッダーを変更しても、ブラウザのキャッシュには影響しません。また、リクエストをキャンセルまたはリダイレクトすることもできます。
onAuthRequired(オプションで同期)
リクエストでユーザーの認証が必要な場合に呼び出されます。このイベントは、認証情報を提供するために同期的に処理できます。拡張機能が無効な認証情報を提供する可能性があることに注意してください。無効な認証情報を繰り返し提供して無限ループに入らないように注意してください。これは、リクエストをキャンセルするためにも使用できます。
onBeforeRedirect
リダイレクトが実行される直前に呼び出されます。リダイレクトは、HTTP レスポンス コードまたは拡張機能によってトリガーできます。このイベントは情報提供を目的としたものであり、非同期で処理されます。リクエストの変更やキャンセルはできません。
onResponseStarted
レスポンス本文の最初のバイトが受信されたときに呼び出されます。HTTP リクエストの場合、これはステータス行とレスポンス ヘッダーが使用可能であることを意味します。このイベントは情報提供を目的としたものであり、非同期で処理されます。リクエストの変更やキャンセルはできません。
onCompleted
リクエストが正常に処理されたときに発生します。
onErrorOccurred
リクエストを正常に処理できなかった場合に呼び出されます。

ウェブ リクエスト API では、各リクエストに対して onCompleted または onErrorOccurred が最終イベントとして発生することが保証されます。ただし、リクエストが data:// URL にリダイレクトされた場合は、onBeforeRedirect が最後に報告されるイベントになります。

* ウェブ リクエスト API は、ネットワーク スタックの抽象化を拡張機能に提供します。 内部的には、1 つの URL リクエストを複数の HTTP リクエストに分割することも(たとえば、大きなファイルから個々のバイト範囲を取得する場合)、ネットワークと通信せずにネットワーク スタックで処理することもできます。このため、この API はネットワークに送信される最終的な HTTP ヘッダーを提供しません。たとえば、キャッシュに関連するすべてのヘッダーは拡張機能から見えません。

次のヘッダーは、現在 onBeforeSendHeaders イベントに提供されていません。このリストは、完全または安定しているとは限りません。

  • 承認
  • Cache-Control
  • 接続
  • Content-Length
  • ホスト
  • If-Modified-Since
  • If-None-Match
  • If-Range
  • Partial-Data
  • Pragma
  • Proxy-Authorization
  • Proxy-Connection
  • Transfer-Encoding

Chrome 79 以降、リクエスト ヘッダーの変更はクロスオリジン リソース シェアリング(CORS)のチェックに影響します。クロスオリジン リクエストの変更されたヘッダーが条件を満たしていない場合、CORS プリフライトが送信され、そのようなヘッダーを受け入れられるかどうかがサーバーに問い合わせられます。CORS プロトコルに違反する方法でヘッダーを変更する必要がある場合は、opt_extraInfoSpec で 'extraHeaders' を指定する必要があります。一方、レスポンス ヘッダーの変更は、CORS チェックを欺くために機能しません。CORS プロトコルを欺く必要がある場合は、レスポンスの変更に 'extraHeaders' も指定する必要があります。

Chrome 79 以降、webRequest API はデフォルトで CORS プリフライト リクエストとレスポンスをインターセプトしません。リクエスト URL の CORS プリフライトは、リクエスト URL の opt_extraInfoSpec で 'extraHeaders' が指定されたリスナーがある場合、拡張機能に表示されます。onBeforeRequest は、Chrome 79 の 'extraHeaders' を受け取ることもできます。

Chrome 79 以降、次のリクエスト ヘッダーは提供されず、opt_extraInfoSpec で 'extraHeaders' を指定しないと変更または削除できません。

  • 出発地

Chrome 72 以降では、クロスオリジン読み取りブロッキング(CORB)がレスポンスをブロックする前にレスポンスを変更する必要がある場合は、opt_extraInfoSpec で 'extraHeaders' を指定する必要があります。

Chrome 72 以降、次のリクエスト ヘッダーは提供されず、opt_extraInfoSpec で 'extraHeaders' を指定しない限り、変更または削除できません。

  • Accept-Language
  • Accept-Encoding
  • リファラー
  • Cookie

Chrome 72 以降、Set-Cookie レスポンス ヘッダーは提供されず、opt_extraInfoSpec で 'extraHeaders' を指定しない限り、変更または削除できません。

Chrome 89 以降、opt_extraInfoSpec で 'extraHeaders' を指定しないと、X-Frame-Options レスポンス ヘッダーを効果的に変更または削除することはできません。

webRequest API は、ホスト権限を考慮して、拡張機能に表示権限があるリクエストのみを公開します。また、アクセスできるスキームは、http://、https://、ftp://、file://、ws://(Chrome 58 以降)、wss://(Chrome 58 以降)、urn:(Chrome 91 以降)、chrome-extension:// のみです。また、上記のいずれかのスキームを使用する URL を含む特定のリクエストも非表示になります。これには、chrome-extension://other_extension_id(other_extension_id はリクエストを処理する拡張機能の ID ではない)、https://www.google.com/chrome、ブラウザ機能の中核となるその他の機密性の高いリクエストが含まれます。また、デッドロックを防ぐため、拡張機能からの同期 XMLHttpRequests は、イベント ハンドラのブロックから隠されます。サポートされているスキームの一部では、対応するプロトコルの性質上、使用可能なイベントのセットが制限される場合があります。たとえば、file: スキームの場合、onBeforeRequest、onResponseStarted、onCompleted、onErrorOccurred のみがディスパッチされます。

Chrome 58 以降、webRequest API は WebSocket handshake リクエストのインターセプトをサポートしています。 ハンドシェイクは HTTP アップグレード リクエストによって行われるため、そのフローは HTTP 指向の webRequest モデルに適合します。この API は、以下をインターセプトしないことに注意してください。

  • 確立された WebSocket 接続を介して送信される個々のメッセージ。
  • WebSocket 接続を終了しています。

WebSocket リクエストではリダイレクトはサポートされていません。

Chrome 72 以降、拡張機能がリクエストをインターセプトできるのは、リクエストされた URL とリクエストの開始者の両方に対するホスト権限がある場合に限られます。

Chrome 96 以降、webRequest API は HTTP/3 ハンドシェイク リクエストを介した WebTransport のインターセプトをサポートしています。ハンドシェイクは HTTP CONNECT リクエストによって行われるため、そのフローは HTTP 指向の webRequest モデルに適合します。次のことに注意してください。

  • セッションが確立されると、拡張機能は webRequest API を介してセッションを監視したり、セッションに介入したりできなくなります。
  • onBeforeSendHeaders での HTTP リクエスト ヘッダーの変更は無視されます。
  • HTTP/3 経由の WebTransport では、リダイレクトと認証はサポートされていません。

リクエスト ID

各リクエストはリクエスト ID で識別されます。この ID は、ブラウザ セッションと拡張機能のコンテキスト内で一意です。これはリクエストのライフサイクル全体で一定であり、同じリクエストのイベントを照合するために使用できます。HTTP リダイレクトまたは HTTP 認証の場合、複数の HTTP リクエストが 1 つのウェブリクエストにマッピングされます。

イベント リスナーの登録

ウェブ リクエストのイベント リスナーを登録するには、通常の addListener() 関数のバリエーションを使用します。コールバック関数を指定するだけでなく、フィルタ引数を指定する必要があります。また、オプションの追加情報引数を指定することもできます。

ウェブ リクエスト API の addListener() の 3 つの引数は、次のように定義されています。

var callback = function(details) {...};
var filter = {...};
var opt_extraInfoSpec = [...];

onBeforeRequest イベントをリッスンする例を次に示します。

browser.webRequest.onBeforeRequest.addListener(
    callback, filter, opt_extraInfoSpec);

各 addListener() 呼び出しでは、最初のパラメータとして必須のコールバック関数が使用されます。このコールバック関数には、現在の URL リクエストに関する情報を含む辞書が渡されます。この辞書の情報は、特定のイベントタイプと opt_extraInfoSpec の内容によって異なります。

オプションの opt_extraInfoSpec 配列に文字列 'blocking' が含まれている場合(特定のイベントでのみ許可)、コールバック関数は同期的に処理されます。つまり、コールバック関数が戻るまでリクエストはブロックされます。この場合、コールバックはリクエストの今後のライフサイクルを決定する webRequest.BlockingResponse を返すことができます。コンテキストに応じて、このレスポンスにより、リクエストのキャンセルまたはリダイレクト(onBeforeRequest)、リクエストのキャンセルまたはヘッダーの変更(onBeforeSendHeaders、onHeadersReceived)、リクエストのキャンセルまたは認証情報の提供(onAuthRequired)が可能になります。

オプションの opt_extraInfoSpec 配列に文字列 'asyncBlocking' が含まれている場合(onAuthRequired でのみ許可)、拡張機能は webRequest.BlockingResponse を非同期で生成できます。

webRequest.RequestFilter filter を使用すると、イベントがトリガーされるリクエストをさまざまなディメンションで制限できます。

URL
URL パターン(*://www.google.com/foo*bar など)。
型
リクエスト タイプ。たとえば、main_frame(最上位フレームに読み込まれるドキュメント)、sub_frame(埋め込みフレームに読み込まれるドキュメント)、image(ウェブサイト上の画像)など。webRequest.RequestFilter をご覧ください。
タブ ID
1 つのタブの識別子。
ウィンドウ ID
ウィンドウの識別子。

イベントタイプに応じて、opt_extraInfoSpec で文字列を指定して、リクエストに関する追加情報を求めることができます。これは、明示的にリクエストされた場合にのみ、リクエストのデータに関する詳細情報を提供するために使用されます。

認証の処理

HTTP 認証のリクエストを処理するには、マニフェスト ファイルに "webRequestAuthProvider" 権限を追加します。

{
  "permissions": [
    "webRequest",
    "webRequestAuthProvider"
  ]
}

この権限は、"webRequestBlocking" 権限を持つポリシーによってインストールされた拡張機能には必要ありません。

認証情報を同期的に提供するには:

browser.webRequest.onAuthRequired.addListener((details) => {
    return {
      authCredentials: {
        username: 'guest',
        password: 'guest'
      }
    };
  },
  { urls: ['https://httpbin.org/basic-auth/guest/guest'] },
  ['blocking']
);

認証情報を非同期で提供するには:

browser.webRequest.onAuthRequired.addListener((details, callback) => {
    callback({
      authCredentials: {
        username: 'guest',
        password: 'guest'
      }
    });
  },
  { urls: ['https://httpbin.org/basic-auth/guest/guest'] },
  ['asyncBlocking']
);

実装の詳細

ウェブ リクエスト API を使用する拡張機能を開発する際には、実装に関するいくつかの詳細を理解することが重要です。

web_accessible_resources

拡張機能が webRequest API を使用して、一般公開リソースのリソース リクエストをウェブからアクセスできないリソースにリダイレクトすると、ブロックされてエラーが発生します。これは、ウェブからアクセスできないリソースが、リダイレクトする拡張機能によって所有されている場合でも同様です。declarativeWebRequest API で使用するリソースを宣言するには、こちらに記載されているように、マニフェストで "web_accessible_resources" 配列を宣言して入力する必要があります。

競合解決

ウェブ リクエスト API の現在の実装では、少なくとも 1 つの拡張機能がリクエストのキャンセルを指示した場合、リクエストはキャンセルされたと見なされます。拡張機能がリクエストをキャンセルすると、すべての拡張機能に onErrorOccurred イベントが通知されます。一度にリクエストをリダイレクトしたり、ヘッダーを変更したりできる拡張機能は 1 つだけです。複数の拡張機能がリクエストを変更しようとした場合、最後にインストールされた拡張機能が優先され、他の拡張機能はすべて無視されます。変更またはリダイレクトの指示が無視された場合、拡張機能には通知されません。

キャッシュ

Chrome は、オンディスク キャッシュと非常に高速なインメモリ キャッシュの 2 つのキャッシュを使用します。インメモリ キャッシュの存続期間は、レンダリング プロセスの存続期間に関連付けられます。これは、おおよそタブに対応します。メモリ内キャッシュから応答されたリクエストは、ウェブ リクエスト API には表示されません。リクエスト ハンドラが動作を変更した場合(たとえば、リクエストがブロックされる動作)、単純なページ更新ではこの変更された動作が反映されないことがあります。動作変更が確実に適用されるようにするには、handlerBehaviorChanged() を呼び出してメモリ キャッシュをフラッシュします。ただし、キャッシュのフラッシュは非常にコストのかかるオペレーションであるため、頻繁に行わないでください。イベント リスナーの登録または登録解除後に handlerBehaviorChanged() を呼び出す必要はありません。

タイムスタンプ

ウェブリクエスト イベントの timestamp プロパティは、内部的にのみ整合性が保証されます。あるイベントを別のイベントと比較すると、それらの間の正しいオフセットが得られますが、拡張機能内の現在の時刻((new Date()).getTime() など)と比較すると、予期しない結果が生じることがあります。

エラー処理

無効な引数を使用してイベントを登録しようとすると、JavaScript エラーがスローされ、イベント ハンドラは登録されません。イベントの処理中にエラーがスローされた場合、またはイベント ハンドラが無効なブロッキング レスポンスを返した場合、エラー メッセージが拡張機能のコンソールに記録され、そのリクエストではハンドラが無視されます。

例

次の例は、www.evil.com へのすべてのリクエストをブロックする方法を示しています。

browser.webRequest.onBeforeRequest.addListener(
  function(details) {
    return {cancel: details.url.indexOf("://www.evil.com/") != -1};
  },
  {urls: ["<all_urls>"]},
  ["blocking"]
);

この関数はブロッキング イベント ハンドラを使用するため、マニフェスト ファイルに "webRequest" 権限と "webRequestBlocking" 権限が必要です。

次の例では、www.evil.com をターゲットとしていないリクエストを拡張機能に渡す必要がないため、より効率的に同じ目標を達成できます。

browser.webRequest.onBeforeRequest.addListener(
  function(details) { return {cancel: true}; },
  {urls: ["*://www.evil.com/*"]},
  ["blocking"]
);

次の例は、すべてのリクエストから User-Agent ヘッダーを削除する方法を示しています。

browser.webRequest.onBeforeSendHeaders.addListener(
  function(details) {
    for (var i = 0; i < details.requestHeaders.length; ++i) {
      if (details.requestHeaders[i].name === 'User-Agent') {
        details.requestHeaders.splice(i, 1);
        break;
      }
    }
    return {requestHeaders: details.requestHeaders};
  },
  {urls: ["<all_urls>"]},
  ["blocking", "requestHeaders"]
);

browser.webRequest API を試すには、chrome-extension-samples リポジトリから webRequest サンプルをインストールします。

型

BlockingResponse

「blocking」extraInfoSpec が適用されているイベント ハンドラの値を返します。イベント ハンドラがネットワーク リクエストを変更できるようにします。

プロパティ

  • authCredentials

    オブジェクト(省略可)

    onAuthRequired イベントへのレスポンスとしてのみ使用されます。設定されている場合、リクエストは指定された認証情報を使用して行われます。

    • パスワード

      文字列

    • ユーザー名

      文字列

  • キャンセル

    boolean 省略可

    true の場合、リクエストはキャンセルされます。これにより、リクエストが送信されなくなります。これは、onBeforeRequest、onBeforeSendHeaders、onHeadersReceived、onAuthRequired イベントへのレスポンスとして使用できます。

  • redirectUrl

    文字列 省略可

    onBeforeRequest イベントと onHeadersReceived イベントへのレスポンスとしてのみ使用されます。設定すると、元のリクエストの送信 / 完了が阻止され、代わりに指定された URL にリダイレクトされます。data: などの HTTP 以外のスキームへのリダイレクトは許可されます。リダイレクト アクションによって開始されたリダイレクトでは、リダイレクトに元のリクエスト メソッドが使用されます。ただし、1 つの例外があります。リダイレクトが onHeadersReceived ステージで開始された場合、リダイレクトは GET メソッドを使用して発行されます。ws:// スキームと wss:// スキームを使用する URL からのリダイレクトは無視されます。

  • requestHeaders

    HttpHeaders 省略可

    onBeforeSendHeaders イベントへのレスポンスとしてのみ使用されます。設定されている場合、リクエストはこれらのリクエスト ヘッダーを使用して行われます。

  • responseHeaders

    HttpHeaders 省略可

    onHeadersReceived イベントへのレスポンスとしてのみ使用されます。設定されている場合、サーバーは代わりにこれらのレスポンス ヘッダーで応答したと見なされます。競合の数を制限するために、ヘッダーを実際に変更する場合にのみ responseHeaders を返します(リクエストごとに responseHeaders を変更できる拡張機能は 1 つのみです)。

FormDataItem

Chrome 66 以降 Chrome 148 以降の browser.*

フォームデータ内で渡されたデータが含まれます。urlencoded フォームの場合、データが utf-8 文字列であれば文字列として保存され、それ以外の場合は ArrayBuffer として保存されます。form-data の場合は ArrayBuffer です。form-data がアップロード ファイルを表す場合、ファイル名が指定されていれば、ファイル名を含む文字列になります。

列挙型

ArrayBuffer

文字列

HttpHeaders

HTTP ヘッダーの配列。各ヘッダーは、キー name と value または binaryValue を含む辞書として表されます。

タイプ

object[]

プロパティ

  • binaryValue

    number[] 省略可

    UTF-8 で表現できない場合の HTTP ヘッダーの値。個々のバイト値(0 ~ 255)として保存されます。

  • name

    文字列

    HTTP ヘッダーの名前。

  • 値

    文字列 省略可

    UTF-8 で表すことができる場合の HTTP ヘッダーの値。

IgnoredActionType

Chrome 70 以降 Chrome 148 以降の browser.*

列挙型

"redirect"

"request_headers"

"response_headers"

"auth_credentials"

OnAuthRequiredOptions

Chrome 44 以降 Chrome 148 以降の browser.*

列挙型

"responseHeaders"
レスポンス ヘッダーをイベントに含めることを指定します。

"blocking"
コールバック関数が戻るまでリクエストをブロックすることを指定します。

"asyncBlocking"
コールバック関数が非同期で処理されることを指定します。

"extraHeaders"
ヘッダーがクロスオリジン リソース シェアリング(CORS)に違反する可能性があることを指定します。

OnBeforeRedirectOptions

Chrome 44 以降 Chrome 148 以降の browser.*

列挙型

"responseHeaders"
レスポンス ヘッダーをイベントに含めることを指定します。

"extraHeaders"
ヘッダーがクロスオリジン リソース シェアリング(CORS)に違反する可能性があることを指定します。

OnBeforeRequestOptions

Chrome 44 以降 Chrome 148 以降の browser.*

列挙型

"blocking"
コールバック関数が戻るまでリクエストをブロックすることを指定します。

"requestBody"
リクエスト本文をイベントに含めることを指定します。

"extraHeaders"
ヘッダーがクロスオリジン リソース シェアリング(CORS)に違反する可能性があることを指定します。

OnBeforeSendHeadersOptions

Chrome 44 以降 Chrome 148 以降の browser.*

列挙型

"requestHeaders"
リクエスト ヘッダーをイベントに含めることを指定します。

"blocking"
コールバック関数が戻るまでリクエストをブロックすることを指定します。

"extraHeaders"
ヘッダーがクロスオリジン リソース シェアリング(CORS)に違反する可能性があることを指定します。

OnCompletedOptions

Chrome 44 以降 Chrome 148 以降の browser.*

列挙型

"responseHeaders"
レスポンス ヘッダーをイベントに含めることを指定します。

"extraHeaders"
ヘッダーがクロスオリジン リソース シェアリング(CORS)に違反する可能性があることを指定します。

OnErrorOccurredOptions

Chrome 79 以降 Chrome 148 以降の browser.*

値

"extraHeaders"

OnHeadersReceivedOptions

Chrome 44 以降 Chrome 148 以降の browser.*

列挙型

"blocking"
コールバック関数が戻るまでリクエストをブロックすることを指定します。

"responseHeaders"
レスポンス ヘッダーをイベントに含めることを指定します。

"extraHeaders"
ヘッダーがクロスオリジン リソース シェアリング(CORS)に違反する可能性があることを指定します。

"securityInfo"
SecurityInfo をイベントに含めることを指定します。

"securityInfoRawDer"
証明書の未加工バイトを含む SecurityInfo をイベントに含めることを指定します。

OnResponseStartedOptions

Chrome 44 以降 Chrome 148 以降の browser.*

列挙型

"responseHeaders"
レスポンス ヘッダーをイベントに含めることを指定します。

"extraHeaders"
ヘッダーがクロスオリジン リソース シェアリング(CORS)に違反する可能性があることを指定します。

OnSendHeadersOptions

Chrome 44 以降 Chrome 148 以降の browser.*

列挙型

"requestHeaders"
リクエスト ヘッダーをイベントに含めることを指定します。

"extraHeaders"
ヘッダーがクロスオリジン リソース シェアリング(CORS)に違反する可能性があることを指定します。

RequestFilter

webRequest イベントに適用するフィルタを記述するオブジェクト。

プロパティ

  • tabId

    number 省略可

  • タイプ

    ResourceType[] 省略可

    リクエスト タイプのリスト。いずれのタイプにも一致しないリクエストは除外されます。

  • URL

    string[]

    URL または URL パターンのリスト。どの URL にも一致しないリクエストは除外されます。

  • windowId

    number 省略可

ResourceType

Chrome 44 以降 Chrome 148 以降の browser.*

列挙型

"main_frame"
リソースをメインフレームとして指定します。

"sub_frame"
リソースをサブフレームとして指定します。

"stylesheet"
リソースをスタイルシートとして指定します。

"script"
リソースをスクリプトとして指定します。

"image"
リソースを画像として指定します。

"font"
リソースをフォントとして指定します。

"object"
リソースをオブジェクトとして指定します。

"xmlhttprequest"
リソースを XMLHttpRequest として指定します。

"ping"
リソースを ping として指定します。

"csp_report"
リソースをコンテンツ セキュリティ ポリシー(CSP)レポートとして指定します。

"media"
リソースをメディア オブジェクトとして指定します。

"websocket"
リソースを WebSocket として指定します。

"webbundle"
リソースを WebBundle として指定します。

"other"
リストにないタイプのリソースを指定します。

SecurityInfo

Chrome 144 以降 Chrome 148 以降の browser.*

プロパティ

  • 証明書

    object[]

    証明書のリスト

    • fingerprint

      オブジェクト

      証明書のフィンガープリント。

      • sha256

        文字列

        証明書の sha256 フィンガープリント。

    • rawDER

      ArrayBuffer 省略可

      DER でエンコードされたサーバー証明書の未加工バイト

  • state

    文字列

    接続の状態。secure、insecure、broken のいずれか。

UploadData

URL リクエストでアップロードされたデータが含まれます。

プロパティ

  • バイト

    any 省略可

    データのコピーを含む ArrayBuffer。

  • ファイル

    文字列 省略可

    ファイルのパスと名前を含む文字列。

プロパティ

MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES

10 分間の継続的な間隔で handlerBehaviorChanged を呼び出すことができる最大回数。handlerBehaviorChanged は高コストの関数呼び出しであるため、頻繁に呼び出すべきではありません。

値

20

メソッド

handlerBehaviorChanged()

browser.webRequest.handlerBehaviorChanged(): Promise<void>

キャッシュによる誤った処理を防ぐため、webRequest ハンドラの動作が変更されたときに呼び出す必要があります。この関数呼び出しはコストがかかります。頻繁に呼び出さないでください。

戻り値

  • Promise<void>

    Chrome 116 以降 Chrome 148 以降の browser.*

イベント

onActionIgnored

Chrome 70 以降 Chrome 148 以降の browser.*
browser.webRequest.onActionIgnored.addListener(
  callback: function,
)

ネットワーク リクエストに対する拡張機能の変更案が無視されたときに呼び出されます。これは、他の拡張機能と競合する場合に発生します。

パラメータ

  • callback

    関数

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

    (details: object) => void

    • 詳細

      オブジェクト

      • アクション

        無視された提案されたアクション。

      • requestId

        文字列

        リクエストの ID。リクエスト ID はブラウザ セッション内で一意です。その結果、同じリクエストの異なるイベントを関連付けるために使用できます。

onAuthRequired

browser.webRequest.onAuthRequired.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnAuthRequiredOptions[],
)

認証エラーが発生したときに呼び出されます。リスナーには、認証情報の提供、リクエストのキャンセルとエラーページの表示、チャレンジに対するアクションなし、の 3 つのオプションがあります。不正なユーザー認証情報が提供された場合、同じリクエストに対してこのメソッドが複数回呼び出されることがあります。extraInfoSpec パラメータで指定できるのは、'blocking' モードまたは 'asyncBlocking' モードのいずれか 1 つのみです。

パラメータ

  • callback

    関数

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

    (details: object, asyncCallback?: function) => BlockingResponse | undefined

    • 詳細

      オブジェクト

      • challenger

        オブジェクト

        認証をリクエストしているサーバー。

        • ホスト

          文字列

        • ポート

          数値

      • documentId

        文字列 省略可

        Chrome 106 以降 Chrome 148 以降の browser.*

        リクエストを行っているドキュメントの UUID。

      • Chrome 106 以降 Chrome 148 以降の browser.*

        ドキュメントのライフサイクル。

      • frameId

        数値

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

      • Chrome 106 以降 Chrome 148 以降の browser.*

        リクエストが発生したフレームのタイプ。

      • initiator

        文字列 省略可

        Chrome 63 以降 Chrome 148 以降の browser.*

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

      • isProxy

        ブール値

        Proxy-Authenticate の場合は true、WWW-Authenticate の場合は false。

      • method

        文字列

        標準の HTTP メソッド。

      • parentDocumentId

        文字列 省略可

        Chrome 106 以降 Chrome 148 以降の browser.*

        このフレームを所有する親ドキュメントの UUID。親がない場合、これは設定されません。

      • parentFrameId

        数値

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

      • レルム

        文字列 省略可

        サーバーから提供された認証レルム(存在する場合)。

      • requestId

        文字列

        リクエストの ID。リクエスト ID はブラウザ セッション内で一意です。その結果、同じリクエストの異なるイベントを関連付けるために使用できます。

      • responseHeaders

        HttpHeaders 省略可

        このレスポンスとともに受信された HTTP レスポンス ヘッダー。

      • スキーム

        文字列

        認証スキーム(Basic、Digest など)。

      • statusCode

        数値

        Chrome 43 以降 Chrome 148 以降の browser.*

        サーバーから返される標準の HTTP ステータス コード。

      • statusLine

        文字列

        レスポンスの HTTP ステータス行、HTTP/0.9 レスポンス(ステータス行がないレスポンス)の場合は「HTTP/0.9 200 OK」文字列、ヘッダーがない場合は空の文字列。

      • tabId

        数値

        リクエストが発生したタブの ID。リクエストがタブに関連していない場合は -1 に設定します。

      • timeStamp

        数値

        このシグナルがトリガーされた時刻(エポックからのミリ秒単位)。

      • リクエストされたリソースの使用方法。

      • URL

        文字列

    • asyncCallback

      function 省略可

      Chrome 58 以降 Chrome 148 以降の browser.*

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

      (response: BlockingResponse) => void

    • 戻り値

      BlockingResponse | undefined

      「extraInfoSpec」パラメータで「blocking」が指定されている場合、イベント リスナーはこのタイプのオブジェクトを返す必要があります。

  • filter
  • extraInfoSpec

onBeforeRedirect

browser.webRequest.onBeforeRedirect.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeRedirectOptions[],
)

サーバーが開始したリダイレクトが発生しようとしているときに呼び出されます。

パラメータ

  • callback

    関数

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

    (details: object) => void

    • 詳細

      オブジェクト

      • documentId

        文字列 省略可

        Chrome 106 以降 Chrome 148 以降の browser.*

        リクエストを行っているドキュメントの UUID。

      • Chrome 106 以降 Chrome 148 以降の browser.*

        ドキュメントのライフサイクル。

      • frameId

        数値

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

      • Chrome 106 以降 Chrome 148 以降の browser.*

        リクエストが発生したフレームのタイプ。

      • fromCache

        ブール値

        このレスポンスがディスク キャッシュから取得されたかどうかを示します。

      • initiator

        文字列 省略可

        Chrome 63 以降 Chrome 148 以降の browser.*

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

      • ip

        文字列 省略可

        リクエストが実際に送信されたサーバーの IP アドレス。IPv6 アドレスをそのまま指定することもできます。

      • method

        文字列

        標準の HTTP メソッド。

      • parentDocumentId

        文字列 省略可

        Chrome 106 以降 Chrome 148 以降の browser.*

        このフレームを所有する親ドキュメントの UUID。親がない場合、これは設定されません。

      • parentFrameId

        数値

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

      • redirectUrl

        文字列

        新しい URL。

      • requestId

        文字列

        リクエストの ID。リクエスト ID はブラウザ セッション内で一意です。その結果、同じリクエストの異なるイベントを関連付けるために使用できます。

      • responseHeaders

        HttpHeaders 省略可

        このリダイレクトとともに受信された HTTP レスポンス ヘッダー。

      • statusCode

        数値

        サーバーから返される標準の HTTP ステータス コード。

      • statusLine

        文字列

        レスポンスの HTTP ステータス行、HTTP/0.9 レスポンス(ステータス行がないレスポンス)の場合は「HTTP/0.9 200 OK」文字列、ヘッダーがない場合は空の文字列。

      • tabId

        数値

        リクエストが発生したタブの ID。リクエストがタブに関連していない場合は -1 に設定します。

      • timeStamp

        数値

        このシグナルがトリガーされた時刻(エポックからのミリ秒単位)。

      • リクエストされたリソースの使用方法。

      • URL

        文字列

  • filter
  • extraInfoSpec

onBeforeRequest

browser.webRequest.onBeforeRequest.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeRequestOptions[],
)

リクエストが発生する直前に呼び出されます。

パラメータ

  • callback

    関数

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

    (details: object) => BlockingResponse | undefined

    • 詳細

      オブジェクト

      • documentId

        文字列 省略可

        Chrome 106 以降 Chrome 148 以降の browser.*

        リクエストを行っているドキュメントの UUID。

      • documentLifecycle
        Chrome 106 以降 Chrome 148 以降の browser.*

        ドキュメントのライフサイクル。

      • frameId

        数値

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

      • frameType
        Chrome 106 以降 Chrome 148 以降の browser.*

        リクエストが発生したフレームのタイプ。

      • initiator

        文字列 省略可

        Chrome 63 以降 Chrome 148 以降の browser.*

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

      • method

        文字列

        標準の HTTP メソッド。

      • parentDocumentId

        文字列 省略可

        Chrome 106 以降 Chrome 148 以降の browser.*

        このフレームを所有する親ドキュメントの UUID。親がない場合、これは設定されません。

      • parentFrameId

        数値

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

      • requestBody

        オブジェクト(省略可)

        HTTP リクエスト本文のデータが含まれます。extraInfoSpec に「requestBody」が含まれている場合にのみ提供されます。

        • エラー

          文字列 省略可

          リクエスト本文データの取得中にエラーが発生しました。

        • formData

          オブジェクト(省略可)

          リクエスト メソッドが POST で、本文が UTF8 でエンコードされた Key-Value ペアのシーケンス(multipart/form-data または application/x-www-form-urlencoded としてエンコード)の場合、この辞書が存在し、各キーにはそのキーのすべての値のリストが含まれます。データが別のメディアタイプである場合、または形式が正しくない場合、辞書は存在しません。この辞書の値の例は {'key': ['value1', 'value2']} です。

        • raw

          UploadData[] 省略可

          リクエスト メソッドが PUT または POST で、本文が formData でまだ解析されていない場合、解析されていないリクエスト本文の要素がこの配列に含まれます。

      • requestId

        文字列

        リクエストの ID。リクエスト ID はブラウザ セッション内で一意です。その結果、同じリクエストの異なるイベントを関連付けるために使用できます。

      • tabId

        数値

        リクエストが発生したタブの ID。リクエストがタブに関連していない場合は -1 に設定します。

      • timeStamp

        数値

        このシグナルがトリガーされた時刻(エポックからのミリ秒単位)。

      • リクエストされたリソースの使用方法。

      • URL

        文字列

    • 戻り値

      BlockingResponse | undefined

      「extraInfoSpec」パラメータで「blocking」が指定されている場合、イベント リスナーはこのタイプのオブジェクトを返す必要があります。

  • filter
  • extraInfoSpec

onBeforeSendHeaders

browser.webRequest.onBeforeSendHeaders.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeSendHeadersOptions[],
)

HTTP リクエストを送信する前に、リクエスト ヘッダーが利用可能になると発生します。これは、サーバーへの TCP 接続が確立された後、HTTP データが送信される前に発生することがあります。

パラメータ

  • callback

    関数

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

    (details: object) => BlockingResponse | undefined

    • 詳細

      オブジェクト

      • documentId

        文字列 省略可

        Chrome 106 以降 Chrome 148 以降の browser.*

        リクエストを行っているドキュメントの UUID。

      • Chrome 106 以降 Chrome 148 以降の browser.*

        ドキュメントのライフサイクル。

      • frameId

        数値

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

      • Chrome 106 以降 Chrome 148 以降の browser.*

        リクエストが発生したフレームのタイプ。

      • initiator

        文字列 省略可

        Chrome 63 以降 Chrome 148 以降の browser.*

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

      • method

        文字列

        標準の HTTP メソッド。

      • parentDocumentId

        文字列 省略可

        Chrome 106 以降 Chrome 148 以降の browser.*

        このフレームを所有する親ドキュメントの UUID。親がない場合、これは設定されません。

      • parentFrameId

        数値

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

      • requestHeaders

        HttpHeaders 省略可

        このリクエストとともに送信される HTTP リクエスト ヘッダー。

      • requestId

        文字列

        リクエストの ID。リクエスト ID はブラウザ セッション内で一意です。その結果、同じリクエストの異なるイベントを関連付けるために使用できます。

      • tabId

        数値

        リクエストが発生したタブの ID。リクエストがタブに関連していない場合は -1 に設定します。

      • timeStamp

        数値

        このシグナルがトリガーされた時刻(エポックからのミリ秒単位)。

      • リクエストされたリソースの使用方法。

      • URL

        文字列

    • 戻り値

      BlockingResponse | undefined

      「extraInfoSpec」パラメータで「blocking」が指定されている場合、イベント リスナーはこのタイプのオブジェクトを返す必要があります。

  • filter
  • extraInfoSpec

onCompleted

browser.webRequest.onCompleted.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnCompletedOptions[],
)

リクエストが完了したときに呼び出されます。

パラメータ

  • callback

    関数

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

    (details: object) => void

    • 詳細

      オブジェクト

      • documentId

        文字列 省略可

        Chrome 106 以降 Chrome 148 以降の browser.*

        リクエストを行っているドキュメントの UUID。

      • Chrome 106 以降 Chrome 148 以降の browser.*

        ドキュメントのライフサイクル。

      • frameId

        数値

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

      • Chrome 106 以降 Chrome 148 以降の browser.*

        リクエストが発生したフレームのタイプ。

      • fromCache

        ブール値

        このレスポンスがディスク キャッシュから取得されたかどうかを示します。

      • initiator

        文字列 省略可

        Chrome 63 以降 Chrome 148 以降の browser.*

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

      • ip

        文字列 省略可

        リクエストが実際に送信されたサーバーの IP アドレス。IPv6 アドレスをそのまま指定することもできます。

      • method

        文字列

        標準の HTTP メソッド。

      • parentDocumentId

        文字列 省略可

        Chrome 106 以降 Chrome 148 以降の browser.*

        このフレームを所有する親ドキュメントの UUID。親がない場合、これは設定されません。

      • parentFrameId

        数値

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

      • requestId

        文字列

        リクエストの ID。リクエスト ID はブラウザ セッション内で一意です。その結果、同じリクエストの異なるイベントを関連付けるために使用できます。

      • responseHeaders

        HttpHeaders 省略可

        このレスポンスとともに受信された HTTP レスポンス ヘッダー。

      • statusCode

        数値

        サーバーから返される標準の HTTP ステータス コード。

      • statusLine

        文字列

        レスポンスの HTTP ステータス行、HTTP/0.9 レスポンス(ステータス行がないレスポンス)の場合は「HTTP/0.9 200 OK」文字列、ヘッダーがない場合は空の文字列。

      • tabId

        数値

        リクエストが発生したタブの ID。リクエストがタブに関連していない場合は -1 に設定します。

      • timeStamp

        数値

        このシグナルがトリガーされた時刻(エポックからのミリ秒単位)。

      • リクエストされたリソースの使用方法。

      • URL

        文字列

  • filter
  • extraInfoSpec

    OnCompletedOptions[] 省略可

onErrorOccurred

browser.webRequest.onErrorOccurred.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnErrorOccurredOptions[],
)

エラーが発生したときに呼び出されます。

パラメータ

  • callback

    関数

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

    (details: object) => void

    • 詳細

      オブジェクト

      • documentId

        文字列 省略可

        Chrome 106 以降 Chrome 148 以降の browser.*

        リクエストを行っているドキュメントの UUID。リクエストがフレームのナビゲーションである場合、この値は存在しません。

      • Chrome 106 以降 Chrome 148 以降の browser.*

        ドキュメントのライフサイクル。

      • エラー

        文字列

        エラーの説明。この文字列は、リリース間で下位互換性が維持されるとは限りません。そのコンテンツを解析して、それに基づいて行動してはなりません。

      • frameId

        数値

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

      • Chrome 106 以降 Chrome 148 以降の browser.*

        リクエストが発生したフレームのタイプ。

      • fromCache

        ブール値

        このレスポンスがディスク キャッシュから取得されたかどうかを示します。

      • initiator

        文字列 省略可

        Chrome 63 以降 Chrome 148 以降の browser.*

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

      • ip

        文字列 省略可

        リクエストが実際に送信されたサーバーの IP アドレス。IPv6 アドレスをそのまま指定することもできます。

      • method

        文字列

        標準の HTTP メソッド。

      • parentDocumentId

        文字列 省略可

        Chrome 106 以降 Chrome 148 以降の browser.*

        このフレームを所有する親ドキュメントの UUID。親がない場合、これは設定されません。

      • parentFrameId

        数値

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

      • requestId

        文字列

        リクエストの ID。リクエスト ID はブラウザ セッション内で一意です。その結果、同じリクエストの異なるイベントを関連付けるために使用できます。

      • tabId

        数値

        リクエストが発生したタブの ID。リクエストがタブに関連していない場合は -1 に設定します。

      • timeStamp

        数値

        このシグナルがトリガーされた時刻(エポックからのミリ秒単位)。

      • リクエストされたリソースの使用方法。

      • URL

        文字列

  • filter
  • extraInfoSpec

onHeadersReceived

browser.webRequest.onHeadersReceived.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnHeadersReceivedOptions[],
)

リクエストの HTTP レスポンス ヘッダーが受信されたときに呼び出されます。

パラメータ

  • callback

    関数

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

    (details: object) => BlockingResponse | undefined

    • 詳細

      オブジェクト

      • documentId

        文字列 省略可

        Chrome 106 以降 Chrome 148 以降の browser.*

        リクエストを行っているドキュメントの UUID。

      • Chrome 106 以降 Chrome 148 以降の browser.*

        ドキュメントのライフサイクル。

      • frameId

        数値

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

      • Chrome 106 以降 Chrome 148 以降の browser.*

        リクエストが発生したフレームのタイプ。

      • initiator

        文字列 省略可

        Chrome 63 以降 Chrome 148 以降の browser.*

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

      • method

        文字列

        標準の HTTP メソッド。

      • parentDocumentId

        文字列 省略可

        Chrome 106 以降 Chrome 148 以降の browser.*

        このフレームを所有する親ドキュメントの UUID。親がない場合、これは設定されません。

      • parentFrameId

        数値

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

      • requestId

        文字列

        リクエストの ID。リクエスト ID はブラウザ セッション内で一意です。その結果、同じリクエストの異なるイベントを関連付けるために使用できます。

      • responseHeaders

        HttpHeaders 省略可

        このレスポンスで受信された HTTP レスポンス ヘッダー。

      • securityInfo

        SecurityInfo 省略可

        Chrome 144 以降 Chrome 148 以降の browser.*

        基盤となる接続に使用される TLS / QUIC 接続に関する情報。extraInfoSpec パラメータで securityInfo が指定されている場合にのみ指定されます。

      • statusCode

        数値

        Chrome 43 以降 Chrome 148 以降の browser.*

        サーバーから返される標準の HTTP ステータス コード。

      • statusLine

        文字列

        レスポンスの HTTP ステータス行、または HTTP/0.9 レスポンス(ステータス行がないレスポンス)の「HTTP/0.9 200 OK」文字列。

      • tabId

        数値

        リクエストが発生したタブの ID。リクエストがタブに関連していない場合は -1 に設定します。

      • timeStamp

        数値

        このシグナルがトリガーされた時刻(エポックからのミリ秒単位)。

      • リクエストされたリソースの使用方法。

      • URL

        文字列

    • 戻り値

      BlockingResponse | undefined

      「extraInfoSpec」パラメータで「blocking」が指定されている場合、イベント リスナーはこのタイプのオブジェクトを返す必要があります。

  • filter
  • extraInfoSpec

onResponseStarted

browser.webRequest.onResponseStarted.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnResponseStartedOptions[],
)

レスポンス本文の最初のバイトが受信されたときに呼び出されます。HTTP リクエストの場合、これはステータス行とレスポンス ヘッダーが使用可能であることを意味します。

パラメータ

  • callback

    関数

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

    (details: object) => void

    • 詳細

      オブジェクト

      • documentId

        文字列 省略可

        Chrome 106 以降 Chrome 148 以降の browser.*

        リクエストを行っているドキュメントの UUID。

      • Chrome 106 以降 Chrome 148 以降の browser.*

        ドキュメントのライフサイクル。

      • frameId

        数値

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

      • Chrome 106 以降 Chrome 148 以降の browser.*

        リクエストが発生したフレームのタイプ。

      • fromCache

        ブール値

        このレスポンスがディスク キャッシュから取得されたかどうかを示します。

      • initiator

        文字列 省略可

        Chrome 63 以降 Chrome 148 以降の browser.*

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

      • ip

        文字列 省略可

        リクエストが実際に送信されたサーバーの IP アドレス。IPv6 アドレスをそのまま指定することもできます。

      • method

        文字列

        標準の HTTP メソッド。

      • parentDocumentId

        文字列 省略可

        Chrome 106 以降 Chrome 148 以降の browser.*

        このフレームを所有する親ドキュメントの UUID。親がない場合、これは設定されません。

      • parentFrameId

        数値

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

      • requestId

        文字列

        リクエストの ID。リクエスト ID はブラウザ セッション内で一意です。その結果、同じリクエストの異なるイベントを関連付けるために使用できます。

      • responseHeaders

        HttpHeaders 省略可

        このレスポンスとともに受信された HTTP レスポンス ヘッダー。

      • statusCode

        数値

        サーバーから返される標準の HTTP ステータス コード。

      • statusLine

        文字列

        レスポンスの HTTP ステータス行、HTTP/0.9 レスポンス(ステータス行がないレスポンス)の場合は「HTTP/0.9 200 OK」文字列、ヘッダーがない場合は空の文字列。

      • tabId

        数値

        リクエストが発生したタブの ID。リクエストがタブに関連していない場合は -1 に設定します。

      • timeStamp

        数値

        このシグナルがトリガーされた時刻(エポックからのミリ秒単位)。

      • リクエストされたリソースの使用方法。

      • URL

        文字列

  • filter
  • extraInfoSpec

onSendHeaders

browser.webRequest.onSendHeaders.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnSendHeadersOptions[],
)

リクエストがサーバーに送信される直前に呼び出されます(以前の onBeforeSendHeaders コールバックの変更は、onSendHeaders が呼び出されるまでに表示されます)。

パラメータ

  • callback

    関数

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

    (details: object) => void

    • 詳細

      オブジェクト

      • documentId

        文字列 省略可

        Chrome 106 以降 Chrome 148 以降の browser.*

        リクエストを行っているドキュメントの UUID。

      • Chrome 106 以降 Chrome 148 以降の browser.*

        ドキュメントのライフサイクル。

      • frameId

        数値

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

      • Chrome 106 以降 Chrome 148 以降の browser.*

        リクエストが発生したフレームのタイプ。

      • initiator

        文字列 省略可

        Chrome 63 以降 Chrome 148 以降の browser.*

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

      • method

        文字列

        標準の HTTP メソッド。

      • parentDocumentId

        文字列 省略可

        Chrome 106 以降 Chrome 148 以降の browser.*

        このフレームを所有する親ドキュメントの UUID。親がない場合、これは設定されません。

      • parentFrameId

        数値

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

      • requestHeaders

        HttpHeaders 省略可

        このリクエストとともに送信された HTTP リクエスト ヘッダー。

      • requestId

        文字列

        リクエストの ID。リクエスト ID はブラウザ セッション内で一意です。その結果、同じリクエストの異なるイベントを関連付けるために使用できます。

      • tabId

        数値

        リクエストが発生したタブの ID。リクエストがタブに関連していない場合は -1 に設定します。

      • timeStamp

        数値

        このシグナルがトリガーされた時刻(エポックからのミリ秒単位)。

      • リクエストされたリソースの使用方法。

      • URL

        文字列

  • filter
  • extraInfoSpec