chrome.debugger

説明

chrome.debugger API は、Chrome のリモート デバッグ プロトコルの代替トランスポートとして機能します。chrome.debugger を使用して 1 つ以上のタブにアタッチし、ネットワーク インタラクションの測定、JavaScript のデバッグ、DOM と CSS の変更などを行います。Debuggee プロパティの tabId を使用して、sendCommand でタブをターゲットにし、onEvent コールバックからの tabId でイベントをルーティングします。

権限

debugger

セキュリティに関する注意事項

セキュリティ上の理由から、chrome.debugger API では一部の Chrome DevTools にはアクセスできません。 学びます。利用可能なドメインは、ユーザー補助監査CacheStorageコンソールCSSDatabaseDebuggerDOMDOMDebuggerDOMSnapshotエミュレーション取得IO入力インスペクタログネットワークオーバーレイ ページパフォーマンスプロファイラランタイムストレージターゲットトレースWebAudioWebAuthn

マニフェスト

この API を使用するには、拡張機能のマニフェストで "debugger" 権限を宣言する必要があります。

{
  "name": "My extension",
  ...
  "permissions": [
    "debugger",
  ],
  ...
}

この API を試すには、chrome-extension-samples からデバッガ API の例をインストールしてください。 できます。

Debuggee

デバッグ対象の識別子。tabId、extensionId、targetId のいずれかを指定する必要があります

プロパティ

  • extensionId

    文字列(省略可)

    デバッグする拡張機能の ID。拡張機能の背景ページへの接続は、--silent-debugger-extension-api コマンドライン スイッチを使用している場合にのみ可能です。

  • tabId

    数値(省略可)

    デバッグするタブの ID。

  • targetId

    文字列(省略可)

    デバッグ ターゲットの不透明な ID。

DebuggerSession

Chrome 125 以降

デバッガ セッション ID。tabId、extensionId、targetId のいずれかを指定する必要があります。また、オプションの sessionId を指定することもできます。onEvent から送信された引数に sessionId が指定されている場合、イベントはルート デバッグ対象セッション内の子プロトコル セッションから送信されていることを意味します。sendCommand に渡されるときに sessionId を指定すると、ルート デバッグ対象セッション内の子プロトコル セッションがターゲットになります。

プロパティ

  • extensionId

    文字列(省略可)

    デバッグする拡張機能の ID。拡張機能の背景ページへの接続は、--silent-debugger-extension-api コマンドライン スイッチを使用している場合にのみ可能です。

  • sessionId

    文字列(省略可)

    Chrome DevTools プロトコル セッションの不透明な ID。tabId、extensionId、targetId のいずれかで識別されるルート セッション内の子セッションを識別します。

  • tabId

    数値(省略可)

    デバッグするタブの ID。

  • targetId

    文字列(省略可)

    デバッグ ターゲットの不透明な ID。

DetachReason

Chrome 44 以降

接続終了の理由。

列挙型

"target_closed"

"canceled_by_user"

TargetInfo

デバッグ ターゲット情報

プロパティ

  • 接続済み

    ブール値

    デバッガがすでにアタッチされている場合は true。

  • extensionId

    文字列(省略可)

    type = 'background_page' の場合に定義される拡張機能の ID。

  • faviconUrl

    文字列(省略可)

    対象のファビコンの URL。

  • id

    文字列

    ターゲット ID。

  • tabId

    数値(省略可)

    type == 'page' の場合に定義されるタブ ID。

  • title

    文字列

    ターゲット ページのタイトル。

  • ターゲット タイプ。

  • URL

    文字列

    ターゲット URL。

TargetInfoType

Chrome 44 以降

ターゲット タイプ。

列挙型

"ページ"

"background_page"

"worker"

「その他」

メソッド

attach()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.debugger.attach(
  target: Debuggee,
  requiredVersion: string,
  callback?: function,
)

指定されたターゲットにデバッガをアタッチします。

パラメータ

  • ターゲット

    アタッチするデバッグ ターゲット。

  • requiredVersion

    文字列

    必要なデバッグ プロトコル バージョン(「0.1」)。一致するメジャー バージョン以上およびマイナー バージョン以上のデバッグ対象にのみアタッチできます。プロトコル バージョンのリストはこちらで確認できます。

  • callback

    関数(省略可)

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

    () => void

戻り値

  • 約束 <void>

    Chrome 96 以降

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

detach()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.debugger.detach(
  target: Debuggee,
  callback?: function,
)

指定されたターゲットからデバッガを切断します。

パラメータ

  • ターゲット

    切断するデバッグ ターゲット。

  • callback

    関数(省略可)

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

    () => void

戻り値

  • 約束 <void>

    Chrome 96 以降

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

getTargets()

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

使用可能なデバッグ ターゲットのリストを返します。

パラメータ

  • callback

    関数(省略可)

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

    (result: TargetInfo[]) => void

    • 件の結果

      使用可能なデバッグ ターゲットに対応する TargetInfo オブジェクトの配列。

戻り値

  • Promise&lt;TargetInfo[]&gt;

    Chrome 96 以降

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

sendCommand()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.debugger.sendCommand(
  target: DebuggerSession,
  method: string,
  commandParams?: object,
  callback?: function,
)

指定されたコマンドをデバッグ ターゲットに送信します。

パラメータ

  • ターゲット

    コマンドの送信先にするデバッグ ターゲット。

  • method

    文字列

    メソッド名。リモート デバッグ プロトコルで定義されたメソッドのいずれかを指定する必要があります。

  • commandParams

    オブジェクト(省略可)

    リクエスト パラメータを含む JSON オブジェクト。このオブジェクトは、指定されたメソッドのリモート デバッグ パラメータ スキームに準拠している必要があります。

  • callback

    関数(省略可)

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

    (result?: object) => void

    • 件の結果

      オブジェクト(省略可)

      レスポンスを含む JSON オブジェクト。レスポンスの構造はメソッド名によって異なり、「戻り値」によって定義される属性を、リモート デバッグ プロトコルでのコマンドの説明の時点で指定する必要があります。

戻り値

  • Promise&lt;object |未定義>

    Chrome 96 以降

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

イベント

onDetach

chrome.debugger.onDetach.addListener(
  callback: function,
)

ブラウザがタブのデバッグ セッションを終了すると呼び出されます。これは、タブが閉じられているか、接続されたタブに対して Chrome DevTools が呼び出されている場合に発生します。

パラメータ

onEvent

chrome.debugger.onEvent.addListener(
  callback: function,
)

デバッグ ターゲットがインストルメンテーション イベントを発行するたびに呼び出されます。

パラメータ

  • callback

    関数

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

    (source: DebuggerSession, method: string, params?: object) => void

    • ソース
    • method

      文字列

    • params

      オブジェクト(省略可)