* fix: ensure the typescript definitions only export correct value types In typescript there are two main types of "types" you can export, value types (class, const) and definition types (type, interface). The typescript compiler will let anything declared via const or class be used as a value. Unfortunately we were exporting a bunch of things (see the diff) as class/const when they weren't actually exported values. This lead to typescript being happy but the runtime throwing errors (not something we want). This change passes "exported-in" context through our docs, to the parser and then to the definitions generator to ensure we only mark things as exported in the ts defs that we actually export. Fixes #22167 * chore: update typescript-defs * chore: update typescript-defs * chore: fix bad typescript in IPC test * docs: test rendering of new syntax * chore: update per feedback, use same syntax but with 'this is not exportedd' line
2.9 KiB
Class: Debugger
An alternate transport for Chrome's remote debugging protocol.
Process: Main
This class is not exported from the 'electron'
module. It is only available as a return value of other methods in the Electron API.
Chrome Developer Tools has a special binding available at JavaScript runtime that allows interacting with pages and instrumenting them.
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')
Instance Events
Event: 'detach'
Returns:
event
Eventreason
String - Reason for detaching debugger.
Emitted when the debugging session is terminated. This happens either when
webContents
is closed or devtools is invoked for the attached webContents
.
Event: 'message'
Returns:
event
Eventmethod
String - Method name.params
any - Event parameters defined by the 'parameters' attribute in the remote debugging protocol.sessionId
String - Unique identifier of attached debugging session, will match the value sent fromdebugger.sendCommand
.
Emitted whenever the debugging target issues an instrumentation event.
Instance Methods
debugger.attach([protocolVersion])
protocolVersion
String (optional) - Requested debugging protocol version.
Attaches the debugger to the webContents
.
debugger.isAttached()
Returns Boolean
- Whether a debugger is attached to the webContents
.
debugger.detach()
Detaches the debugger from the webContents
.
debugger.sendCommand(method[, commandParams, sessionId])
method
String - Method name, should be one of the methods defined by the remote debugging protocol.commandParams
any (optional) - JSON object with request parameters.sessionId
String (optional) - send command to the target with associated debugging session id. The initial value can be obtained by sending Target.attachToTarget message.
Returns Promise<any>
- A promise that resolves with the response defined by
the 'returns' attribute of the command description in the remote debugging protocol
or is rejected indicating the failure of the command.
Send given command to the debugging target.