Title: [249692] branches/safari-608-branch/Source/WebCore
Revision
249692
Author
alanc...@apple.com
Date
2019-09-09 20:19:40 -0700 (Mon, 09 Sep 2019)

Log Message

Cherry-pick r249493. rdar://problem/55182906

    [iPadOS] Unable to change sheets on Airtable.com
    https://bugs.webkit.org/show_bug.cgi?id=201456
    <rdar://problem/51557377>

    Patch by Antoine Quint <grao...@apple.com> on 2019-09-04
    Reviewed by Dean Jackson.

    Simulated mouse events are required to be able to manipulate cells and and columns on Airtable.com. However, dispatching a "mousedown" event on
    tabs allowing to pick a different sheet ends up calling preventDefault() and prevent "click" events from being dispatched, which makes it
    impossible to change sheet. We now limit the dispatch of simulated mouse events to the grid.

    * page/Quirks.cpp:
    (WebCore::Quirks::simulatedMouseEventTypeForTarget const):

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

Modified Paths

Diff

Modified: branches/safari-608-branch/Source/WebCore/ChangeLog (249691 => 249692)


--- branches/safari-608-branch/Source/WebCore/ChangeLog	2019-09-10 03:19:37 UTC (rev 249691)
+++ branches/safari-608-branch/Source/WebCore/ChangeLog	2019-09-10 03:19:40 UTC (rev 249692)
@@ -1,5 +1,40 @@
 2019-09-09  Kocsen Chung  <kocsen_ch...@apple.com>
 
+        Cherry-pick r249493. rdar://problem/55182906
+
+    [iPadOS] Unable to change sheets on Airtable.com
+    https://bugs.webkit.org/show_bug.cgi?id=201456
+    <rdar://problem/51557377>
+    
+    Patch by Antoine Quint <grao...@apple.com> on 2019-09-04
+    Reviewed by Dean Jackson.
+    
+    Simulated mouse events are required to be able to manipulate cells and and columns on Airtable.com. However, dispatching a "mousedown" event on
+    tabs allowing to pick a different sheet ends up calling preventDefault() and prevent "click" events from being dispatched, which makes it
+    impossible to change sheet. We now limit the dispatch of simulated mouse events to the grid.
+    
+    * page/Quirks.cpp:
+    (WebCore::Quirks::simulatedMouseEventTypeForTarget const):
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249493 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2019-09-04  Antoine Quint  <grao...@apple.com>
+
+            [iPadOS] Unable to change sheets on Airtable.com
+            https://bugs.webkit.org/show_bug.cgi?id=201456
+            <rdar://problem/51557377>
+
+            Reviewed by Dean Jackson.
+
+            Simulated mouse events are required to be able to manipulate cells and and columns on Airtable.com. However, dispatching a "mousedown" event on
+            tabs allowing to pick a different sheet ends up calling preventDefault() and prevent "click" events from being dispatched, which makes it
+            impossible to change sheet. We now limit the dispatch of simulated mouse events to the grid.
+
+            * page/Quirks.cpp:
+            (WebCore::Quirks::simulatedMouseEventTypeForTarget const):
+
+2019-09-09  Kocsen Chung  <kocsen_ch...@apple.com>
+
         Cherry-pick r248170. rdar://problem/55183128
 
     [iOS] Directly use RealtimeMediaSourceCenter to compute the media capture  state

Modified: branches/safari-608-branch/Source/WebCore/page/Quirks.cpp (249691 => 249692)


--- branches/safari-608-branch/Source/WebCore/page/Quirks.cpp	2019-09-10 03:19:37 UTC (rev 249691)
+++ branches/safari-608-branch/Source/WebCore/page/Quirks.cpp	2019-09-10 03:19:40 UTC (rev 249692)
@@ -372,6 +372,18 @@
     if (equalLettersIgnoringASCIICase(host, "desmos.com") || host.endsWithIgnoringASCIICase(".desmos.com"))
         return Event::IsCancelable::No;
 
+    if (equalLettersIgnoringASCIICase(host, "airtable.com") || host.endsWithIgnoringASCIICase(".airtable.com")) {
+        // We want to limit simulated mouse events to elements under <div id="paneContainer"> to allow for column re-ordering and multiple cell selection.
+        if (is<Node>(target)) {
+            auto* node = downcast<Node>(target);
+            if (auto* paneContainer = node->treeScope().getElementById(AtomString("paneContainer"))) {
+                if (paneContainer->contains(node))
+                    return Event::IsCancelable::Yes;
+            }
+        }
+        return { };
+    }
+
     return Event::IsCancelable::Yes;
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to