onSetAttributeValue method
void
onSetAttributeValue(
- int? id,
- Map<String, dynamic> params
)
Implementation
void onSetAttributeValue(int? id, Map<String, dynamic> params) {
// https://chromedevtools.github.io/devtools-protocol/tot/DOM/#method-setAttributeValue
if (DebugFlags.enableDevToolsLogs) {
devToolsLogger.finer('[DevTools] DOM.setAttributeValue nodeId=${params['nodeId']} name=${params['name']}');
}
final ctx = dbgContext;
if (ctx == null) {
sendToFrontend(id, null);
return;
}
int? nodeId = params['nodeId'];
String? name = params['name'];
String? value = params['value'];
if (nodeId == null || name == null || value == 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) {
// Prefer controller bridge to emit incremental attributeModified events
final controller = ctx.getController() ?? devtoolsService.controller;
if (controller != null) {
try {
controller.view.setAttribute(node.pointer!, name, value);
} catch (_) {
node.setAttribute(name, value);
}
} else {
node.setAttribute(name, value);
}
}
sendToFrontend(id, null);
}