[Bug]: TimezoneId is not applied to service workers

Aperta
#43,983 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
64/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
javascript, playwright, typescript

Direzione di ricerca

Read packages/playwright-core/src/server/chromium/crPage.ts around the timezone setup and compare it with service worker startup in packages/playwright-core/src/server/chromium/crServiceWorker.ts. Start by reproducing the issue with the linked minimal test, then find or add a regression test covering a worker started without an open page. Done when the worker uses the configured timezoneId from its first statement and the regression test passes.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Version

1.65.0 (latest release tested)

Steps to reproduce

Minimal reproduction, using only Playwright and a minimal Manifest V3 extension.

git clone --branch service-worker-timezone --single-branch https://github.com/vitalets/playwright-issues.git
cd playwright-issues
npm ci
npx playwright install chromium
# Adjust timezoneId in test/timezone.spec.ts if needed.
npm test

Choose a timezoneId different from your system timezone. The example uses Europe/Madrid; if your system already uses Madrid, change the timezoneId variable in test/timezone.spec.ts to Asia/Tokyo (no other changes are needed). Matching timezones mask the bug.

The test verifies the configured timezone in an ordinary page, then loads an extension whose first statement records its worker's timezone and parses 2030-01-01T23:00. No extension page is opened, and no timezone environment variable is set.

Expected behavior

The service worker uses the configured timezoneId from its first statement. Its timezone and parsed date match the page's values.

Actual behavior

The page uses the configured timezone, but the worker retains the system timezone. On my Madrid-configured machine, changing the example to Asia/Tokyo produces:

- "timezone": "Asia/Tokyo"
+ "timezone": "Europe/Madrid"
- "localDate": "2030-01-01T14:00:00.000Z"
+ "localDate": "2030-01-01T22:00:00.000Z"
Additional context

Reproduced with bundled Chromium 158.0.8127.18 on macOS. No clock mocking or third-party helpers are involved.

Both web extensions and regular websites are affected:

  • Web extension: the linked reproduction loads an extension without opening an extension page. Its worker starts with the system timezone instead of the configured timezone.
  • Regular website: in a separate local experiment, I registered a service worker, closed the persistent browser context, reopened the same profile with the same timezone setting, and started the registered worker using CDP ServiceWorker.startWorker, without reopening the site. Its first statement also recorded the browser default timezone instead of the configured timezone.

Initial registration while the website page was open used Madrid correctly. An open page can mask the problem when its timezone override affects the worker's shared renderer process.

Page initialization applies the context's timezoneId, while service-worker initialization resumes execution without applying it.

Environment

Relevant output from npx envinfo --preset playwright:

System:
  OS: macOS 26.6.2
  CPU: (10) arm64 Apple M1 Pro
Binaries:
  Node: 24.16.0
  npm: 11.21.1
npmPackages:
  @playwright/test: 1.65.0 => 1.65.0
Lingua principale
TypeScript
Stelle
99.1k
Fork
6.8k
Merge medio
17h 6m
PR unite (30g)
306

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di microsoft/playwright

Tutte le issue di microsoft/playwright

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.