1# Copyright 2017 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5version
6  major 1
7  minor 3
8
9# This domain is deprecated - use Runtime or Log instead.
10deprecated domain Console
11  depends on Runtime
12
13  # Console message.
14  type ConsoleMessage extends object
15    properties
16      # Message source.
17      enum source
18        xml
19        javascript
20        network
21        console-api
22        storage
23        appcache
24        rendering
25        security
26        other
27        deprecation
28        worker
29      # Message severity.
30      enum level
31        log
32        warning
33        error
34        debug
35        info
36      # Message text.
37      string text
38      # URL of the message origin.
39      optional string url
40      # Line number in the resource that generated this message (1-based).
41      optional integer line
42      # Column number in the resource that generated this message (1-based).
43      optional integer column
44
45  # Does nothing.
46  command clearMessages
47
48  # Disables console domain, prevents further console messages from being reported to the client.
49  command disable
50
51  # Enables console domain, sends the messages collected so far to the client by means of the
52  # `messageAdded` notification.
53  command enable
54
55  # Issued when new console message is added.
56  event messageAdded
57    parameters
58      # Console message that has been added.
59      ConsoleMessage message
60
61# Debugger domain exposes JavaScript debugging capabilities. It allows setting and removing
62# breakpoints, stepping through execution, exploring stack traces, etc.
63domain Debugger
64  depends on Runtime
65
66  # Breakpoint identifier.
67  type BreakpointId extends string
68
69  # Call frame identifier.
70  type CallFrameId extends string
71
72  # Location in the source code.
73  type Location extends object
74    properties
75      # Script identifier as reported in the `Debugger.scriptParsed`.
76      Runtime.ScriptId scriptId
77      # Line number in the script (0-based).
78      integer lineNumber
79      # Column number in the script (0-based).
80      optional integer columnNumber
81
82  # Location in the source code.
83  experimental type ScriptPosition extends object
84    properties
85      integer lineNumber
86      integer columnNumber
87
88  # Location range within one script.
89  experimental type LocationRange extends object
90    properties
91      Runtime.ScriptId scriptId
92      ScriptPosition start
93      ScriptPosition end
94
95  # JavaScript call frame. Array of call frames form the call stack.
96  type CallFrame extends object
97    properties
98      # Call frame identifier. This identifier is only valid while the virtual machine is paused.
99      CallFrameId callFrameId
100      # Name of the JavaScript function called on this call frame.
101      string functionName
102      # Location in the source code.
103      optional Location functionLocation
104      # Location in the source code.
105      Location location
106      # JavaScript script name or url.
107      string url
108      # Scope chain for this call frame.
109      array of Scope scopeChain
110      # `this` object for this call frame.
111      Runtime.RemoteObject this
112      # The value being returned, if the function is at return point.
113      optional Runtime.RemoteObject returnValue
114
115  # Scope description.
116  type Scope extends object
117    properties
118      # Scope type.
119      enum type
120        global
121        local
122        with
123        closure
124        catch
125        block
126        script
127        eval
128        module
129        wasm-expression-stack
130      # Object representing the scope. For `global` and `with` scopes it represents the actual
131      # object; for the rest of the scopes, it is artificial transient object enumerating scope
132      # variables as its properties.
133      Runtime.RemoteObject object
134      optional string name
135      # Location in the source code where scope starts
136      optional Location startLocation
137      # Location in the source code where scope ends
138      optional Location endLocation
139
140  # Search match for resource.
141  type SearchMatch extends object
142    properties
143      # Line number in resource content.
144      number lineNumber
145      # Line with match content.
146      string lineContent
147
148  type BreakLocation extends object
149    properties
150      # Script identifier as reported in the `Debugger.scriptParsed`.
151      Runtime.ScriptId scriptId
152      # Line number in the script (0-based).
153      integer lineNumber
154      # Column number in the script (0-based).
155      optional integer columnNumber
156      optional enum type
157        debuggerStatement
158        call
159        return
160
161  # Continues execution until specific location is reached.
162  command continueToLocation
163    parameters
164      # Location to continue to.
165      Location location
166      optional enum targetCallFrames
167        any
168        current
169
170  # Disables debugger for given page.
171  command disable
172
173  # Enables debugger for the given page. Clients should not assume that the debugging has been
174  # enabled until the result for this command is received.
175  command enable
176    parameters
177      # The maximum size in bytes of collected scripts (not referenced by other heap objects)
178      # the debugger can hold. Puts no limit if parameter is omitted.
179      experimental optional number maxScriptsCacheSize
180    returns
181      # Unique identifier of the debugger.
182      experimental Runtime.UniqueDebuggerId debuggerId
183
184  # Evaluates expression on a given call frame.
185  command evaluateOnCallFrame
186    parameters
187      # Call frame identifier to evaluate on.
188      CallFrameId callFrameId
189      # Expression to evaluate.
190      string expression
191      # String object group name to put result into (allows rapid releasing resulting object handles
192      # using `releaseObjectGroup`).
193      optional string objectGroup
194      # Specifies whether command line API should be available to the evaluated expression, defaults
195      # to false.
196      optional boolean includeCommandLineAPI
197      # In silent mode exceptions thrown during evaluation are not reported and do not pause
198      # execution. Overrides `setPauseOnException` state.
199      optional boolean silent
200      # Whether the result is expected to be a JSON object that should be sent by value.
201      optional boolean returnByValue
202      # Whether preview should be generated for the result.
203      experimental optional boolean generatePreview
204      # Whether to throw an exception if side effect cannot be ruled out during evaluation.
205      optional boolean throwOnSideEffect
206      # Terminate execution after timing out (number of milliseconds).
207      experimental optional Runtime.TimeDelta timeout
208    returns
209      # Object wrapper for the evaluation result.
210      Runtime.RemoteObject result
211      # Exception details.
212      optional Runtime.ExceptionDetails exceptionDetails
213
214  # Returns possible locations for breakpoint. scriptId in start and end range locations should be
215  # the same.
216  command getPossibleBreakpoints
217    parameters
218      # Start of range to search possible breakpoint locations in.
219      Location start
220      # End of range to search possible breakpoint locations in (excluding). When not specified, end
221      # of scripts is used as end of range.
222      optional Location end
223      # Only consider locations which are in the same (non-nested) function as start.
224      optional boolean restrictToFunction
225    returns
226      # List of the possible breakpoint locations.
227      array of BreakLocation locations
228
229  # Returns source for the script with given id.
230  command getScriptSource
231    parameters
232      # Id of the script to get source for.
233      Runtime.ScriptId scriptId
234    returns
235      # Script source (empty in case of Wasm bytecode).
236      string scriptSource
237      # Wasm bytecode.
238      optional binary bytecode
239
240  # This command is deprecated. Use getScriptSource instead.
241  deprecated command getWasmBytecode
242    parameters
243      # Id of the Wasm script to get source for.
244      Runtime.ScriptId scriptId
245    returns
246      # Script source.
247      binary bytecode
248
249  # Returns stack trace with given `stackTraceId`.
250  experimental command getStackTrace
251    parameters
252      Runtime.StackTraceId stackTraceId
253    returns
254      Runtime.StackTrace stackTrace
255
256  # Stops on the next JavaScript statement.
257  command pause
258
259  experimental deprecated command pauseOnAsyncCall
260    parameters
261      # Debugger will pause when async call with given stack trace is started.
262      Runtime.StackTraceId parentStackTraceId
263
264  # Removes JavaScript breakpoint.
265  command removeBreakpoint
266    parameters
267      BreakpointId breakpointId
268
269  # Restarts particular call frame from the beginning.
270  deprecated command restartFrame
271    parameters
272      # Call frame identifier to evaluate on.
273      CallFrameId callFrameId
274    returns
275      # New stack trace.
276      array of CallFrame callFrames
277      # Async stack trace, if any.
278      optional Runtime.StackTrace asyncStackTrace
279      # Async stack trace, if any.
280      experimental optional Runtime.StackTraceId asyncStackTraceId
281
282  # Resumes JavaScript execution.
283  command resume
284    parameters
285      # Set to true to terminate execution upon resuming execution. In contrast
286      # to Runtime.terminateExecution, this will allows to execute further
287      # JavaScript (i.e. via evaluation) until execution of the paused code
288      # is actually resumed, at which point termination is triggered.
289      # If execution is currently not paused, this parameter has no effect.
290      optional boolean terminateOnResume
291
292  # Searches for given string in script content.
293  command searchInContent
294    parameters
295      # Id of the script to search in.
296      Runtime.ScriptId scriptId
297      # String to search for.
298      string query
299      # If true, search is case sensitive.
300      optional boolean caseSensitive
301      # If true, treats string parameter as regex.
302      optional boolean isRegex
303    returns
304      # List of search matches.
305      array of SearchMatch result
306
307  # Enables or disables async call stacks tracking.
308  command setAsyncCallStackDepth
309    parameters
310      # Maximum depth of async call stacks. Setting to `0` will effectively disable collecting async
311      # call stacks (default).
312      integer maxDepth
313
314  # Replace previous blackbox patterns with passed ones. Forces backend to skip stepping/pausing in
315  # scripts with url matching one of the patterns. VM will try to leave blackboxed script by
316  # performing 'step in' several times, finally resorting to 'step out' if unsuccessful.
317  experimental command setBlackboxPatterns
318    parameters
319      # Array of regexps that will be used to check script url for blackbox state.
320      array of string patterns
321
322  # Makes backend skip steps in the script in blackboxed ranges. VM will try leave blacklisted
323  # scripts by performing 'step in' several times, finally resorting to 'step out' if unsuccessful.
324  # Positions array contains positions where blackbox state is changed. First interval isn't
325  # blackboxed. Array should be sorted.
326  experimental command setBlackboxedRanges
327    parameters
328      # Id of the script.
329      Runtime.ScriptId scriptId
330      array of ScriptPosition positions
331
332  # Sets JavaScript breakpoint at a given location.
333  command setBreakpoint
334    parameters
335      # Location to set breakpoint in.
336      Location location
337      # Expression to use as a breakpoint condition. When specified, debugger will only stop on the
338      # breakpoint if this expression evaluates to true.
339      optional string condition
340    returns
341      # Id of the created breakpoint for further reference.
342      BreakpointId breakpointId
343      # Location this breakpoint resolved into.
344      Location actualLocation
345
346  # Sets instrumentation breakpoint.
347  command setInstrumentationBreakpoint
348    parameters
349      # Instrumentation name.
350      enum instrumentation
351        beforeScriptExecution
352        beforeScriptWithSourceMapExecution
353    returns
354      # Id of the created breakpoint for further reference.
355      BreakpointId breakpointId
356
357  # Sets JavaScript breakpoint at given location specified either by URL or URL regex. Once this
358  # command is issued, all existing parsed scripts will have breakpoints resolved and returned in
359  # `locations` property. Further matching script parsing will result in subsequent
360  # `breakpointResolved` events issued. This logical breakpoint will survive page reloads.
361  command setBreakpointByUrl
362    parameters
363      # Line number to set breakpoint at.
364      integer lineNumber
365      # URL of the resources to set breakpoint on.
366      optional string url
367      # Regex pattern for the URLs of the resources to set breakpoints on. Either `url` or
368      # `urlRegex` must be specified.
369      optional string urlRegex
370      # Script hash of the resources to set breakpoint on.
371      optional string scriptHash
372      # Offset in the line to set breakpoint at.
373      optional integer columnNumber
374      # Expression to use as a breakpoint condition. When specified, debugger will only stop on the
375      # breakpoint if this expression evaluates to true.
376      optional string condition
377    returns
378      # Id of the created breakpoint for further reference.
379      BreakpointId breakpointId
380      # List of the locations this breakpoint resolved into upon addition.
381      array of Location locations
382
383  # Sets JavaScript breakpoint before each call to the given function.
384  # If another function was created from the same source as a given one,
385  # calling it will also trigger the breakpoint.
386  experimental command setBreakpointOnFunctionCall
387    parameters
388      # Function object id.
389      Runtime.RemoteObjectId objectId
390      # Expression to use as a breakpoint condition. When specified, debugger will
391      # stop on the breakpoint if this expression evaluates to true.
392      optional string condition
393    returns
394      # Id of the created breakpoint for further reference.
395      BreakpointId breakpointId
396
397  # Activates / deactivates all breakpoints on the page.
398  command setBreakpointsActive
399    parameters
400      # New value for breakpoints active state.
401      boolean active
402
403  # Defines pause on exceptions state. Can be set to stop on all exceptions, uncaught exceptions or
404  # no exceptions. Initial pause on exceptions state is `none`.
405  command setPauseOnExceptions
406    parameters
407      # Pause on exceptions mode.
408      enum state
409        none
410        uncaught
411        all
412
413  # Changes return value in top frame. Available only at return break position.
414  experimental command setReturnValue
415    parameters
416      # New return value.
417      Runtime.CallArgument newValue
418
419  # Edits JavaScript source live.
420  command setScriptSource
421    parameters
422      # Id of the script to edit.
423      Runtime.ScriptId scriptId
424      # New content of the script.
425      string scriptSource
426      #  If true the change will not actually be applied. Dry run may be used to get result
427      # description without actually modifying the code.
428      optional boolean dryRun
429    returns
430      # New stack trace in case editing has happened while VM was stopped.
431      optional array of CallFrame callFrames
432      # Whether current call stack  was modified after applying the changes.
433      optional boolean stackChanged
434      # Async stack trace, if any.
435      optional Runtime.StackTrace asyncStackTrace
436      # Async stack trace, if any.
437      experimental optional Runtime.StackTraceId asyncStackTraceId
438      # Exception details if any.
439      optional Runtime.ExceptionDetails exceptionDetails
440
441  # Makes page not interrupt on any pauses (breakpoint, exception, dom exception etc).
442  command setSkipAllPauses
443    parameters
444      # New value for skip pauses state.
445      boolean skip
446
447  # Changes value of variable in a callframe. Object-based scopes are not supported and must be
448  # mutated manually.
449  command setVariableValue
450    parameters
451      # 0-based number of scope as was listed in scope chain. Only 'local', 'closure' and 'catch'
452      # scope types are allowed. Other scopes could be manipulated manually.
453      integer scopeNumber
454      # Variable name.
455      string variableName
456      # New variable value.
457      Runtime.CallArgument newValue
458      # Id of callframe that holds variable.
459      CallFrameId callFrameId
460
461  # Steps into the function call.
462  command stepInto
463    parameters
464      # Debugger will pause on the execution of the first async task which was scheduled
465      # before next pause.
466      experimental optional boolean breakOnAsyncCall
467      # The skipList specifies location ranges that should be skipped on step into.
468      experimental optional array of LocationRange skipList
469
470  # Steps out of the function call.
471  command stepOut
472
473  # Steps over the statement.
474  command stepOver
475    parameters
476      # The skipList specifies location ranges that should be skipped on step over.
477      experimental optional array of LocationRange skipList
478
479  # Fired when breakpoint is resolved to an actual script and location.
480  event breakpointResolved
481    parameters
482      # Breakpoint unique identifier.
483      BreakpointId breakpointId
484      # Actual breakpoint location.
485      Location location
486
487  # Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria.
488  event paused
489    parameters
490      # Call stack the virtual machine stopped on.
491      array of CallFrame callFrames
492      # Pause reason.
493      enum reason
494        ambiguous
495        assert
496        CSPViolation
497        debugCommand
498        DOM
499        EventListener
500        exception
501        instrumentation
502        OOM
503        other
504        promiseRejection
505        XHR
506      # Object containing break-specific auxiliary properties.
507      optional object data
508      # Hit breakpoints IDs
509      optional array of string hitBreakpoints
510      # Async stack trace, if any.
511      optional Runtime.StackTrace asyncStackTrace
512      # Async stack trace, if any.
513      experimental optional Runtime.StackTraceId asyncStackTraceId
514      # Never present, will be removed.
515      experimental deprecated optional Runtime.StackTraceId asyncCallStackTraceId
516
517  # Fired when the virtual machine resumed execution.
518  event resumed
519
520  # Enum of possible script languages.
521  type ScriptLanguage extends string
522    enum
523      JavaScript
524      WebAssembly
525
526  # Debug symbols available for a wasm script.
527  type DebugSymbols extends object
528    properties
529      # Type of the debug symbols.
530      enum type
531        None
532        SourceMap
533        EmbeddedDWARF
534        ExternalDWARF
535      # URL of the external symbol source.
536      optional string externalURL
537
538  # Fired when virtual machine fails to parse the script.
539  event scriptFailedToParse
540    parameters
541      # Identifier of the script parsed.
542      Runtime.ScriptId scriptId
543      # URL or name of the script parsed (if any).
544      string url
545      # Line offset of the script within the resource with given URL (for script tags).
546      integer startLine
547      # Column offset of the script within the resource with given URL.
548      integer startColumn
549      # Last line of the script.
550      integer endLine
551      # Length of the last line of the script.
552      integer endColumn
553      # Specifies script creation context.
554      Runtime.ExecutionContextId executionContextId
555      # Content hash of the script.
556      string hash
557      # Embedder-specific auxiliary data.
558      optional object executionContextAuxData
559      # URL of source map associated with script (if any).
560      optional string sourceMapURL
561      # True, if this script has sourceURL.
562      optional boolean hasSourceURL
563      # True, if this script is ES6 module.
564      optional boolean isModule
565      # This script length.
566      optional integer length
567      # JavaScript top stack frame of where the script parsed event was triggered if available.
568      experimental optional Runtime.StackTrace stackTrace
569      # If the scriptLanguage is WebAssembly, the code section offset in the module.
570      experimental optional integer codeOffset
571      # The language of the script.
572      experimental optional Debugger.ScriptLanguage scriptLanguage
573      # The name the embedder supplied for this script.
574      experimental optional string embedderName
575
576  # Fired when virtual machine parses script. This event is also fired for all known and uncollected
577  # scripts upon enabling debugger.
578  event scriptParsed
579    parameters
580      # Identifier of the script parsed.
581      Runtime.ScriptId scriptId
582      # URL or name of the script parsed (if any).
583      string url
584      # Line offset of the script within the resource with given URL (for script tags).
585      integer startLine
586      # Column offset of the script within the resource with given URL.
587      integer startColumn
588      # Last line of the script.
589      integer endLine
590      # Length of the last line of the script.
591      integer endColumn
592      # Specifies script creation context.
593      Runtime.ExecutionContextId executionContextId
594      # Content hash of the script.
595      string hash
596      # Embedder-specific auxiliary data.
597      optional object executionContextAuxData
598      # True, if this script is generated as a result of the live edit operation.
599      experimental optional boolean isLiveEdit
600      # URL of source map associated with script (if any).
601      optional string sourceMapURL
602      # True, if this script has sourceURL.
603      optional boolean hasSourceURL
604      # True, if this script is ES6 module.
605      optional boolean isModule
606      # This script length.
607      optional integer length
608      # JavaScript top stack frame of where the script parsed event was triggered if available.
609      experimental optional Runtime.StackTrace stackTrace
610      # If the scriptLanguage is WebAssembly, the code section offset in the module.
611      experimental optional integer codeOffset
612      # The language of the script.
613      experimental optional Debugger.ScriptLanguage scriptLanguage
614      # If the scriptLanguage is WebASsembly, the source of debug symbols for the module.
615      experimental optional Debugger.DebugSymbols debugSymbols
616      # The name the embedder supplied for this script.
617      experimental optional string embedderName
618
619experimental domain HeapProfiler
620  depends on Runtime
621
622  # Heap snapshot object id.
623  type HeapSnapshotObjectId extends string
624
625  # Sampling Heap Profile node. Holds callsite information, allocation statistics and child nodes.
626  type SamplingHeapProfileNode extends object
627    properties
628      # Function location.
629      Runtime.CallFrame callFrame
630      # Allocations size in bytes for the node excluding children.
631      number selfSize
632      # Node id. Ids are unique across all profiles collected between startSampling and stopSampling.
633      integer id
634      # Child nodes.
635      array of SamplingHeapProfileNode children
636
637  # A single sample from a sampling profile.
638  type SamplingHeapProfileSample extends object
639    properties
640      # Allocation size in bytes attributed to the sample.
641      number size
642      # Id of the corresponding profile tree node.
643      integer nodeId
644      # Time-ordered sample ordinal number. It is unique across all profiles retrieved
645      # between startSampling and stopSampling.
646      number ordinal
647
648  # Sampling profile.
649  type SamplingHeapProfile extends object
650    properties
651      SamplingHeapProfileNode head
652      array of SamplingHeapProfileSample samples
653
654  # Enables console to refer to the node with given id via $x (see Command Line API for more details
655  # $x functions).
656  command addInspectedHeapObject
657    parameters
658      # Heap snapshot object id to be accessible by means of $x command line API.
659      HeapSnapshotObjectId heapObjectId
660
661  command collectGarbage
662
663  command disable
664
665  command enable
666
667  command getHeapObjectId
668    parameters
669      # Identifier of the object to get heap object id for.
670      Runtime.RemoteObjectId objectId
671    returns
672      # Id of the heap snapshot object corresponding to the passed remote object id.
673      HeapSnapshotObjectId heapSnapshotObjectId
674
675  command getObjectByHeapObjectId
676    parameters
677      HeapSnapshotObjectId objectId
678      # Symbolic group name that can be used to release multiple objects.
679      optional string objectGroup
680    returns
681      # Evaluation result.
682      Runtime.RemoteObject result
683
684  command getSamplingProfile
685    returns
686      # Return the sampling profile being collected.
687      SamplingHeapProfile profile
688
689  command startSampling
690    parameters
691      # Average sample interval in bytes. Poisson distribution is used for the intervals. The
692      # default value is 32768 bytes.
693      optional number samplingInterval
694
695  command startTrackingHeapObjects
696    parameters
697      optional boolean trackAllocations
698
699  command stopSampling
700    returns
701      # Recorded sampling heap profile.
702      SamplingHeapProfile profile
703
704  command stopTrackingHeapObjects
705    parameters
706      # If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken
707      # when the tracking is stopped.
708      optional boolean reportProgress
709      optional boolean treatGlobalObjectsAsRoots
710      # If true, numerical values are included in the snapshot
711      optional boolean captureNumericValue
712
713  command takeHeapSnapshot
714    parameters
715      # If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken.
716      optional boolean reportProgress
717      # If true, a raw snapshot without artificial roots will be generated
718      optional boolean treatGlobalObjectsAsRoots
719      # If true, numerical values are included in the snapshot
720      optional boolean captureNumericValue
721
722  event addHeapSnapshotChunk
723    parameters
724      string chunk
725
726  # If heap objects tracking has been started then backend may send update for one or more fragments
727  event heapStatsUpdate
728    parameters
729      # An array of triplets. Each triplet describes a fragment. The first integer is the fragment
730      # index, the second integer is a total count of objects for the fragment, the third integer is
731      # a total size of the objects for the fragment.
732      array of integer statsUpdate
733
734  # If heap objects tracking has been started then backend regularly sends a current value for last
735  # seen object id and corresponding timestamp. If the were changes in the heap since last event
736  # then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event.
737  event lastSeenObjectId
738    parameters
739      integer lastSeenObjectId
740      number timestamp
741
742  event reportHeapSnapshotProgress
743    parameters
744      integer done
745      integer total
746      optional boolean finished
747
748  event resetProfiles
749
750domain Profiler
751  depends on Runtime
752  depends on Debugger
753
754  # Profile node. Holds callsite information, execution statistics and child nodes.
755  type ProfileNode extends object
756    properties
757      # Unique id of the node.
758      integer id
759      # Function location.
760      Runtime.CallFrame callFrame
761      # Number of samples where this node was on top of the call stack.
762      optional integer hitCount
763      # Child node ids.
764      optional array of integer children
765      # The reason of being not optimized. The function may be deoptimized or marked as don't
766      # optimize.
767      optional string deoptReason
768      # An array of source position ticks.
769      optional array of PositionTickInfo positionTicks
770
771  # Profile.
772  type Profile extends object
773    properties
774      # The list of profile nodes. First item is the root node.
775      array of ProfileNode nodes
776      # Profiling start timestamp in microseconds.
777      number startTime
778      # Profiling end timestamp in microseconds.
779      number endTime
780      # Ids of samples top nodes.
781      optional array of integer samples
782      # Time intervals between adjacent samples in microseconds. The first delta is relative to the
783      # profile startTime.
784      optional array of integer timeDeltas
785
786  # Specifies a number of samples attributed to a certain source position.
787  type PositionTickInfo extends object
788    properties
789      # Source line number (1-based).
790      integer line
791      # Number of samples attributed to the source line.
792      integer ticks
793
794  # Coverage data for a source range.
795  type CoverageRange extends object
796    properties
797      # JavaScript script source offset for the range start.
798      integer startOffset
799      # JavaScript script source offset for the range end.
800      integer endOffset
801      # Collected execution count of the source range.
802      integer count
803
804  # Coverage data for a JavaScript function.
805  type FunctionCoverage extends object
806    properties
807      # JavaScript function name.
808      string functionName
809      # Source ranges inside the function with coverage data.
810      array of CoverageRange ranges
811      # Whether coverage data for this function has block granularity.
812      boolean isBlockCoverage
813
814  # Coverage data for a JavaScript script.
815  type ScriptCoverage extends object
816    properties
817      # JavaScript script id.
818      Runtime.ScriptId scriptId
819      # JavaScript script name or url.
820      string url
821      # Functions contained in the script that has coverage data.
822      array of FunctionCoverage functions
823
824  # Describes a type collected during runtime.
825  experimental type TypeObject extends object
826    properties
827      # Name of a type collected with type profiling.
828      string name
829
830  # Source offset and types for a parameter or return value.
831  experimental type TypeProfileEntry extends object
832    properties
833      # Source offset of the parameter or end of function for return values.
834      integer offset
835      # The types for this parameter or return value.
836      array of TypeObject types
837
838  # Type profile data collected during runtime for a JavaScript script.
839  experimental type ScriptTypeProfile extends object
840    properties
841      # JavaScript script id.
842      Runtime.ScriptId scriptId
843      # JavaScript script name or url.
844      string url
845      # Type profile entries for parameters and return values of the functions in the script.
846      array of TypeProfileEntry entries
847
848  command disable
849
850  command enable
851
852  # Collect coverage data for the current isolate. The coverage data may be incomplete due to
853  # garbage collection.
854  command getBestEffortCoverage
855    returns
856      # Coverage data for the current isolate.
857      array of ScriptCoverage result
858
859  # Changes CPU profiler sampling interval. Must be called before CPU profiles recording started.
860  command setSamplingInterval
861    parameters
862      # New sampling interval in microseconds.
863      integer interval
864
865  command start
866
867  # Enable precise code coverage. Coverage data for JavaScript executed before enabling precise code
868  # coverage may be incomplete. Enabling prevents running optimized code and resets execution
869  # counters.
870  command startPreciseCoverage
871    parameters
872      # Collect accurate call counts beyond simple 'covered' or 'not covered'.
873      optional boolean callCount
874      # Collect block-based coverage.
875      optional boolean detailed
876      # Allow the backend to send updates on its own initiative
877      optional boolean allowTriggeredUpdates
878    returns
879      # Monotonically increasing time (in seconds) when the coverage update was taken in the backend.
880      number timestamp
881
882  # Enable type profile.
883  experimental command startTypeProfile
884
885  command stop
886    returns
887      # Recorded profile.
888      Profile profile
889
890  # Disable precise code coverage. Disabling releases unnecessary execution count records and allows
891  # executing optimized code.
892  command stopPreciseCoverage
893
894  # Disable type profile. Disabling releases type profile data collected so far.
895  experimental command stopTypeProfile
896
897  # Collect coverage data for the current isolate, and resets execution counters. Precise code
898  # coverage needs to have started.
899  command takePreciseCoverage
900    returns
901      # Coverage data for the current isolate.
902      array of ScriptCoverage result
903      # Monotonically increasing time (in seconds) when the coverage update was taken in the backend.
904      number timestamp
905
906  # Collect type profile.
907  experimental command takeTypeProfile
908    returns
909      # Type profile for all scripts since startTypeProfile() was turned on.
910      array of ScriptTypeProfile result
911
912  event consoleProfileFinished
913    parameters
914      string id
915      # Location of console.profileEnd().
916      Debugger.Location location
917      Profile profile
918      # Profile title passed as an argument to console.profile().
919      optional string title
920
921  # Sent when new profile recording is started using console.profile() call.
922  event consoleProfileStarted
923    parameters
924      string id
925      # Location of console.profile().
926      Debugger.Location location
927      # Profile title passed as an argument to console.profile().
928      optional string title
929
930  # Reports coverage delta since the last poll (either from an event like this, or from
931  # `takePreciseCoverage` for the current isolate. May only be sent if precise code
932  # coverage has been started. This event can be trigged by the embedder to, for example,
933  # trigger collection of coverage data immediately at a certain point in time.
934  experimental event preciseCoverageDeltaUpdate
935    parameters
936      # Monotonically increasing time (in seconds) when the coverage update was taken in the backend.
937      number timestamp
938      # Identifier for distinguishing coverage events.
939      string occasion
940      # Coverage data for the current isolate.
941      array of ScriptCoverage result
942
943# Runtime domain exposes JavaScript runtime by means of remote evaluation and mirror objects.
944# Evaluation results are returned as mirror object that expose object type, string representation
945# and unique identifier that can be used for further object reference. Original objects are
946# maintained in memory unless they are either explicitly released or are released along with the
947# other objects in their object group.
948domain Runtime
949
950  # Unique script identifier.
951  type ScriptId extends string
952
953  # Unique object identifier.
954  type RemoteObjectId extends string
955
956  # Primitive value which cannot be JSON-stringified. Includes values `-0`, `NaN`, `Infinity`,
957  # `-Infinity`, and bigint literals.
958  type UnserializableValue extends string
959
960  # Mirror object referencing original JavaScript object.
961  type RemoteObject extends object
962    properties
963      # Object type.
964      enum type
965        object
966        function
967        undefined
968        string
969        number
970        boolean
971        symbol
972        bigint
973      # Object subtype hint. Specified for `object` type values only.
974      # NOTE: If you change anything here, make sure to also update
975      # `subtype` in `ObjectPreview` and `PropertyPreview` below.
976      optional enum subtype
977        array
978        null
979        node
980        regexp
981        date
982        map
983        set
984        weakmap
985        weakset
986        iterator
987        generator
988        error
989        proxy
990        promise
991        typedarray
992        arraybuffer
993        dataview
994        webassemblymemory
995        wasmvalue
996      # Object class (constructor) name. Specified for `object` type values only.
997      optional string className
998      # Remote object value in case of primitive values or JSON values (if it was requested).
999      optional any value
1000      # Primitive value which can not be JSON-stringified does not have `value`, but gets this
1001      # property.
1002      optional UnserializableValue unserializableValue
1003      # String representation of the object.
1004      optional string description
1005      # Unique object identifier (for non-primitive values).
1006      optional RemoteObjectId objectId
1007      # Preview containing abbreviated property values. Specified for `object` type values only.
1008      experimental optional ObjectPreview preview
1009      experimental optional CustomPreview customPreview
1010
1011  experimental type CustomPreview extends object
1012    properties
1013      # The JSON-stringified result of formatter.header(object, config) call.
1014      # It contains json ML array that represents RemoteObject.
1015      string header
1016      # If formatter returns true as a result of formatter.hasBody call then bodyGetterId will
1017      # contain RemoteObjectId for the function that returns result of formatter.body(object, config) call.
1018      # The result value is json ML array.
1019      optional RemoteObjectId bodyGetterId
1020
1021  # Object containing abbreviated remote object value.
1022  experimental type ObjectPreview extends object
1023    properties
1024      # Object type.
1025      enum type
1026        object
1027        function
1028        undefined
1029        string
1030        number
1031        boolean
1032        symbol
1033        bigint
1034      # Object subtype hint. Specified for `object` type values only.
1035      optional enum subtype
1036        array
1037        null
1038        node
1039        regexp
1040        date
1041        map
1042        set
1043        weakmap
1044        weakset
1045        iterator
1046        generator
1047        error
1048        proxy
1049        promise
1050        typedarray
1051        arraybuffer
1052        dataview
1053        webassemblymemory
1054        wasmvalue
1055      # String representation of the object.
1056      optional string description
1057      # True iff some of the properties or entries of the original object did not fit.
1058      boolean overflow
1059      # List of the properties.
1060      array of PropertyPreview properties
1061      # List of the entries. Specified for `map` and `set` subtype values only.
1062      optional array of EntryPreview entries
1063
1064  experimental type PropertyPreview extends object
1065    properties
1066      # Property name.
1067      string name
1068      # Object type. Accessor means that the property itself is an accessor property.
1069      enum type
1070        object
1071        function
1072        undefined
1073        string
1074        number
1075        boolean
1076        symbol
1077        accessor
1078        bigint
1079      # User-friendly property value string.
1080      optional string value
1081      # Nested value preview.
1082      optional ObjectPreview valuePreview
1083      # Object subtype hint. Specified for `object` type values only.
1084      optional enum subtype
1085        array
1086        null
1087        node
1088        regexp
1089        date
1090        map
1091        set
1092        weakmap
1093        weakset
1094        iterator
1095        generator
1096        error
1097        proxy
1098        promise
1099        typedarray
1100        arraybuffer
1101        dataview
1102        webassemblymemory
1103        wasmvalue
1104
1105  experimental type EntryPreview extends object
1106    properties
1107      # Preview of the key. Specified for map-like collection entries.
1108      optional ObjectPreview key
1109      # Preview of the value.
1110      ObjectPreview value
1111
1112  # Object property descriptor.
1113  type PropertyDescriptor extends object
1114    properties
1115      # Property name or symbol description.
1116      string name
1117      # The value associated with the property.
1118      optional RemoteObject value
1119      # True if the value associated with the property may be changed (data descriptors only).
1120      optional boolean writable
1121      # A function which serves as a getter for the property, or `undefined` if there is no getter
1122      # (accessor descriptors only).
1123      optional RemoteObject get
1124      # A function which serves as a setter for the property, or `undefined` if there is no setter
1125      # (accessor descriptors only).
1126      optional RemoteObject set
1127      # True if the type of this property descriptor may be changed and if the property may be
1128      # deleted from the corresponding object.
1129      boolean configurable
1130      # True if this property shows up during enumeration of the properties on the corresponding
1131      # object.
1132      boolean enumerable
1133      # True if the result was thrown during the evaluation.
1134      optional boolean wasThrown
1135      # True if the property is owned for the object.
1136      optional boolean isOwn
1137      # Property symbol object, if the property is of the `symbol` type.
1138      optional RemoteObject symbol
1139
1140  # Object internal property descriptor. This property isn't normally visible in JavaScript code.
1141  type InternalPropertyDescriptor extends object
1142    properties
1143      # Conventional property name.
1144      string name
1145      # The value associated with the property.
1146      optional RemoteObject value
1147
1148  # Object private field descriptor.
1149  experimental type PrivatePropertyDescriptor extends object
1150    properties
1151      # Private property name.
1152      string name
1153      # The value associated with the private property.
1154      optional RemoteObject value
1155      # A function which serves as a getter for the private property,
1156      # or `undefined` if there is no getter (accessor descriptors only).
1157      optional RemoteObject get
1158      # A function which serves as a setter for the private property,
1159      # or `undefined` if there is no setter (accessor descriptors only).
1160      optional RemoteObject set
1161
1162  # Represents function call argument. Either remote object id `objectId`, primitive `value`,
1163  # unserializable primitive value or neither of (for undefined) them should be specified.
1164  type CallArgument extends object
1165    properties
1166      # Primitive value or serializable javascript object.
1167      optional any value
1168      # Primitive value which can not be JSON-stringified.
1169      optional UnserializableValue unserializableValue
1170      # Remote object handle.
1171      optional RemoteObjectId objectId
1172
1173  # Id of an execution context.
1174  type ExecutionContextId extends integer
1175
1176  # Description of an isolated world.
1177  type ExecutionContextDescription extends object
1178    properties
1179      # Unique id of the execution context. It can be used to specify in which execution context
1180      # script evaluation should be performed.
1181      ExecutionContextId id
1182      # Execution context origin.
1183      string origin
1184      # Human readable name describing given context.
1185      string name
1186      # A system-unique execution context identifier. Unlike the id, this is unique across
1187      # multiple processes, so can be reliably used to identify specific context while backend
1188      # performs a cross-process navigation.
1189      experimental string uniqueId
1190      # Embedder-specific auxiliary data.
1191      optional object auxData
1192
1193  # Detailed information about exception (or error) that was thrown during script compilation or
1194  # execution.
1195  type ExceptionDetails extends object
1196    properties
1197      # Exception id.
1198      integer exceptionId
1199      # Exception text, which should be used together with exception object when available.
1200      string text
1201      # Line number of the exception location (0-based).
1202      integer lineNumber
1203      # Column number of the exception location (0-based).
1204      integer columnNumber
1205      # Script ID of the exception location.
1206      optional ScriptId scriptId
1207      # URL of the exception location, to be used when the script was not reported.
1208      optional string url
1209      # JavaScript stack trace if available.
1210      optional StackTrace stackTrace
1211      # Exception object if available.
1212      optional RemoteObject exception
1213      # Identifier of the context where exception happened.
1214      optional ExecutionContextId executionContextId
1215      # Dictionary with entries of meta data that the client associated
1216      # with this exception, such as information about associated network
1217      # requests, etc.
1218      experimental optional object exceptionMetaData
1219
1220  # Number of milliseconds since epoch.
1221  type Timestamp extends number
1222
1223  # Number of milliseconds.
1224  type TimeDelta extends number
1225
1226  # Stack entry for runtime errors and assertions.
1227  type CallFrame extends object
1228    properties
1229      # JavaScript function name.
1230      string functionName
1231      # JavaScript script id.
1232      ScriptId scriptId
1233      # JavaScript script name or url.
1234      string url
1235      # JavaScript script line number (0-based).
1236      integer lineNumber
1237      # JavaScript script column number (0-based).
1238      integer columnNumber
1239
1240  # Call frames for assertions or error messages.
1241  type StackTrace extends object
1242    properties
1243      # String label of this stack trace. For async traces this may be a name of the function that
1244      # initiated the async call.
1245      optional string description
1246      # JavaScript function name.
1247      array of CallFrame callFrames
1248      # Asynchronous JavaScript stack trace that preceded this stack, if available.
1249      optional StackTrace parent
1250      # Asynchronous JavaScript stack trace that preceded this stack, if available.
1251      experimental optional StackTraceId parentId
1252
1253  # Unique identifier of current debugger.
1254  experimental type UniqueDebuggerId extends string
1255
1256  # If `debuggerId` is set stack trace comes from another debugger and can be resolved there. This
1257  # allows to track cross-debugger calls. See `Runtime.StackTrace` and `Debugger.paused` for usages.
1258  experimental type StackTraceId extends object
1259    properties
1260      string id
1261      optional UniqueDebuggerId debuggerId
1262
1263  # Add handler to promise with given promise object id.
1264  command awaitPromise
1265    parameters
1266      # Identifier of the promise.
1267      RemoteObjectId promiseObjectId
1268      # Whether the result is expected to be a JSON object that should be sent by value.
1269      optional boolean returnByValue
1270      # Whether preview should be generated for the result.
1271      optional boolean generatePreview
1272    returns
1273      # Promise result. Will contain rejected value if promise was rejected.
1274      RemoteObject result
1275      # Exception details if stack strace is available.
1276      optional ExceptionDetails exceptionDetails
1277
1278  # Calls function with given declaration on the given object. Object group of the result is
1279  # inherited from the target object.
1280  command callFunctionOn
1281    parameters
1282      # Declaration of the function to call.
1283      string functionDeclaration
1284      # Identifier of the object to call function on. Either objectId or executionContextId should
1285      # be specified.
1286      optional RemoteObjectId objectId
1287      # Call arguments. All call arguments must belong to the same JavaScript world as the target
1288      # object.
1289      optional array of CallArgument arguments
1290      # In silent mode exceptions thrown during evaluation are not reported and do not pause
1291      # execution. Overrides `setPauseOnException` state.
1292      optional boolean silent
1293      # Whether the result is expected to be a JSON object which should be sent by value.
1294      optional boolean returnByValue
1295      # Whether preview should be generated for the result.
1296      experimental optional boolean generatePreview
1297      # Whether execution should be treated as initiated by user in the UI.
1298      optional boolean userGesture
1299      # Whether execution should `await` for resulting value and return once awaited promise is
1300      # resolved.
1301      optional boolean awaitPromise
1302      # Specifies execution context which global object will be used to call function on. Either
1303      # executionContextId or objectId should be specified.
1304      optional ExecutionContextId executionContextId
1305      # Symbolic group name that can be used to release multiple objects. If objectGroup is not
1306      # specified and objectId is, objectGroup will be inherited from object.
1307      optional string objectGroup
1308      # Whether to throw an exception if side effect cannot be ruled out during evaluation.
1309      experimental optional boolean throwOnSideEffect
1310    returns
1311      # Call result.
1312      RemoteObject result
1313      # Exception details.
1314      optional ExceptionDetails exceptionDetails
1315
1316  # Compiles expression.
1317  command compileScript
1318    parameters
1319      # Expression to compile.
1320      string expression
1321      # Source url to be set for the script.
1322      string sourceURL
1323      # Specifies whether the compiled script should be persisted.
1324      boolean persistScript
1325      # Specifies in which execution context to perform script run. If the parameter is omitted the
1326      # evaluation will be performed in the context of the inspected page.
1327      optional ExecutionContextId executionContextId
1328    returns
1329      # Id of the script.
1330      optional ScriptId scriptId
1331      # Exception details.
1332      optional ExceptionDetails exceptionDetails
1333
1334  # Disables reporting of execution contexts creation.
1335  command disable
1336
1337  # Discards collected exceptions and console API calls.
1338  command discardConsoleEntries
1339
1340  # Enables reporting of execution contexts creation by means of `executionContextCreated` event.
1341  # When the reporting gets enabled the event will be sent immediately for each existing execution
1342  # context.
1343  command enable
1344
1345  # Evaluates expression on global object.
1346  command evaluate
1347    parameters
1348      # Expression to evaluate.
1349      string expression
1350      # Symbolic group name that can be used to release multiple objects.
1351      optional string objectGroup
1352      # Determines whether Command Line API should be available during the evaluation.
1353      optional boolean includeCommandLineAPI
1354      # In silent mode exceptions thrown during evaluation are not reported and do not pause
1355      # execution. Overrides `setPauseOnException` state.
1356      optional boolean silent
1357      # Specifies in which execution context to perform evaluation. If the parameter is omitted the
1358      # evaluation will be performed in the context of the inspected page.
1359      # This is mutually exclusive with `uniqueContextId`, which offers an
1360      # alternative way to identify the execution context that is more reliable
1361      # in a multi-process environment.
1362      optional ExecutionContextId contextId
1363      # Whether the result is expected to be a JSON object that should be sent by value.
1364      optional boolean returnByValue
1365      # Whether preview should be generated for the result.
1366      experimental optional boolean generatePreview
1367      # Whether execution should be treated as initiated by user in the UI.
1368      optional boolean userGesture
1369      # Whether execution should `await` for resulting value and return once awaited promise is
1370      # resolved.
1371      optional boolean awaitPromise
1372      # Whether to throw an exception if side effect cannot be ruled out during evaluation.
1373      # This implies `disableBreaks` below.
1374      experimental optional boolean throwOnSideEffect
1375      # Terminate execution after timing out (number of milliseconds).
1376      experimental optional TimeDelta timeout
1377      # Disable breakpoints during execution.
1378      experimental optional boolean disableBreaks
1379      # Setting this flag to true enables `let` re-declaration and top-level `await`.
1380      # Note that `let` variables can only be re-declared if they originate from
1381      # `replMode` themselves.
1382      experimental optional boolean replMode
1383      # The Content Security Policy (CSP) for the target might block 'unsafe-eval'
1384      # which includes eval(), Function(), setTimeout() and setInterval()
1385      # when called with non-callable arguments. This flag bypasses CSP for this
1386      # evaluation and allows unsafe-eval. Defaults to true.
1387      experimental optional boolean allowUnsafeEvalBlockedByCSP
1388      # An alternative way to specify the execution context to evaluate in.
1389      # Compared to contextId that may be reused across processes, this is guaranteed to be
1390      # system-unique, so it can be used to prevent accidental evaluation of the expression
1391      # in context different than intended (e.g. as a result of navigation across process
1392      # boundaries).
1393      # This is mutually exclusive with `contextId`.
1394      experimental optional string uniqueContextId
1395    returns
1396      # Evaluation result.
1397      RemoteObject result
1398      # Exception details.
1399      optional ExceptionDetails exceptionDetails
1400
1401  # Returns the isolate id.
1402  experimental command getIsolateId
1403    returns
1404      # The isolate id.
1405      string id
1406
1407  # Returns the JavaScript heap usage.
1408  # It is the total usage of the corresponding isolate not scoped to a particular Runtime.
1409  experimental command getHeapUsage
1410    returns
1411      # Used heap size in bytes.
1412      number usedSize
1413      # Allocated heap size in bytes.
1414      number totalSize
1415
1416  # Returns properties of a given object. Object group of the result is inherited from the target
1417  # object.
1418  command getProperties
1419    parameters
1420      # Identifier of the object to return properties for.
1421      RemoteObjectId objectId
1422      # If true, returns properties belonging only to the element itself, not to its prototype
1423      # chain.
1424      optional boolean ownProperties
1425      # If true, returns accessor properties (with getter/setter) only; internal properties are not
1426      # returned either.
1427      experimental optional boolean accessorPropertiesOnly
1428      # Whether preview should be generated for the results.
1429      experimental optional boolean generatePreview
1430      # If true, returns non-indexed properties only.
1431      experimental optional boolean nonIndexedPropertiesOnly
1432    returns
1433      # Object properties.
1434      array of PropertyDescriptor result
1435      # Internal object properties (only of the element itself).
1436      optional array of InternalPropertyDescriptor internalProperties
1437      # Object private properties.
1438      experimental optional array of PrivatePropertyDescriptor privateProperties
1439      # Exception details.
1440      optional ExceptionDetails exceptionDetails
1441
1442  # Returns all let, const and class variables from global scope.
1443  command globalLexicalScopeNames
1444    parameters
1445      # Specifies in which execution context to lookup global scope variables.
1446      optional ExecutionContextId executionContextId
1447    returns
1448      array of string names
1449
1450  command queryObjects
1451    parameters
1452      # Identifier of the prototype to return objects for.
1453      RemoteObjectId prototypeObjectId
1454      # Symbolic group name that can be used to release the results.
1455      optional string objectGroup
1456    returns
1457      # Array with objects.
1458      RemoteObject objects
1459
1460  # Releases remote object with given id.
1461  command releaseObject
1462    parameters
1463      # Identifier of the object to release.
1464      RemoteObjectId objectId
1465
1466  # Releases all remote objects that belong to a given group.
1467  command releaseObjectGroup
1468    parameters
1469      # Symbolic object group name.
1470      string objectGroup
1471
1472  # Tells inspected instance to run if it was waiting for debugger to attach.
1473  command runIfWaitingForDebugger
1474
1475  # Runs script with given id in a given context.
1476  command runScript
1477    parameters
1478      # Id of the script to run.
1479      ScriptId scriptId
1480      # Specifies in which execution context to perform script run. If the parameter is omitted the
1481      # evaluation will be performed in the context of the inspected page.
1482      optional ExecutionContextId executionContextId
1483      # Symbolic group name that can be used to release multiple objects.
1484      optional string objectGroup
1485      # In silent mode exceptions thrown during evaluation are not reported and do not pause
1486      # execution. Overrides `setPauseOnException` state.
1487      optional boolean silent
1488      # Determines whether Command Line API should be available during the evaluation.
1489      optional boolean includeCommandLineAPI
1490      # Whether the result is expected to be a JSON object which should be sent by value.
1491      optional boolean returnByValue
1492      # Whether preview should be generated for the result.
1493      optional boolean generatePreview
1494      # Whether execution should `await` for resulting value and return once awaited promise is
1495      # resolved.
1496      optional boolean awaitPromise
1497    returns
1498      # Run result.
1499      RemoteObject result
1500      # Exception details.
1501      optional ExceptionDetails exceptionDetails
1502
1503  # Enables or disables async call stacks tracking.
1504  command setAsyncCallStackDepth
1505    redirect Debugger
1506    parameters
1507      # Maximum depth of async call stacks. Setting to `0` will effectively disable collecting async
1508      # call stacks (default).
1509      integer maxDepth
1510
1511  experimental command setCustomObjectFormatterEnabled
1512    parameters
1513      boolean enabled
1514
1515  experimental command setMaxCallStackSizeToCapture
1516    parameters
1517      integer size
1518
1519  # Terminate current or next JavaScript execution.
1520  # Will cancel the termination when the outer-most script execution ends.
1521  experimental command terminateExecution
1522
1523  # If executionContextId is empty, adds binding with the given name on the
1524  # global objects of all inspected contexts, including those created later,
1525  # bindings survive reloads.
1526  # Binding function takes exactly one argument, this argument should be string,
1527  # in case of any other input, function throws an exception.
1528  # Each binding function call produces Runtime.bindingCalled notification.
1529  experimental command addBinding
1530    parameters
1531      string name
1532      # If specified, the binding would only be exposed to the specified
1533      # execution context. If omitted and `executionContextName` is not set,
1534      # the binding is exposed to all execution contexts of the target.
1535      # This parameter is mutually exclusive with `executionContextName`.
1536      # Deprecated in favor of `executionContextName` due to an unclear use case
1537      # and bugs in implementation (crbug.com/1169639). `executionContextId` will be
1538      # removed in the future.
1539      deprecated optional ExecutionContextId executionContextId
1540      # If specified, the binding is exposed to the executionContext with
1541      # matching name, even for contexts created after the binding is added.
1542      # See also `ExecutionContext.name` and `worldName` parameter to
1543      # `Page.addScriptToEvaluateOnNewDocument`.
1544      # This parameter is mutually exclusive with `executionContextId`.
1545      experimental optional string executionContextName
1546
1547  # This method does not remove binding function from global object but
1548  # unsubscribes current runtime agent from Runtime.bindingCalled notifications.
1549  experimental command removeBinding
1550    parameters
1551      string name
1552
1553  # Notification is issued every time when binding is called.
1554  experimental event bindingCalled
1555    parameters
1556      string name
1557      string payload
1558      # Identifier of the context where the call was made.
1559      ExecutionContextId executionContextId
1560
1561  # Issued when console API was called.
1562  event consoleAPICalled
1563    parameters
1564      # Type of the call.
1565      enum type
1566        log
1567        debug
1568        info
1569        error
1570        warning
1571        dir
1572        dirxml
1573        table
1574        trace
1575        clear
1576        startGroup
1577        startGroupCollapsed
1578        endGroup
1579        assert
1580        profile
1581        profileEnd
1582        count
1583        timeEnd
1584      # Call arguments.
1585      array of RemoteObject args
1586      # Identifier of the context where the call was made.
1587      ExecutionContextId executionContextId
1588      # Call timestamp.
1589      Timestamp timestamp
1590      # Stack trace captured when the call was made. The async stack chain is automatically reported for
1591      # the following call types: `assert`, `error`, `trace`, `warning`. For other types the async call
1592      # chain can be retrieved using `Debugger.getStackTrace` and `stackTrace.parentId` field.
1593      optional StackTrace stackTrace
1594      # Console context descriptor for calls on non-default console context (not console.*):
1595      # 'anonymous#unique-logger-id' for call on unnamed context, 'name#unique-logger-id' for call
1596      # on named context.
1597      experimental optional string context
1598
1599  # Issued when unhandled exception was revoked.
1600  event exceptionRevoked
1601    parameters
1602      # Reason describing why exception was revoked.
1603      string reason
1604      # The id of revoked exception, as reported in `exceptionThrown`.
1605      integer exceptionId
1606
1607  # Issued when exception was thrown and unhandled.
1608  event exceptionThrown
1609    parameters
1610      # Timestamp of the exception.
1611      Timestamp timestamp
1612      ExceptionDetails exceptionDetails
1613
1614  # Issued when new execution context is created.
1615  event executionContextCreated
1616    parameters
1617      # A newly created execution context.
1618      ExecutionContextDescription context
1619
1620  # Issued when execution context is destroyed.
1621  event executionContextDestroyed
1622    parameters
1623      # Id of the destroyed context
1624      ExecutionContextId executionContextId
1625
1626  # Issued when all executionContexts were cleared in browser
1627  event executionContextsCleared
1628
1629  # Issued when object should be inspected (for example, as a result of inspect() command line API
1630  # call).
1631  event inspectRequested
1632    parameters
1633      RemoteObject object
1634      object hints
1635      # Identifier of the context where the call was made.
1636      experimental optional ExecutionContextId executionContextId
1637
1638# This domain is deprecated.
1639deprecated domain Schema
1640
1641  # Description of the protocol domain.
1642  type Domain extends object
1643    properties
1644      # Domain name.
1645      string name
1646      # Domain version.
1647      string version
1648
1649  # Returns supported domains.
1650  command getDomains
1651    returns
1652      # List of supported domains.
1653      array of Domain domains
1654