説明
chrome.debugger
API は、Chrome のリモート デバッグ プロトコルの代替トランスポートとして機能します。chrome.debugger
を使用して 1 つ以上のタブにアタッチし、ネットワーク インタラクションの測定、JavaScript のデバッグ、DOM と CSS の変更などを行います。Debuggee
プロパティの tabId
を使用して、sendCommand
でタブをターゲットにし、onEvent
コールバックから tabId
でイベントをルーティングします。
権限
debugger
セキュリティに関する注意事項
セキュリティ上の理由から、chrome.debugger
API ではすべての Chrome DevTools プロトコル ドメインにアクセスできるわけではありません。使用できるドメイン: Accessibility、
Audits、CacheStorage、Console、
CSS、Database、Debugger、DOM、
DOMDebugger、DOMSnapshot、DOM20}WebAudioWebAuthn
マニフェスト
この API を使用するには、拡張機能のマニフェストで "debugger"
権限を宣言する必要があります。
{
"name": "My extension",
...
"permissions": [
"debugger",
],
...
}
例
この API を試すには、chrome-extension-samples リポジトリからデバッガ API の例をインストールします。
型
Debuggee
デバッグ対象の識別子。tabId、extensionId、targetId のいずれかを指定する必要があります
プロパティ
-
extensionId
string(省略可)
デバッグする拡張機能の ID。拡張機能の背景ページにアタッチできるのは、
--silent-debugger-extension-api
コマンドライン スイッチが使用されている場合のみです。 -
tabId
number(省略可)
デバッグするタブの ID。
-
targetId
string(省略可)
デバッグ ターゲットの不透明な ID。
DebuggerSession
デバッガ セッション ID。tabId、extensionId、targetId のいずれかを指定する必要があります。また、オプションの sessionId を指定できます。onEvent
から送信された引数に sessionId が指定されている場合、そのイベントはルート デバッグ対象セッション内の子プロトコル セッションから発生したものです。sendCommand
に渡される際に sessionId が指定された場合、ルート デバッグ対象セッション内の子プロトコル セッションをターゲットにします。
プロパティ
-
extensionId
string(省略可)
デバッグする拡張機能の ID。拡張機能の背景ページにアタッチできるのは、
--silent-debugger-extension-api
コマンドライン スイッチが使用されている場合のみです。 -
sessionId
string(省略可)
Chrome DevTools プロトコル セッションの不透明な ID。tabId、extensionId、または targetId によって識別されるルート セッション内の子セッションを識別します。
-
tabId
number(省略可)
デバッグするタブの ID。
-
targetId
string(省略可)
デバッグ ターゲットの不透明な ID。
DetachReason
接続終了の理由。
列挙型
"target_closed"
"canceled_by_user"
TargetInfo
デバッグ ターゲットの情報
プロパティ
-
接続済み
boolean
デバッガがすでにアタッチされている場合は true。
-
extensionId
string(省略可)
type = 'background_page' に定義される拡張機能 ID。
-
faviconUrl
string(省略可)
ターゲットのファビコン URL。
-
id
string
ターゲット ID。
-
tabId
number(省略可)
type == 'page' の場合に定義されるタブ ID。
-
title
string
ターゲット ページのタイトル。
-
type
ターゲット タイプ。
-
url
string
ターゲット URL。
TargetInfoType
ターゲット タイプ。
列挙型
メソッド
attach()
chrome.debugger.attach(
target: Debuggee,
requiredVersion: string,
callback?: function,
)
指定されたターゲットにデバッガをアタッチします。
パラメータ
-
ターゲット
アタッチ先のデバッグ ターゲット。
-
requiredVersion
string
必要なデバッグ プロトコル バージョン(「0.1」)。デバッグ対象には、一致するメジャー バージョンとそれ以降のマイナー バージョンを持つデバッグ対象にのみアタッチできます。プロトコル バージョンのリストはこちらで入手できます。
-
callback
関数(省略可)
callback
パラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 96 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
)
指定されたターゲットからデバッガを切断します。
パラメータ
-
ターゲット
接続解除するデバッグ ターゲット。
-
callback
関数(省略可)
callback
パラメータは次のようになります。() => void
戻り値
-
Promise<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
string
メソッド名。リモート デバッグ プロトコルで定義されているメソッドのいずれかにする必要があります。
-
commandParams
オブジェクト 省略可
リクエスト パラメータを含む JSON オブジェクト。このオブジェクトは、指定されたメソッドのリモート デバッグ パラメータ スキームに準拠している必要があります。
-
callback
関数(省略可)
callback
パラメータは次のようになります。(result?: object) => void
-
件の結果
オブジェクト 省略可
JSON オブジェクトを返します。レスポンスの構造はメソッド名によって異なり、リモート デバッグ プロトコルのコマンドの説明の returns 属性で定義されます。
-
戻り値
-
Promise<object | undefined>
Chrome 96 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
イベント
onDetach
chrome.debugger.onDetach.addListener(
callback: function,
)
ブラウザがタブのデバッグ セッションを終了したときに呼び出されます。これは、タブを閉じているとき、または接続されたタブに対して Chrome DevTools が呼び出されているときに発生します。
パラメータ
-
callback
機能
callback
パラメータは次のようになります。(source: Debuggee, reason: DetachReason) => void
-
source
-
reason
-
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
デバッグ ターゲットがインストルメンテーション イベントを発行するたびに呼び出されます。
パラメータ
-
callback
機能
callback
パラメータは次のようになります。(source: DebuggerSession, method: string, params?: object) => void
-
source
-
method
string
-
params
オブジェクト 省略可
-