<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>251925</bug_id>
          
          <creation_ts>2023-02-08 09:13:06 -0800</creation_ts>
          <short_desc>[WPE] Compatibility mapping with mouse events use too naive target node detection</short_desc>
          <delta_ts>2023-02-08 09:13:06 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WPE WebKit</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=248076</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Bastian Krause">bst</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>zdobersek</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1932030</commentid>
    <comment_count>0</comment_count>
      <attachid>464907</attachid>
    <who name="Bastian Krause">bst</who>
    <bug_when>2023-02-08 09:13:06 -0800</bug_when>
    <thetext>Created attachment 464907
Demo: Touch compatibility mapping with mouse events trigger on wrong element

WPE sends mouse motion/down/up in PageClientImpl::doneWithTouchEvent() for touches as compatibility mapping with mouse events [1]. Instead of reusing the target node (result of the hit test) from the touch events, completely new synthetic input events are created that rely solely on the X/Y coordinates of the touch event (see TouchGestureController::EventVariant()). Since all of this happens after the touch gesture is done, the new hit test triggered by the synthetic input events can be a different target node (i.e. if the DOM changes under the touch point as a result of the touchstart event). This again can lead to events on wrong elements.

See attachment for a demo.

This also affects the contextmenu handling in https://bugs.webkit.org/show_bug.cgi?id=248076 because it imitates the click handling.


[1] https://www.w3.org/TR/pointerevents/#compatibility-mapping-with-mouse-events</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>464907</attachid>
            <date>2023-02-08 09:13:06 -0800</date>
            <delta_ts>2023-02-08 09:13:06 -0800</delta_ts>
            <desc>Demo: Touch compatibility mapping with mouse events trigger on wrong element</desc>
            <filename>compat-touch-mouse-events.html</filename>
            <type>text/html</type>
            <size>1737</size>
            <attacher name="Bastian Krause">bst</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8c2NyaXB0PgpmdW5jdGlvbiBtYWluKCkgewoJdmFyIGJ0biA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJidG4iKTsKCWJ0bi5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0
YXJ0IiwgKGUpID0+IHsKCQlzZXRUaW1lb3V0KCgpID0+IHsKCQkJbGV0IHBhcmVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJvdmVybGF5ZGl2Iik7CgkJCWxldCBvdmVybGF5X2J0biA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpOwoJCQlwYXJlbnQuc3R5bGUudmlzaWJpbGl0
eSA9ICJ2aXNpYmxlIjsKCQkJb3ZlcmxheV9idG4uY2xhc3NMaXN0LmFkZCgiYmlnYnRuMiIpOwoJ
CQlvdmVybGF5X2J0bi5pbm5lclRleHQgPSAib3ZlcmxheSBidXR0b24iOwoJCQlwYXJlbnQuaW5z
ZXJ0QmVmb3JlKG92ZXJsYXlfYnRuLCBwYXJlbnQuZmlyc3RFbGVtZW50Q2hpbGQpOwoJCQlvdmVy
bGF5X2J0bi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIChlKSA9PiB7CgkJCQlvdmVybGF5X2J0
bi5pbm5lclRleHQgPSAib3ZlcmxheSBidXR0b24gd2FzIGFjY2lkZW50YWxseSg/KSBjbGlja2Vk
IjsKCQkJfSk7CgkJfSwgMTAwKTsKCX0pOwp9CndpbmRvdy5vbmxvYWQgPSBtYWluOwo8L3Njcmlw
dD4KPHN0eWxlPgouYmlnYnRuIHsKCXdpZHRoOiA0MCU7CgloZWlnaHQ6IDIwJTsKCWJhY2tncm91
bmQtY29sb3I6ICNmODQ7Cgl1c2VyLXNlbGVjdDogbm9uZTsKCS13ZWJraXQtdXNlci1zZWxlY3Q6
IG5vbmU7Cn0KCi5iaWdidG4yIHsKCXdpZHRoOiAxMDAlOwoJaGVpZ2h0OiAxMDAlOwoJYmFja2dy
b3VuZC1jb2xvcjogI2NjYzsKCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCXVzZXItc2VsZWN0OiBub25l
OwoJLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKfQoKLm92ZXJsYXkgewoJd2lkdGg6IDQwJTsK
CWhlaWdodDogMjAlOwoJei1pbmRleDogMTAwOwoJdmlzaWJpbGl0eTogaGlkZGVuOwoJcG9zaXRp
b246IGFic29sdXRlOwoJdG9wOiAwcHg7CglsZWZ0OiAwcHg7Cn0KCi5leHBsYW5hdGlvbiB7Cglt
YXJnaW4tdG9wOiAxJTsKCXdpZHRoOiA0MCU7Cn0KCiNyZWxvYWRidG4gewoJd2lkdGg6IDIwJTsK
CWhlaWdodDogNSU7Cn0KPC9zdHlsZT4KPC9oZWFkPgo8Ym9keSBvbmNvbnRleHRtZW51PSJyZXR1
cm4gZmFsc2U7Ij4KCTxidXR0b24gaWQ9ImJ0biIgY2xhc3M9ImJpZ2J0biI+dG91Y2gsIGhvbGQg
YW5kIGRvbid0IG1vdmUgZm9yIDEgc2Vjb25kPC9idXR0b24+Cgk8ZGl2IGlkPSJvdmVybGF5ZGl2
IiBjbGFzcz0ib3ZlcmxheSI+PC9kaXY+CgoJPGRpdiBjbGFzcz0iZXhwbGFuYXRpb24iPgoJCVRv
dWNoIGdlc3R1cmVzIHRyaWdnZXJpbmcKCQk8YSBocmVmPSJodHRwczovL3d3dy53My5vcmcvVFIv
cG9pbnRlcmV2ZW50cy8jY29tcGF0aWJpbGl0eS1tYXBwaW5nLXdpdGgtbW91c2UtZXZlbnRzIj5j
b21wYXRpYmlsaXR5IG1hcHBpbmcgd2l0aCBtb3VzZSBldmVudHM8L2E+CgkJc2hvdWxkIGJlIGVt
aXR0ZWQgb24gdGhlIHNhbWUgdGFyZ2V0IGVsZW1lbnQuCgkJVGVzdCB0aGlzIGJ5IHNob3dpbmcg
YSBidXR0b24gb3ZlcmxheWluZyBvbiB0b3VjaHN0YXJ0IGFuZCB0ZXN0aW5nIHdoZXRoZXIgaXQg
YWNjaWRlbnRhbGx5IHJlY2VpdmVzIHRoZSBjbGljayBldmVudC4KCTwvZGl2PgoJPGJ1dHRvbiBp
ZD0icmVsb2FkYnRuIiBvbmNsaWNrPSJkb2N1bWVudC5sb2NhdGlvbi5yZWxvYWQoKTsiPlJlbG9h
ZDwvYnV0dG9uPgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>