Title: [262551] branches/safari-609-branch
Revision
262551
Author
[email protected]
Date
2020-06-04 12:00:32 -0700 (Thu, 04 Jun 2020)

Log Message

Cherry-pick r261246. rdar://problem/63951358

    pointermove event sometimes has incorrect pointerType of 'mouse' on touch interactions
    https://bugs.webkit.org/show_bug.cgi?id=210716
    <rdar://problem/62084817>

    Patch by Antoine Quint <[email protected]> on 2020-05-06
    Reviewed by Darin Adler.

    Source/WebKit:

    Set the SyntheticClickType to OneFingerTap when creating a synthetic "mousemove" event for a synthetic "click" event as part of a tap.
    On top of being more indicative of the actual action that triggered the synthetic event, it also has the added quality that it will
    not yield a "pointermove" event.

    Test: pointerevents/ios/click-no-pointermove.html

    * WebProcess/WebPage/ios/WebPageIOS.mm:
    (WebKit::dispatchSyntheticMouseMove):

    LayoutTests:

    Add a new test that checks that with content observation enabled a tap on a <button> element
    dispatches synthetic mousemove and click events but no pointermove event.

    * pointerevents/ios/click-no-pointermove-expected.txt: Added.
    * pointerevents/ios/click-no-pointermove.html: Added.
    * pointerevents/utils.js:
    (target_test):

    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@261246 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Modified Paths

Added Paths

Diff

Modified: branches/safari-609-branch/LayoutTests/ChangeLog (262550 => 262551)


--- branches/safari-609-branch/LayoutTests/ChangeLog	2020-06-04 19:00:28 UTC (rev 262550)
+++ branches/safari-609-branch/LayoutTests/ChangeLog	2020-06-04 19:00:32 UTC (rev 262551)
@@ -1,3 +1,53 @@
+2020-06-04  Alan Coon  <[email protected]>
+
+        Cherry-pick r261246. rdar://problem/63951358
+
+    pointermove event sometimes has incorrect pointerType of 'mouse' on touch interactions
+    https://bugs.webkit.org/show_bug.cgi?id=210716
+    <rdar://problem/62084817>
+    
+    Patch by Antoine Quint <[email protected]> on 2020-05-06
+    Reviewed by Darin Adler.
+    
+    Source/WebKit:
+    
+    Set the SyntheticClickType to OneFingerTap when creating a synthetic "mousemove" event for a synthetic "click" event as part of a tap.
+    On top of being more indicative of the actual action that triggered the synthetic event, it also has the added quality that it will
+    not yield a "pointermove" event.
+    
+    Test: pointerevents/ios/click-no-pointermove.html
+    
+    * WebProcess/WebPage/ios/WebPageIOS.mm:
+    (WebKit::dispatchSyntheticMouseMove):
+    
+    LayoutTests:
+    
+    Add a new test that checks that with content observation enabled a tap on a <button> element
+    dispatches synthetic mousemove and click events but no pointermove event.
+    
+    * pointerevents/ios/click-no-pointermove-expected.txt: Added.
+    * pointerevents/ios/click-no-pointermove.html: Added.
+    * pointerevents/utils.js:
+    (target_test):
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@261246 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2020-05-06  Antoine Quint  <[email protected]>
+
+            pointermove event sometimes has incorrect pointerType of 'mouse' on touch interactions
+            https://bugs.webkit.org/show_bug.cgi?id=210716
+            <rdar://problem/62084817>
+
+            Reviewed by Darin Adler.
+
+            Add a new test that checks that with content observation enabled a tap on a <button> element
+            dispatches synthetic mousemove and click events but no pointermove event.
+
+            * pointerevents/ios/click-no-pointermove-expected.txt: Added.
+            * pointerevents/ios/click-no-pointermove.html: Added.
+            * pointerevents/utils.js:
+            (target_test):
+
 2020-06-02  Andy Estes  <[email protected]>
 
         Apply patch. rdar://problem/63626670

Added: branches/safari-609-branch/LayoutTests/pointerevents/ios/click-no-pointermove-expected.txt (0 => 262551)


--- branches/safari-609-branch/LayoutTests/pointerevents/ios/click-no-pointermove-expected.txt	                        (rev 0)
+++ branches/safari-609-branch/LayoutTests/pointerevents/ios/click-no-pointermove-expected.txt	2020-06-04 19:00:32 UTC (rev 262551)
@@ -0,0 +1,3 @@
+
+PASS Testing that a synthetic click event does not dispatch a pointermove event for the synthetic mousemove event. 
+

Added: branches/safari-609-branch/LayoutTests/pointerevents/ios/click-no-pointermove.html (0 => 262551)


--- branches/safari-609-branch/LayoutTests/pointerevents/ios/click-no-pointermove.html	                        (rev 0)
+++ branches/safari-609-branch/LayoutTests/pointerevents/ios/click-no-pointermove.html	2020-06-04 19:00:32 UTC (rev 262551)
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<body>
+<script src=""
+<script src=""
+<script src=""
+<script src=""
+<script>
+
+'use strict';
+
+if (window.internals)
+    internals.settings.setContentChangeObserverEnabled(true);
+
+target_test({ name: "button", width: "200px", height: "200px" }, async (target, test) => {
+    const eventTracker = new EventTracker(target, ["pointermove", "mousemove", "click"]);
+
+    // Tap and allow some time for the "click" event to be dispatched and for the double-tap
+    // delay to expire such that this test doesn't prevent the next test from receiving a tap.
+    await UIHelper.tapAt(100, 100);
+    await UIHelper.delayFor(100);
+
+    eventTracker.assertMatchesEvents([
+        { type: "mousemove" },
+        { type: "click" },
+    ]);
+    test.done();
+}, `Testing that a synthetic click event does not dispatch a pointermove event for the synthetic mousemove event.`);
+
+</script>
+</body>
+</html>
\ No newline at end of file

