Inline worker code incompatibility with Playwright’s WebKit #19238
Labels
contribution welcome
feat: web workers
p3-minor-bug
An edge case that only affects very specific usage (priority)
Describe the bug
The current implementation of inline workers generated by Vite is not compatible with Playwright’s WebKit browser. Specifically, the
WorkerWrapper
code fails when trying to create workers using a Blob URL in WebKit, leading to errors during tests.The code in question is as follows:
The issue arises because the code attempts to immediately revoke the Blob URL in the
finally
block:This behavior invalidates the Blob URL before the worker can properly utilize it. Playwright’s WebKit (and likely other WebKit browsers) require the Blob URL to remain valid for the worker’s lifecycle, and prematurely revoking it causes failures. microsoft/playwright#33794 (comment)
What do you think, should it be fixed on the Vite side?
Reproduction
https://github.com/lozinsky/vite-inline-worker-playwright-webkit
Steps to reproduce
No response
System Info
System: OS: macOS 15.2 CPU: (8) arm64 Apple M1 Pro Memory: 189.03 MB / 16.00 GB Shell: 3.7.1 - /opt/homebrew/bin/fish Binaries: Node: 20.12.2 npm: 10.5.0 Browsers: Chrome: 131.0.6778.265 Safari: 18.2 npmPackages: vite: 6.0.8 => 6.0.8
Used Package Manager
npm
Logs
No response
Validations
The text was updated successfully, but these errors were encountered: