evaluate method

Future<EvaluateResult> evaluate(
  1. String expression, {
  2. String? objectGroup,
  3. bool? includeCommandLineAPI,
  4. bool? silent,
  5. ExecutionContextId? contextId,
  6. bool? returnByValue,
  7. bool? generatePreview,
  8. bool? userGesture,
  9. bool? awaitPromise,
  10. bool? throwOnSideEffect,
  11. TimeDelta? timeout,
  12. bool? disableBreaks,
  13. bool? replMode,
  14. bool? allowUnsafeEvalBlockedByCSP,
  15. String? uniqueContextId,
  16. SerializationOptions? serializationOptions,
})

Evaluates expression on global object. expression Expression to evaluate. objectGroup Symbolic group name that can be used to release multiple objects. includeCommandLineAPI Determines whether Command Line API should be available during the evaluation. silent In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides setPauseOnException state. contextId 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 Whether the result is expected to be a JSON object that should be sent by value. generatePreview Whether preview should be generated for the result. userGesture Whether execution should be treated as initiated by user in the UI. awaitPromise Whether execution should await for resulting value and return once awaited promise is resolved. throwOnSideEffect Whether to throw an exception if side effect cannot be ruled out during evaluation. This implies disableBreaks below. timeout Terminate execution after timing out (number of milliseconds). disableBreaks Disable breakpoints during execution. replMode 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 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 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 Specifies the result serialization. If provided, overrides generatePreview and returnByValue.

Implementation

Future<EvaluateResult> evaluate(String expression,
    {String? objectGroup,
    bool? includeCommandLineAPI,
    bool? silent,
    ExecutionContextId? contextId,
    bool? returnByValue,
    bool? generatePreview,
    bool? userGesture,
    bool? awaitPromise,
    bool? throwOnSideEffect,
    TimeDelta? timeout,
    bool? disableBreaks,
    bool? replMode,
    bool? allowUnsafeEvalBlockedByCSP,
    String? uniqueContextId,
    SerializationOptions? serializationOptions}) async {
  var result = await _client.send('Runtime.evaluate', {
    'expression': expression,
    if (objectGroup != null) 'objectGroup': objectGroup,
    if (includeCommandLineAPI != null)
      'includeCommandLineAPI': includeCommandLineAPI,
    if (silent != null) 'silent': silent,
    if (contextId != null) 'contextId': contextId,
    if (returnByValue != null) 'returnByValue': returnByValue,
    if (generatePreview != null) 'generatePreview': generatePreview,
    if (userGesture != null) 'userGesture': userGesture,
    if (awaitPromise != null) 'awaitPromise': awaitPromise,
    if (throwOnSideEffect != null) 'throwOnSideEffect': throwOnSideEffect,
    if (timeout != null) 'timeout': timeout,
    if (disableBreaks != null) 'disableBreaks': disableBreaks,
    if (replMode != null) 'replMode': replMode,
    if (allowUnsafeEvalBlockedByCSP != null)
      'allowUnsafeEvalBlockedByCSP': allowUnsafeEvalBlockedByCSP,
    if (uniqueContextId != null) 'uniqueContextId': uniqueContextId,
    if (serializationOptions != null)
      'serializationOptions': serializationOptions,
  });
  return EvaluateResult.fromJson(result);
}