diff --git a/src/cdp/domains/network.zig b/src/cdp/domains/network.zig index c04ee33b..5b9a49df 100644 --- a/src/cdp/domains/network.zig +++ b/src/cdp/domains/network.zig @@ -19,6 +19,7 @@ const std = @import("std"); const lp = @import("lightpanda"); const Allocator = std.mem.Allocator; +const log = @import("../../log.zig"); const CdpStorage = @import("storage.zig"); @@ -117,7 +118,12 @@ fn deleteCookies(cmd: anytype) !void { path: ?[]const u8 = null, partitionKey: ?CdpStorage.CookiePartitionKey = null, })) orelse return error.InvalidParams; - if (params.partitionKey != null) return error.NotImplemented; + // Silently ignore partitionKey since we don't support partitioned cookies (CHIPS). + // This allows Puppeteer's page.setCookie() to work, which sends deleteCookies + // with partitionKey as part of its cookie-setting workflow. + if (params.partitionKey != null) { + log.warn(.not_implemented, "partition key", .{ .src = "deleteCookies" }); + } const bc = cmd.browser_context orelse return error.BrowserContextNotLoaded; const cookies = &bc.session.cookie_jar.cookies; diff --git a/src/cdp/domains/storage.zig b/src/cdp/domains/storage.zig index c7546ad6..e0f67456 100644 --- a/src/cdp/domains/storage.zig +++ b/src/cdp/domains/storage.zig @@ -128,7 +128,14 @@ pub const CdpCookie = struct { }; pub fn setCdpCookie(cookie_jar: *CookieJar, param: CdpCookie) !void { - if (param.priority != .Medium or param.sameParty != null or param.sourceScheme != null or param.partitionKey != null) { + // Silently ignore partitionKey since we don't support partitioned cookies (CHIPS). + // This allows Puppeteer's page.setCookie() to work, which may send cookies with + // partitionKey as part of its cookie-setting workflow. + if (param.partitionKey != null) { + log.warn(.not_implemented, "partition key", .{ .src = "setCdpCookie" }); + } + // Still reject unsupported features + if (param.priority != .Medium or param.sameParty != null or param.sourceScheme != null) { return error.NotImplemented; }