From 80c309aa695e7430d159b583ed654323f76dde55 Mon Sep 17 00:00:00 2001 From: jnMetaCode <1394485448@qq.com> Date: Mon, 16 Mar 2026 17:07:56 +0800 Subject: [PATCH] fix(cdp): add noop Emulation.setUserAgentOverride to prevent Playwright crash Playwright calls Emulation.setUserAgentOverride when creating a browser context with a custom user agent. Without this handler, Lightpanda returns UnknownMethod which crashes the Playwright driver. Add a noop handler matching the existing pattern for other Emulation methods (setDeviceMetricsOverride, setEmulatedMedia, etc.) so the CDP handshake can proceed. Fixes #1436 Signed-off-by: JiangNan <1394485448@qq.com> --- src/cdp/domains/emulation.zig | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/cdp/domains/emulation.zig b/src/cdp/domains/emulation.zig index dd94df3e..ae1f62c2 100644 --- a/src/cdp/domains/emulation.zig +++ b/src/cdp/domains/emulation.zig @@ -24,6 +24,7 @@ pub fn processMessage(cmd: anytype) !void { setFocusEmulationEnabled, setDeviceMetricsOverride, setTouchEmulationEnabled, + setUserAgentOverride, }, cmd.input.action) orelse return error.UnknownMethod; switch (action) { @@ -31,6 +32,7 @@ pub fn processMessage(cmd: anytype) !void { .setFocusEmulationEnabled => return setFocusEmulationEnabled(cmd), .setDeviceMetricsOverride => return setDeviceMetricsOverride(cmd), .setTouchEmulationEnabled => return setTouchEmulationEnabled(cmd), + .setUserAgentOverride => return setUserAgentOverride(cmd), } } @@ -64,3 +66,8 @@ fn setDeviceMetricsOverride(cmd: anytype) !void { fn setTouchEmulationEnabled(cmd: anytype) !void { return cmd.sendResult(null, .{}); } + +// TODO: noop method +fn setUserAgentOverride(cmd: anytype) !void { + return cmd.sendResult(null, .{}); +}