Class: Debugger

An alternate transport for Chrome's remote debugging protocol.

Process: Main

Chrome Developer Tools has a special binding available at JavaScript runtime that allows interacting with pages and instrumenting them.

const {BrowserWindow} = require('electron')
  let win = new BrowserWindow()
  try {
  } 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') {

Instance Methods


  • protocolVersion String (optional) - Requested debugging protocol version.

Attaches the debugger to the webContents.


Returns Boolean - Whether a debugger is attached to the webContents.


Detaches the debugger from the webContents.

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

  • method String - Method name, should be one of the methods defined by the remote debugging protocol.
  • commandParams Object (optional) - JSON object with request parameters.
  • callback Function (optional) - Response

    • error Object - Error message indicating the failure of the command.
    • result Any - Response defined by the 'returns' attribute of the command description in the remote debugging protocol.

Send given command to the debugging target.

Instance Events

Event: 'detach'

  • event Event
  • reason String - Reason for detaching debugger.

Emitted when debugging session is terminated. This happens either when webContents is closed or devtools is invoked for the attached webContents.

Event: 'message'

  • event Event
  • method String - Method name.
  • params Object - Event parameters defined by the 'parameters' attribute in the remote debugging protocol.

Emitted whenever debugging target issues instrumentation event.

© 2013–2018 GitHub Inc.
Licensed under the MIT license.