From 88f768764637fb66c8dd84ae9b098a5c75e82529 Mon Sep 17 00:00:00 2001 From: Pierre Tachoire Date: Wed, 30 Apr 2025 09:19:59 +0200 Subject: [PATCH] cdp: dispatch DOM.setChildNodes on performSearch --- src/cdp/domains/dom.zig | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/cdp/domains/dom.zig b/src/cdp/domains/dom.zig index ceb9bc93..7353b19b 100644 --- a/src/cdp/domains/dom.zig +++ b/src/cdp/domains/dom.zig @@ -76,6 +76,23 @@ fn performSearch(cmd: anytype) !void { const search = try bc.node_search_list.create(list.nodes.items); + // dispatch setChildNodesEvents to inform the client of the subpart of node + // tree covering the results. + for (list.nodes.items) |n| { + // retrieve the node's parent + if (try parser.nodeParentNode(n)) |p| { + // Register the parent and send the node. + const parent_node = try bc.node_registry.register(p); + const node = bc.node_registry.lookup_by_node.get(n) orelse unreachable; + // Should-we return one DOM.setChildNodes event per parentId + // containing all its children in the nodes array? + try cmd.sendEvent("DOM.setChildNodes", .{ + .parentId = parent_node.id, + .nodes = .{bc.nodeWriter(node, .{})}, + }, .{}); + } + } + return cmd.sendResult(.{ .searchId = search.name, .resultCount = @as(u32, @intCast(search.node_ids.len)),