Fix Firefox cookie expiry conversion for Playwright

Some Firefox cookies store expiry in milliseconds instead of seconds.
Detect values beyond year 2100 and convert to seconds. Also map
zero/negative expiry to -1 for Playwright session cookies.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-13 13:09:15 +02:00
parent 6cec04bb20
commit aac616a37c
4 changed files with 25 additions and 4 deletions
+12 -1
View File
@@ -272,12 +272,23 @@ export function toPlaywrightCookie(cookie: FirefoxCookie): {
httpOnly: boolean;
sameSite: 'Strict' | 'Lax' | 'None';
} {
// Firefox uses 0 for session cookies; Playwright requires -1 or positive unix timestamp (seconds).
// Some Firefox cookies store expiry in milliseconds instead of seconds — detect and convert.
// Any expiry > year 2100 in seconds (4102444800) is likely milliseconds.
let expires = cookie.expires;
if (expires > 4102444800) {
expires = Math.floor(expires / 1000);
}
if (expires <= 0) {
expires = -1;
}
return {
name: cookie.name,
value: cookie.value,
domain: cookie.domain,
path: cookie.path,
expires: cookie.expires,
expires,
secure: cookie.secure,
httpOnly: cookie.httpOnly,
sameSite: cookie.sameSite,