Modified: branches/safari-609-branch/LayoutTests/pointerevents/utils.js (262550 => 262551)


--- branches/safari-609-branch/LayoutTests/pointerevents/utils.js	2020-06-04 19:00:28 UTC (rev 262550)
+++ branches/safari-609-branch/LayoutTests/pointerevents/utils.js	2020-06-04 19:00:32 UTC (rev 262551)
@@ -12,6 +12,7 @@
     let continutation = args[impliedOptions ? 0 : 1];
     let description = args[impliedOptions ? 1 : 2];
 
+    options.name = options.name || "div";
     options.x = options.x || 0;
     options.y = options.y || 0;
     options.width = options.width || "100%";
@@ -24,7 +25,7 @@
 
 function makeTarget(test, options)
 {
-    const target = document.body.appendChild(document.createElement("div"));
+    const target = document.body.appendChild(document.createElement(options.name));
     target.setAttribute("style", `
         position: absolute;
         left: ${options.x};

Modified: branches/safari-609-branch/Source/WebKit/ChangeLog (262550 => 262551)


--- branches/safari-609-branch/Source/WebKit/ChangeLog	2020-06-04 19:00:28 UTC (rev 262550)
+++ branches/safari-609-branch/Source/WebKit/ChangeLog	2020-06-04 19:00:32 UTC (rev 262551)
@@ -1,5 +1,56 @@
 2020-06-04  Alan Coon  <[email protected]>
 
+        Cherry-pick r261246. rdar://problem/63951358
+
+    pointermove event sometimes has incorrect pointerType of 'mouse' on touch interactions
+    https://bugs.webkit.org/show_bug.cgi?id=210716
+    <rdar://problem/62084817>
+    
+    Patch by Antoine Quint <[email protected]> on 2020-05-06
+    Reviewed by Darin Adler.
+    
+    Source/WebKit:
+    
+    Set the SyntheticClickType to OneFingerTap when creating a synthetic "mousemove" event for a synthetic "click" event as part of a tap.
+    On top of being more indicative of the actual action that triggered the synthetic event, it also has the added quality that it will
+    not yield a "pointermove" event.
+    
+    Test: pointerevents/ios/click-no-pointermove.html
+    
+    * WebProcess/WebPage/ios/WebPageIOS.mm:
+    (WebKit::dispatchSyntheticMouseMove):
+    
+    LayoutTests:
+    
+    Add a new test that checks that with content observation enabled a tap on a <button> element
+    dispatches synthetic mousemove and click events but no pointermove event.
+    
+    * pointerevents/ios/click-no-pointermove-expected.txt: Added.
+    * pointerevents/ios/click-no-pointermove.html: Added.
+    * pointerevents/utils.js:
+    (target_test):
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@261246 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2020-05-06  Antoine Quint  <[email protected]>
+
+            pointermove event sometimes has incorrect pointerType of 'mouse' on touch interactions
+            https://bugs.webkit.org/show_bug.cgi?id=210716
+            <rdar://problem/62084817>
+
+            Reviewed by Darin Adler.
+
+            Set the SyntheticClickType to OneFingerTap when creating a synthetic "mousemove" event for a synthetic "click" event as part of a tap.
+            On top of being more indicative of the actual action that triggered the synthetic event, it also has the added quality that it will
+            not yield a "pointermove" event.
+
+            Test: pointerevents/ios/click-no-pointermove.html
+
+            * WebProcess/WebPage/ios/WebPageIOS.mm:
+            (WebKit::dispatchSyntheticMouseMove):
+
+2020-06-04  Alan Coon  <[email protected]>
+
         Revert r258924. rdar://problem/63902456
 
 2020-05-19  Russell Epstein  <[email protected]>

Modified: branches/safari-609-branch/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm (262550 => 262551)


--- branches/safari-609-branch/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm	2020-06-04 19:00:28 UTC (rev 262550)
+++ branches/safari-609-branch/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm	2020-06-04 19:00:32 UTC (rev 262551)
@@ -602,7 +602,7 @@
     auto ctrlKey = modifiers.contains(WebEvent::Modifier::ControlKey);
     auto altKey = modifiers.contains(WebEvent::Modifier::AltKey);
     auto metaKey = modifiers.contains(WebEvent::Modifier::MetaKey);
-    auto mouseEvent = PlatformMouseEvent(roundedAdjustedPoint, roundedAdjustedPoint, NoButton, PlatformEvent::MouseMoved, 0, shiftKey, ctrlKey, altKey, metaKey, WallTime::now(), WebCore::ForceAtClick, WebCore::NoTap, pointerId);
+    auto mouseEvent = PlatformMouseEvent(roundedAdjustedPoint, roundedAdjustedPoint, NoButton, PlatformEvent::MouseMoved, 0, shiftKey, ctrlKey, altKey, metaKey, WallTime::now(), WebCore::ForceAtClick, WebCore::OneFingerTap, pointerId);
     // FIXME: Pass caps lock state.
     mainFrame.eventHandler().dispatchSyntheticMouseMove(mouseEvent);
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to