On 3/25/26 10:33 p.m., Chromestatus wrote:
*Contact emails*
[email protected], [email protected]
*Specification*
https://html.spec.whatwg.org/multipage/workers.html#shared-workers-and-the-sharedworker-interface
*Summary*
For a long time, SharedWorker has been disabled on Android due to
concerns about its unpredictable process lifecycle. We believed that
SharedWorker instances might terminate unexpectedly, without noticing
to users or web developers, which we considered unacceptable. However,
a recent discussion on GitHub
(https://github.com/whatwg/html/issues/11205) suggests that the
unpredictable nature of SharedWorker's process lifecycle might not be
as significant an issue as we once thought. Based on this, we plan to
re-enable SharedWorker on Android while simultaneously investigating
this behavior to ensure a stable and reliable experience.
*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*
The long-standing demand for SharedWorker support on Android stems
from several needs expressed by web developers: - Resource Sharing and
Efficiency: Developers aim to share a single WebSocket or Server-Sent
Events (SSE) connection across multiple tabs, thereby conserving
resources. - Persistent Resource Management: There's a strong desire
to share and persist resources across tabs, particularly for
technologies like WASM-based SQLite. - Closing a Feature Gap: It has
been noted that other major mobile browsers, including Safari on iOS
and Firefox on Android, already support SharedWorker, making Chrome on
Android the last major browser to address this gap.
*Initial public proposal*
/No information provided/
*TAG review*
/No information provided/
*TAG review status*
Not applicable
*Origin Trial Name*
SharedWorker on Android
*Goals for experimentation*
The goal is to evaluate the real-world impact of Android's process
lifecycle on SharedWorker stability. Unlike on desktop, SharedWorker
instances on Android can be terminated unexpectedly by the operating
system due to memory pressure. This trial allows us to release the
feature to developers who understand this risk and can provide crucial
feedback. Specifically, we aim to measure: 1. The frequency of
unexpected SharedWorker terminations in real-world scenarios. 2.
Whether the current API is sufficient for developers to handle such
terminations gracefully. 3. The necessity of potential spec-level
countermeasures, as discussed in
https://github.com/whatwg/html/issues/11205, to bridge this behavioral
gap between mobile and desktop platforms and ensure a consistent
developer experience. The insights from this experiment will be
critical in determining the path to shipping SharedWorker on Android,
informing whether it can be enabled by default or if further
mitigation work is required.
It looks like this was left from a previous intent to experiment - but
could you summarize your findings from the experiment?
*Chromium Trial Name*
SharedWorkerOnAndroid
*Origin Trial documentation link*
https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker
*WebFeature UseCounter name*
kSharedWorkerStartOnAndroid
*Risks*
*Interoperability and Compatibility*
While Chrome has been the sole major browser not to offer
SharedWorker, this change aims to close that gap. However, unlike on
desktop, Android's unpredictable process lifecycle presents a unique
risk. SharedWorker instances might terminate unexpectedly, for
example, when a Chrome app is moved to the background and then
foregrounded. This inherent uncertainty in the Android environment is
a key risk when running SharedWorker.
/Gecko/: Shipped/Shipping
/WebKit/: Shipped/Shipping
/Web developers/: Positive As you can see in
http://crbug.com/40290702, SharedWorker support on Android has been a
long-awaited feature by web developers. This demonstrates a clear and
sustained demand from the developer community for this capability.
/Other signals/:
*Ergonomics*
n/a
*Activation*
n/a
*Security*
This feature is already shipped on desktop, and no new security risks
are introduced with the Android implementation.
*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*
This feature is already shipped on desktop, and no new debuggability
issues should be introduced with the Android implementation.
*Will this feature be supported on all six Blink platforms (Windows,
Mac, Linux, ChromeOS, Android, and Android WebView)?*
No
This aims to make SharedWorker supported on Android and Android
WebView. SharedWorker has been supported other than them.
*Is this feature fully tested by web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?*
Yes
SharedWorker tests under https://wpt.fyi/results/workers. e.g.
https://wpt.fyi/results/workers/SharedWorker-simple.html Note that
since wpt.fyi runs tests on Linux not Android for Chromium.
*DevTrial instructions*
https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker/SharedWorker
*Flag name on about://flags*
/No information provided/
*Finch feature name*
SharedWorker
*Rollout plan*
Will ship enabled for all users
*Requires code in //chrome?*
False
*Tracking bug*
https://crbug.com/40290702
*Measurement*
https://chromestatus.com/metrics/feature/timeline/popularity/5626
Content.SharedWorker.Host.DestructionSource to understand how
SharedWorkers finish (worker.close(), no clients, or worker gone
(possibly crash)).
*Estimated milestones*
Origin trial desktop first 140
Origin trial desktop last 144
Origin trial extension 1 end milestone 147
Shipping on Android 148
Origin trial Android first 140
Origin trial Android last 144
DevTrial on Android 140
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).
/No information provided/
*Link to entry on the Chrome Platform Status*
https://chromestatus.com/feature/6265472244514816?gate=5084552061779968
*Links to previous Intent discussions*
Intent to Experiment:
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6879be98.2b0a0220.72055.015d.GAE%40google.com
Intent to Extend Experiment 1:
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPNB-6VPRn%2BLp%2B61oJOc2e3fnY3F1LaZ2f2g_LTsA%3DXv49FzgQ%40mail.gmail.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/69c49b14.050a0220.2ec94.0888.GAE%40google.com
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/69c49b14.050a0220.2ec94.0888.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/ee6facdd-6b9c-432e-9681-729bf8fe9781%40chromium.org.