説明
chrome.debugger
API は、Chrome のリモート デバッグ プロトコルの代替トランスポートとして機能します。chrome.debugger
を使用して 1 つ以上のタブにアタッチし、ネットワーク インタラクションの測定、JavaScript のデバッグ、DOM と CSS の変更などを行います。Debuggee
プロパティの tabId
を使用して、sendCommand
でタブをターゲットにし、onEvent
コールバックからの tabId
でイベントをルーティングします。
権限
debugger
セキュリティに関する注意事項
セキュリティ上の理由から、chrome.debugger
API では一部の Chrome DevTools にはアクセスできません。
学びます。利用可能なドメインは、ユーザー補助、
監査、CacheStorage、コンソール、
CSS、Database、Debugger、DOM、
DOMDebugger、DOMSnapshot、
エミュレーション、取得、IO、入力、
インスペクタ、ログ、ネットワーク、オーバーレイ
ページ、パフォーマンス、プロファイラ、
ランタイム、ストレージ、ターゲット、トレース、
WebAudio、WebAuthn。
マニフェスト
この 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
デバッガ セッション 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
接続終了の理由。
列挙型
"target_closed"
"canceled_by_user"
TargetInfo
デバッグ ターゲット情報
プロパティ
-
接続済み
ブール値
デバッガがすでにアタッチされている場合は true。
-
extensionId
文字列(省略可)
type = 'background_page' の場合に定義される拡張機能の ID。
-
faviconUrl
文字列(省略可)
対象のファビコンの URL。
-
id
文字列
ターゲット ID。
-
tabId
数値(省略可)
type == 'page' の場合に定義されるタブ ID。
-
title
文字列
ターゲット ページのタイトル。
-
type
ターゲット タイプ。
-
URL
文字列
ターゲット URL。
TargetInfoType
ターゲット タイプ。
列挙型
"ページ"
"background_page"
"worker"
「その他」
メソッド
attach()
chrome.debugger.attach(
target: Debuggee,
requiredVersion: string,
callback?: function,
)
指定されたターゲットにデバッガをアタッチします。
パラメータ
-
ターゲット
アタッチするデバッグ ターゲット。
-
requiredVersion
文字列
必要なデバッグ プロトコル バージョン(「0.1」)。一致するメジャー バージョン以上およびマイナー バージョン以上のデバッグ対象にのみアタッチできます。プロトコル バージョンのリストはこちらで確認できます。
-
callback
関数(省略可)
callback
パラメータは次のようになります。() => void
戻り値
-
約束 <void>
Chrome 96 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
)
指定されたターゲットからデバッガを切断します。
パラメータ
-
ターゲット
切断するデバッグ ターゲット。
-
callback
関数(省略可)
callback
パラメータは次のようになります。() => void
戻り値
-
約束 <void>
Chrome 96 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
getTargets()
chrome.debugger.getTargets(
callback?: function,
)
使用可能なデバッグ ターゲットのリストを返します。
パラメータ
-
callback
関数(省略可)
callback
パラメータは次のようになります。(result: TargetInfo[]) => void
-
件の結果
使用可能なデバッグ ターゲットに対応する TargetInfo オブジェクトの配列。
-
戻り値
-
Promise<TargetInfo[]>
Chrome 96 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
sendCommand()
chrome.debugger.sendCommand(
target: DebuggerSession,
method: string,
commandParams?: object,
callback?: function,
)
指定されたコマンドをデバッグ ターゲットに送信します。
パラメータ
-
ターゲット
コマンドの送信先にするデバッグ ターゲット。
-
method
文字列
メソッド名。リモート デバッグ プロトコルで定義されたメソッドのいずれかを指定する必要があります。
-
commandParams
オブジェクト(省略可)
リクエスト パラメータを含む JSON オブジェクト。このオブジェクトは、指定されたメソッドのリモート デバッグ パラメータ スキームに準拠している必要があります。
-
callback
関数(省略可)
callback
パラメータは次のようになります。(result?: object) => void
-
件の結果
オブジェクト(省略可)
レスポンスを含む JSON オブジェクト。レスポンスの構造はメソッド名によって異なり、「戻り値」によって定義される属性を、リモート デバッグ プロトコルでのコマンドの説明の時点で指定する必要があります。
-
戻り値
-
Promise<object |未定義>
Chrome 96 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
イベント
onDetach
chrome.debugger.onDetach.addListener(
callback: function,
)
ブラウザがタブのデバッグ セッションを終了すると呼び出されます。これは、タブが閉じられているか、接続されたタブに対して Chrome DevTools が呼び出されている場合に発生します。
パラメータ
-
callback
関数
callback
パラメータは次のようになります。(source: Debuggee, reason: DetachReason) => void
-
ソース
-
reason
-
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
デバッグ ターゲットがインストルメンテーション イベントを発行するたびに呼び出されます。
パラメータ
-
callback
関数
callback
パラメータは次のようになります。(source: DebuggerSession, method: string, params?: object) => void
-
ソース
-
method
文字列
-
params
オブジェクト(省略可)
-