Title: [249692] branches/safari-608-branch/Source/WebCore
Revision
249692
Author
[email protected]
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 <[email protected]> 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  <[email protected]>
 
+        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 <[email protected]> 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  <[email protected]>
+
+            [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  <[email protected]>
+
         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
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to