onRequestNode method

void onRequestNode(
  1. int? id,
  2. Map<String, dynamic> params
)

https://chromedevtools.github.io/devtools-protocol/tot/DOM/#method-requestNode Returns nodeId for a given objectId (from Runtime.evaluate/resolveNode).

Implementation

void onRequestNode(int? id, Map<String, dynamic> params) {
  final ctx = dbgContext;
  if (ctx == null) {
    sendToFrontend(id, null);
    return;
  }

  final dynamic objectId = params['objectId'];
  int parsedNodeId = 0;
  if (objectId is String) {
    // Our resolveNode encodes nodeId as string objectId
    parsedNodeId = int.tryParse(objectId) ?? 0;
  } else if (objectId is int) {
    parsedNodeId = objectId;
  }

  // Validate that the node exists in mapping
  if (parsedNodeId != 0) {
    final targetId = ctx.getTargetIdByNodeId(parsedNodeId);
    if (targetId == null || targetId == 0) {
      parsedNodeId = 0;
    }
  }

  sendToFrontend(id, JSONEncodableMap({'nodeId': parsedNodeId}));
}