onRemoveAttribute method

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

Implementation

void onRemoveAttribute(int? id, Map<String, dynamic> params) {
  // https://chromedevtools.github.io/devtools-protocol/tot/DOM/#method-removeAttribute
  if (DebugFlags.enableDevToolsLogs) {
    devToolsLogger
        .finer('[DevTools] DOM.removeAttribute nodeId=${params['nodeId']} name=${params['name']}');
  }
  final ctx = dbgContext;
  if (ctx == null) {
    sendToFrontend(id, null);
    return;
  }
  int? nodeId = params['nodeId'];
  String? name = params['name'];
  if (nodeId == null || name == null) {
    sendToFrontend(id, null);
    return;
  }
  final targetId = ctx.getTargetIdByNodeId(nodeId);
  if (targetId == null) {
    sendToFrontend(id, null);
    return;
  }
  final Node? node = ctx.getBindingObject(Pointer.fromAddress(targetId)) as Node?;
  if (node is Element) {
    final controller = ctx.getController() ?? devtoolsService.controller;
    if (controller != null) {
      try {
        controller.view.removeAttribute(node.pointer!, name);
      } catch (_) {
        node.removeAttribute(name);
      }
    } else {
      node.removeAttribute(name);
    }
  }
  sendToFrontend(id, null);
}