)]}'
{"features_by_type": {"Enabled by default": [{"id": 5459864205393920, "name": "CSS border-shape", "summary": "CSS border-shape enables creating non-rectangular borders, with any arbitrary shape (polygon, circle, shape(), etc).\r\n\r\nThough border-shape accepts the same shapes as clip-path, it is fundamentally different: border-shape defines the shape of the border, decorates it, and clips only the inside. \r\n\r\nborder-shape has two variants: one variant that strokes a shape, and another variant that fills between two shapes.", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": null, "blink_components": ["Blink>CSS"], "resources": {"samples": ["https://una.im/border-shape"], "docs": []}, "creator": "nrosenthal@chromium.org", "editors": [], "owners": ["nrosenthal@chromium.org", "sakhapov@chromium.org"], "created": {"by": "nrosenthal@chromium.org", "when": "2025-06-12 17:21:25.234192"}, "updated": {"by": "sakhapov@chromium.org", "when": "2026-03-10 09:30:43.215620"}, "accurate_as_of": "2026-03-03 21:11:46.105223", "standards": {"spec": "https://drafts.csswg.org/css-borders-4/#border-shape", "maturity": {"text": "Specification currently under development in a Working Group", "short_text": "Working draft", "val": 4}}, "browsers": {"chrome": {"bug": "https://issues.chromium.org/issues/370041145", "blink_components": ["Blink>CSS"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["nrosenthal@chromium.org", "sakhapov@chromium.org"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": "https://github.com/mozilla/standards-positions/issues/1365", "notes": null, "text": "No signal", "val": 5}}, "safari": {"view": {"url": "https://github.com/WebKit/standards-positions/issues/625", "notes": null, "text": "No signal", "val": 5}}, "webdev": {"view": {"text": "Positive", "val": 2, "url": "https://bsky.app/profile/una.im/post/3me56xpfksk2i", "notes": null}}, "other": {"view": {"notes": null}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [5143462151979008], "finch_urls": []}, {"id": 4841046007742464, "name": "CSS contrast-color()", "summary": "This function is used to meet contrast requirements for accessibility.\n\nThe contrast-color() function can be used anywhere in CSS where a color value is expected. It takes a color value argument, and returns either 'black' or 'white' depending on which of them gives the highest contrast against the color argument.\n", "feature_type_int": 1, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": null, "blink_components": ["Blink>CSS"], "resources": {"samples": [], "docs": []}, "creator": "futhark@chromium.org", "editors": [], "owners": ["futhark@chromium.org"], "created": {"by": "futhark@chromium.org", "when": "2026-01-20 09:02:17.249243"}, "updated": {"by": "futhark@chromium.org", "when": "2026-03-10 18:02:34.257352"}, "accurate_as_of": "2026-03-06 14:17:19.097967", "standards": {"spec": "https://drafts.csswg.org/css-color-5/#contrast-color", "maturity": {"text": "Specification currently under development in a Working Group", "short_text": "Working draft", "val": 4}}, "browsers": {"chrome": {"bug": "https://crbug.com/40142548", "blink_components": ["Blink>CSS"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["futhark@chromium.org"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": "https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/color_value/contrast-color#browser_compatibility", "notes": null, "text": "Shipped/Shipping", "val": 1}}, "safari": {"view": {"url": "https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/color_value/contrast-color#browser_compatibility", "notes": null, "text": "Shipped/Shipping", "val": 1}}, "webdev": {"view": {"text": "No signals", "val": 4, "url": null, "notes": null}}, "other": {"view": {"notes": null}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [6220868072112128], "finch_urls": []}, {"id": 5133099851317248, "name": "CSS update: decoupling of Width and Style properties", "summary": "Chrome 147 aligns with updated [CSS specifications](https://www.w3.org/TR/css-2025/) regarding the behavior of `border-width`, `outline-width`, and `column-rule-width` properties. Previously, if the corresponding `border-style`, `outline-style`, or `column-rule-style` was set to `none` or `hidden`, the computed width of these properties would be forced to `0px`, regardless of the specified value.\n\nWith this change, the computed values of `border-width`, `outline-width`, and `column-rule-width` will always reflect the author-specified values, independent of the `*-style` property. Additionally, the resolved values (as returned by `getComputedStyle()`) for `outline-width` and `column-rule-width` will also reflect the specified values.\n\nThe change aligns Chrome with Firefox and WebKit, which have already implemented this behavior.", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 2, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": 137, "blink_components": ["Blink>CSS"], "resources": {"samples": [], "docs": []}, "creator": "samomekarajr@microsoft.com", "editors": ["javiercon@microsoft.com"], "owners": ["samomekarajr@microsoft.com", "kbabbitt@microsoft.com"], "created": {"by": "samomekarajr@microsoft.com", "when": "2025-04-29 21:53:10.510234"}, "updated": {"by": "samomekarajr@microsoft.com", "when": "2026-04-22 16:07:59.730220"}, "accurate_as_of": "2026-04-22 16:07:59.730220", "standards": {"spec": "https://github.com/w3c/csswg-drafts/pull/11913/files", "maturity": {"text": null, "short_text": "Unknown status", "val": 0}}, "browsers": {"chrome": {"bug": "https://issues.chromium.org/issues/393631108", "blink_components": ["Blink>CSS"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["samomekarajr@microsoft.com", "kbabbitt@microsoft.com"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": "https://bugzilla.mozilla.org/show_bug.cgi?id=1998285", "notes": null, "text": "Shipped/Shipping", "val": 1}}, "safari": {"view": {"url": "https://bugs.webkit.org/show_bug.cgi?id=304940", "notes": null, "text": "Shipped/Shipping", "val": 1}}, "webdev": {"view": {"text": "No signals", "val": 4, "url": null, "notes": null}}, "other": {"view": {"notes": null}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [5073380814094336], "finch_urls": []}, {"id": 5194399398756352, "name": "CSSPseudoElement interface", "summary": "CSSPseudoElement interface is a way to represent a pseudo-element in JS.\n\nCSSPseudoElement is returned from Element.pseudo(type), where `type` is currently: ::after, ::before, ::marker.\nCSSPseudoElement is a proxy object that represents a pseudo-element, so, unlike a pseudo-element, CSSPseudoElement always exists.\n\nCSSPseudoElement has the following attributes/methods:\n- The type attribute is a string representing the type of the pseudo-element.\n- The element attribute is the ultimate originating element of the pseudo-element.\n- The parent attribute is the originating element of the pseudo-element (Either Element of CSSPseudoElement for nested pseudo-elements).\n- The pseudo(type) method to retrieve nested pseudo-elements.", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": null, "blink_components": ["Blink>CSS"], "resources": {"samples": [], "docs": []}, "creator": "sakhapov@chromium.org", "editors": [], "owners": ["sakhapov@chromium.org"], "created": {"by": "sakhapov@chromium.org", "when": "2025-07-10 13:06:36.983969"}, "updated": {"by": "sakhapov@chromium.org", "when": "2026-03-03 15:15:08.471569"}, "accurate_as_of": "2026-03-03 15:15:08.471569", "standards": {"spec": "https://www.w3.org/TR/css-pseudo-4/#CSSPseudoElement-interface", "maturity": {"text": "Specification currently under development in a Working Group", "short_text": "Working draft", "val": 4}}, "browsers": {"chrome": {"bug": "https://issues.chromium.org/issues/40639103", "blink_components": ["Blink>CSS"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["sakhapov@chromium.org"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": "https://github.com/mozilla/standards-positions/issues/1345", "notes": null, "text": "No signal", "val": 5}}, "safari": {"view": {"url": "https://github.com/WebKit/standards-positions/issues/607", "notes": null, "text": "No signal", "val": 5}}, "webdev": {"view": {"text": "Positive", "val": 2, "url": null, "notes": null}}, "other": {"view": {"notes": null}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [5138666024075264], "finch_urls": []}, {"id": 5109852273377280, "name": "Element-scoped view transitions", "summary": "Exposes element.startViewTransition() on arbitrary HTML elements.  The element establishes a scope for the transition, which means that the transition pseudo-elements are affected by ancestor clips and transforms, and multiple transitions on separate elements can run concurrently.", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": null, "blink_components": ["Blink>CSS"], "resources": {"samples": ["https://output.jsbin.com/runezug/quiet"], "docs": ["https://github.com/WICG/view-transitions/blob/main/scoped-transitions.md"]}, "creator": "skobes@chromium.org", "editors": ["vmpstr@chromium.org", "nrosenthal@chromium.org", "bramus@chromium.org", "flackr@chromium.org"], "owners": ["skobes@chromium.org", "kevers@chromium.org"], "created": {"by": "skobes@chromium.org", "when": "2025-02-11 19:44:57.949246"}, "updated": {"by": "skobes@chromium.org", "when": "2026-03-09 12:28:11.189761"}, "accurate_as_of": "2026-03-09 12:28:11.189761", "standards": {"spec": "https://drafts.csswg.org/css-view-transitions-2", "maturity": {"text": "Specification currently under development in a Working Group", "short_text": "Working draft", "val": 4}}, "browsers": {"chrome": {"bug": "https://issues.chromium.org/issues/394052227", "blink_components": ["Blink>CSS"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["skobes@chromium.org", "kevers@chromium.org"], "origintrial": false, "prefixed": false, "flag": false, "status": {"text": "In development", "val": 3}, "announced": false}, "ff": {"view": {"url": "https://github.com/mozilla/standards-positions/issues/1352", "notes": null, "text": "No signal", "val": 5}}, "safari": {"view": {"url": "https://github.com/WebKit/standards-positions/issues/611", "notes": null, "text": "No signal", "val": 5}}, "webdev": {"view": {"text": "Positive", "val": 2, "url": "https://github.com/w3c/csswg-drafts/issues/9890#issuecomment-1927179371", "notes": "Top feature request from surveyed web authors re. \"what is missing from View Transitions\"."}}, "other": {"view": {"notes": "\"I'm salivating.\" - https://bsky.app/profile/samwho.dev/post/3mf52aozscc24"}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [5092729262178304], "finch_urls": []}, {"id": 5202661416763392, "name": "JSON and style support for link rel=modulepreload", "summary": "Adds support for JSON and style module types as <link rel=\"modulepreload\"> destinations. <link rel=\"modulepreload\"> is already supported in Chromium (see https://chromestatus.com/feature/5762805915451392), but it currently only supports preloading script-like module scripts. This feature addresses a functionality gap, as JSON and CSS module scripts are supported in Chromium elsewhere but are not supported as <link rel=\"modulepreload\"> destinations. Style modules can be preloaded with <link rel=\"modulepreload\" as=\"style\" href=\"...\"> and JSON modules can be preloaded with <link rel=\"modulepreload\" as=\"json\" href=\"...\">.", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": null, "blink_components": ["Blink>DOM"], "resources": {"samples": [], "docs": []}, "creator": "kschmi@microsoft.com", "editors": [], "owners": ["kschmi@microsoft.com"], "created": {"by": "kschmi@microsoft.com", "when": "2026-01-09 00:02:39.336463"}, "updated": {"by": "kschmi@microsoft.com", "when": "2026-03-27 18:21:28.480592"}, "accurate_as_of": "2026-03-27 18:21:28.480592", "standards": {"spec": "https://github.com/whatwg/html/pull/11981", "maturity": {"text": "Specification currently under development in a Working Group", "short_text": "Working draft", "val": 4}}, "browsers": {"chrome": {"bug": "https://issues.chromium.org/issues/466888680", "blink_components": ["Blink>DOM"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["kschmi@microsoft.com"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": "https://github.com/mozilla/standards-positions/issues/1342", "notes": "https://bugzilla.mozilla.org/show_bug.cgi?id=2004751", "text": "No signal", "val": 5}}, "safari": {"view": {"url": "https://github.com/WebKit/standards-positions/issues/603", "notes": "https://bugs.webkit.org/show_bug.cgi?id=303761", "text": "No signal", "val": 5}}, "webdev": {"view": {"text": "No signals", "val": 4, "url": null, "notes": null}}, "other": {"view": {"notes": null}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [5142283303387136], "finch_urls": []}, {"id": 5172375182245888, "name": "Local Network Access restrictions on Service Worker WindowClient.navigate()", "summary": "Local Network Access (LNA) restrictions have been recently added in the last few months to restrict web sites from unilaterally making requests to local networks and local devices (https://chromestatus.com/feature/5152728072060928). This was added for Service Worker-initiated fetch requests, but was not done for navigations done by service workers through WindowClient.navigate\n\nThis launch closes this hole by adding LNA restrictions to WindowClient.navigate() calls, using the WindowClient as the initiator of the navigation to determine if the navigation is an LNA request.\n\nThis only applies if the WindowClient being navigated is a subframe; Chrome does not currently enforce any LNA restrictions on main frame navigations.", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": null, "blink_components": ["Blink > SecurityFeature > LocalNetworkAccess"], "resources": {"samples": [], "docs": []}, "creator": "hchao@chromium.org", "editors": ["cthomp@chromium.org", "dadrian@google.com", "yyanagisawa@chromium.org"], "owners": ["hchao@chromium.org"], "created": {"by": "hchao@chromium.org", "when": "2026-02-10 18:42:14.195186"}, "updated": {"by": "hchao@chromium.org", "when": "2026-03-16 17:23:28.202376"}, "accurate_as_of": "2026-03-16 17:23:28.202376", "standards": {"spec": null, "maturity": {"text": null, "short_text": "Unknown status", "val": 0}}, "browsers": {"chrome": {"bug": null, "blink_components": ["Blink > SecurityFeature > LocalNetworkAccess"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["hchao@chromium.org"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": "https://support.mozilla.org/en-US/kb/control-personal-device-local-network-permissions-firefox", "notes": null, "text": "Shipped/Shipping", "val": 1}}, "safari": {"view": {"url": null, "notes": null, "text": "No signal", "val": 5}}, "webdev": {"view": {"text": "No signals", "val": 4, "url": null, "notes": null}}, "other": {"view": {"notes": null}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [5189708814614528], "finch_urls": []}, {"id": 5197681148428288, "name": "Local network access restrictions for WebSockets", "summary": "Local Network Access(LNA) restrictions are being expanded to include WebSockets. WebSockets connections to local address will now start triggering permission prompts.\n\nAll of the current LNA enterprise policies will still apply to the LNA WebSockets restrictions (LocalNetworkAccessAllowedForUrls,\nLocalNetworkAccessBlockedForUrls, and LocalNetworkAccessRestrictionsTemporaryOptOut).\n\nMore information about LNA can be found at https://developer.chrome.com/blog/local-network-access\n\n", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": 141, "blink_components": ["Blink>SecurityFeature>LocalNetworkAccess"], "resources": {"samples": ["https://lna-testing.notyetsecure.com"], "docs": []}, "creator": "hchao@chromium.org", "editors": ["cthomp@chromium.org", "dadrian@google.com", "jdeblasio@chromium.org", "clamy@chromium.org"], "owners": ["hchao@chromium.org"], "created": {"by": "hchao@chromium.org", "when": "2025-09-03 17:34:43.070639"}, "updated": {"by": "hchao@chromium.org", "when": "2026-03-24 19:33:21.107840"}, "accurate_as_of": "2026-03-24 19:33:21.107840", "standards": {"spec": "https://wicg.github.io/local-network-access/#integration-with-websockets", "maturity": {"text": null, "short_text": "Unknown status", "val": 0}}, "browsers": {"chrome": {"bug": "https://crbug.com/421156866", "blink_components": ["Blink>SecurityFeature>LocalNetworkAccess"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["hchao@chromium.org"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": null, "notes": null, "text": "No signal", "val": 5}}, "safari": {"view": {"url": null, "notes": null, "text": "No signal", "val": 5}}, "webdev": {"view": {"text": "No signals", "val": 4, "url": null, "notes": null}}, "other": {"view": {"notes": null}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [5172173371211776], "finch_urls": []}, {"id": 5126430912544768, "name": "Local network access restrictions for WebTransport", "summary": "Restricts the ability to make requests to the user's local network using WebTransport, gated behind a permission prompt.\r\n\r\nA local network request is any request from a public website to a local IP address or loopback, or from a local website (e.g. intranet) to loopback. Gating the ability for websites to perform these requests behind a permission reduces the ability of sites to use these requests to fingerprint the user's local network.\r\n\r\nThis permission is restricted to secure contexts.\r\n\r\nThis work is adding to the Local Network Access Restrictions work here: https://chromestatus.com/feature/5152728072060928", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": 141, "blink_components": ["Blink>SecurityFeature>LocalNetworkAccess"], "resources": {"samples": ["https://lna-testing.notyetsecure.com"], "docs": []}, "creator": "hchao@chromium.org", "editors": ["cthomp@chromium.org", "dadrian@google.com", "jdeblasio@chromium.org", "clamy@chromium.org"], "owners": ["hchao@chromium.org"], "created": {"by": "hchao@chromium.org", "when": "2025-09-16 23:27:58.916116"}, "updated": {"by": "hchao@chromium.org", "when": "2026-03-24 19:33:14.271046"}, "accurate_as_of": "2026-03-24 19:33:14.271046", "standards": {"spec": "https://wicg.github.io/local-network-access/#integration-with-webtransport", "maturity": {"text": null, "short_text": "Unknown status", "val": 0}}, "browsers": {"chrome": {"bug": "https://issues.chromium.org/issues/421216834", "blink_components": ["Blink>SecurityFeature>LocalNetworkAccess"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["hchao@chromium.org"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": null, "notes": null, "text": "No signal", "val": 5}}, "safari": {"view": {"url": null, "notes": null, "text": "No signal", "val": 5}}, "webdev": {"view": {"text": "No signals", "val": 4, "url": null, "notes": null}}, "other": {"view": {"notes": null}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [5854635705368576], "finch_urls": []}, {"id": 4790090146643968, "name": "Math.sumPrecise", "summary": "A TC39 proposal to add a method to sum multiple values to JavaScript.\n\nAdd an iterable-taking `Math.sumPrecise` method which returns the sum of the values in the iterable using a more precise algorithm than naive summation.", "feature_type_int": 1, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": null, "blink_components": ["Blink>JavaScript>Language"], "resources": {"samples": [], "docs": []}, "creator": "olivf@google.com", "editors": ["rezvan@google.com"], "owners": ["olivf@google.com"], "created": {"by": "olivf@google.com", "when": "2026-01-19 12:40:17.479392"}, "updated": {"by": "olivf@google.com", "when": "2026-03-16 10:43:37.101208"}, "accurate_as_of": "2026-03-16 10:43:37.101208", "standards": {"spec": "https://github.com/tc39/proposal-math-sum", "maturity": {"text": "Specification currently under development in a Working Group", "short_text": "Working draft", "val": 4}}, "browsers": {"chrome": {"bug": "https://issues.chromium.org/u/1/issues/374310075", "blink_components": ["Blink>JavaScript>Language"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["olivf@google.com"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": "https://bugzilla.mozilla.org/show_bug.cgi?id=1943120", "notes": null, "text": "Shipped/Shipping", "val": 1}}, "safari": {"view": {"url": "https://bugs.webkit.org/show_bug.cgi?id=295806", "notes": null, "text": "Shipped/Shipping", "val": 1}}, "webdev": {"view": {"text": "No signals", "val": 4, "url": null, "notes": null}}, "other": {"view": {"notes": null}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [5132376793546752], "finch_urls": []}, {"id": 5179328935624704, "name": "Pseudo target on events", "summary": "Specific events are now extended to have `.pseudoTarget` that is either CSSPseudoElement (if interaction has been with pseudo-element) or null.\n\nThis allows to have more specific information on the event origin, e.g. that not just an ultimate originating element (Event.target) has been clicked, but more specifically that it was ::after. Note that the Event.target is unchanged so event only has extra info on pseudo-element interaction.\n\nThe events are UIEvent, AnimationEvent, TransitionEvent.\n\nmouseover, mouseout, mouseenter, mouseleave and their pointer* counterparts are not yet supported.", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": null, "blink_components": ["Blink>CSS"], "resources": {"samples": [], "docs": []}, "creator": "sakhapov@chromium.org", "editors": [], "owners": ["sakhapov@chromium.org"], "created": {"by": "sakhapov@chromium.org", "when": "2026-02-20 14:08:22.481553"}, "updated": {"by": "sakhapov@chromium.org", "when": "2026-03-23 09:23:23.405082"}, "accurate_as_of": "2026-03-23 09:23:23.405082", "standards": {"spec": "https://github.com/w3c/uievents/pull/413/changes", "maturity": {"text": "Specification currently under development in a Working Group", "short_text": "Working draft", "val": 4}}, "browsers": {"chrome": {"bug": "https://issues.chromium.org/issues/40639103", "blink_components": ["Blink>CSS"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["sakhapov@chromium.org"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": "https://github.com/mozilla/standards-positions/issues/1345", "notes": null, "text": "No signal", "val": 5}}, "safari": {"view": {"url": "https://github.com/WebKit/standards-positions/issues/607", "notes": null, "text": "No signal", "val": 5}}, "webdev": {"view": {"text": "No signals", "val": 4, "url": null, "notes": null}}, "other": {"view": {"notes": null}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [5088647714045952], "finch_urls": []}, {"id": 5157546589552640, "name": "Support path attribute on SVG <textpath> element", "summary": "This change adds support for the path attribute on the SVG <textPath> element, allowing authors to define text path geometry inline using SVG path data and reducing the need for separately defined <path> elements.\n\n<textPath> resolves its text path geometry using the following rules:\n\n1. If both path and href are present, geometry is resolved from the path attribute.\n2. If only the path attribute is present and parses successfully, the inline path definition is used.\n3. If the path attribute is absent or fails to parse, and an href attribute is provided, the referenced <path> element is used as a fallback.\n4. Existing href\u2011only behavior is preserved without change.\n\nThis implementation follows the SVG 2 specification\u2019s definition of the path attribute on <textPath>, and the resolution behavior is consistent with other browser engines, improving interoperability and standards compliance.\nNote: When both path and href are specified on <textPath>, path now takes precedence, per SVG 2 specification.", "feature_type_int": 1, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": null, "blink_components": ["Blink>SVG"], "resources": {"samples": [], "docs": []}, "creator": "viralipurbey@microsoft.com", "editors": [], "owners": ["viralipurbey@microsoft.com"], "created": {"by": "viralipurbey@microsoft.com", "when": "2026-01-27 06:34:46.415487"}, "updated": {"by": "viralipurbey@microsoft.com", "when": "2026-03-02 08:02:22.562626"}, "accurate_as_of": "2026-03-02 08:02:22.562626", "standards": {"spec": "https://svgwg.org/svg2-draft/text.html#TextPathElement", "maturity": {"text": "Final published standard: Recommendation, Living Standard, Candidate Recommendation, or similar final form", "short_text": "Published standard", "val": 5}}, "browsers": {"chrome": {"bug": "https://issues.chromium.org/issues/374010056", "blink_components": ["Blink>SVG"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["viralipurbey@microsoft.com"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": "https://bugzilla.mozilla.org/show_bug.cgi?id=1446617", "notes": null, "text": "Shipped/Shipping", "val": 1}}, "safari": {"view": {"url": "https://github.com/WebKit/standards-positions/issues/606", "notes": "", "text": "Closed Without a Position", "val": 5}}, "webdev": {"view": {"text": "Positive", "val": 2, "url": null, "notes": "One user has noted they are impacted by the CrBug."}}, "other": {"view": {"notes": null}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [5198418974736384], "finch_urls": []}, {"id": 6522328437620736, "name": "Timeline Named Range \"scroll\"", "summary": "This feature expands the set of named ranges of view timelines, adding a \"scroll\" range.\n\nThe Scroll-Driven Animations API introduced ViewTimelines along with named ranges which refer to portions of a ViewTimeline that define an animation's range[1].\n\nHowever, all the named ranges provided were restricted to the portion of the ViewTimeline where its subject is visible. It is useful for authors to be able to refer to the full extent of the scroll container underlying the timeline. This feature facilitates this by adding a named range of \"scroll\" to the existing set (\"entry\", \"exit\", \"cover\", \"contain\").\n\n[1] https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/animation-range", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": null, "blink_components": ["Blink>Animation"], "resources": {"samples": [], "docs": []}, "creator": "awogbemila@google.com", "editors": [], "owners": ["awogbemila@google.com"], "created": {"by": "awogbemila@google.com", "when": "2026-01-12 21:31:47.228159"}, "updated": {"by": "awogbemila@google.com", "when": "2026-03-02 14:18:35.971553"}, "accurate_as_of": "2026-03-02 14:18:35.971553", "standards": {"spec": "https://drafts.csswg.org/scroll-animations-1/#valdef-animation-timeline-range-scroll", "maturity": {"text": null, "short_text": "Unknown status", "val": 0}}, "browsers": {"chrome": {"bug": "https://crbug.com/41483848", "blink_components": ["Blink>Animation"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["awogbemila@google.com"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": "https://github.com/mozilla/standards-positions/issues/1341", "notes": null, "text": "No signal", "val": 5}}, "safari": {"view": {"url": "https://github.com/WebKit/standards-positions/issues/602", "notes": null, "text": "No signal", "val": 5}}, "webdev": {"view": {"text": "Positive", "val": 2, "url": "https://github.com/w3c/csswg-drafts/issues/9367#issuecomment-1730320477", "notes": null}}, "other": {"view": {"notes": null}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [5462509018546176], "finch_urls": []}, {"id": 6330376953921536, "name": "Update Device Memory API limits", "summary": "Update to a new set of possible values for the Device Memory API:\n- Android: 1, 2, 4, 8\n- Others: 2, 4, 8, 16, 32\nReplacing the old values of 0.25, 0.5, 1, 2, 4, 8 which have grown outdated.\n\nThis will reduce the fingerprinting risks at the lower end since device capabilities have improved since these were set.\n\nIt will also allow better usage and segmenting of high-end devices as requested by developers (https://github.com/w3c/device-memory/issues/50).", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": null, "blink_components": ["Blink>JavaScript>API"], "resources": {"samples": [], "docs": []}, "creator": "barrypollard@google.com", "editors": [], "owners": ["barrypollard@google.com"], "created": {"by": "barrypollard@google.com", "when": "2026-01-19 20:43:25.460501"}, "updated": {"by": "barrypollard@google.com", "when": "2026-03-30 10:11:26.755442"}, "accurate_as_of": "2026-03-30 10:11:26.755442", "standards": {"spec": "https://github.com/w3c/device-memory/pull/53", "maturity": {"text": "Specification currently under development in a Working Group", "short_text": "Working draft", "val": 4}}, "browsers": {"chrome": {"bug": "https://issues.chromium.org/issues/454354290", "blink_components": ["Blink>JavaScript>API"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["barrypollard@google.com"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": "https://groups.google.com/g/mozilla.dev.platform/c/cfydu35XdnY/m/3IqYn0oJAQAJ", "notes": "Firefox didn't go as far as giving a negative signal AFAIK but have raised concerns. They have not blocked updating these limits.", "text": "No signal", "val": 5}}, "safari": {"view": {"url": "https://github.com/w3c/device-memory/issues/24", "notes": "Webkit are negative to the original API but have not blocked updating these limits.", "text": "Negative", "val": 7}}, "webdev": {"view": {"text": "Positive", "val": 2, "url": "https://github.com/w3c/device-memory/issues/50", "notes": "Proposal"}}, "other": {"view": {"notes": "This was discussed in the WebPerf WG group on 2026-01-15 and we were in agreement to change this."}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [5146653801709568], "finch_urls": []}, {"id": 5100352332627968, "name": "Web Printing API", "summary": "Enables deeper integration with printer-related functionality in Isolated Web Apps. \n\nThis API is targeted at Isolated Web Apps only and it's following the https://www.chromium.org/blink/launching-features/isolated-web-apps/ process.\n\nThis API provides a set of JavaScript methods that allow developers to query local printers, submit print jobs to the most appropriate printers, and manage print job options and status. To represent these concepts, it relies on the attribute names and semantics from the Internet Printing Protocol (IPP) specifications.", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": null, "blink_components": ["Blink"], "resources": {"samples": [], "docs": []}, "creator": "greengrape@google.com", "editors": [], "owners": ["greengrape@google.com", "bylica@google.com"], "created": {"by": "greengrape@google.com", "when": "2023-09-18 09:50:38.783198"}, "updated": {"by": "bylica@google.com", "when": "2026-03-16 09:10:53.543925"}, "accurate_as_of": "2026-03-16 09:10:53.543925", "standards": {"spec": "https://wicg.github.io/web-printing", "maturity": {"text": "Specification being incubated in a Community Group", "short_text": "Incubation", "val": 3}}, "browsers": {"chrome": {"bug": "https://b.corp.google.com/issues/302505962", "blink_components": ["Blink"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["greengrape@google.com", "bylica@google.com"], "origintrial": false, "prefixed": false, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": null, "notes": null, "text": "No signal", "val": 5}}, "safari": {"view": {"url": null, "notes": null, "text": "No signal", "val": 5}}, "webdev": {"view": {"text": "Positive", "val": 2, "url": "https://github.com/WICG/proposals/issues/120#issuecomment-1752979770", "notes": "Positive feedback from Citrix."}}, "other": {"view": {"notes": null}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [5092900916690944], "finch_urls": []}, {"id": 6634466544058368, "name": "WebXR Layers", "summary": "WebXR Layers offers a more efficient way of drawing immersive content.\n\nIn addition to support for native color and depth textures and texture arrays, it also provides support for different layer types that are managed by the system compositor (as opposed to javascript).", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": null, "blink_components": ["Blink>WebXR"], "resources": {"samples": ["https://immersive-web.github.io/webxr-samples/layers-samples"], "docs": []}, "creator": "yyonglii@google.com", "editors": [], "owners": ["alcooper@chromium.org", "bajones@chromium.org", "ealekseev@google.com", "yyonglii@google.com"], "created": {"by": "yyonglii@google.com", "when": "2026-01-14 18:30:01.208478"}, "updated": {"by": "alcooper@chromium.org", "when": "2026-03-16 15:57:05.696857"}, "accurate_as_of": "2026-03-16 15:57:05.696857", "standards": {"spec": "https://www.w3.org/TR/webxrlayers-1", "maturity": {"text": "Specification being incubated in a Community Group", "short_text": "Incubation", "val": 3}}, "browsers": {"chrome": {"bug": "https://buganizer.corp.google.com/issues/409255534", "blink_components": ["Blink>WebXR"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["alcooper@chromium.org", "bajones@chromium.org", "ealekseev@google.com", "yyonglii@google.com"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": "https://github.com/mozilla/standards-positions/issues/412", "notes": "", "text": "Defer", "val": 14}}, "safari": {"view": {"url": "https://github.com/WebKit/standards-positions/issues/601", "notes": "Safari WG member has no objections to the spec moving from the CG to the WG", "text": "Support", "val": 3}}, "webdev": {"view": {"text": "Positive", "val": 2, "url": null, "notes": "Positive initial response (privately) from multiple popular XR video framework developers."}}, "other": {"view": {"notes": null}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [5396308003258368], "finch_urls": []}, {"id": 5177993049800704, "name": "WebXR Plane Detection", "summary": "The WebXR Plane Detection API allows sites to retrieve the set of planes detected in the user's environment. This is both less work for developers and more powerful than using the depth-sensing WebXR feature as planes such as walls that are occluded by objects can still be fully represented if the system is aware of the boundaries of the wall. (Whereas a depth map would show the wall, but it would be broken up by any objects in front of the wall, potentially obscuring the full scope of the wall). Further, semantic labeling information is exposed where the device is aware of such labels and they fit into predefined categories, allowing better knowledge about the world.", "feature_type_int": 1, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": null, "blink_components": ["Blink>WebXR"], "resources": {"samples": ["https://immersive-web.github.io/webxr-samples/proposals/plane-detection.html"], "docs": []}, "creator": "alcooper@chromium.org", "editors": ["bajones@chromium.org"], "owners": ["alcooper@chromium.org"], "created": {"by": "alcooper@chromium.org", "when": "2026-01-28 20:58:42.325013"}, "updated": {"by": "alcooper@chromium.org", "when": "2026-03-09 20:28:55.835087"}, "accurate_as_of": "2026-03-09 20:28:55.835087", "standards": {"spec": "https://immersive-web.github.io/plane-detection", "maturity": {"text": "Specification currently under development in a Working Group", "short_text": "Working draft", "val": 4}}, "browsers": {"chrome": {"bug": "https://crbug.com/394636076", "blink_components": ["Blink>WebXR"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["alcooper@chromium.org"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": "https://github.com/mozilla/standards-positions/issues/1346", "notes": "Presumptive Defer due to that being the state of all other WebXR positions due to current lack of support/development.", "text": "Defer", "val": 14}}, "safari": {"view": {"url": "https://github.com/WebKit/standards-positions/issues/608", "notes": null, "text": "No signal", "val": 5}}, "webdev": {"view": {"text": "Positive", "val": 2, "url": null, "notes": null}}, "other": {"view": {"notes": null}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [6001822592532480], "finch_urls": []}], "Deprecated": [{"id": 5143784390262784, "name": "Remove Inline XSLT for production of SVG", "summary": "A specially crafted XML file may contain an XSL stylesheet that transforms generic XML data into an SVG file. \n\nExample: https://gist.github.com/drott/1fc70b3c7f0ac314d1fe2e5beecc5490?short_path=1c60adf\n\nThis is a special case of XSLT processing that according to recently introduced use counters XSLPIInSVGImage (UseCounter id 5777), XSLPIInSVGStandaloneDoc (UseCounterId 5778) we consider virtually non-existant on the web and which we want to deprecated and remove before fully phasing out XSLT. \n\nThis is rolled out in sync with experimental testing of the Rust based XML parser. This will not be immediately rolled out to 100% in the marked shipping release version.\n\nUpdate: https://crrev.com/c/7502375 introduced metrics that measure this feature, and it was found that this feature was not used. Which enables us to proceed with launching the Rust XML parser for SVG scenarios, too, which is https://chromestatus.com/feature/5309598397497344 .", "feature_type_int": 3, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": null, "blink_components": ["Blink>SVG"], "resources": {"samples": [], "docs": []}, "creator": "drott@chromium.org", "editors": [], "owners": ["drott@chromium.org"], "created": {"by": "drott@chromium.org", "when": "2026-02-06 14:17:26.541234"}, "updated": {"by": "drott@chromium.org", "when": "2026-06-15 08:32:55.056229"}, "accurate_as_of": "2026-03-09 09:15:24.674978", "standards": {"spec": null, "maturity": {"text": null, "short_text": "Unknown status", "val": 0}}, "browsers": {"chrome": {"bug": "https://crbug.com/482223009", "blink_components": ["Blink>SVG"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["drott@chromium.org"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": "https://github.com/mozilla/standards-positions/issues/1356", "notes": "Mozilla expressed support for our intention to remove XSLT in WHATWG. This proposal is just a subset of that intention, but accelerating the removal for generating SVG images.", "text": "Positive", "val": 3}}, "safari": {"view": {"url": "https://github.com/WebKit/standards-positions/issues/615", "notes": "WebKit expressed support for our intention to remove XSLT in WHATWG. This proposal is just a subset of that intention, but accelerating the removal for generating SVG images.", "text": "Support", "val": 3}}, "webdev": {"view": {"text": "No signals", "val": 4, "url": null, "notes": null}}, "other": {"view": {"notes": null}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [5132054717136896], "finch_urls": []}], "Removed": [], "Stepped rollout": [{"id": 5140168270413824, "name": "Device Bound Session Credentials", "summary": "To enhance user security and combat session cookie theft, Chrome is introducing [Device Bound Session Credentials (DBSC)](https://developer.chrome.com/docs/web-platform/device-bound-session-credentials). This feature allows websites to bind a user's session to their specific device, which makes it significantly more difficult for stolen session cookies to be used on other machines.", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 2, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": 145, "blink_components": ["Blink"], "resources": {"samples": [], "docs": []}, "creator": "kristianm@chromium.org", "editors": ["santosls@google.com"], "owners": ["drubery@chromium.org", "thefrog@chromium.org", "arnarb@chromium.org"], "created": {"by": "kristianm@chromium.org", "when": "2023-05-25 06:50:05.989916"}, "updated": {"by": "siobhankeating@google.com", "when": "2026-03-25 09:42:04.467433"}, "accurate_as_of": "2026-03-23 16:35:11.870473", "standards": {"spec": "https://w3c.github.io/webappsec-dbsc", "maturity": {"text": "Specification currently under development in a Working Group", "short_text": "Working draft", "val": 4}}, "browsers": {"chrome": {"bug": "https://crbug.com/355059881", "blink_components": ["Blink"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["drubery@chromium.org", "thefrog@chromium.org", "arnarb@chromium.org"], "origintrial": false, "prefixed": false, "flag": false, "status": {"text": "In development", "val": 3}, "announced": false}, "ff": {"view": {"url": "https://github.com/mozilla/standards-positions/issues/912", "notes": "", "text": "Negative", "val": 7}}, "safari": {"view": {"url": "https://github.com/WebKit/standards-positions/issues/281", "notes": "", "text": "No signal", "val": 5}}, "webdev": {"view": {"text": "Positive", "val": 2, "url": "https://github.com/mozilla/standards-positions/issues/912#issuecomment-2204012985", "notes": ""}}, "other": {"view": {"notes": ""}}}, "is_released": false, "milestone": null}, {"id": 5109852273377280, "name": "Element-scoped view transitions", "summary": "Exposes element.startViewTransition() on arbitrary HTML elements.  The element establishes a scope for the transition, which means that the transition pseudo-elements are affected by ancestor clips and transforms, and multiple transitions on separate elements can run concurrently.", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": null, "blink_components": ["Blink>CSS"], "resources": {"samples": ["https://output.jsbin.com/runezug/quiet"], "docs": ["https://github.com/WICG/view-transitions/blob/main/scoped-transitions.md"]}, "creator": "skobes@chromium.org", "editors": ["vmpstr@chromium.org", "nrosenthal@chromium.org", "bramus@chromium.org", "flackr@chromium.org"], "owners": ["skobes@chromium.org", "kevers@chromium.org"], "created": {"by": "skobes@chromium.org", "when": "2025-02-11 19:44:57.949246"}, "updated": {"by": "skobes@chromium.org", "when": "2026-03-09 12:28:11.189761"}, "accurate_as_of": "2026-03-09 12:28:11.189761", "standards": {"spec": "https://drafts.csswg.org/css-view-transitions-2", "maturity": {"text": "Specification currently under development in a Working Group", "short_text": "Working draft", "val": 4}}, "browsers": {"chrome": {"bug": "https://issues.chromium.org/issues/394052227", "blink_components": ["Blink>CSS"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["skobes@chromium.org", "kevers@chromium.org"], "origintrial": false, "prefixed": false, "flag": false, "status": {"text": "In development", "val": 3}, "announced": false}, "ff": {"view": {"url": "https://github.com/mozilla/standards-positions/issues/1352", "notes": null, "text": "No signal", "val": 5}}, "safari": {"view": {"url": "https://github.com/WebKit/standards-positions/issues/611", "notes": null, "text": "No signal", "val": 5}}, "webdev": {"view": {"text": "Positive", "val": 2, "url": "https://github.com/w3c/csswg-drafts/issues/9890#issuecomment-1927179371", "notes": "Top feature request from surveyed web authors re. \"what is missing from View Transitions\"."}}, "other": {"view": {"notes": "\"I'm salivating.\" - https://bsky.app/profile/samwho.dev/post/3mf52aozscc24"}}}, "is_released": false, "milestone": null}, {"id": 5152728072060928, "name": "Local network access restrictions", "summary": "Chrome 142 restricted the ability to make requests to the user's local network, gated behind a permission prompt. A local network request is any request from a public website to a local IP address or loopback, or from a local website (for example, intranet) to loopback. \n\nGating the ability for websites to perform these requests behind a permission mitigates the risk of cross-site request forgery attacks against local network devices such as routers, and reduces the ability of sites to use these requests to fingerprint the user's local network.\n\nThis permission is restricted to secure contexts. If granted, the permissions additionally relax mixed content blocking for local network requests (since many local devices are not able to obtain publicly trusted TLS certificates for various reasons).\n\nThis work supersedes a prior effort called [Private Network Access](https://chromestatus.com/feature/5737414355058688), which used preflight requests to have local devices opt in. For more information on this feature, see [Adapting your website for new Local Network Access restrictions in Chrome](https://docs.google.com/document/d/1QQkqehw8umtAgz5z0um7THx-aoU251p705FbIQjDuGs/edit?usp=sharing).\n\nChrome 145 introduced more granular permissions for websites requesting access to a user's local network. The previous single `local-network-access permission` is being split into two distinct permissions:\n\n* `local-network`: Grants access to IP addresses in the local network space (for example, intranets, internal devices).\n* `loopback-network`: Grants access to loopback IP addresses (for example, `localhost`, `127.0.0.1`).\n\nThe old `local-network` permission will remain as an alias, ensuring existing configurations and permissions policies continue to function as expected. \n\nThis change provides both users and Admins with more precise control over how websites interact with internal network resources. Current enterprise policies managing local network access will not be affected by this change.\n\nChrome 146 introduces two new enterprise policies for managing local network access restrictions:  [LocalNetworkAccessIpAddressSpaceOverrides](https://chromeenterprise.google/policies/#LocalNetworkAccessIpAddressSpaceOverrides) and  [LocalNetworkAccessPermissionsPolicyDefaultEnabled](https://chromeenterprise.google/policies/#LocalNetworkAccessPermissionsPolicyDefaultEnabled). These policies can be set using [custom configurations](https://support.google.com/chrome/a/answer/14749672).\n\nChrome 147 expands Local Network Access restrictions to include WebSocket and WebTransport connections.\n\nIn Chrome 156, the [LocalNetworkAccessRestrictionsTemporaryOptOut](https://chromeenterprise.google/policies/#LocalNetworkAccessRestrictionsTemporaryOptOut) policy will be removed.", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 2, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": 135, "blink_components": ["Blink>SecurityFeature>LocalNetworkAccess"], "resources": {"samples": ["https://local-network-access-testing.glitch.me"], "docs": ["https://github.com/explainers-by-googlers/local-network-access", "https://docs.google.com/document/d/1n0kKxt9pS9qDlu_9i5W8IXA594r4pUOKmN9H35cZ8j0/edit?usp=sharing"]}, "creator": "cthomp@chromium.org", "editors": ["hchao@chromium.org", "jdeblasio@chromium.org", "clamy@chromium.org", "dadrian@google.com"], "owners": ["cthomp@chromium.org"], "created": {"by": "cthomp@chromium.org", "when": "2025-03-06 22:16:50.390905"}, "updated": {"by": "siobhankeating@google.com", "when": "2026-07-15 12:31:13.053381"}, "accurate_as_of": "2026-06-15 23:41:53.943000", "standards": {"spec": "https://wicg.github.io/local-network-access", "maturity": {"text": null, "short_text": "Unknown status", "val": 0}}, "browsers": {"chrome": {"bug": "https://crbug.com/394009026", "blink_components": ["Blink>SecurityFeature>LocalNetworkAccess"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["cthomp@chromium.org"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "In development", "val": 3}, "announced": false}, "ff": {"view": {"url": "https://support.mozilla.org/en-US/kb/control-personal-device-local-network-permissions-firefox", "notes": "Firefox is shipping.\n\nRequest for signals: \n\nhttps://github.com/mozilla/standards-positions/issues/1260", "text": "Shipped/Shipping", "val": 1}}, "safari": {"view": {"url": null, "notes": "Request for signals:\n\nhttps://github.com/WebKit/standards-positions/issues/520", "text": "No signal", "val": 5}}, "webdev": {"view": {"text": "Mixed signals", "val": 3, "url": "https://github.com/explainers-by-googlers/local-network-access/issues", "notes": "Feedback from developers has been mixed, both due the new burden of a permission prompt (compared to PNA) and from some of the difficulty of navigating mixed content (the same as PNA). Many developers understand the reasoning behind adding the new permission though, and are productively engaging on how they can avoid issues."}}, "other": {"view": {"notes": "Brave ships a \"localhost access\" permission (see https://brave.com/privacy-updates/27-localhost-permission/)"}}}, "is_released": false, "milestone": null}, {"id": 5257822742249472, "name": "X25519Kyber768 key encapsulation for TLS", "summary": "Chrome 124 enabled by default on all desktop platforms a new post-quantum secure TLS key encapsulation mechanism [X25519Kyber768](https://developer.chrome.com/blog/chrome-124-beta#x25519kyber768_key_encapsulation_for_tls), based on a NIST standard (ML-KEM). This protects network traffic from Chrome with servers that also support ML-KEM from decryption by a future quantum computer. This change should be transparent to server operators. This cipher will be used for both [TLS 1.3](https://datatracker.ietf.org/doc/html/rfc8446) and [QUIC](https://datatracker.ietf.org/doc/rfc9000/) connections.\n\nHowever, some TLS middleboxes might be unprepared for the size of a Kyber (ML-KEM) key encapsulation, or a new TLS ClientHello cipher code point, leading to dropped or hanging connections. This can be resolved by updating your middlebox, or disabling the key encapsulation mechanism via the temporary [PostQuantumKeyAgreementEnabled](https://chromeenterprise.google/policies/#PostQuantumKeyAgreementEnabled) enterprise policy, which will be available through Chrome 145. However, long term, post-quantum secure ciphers will be required in TLS and the enterprise policy will be removed in Chrome 147. Post-quantum cryptography is required for CSNA 2.0. To learn more, see [Protect Chrome Traffic with Hybrid Kyper KEM](https://blog.chromium.org/2023/08/protecting-chrome-traffic-with-hybrid.html).", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 3, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": 124, "blink_components": ["Internals>Network>SSL"], "resources": {"samples": [], "docs": []}, "creator": "dadrian@google.com", "editors": ["davidben@chromium.org", "hchao@chromium.org", "nharper@chromium.org", "estark@chromium.org", "asymmetric@chromium.org", "asymmetric@google.com"], "owners": ["dadrian@google.com"], "created": {"by": "dadrian@google.com", "when": "2023-04-28 15:02:09.148762"}, "updated": {"by": "siobhankeating@google.com", "when": "2026-02-24 17:32:06.729705"}, "accurate_as_of": "2026-02-20 19:41:09.281850", "standards": {"spec": "https://www.ietf.org/archive/id/draft-tls-westerbaan-xyber768d00-02.html", "maturity": {"text": "Specification currently under development in a Working Group", "short_text": "Working draft", "val": 4}}, "browsers": {"chrome": {"bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=1442377", "blink_components": ["Internals>Network>SSL"], "devrel": [], "owners": ["dadrian@google.com"], "origintrial": false, "prefixed": false, "flag": false, "status": {"text": "Enabled by default", "val": 5}, "announced": false}, "ff": {"view": {"url": "https://github.com/mozilla/standards-positions/issues/874", "notes": "Firefox is also in the process of rolling this out.", "text": "Shipped/Shipping", "val": 1}}, "safari": {"view": {"url": "https://github.com/WebKit/standards-positions/issues/244", "notes": "", "text": "No signal", "val": 5}}, "webdev": {"view": {"text": "No signals", "val": 4, "url": null, "notes": ""}}, "other": {"view": {"notes": ""}}}, "is_released": true, "milestone": null}], "Origin trial": [{"id": 5137581018841088, "name": "Autofill event", "summary": "Autofill is a key feature of the web that reduces friction for millions of users everyday. But getting autofill to work reliably with dynamic forms across multiple implementations requires jumping through many hoops.\n\nThis feature adds an \"autofill\" event that would allow developers to modify their forms to fit the autofilled data and let the browser know when they have done so.\n", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": null, "blink_components": ["Blink"], "resources": {"samples": ["https://yoavweiss.github.io/autofill_demo/credit_card_autofill_demo.html", "https://yoavweiss.github.io/autofill_demo/autofill_event_demo.html"], "docs": []}, "creator": "yoavweiss@chromium.org", "editors": [], "owners": ["yoavweiss@chromium.org"], "created": {"by": "yoavweiss@chromium.org", "when": "2026-01-14 14:08:29.362995"}, "updated": {"by": "yoavweiss@chromium.org", "when": "2026-02-28 00:51:39.419917"}, "accurate_as_of": "2026-01-14 14:08:29.362885", "standards": {"spec": "https://wicg.github.io/autofill-event", "maturity": {"text": "Specification being incubated in a Community Group", "short_text": "Incubation", "val": 3}}, "browsers": {"chrome": {"bug": "https://issues.chromium.org/issues/466333215", "blink_components": ["Blink"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["yoavweiss@chromium.org"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": "https://github.com/mozilla/standards-positions/issues/1361", "notes": null, "text": "No signal", "val": 5}}, "safari": {"view": {"url": "https://github.com/WebKit/standards-positions/issues/431", "notes": null, "text": "No signal", "val": 5}}, "webdev": {"view": {"text": "No signals", "val": 4, "url": null, "notes": null}}, "other": {"view": {"notes": null}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [5112204506562560], "origin_trial_id": "268527127781965825", "finch_urls": []}, {"id": 5112398709129216, "name": "Prerendering cross-origin iframes", "summary": "Prerenders cross-origin iframes with an opt-in response header.  \n\nBrowsers will now prerender all cross-origin frames if the top-level frame's HTTP response includes the Supports-Loading-Mode: prerender-cross-origin-frames.", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": null, "blink_components": ["Blink"], "resources": {"samples": [], "docs": []}, "creator": "yoichio@chromium.org", "editors": ["denomoto@chromium.org", "nhiroki@chromium.org", "yoichio@chromium.org"], "owners": ["yoichio@chromium.org"], "created": {"by": "yoichio@chromium.org", "when": "2025-08-22 05:11:55.756055"}, "updated": {"by": "yoichio@chromium.org", "when": "2026-09-29 07:00:22.183008"}, "accurate_as_of": "2026-09-29 06:24:49.452269", "standards": {"spec": "https://wicg.github.io/nav-speculation/prerendering.html", "maturity": {"text": null, "short_text": "Unknown status", "val": 0}}, "browsers": {"chrome": {"bug": "https://issues.chromium.org/issues/440387014", "blink_components": ["Blink"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["yoichio@chromium.org"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": "https://github.com/mozilla/standards-positions/issues/1376", "notes": null, "text": "No signal", "val": 5}}, "safari": {"view": {"url": "https://github.com/WebKit/standards-positions/issues/636", "notes": null, "text": "No signal", "val": 5}}, "webdev": {"view": {"text": "Positive", "val": 2, "url": null, "notes": "Our partners show interests in having this feature."}}, "other": {"view": {"notes": null}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [5096146552881152], "origin_trial_id": "790944684556943361", "finch_urls": []}, {"id": 5176273954144256, "name": "WebNN", "summary": "WebNN seeks to enable web applications and frameworks to take advantage of native operating system services for machine learning and the underlying hardware capabilities available on a user's computer to implement consistent, efficient, and reliable ML experiences on the web.", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 2, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": 129, "blink_components": ["Blink>WebML"], "resources": {"samples": ["https://webmachinelearning.github.io/webnn-samples", "https://microsoft.github.io/webnn-developer-preview"], "docs": ["https://docs.google.com/document/d/1kIc5NO1PU1DbGHKOsnan-tEhV01L6_K3OLA5g0o4Ts4/edit?resourcekey=0-ltUDiDZqxKgARhtNqsGJeg"]}, "creator": "ericde@google.com", "editors": ["robko@google.com", "phillis@chromium.org"], "owners": ["dbogadi@google.com", "reillyg@chromium.org", "phillis@chromium.org", "Rafael.Cintron@microsoft.com", "ningxin.hu@intel.com"], "created": {"by": "ericde@google.com", "when": "2024-08-29 22:03:34.696846"}, "updated": {"by": "reillyg@chromium.org", "when": "2026-04-08 22:11:25.140091"}, "accurate_as_of": "2024-08-29 22:03:34.696515", "standards": {"spec": "https://webmachinelearning.github.io/webnn", "maturity": {"text": "Specification currently under development in a Working Group", "short_text": "Working draft", "val": 4}}, "browsers": {"chrome": {"bug": "https://issues.chromium.org/issues/40206287", "blink_components": ["Blink>WebML"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["dbogadi@google.com", "reillyg@chromium.org", "phillis@chromium.org", "Rafael.Cintron@microsoft.com", "ningxin.hu@intel.com"], "origintrial": false, "prefixed": false, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": "https://github.com/mozilla/standards-positions/issues/1215#issuecomment-3520278819", "notes": null, "text": "Positive", "val": 3}}, "safari": {"view": {"url": "https://github.com/WebKit/standards-positions/issues/486", "notes": "Apple is participating in the WebML WG but has made no public statements about implementation.", "text": "No signal", "val": 5}}, "webdev": {"view": {"text": "Positive", "val": 2, "url": null, "notes": "Microsoft's ONNX runtime includes an execution provider for WebNN (https://onnxruntime.ai/docs/tutorials/web/ep-webnn.html). Google's LiteRT.js framework has announced that they are working on WebNN support (https://youtu.be/HAjotVloAvI?t=219)."}}, "other": {"view": {"notes": "The WebNN implementation in Chromium is a collaboration between Google, Intel, and Microsoft. Edge will be launching WebNN at the same time as Chrome."}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [5089756132933632], "origin_trial_id": "2250110963824984065", "finch_urls": []}], "In developer trial (Behind a flag)": [{"id": 6516055192240128, "name": "CSSPseudoElement support for ::backdrop, ::scroll-marker and ::view-transitions", "summary": "Support for CSSPseudoElement - which is currently only defined for ::after, ::before, and ::marker - is now being extended to include several new pseudo-elements:\n\n::backdrop: useful for closing a dialog when the backdrop is clicked, without interfering with clicks inside the dialog's content. This eliminates the need for complex intersection logic to determine where the click occurred.\n\n::scroll-marker: can be used to collect click statistics.\n\nview transitions: enables geometry-aware view transitions.It also allows you to intercept a view transition mid-flight to start a new one, utilizing the coordinates of the currently animating element to avoid sudden visual jumps.", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": null, "blink_components": ["Blink>CSS"], "resources": {"samples": [], "docs": []}, "creator": "sakhapov@chromium.org", "editors": ["nrosenthal@chromium.org"], "owners": ["sakhapov@chromium.org"], "created": {"by": "sakhapov@chromium.org", "when": "2026-04-24 11:43:54.214884"}, "updated": {"by": "sakhapov@chromium.org", "when": "2026-08-04 09:27:11.770438"}, "accurate_as_of": "2026-07-03 09:37:10.945207", "standards": {"spec": "https://drafts.csswg.org/css-pseudo-4/#CSSPseudoElement-interface", "maturity": {"text": "Specification currently under development in a Working Group", "short_text": "Working draft", "val": 4}}, "browsers": {"chrome": {"bug": null, "blink_components": ["Blink>CSS"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["sakhapov@chromium.org"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": "https://github.com/mozilla/standards-positions/issues/1345", "notes": null, "text": "No signal", "val": 5}}, "safari": {"view": {"url": "https://github.com/WebKit/standards-positions/issues/607", "notes": null, "text": "No signal", "val": 5}}, "webdev": {"view": {"text": "No signals", "val": 4, "url": null, "notes": null}}, "other": {"view": {"notes": null}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [4779656587902976], "finch_urls": []}, {"id": 5146265241387008, "name": "Clip Text overflow on user interaction", "summary": "When a user interacts (editing or caret navigation) with text which has \u2018text-overflow: ellipsis\u2019 set, the text switches temporarily from ellipsis to clip allowing the user to see and interact with the hidden overflow content. This feature applies to all editable and non-editable elements. For form controls (textarea, input), the behavior is already supported.", "feature_type_int": 1, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": null, "blink_components": ["Blink"], "resources": {"samples": [], "docs": []}, "creator": "shwetabindal@microsoft.com", "editors": [], "owners": ["shwetabindal@microsoft.com", "ragoulik@microsoft.com"], "created": {"by": "shwetabindal@microsoft.com", "when": "2026-01-20 05:07:31.085410"}, "updated": {"by": "shwetabindal@microsoft.com", "when": "2026-04-27 09:04:47.802875"}, "accurate_as_of": "2026-04-27 09:04:47.802875", "standards": {"spec": "https://www.w3.org/TR/css-overflow-3/#ellipsis-interaction", "maturity": {"text": "Final published standard: Recommendation, Living Standard, Candidate Recommendation, or similar final form", "short_text": "Published standard", "val": 5}}, "browsers": {"chrome": {"bug": "https://issues.chromium.org/issues/40731275", "blink_components": ["Blink"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["shwetabindal@microsoft.com", "ragoulik@microsoft.com"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": null, "notes": null, "text": "Shipped/Shipping", "val": 1}}, "safari": {"view": {"url": "https://github.com/WebKit/standards-positions/issues/624", "notes": null, "text": "Closed Without a Position", "val": 5}}, "webdev": {"view": {"text": "No signals", "val": 4, "url": null, "notes": null}}, "other": {"view": {"notes": null}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [4808209506369536], "finch_urls": []}, {"id": 6242687411945472, "name": "Document Policy in Dedicated Workers", "summary": "Enables document-policy in Dedicated Workers.\n\nThis enables developers to use Document Policy feature, such as performance or security controls in workers, instead of being limited to the main document. By extending policy enforcement to dedicated workers, developers gain more consistent behavior across threads and better control over worker capabilities in complex web applications.", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": null, "blink_components": ["Blink"], "resources": {"samples": [], "docs": ["https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/DocumentPolicy/DocumentPolicyInWorkers.md"]}, "creator": "monicach@microsoft.com", "editors": ["victorhuang@microsoft.com"], "owners": ["monicach@microsoft.com"], "created": {"by": "monicach@microsoft.com", "when": "2026-01-21 21:54:18.665195"}, "updated": {"by": "monicach@microsoft.com", "when": "2026-09-10 05:07:15.683126"}, "accurate_as_of": "2026-01-21 21:54:18.665043", "standards": {"spec": "https://github.com/whatwg/html/pull/12026", "maturity": {"text": "Specification currently under development in a Working Group", "short_text": "Working draft", "val": 4}}, "browsers": {"chrome": {"bug": "https://issues.chromium.org/issues/450845903", "blink_components": ["Blink"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["monicach@microsoft.com"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": null, "notes": null, "text": "No signal", "val": 5}}, "safari": {"view": {"url": null, "notes": null, "text": "No signal", "val": 5}}, "webdev": {"view": {"text": "No signals", "val": 4, "url": null, "notes": null}}, "other": {"view": {"notes": null}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [5143017172369408], "finch_urls": []}, {"id": 5989275208253440, "name": "Gamepad Event-Driven Input API", "summary": "This proposal extends the Gamepad API with a new event-driven model that enables applications to receive gamepad input with lower latency. Instead of relying on frequent polling via navigator.getGamepads(), developers can now listen for a rawgamepadinputchange event, which fires whenever new input data is available from the device. This allows for more responsive input handling, particularly in latency-sensitive applications.", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": null, "blink_components": ["Blink>GamepadAPI"], "resources": {"samples": ["https://gabrielsanbrito.github.io/gamepad-raw-input-events"], "docs": []}, "creator": "mattreynolds@chromium.org", "editors": ["snehagarwal@microsoft.com", "gabrielbrito@microsoft.com", "stevebe@microsoft.com", "mattreynolds@chromium.org"], "owners": ["stevebe@microsoft.com", "snehagarwal@microsoft.com", "gabrielbrito@microsoft.com", "mattreynolds@chromium.org", "estade@chromium.org"], "created": {"by": "mattreynolds@chromium.org", "when": "2018-06-28 23:07:03.861406"}, "updated": {"by": "gabrielbrito@microsoft.com", "when": "2026-08-31 19:25:13.390326"}, "accurate_as_of": null, "standards": {"spec": "https://w3c.github.io/gamepad", "maturity": {"text": "Specification currently under development in a Working Group", "short_text": "Working draft", "val": 4}}, "browsers": {"chrome": {"bug": "https://crbug.com/40582297", "blink_components": ["Blink>GamepadAPI"], "devrel": [], "owners": ["stevebe@microsoft.com", "snehagarwal@microsoft.com", "gabrielbrito@microsoft.com", "mattreynolds@chromium.org", "estade@chromium.org"], "origintrial": false, "prefixed": false, "flag": false, "status": {"text": "In development", "val": 3}, "announced": false}, "ff": {"view": {"url": "https://github.com/mozilla/standards-positions/issues/1389", "notes": "Firefox\u2019s experimental implementation, GamepadButtonEvent: https://searchfox.org/mozilla-central/source/dom/webidl/GamepadButtonEvent.webidl ,\nGamepadAxisMoveEvent: https://searchfox.org/mozilla-central/source/dom/webidl/GamepadAxisMoveEvent.webidl#9 ", "text": "No signal", "val": 5}}, "safari": {"view": {"url": "https://github.com/WebKit/standards-positions/issues/647", "notes": "", "text": "No signal", "val": 5}}, "webdev": {"view": {"text": "Positive", "val": 2, "url": "https://stackoverflow.com/questions/72294832/using-gamepad-api-via-events-rather-than-polling", "notes": "There is strong developer interest in an event-driven Gamepad API to improve responsiveness and simplify input handling. In w3c/gamepad#4 (https://github.com/w3c/gamepad/issues/4), developers have long requested events for gamepad input, citing the inefficiency of polling-based models. \n\nSimilarly, in a popular Stack Overflow thread, developers express frustration with the lack of native gamepad events and seek workarounds, underscoring unmet needs in the current API.\n\nThe existence of third-party libraries like gamecontroller.js (https://github.com/firsching/gamecontroller.js) and Gamepad-Controller (https://github.com/alvaromontoro/gamepad-controller) further demonstrates this."}}, "other": {"view": {"notes": "\n\n"}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [5611211022925824], "finch_urls": []}, {"id": 5200068565139456, "name": "Lazy loading for video and audio elements", "summary": "Adds the loading attribute to <video> and <audio> elements, allowing developers to defer media resource loading until the element is near the viewport using loading=\"lazy\". This matches the existing lazy loading behavior for <img> and <iframe>\n elements, improving page load performance and reducing data usage.\n\n\nCL: https://chromium-review.googlesource.com/c/chromium/src/+/7511253\n\n\n", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 1, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": null, "blink_components": ["Blink>Media"], "resources": {"samples": ["https://scottjehl.com/posts/lazy-media"], "docs": []}, "creator": "hjanuschka@gmail.com", "editors": ["barrypollard@google.com"], "owners": ["hjanuschka@gmail.com"], "created": {"by": "hjanuschka@gmail.com", "when": "2026-01-25 21:40:30.463739"}, "updated": {"by": "hjanuschka@gmail.com", "when": "2026-04-01 15:19:21.803646"}, "accurate_as_of": "2026-03-13 20:47:19.707288", "standards": {"spec": "https://github.com/whatwg/html/pull/11980", "maturity": {"text": "Specification currently under development in a Working Group", "short_text": "Working draft", "val": 4}}, "browsers": {"chrome": {"bug": "https://issues.chromium.org/issues/469111735", "blink_components": ["Blink>Media"], "devrel": ["barrypollard@google.com", "devrel-chromestatus-all@google.com"], "owners": ["hjanuschka@gmail.com"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": "https://github.com/mozilla/standards-positions/issues/1325", "notes": "Implementation under way: https://phabricator.services.mozilla.com/D278547", "text": "Positive", "val": 3}}, "safari": {"view": {"url": "https://github.com/WebKit/standards-positions/issues/586", "notes": "Implementation under way:\nhttps://github.com/WebKit/WebKit/pull/58220", "text": "Support", "val": 3}}, "webdev": {"view": {"text": "Positive", "val": 2, "url": "https://github.com/web-platform-dx/developer-signals/issues/534", "notes": null}}, "other": {"view": {"notes": null}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [5093434807418880], "finch_urls": []}, {"id": 5123349239955456, "name": "PWA origin migration", "summary": "When a user installs a Progressive Web App (PWA), its identity and security context are tightly bound to its web origin, for example, `app.example.com`. This presents a significant challenge for developers who need to change their PWA's origin due to rebranding, domain restructuring, or technical re-architecture. Currently, such a change forces users to manually uninstall the old app and reinstall the new one, leading to a disruptive experience and a potential increase in user loss rate. Chrome 150 introduces a mechanism for developers to seamlessly migrate an installed PWA to a new, same-site origin, preserving user trust and permissions.\n\nThe [WebAppInstallForceList](https://chromeenterprise.google/policies/#WebAppInstallForceList) policy will block migration. Since enterprise policies around web applications are primarily based on URLs and origins, there is a risk that a migration would bypass certain policies an admin might have configured. No migration will be offered to the user when an app is force-installed by their enterprise administrator, and instead a banner will be shown explaining this to the user.", "feature_type_int": 0, "unlisted": false, "enterprise_impact": 2, "enterprise_product_category": 0, "breaking_change": false, "confidential": false, "first_enterprise_notification_milestone": 141, "blink_components": ["UI>Browser>WebAppInstalls"], "resources": {"samples": ["https://googlechrome.github.io/samples/pwa-migration"], "docs": []}, "creator": "mek@chromium.org", "editors": ["dmurph@chromium.org", "dmurph@google.com", "dibyapal@chromium.org", "dibyapal@google.com"], "owners": ["mek@chromium.org", "dibyapal@chromium.org", "dmurph@chromium.org", "pwa-team@google.com"], "created": {"by": "mek@chromium.org", "when": "2025-09-17 20:39:27.499428"}, "updated": {"by": "dibyapal@chromium.org", "when": "2026-07-22 11:51:42.925030"}, "accurate_as_of": "2026-07-21 18:16:52.246055", "standards": {"spec": "https://github.com/WICG/manifest-incubations/pull/136", "maturity": {"text": "Specification being incubated in a Community Group", "short_text": "Incubation", "val": 3}}, "browsers": {"chrome": {"bug": "https://issues.chromium.org/396504527", "blink_components": ["UI>Browser>WebAppInstalls"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["mek@chromium.org", "dibyapal@chromium.org", "dmurph@chromium.org", "pwa-team@google.com"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2}, "announced": false}, "ff": {"view": {"url": "https://github.com/mozilla/standards-positions/issues/1313", "notes": null, "text": "No signal", "val": 5}}, "safari": {"view": {"url": "https://github.com/WebKit/standards-positions/issues/568", "notes": null, "text": "No signal", "val": 5}}, "webdev": {"view": {"text": "No signals", "val": 4, "url": null, "notes": null}}, "other": {"view": {"notes": null}}}, "is_released": false, "milestone": null, "roadmap_stage_ids": [5122611981975552], "finch_urls": []}]}, "total_count": 31}