Contact emailsmas...@chromium.org ExplainerNone
Specificationhttps://w3c.github.io/uievents/#legacy-event-types Summary Mutation Events, including `DOMSubtreeModified`, `DOMNodeInserted`, `DOMNodeRemoved`, `DOMNodeRemovedFromDocument`, `DOMNodeInsertedIntoDocument`, and `DOMCharacterDataModified`, are quite bad for page performance, and also significantly increase the complexity of adding new features to the Web. These APIs were deprecated from the spec ( https://w3c.github.io/uievents/#legacy-event-types) in 2011, and were replaced (in 2012) by the much better-behaved Mutation Observer API. Usage of the obsolete Mutation Events must be migrated to Mutation Observer. Mutation events are deprecated starting in Chrome 115, and support will be disabled by default starting in Chrome 127, around July 30, 2024. A Deprecation Trial will be available starting in Chrome 124, and extending through Chrome 134, which can be used to extend the time a site has to migrate by ~9 months, until March 25, 2025. Blink componentBlink>DOM <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EDOM> Search tagsMutationEvent <https://chromestatus.com/features#tags:MutationEvent>, DOMSubtreeModified <https://chromestatus.com/features#tags:DOMSubtreeModified>, DOMNodeInserted <https://chromestatus.com/features#tags:DOMNodeInserted>, DOMNodeRemoved <https://chromestatus.com/features#tags:DOMNodeRemoved>, DOMNodeRemovedFromDocument <https://chromestatus.com/features#tags:DOMNodeRemovedFromDocument>, DOMNodeInsertedIntoDocument <https://chromestatus.com/features#tags:DOMNodeInsertedIntoDocument>, DOMCharacterDataModified <https://chromestatus.com/features#tags:DOMCharacterDataModified> TAG reviewNone TAG review statusNot applicable Chromium Trial NameMutationEvents Origin Trial documentation link https://developer.chrome.com/blog/mutation-events-deprecation WebFeature UseCounter namekDOMNodeRemovedEvent Risks Interoperability and Compatibility There are technically 9 Mutation Events, but Chromium only implements 6 of them. Their use counters vary significantly: - DOMNodeInsertedIntoDocument: 0.006% - DOMNodeRemovedFromDocument: 0.012% - DOMCharacterDataModified: 0.016% - DOMNodeRemoved: 0.77% - DOMSubtreeModified: 0.81% - DOMNodeInserted: 1.58% The DOMNodeInsertedIntoDocument and DOMNodeRemovedFromDocument events are not fired by Gecko. That, plus the low use counters for those two plus DOMCharacterDataModified, mean that these three could likely be fairly easily removed after some time. The last three have quite significant usage, and more study and outreach will be required to bring this usage down below safe removal limits, which will take significant time. Tentatively, we're aiming for M126 as the last version of Chrome that supports the events above, ending July 30, 2024. This npm package attempts to polyfill Mutation Events using Mutation Observer: https://www.npmjs.com/package/mutation-events. *Gecko*: Positive (https://github.com/mozilla/standards-positions/issues/807) "very strong positive position" *WebKit*: No signal ( https://github.com/WebKit/standards-positions/issues/192) *Web developers*: No signals *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 Goals for experimentation Ongoing technical constraints Debuggability 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 <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> ?No Flag name on chrome://flags Finch feature nameNone Non-finch justificationNone Requires code in //chrome?False Tracking bughttps://crbug.com/1446498 Estimated milestones Shipping on desktop 115 OriginTrial desktop last 134 OriginTrial desktop first 124 Shipping on Android 115 OriginTrial Android last 134 OriginTrial Android first 124 Shipping on WebView 115 OriginTrial webView last 134 OriginTrial webView first 124 Link to entry on the Chrome Platform Status https://chromestatus.com/feature/5083947249172480 Links to previous Intent discussionsIntent to Experiment: https://groups.google.com/a/chromium.org/g/blink-dev/c/qDsKRU-cQ_4/m/isA1mZ_aAAAJ This intent message was generated by Chrome Platform Status <https://chromestatus.com/>. -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscr...@chromium.org. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM%3DNeDjevtANjMn1NUK83UGyJyv4HrLCFkjs9fhL6UVov_uAkA%40mail.gmail.com.