Skip to content

Commit aebc877

Browse files
authored
Merge pull request #900 from lightpanda-io/getDocument_depth
support `depth` parameter for DOM.getDocument
2 parents 5e74e17 + eef5f3f commit aebc877

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

src/cdp/Node.zig

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -565,13 +565,13 @@ test "cdp Node: Writer" {
565565
.localName = "div",
566566
.childNodeCount = 1,
567567
.parentId = 3,
568-
.children = &.{ .{
568+
.children = &.{.{
569569
.nodeId = 6,
570570
.localName = "a",
571571
.childNodeCount = 0,
572572
.parentId = 5,
573-
}}
574-
}
575-
} } }, json);
573+
}},
574+
} },
575+
} }, json);
576576
}
577577
}

src/cdp/domains/dom.zig

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,17 +60,19 @@ pub fn processMessage(cmd: anytype) !void {
6060

6161
// https://chromedevtools.github.io/devtools-protocol/tot/DOM/#method-getDocument
6262
fn 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

Comments
 (0)