diff --git a/src/browser/storage/cookie.zig b/src/browser/storage/cookie.zig index c76ba308..a73c9448 100644 --- a/src/browser/storage/cookie.zig +++ b/src/browser/storage/cookie.zig @@ -32,7 +32,7 @@ pub const Jar = struct { self.cookies.deinit(self.allocator); } - pub fn clear(self: *Jar) void { + pub fn clearRetainingCapacity(self: *Jar) void { for (self.cookies.items) |c| { c.deinit(); } diff --git a/src/cdp/domains/network.zig b/src/cdp/domains/network.zig index 7273a83b..f9754958 100644 --- a/src/cdp/domains/network.zig +++ b/src/cdp/domains/network.zig @@ -29,6 +29,7 @@ pub fn processMessage(cmd: anytype) !void { setCacheDisabled, setExtraHTTPHeaders, deleteCookies, + clearBrowserCookies, setCookie, setCookies, }, cmd.input.action) orelse return error.UnknownMethod; @@ -39,6 +40,7 @@ pub fn processMessage(cmd: anytype) !void { .setCacheDisabled => return cmd.sendResult(null, .{}), .setExtraHTTPHeaders => return setExtraHTTPHeaders(cmd), .deleteCookies => return deleteCookies(cmd), + .clearBrowserCookies => return clearBrowserCookies(cmd), .setCookie => return setCookie(cmd), .setCookies => return setCookies(cmd), } @@ -123,6 +125,15 @@ fn deleteCookies(cmd: anytype) !void { return cmd.sendResult(null, .{}); } +fn clearBrowserCookies(cmd: anytype) !void { + _ = (try cmd.params(struct {})) orelse return error.InvalidParams; + + const bc = cmd.browser_context orelse return error.BrowserContextNotLoaded; + bc.session.cookie_jar.clearRetainingCapacity(); + + return cmd.sendResult(null, .{}); +} + const SameSite = enum { Strict, Lax,