This feature and the UseCounter stats mentioned above are for mouse clicks <https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/input/mouse_event_manager.cc;drc=371045818e8ecd3f8e60ee58c1c23e0bd0b7f39f;l=358> only. So GestureTap clicks are not a concern at the moment. However, this makes your setPointerCapture question difficult to answer! In fact we were surprised to see setPointerCapture being used in at least 0.1% page loads ("at least" because our UseCounter has other conditions to meet)!!
On Wed, Feb 12, 2025 at 10:54 AM Rick Byers <rby...@chromium.org> wrote: > LGTM3 > > I was surprised the UseCounter was so high, is that because this includes > the implicit capture case for touch input? Or is setPointerCapture really > that common? If it includes the touch implicit capture case, does that mean > the click generated from a GestureTap can also have it's target changed? If > so I'm worried about the web compat impact (eg. for code only run in > Chromium like in Android WebView). But regardless it's reasonable to think > of this as a bugfix for some niche poorly-defined behavior that likely > won't matter to anyone, so I'm fine with giving it a try with the slow > roll-out plan and emergency kill switch if real breakage is reported. > > Rick > > > On Tue, Feb 11, 2025 at 1:53 PM Chris Harrelson <chris...@chromium.org> > wrote: > >> LGTM2 >> >> On Sun, Feb 9, 2025 at 7:56 PM Domenic Denicola <dome...@chromium.org> >> wrote: >> >>> >>> >>> On Sat, Feb 8, 2025 at 5:29 AM Mustaq Ahmed <mus...@chromium.org> wrote: >>> >>>> My i2s message missed one important point: we are planning for an >>>> incremental rollout on Stable, just to be on the safe side from the compat >>>> perspective (see my WIP finch config cl/721367851 >>>> <https://critique.corp.google.com/#review/721367851>, sorry internal >>>> link). >>>> >>>> > To move everyone toward interop, I suggest commenting on >>>> https://bugzilla.mozilla.org/show_bug.cgi?id=1885232 to encourage >>>> Firefox to fast-follow, and maybe filing a WebKit bug for the same reason. >>>> >>>> @Domenic Denicola <dome...@chromium.org> Perhaps we can defer this >>>> until after a 100% Stable rollout, right? >>>> >>> >>> Yes, that seems reasonable to me. >>> >>> >>>> >>>> >>>> >>>> On Wed, Feb 5, 2025 at 9:29 PM Domenic Denicola <dome...@chromium.org> >>>> wrote: >>>> >>>>> LGTM1. This seems like a valuable movement toward interop on tricky >>>>> edge-cases, and the team has done a good job with use counters and beta >>>>> experiments to bound the compat risks. I think Finch can be used as a >>>>> killswitch if we find that this has some horrible breaking impact that has >>>>> not yet been discovered. >>>>> >>>>> One path toward gaining even more confidence here would be to >>>>> investigate individual sites. You could use either UKM or HTTP archive >>>>> analysis to find sites where the upper-bound use counter fires, and then >>>>> manually try to play around with them both with and without the flag to >>>>> see >>>>> if anything is broken. >>>>> >>>>> To move everyone toward interop, I suggest commenting on >>>>> https://bugzilla.mozilla.org/show_bug.cgi?id=1885232 to encourage >>>>> Firefox to fast-follow, and maybe filing a WebKit bug for the same reason. >>>>> >>>>> >>>>> On Thu, Feb 6, 2025 at 6:22 AM Mustaq Ahmed <mus...@chromium.org> >>>>> wrote: >>>>> >>>>>> Hi Mike and Yoav: >>>>>> >>>>>> Let me answer your questions together: >>>>>> >>>>>> *Current behavior in major browsers:* The click target is: >>>>>> - [Chrome] the common ancestor of pointerdown target and *captured* >>>>>> pointerup target. >>>>>> - [Firefox] the actual pointerup target, ignoring capture and >>>>>> pointerdown. >>>>>> - [Safari] the common ancestor of pointerdown target and actual >>>>>> pointerup target, ignoring capture. >>>>>> >>>>>> *Compat risk analysis:* >>>>>> - Our UseCounter shows that ~0.1% of Chrome page loads have (a) click >>>>>> handlers at both the common ancestor and the capture target, and (b) this >>>>>> feature would switch the click target from the former to the latter. >>>>>> This >>>>>> seems like a loose upper bound because the two handlers could be doing >>>>>> the >>>>>> same job. >>>>>> https://chromestatus.com/metrics/feature/timeline/popularity/3942 >>>>>> - We have the feature enabled on Canary & Dev for 7 weeks and on Beta >>>>>> for 3 weeks, and we didn't see any bug reports. >>>>>> >>>>>> *Developers possibly capturing to a "wrong" element:* >>>>>> IMHO it is hard to be "wrong" here, let me explain why. Developers >>>>>> use capturing mostly for a custom drag experience, like the slider >>>>>> mentioned in the intent or a map widget, and "click" is not an expected >>>>>> UI >>>>>> action after such a drag. It seems impossible to know how often >>>>>> developers >>>>>> expect clicks here, if at all. If any developers do expect clicks, they >>>>>> have to resort to a hack (like adding one listener to multiple targets) >>>>>> because the click-target inconsistencies among major browsers today left >>>>>> no >>>>>> "right" way to capture a click! Did it answer your question @Yoav >>>>>> Weiss <yoavwe...@chromium.org>? >>>>>> >>>>>> >>>>>> >>>>>> On Wed, Feb 5, 2025 at 11:32 AM Yoav Weiss (@Shopify) < >>>>>> yoavwe...@chromium.org> wrote: >>>>>> >>>>>>> >>>>>>> >>>>>>> On Wed, Feb 5, 2025 at 4:11 PM Mustaq Ahmed <mus...@chromium.org> >>>>>>> wrote: >>>>>>> >>>>>>>> Contact emailsmus...@chromium.org >>>>>>>> >>>>>>>> Explainerhttps://w3c.github.io/pointerevents/#event-dispatch >>>>>>>> >>>>>>>> Specificationhttps://w3c.github.io/pointerevents/#event-dispatch >>>>>>>> >>>>>>>> Summary >>>>>>>> >>>>>>>> If a pointer is captured while the `pointerup` event is being >>>>>>>> dispatched, the `click` event will be dispatched to the captured target >>>>>>>> instead of the nearest common ancestor of `pointerdown` and `pointerup` >>>>>>>> events as per the UI Event spec. For uncaptured pointers, the `click` >>>>>>>> target remains unchanged. >>>>>>>> >>>>>>>> >>>>>>>> Blink componentBlink>Input >>>>>>>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EInput%22> >>>>>>>> >>>>>>>> TAG reviewNone >>>>>>>> >>>>>>>> TAG review statusNot applicable >>>>>>>> >>>>>>>> Risks >>>>>>>> >>>>>>>> >>>>>>>> Interoperability and Compatibility >>>>>>>> >>>>>>>> Interop risk: No risk at all because the major browsers behaved >>>>>>>> differently for years (see >>>>>>>> https://github.com/w3c/pointerevents/issues/356#issuecomment-811814819). >>>>>>>> Compat risk: There is a slight risk that the click target change would >>>>>>>> be >>>>>>>> noticed for a very narrow case of a slider-like UI element that >>>>>>>> captures >>>>>>>> the pointer yet expects a *container* element to respond to a click >>>>>>>> differently from how the slider element itself responds to the same >>>>>>>> click. >>>>>>>> For a drag action that starts on the slider and ends outside the >>>>>>>> slider, >>>>>>>> this feature would cause the click event to be dispatched to the slider >>>>>>>> then bubble up to the container (vs being dispatched to the container >>>>>>>> element directly). >>>>>>>> >>>>>>> >>>>>>> Have we tried to quantify the compat risk here? >>>>>>> How often do we expect developers to capture the "wrong" element >>>>>>> from their perspective? >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> *Gecko*: Positive ( >>>>>>>> https://github.com/w3c/pointerevents/issues/356#issuecomment-1596196064 >>>>>>>> ) >>>>>>>> >>>>>>>> *WebKit*: No signal >>>>>>>> >>>>>>>> *Web developers*: Positive ( >>>>>>>> https://github.com/w3c/pointerevents/issues/356#issuecomment-1591894867 >>>>>>>> ) >>>>>>>> >>>>>>>> *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 >>>>>>>> >>>>>>>> >>>>>>>> Debuggability >>>>>>>> >>>>>>>> None >>>>>>>> >>>>>>>> >>>>>>>> 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> >>>>>>>> ?Yes >>>>>>>> >>>>>>>> >>>>>>>> https://wpt.fyi/results/pointerevents?label=master&label=experimental&aligned&q=pointerevents%2Fpointerevent_click_during_capture.html >>>>>>>> >>>>>>>> >>>>>>>> Flag name on about://flagsNone >>>>>>>> >>>>>>>> Finch feature nameClickToCapturedPointer >>>>>>>> >>>>>>>> Requires code in //chrome?False >>>>>>>> >>>>>>>> Tracking bughttps://crbug.com/40851596 >>>>>>>> >>>>>>>> Sample links >>>>>>>> https://codepen.io/mustaqahmed/full/YzawKWW >>>>>>>> >>>>>>>> Estimated milestones >>>>>>>> Shipping on desktop 135 >>>>>>>> Shipping on Android 135 >>>>>>>> Shipping on WebView 135 >>>>>>>> >>>>>>>> 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/5143357002874880?gate=5069716701577216 >>>>>>>> >>>>>>>> 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 visit >>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAB0cuO5WP0%3DEV2%3DiQkS2Bkt8z4fKnfMFNBNeBEU76xOSsYNCHA%40mail.gmail.com >>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAB0cuO5WP0%3DEV2%3DiQkS2Bkt8z4fKnfMFNBNeBEU76xOSsYNCHA%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 visit >>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAB0cuO4kZU5RxQiMGhMZqkDdPqGsdZLUd11bFY5xbyoizvFkhQ%40mail.gmail.com >>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAB0cuO4kZU5RxQiMGhMZqkDdPqGsdZLUd11bFY5xbyoizvFkhQ%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 visit >>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM0wra9rHdU1hd%2BQ6nmhJKiDtDUSnOHToJC5iywR%2Bm7J-2n%3Dzw%40mail.gmail.com >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM0wra9rHdU1hd%2BQ6nmhJKiDtDUSnOHToJC5iywR%2Bm7J-2n%3Dzw%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 visit >> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw9GTRCQPNsy81VSZh4mum8FBo455fGMqRdneAZoEmJ_Fg%40mail.gmail.com >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw9GTRCQPNsy81VSZh4mum8FBo455fGMqRdneAZoEmJ_Fg%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 visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAB0cuO4wruzfYvN9sN5DVgC5qtKu_yT6X%2Bm-7O3z3VyM7X49nA%40mail.gmail.com.