Intent to Deprecate and Remove: Deprecate and remove: non-allowlisted Event interfaces from document.createEvent()

98 views
Skip to first unread message

Chromestatus

unread,
Feb 20, 2026, 4:51:10 AM (3 days ago) Feb 20
to blin...@chromium.org, soosu...@gmail.com, zi...@chromium.org
Contact emails
soosu...@gmail.com, zi...@chromium.org

Explainer
No information provided

Specification
https://dom.spec.whatwg.org/#dom-document-createevent

Summary
Remove support for creating non-allowlisted event interfaces from document.createEvent(). After this change, these will throw NOT_SUPPORTED_ERR as required by the specification.

Blink component
Blink>DOM

Web Feature ID
No information provided

Motivation
The DOM spec defines an allow-list for createEvent(), but Chrome also supports interfaces not on this list: - AnimationEvent - Usage : 0(https://chromestatus.com/metrics/feature/timeline/popularity/1162) - CloseEvent - Usage : 0(https://chromestatus.com/metrics/feature/timeline/popularity/1227) - ErrorEvent - Usage : 0(https://chromestatus.com/metrics/feature/timeline/popularity/1170) - IDBVersionChangeEvent - Usage : 0(https://chromestatus.com/metrics/feature/timeline/popularity/1201) - KeyboardEvents - Usage : 0.00003(https://chromestatus.com/metrics/feature/timeline/popularity/1228) - PageTransitionEvent - Usage : 0(https://chromestatus.com/metrics/feature/timeline/popularity/1174) - PopStateEvent - Usage : 0.000007(https://chromestatus.com/metrics/feature/timeline/popularity/1176) - TrackEvent - Usage : 0(https://chromestatus.com/metrics/feature/timeline/popularity/1186) - TransitionEvent - Usage : 0.012334(https://chromestatus.com/metrics/feature/timeline/popularity/1183) - WebGLContextEvent - Usage : 0(https://chromestatus.com/metrics/feature/timeline/popularity/1224) - WheelEvent - Usage : 0.000011(https://chromestatus.com/metrics/feature/timeline/popularity/1184) These interfaces lack init*Event() methods, making the created events unusable. Event constructors can be used instead (e.g., new AnimationEvent()).

Initial public proposal
No information provided

Debuggability
No information provided

Requires code in //chrome?
False

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

Estimated milestones
DevTrial on desktop146
DevTrial on Android146


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

This intent message was generated by Chrome Platform Status.

Yoav Weiss (@Shopify)

unread,
Feb 20, 2026, 7:25:11 AM (3 days ago) Feb 20
to Chromestatus, blin...@chromium.org, soosu...@gmail.com, zi...@chromium.org
I believe we'd need some more information about the compatibility and interoperability risks with this.

--
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/69982e7e.710a0220.1e5fb2.0081.GAE%40google.com.

David Baron

unread,
Feb 20, 2026, 9:32:25 AM (3 days ago) Feb 20
to Yoav Weiss (@Shopify), blin...@chromium.org, soosu...@gmail.com, zi...@chromium.org
It looks like all of the usage numbers are negligible (less than 1 in 2 million page loads, i.e., less than 0.00005%) except for TransitionEvent, which is around 0.01% of page loads (1 in ten thousand).  Do you know anything about the usage of TransitionEvent?  Is it for feature detection?

-David

soosungp33 via Chromestatus

unread,
Feb 22, 2026, 11:05:04 AM (19 hours ago) Feb 22
to blin...@chromium.org
1) compatibility and interoperability risks Firefox has removed all of them, and WebKit has removed all events except KeyboardEvents, PopStateEvent, and WheelEvent. Reference: https://wpt.fyi/results/dom/nodes/Document-createEvent.https.html?label=master&label=experimental&product=chrome&product=firefox&product=safari&aligned&q=chrome%3A%21pass There have been previous discussions in Chromium: - https://groups.google.com/a/chromium.org/g/blink-dev/c/BkPSl0Oey8k/m/kZZ_GR9VAAAJ - https://groups.google.com/a/chromium.org/g/blink-dev/c/bj1SUohzcR4/m/5SXyG3kbBAAJ In summary, for interfaces without init*Event() methods, the recommendation is to use constructors instead of createEvent. Therefore, I believe it should be fine to deprecate and remove events that are not in the current spec [1] and have low usage. [1] https://dom.spec.whatwg.org/#dom-document-createevent 2) information on TransitionEvent usage I looked into some usage cases of TransitionEvent: - https://github.com/search?q=document.createEvent%28%27TransitionEvent%27%29%3B&type=code It appears that most usage is in Angular legacy code or older websites, and is mostly being used for feature detection. However, since the usage is above 0.01%, there seems to be some risk. So how about only deprecating TransitionEvent while removing the other events? Note that TransitionEvent is not currently in a deprecated state (no warning is shown when used). - yeonghan

soosungp33 via Chromestatus

unread,
Feb 22, 2026, 11:10:48 AM (19 hours ago) Feb 22
to blin...@chromium.org
I forgot to say this earlier..! Late, but thanks for your interest in my intent!
Reply all
Reply to author
Forward
0 new messages