LGTM1 On Tue, Mar 31, 2026 at 8:09 AM Chromestatus < [email protected]> wrote:
> *Contact emails* > [email protected], [email protected] > > *Explainer* > > https://gist.github.com/domenic/c5bd38339f33b49120ae11b3b4af5b9b#file-1-explainer-md > > *Specification* > > https://github.com/whatwg/html/commit/9c009049e4fa9dba638ef68ca502b781082bbb68 https://github.com/whatwg/html/pull/11600 is a slightly more convenient link. > > > *Summary* > This update 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 > <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EWorkers%22> > > *Web Feature ID* > shared-workers <https://webstatus.dev/features/shared-workers> > > *Motivation* > Many sites want to perform some work during document unloading. This > usually includes writing to storage, or sending information to severs. > Currently, if this work is done asynchronously (e.g., writing to IndexedDB > instead of localStorage, or using CompressionStream to compress the body > before sending a fetch()) the only way to do this is to use a service > worker. However, requiring a service worker for this simple case of > work-after-unload is heavyweight: the disk space, memory consumption, and > developer experience of managing the service worker registration and > lifecycle makes this hard to deploy. By using shared workers, all of these > downsides are avoided. > > *Initial public proposal* > https://github.com/whatwg/html/issues/10997 > > *TAG review* > https://github.com/w3ctag/design-reviews/issues/1089 > > *TAG review status* > Pending > > *Origin Trial Name* > Extended lifetime shared workers > > *Goals for experimentation* > None > > *Chromium Trial Name* > SharedWorkerExtendedLifetime > > *Origin Trial documentation link* > > https://gist.github.com/domenic/c5bd38339f33b49120ae11b3b4af5b9b#file-1-explainer-md > > *WebFeature UseCounter name* > kSharedWorkerExtendedLifetimeFeatureEnabled > > *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*: Positive ( > 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. > It'd be good to update that thread with OT results, as discussed. > > *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? > *No information provided* > > > *Debuggability* > The chrome://inspect/#workers page indicates when a SharedWorker is using > the extendedLifetime option. > > *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 > <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?* > Yes > > https://wpt.fyi/results/workers/tentative/SharedWorker-extendedLifetime.html > > *Flag name on about://flags* > *No information provided* > > *Finch feature name* > SharedWorkerExtendedLifetime > > *Rollout plan* > Will ship enabled for all users > > *Requires code in //chrome?* > False > > *Tracking bug* > https://issues.chromium.org/issues/400473072 > > *Estimated milestones* > Shipping on desktop 148 > Origin trial desktop first 139 > Origin trial desktop last 142 > Origin trial extension 1 end milestone 145 > Origin trial extension 2 end milestone 148 > Shipping on Android 148 > Shipping on WebView 148 > > *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=4686145547665408 > > *Links to previous Intent discussions* > Intent to Experiment: > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6862683f.170a0220.16d1bf.0122.GAE%40google.com > Intent to Extend Experiment 1: > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/68de2b1f.050a0220.58465.05c2.GAE%40google.com > Intent to Extend Experiment 2: > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/69704662.2b0a0220.2c228a.0283.GAE%40google.com > > > This intent message was generated by Chrome Platform Status > <https://chromestatus.com>. > > -- > You received this message because you are subscribed to the Google Groups > "blink-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/69cb650f.050a0220.201b21.039e.GAE%40google.com > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/69cb650f.050a0220.201b21.039e.GAE%40google.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOmohSLObwz9knNv4h77jicVDoc4KSzeig4um9tRGUCG3RdGpw%40mail.gmail.com.
