On Wed, May 15, 2024 at 9:36 PM Vladimir Levin <vmp...@chromium.org> wrote:

> 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
>

That's right - some of the usage is definitely feature-detected. I also
believe other usage simply doesn't matter to the functioning of the site.
I.e a listener is attached (which triggers the use counter) but it is
either never fired or doesn't do anything material if it does fire. See
below for a comment on breakage.

P.S. Congrats on being added to the API owners. Thanks for your service. :-)


> On Wed, May 15, 2024 at 9:27 PM Yoav Weiss (@Shopify) <
> yoavwe...@chromium.org> wrote:
>
>> 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?
>>
>
I totally agree, 1% is a ton of usage, so it's right to be very careful and
concerned about this deprecation. Note that deprecating things with this
level of usage isn't unprecedented, as my team and I have successfully (and
without major breakage) removed Web Components v0 with >2% usage, and
event.path with close to 20% usage. But still, let's be sure we're taking
all due precaution.

I looked into the UKM data about three months ago, before I started the
experiment to disable all mutation events on Canary/Dev/Beta. I looked at
the top ~30 UKM hits and dug into the site's code to see what the usage
was. Many (~40% or so?) of the top sites usage was due to quilljs
<https://github.com/quilljs/quill/issues/3806> which has since updated
their code to not rely on mutation events. Another maybe 10% was due
to a Sharepoint
2016 mquery.js utility
<https://techcommunity.microsoft.com/t5/sharepoint/sharepoint-2016-server-mquery-js-event-deprecation/m-p/3947764>,
for which several folks have requested support from MS, but it's a bit
unclear what the plan is. The rest of the sites appeared to have bespoke
code looking at mutation events.

You asked about extensions, which is a good question. I don't have a great
way to track extensions via UKM, at least that I know of. Let me know if
you do! I did receive one bug report
<https://issues.chromium.org/issues/330413279> that an extension was using
mutation events, and the extension author quickly patched the extension.

Very importantly, on literally none of the sites I investigated did I find
any broken functionality. That includes the quilljs and mquery sites I
mentioned above. Of course, I'm not an expert on those particular sites,
and some aren't in my native language. But I could not find the effect of
turning off mutation events. Similarly, I've been running my own browser
with mutation events disabled for over a year now, and I have yet to find
any site with broken functionality. And again, most convincingly to me,
I've had these events disabled for all of Canary, Dev, and Beta for the
better part of three months, and I've only received the one bug mentioned
above about an extension. While that's not a guarantee that nothing will
break, of course, I view it as a very strong sign that the effect of
turning off these events will be less than what the 1% use counter would
suggest.

And finally, of course, assuming I'm approved to disable in M127, I'll be
very mindful of breakage and will flip the events back on immediately in
the case that there is more breakage than I'm expecting.

Let me know if anything else would help make the case that we should go
forward with this.

Thanks,
Mason




> 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/CAM%3DNeDgfmwE9%3DKjAuKSZKEw_3CQ9tWenNa0yfLo8QXG6EyZ5uw%40mail.gmail.com.

Reply via email to