Intent to Ship: Scoped Custom Element Registry

234 views
Skip to first unread message

Chromestatus

unread,
Oct 13, 2025, 5:00:37 PM (2 days ago) Oct 13
to blin...@chromium.org, jayso...@microsoft.com, leo...@microsoft.com, mason...@google.com
Contact emails
mason...@google.com, jayso...@microsoft.com, leo...@microsoft.com

Explainer
https://github.com/WICG/webcomponents/blob/gh-pages/proposals/Scoped-Custom-Element-Registries.md
https://github.com/whatwg/html/issues/10854

Specification
https://html.spec.whatwg.org/multipage/custom-elements.html#customelementregistry

Summary
This feature allows for multiple custom element definitions for a single tag name to exist within a page to prevent custom element name conflicts when a web app uses libraries from multiple sources. This is achieved by allowing user code to create multiple custom element registries and associate them with tree scopes and elements that function as scoping object for custom element creation/definition/upgrade.

Blink component
Blink>HTML>CustomElements

Web Feature ID
scoped-custom-element-registries

TAG review
https://github.com/w3ctag/design-reviews/issues/1070

TAG review status
Issues addressed

Risks


Interoperability and Compatibility
None

Gecko: Positive (https://github.com/mozilla/standards-positions/issues/424)

WebKit: Shipped/Shipping (https://developer.apple.com/documentation/safari-release-notes/safari-26-release-notes)

Web developers: Positive Scoped custom element registry has been a long-awaited feature from the Web Components Community Group, and the current polyfill that didn't solve the entire problem has 24k+ downloads per week.

Other signals:

WebView application risks

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

None


Debuggability
None

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

Is this feature fully tested by web-platform-tests?
Yes
https://wpt.fyi/results/custom-elements/registries?label=master&label=experimental&aligned

Flag name on about://flags
None

Finch feature name
ScopedCustomElementRegistry

Rollout plan
Will ship enabled for all users

Requires code in //chrome?
False

Tracking bug
https://issues.chromium.org/issues/40826514

Estimated milestones
Shipping on desktop143
Shipping on Android143
Shipping on WebView143


Anticipated spec changes

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

None

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5090435261792256?gate=6499099686207488

Links to previous Intent discussions
Intent to Prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFqEGhaAi0t1ffJoE8Du9bB2Wwxt6CewJjxz2Y_m9qWuoAa-Ug%40mail.gmail.com


This intent message was generated by Chrome Platform Status.

Rick Byers

unread,
Oct 14, 2025, 9:44:33 AM (yesterday) Oct 14
to Chromestatus, Danil Somsikov, blin...@chromium.org, jayso...@microsoft.com, leo...@microsoft.com, mason...@google.com
I'm very happy to see this, looks great! We're slowly getting the web to a place where we have real component modularity :-)

I have one question about debuggability below, but since that bit has already been approved in Chromestatus it's not blocking. LGTM1

Are you sure? If I'm trying to debug a web page and trying to understand the behavior of <my-foo> elements, might I now get confused due to the multiple definitions for the same element name? I played with this a little and I guess I can always just rely on commands like $0.constructor to find the relevant source. But Firefox has a UI badge and hover action for this:

image.png

Perhaps the scoped custom element registry makes a UI feature like this go from nice-to-have to essential? @Danil Somsikov for his thoughts since he reviewed and approved the Debuggability bit for this feature. 

--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/68ed6866.050a0220.2a8282.0159.GAE%40google.com.

Rick Byers

unread,
Oct 14, 2025, 9:54:34 AM (yesterday) Oct 14
to Chromestatus, Danil Somsikov, blin...@chromium.org, jayso...@microsoft.com, leo...@microsoft.com, mason...@google.com
Sorry one more question. I see the feature is still in status=test mode and so the WPTs are still all failing on the experimental bot. Can you share the current WPT results please?

If, for whatever reason, you don't end up going right to status=stable on this feature now, please update the feature to status=experimental to get test results visible. 

Jayson Chen

unread,
Oct 14, 2025, 1:35:36 PM (yesterday) Oct 14
to blink-dev, rby...@chromium.org, blin...@chromium.org, Jayson Chen, Leo Lee, mason...@google.com, Chromestatus, Danil Somsikov
I believe we are going right to status=stable when we ship the feature. Currently with ScopedCustomElementRegistry feature flag on, it is passing all WPTs for custom elements, including the ones created specifically for scoped registry work. It's being tested under this virtual test suite: third_party/blink/web_tests/virtual/scoped-custom-element-registry/

Debuggability wise, I agree that it's something valuable and worth exploring given that we can have different constructors under the same element name now.

Rick Byers

unread,
Oct 14, 2025, 1:54:02 PM (yesterday) Oct 14
to Jayson Chen, blink-dev, Leo Lee, mason...@google.com, Chromestatus, Danil Somsikov
Oh sounds good, thanks Jayson. 

Rick

Mike Taylor

unread,
11:09 AM (6 hours ago) 11:09 AM
to Rick Byers, Jayson Chen, blink-dev, Leo Lee, mason...@google.com, Chromestatus, Danil Somsikov

Vladimir Levin

unread,
11:09 AM (6 hours ago) 11:09 AM
to blink-dev, Mike Taylor, blink-dev, leo...@microsoft.com, mason...@google.com, Chromestatus, Danil Somsikov, Rick Byers, jayso...@microsoft.com
LGTM3

To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
Reply all
Reply to author
Forward
0 new messages