Intent to Experiment: Extended lifetime shared workers

140 views
Skip to first unread message

Chromestatus

unread,
Jun 30, 2025, 6:34:52 AMJun 30
to blin...@chromium.org, dom...@chromium.org, yyana...@chromium.org

Contact emails

dom...@chromium.org, yyana...@chromium.org

Explainer

https://gist.github.com/domenic/c5bd38339f33b49120ae11b3b4af5b9b#file-1-explainer-md

Specification

None

Summary

This adds a new option, `extendedLifetime: true`, to the `SharedWorker` constructor. This requests that the shared worker be kept alive even after all current clients have unloaded. The primary use case is to allow pages to perform asynchronous work that requires JavaScript after a page unloads, without needing to rely on a service worker.



Blink component

Blink>Workers

TAG review

https://github.com/w3ctag/design-reviews/issues/1089

TAG review status

Pending

Risks



Interoperability and Compatibility

We intend to specify that the lifetime timeout for these shared workers be extended in the same way as service workers. Because the exact timeout of service workers is left implementation-defined, it's possible that code using this new feature could be non-interoperable. However, this has so far not proved to be a major problem in practice for service workers.



Gecko: No signal (https://github.com/mozilla/standards-positions/issues/1227) Some unofficial tentative positive signals and engagement in the proposal issue.

WebKit: No signal (https://github.com/WebKit/standards-positions/issues/492) Some unofficial tentative negative signals in the proposal issue.

Web developers: Positive The problem of wanting to perform asynchronous work during unload is well-known, with the service worker workaround currently deployed, including by Google properties.

Other signals:

WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?

None



Goals for experimentation



Ongoing technical constraints

None



Debuggability

No special support beyond DevTools' existing shared worker inspection support.



Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?

No

Shared workers are not yet supported on Android and Android WebView. However, we are concurrently working on enabling them there, and when we do, this feature will also be supported.



Is this feature fully tested by web-platform-tests?

Yes

https://wpt.fyi/results/workers/tentative/SharedWorker-extendedLifetime.html



Flag name on about://flags

None

Finch feature name

SharedWorkerExtendedLifetime

Requires code in //chrome?

False

Tracking bug

https://issues.chromium.org/issues/400473072

Estimated milestones

Origin trial desktop first 139
Origin trial desktop last 142


Anticipated spec changes

Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (e.g. links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (e.g., changing to naming or structure of the API in a non-backward-compatible way).

We are currently discussing some details in preparation for specification. The exact nature of how the lifetime extension works with regard to non-window clients, particularly, has only recently reached a tentative conclusion.

Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5138641357373440?gate=5133028405542912

This intent message was generated by Chrome Platform Status.

Yoav Weiss (@Shopify)

unread,
Jul 2, 2025, 10:55:48 AMJul 2
to blink-dev, Chromestatus, Domenic Denicola, Yoshisato Yanagisawa
LGTM to experiment 139-142 inclusive
Reply all
Reply to author
Forward
0 new messages