@@ -60,17 +60,19 @@ pub fn processMessage(cmd: anytype) !void {
6060
6161// https://chromedevtools.github.io/devtools-protocol/tot/DOM/#method-getDocument
6262fn getDocument (cmd : anytype ) ! void {
63- // const params = (try cmd.params(struct {
64- // depth: ?u32 = null,
65- // pierce: ?bool = null,
66- // })) orelse return error.InvalidParams;
63+ const Params = struct {
64+ // CDP documentation implies that 0 isn't valid, but it _does_ work in Chrome
65+ depth : i32 = 3 ,
66+ pierce : bool = false ,
67+ };
68+ const params = try cmd .params (Params ) orelse Params {};
6769
6870 const bc = cmd .browser_context orelse return error .BrowserContextNotLoaded ;
6971 const page = bc .session .currentPage () orelse return error .PageNotLoaded ;
7072 const doc = parser .documentHTMLToDocument (page .window .document );
7173
7274 const node = try bc .node_registry .register (parser .documentToNode (doc ));
73- return cmd .sendResult (.{ .root = bc .nodeWriter (node , .{}) }, .{});
75+ return cmd .sendResult (.{ .root = bc .nodeWriter (node , .{ . depth = params . depth }) }, .{});
7476}
7577
7678// https://chromedevtools.github.io/devtools-protocol/tot/DOM/#method-performSearch
@@ -451,7 +453,7 @@ fn requestChildNodes(cmd: anytype) !void {
451453
452454 try cmd .sendEvent ("DOM.setChildNodes" , .{
453455 .parentId = node .id ,
454- .nodes = bc .nodeWriter (node , .{.depth = params .depth , .exclude_root = true }),
456+ .nodes = bc .nodeWriter (node , .{ .depth = params .depth , .exclude_root = true }),
455457 }, .{
456458 .session_id = session_id ,
457459 });
0 commit comments