Skip to content

Commit fac46d9

Browse files
committed
Redo resolveNode
1 parent c31e2d9 commit fac46d9

File tree

1 file changed

+16
-49
lines changed

1 file changed

+16
-49
lines changed

src/cdp/domains/dom.zig

Lines changed: 16 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -166,61 +166,28 @@ fn resolveNode(cmd: anytype) !void {
166166
fn describeNode(cmd: anytype) !void {
167167
const params = (try cmd.params(struct {
168168
nodeId: ?Node.Id = null,
169-
backendNodeId: ?u32 = null,
170-
objectGroup: ?[]const u8 = null,
171-
executionContextId: ?u32 = null,
169+
backendNodeId: ?Node.Id = null,
170+
objectId: ?[]const u8 = null,
171+
depth: u32 = 1,
172+
pierce: bool = false,
172173
})) orelse return error.InvalidParams;
173-
174-
if (params.nodeId == null or params.backendNodeId != null or params.executionContextId != null) {
174+
if (params.backendNodeId != null or params.depth != 1 or params.pierce) {
175175
return error.NotYetImplementedParams;
176176
}
177177

178178
const bc = cmd.browser_context orelse return error.BrowserContextNotLoaded;
179-
const page = bc.session.currentPage() orelse return error.PageNotLoaded;
180-
const node = bc.node_registry.lookup_by_id.get(params.nodeId.?) orelse return error.UnknownNode;
181-
182-
// node._node is a *parser.Node we need this to be able to find its most derived type e.g. Node -> Element -> HTMLElement
183-
// So we use the Node.Union when retrieve the value from the environment
184-
const remote_object = try bc.inspector.getRemoteObject(
185-
page.scope,
186-
params.objectGroup orelse "",
187-
try dom_node.Node.toInterface(node._node),
188-
);
189-
defer remote_object.deinit();
190179

191-
const arena = cmd.arena;
192-
return cmd.sendResult(.{ .object = .{
193-
.type = try remote_object.getType(arena),
194-
.subtype = try remote_object.getSubtype(arena),
195-
.className = try remote_object.getClassName(arena),
196-
.description = try remote_object.getDescription(arena),
197-
.objectId = try remote_object.getObjectId(arena),
198-
} }, .{});
199-
200-
// const params = (try cmd.params(struct {
201-
// nodeId: ?Node.Id = null,
202-
// backendNodeId: ?Node.Id = null,
203-
// objectId: ?[]const u8 = null,
204-
// depth: u32 = 1,
205-
// pierce: bool = false,
206-
// })) orelse return error.InvalidParams;
207-
// if (params.backendNodeId != null or params.depth != 1 or params.pierce) {
208-
// return error.NotYetImplementedParams;
209-
// }
210-
211-
// const bc = cmd.browser_context orelse return error.BrowserContextNotLoaded;
212-
213-
// if (params.nodeId != null) {
214-
// const node = bc.node_registry.lookup_by_id.get(params.nodeId.?) orelse return error.NodeNotFound;
215-
// return cmd.sendResult(.{ .node = bc.nodeWriter(node, .{}) }, .{});
216-
// }
217-
// if (params.objectId != null) {
218-
// // Retrieve the object from which ever context it is in.
219-
// const parser_node = try bc.session.inspector.getNodePtr(cmd.arena, params.objectId.?);
220-
// const node = try bc.node_registry.register(@ptrCast(parser_node));
221-
// return cmd.sendResult(.{ .node = bc.nodeWriter(node, .{}) }, .{});
222-
// }
223-
// return error.MissingParams;
180+
if (params.nodeId != null) {
181+
const node = bc.node_registry.lookup_by_id.get(params.nodeId.?) orelse return error.NodeNotFound;
182+
return cmd.sendResult(.{ .node = bc.nodeWriter(node, .{}) }, .{});
183+
}
184+
if (params.objectId != null) {
185+
// Retrieve the object from which ever context it is in.
186+
const parser_node = try bc.inspector.getNodePtr(cmd.arena, params.objectId.?);
187+
const node = try bc.node_registry.register(@ptrCast(parser_node));
188+
return cmd.sendResult(.{ .node = bc.nodeWriter(node, .{}) }, .{});
189+
}
190+
return error.MissingParams;
224191
}
225192

226193
const testing = @import("../testing.zig");

0 commit comments

Comments
 (0)