Storage & Networking – CookieJar zu document.cookie, Storage Spec, Cache API #125

Open
opened 2026-06-20 08:19:58 +00:00 by Artur · 0 comments
Owner

Gap

Wir haben CookieJar, Origin-LocalStorage/SessionStorage, und instrumentierte fetch/XHR/WebSocket. Aber die Integration in die DOM Spec APIs fehlt oder ist unvollstaendig.

Was fehlt

  • Aktuell: nur via CookieJar, NICHT via document.cookie getter/setter
  • document.cookie (getter) - Muss alle Cookies als semicolon-separierten String retournieren
  • document.cookie = "key=value; path=/; domain=...; max-age=..." - Setter muss Cookie parsen und in CookieJar speichern
  • Cookie-Attribute: name, value, path, domain, max-age/expires, secure, httponly, samesite
  • Cookie-Jar Integration: document.cookie nutzt den CookieJar der Page
  • Cookie Prefixes: __Secure-, __Host- Respektieren

2. Storage (localStorage/sessionStorage) - Spec Completeness

  • Aktuell: OriginLocalStorage / OriginSessionStorage funktionieren
  • Fehlende Spec-Items:
    • Storage.key(index) - muss null zurueckgeben wenn index out of range
    • Storage.length - lebt (bei clear/setItem/removeItem)
    • storage Event feuert bei Aenderungen (nur gleicher Origin, andere Tabs)
    • Storage Quota Exceeded (QuotaExceededError werfen bei vollem Speicher)

3. Cache API

  • window.caches - CacheStorage Interface
  • caches.open(name) - Promise
  • caches.has(name) / caches.keys() / caches.delete(name() / caches.match(request)
  • Cache Interface: put, match, matchAll, add, addAll, delete, keys
  • Aktuell: alles noop (return undefined). Brauchen: spec-korrekte Promises

4. Network: fetch() Headers Spec Compliance

  • Headers - aktuell globalThis.Headers
  • Brauchen: Headers.getSetCookie(), iteration, guard
  • Request / Response - spec-korrekte Properties (bodyUsed, clone(), arrayBuffer(), etc.)

5. Network: CookieJar Spec Integration

  • SameSite Cookie Handling (Lax, Strict, None)
  • Cookie Priority
  • Cookie Path Matching
  • Cookie Domain Matching
  • Cookie Expiry Handling (Session vs Persistent)

Labels

feature, html-spec

Architektur

  • document.cookie: getter/setter in OwnDocument (src/dom/node.ts) via CookieJar-Referenz
  • CookieJar in src/network/cookies.ts erweitern
  • Cache API: src/fakes/cache.ts (neu) oder in storage/
  • Storage Events: integrieren mit OwnWindow Event-Dispatch

Tests

  • document.cookie = ... / document.cookie (Roundtrip)
  • Cookie Attribute Parsing
  • Storage.length live-updates
  • Cache API Promises
## Gap Wir haben CookieJar, Origin-LocalStorage/SessionStorage, und instrumentierte fetch/XHR/WebSocket. Aber die Integration in die DOM Spec APIs fehlt oder ist unvollstaendig. ## Was fehlt ### 1. document.cookie - Aktuell: nur via CookieJar, NICHT via document.cookie getter/setter - `document.cookie` (getter) - Muss alle Cookies als semicolon-separierten String retournieren - `document.cookie = "key=value; path=/; domain=...; max-age=..."` - Setter muss Cookie parsen und in CookieJar speichern - Cookie-Attribute: name, value, path, domain, max-age/expires, secure, httponly, samesite - Cookie-Jar Integration: document.cookie nutzt den CookieJar der Page - Cookie Prefixes: __Secure-, __Host- Respektieren ### 2. Storage (localStorage/sessionStorage) - Spec Completeness - Aktuell: OriginLocalStorage / OriginSessionStorage funktionieren - Fehlende Spec-Items: - Storage.key(index) - muss null zurueckgeben wenn index out of range - Storage.length - lebt (bei clear/setItem/removeItem) - `storage` Event feuert bei Aenderungen (nur gleicher Origin, andere Tabs) - Storage Quota Exceeded (QuotaExceededError werfen bei vollem Speicher) ### 3. Cache API - `window.caches` - CacheStorage Interface - `caches.open(name)` - Promise<Cache> - `caches.has(name)` / `caches.keys()` / `caches.delete(name()` / `caches.match(request)` - `Cache` Interface: put, match, matchAll, add, addAll, delete, keys - Aktuell: alles noop (return undefined). Brauchen: spec-korrekte Promises ### 4. Network: fetch() Headers Spec Compliance - `Headers` - aktuell globalThis.Headers - Brauchen: Headers.getSetCookie(), iteration, guard - `Request` / `Response` - spec-korrekte Properties (bodyUsed, clone(), arrayBuffer(), etc.) ### 5. Network: CookieJar Spec Integration - SameSite Cookie Handling (Lax, Strict, None) - Cookie Priority - Cookie Path Matching - Cookie Domain Matching - Cookie Expiry Handling (Session vs Persistent) ## Labels feature, html-spec ## Architektur - document.cookie: getter/setter in OwnDocument (src/dom/node.ts) via CookieJar-Referenz - CookieJar in src/network/cookies.ts erweitern - Cache API: src/fakes/cache.ts (neu) oder in storage/ - Storage Events: integrieren mit OwnWindow Event-Dispatch ## Tests - document.cookie = ... / document.cookie (Roundtrip) - Cookie Attribute Parsing - Storage.length live-updates - Cache API Promises
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
glow-all/true-headless-browser#125
No description provided.