From 2221d0cb6fa59c38b48609788eaa7273dae103e4 Mon Sep 17 00:00:00 2001 From: Pierre Tachoire Date: Sat, 6 Sep 2025 18:00:27 +0200 Subject: [PATCH] cdp: send the chrome's error on missing node --- src/cdp/domains/dom.zig | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/cdp/domains/dom.zig b/src/cdp/domains/dom.zig index c482d90d..1e72177e 100644 --- a/src/cdp/domains/dom.zig +++ b/src/cdp/domains/dom.zig @@ -208,7 +208,9 @@ fn querySelector(cmd: anytype) !void { const bc = cmd.browser_context orelse return error.BrowserContextNotLoaded; - const node = bc.node_registry.lookup_by_id.get(params.nodeId) orelse return error.UnknownNode; + const node = bc.node_registry.lookup_by_id.get(params.nodeId) orelse { + return cmd.sendError(-32000, "Could not find node with given id", .{}); + }; const selected_node = try css.querySelector( cmd.arena, @@ -235,7 +237,9 @@ fn querySelectorAll(cmd: anytype) !void { const bc = cmd.browser_context orelse return error.BrowserContextNotLoaded; - const node = bc.node_registry.lookup_by_id.get(params.nodeId) orelse return error.UnknownNode; + const node = bc.node_registry.lookup_by_id.get(params.nodeId) orelse { + return cmd.sendError(-32000, "Could not find node with given id", .{}); + }; const arena = cmd.arena; const selected_nodes = try css.querySelectorAll(arena, node._node, params.selector); @@ -554,16 +558,19 @@ test "cdp.dom: querySelector unknown search id" { _ = try ctx.loadBrowserContext(.{ .id = "BID-A", .html = "

1

2

" }); - try testing.expectError(error.UnknownNode, ctx.processMessage(.{ + try ctx.processMessage(.{ .id = 9, .method = "DOM.querySelector", .params = .{ .nodeId = 99, .selector = "" }, - })); - try testing.expectError(error.UnknownNode, ctx.processMessage(.{ + }); + try ctx.expectSentError(-32000, "Could not find node with given id", .{}); + + try ctx.processMessage(.{ .id = 9, .method = "DOM.querySelectorAll", .params = .{ .nodeId = 99, .selector = "" }, - })); + }); + try ctx.expectSentError(-32000, "Could not find node with given id", .{}); } test "cdp.dom: querySelector Node not found" {