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