メインコンテンツへスキップ

クラス: Debugger

クラス: Debugger

Chromeのリモートデバッグプロトコルの代替トランスポート。

プロセス: メイン
このクラスは'electron'モジュールからエクスポートされません。Electron APIの他のメソッドの戻り値としてのみ利用可能です。

Chrome Developer Toolsには、ページと対話し、インストルメント化を可能にするJavaScriptランタイムで使用できる特別なバインディングがあります。

const { BrowserWindow } = require('electron')
const win = new BrowserWindow()

try {
win.webContents.debugger.attach('1.1')
} catch (err) {
console.log('Debugger attach failed : ', err)
}

win.webContents.debugger.on('detach', (event, reason) => {
console.log('Debugger detached due to : ', reason)
})

win.webContents.debugger.on('message', (event, method, params) => {
if (method === 'Network.requestWillBeSent') {
if (params.request.url === 'https://www.github.com') {
win.webContents.debugger.detach()
}
}
})

win.webContents.debugger.sendCommand('Network.enable')

インスタンスイベント

イベント: 'detach'

戻り値

  • event Event
  • reason string - デバッガーがデタッチする理由。

デバッグセッションが終了したときに発生します。これは、webContentsが閉じられたとき、またはアタッチされたwebContentsに対してdevtoolsが呼び出されたときに発生します。

イベント: 'message'

戻り値

  • event Event
  • method string - メソッド名。
  • params any - リモートデバッグプロトコルの「parameters」属性で定義されたイベントパラメータ。
  • sessionId string - アタッチされたデバッグセッションの一意の識別子。debugger.sendCommandから送信された値と一致します。

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

インスタンスメソッド

debugger.attach([protocolVersion])

  • protocolVersion string (オプション) - 要求されたデバッグプロトコルのバージョン。

デバッガーをwebContentsにアタッチします。

debugger.isAttached()

戻り値 boolean - デバッガーがwebContentsにアタッチされているかどうか。

debugger.detach()

デバッガーをwebContentsからデタッチします。

debugger.sendCommand(method[, commandParams, sessionId])

  • method string - メソッド名。 リモートデバッグプロトコルで定義されているメソッドのいずれかである必要があります。
  • commandParams any (オプション) - リクエストパラメータを含むJSONオブジェクト。
  • sessionId string (オプション) - 関連付けられたデバッグセッションIDを持つターゲットにコマンドを送信します。初期値は、Target.attachToTargetメッセージを送信することで取得できます。

戻り値 Promise<any> - リモートデバッグプロトコルのコマンド記述の「returns」属性で定義された応答で解決されるプロミス、またはコマンドの失敗を示すエラーで拒否されるプロミス。

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