Ok, thank you - glad to hear it's unrelated to tap. This seems almost
bugfix-level to me then, unlikely to be a compat problem in practice
despite the somewhat surprisingly large use of setPointerCapture.

Rick

On Wed, Feb 12, 2025 at 3:17 PM Mustaq Ahmed <mus...@chromium.org> wrote:

> 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/CAFUtAY9w%2Bb75Zuh6RJPqQZPQe5SrfsaBQFq2vfvQuW400AgdMg%40mail.gmail.com.

Reply via email to