Runtime Domain
Runtime domain exposes JavaScript runtime by means of remote evaluation and mirror objects. Evaluation results are returned as mirror object that expose object type, string representation and unique identifier that can be used for further object reference. Original objects are maintained in memory unless they are either explicitly released or are released along with the other objects in their object group.
Methods
- Runtime.addBinding
- Runtime.awaitPromise
- Runtime.callFunctionOn
- Runtime.compileScript
- Runtime.disable
- Runtime.discardConsoleEntries
- Runtime.enable
- Runtime.evaluate
- Runtime.getProperties
- Runtime.globalLexicalScopeNames
- Runtime.queryObjects
- Runtime.releaseObject
- Runtime.releaseObjectGroup
- Runtime.removeBinding
- Runtime.runIfWaitingForDebugger
- Runtime.runScript
- Runtime.setAsyncCallStackDepth
Events
- Runtime.consoleAPICalled
- Runtime.exceptionRevoked
- Runtime.exceptionThrown
- Runtime.executionContextCreated
- Runtime.executionContextDestroyed
- Runtime.executionContextsCleared
- Runtime.inspectRequested
Types
- Runtime.CallArgument
- Runtime.CallFrame
- Runtime.DeepSerializedValue
- Runtime.ExceptionDetails
- Runtime.ExecutionContextDescription
- Runtime.ExecutionContextId
- Runtime.InternalPropertyDescriptor
- Runtime.PropertyDescriptor
- Runtime.RemoteObject
- Runtime.RemoteObjectId
- Runtime.ScriptId
- Runtime.SerializationOptions
- Runtime.StackTrace
- Runtime.TimeDelta
- Runtime.Timestamp
- Runtime.UnserializableValue
Methods
Runtime.addBinding #
If executionContextId is empty, adds binding with the given name on the global objects of all inspected contexts, including those created later, bindings survive reloads. Binding function takes exactly one argument, this argument should be string, in case of any other input, function throws an exception. Each binding function call produces Runtime.bindingCalled notification.
A map from binding names (registered during this session using @cdp Runtime.addBinding) to execution context selectors.
Even though bindings get added to the global scope as functions that can outlive a session, they are treated as session state, matching Chrome's behaviour (a binding not added by the current session will not emit events on it).
Parameters
name
string
executionContextId
Optional
If specified, the binding would only be exposed to the specified
execution context. If omitted and executionContextName
is not set,
the binding is exposed to all execution contexts of the target.
This parameter is mutually exclusive with executionContextName
.
Deprecated in favor of executionContextName
due to an unclear use case
and bugs in implementation (crbug.com/1169639). executionContextId
will be
removed in the future.
executionContextName
Optional
string
If specified, the binding is exposed to the executionContext with
matching name, even for contexts created after the binding is added.
See also ExecutionContext.name
and worldName
parameter to
Page.addScriptToEvaluateOnNewDocument
.
This parameter is mutually exclusive with executionContextId
.
Runtime.awaitPromise #
Add handler to promise with given promise object id.
Parameters
promiseObjectId
Identifier of the promise.
returnByValue
Optional
boolean
Whether the result is expected to be a JSON object that should be sent by value.
generatePreview
Optional
boolean
Whether preview should be generated for the result.
Return object
result
Promise result. Will contain rejected value if promise was rejected.
exceptionDetails
Optional
Exception details if stack strace is available.
Runtime.callFunctionOn #
Calls function with given declaration on the given object. Object group of the result is inherited from the target object.
In V8, @cdp Runtime.evaluate and @cdp Runtime.callFunctionOn populate the
result
field with the exception value, and some code paths in Chrome
DevTools depend on this.
See
https://github.com/facebookexperimental/rn-chrome-devtools-frontend/blob/35aa264a622e853bb28b4c83a7b5cc3b2a9747bc/front_end/core/sdk/RemoteObject.ts#L574-L592
Handles Runtime.callFunctionOn request @cdp Runtime.callFunctionOn Allowed even if domain is not enabled.
Parameters
functionDeclaration
string
Declaration of the function to call.
objectId
Optional
Identifier of the object to call function on. Either objectId or executionContextId should be specified.
arguments
Optional
array[ CallArgument ]
Call arguments. All call arguments must belong to the same JavaScript world as the target object.
silent
Optional
boolean
In silent mode exceptions thrown during evaluation are not reported and do not pause
execution. Overrides setPauseOnException
state.
returnByValue
Optional
boolean
Whether the result is expected to be a JSON object which should be sent by value.
Can be overriden by serializationOptions
.
generatePreview
Optional
boolean
Whether preview should be generated for the result.
userGesture
Optional
boolean
Whether execution should be treated as initiated by user in the UI.
awaitPromise
Optional
boolean
Whether execution should await
for resulting value and return once awaited promise is
resolved.
executionContextId
Optional
Specifies execution context which global object will be used to call function on. Either executionContextId or objectId should be specified.
objectGroup
Optional
string
Symbolic group name that can be used to release multiple objects. If objectGroup is not specified and objectId is, objectGroup will be inherited from object.
throwOnSideEffect
Optional
boolean
Whether to throw an exception if side effect cannot be ruled out during evaluation.
uniqueContextId
Optional
string
An alternative way to specify the execution context to call function on.
Compared to contextId that may be reused across processes, this is guaranteed to be
system-unique, so it can be used to prevent accidental function call
in context different than intended (e.g. as a result of navigation across process
boundaries).
This is mutually exclusive with executionContextId
.
serializationOptions
Optional
Specifies the result serialization. If provided, overrides
generatePreview
and returnByValue
.
Return object
result
Call result.
exceptionDetails
Optional
Exception details.
Runtime.compileScript #
Compiles expression.
Handles Runtime.compileScript request @cdp Runtime.compileScript Not allowed if domain is not enabled.
Parameters
expression
string
Expression to compile.
sourceURL
string
Source url to be set for the script.
persistScript
boolean
Specifies whether the compiled script should be persisted.
executionContextId
Optional
Specifies in which execution context to perform script run. If the parameter is omitted the evaluation will be performed in the context of the inspected page.
Return object
scriptId
Optional
Id of the script.
exceptionDetails
Optional
Exception details.
Runtime.disable #
Disables reporting of execution contexts creation.
Handles Runtime.disable request @cdp Runtime.disable If domain is already disabled, will return success.
Runtime.enable #
Enables reporting of execution contexts creation by means of executionContextCreated
event.
When the reporting gets enabled the event will be sent immediately for each existing execution
context.
Handles Runtime.enable request @cdp Runtime.enable If domain is already enabled, will return success.
Runtime.evaluate #
Evaluates expression on global object.
In V8, @cdp Runtime.evaluate and @cdp Runtime.callFunctionOn populate the
result
field with the exception value, and some code paths in Chrome
DevTools depend on this.
See
https://github.com/facebookexperimental/rn-chrome-devtools-frontend/blob/35aa264a622e853bb28b4c83a7b5cc3b2a9747bc/front_end/core/sdk/RemoteObject.ts#L574-L592
Handles Runtime.evaluate request @cdp Runtime.evaluate Allowed even if domain is not enabled.
Parameters
expression
string
Expression to evaluate.
objectGroup
Optional
string
Symbolic group name that can be used to release multiple objects.
includeCommandLineAPI
Optional
boolean
Determines whether Command Line API should be available during the evaluation.
silent
Optional
boolean
In silent mode exceptions thrown during evaluation are not reported and do not pause
execution. Overrides setPauseOnException
state.
contextId
Optional
Specifies in which execution context to perform evaluation. If the parameter is omitted the
evaluation will be performed in the context of the inspected page.
This is mutually exclusive with uniqueContextId
, which offers an
alternative way to identify the execution context that is more reliable
in a multi-process environment.
returnByValue
Optional
boolean
Whether the result is expected to be a JSON object that should be sent by value.
generatePreview
Optional
boolean
Whether preview should be generated for the result.
userGesture
Optional
boolean
Whether execution should be treated as initiated by user in the UI.
awaitPromise
Optional
boolean
Whether execution should await
for resulting value and return once awaited promise is
resolved.
throwOnSideEffect
Optional
boolean
Whether to throw an exception if side effect cannot be ruled out during evaluation.
This implies disableBreaks
below.
timeout
Optional
disableBreaks
Optional
boolean
Disable breakpoints during execution.
replMode
Optional
boolean
Setting this flag to true enables let
re-declaration and top-level await
.
Note that let
variables can only be re-declared if they originate from
replMode
themselves.
allowUnsafeEvalBlockedByCSP
Optional
boolean
The Content Security Policy (CSP) for the target might block 'unsafe-eval' which includes eval(), Function(), setTimeout() and setInterval() when called with non-callable arguments. This flag bypasses CSP for this evaluation and allows unsafe-eval. Defaults to true.
uniqueContextId
Optional
string
An alternative way to specify the execution context to evaluate in.
Compared to contextId that may be reused across processes, this is guaranteed to be
system-unique, so it can be used to prevent accidental evaluation of the expression
in context different than intended (e.g. as a result of navigation across process
boundaries).
This is mutually exclusive with contextId
.
serializationOptions
Optional
Specifies the result serialization. If provided, overrides
generatePreview
and returnByValue
.
Return object
result
Evaluation result.
exceptionDetails
Optional
Exception details.
Runtime.getProperties #
Returns properties of a given object. Object group of the result is inherited from the target object.
Handles Runtime.getProperties request @cdp Runtime.getProperties Allowed even if domain is not enabled.
Parameters
objectId
Identifier of the object to return properties for.
ownProperties
Optional
boolean
If true, returns properties belonging only to the element itself, not to its prototype chain.
accessorPropertiesOnly
Optional
boolean
If true, returns accessor properties (with getter/setter) only; internal properties are not returned either.
generatePreview
Optional
boolean
Whether preview should be generated for the results.
nonIndexedPropertiesOnly
Optional
boolean
If true, returns non-indexed properties only.
Return object
result
array[ PropertyDescriptor ]
Object properties.
internalProperties
Optional
array[ InternalPropertyDescriptor ]
Internal object properties (only of the element itself).
privateProperties
Optional
exceptionDetails
Optional
Exception details.
Runtime.globalLexicalScopeNames #
Returns all let, const and class variables from global scope.
Handles Runtime.globalLexicalScopeNames request @cdp Runtime.globalLexicalScopeNames Allowed even if domain is not enabled.
Parameters
executionContextId
Optional
Specifies in which execution context to lookup global scope variables.
Return object
names
array[ string
]
Runtime.queryObjects #
Parameters
prototypeObjectId
Identifier of the prototype to return objects for.
objectGroup
Optional
string
Symbolic group name that can be used to release the results.
Return object
objects
Array with objects.
Runtime.releaseObject #
Releases remote object with given id.
Parameters
objectId
Identifier of the object to release.
Runtime.releaseObjectGroup #
Releases all remote objects that belong to a given group.
Parameters
objectGroup
string
Symbolic object group name.
Runtime.removeBinding #
This method does not remove binding function from global object but unsubscribes current runtime agent from Runtime.bindingCalled notifications.
Runtime.removeBinding has no targeting by execution context. We interpret it to mean "unsubscribe, and stop installing the binding on all new contexts". This diverges slightly from V8, which continues to install the binding on new contexts after it's "removed", but only if the subscription is targeted by context name.
Parameters
name
string
Runtime.runIfWaitingForDebugger #
Tells inspected instance to run if it was waiting for debugger to attach.
Runtime.runScript #
Runs script with given id in a given context.
Parameters
scriptId
Id of the script to run.
executionContextId
Optional
Specifies in which execution context to perform script run. If the parameter is omitted the evaluation will be performed in the context of the inspected page.
objectGroup
Optional
string
Symbolic group name that can be used to release multiple objects.
silent
Optional
boolean
In silent mode exceptions thrown during evaluation are not reported and do not pause
execution. Overrides setPauseOnException
state.
includeCommandLineAPI
Optional
boolean
Determines whether Command Line API should be available during the evaluation.
returnByValue
Optional
boolean
Whether the result is expected to be a JSON object which should be sent by value.
generatePreview
Optional
boolean
Whether preview should be generated for the result.
awaitPromise
Optional
boolean
Whether execution should await
for resulting value and return once awaited promise is
resolved.
Return object
result
Run result.
exceptionDetails
Optional
Exception details.
Runtime.setAsyncCallStackDepth #
Enables or disables async call stacks tracking.
Parameters
maxDepth
integer
Maximum depth of async call stacks. Setting to 0
will effectively disable collecting async
call stacks (default).
Events
Runtime.consoleAPICalled #
Issued when console API was called.
We use the @cdp Runtime.consoleAPICalled context
parameter to
mark synthetic messages generated by the backend, i.e. not
originating in a real console.*
API call.
Parameters
type
string
Type of the call.
Allowed values: log
, debug
, info
, error
, warning
, dir
, dirxml
, table
, trace
, clear
, startGroup
, startGroupCollapsed
, endGroup
, assert
, profile
, profileEnd
, count
, timeEnd
args
array[ RemoteObject ]
Call arguments.
executionContextId
Identifier of the context where the call was made.
timestamp
Call timestamp.
stackTrace
Optional
Stack trace captured when the call was made. The async stack chain is automatically reported for
the following call types: assert
, error
, trace
, warning
. For other types the async call
chain can be retrieved using Debugger.getStackTrace
and stackTrace.parentId
field.
context
Optional
string
Console context descriptor for calls on non-default console context (not console.*): 'anonymous#unique-logger-id' for call on unnamed context, 'name#unique-logger-id' for call on named context.
Runtime.exceptionRevoked #
Issued when unhandled exception was revoked.
Parameters
reason
string
Reason describing why exception was revoked.
exceptionId
integer
The id of revoked exception, as reported in exceptionThrown
.
Runtime.exceptionThrown #
Issued when exception was thrown and unhandled.
Parameters
timestamp
Timestamp of the exception.
exceptionDetails
Runtime.executionContextCreated #
Issued when new execution context is created.
Parameters
context
A newly created execution context.
Runtime.executionContextDestroyed #
Issued when execution context is destroyed.
Parameters
executionContextId
executionContextUniqueId
string
Unique Id of the destroyed context
Runtime.inspectRequested #
Issued when object should be inspected (for example, as a result of inspect() command line API call).
Parameters
object
hints
object
executionContextId
Optional
Types
Runtime.CallArgument #
Represents function call argument. Either remote object id objectId
, primitive value
,
unserializable primitive value or neither of (for undefined) them should be specified.
Type: object
Properties
value
Optional
any
Primitive value or serializable javascript object.
unserializableValue
Optional
Primitive value which can not be JSON-stringified.
objectId
Optional
Remote object handle.
Runtime.CallFrame #
Stack entry for runtime errors and assertions.
Type: object
Properties
functionName
string
JavaScript function name.
scriptId
JavaScript script id.
url
string
JavaScript script name or url.
lineNumber
integer
JavaScript script line number (0-based).
columnNumber
integer
JavaScript script column number (0-based).
Runtime.DeepSerializedValue #
Represents deep serialized value.
Type: object
Properties
type
string
Allowed values: undefined
, null
, string
, number
, boolean
, bigint
, regexp
, date
, symbol
, array
, object
, function
, map
, set
, weakmap
, weakset
, error
, proxy
, promise
, typedarray
, arraybuffer
, node
, window
, generator
value
Optional
any
objectId
Optional
string
weakLocalObjectReference
Optional
integer
Set if value reference met more then once during serialization. In such case, value is provided only to one of the serialized values. Unique per value in the scope of one CDP call.
Runtime.ExceptionDetails #
Detailed information about exception (or error) that was thrown during script compilation or execution.
Type: object
Properties
exceptionId
integer
Exception id.
text
string
Exception text, which should be used together with exception object when available.
lineNumber
integer
Line number of the exception location (0-based).
columnNumber
integer
Column number of the exception location (0-based).
scriptId
Optional
Script ID of the exception location.
url
Optional
string
URL of the exception location, to be used when the script was not reported.
stackTrace
Optional
JavaScript stack trace if available.
exception
Optional
Exception object if available.
executionContextId
Optional
Identifier of the context where exception happened.
exceptionMetaData
Optional
object
Dictionary with entries of meta data that the client associated with this exception, such as information about associated network requests, etc.
Runtime.ExecutionContextDescription #
Description of an isolated world.
Type: object
Properties
id
Unique id of the execution context. It can be used to specify in which execution context script evaluation should be performed.
origin
string
Execution context origin.
name
string
Human readable name describing given context.
uniqueId
string
A system-unique execution context identifier. Unlike the id, this is unique across multiple processes, so can be reliably used to identify specific context while backend performs a cross-process navigation.
auxData
Optional
object
Embedder-specific auxiliary data likely matching {isDefault: boolean, type: 'default'|'isolated'|'worker', frameId: string}
Runtime.InternalPropertyDescriptor #
Object internal property descriptor. This property isn't normally visible in JavaScript code.
Type: object
Properties
name
string
Conventional property name.
value
Optional
The value associated with the property.
Runtime.PropertyDescriptor #
Object property descriptor.
Type: object
Properties
name
string
Property name or symbol description.
value
Optional
The value associated with the property.
writable
Optional
boolean
True if the value associated with the property may be changed (data descriptors only).
get
Optional
A function which serves as a getter for the property, or undefined
if there is no getter
(accessor descriptors only).
set
Optional
A function which serves as a setter for the property, or undefined
if there is no setter
(accessor descriptors only).
configurable
boolean
True if the type of this property descriptor may be changed and if the property may be deleted from the corresponding object.
enumerable
boolean
True if this property shows up during enumeration of the properties on the corresponding object.
wasThrown
Optional
boolean
True if the result was thrown during the evaluation.
isOwn
Optional
boolean
True if the property is owned for the object.
symbol
Optional
Property symbol object, if the property is of the symbol
type.
Runtime.RemoteObject #
Mirror object referencing original JavaScript object.
Type: object
Runtime.RemoteObject's description property is a string, but in the case of functions, V8 populates it with the result of toString [1] and Chrome DevTools uses a series of regexes [2] to extract structured information about the function. [1] https://source.chromium.org/chromium/chromium/src/+/main:v8/src/debug/debug-interface.cc;l=138-174;drc=42debe0b0e6bf90175dd0d121eb0e7dc11a6d29c [2] https://github.com/facebookexperimental/rn-chrome-devtools-frontend/blob/9a23d4c7c4c2d1a3d9e913af38d6965f474c4284/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts#L311-L391
Properties
type
string
Object type.
Allowed values: object
, function
, undefined
, string
, number
, boolean
, symbol
, bigint
subtype
Optional
string
Object subtype hint. Specified for object
type values only.
NOTE: If you change anything here, make sure to also update
subtype
in ObjectPreview
and PropertyPreview
below.
Allowed values: array
, null
, node
, regexp
, date
, map
, set
, weakmap
, weakset
, iterator
, generator
, error
, proxy
, promise
, typedarray
, arraybuffer
, dataview
, webassemblymemory
, wasmvalue
className
Optional
string
Object class (constructor) name. Specified for object
type values only.
value
Optional
any
Remote object value in case of primitive values or JSON values (if it was requested).
unserializableValue
Optional
Primitive value which can not be JSON-stringified does not have value
, but gets this
property.
description
Optional
string
String representation of the object.
deepSerializedValue
Optional
objectId
Optional
Unique object identifier (for non-primitive values).
preview
Optional
Preview containing abbreviated property values. Specified for object
type values only.
customPreview
Optional
Runtime.SerializationOptions #
Represents options for serialization. Overrides generatePreview
and returnByValue
.
Type: object
Properties
serialization
string
Allowed values: deep
, json
, idOnly
maxDepth
Optional
integer
Deep serialization depth. Default is full depth. Respected only in deep
serialization mode.
additionalParameters
Optional
object
Embedder-specific parameters. For example if connected to V8 in Chrome these control DOM
serialization via maxNodeDepth: integer
and includeShadowTree: "none" | "open" | "all"
.
Values can be only of type string or integer.
Runtime.StackTrace #
Call frames for assertions or error messages.
Type: object
Properties
description
Optional
string
String label of this stack trace. For async traces this may be a name of the function that initiated the async call.
callFrames
array[ CallFrame ]
JavaScript function name.
parent
Optional
Asynchronous JavaScript stack trace that preceded this stack, if available.
parentId
Optional
Asynchronous JavaScript stack trace that preceded this stack, if available.
Runtime.UnserializableValue #
Primitive value which cannot be JSON-stringified. Includes values -0
, NaN
, Infinity
,
-Infinity
, and bigint literals.
Type: string