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  # JavaScript call frame. Array of call frames form the call stack.
89  type CallFrame extends object
90    properties
91      # Call frame identifier. This identifier is only valid while the virtual machine is paused.
92      CallFrameId callFrameId
93      # Name of the JavaScript function called on this call frame.
94      string functionName
95      # Location in the source code.
96      optional Location functionLocation
97      # Location in the source code.
98      Location location
99      # JavaScript script name or url.
100      string url
101      # Scope chain for this call frame.
102      array of Scope scopeChain
103      # `this` object for this call frame.
104      Runtime.RemoteObject this
105      # The value being returned, if the function is at return point.
106      optional Runtime.RemoteObject returnValue
107
108  # Scope description.
109  type Scope extends object
110    properties
111      # Scope type.
112      enum type
113        global
114        local
115        with
116        closure
117        catch
118        block
119        script
120        eval
121        module
122      # Object representing the scope. For `global` and `with` scopes it represents the actual
123      # object; for the rest of the scopes, it is artificial transient object enumerating scope
124      # variables as its properties.
125      Runtime.RemoteObject object
126      optional string name
127      # Location in the source code where scope starts
128      optional Location startLocation
129      # Location in the source code where scope ends
130      optional Location endLocation
131
132  # Search match for resource.
133  type SearchMatch extends object
134    properties
135      # Line number in resource content.
136      number lineNumber
137      # Line with match content.
138      string lineContent
139
140  type BreakLocation extends object
141    properties
142      # Script identifier as reported in the `Debugger.scriptParsed`.
143      Runtime.ScriptId scriptId
144      # Line number in the script (0-based).
145      integer lineNumber
146      # Column number in the script (0-based).
147      optional integer columnNumber
148      optional enum type
149        debuggerStatement
150        call
151        return
152
153  # Continues execution until specific location is reached.
154  command continueToLocation
155    parameters
156      # Location to continue to.
157      Location location
158      optional enum targetCallFrames
159        any
160        current
161
162  # Disables debugger for given page.
163  command disable
164
165  # Enables debugger for the given page. Clients should not assume that the debugging has been
166  # enabled until the result for this command is received.
167  command enable
168    returns
169      # Unique identifier of the debugger.
170      experimental Runtime.UniqueDebuggerId debuggerId
171
172  # Evaluates expression on a given call frame.
173  command evaluateOnCallFrame
174    parameters
175      # Call frame identifier to evaluate on.
176      CallFrameId callFrameId
177      # Expression to evaluate.
178      string expression
179      # String object group name to put result into (allows rapid releasing resulting object handles
180      # using `releaseObjectGroup`).
181      optional string objectGroup
182      # Specifies whether command line API should be available to the evaluated expression, defaults
183      # to false.
184      optional boolean includeCommandLineAPI
185      # In silent mode exceptions thrown during evaluation are not reported and do not pause
186      # execution. Overrides `setPauseOnException` state.
187      optional boolean silent
188      # Whether the result is expected to be a JSON object that should be sent by value.
189      optional boolean returnByValue
190      # Whether preview should be generated for the result.
191      experimental optional boolean generatePreview
192      # Whether to throw an exception if side effect cannot be ruled out during evaluation.
193      optional boolean throwOnSideEffect
194      # Terminate execution after timing out (number of milliseconds).
195      experimental optional Runtime.TimeDelta timeout
196    returns
197      # Object wrapper for the evaluation result.
198      Runtime.RemoteObject result
199      # Exception details.
200      optional Runtime.ExceptionDetails exceptionDetails
201
202  # Returns possible locations for breakpoint. scriptId in start and end range locations should be
203  # the same.
204  command getPossibleBreakpoints
205    parameters
206      # Start of range to search possible breakpoint locations in.
207      Location start
208      # End of range to search possible breakpoint locations in (excluding). When not specified, end
209      # of scripts is used as end of range.
210      optional Location end
211      # Only consider locations which are in the same (non-nested) function as start.
212      optional boolean restrictToFunction
213    returns
214      # List of the possible breakpoint locations.
215      array of BreakLocation locations
216
217  # Returns source for the script with given id.
218  command getScriptSource
219    parameters
220      # Id of the script to get source for.
221      Runtime.ScriptId scriptId
222    returns
223      # Script source.
224      string scriptSource
225
226  # Returns stack trace with given `stackTraceId`.
227  experimental command getStackTrace
228    parameters
229      Runtime.StackTraceId stackTraceId
230    returns
231      Runtime.StackTrace stackTrace
232
233  # Stops on the next JavaScript statement.
234  command pause
235
236  experimental command pauseOnAsyncCall
237    parameters
238      # Debugger will pause when async call with given stack trace is started.
239      Runtime.StackTraceId parentStackTraceId
240
241  # Removes JavaScript breakpoint.
242  command removeBreakpoint
243    parameters
244      BreakpointId breakpointId
245
246  # Restarts particular call frame from the beginning.
247  command restartFrame
248    parameters
249      # Call frame identifier to evaluate on.
250      CallFrameId callFrameId
251    returns
252      # New stack trace.
253      array of CallFrame callFrames
254      # Async stack trace, if any.
255      optional Runtime.StackTrace asyncStackTrace
256      # Async stack trace, if any.
257      experimental optional Runtime.StackTraceId asyncStackTraceId
258
259  # Resumes JavaScript execution.
260  command resume
261
262  # This method is deprecated - use Debugger.stepInto with breakOnAsyncCall and
263  # Debugger.pauseOnAsyncTask instead. Steps into next scheduled async task if any is scheduled
264  # before next pause. Returns success when async task is actually scheduled, returns error if no
265  # task were scheduled or another scheduleStepIntoAsync was called.
266  experimental command scheduleStepIntoAsync
267
268  # Searches for given string in script content.
269  command searchInContent
270    parameters
271      # Id of the script to search in.
272      Runtime.ScriptId scriptId
273      # String to search for.
274      string query
275      # If true, search is case sensitive.
276      optional boolean caseSensitive
277      # If true, treats string parameter as regex.
278      optional boolean isRegex
279    returns
280      # List of search matches.
281      array of SearchMatch result
282
283  # Enables or disables async call stacks tracking.
284  command setAsyncCallStackDepth
285    parameters
286      # Maximum depth of async call stacks. Setting to `0` will effectively disable collecting async
287      # call stacks (default).
288      integer maxDepth
289
290  # Replace previous blackbox patterns with passed ones. Forces backend to skip stepping/pausing in
291  # scripts with url matching one of the patterns. VM will try to leave blackboxed script by
292  # performing 'step in' several times, finally resorting to 'step out' if unsuccessful.
293  experimental command setBlackboxPatterns
294    parameters
295      # Array of regexps that will be used to check script url for blackbox state.
296      array of string patterns
297
298  # Makes backend skip steps in the script in blackboxed ranges. VM will try leave blacklisted
299  # scripts by performing 'step in' several times, finally resorting to 'step out' if unsuccessful.
300  # Positions array contains positions where blackbox state is changed. First interval isn't
301  # blackboxed. Array should be sorted.
302  experimental command setBlackboxedRanges
303    parameters
304      # Id of the script.
305      Runtime.ScriptId scriptId
306      array of ScriptPosition positions
307
308  # Sets JavaScript breakpoint at a given location.
309  command setBreakpoint
310    parameters
311      # Location to set breakpoint in.
312      Location location
313      # Expression to use as a breakpoint condition. When specified, debugger will only stop on the
314      # breakpoint if this expression evaluates to true.
315      optional string condition
316    returns
317      # Id of the created breakpoint for further reference.
318      BreakpointId breakpointId
319      # Location this breakpoint resolved into.
320      Location actualLocation
321
322  # Sets JavaScript breakpoint at given location specified either by URL or URL regex. Once this
323  # command is issued, all existing parsed scripts will have breakpoints resolved and returned in
324  # `locations` property. Further matching script parsing will result in subsequent
325  # `breakpointResolved` events issued. This logical breakpoint will survive page reloads.
326  command setBreakpointByUrl
327    parameters
328      # Line number to set breakpoint at.
329      integer lineNumber
330      # URL of the resources to set breakpoint on.
331      optional string url
332      # Regex pattern for the URLs of the resources to set breakpoints on. Either `url` or
333      # `urlRegex` must be specified.
334      optional string urlRegex
335      # Script hash of the resources to set breakpoint on.
336      optional string scriptHash
337      # Offset in the line to set breakpoint at.
338      optional integer columnNumber
339      # Expression to use as a breakpoint condition. When specified, debugger will only stop on the
340      # breakpoint if this expression evaluates to true.
341      optional string condition
342    returns
343      # Id of the created breakpoint for further reference.
344      BreakpointId breakpointId
345      # List of the locations this breakpoint resolved into upon addition.
346      array of Location locations
347
348  # Sets JavaScript breakpoint before each call to the given function.
349  # If another function was created from the same source as a given one,
350  # calling it will also trigger the breakpoint.
351  experimental command setBreakpointOnFunctionCall
352    parameters
353      # Function object id.
354      Runtime.RemoteObjectId objectId
355      # Expression to use as a breakpoint condition. When specified, debugger will
356      # stop on the breakpoint if this expression evaluates to true.
357      optional string condition
358    returns
359      # Id of the created breakpoint for further reference.
360      BreakpointId breakpointId
361
362  # Activates / deactivates all breakpoints on the page.
363  command setBreakpointsActive
364    parameters
365      # New value for breakpoints active state.
366      boolean active
367
368  # Defines pause on exceptions state. Can be set to stop on all exceptions, uncaught exceptions or
369  # no exceptions. Initial pause on exceptions state is `none`.
370  command setPauseOnExceptions
371    parameters
372      # Pause on exceptions mode.
373      enum state
374        none
375        uncaught
376        all
377
378  # Changes return value in top frame. Available only at return break position.
379  experimental command setReturnValue
380    parameters
381      # New return value.
382      Runtime.CallArgument newValue
383
384  # Edits JavaScript source live.
385  command setScriptSource
386    parameters
387      # Id of the script to edit.
388      Runtime.ScriptId scriptId
389      # New content of the script.
390      string scriptSource
391      #  If true the change will not actually be applied. Dry run may be used to get result
392      # description without actually modifying the code.
393      optional boolean dryRun
394    returns
395      # New stack trace in case editing has happened while VM was stopped.
396      optional array of CallFrame callFrames
397      # Whether current call stack  was modified after applying the changes.
398      optional boolean stackChanged
399      # Async stack trace, if any.
400      optional Runtime.StackTrace asyncStackTrace
401      # Async stack trace, if any.
402      experimental optional Runtime.StackTraceId asyncStackTraceId
403      # Exception details if any.
404      optional Runtime.ExceptionDetails exceptionDetails
405
406  # Makes page not interrupt on any pauses (breakpoint, exception, dom exception etc).
407  command setSkipAllPauses
408    parameters
409      # New value for skip pauses state.
410      boolean skip
411
412  # Changes value of variable in a callframe. Object-based scopes are not supported and must be
413  # mutated manually.
414  command setVariableValue
415    parameters
416      # 0-based number of scope as was listed in scope chain. Only 'local', 'closure' and 'catch'
417      # scope types are allowed. Other scopes could be manipulated manually.
418      integer scopeNumber
419      # Variable name.
420      string variableName
421      # New variable value.
422      Runtime.CallArgument newValue
423      # Id of callframe that holds variable.
424      CallFrameId callFrameId
425
426  # Steps into the function call.
427  command stepInto
428    parameters
429      # Debugger will issue additional Debugger.paused notification if any async task is scheduled
430      # before next pause.
431      experimental optional boolean breakOnAsyncCall
432
433  # Steps out of the function call.
434  command stepOut
435
436  # Steps over the statement.
437  command stepOver
438
439  # Fired when breakpoint is resolved to an actual script and location.
440  event breakpointResolved
441    parameters
442      # Breakpoint unique identifier.
443      BreakpointId breakpointId
444      # Actual breakpoint location.
445      Location location
446
447  # Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria.
448  event paused
449    parameters
450      # Call stack the virtual machine stopped on.
451      array of CallFrame callFrames
452      # Pause reason.
453      enum reason
454        XHR
455        DOM
456        EventListener
457        exception
458        assert
459        debugCommand
460        promiseRejection
461        OOM
462        other
463        ambiguous
464      # Object containing break-specific auxiliary properties.
465      optional object data
466      # Hit breakpoints IDs
467      optional array of string hitBreakpoints
468      # Async stack trace, if any.
469      optional Runtime.StackTrace asyncStackTrace
470      # Async stack trace, if any.
471      experimental optional Runtime.StackTraceId asyncStackTraceId
472      # Just scheduled async call will have this stack trace as parent stack during async execution.
473      # This field is available only after `Debugger.stepInto` call with `breakOnAsynCall` flag.
474      experimental optional Runtime.StackTraceId asyncCallStackTraceId
475
476  # Fired when the virtual machine resumed execution.
477  event resumed
478
479  # Fired when virtual machine fails to parse the script.
480  event scriptFailedToParse
481    parameters
482      # Identifier of the script parsed.
483      Runtime.ScriptId scriptId
484      # URL or name of the script parsed (if any).
485      string url
486      # Line offset of the script within the resource with given URL (for script tags).
487      integer startLine
488      # Column offset of the script within the resource with given URL.
489      integer startColumn
490      # Last line of the script.
491      integer endLine
492      # Length of the last line of the script.
493      integer endColumn
494      # Specifies script creation context.
495      Runtime.ExecutionContextId executionContextId
496      # Content hash of the script.
497      string hash
498      # Embedder-specific auxiliary data.
499      optional object executionContextAuxData
500      # URL of source map associated with script (if any).
501      optional string sourceMapURL
502      # True, if this script has sourceURL.
503      optional boolean hasSourceURL
504      # True, if this script is ES6 module.
505      optional boolean isModule
506      # This script length.
507      optional integer length
508      # JavaScript top stack frame of where the script parsed event was triggered if available.
509      experimental optional Runtime.StackTrace stackTrace
510
511  # Fired when virtual machine parses script. This event is also fired for all known and uncollected
512  # scripts upon enabling debugger.
513  event scriptParsed
514    parameters
515      # Identifier of the script parsed.
516      Runtime.ScriptId scriptId
517      # URL or name of the script parsed (if any).
518      string url
519      # Line offset of the script within the resource with given URL (for script tags).
520      integer startLine
521      # Column offset of the script within the resource with given URL.
522      integer startColumn
523      # Last line of the script.
524      integer endLine
525      # Length of the last line of the script.
526      integer endColumn
527      # Specifies script creation context.
528      Runtime.ExecutionContextId executionContextId
529      # Content hash of the script.
530      string hash
531      # Embedder-specific auxiliary data.
532      optional object executionContextAuxData
533      # True, if this script is generated as a result of the live edit operation.
534      experimental optional boolean isLiveEdit
535      # URL of source map associated with script (if any).
536      optional string sourceMapURL
537      # True, if this script has sourceURL.
538      optional boolean hasSourceURL
539      # True, if this script is ES6 module.
540      optional boolean isModule
541      # This script length.
542      optional integer length
543      # JavaScript top stack frame of where the script parsed event was triggered if available.
544      experimental optional Runtime.StackTrace stackTrace
545
546experimental domain HeapProfiler
547  depends on Runtime
548
549  # Heap snapshot object id.
550  type HeapSnapshotObjectId extends string
551
552  # Sampling Heap Profile node. Holds callsite information, allocation statistics and child nodes.
553  type SamplingHeapProfileNode extends object
554    properties
555      # Function location.
556      Runtime.CallFrame callFrame
557      # Allocations size in bytes for the node excluding children.
558      number selfSize
559      # Child nodes.
560      array of SamplingHeapProfileNode children
561
562  # Profile.
563  type SamplingHeapProfile extends object
564    properties
565      SamplingHeapProfileNode head
566
567  # Enables console to refer to the node with given id via $x (see Command Line API for more details
568  # $x functions).
569  command addInspectedHeapObject
570    parameters
571      # Heap snapshot object id to be accessible by means of $x command line API.
572      HeapSnapshotObjectId heapObjectId
573
574  command collectGarbage
575
576  command disable
577
578  command enable
579
580  command getHeapObjectId
581    parameters
582      # Identifier of the object to get heap object id for.
583      Runtime.RemoteObjectId objectId
584    returns
585      # Id of the heap snapshot object corresponding to the passed remote object id.
586      HeapSnapshotObjectId heapSnapshotObjectId
587
588  command getObjectByHeapObjectId
589    parameters
590      HeapSnapshotObjectId objectId
591      # Symbolic group name that can be used to release multiple objects.
592      optional string objectGroup
593    returns
594      # Evaluation result.
595      Runtime.RemoteObject result
596
597  command getSamplingProfile
598    returns
599      # Return the sampling profile being collected.
600      SamplingHeapProfile profile
601
602  command startSampling
603    parameters
604      # Average sample interval in bytes. Poisson distribution is used for the intervals. The
605      # default value is 32768 bytes.
606      optional number samplingInterval
607
608  command startTrackingHeapObjects
609    parameters
610      optional boolean trackAllocations
611
612  command stopSampling
613    returns
614      # Recorded sampling heap profile.
615      SamplingHeapProfile profile
616
617  command stopTrackingHeapObjects
618    parameters
619      # If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken
620      # when the tracking is stopped.
621      optional boolean reportProgress
622
623  command takeHeapSnapshot
624    parameters
625      # If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken.
626      optional boolean reportProgress
627
628  event addHeapSnapshotChunk
629    parameters
630      string chunk
631
632  # If heap objects tracking has been started then backend may send update for one or more fragments
633  event heapStatsUpdate
634    parameters
635      # An array of triplets. Each triplet describes a fragment. The first integer is the fragment
636      # index, the second integer is a total count of objects for the fragment, the third integer is
637      # a total size of the objects for the fragment.
638      array of integer statsUpdate
639
640  # If heap objects tracking has been started then backend regularly sends a current value for last
641  # seen object id and corresponding timestamp. If the were changes in the heap since last event
642  # then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event.
643  event lastSeenObjectId
644    parameters
645      integer lastSeenObjectId
646      number timestamp
647
648  event reportHeapSnapshotProgress
649    parameters
650      integer done
651      integer total
652      optional boolean finished
653
654  event resetProfiles
655
656domain Profiler
657  depends on Runtime
658  depends on Debugger
659
660  # Profile node. Holds callsite information, execution statistics and child nodes.
661  type ProfileNode extends object
662    properties
663      # Unique id of the node.
664      integer id
665      # Function location.
666      Runtime.CallFrame callFrame
667      # Number of samples where this node was on top of the call stack.
668      optional integer hitCount
669      # Child node ids.
670      optional array of integer children
671      # The reason of being not optimized. The function may be deoptimized or marked as don't
672      # optimize.
673      optional string deoptReason
674      # An array of source position ticks.
675      optional array of PositionTickInfo positionTicks
676
677  # Profile.
678  type Profile extends object
679    properties
680      # The list of profile nodes. First item is the root node.
681      array of ProfileNode nodes
682      # Profiling start timestamp in microseconds.
683      number startTime
684      # Profiling end timestamp in microseconds.
685      number endTime
686      # Ids of samples top nodes.
687      optional array of integer samples
688      # Time intervals between adjacent samples in microseconds. The first delta is relative to the
689      # profile startTime.
690      optional array of integer timeDeltas
691
692  # Specifies a number of samples attributed to a certain source position.
693  type PositionTickInfo extends object
694    properties
695      # Source line number (1-based).
696      integer line
697      # Number of samples attributed to the source line.
698      integer ticks
699
700  # Coverage data for a source range.
701  type CoverageRange extends object
702    properties
703      # JavaScript script source offset for the range start.
704      integer startOffset
705      # JavaScript script source offset for the range end.
706      integer endOffset
707      # Collected execution count of the source range.
708      integer count
709
710  # Coverage data for a JavaScript function.
711  type FunctionCoverage extends object
712    properties
713      # JavaScript function name.
714      string functionName
715      # Source ranges inside the function with coverage data.
716      array of CoverageRange ranges
717      # Whether coverage data for this function has block granularity.
718      boolean isBlockCoverage
719
720  # Coverage data for a JavaScript script.
721  type ScriptCoverage extends object
722    properties
723      # JavaScript script id.
724      Runtime.ScriptId scriptId
725      # JavaScript script name or url.
726      string url
727      # Functions contained in the script that has coverage data.
728      array of FunctionCoverage functions
729
730  # Describes a type collected during runtime.
731  experimental type TypeObject extends object
732    properties
733      # Name of a type collected with type profiling.
734      string name
735
736  # Source offset and types for a parameter or return value.
737  experimental type TypeProfileEntry extends object
738    properties
739      # Source offset of the parameter or end of function for return values.
740      integer offset
741      # The types for this parameter or return value.
742      array of TypeObject types
743
744  # Type profile data collected during runtime for a JavaScript script.
745  experimental type ScriptTypeProfile extends object
746    properties
747      # JavaScript script id.
748      Runtime.ScriptId scriptId
749      # JavaScript script name or url.
750      string url
751      # Type profile entries for parameters and return values of the functions in the script.
752      array of TypeProfileEntry entries
753
754  command disable
755
756  command enable
757
758  # Collect coverage data for the current isolate. The coverage data may be incomplete due to
759  # garbage collection.
760  command getBestEffortCoverage
761    returns
762      # Coverage data for the current isolate.
763      array of ScriptCoverage result
764
765  # Changes CPU profiler sampling interval. Must be called before CPU profiles recording started.
766  command setSamplingInterval
767    parameters
768      # New sampling interval in microseconds.
769      integer interval
770
771  command start
772
773  # Enable precise code coverage. Coverage data for JavaScript executed before enabling precise code
774  # coverage may be incomplete. Enabling prevents running optimized code and resets execution
775  # counters.
776  command startPreciseCoverage
777    parameters
778      # Collect accurate call counts beyond simple 'covered' or 'not covered'.
779      optional boolean callCount
780      # Collect block-based coverage.
781      optional boolean detailed
782
783  # Enable type profile.
784  experimental command startTypeProfile
785
786  command stop
787    returns
788      # Recorded profile.
789      Profile profile
790
791  # Disable precise code coverage. Disabling releases unnecessary execution count records and allows
792  # executing optimized code.
793  command stopPreciseCoverage
794
795  # Disable type profile. Disabling releases type profile data collected so far.
796  experimental command stopTypeProfile
797
798  # Collect coverage data for the current isolate, and resets execution counters. Precise code
799  # coverage needs to have started.
800  command takePreciseCoverage
801    returns
802      # Coverage data for the current isolate.
803      array of ScriptCoverage result
804
805  # Collect type profile.
806  experimental command takeTypeProfile
807    returns
808      # Type profile for all scripts since startTypeProfile() was turned on.
809      array of ScriptTypeProfile result
810
811  event consoleProfileFinished
812    parameters
813      string id
814      # Location of console.profileEnd().
815      Debugger.Location location
816      Profile profile
817      # Profile title passed as an argument to console.profile().
818      optional string title
819
820  # Sent when new profile recording is started using console.profile() call.
821  event consoleProfileStarted
822    parameters
823      string id
824      # Location of console.profile().
825      Debugger.Location location
826      # Profile title passed as an argument to console.profile().
827      optional string title
828
829# Runtime domain exposes JavaScript runtime by means of remote evaluation and mirror objects.
830# Evaluation results are returned as mirror object that expose object type, string representation
831# and unique identifier that can be used for further object reference. Original objects are
832# maintained in memory unless they are either explicitly released or are released along with the
833# other objects in their object group.
834domain Runtime
835
836  # Unique script identifier.
837  type ScriptId extends string
838
839  # Unique object identifier.
840  type RemoteObjectId extends string
841
842  # Primitive value which cannot be JSON-stringified. Includes values `-0`, `NaN`, `Infinity`,
843  # `-Infinity`, and bigint literals.
844  type UnserializableValue extends string
845
846  # Mirror object referencing original JavaScript object.
847  type RemoteObject extends object
848    properties
849      # Object type.
850      enum type
851        object
852        function
853        undefined
854        string
855        number
856        boolean
857        symbol
858        bigint
859      # Object subtype hint. Specified for `object` type values only.
860      optional enum subtype
861        array
862        null
863        node
864        regexp
865        date
866        map
867        set
868        weakmap
869        weakset
870        iterator
871        generator
872        error
873        proxy
874        promise
875        typedarray
876      # Object class (constructor) name. Specified for `object` type values only.
877      optional string className
878      # Remote object value in case of primitive values or JSON values (if it was requested).
879      optional any value
880      # Primitive value which can not be JSON-stringified does not have `value`, but gets this
881      # property.
882      optional UnserializableValue unserializableValue
883      # String representation of the object.
884      optional string description
885      # Unique object identifier (for non-primitive values).
886      optional RemoteObjectId objectId
887      # Preview containing abbreviated property values. Specified for `object` type values only.
888      experimental optional ObjectPreview preview
889      experimental optional CustomPreview customPreview
890
891  experimental type CustomPreview extends object
892    properties
893      string header
894      boolean hasBody
895      RemoteObjectId formatterObjectId
896      RemoteObjectId bindRemoteObjectFunctionId
897      optional RemoteObjectId configObjectId
898
899  # Object containing abbreviated remote object value.
900  experimental type ObjectPreview extends object
901    properties
902      # Object type.
903      enum type
904        object
905        function
906        undefined
907        string
908        number
909        boolean
910        symbol
911        bigint
912      # Object subtype hint. Specified for `object` type values only.
913      optional enum subtype
914        array
915        null
916        node
917        regexp
918        date
919        map
920        set
921        weakmap
922        weakset
923        iterator
924        generator
925        error
926      # String representation of the object.
927      optional string description
928      # True iff some of the properties or entries of the original object did not fit.
929      boolean overflow
930      # List of the properties.
931      array of PropertyPreview properties
932      # List of the entries. Specified for `map` and `set` subtype values only.
933      optional array of EntryPreview entries
934
935  experimental type PropertyPreview extends object
936    properties
937      # Property name.
938      string name
939      # Object type. Accessor means that the property itself is an accessor property.
940      enum type
941        object
942        function
943        undefined
944        string
945        number
946        boolean
947        symbol
948        accessor
949        bigint
950      # User-friendly property value string.
951      optional string value
952      # Nested value preview.
953      optional ObjectPreview valuePreview
954      # Object subtype hint. Specified for `object` type values only.
955      optional enum subtype
956        array
957        null
958        node
959        regexp
960        date
961        map
962        set
963        weakmap
964        weakset
965        iterator
966        generator
967        error
968
969  experimental type EntryPreview extends object
970    properties
971      # Preview of the key. Specified for map-like collection entries.
972      optional ObjectPreview key
973      # Preview of the value.
974      ObjectPreview value
975
976  # Object property descriptor.
977  type PropertyDescriptor extends object
978    properties
979      # Property name or symbol description.
980      string name
981      # The value associated with the property.
982      optional RemoteObject value
983      # True if the value associated with the property may be changed (data descriptors only).
984      optional boolean writable
985      # A function which serves as a getter for the property, or `undefined` if there is no getter
986      # (accessor descriptors only).
987      optional RemoteObject get
988      # A function which serves as a setter for the property, or `undefined` if there is no setter
989      # (accessor descriptors only).
990      optional RemoteObject set
991      # True if the type of this property descriptor may be changed and if the property may be
992      # deleted from the corresponding object.
993      boolean configurable
994      # True if this property shows up during enumeration of the properties on the corresponding
995      # object.
996      boolean enumerable
997      # True if the result was thrown during the evaluation.
998      optional boolean wasThrown
999      # True if the property is owned for the object.
1000      optional boolean isOwn
1001      # Property symbol object, if the property is of the `symbol` type.
1002      optional RemoteObject symbol
1003
1004  # Object internal property descriptor. This property isn't normally visible in JavaScript code.
1005  type InternalPropertyDescriptor extends object
1006    properties
1007      # Conventional property name.
1008      string name
1009      # The value associated with the property.
1010      optional RemoteObject value
1011
1012  # Represents function call argument. Either remote object id `objectId`, primitive `value`,
1013  # unserializable primitive value or neither of (for undefined) them should be specified.
1014  type CallArgument extends object
1015    properties
1016      # Primitive value or serializable javascript object.
1017      optional any value
1018      # Primitive value which can not be JSON-stringified.
1019      optional UnserializableValue unserializableValue
1020      # Remote object handle.
1021      optional RemoteObjectId objectId
1022
1023  # Id of an execution context.
1024  type ExecutionContextId extends integer
1025
1026  # Description of an isolated world.
1027  type ExecutionContextDescription extends object
1028    properties
1029      # Unique id of the execution context. It can be used to specify in which execution context
1030      # script evaluation should be performed.
1031      ExecutionContextId id
1032      # Execution context origin.
1033      string origin
1034      # Human readable name describing given context.
1035      string name
1036      # Embedder-specific auxiliary data.
1037      optional object auxData
1038
1039  # Detailed information about exception (or error) that was thrown during script compilation or
1040  # execution.
1041  type ExceptionDetails extends object
1042    properties
1043      # Exception id.
1044      integer exceptionId
1045      # Exception text, which should be used together with exception object when available.
1046      string text
1047      # Line number of the exception location (0-based).
1048      integer lineNumber
1049      # Column number of the exception location (0-based).
1050      integer columnNumber
1051      # Script ID of the exception location.
1052      optional ScriptId scriptId
1053      # URL of the exception location, to be used when the script was not reported.
1054      optional string url
1055      # JavaScript stack trace if available.
1056      optional StackTrace stackTrace
1057      # Exception object if available.
1058      optional RemoteObject exception
1059      # Identifier of the context where exception happened.
1060      optional ExecutionContextId executionContextId
1061
1062  # Number of milliseconds since epoch.
1063  type Timestamp extends number
1064
1065  # Number of milliseconds.
1066  type TimeDelta extends number
1067
1068  # Stack entry for runtime errors and assertions.
1069  type CallFrame extends object
1070    properties
1071      # JavaScript function name.
1072      string functionName
1073      # JavaScript script id.
1074      ScriptId scriptId
1075      # JavaScript script name or url.
1076      string url
1077      # JavaScript script line number (0-based).
1078      integer lineNumber
1079      # JavaScript script column number (0-based).
1080      integer columnNumber
1081
1082  # Call frames for assertions or error messages.
1083  type StackTrace extends object
1084    properties
1085      # String label of this stack trace. For async traces this may be a name of the function that
1086      # initiated the async call.
1087      optional string description
1088      # JavaScript function name.
1089      array of CallFrame callFrames
1090      # Asynchronous JavaScript stack trace that preceded this stack, if available.
1091      optional StackTrace parent
1092      # Asynchronous JavaScript stack trace that preceded this stack, if available.
1093      experimental optional StackTraceId parentId
1094
1095  # Unique identifier of current debugger.
1096  experimental type UniqueDebuggerId extends string
1097
1098  # If `debuggerId` is set stack trace comes from another debugger and can be resolved there. This
1099  # allows to track cross-debugger calls. See `Runtime.StackTrace` and `Debugger.paused` for usages.
1100  experimental type StackTraceId extends object
1101    properties
1102      string id
1103      optional UniqueDebuggerId debuggerId
1104
1105  # Add handler to promise with given promise object id.
1106  command awaitPromise
1107    parameters
1108      # Identifier of the promise.
1109      RemoteObjectId promiseObjectId
1110      # Whether the result is expected to be a JSON object that should be sent by value.
1111      optional boolean returnByValue
1112      # Whether preview should be generated for the result.
1113      optional boolean generatePreview
1114    returns
1115      # Promise result. Will contain rejected value if promise was rejected.
1116      RemoteObject result
1117      # Exception details if stack strace is available.
1118      optional ExceptionDetails exceptionDetails
1119
1120  # Calls function with given declaration on the given object. Object group of the result is
1121  # inherited from the target object.
1122  command callFunctionOn
1123    parameters
1124      # Declaration of the function to call.
1125      string functionDeclaration
1126      # Identifier of the object to call function on. Either objectId or executionContextId should
1127      # be specified.
1128      optional RemoteObjectId objectId
1129      # Call arguments. All call arguments must belong to the same JavaScript world as the target
1130      # object.
1131      optional array of CallArgument arguments
1132      # In silent mode exceptions thrown during evaluation are not reported and do not pause
1133      # execution. Overrides `setPauseOnException` state.
1134      optional boolean silent
1135      # Whether the result is expected to be a JSON object which should be sent by value.
1136      optional boolean returnByValue
1137      # Whether preview should be generated for the result.
1138      experimental optional boolean generatePreview
1139      # Whether execution should be treated as initiated by user in the UI.
1140      optional boolean userGesture
1141      # Whether execution should `await` for resulting value and return once awaited promise is
1142      # resolved.
1143      optional boolean awaitPromise
1144      # Specifies execution context which global object will be used to call function on. Either
1145      # executionContextId or objectId should be specified.
1146      optional ExecutionContextId executionContextId
1147      # Symbolic group name that can be used to release multiple objects. If objectGroup is not
1148      # specified and objectId is, objectGroup will be inherited from object.
1149      optional string objectGroup
1150    returns
1151      # Call result.
1152      RemoteObject result
1153      # Exception details.
1154      optional ExceptionDetails exceptionDetails
1155
1156  # Compiles expression.
1157  command compileScript
1158    parameters
1159      # Expression to compile.
1160      string expression
1161      # Source url to be set for the script.
1162      string sourceURL
1163      # Specifies whether the compiled script should be persisted.
1164      boolean persistScript
1165      # Specifies in which execution context to perform script run. If the parameter is omitted the
1166      # evaluation will be performed in the context of the inspected page.
1167      optional ExecutionContextId executionContextId
1168    returns
1169      # Id of the script.
1170      optional ScriptId scriptId
1171      # Exception details.
1172      optional ExceptionDetails exceptionDetails
1173
1174  # Disables reporting of execution contexts creation.
1175  command disable
1176
1177  # Discards collected exceptions and console API calls.
1178  command discardConsoleEntries
1179
1180  # Enables reporting of execution contexts creation by means of `executionContextCreated` event.
1181  # When the reporting gets enabled the event will be sent immediately for each existing execution
1182  # context.
1183  command enable
1184
1185  # Evaluates expression on global object.
1186  command evaluate
1187    parameters
1188      # Expression to evaluate.
1189      string expression
1190      # Symbolic group name that can be used to release multiple objects.
1191      optional string objectGroup
1192      # Determines whether Command Line API should be available during the evaluation.
1193      optional boolean includeCommandLineAPI
1194      # In silent mode exceptions thrown during evaluation are not reported and do not pause
1195      # execution. Overrides `setPauseOnException` state.
1196      optional boolean silent
1197      # Specifies in which execution context to perform evaluation. If the parameter is omitted the
1198      # evaluation will be performed in the context of the inspected page.
1199      optional ExecutionContextId contextId
1200      # Whether the result is expected to be a JSON object that should be sent by value.
1201      optional boolean returnByValue
1202      # Whether preview should be generated for the result.
1203      experimental optional boolean generatePreview
1204      # Whether execution should be treated as initiated by user in the UI.
1205      optional boolean userGesture
1206      # Whether execution should `await` for resulting value and return once awaited promise is
1207      # resolved.
1208      optional boolean awaitPromise
1209      # Whether to throw an exception if side effect cannot be ruled out during evaluation.
1210      experimental optional boolean throwOnSideEffect
1211      # Terminate execution after timing out (number of milliseconds).
1212      experimental optional TimeDelta timeout
1213    returns
1214      # Evaluation result.
1215      RemoteObject result
1216      # Exception details.
1217      optional ExceptionDetails exceptionDetails
1218
1219  # Returns the isolate id.
1220  experimental command getIsolateId
1221    returns
1222      # The isolate id.
1223      string id
1224
1225  # Returns the JavaScript heap usage.
1226  # It is the total usage of the corresponding isolate not scoped to a particular Runtime.
1227  experimental command getHeapUsage
1228    returns
1229      # Used heap size in bytes.
1230      number usedSize
1231      # Allocated heap size in bytes.
1232      number totalSize
1233
1234  # Returns properties of a given object. Object group of the result is inherited from the target
1235  # object.
1236  command getProperties
1237    parameters
1238      # Identifier of the object to return properties for.
1239      RemoteObjectId objectId
1240      # If true, returns properties belonging only to the element itself, not to its prototype
1241      # chain.
1242      optional boolean ownProperties
1243      # If true, returns accessor properties (with getter/setter) only; internal properties are not
1244      # returned either.
1245      experimental optional boolean accessorPropertiesOnly
1246      # Whether preview should be generated for the results.
1247      experimental optional boolean generatePreview
1248    returns
1249      # Object properties.
1250      array of PropertyDescriptor result
1251      # Internal object properties (only of the element itself).
1252      optional array of InternalPropertyDescriptor internalProperties
1253      # Exception details.
1254      optional ExceptionDetails exceptionDetails
1255
1256  # Returns all let, const and class variables from global scope.
1257  command globalLexicalScopeNames
1258    parameters
1259      # Specifies in which execution context to lookup global scope variables.
1260      optional ExecutionContextId executionContextId
1261    returns
1262      array of string names
1263
1264  command queryObjects
1265    parameters
1266      # Identifier of the prototype to return objects for.
1267      RemoteObjectId prototypeObjectId
1268      # Symbolic group name that can be used to release the results.
1269      optional string objectGroup
1270    returns
1271      # Array with objects.
1272      RemoteObject objects
1273
1274  # Releases remote object with given id.
1275  command releaseObject
1276    parameters
1277      # Identifier of the object to release.
1278      RemoteObjectId objectId
1279
1280  # Releases all remote objects that belong to a given group.
1281  command releaseObjectGroup
1282    parameters
1283      # Symbolic object group name.
1284      string objectGroup
1285
1286  # Tells inspected instance to run if it was waiting for debugger to attach.
1287  command runIfWaitingForDebugger
1288
1289  # Runs script with given id in a given context.
1290  command runScript
1291    parameters
1292      # Id of the script to run.
1293      ScriptId scriptId
1294      # Specifies in which execution context to perform script run. If the parameter is omitted the
1295      # evaluation will be performed in the context of the inspected page.
1296      optional ExecutionContextId executionContextId
1297      # Symbolic group name that can be used to release multiple objects.
1298      optional string objectGroup
1299      # In silent mode exceptions thrown during evaluation are not reported and do not pause
1300      # execution. Overrides `setPauseOnException` state.
1301      optional boolean silent
1302      # Determines whether Command Line API should be available during the evaluation.
1303      optional boolean includeCommandLineAPI
1304      # Whether the result is expected to be a JSON object which should be sent by value.
1305      optional boolean returnByValue
1306      # Whether preview should be generated for the result.
1307      optional boolean generatePreview
1308      # Whether execution should `await` for resulting value and return once awaited promise is
1309      # resolved.
1310      optional boolean awaitPromise
1311    returns
1312      # Run result.
1313      RemoteObject result
1314      # Exception details.
1315      optional ExceptionDetails exceptionDetails
1316
1317  experimental command setCustomObjectFormatterEnabled
1318    parameters
1319      boolean enabled
1320
1321  # Terminate current or next JavaScript execution.
1322  # Will cancel the termination when the outer-most script execution ends.
1323  experimental command terminateExecution
1324
1325  # Issued when console API was called.
1326  event consoleAPICalled
1327    parameters
1328      # Type of the call.
1329      enum type
1330        log
1331        debug
1332        info
1333        error
1334        warning
1335        dir
1336        dirxml
1337        table
1338        trace
1339        clear
1340        startGroup
1341        startGroupCollapsed
1342        endGroup
1343        assert
1344        profile
1345        profileEnd
1346        count
1347        timeEnd
1348      # Call arguments.
1349      array of RemoteObject args
1350      # Identifier of the context where the call was made.
1351      ExecutionContextId executionContextId
1352      # Call timestamp.
1353      Timestamp timestamp
1354      # Stack trace captured when the call was made.
1355      optional StackTrace stackTrace
1356      # Console context descriptor for calls on non-default console context (not console.*):
1357      # 'anonymous#unique-logger-id' for call on unnamed context, 'name#unique-logger-id' for call
1358      # on named context.
1359      experimental optional string context
1360
1361  # Issued when unhandled exception was revoked.
1362  event exceptionRevoked
1363    parameters
1364      # Reason describing why exception was revoked.
1365      string reason
1366      # The id of revoked exception, as reported in `exceptionThrown`.
1367      integer exceptionId
1368
1369  # Issued when exception was thrown and unhandled.
1370  event exceptionThrown
1371    parameters
1372      # Timestamp of the exception.
1373      Timestamp timestamp
1374      ExceptionDetails exceptionDetails
1375
1376  # Issued when new execution context is created.
1377  event executionContextCreated
1378    parameters
1379      # A newly created execution context.
1380      ExecutionContextDescription context
1381
1382  # Issued when execution context is destroyed.
1383  event executionContextDestroyed
1384    parameters
1385      # Id of the destroyed context
1386      ExecutionContextId executionContextId
1387
1388  # Issued when all executionContexts were cleared in browser
1389  event executionContextsCleared
1390
1391  # Issued when object should be inspected (for example, as a result of inspect() command line API
1392  # call).
1393  event inspectRequested
1394    parameters
1395      RemoteObject object
1396      object hints
1397
1398# This domain is deprecated.
1399deprecated domain Schema
1400
1401  # Description of the protocol domain.
1402  type Domain extends object
1403    properties
1404      # Domain name.
1405      string name
1406      # Domain version.
1407      string version
1408
1409  # Returns supported domains.
1410  command getDomains
1411    returns
1412      # List of supported domains.
1413      array of Domain domains
1414