I recall that some of this usage was feature detected: if mutation events
are supported, use them; otherwise, use something else. Unfortunately, that
makes it difficult to estimate the expected number of breakages. I agree
though that it would be nice to understand the type of usage that still
exists and the likelihood of real breakage


On Wed, May 15, 2024 at 9:27 PM Yoav Weiss (@Shopify) <
yoavwe...@chromium.org> wrote:

>
>
> On Wed, May 15, 2024 at 9:03 PM Mason Freed <mas...@chromium.org> wrote:
>
>> 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 now be migrated to Mutation Observer.
>> Mutation event support will be disabled by default starting in Chrome 127,
>> around July 30, 2024. Code should be migrated before that date to avoid
>> site breakage. If more time is needed, there are a few options: - The
>> Mutation Events Deprecation Trial (
>> https://developer.chrome.com/origintrials/#/view_trial/919297273937002497)
>> can be used to re-enable the feature for a limited time on a given site.
>> This can be used through Chrome 134, ending March 25, 2025. - A
>> MutationEventsEnabled enterprise policy (
>> https://chromeenterprise.google/policies/#MutationEventsEnabled) can
>> also be used for the same purpose, also through Chrome 134. Please see this
>> blog post for more detail:
>> https://developer.chrome.com/blog/mutation-events-deprecation Report
>> bugs here:
>> https://issues.chromium.org/new?component=1456718&template=1948649
>>
>>
>> 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.008% - DOMNodeRemovedFromDocument: 0.009% -
>> DOMCharacterDataModified: 0.011% - DOMNodeRemoved: 0.73% -
>> DOMSubtreeModified: 0.68% - DOMNodeInserted: 1.086%
>>
>
> 1% is a *lot*. Did UKM reveal anything interesting about this usage? Do we
> know if all of it is driven by site content, vs e.g. extensions?
>
>
>> Chrome has shipped an experiment since M124 that disables all Mutation
>> Events for 99% of users of Canary, Dev, and Beta versions of Chrome. Very
>> few bugs have been filed in the intervening months, and all that were filed
>> have been resolved quickly via the site owner making changes to not rely on
>> the deprecated events.
>>
> This gives me significant confidence that removing the events will not be
>> as big of a deal as the use counters would suggest. Still, due to the
>> still-high numbers, extreme care will be taken in the removal process. I
>> plan to disable the events via Finch only, so that if issues are
>> encountered, Finch will be a safe way to re-enable the events.
>> Additionally, there are the deprecation trial and enterprise policies to
>> offer an easy relief valve for affected sites.
>>
>>
>> *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*:
>>
>> Activation
>>
>> This npm package attempts to polyfill Mutation Events using Mutation
>> Observer: https://www.npmjs.com/package/mutation-events.
>>
>>
>> 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
>>
>>
>>
>> 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://flagsmutation-events
>>
>> Finch feature nameMutationEvents
>>
>> Requires code in //chrome?False
>>
>> Tracking bughttps://crbug.com/1446498
>>
>> Estimated milestones
>> Shipping on desktop 127
>> Origin trial desktop first 124
>> Origin trial desktop last 134
>> Shipping on Android 127
>> OriginTrial Android last 134
>> OriginTrial Android first 124
>> Shipping on WebView 127
>> OriginTrial webView last 134
>> OriginTrial webView first 124
>>
>> 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/5083947249172480?gate=5111010140094464
>>
>> Links to previous Intent discussionsIntent to Deprecate:
>> https://groups.google.com/a/chromium.org/g/blink-dev/c/qDsKRU-cQ_4/m/isA1mZ_aAAAJ
>> Intent to Experiment:
>> https://groups.google.com/a/chromium.org/g/blink-dev/c/z-VIfSOco4k/m/KDz9c_goAAAJ
>>
>> 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%3DNeDjonGju3YX1WkXtEJrMGLo4bH9AqtwV0QoqvopdGNioAg%40mail.gmail.com
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM%3DNeDjonGju3YX1WkXtEJrMGLo4bH9AqtwV0QoqvopdGNioAg%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
> --
> 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/CAOmohSJzmUKZo5K0TwixDRx0J5JfcNzugO3C%2BPVac-sB-3M-0g%40mail.gmail.com
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOmohSJzmUKZo5K0TwixDRx0J5JfcNzugO3C%2BPVac-sB-3M-0g%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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/CADsXd2NeSR6wURci-vJn%2BimLa%2BZoCc4RjGHrpg-Rk0L%2BSxi0wQ%40mail.gmail.com.

Reply via email to