)]}'
{"id": 6265472244514816, "name": "SharedWorker on Android", "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.\r\n\r\nHowever, 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.", "markdown_fields": [], "blink_components": ["Blink>Workers"], "star_count": 103, "search_tags": [], "created": {"by": "yyanagisawa@google.com", "when": "2025-06-27 03:15:50.898032"}, "updated": {"by": "yyanagisawa@google.com", "when": "2026-04-20 09:38:23.697122"}, "category": "Miscellaneous", "category_int": 2, "feature_notes": null, "web_feature": "shared-workers", "is_official_web_feature": true, "webdx_usecounter_enum": null, "enterprise_feature_categories": [], "enterprise_product_category": 0, "is_releasenotes_content_reviewed": false, "is_releasenotes_publish_ready": false, "stages": [{"id": 5187791667068928, "created": "2025-06-27 03:15:51.467767", "feature_id": 6265472244514816, "stage_type": 220, "display_name": null, "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": null, "announcement_url": null, "experiment_goals": null, "experiment_risks": null, "origin_trial_id": null, "origin_trial_feedback_url": null, "ot_action_requested": false, "ot_approval_buganizer_component": null, "ot_approval_buganizer_custom_field_id": null, "ot_approval_criteria_url": null, "ot_approval_group_email": null, "ot_chromium_trial_name": null, "ot_description": null, "ot_display_name": null, "ot_documentation_url": null, "ot_emails": [], "ot_feedback_submission_url": null, "ot_has_third_party_support": false, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": null, "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": null, "ot_webfeature_use_counter": null, "extensions": [], "experiment_extension_reason": null, "ot_stage_id": null, "finch_url": null, "rollout_milestone": null, "rollout_platforms": [], "rollout_details": null, "rollout_impact": 2, "rollout_stage_plan": null, "enterprise_policies": [], "desktop_first": null, "android_first": null, "ios_first": null, "webview_first": null, "desktop_last": null, "android_last": null, "ios_last": null, "webview_last": null}, {"id": 5159348447477760, "created": "2025-06-27 03:15:51.596032", "feature_id": 6265472244514816, "stage_type": 230, "display_name": null, "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": null, "announcement_url": null, "experiment_goals": null, "experiment_risks": null, "origin_trial_id": null, "origin_trial_feedback_url": null, "ot_action_requested": false, "ot_approval_buganizer_component": null, "ot_approval_buganizer_custom_field_id": null, "ot_approval_criteria_url": null, "ot_approval_group_email": null, "ot_chromium_trial_name": null, "ot_description": null, "ot_display_name": null, "ot_documentation_url": null, "ot_emails": [], "ot_feedback_submission_url": null, "ot_has_third_party_support": false, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": null, "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": null, "ot_webfeature_use_counter": null, "extensions": [], "experiment_extension_reason": null, "ot_stage_id": null, "finch_url": null, "rollout_milestone": null, "rollout_platforms": [], "rollout_details": null, "rollout_impact": 2, "rollout_stage_plan": null, "enterprise_policies": [], "desktop_first": null, "android_first": 140, "ios_first": null, "webview_first": null, "desktop_last": null, "android_last": null, "ios_last": null, "webview_last": null}, {"id": 5162366265982976, "created": "2025-06-27 03:15:51.654167", "feature_id": 6265472244514816, "stage_type": 250, "display_name": "SharedWorker on Android", "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": "https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6879be98.2b0a0220.72055.015d.GAE%40google.com", "announcement_url": null, "experiment_goals": "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.\n\nSpecifically, we aim to measure:\n1. The frequency of unexpected SharedWorker terminations in real-world scenarios.\n2. Whether the current API is sufficient for developers to handle such terminations gracefully.\n3. 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.\n\nThe 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.", "experiment_risks": "The risk for sites participating in this experiment is functional breakage upon the trial's conclusion. When the trial period ends, the SharedWorker API will be disabled on Chrome for Android, pending the results of the experiment. Consequently, any site that has integrated SharedWorker-based logic for its Android users will experience failures, as the SharedWorker constructor will no longer be available.", "origin_trial_id": "4101090410674257921", "origin_trial_feedback_url": null, "ot_action_requested": false, "ot_approval_buganizer_component": null, "ot_approval_buganizer_custom_field_id": null, "ot_approval_criteria_url": null, "ot_approval_group_email": null, "ot_chromium_trial_name": "SharedWorkerOnAndroid", "ot_description": "This trial enables SharedWorker on Chrome for Android, allowing resource sharing (e.g., a single WebSocket connection) across multiple tabs. We are seeking feedback on its stability under Android's unique process lifecycle to help us prepare for a full launch.", "ot_display_name": "SharedWorker on Android", "ot_documentation_url": "https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker", "ot_emails": [], "ot_feedback_submission_url": "https://crbug.com/40290702", "ot_has_third_party_support": true, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": "yyanagisawa@google.com", "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": 5626, "ot_webfeature_use_counter": "kSharedWorkerStartOnAndroid", "extensions": [{"id": 5119889562009600, "created": "2026-01-07 01:33:03.386077", "feature_id": 6265472244514816, "stage_type": 251, "display_name": null, "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": "https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPNB-6VPRn%2BLp%2B61oJOc2e3fnY3F1LaZ2f2g_LTsA%3DXv49FzgQ%40mail.gmail.com", "announcement_url": null, "experiment_goals": null, "experiment_risks": null, "origin_trial_id": null, "origin_trial_feedback_url": null, "ot_action_requested": true, "ot_approval_buganizer_component": null, "ot_approval_buganizer_custom_field_id": null, "ot_approval_criteria_url": null, "ot_approval_group_email": null, "ot_chromium_trial_name": null, "ot_description": null, "ot_display_name": null, "ot_documentation_url": null, "ot_emails": [], "ot_feedback_submission_url": null, "ot_has_third_party_support": false, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": "yyanagisawa@google.com", "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": null, "ot_webfeature_use_counter": null, "extensions": [], "experiment_extension_reason": "A major partner is about to start a large-scale experiment. We believe that extending the trial to cover their experiment window is crucial, as it will provide us with essential performance metrics and stability data at scale.\n\nThis extension will prevent any service disruption for the partner and ensure we have sufficient evidence to support the final launch.", "ot_stage_id": 5162366265982976, "finch_url": null, "rollout_milestone": null, "rollout_platforms": [], "rollout_details": null, "rollout_impact": 2, "rollout_stage_plan": null, "enterprise_policies": [], "desktop_first": null, "android_first": null, "ios_first": null, "webview_first": null, "desktop_last": 147, "android_last": null, "ios_last": null, "webview_last": null}], "experiment_extension_reason": null, "ot_stage_id": null, "finch_url": null, "rollout_milestone": null, "rollout_platforms": [], "rollout_details": null, "rollout_impact": 2, "rollout_stage_plan": 0, "enterprise_policies": [], "desktop_first": 140, "android_first": 140, "ios_first": null, "webview_first": null, "desktop_last": 144, "android_last": 144, "ios_last": null, "webview_last": null, "ot_setup_status": 6}, {"id": 5122101014691840, "created": "2025-06-27 03:15:51.968622", "feature_id": 6265472244514816, "stage_type": 260, "display_name": null, "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": "https://groups.google.com/a/chromium.org/d/msgid/blink-dev/69c49b14.050a0220.2ec94.0888.GAE%40google.com", "announcement_url": null, "experiment_goals": null, "experiment_risks": null, "origin_trial_id": null, "origin_trial_feedback_url": null, "ot_action_requested": false, "ot_approval_buganizer_component": null, "ot_approval_buganizer_custom_field_id": null, "ot_approval_criteria_url": null, "ot_approval_group_email": null, "ot_chromium_trial_name": null, "ot_description": null, "ot_display_name": null, "ot_documentation_url": null, "ot_emails": [], "ot_feedback_submission_url": null, "ot_has_third_party_support": false, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": null, "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": null, "ot_webfeature_use_counter": null, "extensions": [], "experiment_extension_reason": null, "ot_stage_id": null, "finch_url": null, "rollout_milestone": null, "rollout_platforms": [], "rollout_details": null, "rollout_impact": 2, "rollout_stage_plan": null, "enterprise_policies": [], "desktop_first": null, "android_first": 148, "ios_first": null, "webview_first": 148, "desktop_last": null, "android_last": null, "ios_last": null, "webview_last": null}], "accurate_as_of": "2026-04-20 09:38:23.697122", "creator_email": "yyanagisawa@google.com", "updater_email": "yyanagisawa@google.com", "owner_emails": ["yyanagisawa@google.com", "domenic@chromium.org"], "editor_emails": [], "cc_emails": [], "spec_mentor_emails": [], "unlisted": false, "deleted": false, "editors": [], "cc_recipients": [], "spec_mentors": [], "creator": "yyanagisawa@google.com", "feature_type": "Chromium catches up", "feature_type_int": 1, "intent_stage": "None", "intent_stage_int": 0, "active_stage_id": 5122101014691840, "bug_url": "https://crbug.com/40290702", "launch_bug_url": null, "new_crbug_url": "https://bugs.chromium.org/p/chromium/issues/entry?components=Blink>Workers&blocking=40290702&cc=yyanagisawa@google.com,domenic@chromium.org", "screenshot_links": [], "first_enterprise_notification_milestone": 139, "enterprise_impact": 1, "breaking_change": false, "confidential": false, "shipping_year": 2026, "flag_name": null, "finch_name": "SharedWorker", "non_finch_justification": null, "ongoing_constraints": "None.", "rollout_plan": 0, "rollout_plan_displayname": "Will ship enabled for all users", "motivation": "The long-standing demand for SharedWorker support on Android stems from several needs expressed by web developers:\n- Resource Sharing and Efficiency: Developers aim to share a single WebSocket or Server-Sent Events (SSE) connection across multiple tabs, thereby conserving resources.\n- Persistent Resource Management: There's a strong desire to share and persist resources across tabs, particularly for technologies like WASM-based SQLite.\n- 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.", "devtrial_instructions": "https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker/SharedWorker", "activation_risks": "n/a", "measurement": "https://chromestatus.com/metrics/feature/timeline/popularity/5626\n\nContent.SharedWorker.Host.DestructionSource to understand how SharedWorkers finish (worker.close(), no clients, or worker gone (possibly crash)).", "availability_expectation": null, "adoption_expectation": null, "adoption_plan": null, "initial_public_proposal_url": null, "explainer_links": [], "requires_embedder_support": false, "spec_link": "https://html.spec.whatwg.org/multipage/workers.html#shared-workers-and-the-sharedworker-interface", "api_spec": true, "automation_spec": false, "interop_compat_risks": "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.", "all_platforms": false, "all_platforms_descr": "This aims to make SharedWorker supported on Android and Android WebView.  SharedWorker has been supported other than them.", "non_oss_deps": null, "anticipated_spec_changes": null, "security_risks": "This feature is already shipped on desktop, and no new security risks are introduced with the Android implementation.", "ergonomics_risks": "n/a", "wpt": true, "wpt_descr": "SharedWorker tests under https://wpt.fyi/results/workers. e.g. https://wpt.fyi/results/workers/SharedWorker-simple.html\nNote that since wpt.fyi runs tests on Linux not Android for Chromium.", "webview_risks": null, "devrel_emails": ["devrel-chromestatus-all@google.com"], "debuggability": "This feature is already shipped on desktop, and no new debuggability issues should be introduced with the Android implementation.", "doc_links": [], "sample_links": [], "prefixed": null, "tags": [], "tag_review": null, "tag_review_status": "Not applicable", "tag_review_status_int": 4, "security_review_status": "Pending", "security_review_status_int": 1, "privacy_review_status": "Pending", "privacy_review_status_int": 1, "security_continuity_id": null, "security_launch_issue_id": null, "updated_display": null, "resources": {"samples": [], "docs": []}, "comments": null, "ff_views": 1, "safari_views": 1, "web_dev_views": 2, "browsers": {"chrome": {"bug": "https://crbug.com/40290702", "blink_components": ["Blink>Workers"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["yyanagisawa@google.com", "domenic@chromium.org"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2, "milestone_str": "Proposed"}, "announced": true, "desktop": null, "android": 148, "webview": 148, "ios": null}, "ff": {"view": {"url": null, "notes": null, "text": "Shipped/Shipping", "val": 1}}, "safari": {"view": {"url": null, "notes": null, "text": "Shipped/Shipping", "val": 1}}, "webdev": {"view": {"text": "Positive", "val": 2, "url": null, "notes": "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": {"view": {"text": null, "val": null, "url": null, "notes": null}}}, "standards": {"spec": "https://html.spec.whatwg.org/multipage/workers.html#shared-workers-and-the-sharedworker-interface", "maturity": {"text": "Final published standard: Recommendation, Living Standard, Candidate Recommendation, or similar final form", "short_text": "Published standard", "val": 5}}, "is_released": false, "is_enterprise_feature": false, "experiment_timeline": null, "ai_test_eval_report": null, "ai_test_eval_run_status": 4, "ai_test_eval_status_timestamp": "2026-09-20 07:30:05.373144"}