Hey Xiaocheng,

Thanks for working on improving interop! A few thoughts and questions below.

On 2/8/22 7:25 PM, Xiaocheng Hu wrote:


        Contact emails

xiaoche...@chromium.org


        Explainer

None


        Specification

None. Not a standard feature.


        Summary

Event.path is a non-standard API that returns the event's path, which is an array of the objects on which listeners will be invoked. It is supported by Blink only, causing web compatibility issues. Web developers should switch to the equivalent standard API Event.composedPath(), which returns the same result.



        Blink component

Blink>DOM <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EDOM>


        TAG review



        TAG review status

Not applicable


        Risks



        Interoperability and Compatibility

The removal of this API should improve interoperability, as it's supported by Blink only. It still has 18% usage as of Feb 2022 (https://chromestatus.com/metrics/feature/timeline/popularity/345), so we will only deprecate it for now, and will not remove it before the usage drops low enough. We expect low compatibility risks, since there is an equivalent standard API (Event.composedPath()) by all browsers, and the following polyfill should also keep existing sites functioning with minimum changes:

18% is a _lot_ of usage. So much that I'm surprised there aren't dozens of compat bugs reported against Firefox. In https://bugzilla.mozilla.org/show_bug.cgi?id=1697590#c0 there are only 2 linked site bugs. And there's only 3 in https://github.com/webcompat/web-bugs/issues?q=is%3Aissue+composedPath (the last one being from 2019).

I wonder how much of that 18% is feature detection and fallback codepaths <https://github.com/search?l=JavaScript&q=composedPath+event.path&type=Code>.

Are we aware of bug reports from Apple caused by event.path? I'm not able to find any on bugs.webkit.org, but I could be doing it wrong.

Have you thought of ways to measure when event.path is called, and event.composedPath isn't (not sure if that's even possible)? Maybe that would show it's actually safe to remove.

if (!Event.prototype.path) { Object.defineProperty(Event.prototype, 'path', { get() { return this.composedPath(); } }); }

Given how simple this appears to be, I wonder if a better approach would be to ask Mozilla and Apple if they would be willing to accept patches to make event.path a legacy alias to event.composedPath - and then we can spec it in DOM or Compat. The alternative is to send deprecation messages for possibly a very long time, which doesn't really improve the compat situation for a very long time. Or, we can figure out how to measure the actual non-fallback usage of event.path and go from there.


Gecko: No signal Firefox does not support Event.path

WebKit: No signal Safari does not support Event.path

Web developers: Positive (https://github.com/web-platform-tests/interop-2022/issues/26)
That should probably be counted as positive support from Mozilla, rather than webdev support (no offense to James).

Other signals:


        Debuggability

Usage of this deprecated feature will be reported to the DevTools Issues Tab.



        Is this feature fully tested by web-platform-tests
        
<https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md>?

No


        Flag name



        Requires code in //chrome?

False


        Tracking bug

https://bugs.chromium.org/p/chromium/issues/detail?id=1277431


        Estimated milestones

No milestones specified



        Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5726124632965120

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/CAFqEGha_iNax9r8%2BXVQK%2Bf3hEdu5z-MDAh44FbKMOuAnrHL2Ew%40mail.gmail.com <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFqEGha_iNax9r8%2BXVQK%2Bf3hEdu5z-MDAh44FbKMOuAnrHL2Ew%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/37184c99-a5ca-0dbd-1a19-5e15934c2bc5%40chromium.org.

Reply via email to