From 380bdcfa00d9d8ef133532922a5e59470dde7733 Mon Sep 17 00:00:00 2001 From: Halil Durak Date: Tue, 8 Sep 2026 15:00:13 +0300 Subject: [PATCH] change how Lax allowance computed (more RFC 2625bis compliance) Specifically to distinguish cross-site iframe navigation from top-level navigation, this PR reworks how `SameSite=Lax` moved. Since we're not checking if its a navigation alone now, the field for it is also renamed to `lax_allowed`. --- src/browser/Frame.zig | 3 + src/browser/tests/net/websocket.html | 2 +- src/browser/webapi/Document.zig | 2 +- src/browser/webapi/WebDriver.zig | 2 +- src/browser/webapi/net/WebSocket.zig | 2 +- src/browser/webapi/storage/Cookie.zig | 183 ++++++++++++++++++--- src/browser/webapi/storage/CookieStore.zig | 4 +- src/network/HttpClient.zig | 23 ++- src/network/http.zig | 9 + src/server/cdp/domains/storage.zig | 2 +- 10 files changed, 203 insertions(+), 29 deletions(-) diff --git a/src/browser/Frame.zig b/src/browser/Frame.zig index 2408ff511..7db401fd6 100644 --- a/src/browser/Frame.zig +++ b/src/browser/Frame.zig @@ -882,6 +882,9 @@ pub fn navigate(self: *Frame, request_url: [:0]const u8, opts: NavigateOpts) !vo .skip_cache = self.parent == null, .throttle = self.parent == null, .origin = self.origin, + // Our own url is already the destination, so the owner's site for + // cookies would say "same-site" for any top-level navigation. + .cookie_origin = opts.initiator_url, .resource_type = .document, .request_mode = .navigate, .credentials_mode = .include, diff --git a/src/browser/tests/net/websocket.html b/src/browser/tests/net/websocket.html index 052c928ac..b97449328 100644 --- a/src/browser/tests/net/websocket.html +++ b/src/browser/tests/net/websocket.html @@ -737,7 +737,7 @@