@@ -94,6 +94,7 @@ fn performSearch(cmd: anytype) !void {
9494fn dispatchSetChildNodes (cmd : anytype , nodes : []* parser.Node ) ! void {
9595 const arena = cmd .arena ;
9696 const bc = cmd .browser_context orelse return error .BrowserContextNotLoaded ;
97+ const session_id = bc .session_id orelse return error .SessionIdNotLoaded ;
9798
9899 var parents : std .ArrayListUnmanaged (* parser .Node ) = .{};
99100 for (nodes ) | _n | {
@@ -125,35 +126,41 @@ fn dispatchSetChildNodes(cmd: anytype, nodes: []*parser.Node) !void {
125126 continue ;
126127 }
127128
129+ // Register the node.
130+ const node = try bc .node_registry .register (n );
128131 // If the node has no parent, it's the root node.
129132 // We don't dispatch event for it because we assume the root node is
130133 // dispatched via the DOM.getDocument command.
131- const p = try parser .nodeParentNode (n ) orelse break ;
132- // Register the node.
133- const node = try bc .node_registry .register (n );
134+ const p = try parser .nodeParentNode (n ) orelse continue ;
135+
134136 // Retrieve the parent from the registry.
135- const parent_node = bc .node_registry .lookup_by_node . get (p ) orelse unreachable ;
137+ const parent_node = try bc .node_registry .register (p );
136138
137139 try cmd .sendEvent ("DOM.setChildNodes" , .{
138140 .parentId = parent_node .id ,
139141 .nodes = .{bc .nodeWriter (node , .{})},
140142 }, .{
141- .session_id = bc . session_id .? ,
143+ .session_id = session_id ,
142144 });
143145 }
144146
145147 // now dispatch the event for the node list.
146148 for (nodes ) | n | {
147- const node = bc .node_registry .lookup_by_node .get (n ) orelse unreachable ;
149+ // Register the node.
150+ const node = try bc .node_registry .register (n );
151+ // If the node has no parent, it's the root node.
152+ // We don't dispatch event for it because we assume the root node is
153+ // dispatched via the DOM.getDocument command.
148154 const p = try parser .nodeParentNode (n ) orelse continue ;
155+
149156 // Retrieve the parent from the registry.
150- const parent_node = bc .node_registry .lookup_by_node . get (p ) orelse unreachable ;
157+ const parent_node = try bc .node_registry .register (p );
151158
152159 try cmd .sendEvent ("DOM.setChildNodes" , .{
153160 .parentId = parent_node .id ,
154161 .nodes = .{bc .nodeWriter (node , .{})},
155162 }, .{
156- .session_id = bc . session_id .? ,
163+ .session_id = session_id ,
157164 });
158165 }
159166}
0 commit comments