Title: [249493] trunk/Source/WebCore
Revision
249493
Author
commit-qu...@webkit.org
Date
2019-09-04 12:38:37 -0700 (Wed, 04 Sep 2019)

Log Message

[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):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (249492 => 249493)


--- trunk/Source/WebCore/ChangeLog	2019-09-04 19:37:38 UTC (rev 249492)
+++ trunk/Source/WebCore/ChangeLog	2019-09-04 19:38:37 UTC (rev 249493)
@@ -1,3 +1,18 @@
+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-04  Youenn Fablet  <you...@apple.com>
 
         Abstract out WebSocketChannel message queue

Modified: trunk/Source/WebCore/page/Quirks.cpp (249492 => 249493)


--- trunk/Source/WebCore/page/Quirks.cpp	2019-09-04 19:37:38 UTC (rev 249492)
+++ trunk/Source/WebCore/page/Quirks.cpp	2019-09-04 19:38:37 UTC (rev 249493)
@@ -376,6 +376,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