Title: [242935] trunk/Source
- Revision
- 242935
- Author
- [email protected]
- Date
- 2019-03-13 21:49:15 -0700 (Wed, 13 Mar 2019)
Log Message
[ContentChangeObserver] Stop content observation when content calls preventDefault() on touch events
https://bugs.webkit.org/show_bug.cgi?id=195724
<rdar://problem/48873456>
Reviewed by Simon Fraser.
Source/WebCore:
Call willNotProceedWithClick on preventDefault. This is very similar to the long press case.
* page/ios/ContentChangeObserver.cpp:
(WebCore::willNotProceedWithClick):
(WebCore::ContentChangeObserver::didRecognizeLongPress):
(WebCore::ContentChangeObserver::didPreventDefaultForEvent):
* page/ios/ContentChangeObserver.h:
Source/WebKit:
* WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
(WebKit::WebChromeClient::didPreventDefaultForEvent):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (242934 => 242935)
--- trunk/Source/WebCore/ChangeLog 2019-03-14 03:59:21 UTC (rev 242934)
+++ trunk/Source/WebCore/ChangeLog 2019-03-14 04:49:15 UTC (rev 242935)
@@ -1,3 +1,19 @@
+2019-03-13 Zalan Bujtas <[email protected]>
+
+ [ContentChangeObserver] Stop content observation when content calls preventDefault() on touch events
+ https://bugs.webkit.org/show_bug.cgi?id=195724
+ <rdar://problem/48873456>
+
+ Reviewed by Simon Fraser.
+
+ Call willNotProceedWithClick on preventDefault. This is very similar to the long press case.
+
+ * page/ios/ContentChangeObserver.cpp:
+ (WebCore::willNotProceedWithClick):
+ (WebCore::ContentChangeObserver::didRecognizeLongPress):
+ (WebCore::ContentChangeObserver::didPreventDefaultForEvent):
+ * page/ios/ContentChangeObserver.h:
+
2019-03-13 Justin Fan <[email protected]>
[Web GPU] Updates to GPUCommandBuffer for new GPUCommandQueue concept
Modified: trunk/Source/WebCore/page/ios/ContentChangeObserver.cpp (242934 => 242935)
--- trunk/Source/WebCore/page/ios/ContentChangeObserver.cpp 2019-03-14 03:59:21 UTC (rev 242934)
+++ trunk/Source/WebCore/page/ios/ContentChangeObserver.cpp 2019-03-14 04:49:15 UTC (rev 242935)
@@ -44,15 +44,26 @@
{
}
-void ContentChangeObserver::didRecognizeLongPress(Frame& mainframe)
+static void willNotProceedWithClick(Frame& mainFrame)
{
- LOG(ContentObservation, "didRecognizeLongPress: cancel ongoing content change observing.");
- for (auto* frame = &mainframe; frame; frame = frame->tree().traverseNext()) {
+ for (auto* frame = &mainFrame; frame; frame = frame->tree().traverseNext()) {
if (auto* document = frame->document())
document->contentChangeObserver().willNotProceedWithClick();
}
}
+void ContentChangeObserver::didRecognizeLongPress(Frame& mainFrame)
+{
+ LOG(ContentObservation, "didRecognizeLongPress: cancel ongoing content change observing.");
+ WebCore::willNotProceedWithClick(mainFrame);
+}
+
+void ContentChangeObserver::didPreventDefaultForEvent(Frame& mainFrame)
+{
+ LOG(ContentObservation, "didPreventDefaultForEvent: cancel ongoing content change observing.");
+ WebCore::willNotProceedWithClick(mainFrame);
+}
+
void ContentChangeObserver::startContentObservationForDuration(Seconds duration)
{
if (!m_document.settings().contentChangeObserverEnabled())
Modified: trunk/Source/WebCore/page/ios/ContentChangeObserver.h (242934 => 242935)
--- trunk/Source/WebCore/page/ios/ContentChangeObserver.h 2019-03-14 03:59:21 UTC (rev 242934)
+++ trunk/Source/WebCore/page/ios/ContentChangeObserver.h 2019-03-14 04:49:15 UTC (rev 242935)
@@ -46,7 +46,9 @@
void didInstallDOMTimer(const DOMTimer&, Seconds timeout, bool singleShot);
void didRemoveDOMTimer(const DOMTimer&);
WEBCORE_EXPORT void willNotProceedWithClick();
- WEBCORE_EXPORT static void didRecognizeLongPress(Frame& mainframe);
+ WEBCORE_EXPORT static void didRecognizeLongPress(Frame& mainFrame);
+ WEBCORE_EXPORT static void didPreventDefaultForEvent(Frame& mainFrame);
+
void didSuspendActiveDOMObjects();
void willDetachPage();
Modified: trunk/Source/WebKit/ChangeLog (242934 => 242935)
--- trunk/Source/WebKit/ChangeLog 2019-03-14 03:59:21 UTC (rev 242934)
+++ trunk/Source/WebKit/ChangeLog 2019-03-14 04:49:15 UTC (rev 242935)
@@ -1,3 +1,14 @@
+2019-03-13 Zalan Bujtas <[email protected]>
+
+ [ContentChangeObserver] Stop content observation when content calls preventDefault() on touch events
+ https://bugs.webkit.org/show_bug.cgi?id=195724
+ <rdar://problem/48873456>
+
+ Reviewed by Simon Fraser.
+
+ * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
+ (WebKit::WebChromeClient::didPreventDefaultForEvent):
+
2019-03-13 Wenson Hsieh <[email protected]>
Make -[_WKAttachment setFileWrapper:contentType:completion:] robust when given a nil completion handler
Modified: trunk/Source/WebKit/WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm (242934 => 242935)
--- trunk/Source/WebKit/WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm 2019-03-14 03:59:21 UTC (rev 242934)
+++ trunk/Source/WebKit/WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm 2019-03-14 04:49:15 UTC (rev 242935)
@@ -37,6 +37,7 @@
#import "WebPage.h"
#import "WebPageProxyMessages.h"
#import <WebCore/AudioSession.h>
+#import <WebCore/ContentChangeObserver.h>
#import <WebCore/Icon.h>
#import <WebCore/NotImplemented.h>
#import <wtf/RefPtr.h>
@@ -48,7 +49,9 @@
void WebChromeClient::didPreventDefaultForEvent()
{
- notImplemented();
+ if (!m_page.mainFrame())
+ return;
+ ContentChangeObserver::didPreventDefaultForEvent(*m_page.mainFrame());
}
#endif
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes