onRemoveNode method
Implementation
void onRemoveNode(int? id, Map<String, dynamic> params) {
if (DebugFlags.enableDevToolsLogs) {
devToolsLogger.finer('[DevTools] DOM.removeNode nodeId=${params['nodeId']}');
}
int? nodeId = params['nodeId'];
final ctx = dbgContext;
if (nodeId == null || ctx == null) {
sendToFrontend(id, null);
return;
}
final targetId = ctx.getTargetIdByNodeId(nodeId);
Node? node;
if (targetId != null) {
node = ctx.getBindingObject(Pointer.fromAddress(targetId)) as Node?;
}
if (node != null) {
// Prefer controller bridge to emit incremental CDP events (childNodeRemoved)
final controller = ctx.getController() ?? devtoolsService.controller;
if (controller != null) {
try {
controller.view.removeNode(node.pointer!);
} catch (_) {
if (node.parentNode != null) {
node.parentNode!.removeChild(node);
}
}
} else if (node.parentNode != null) {
node.parentNode!.removeChild(node);
}
}
sendToFrontend(id, null);
}