Changeset 242796 in webkit
- Timestamp:
- Mar 12, 2019, 9:40:31 AM (7 years ago)
- Location:
- trunk/Source
- Files:
-
- 10 edited
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/page/ios/ContentChangeObserver.cpp (modified) (2 diffs)
-
WebCore/page/ios/ContentChangeObserver.h (modified) (2 diffs)
-
WebKit/ChangeLog (modified) (1 diff)
-
WebKit/UIProcess/WebPageProxy.h (modified) (1 diff)
-
WebKit/UIProcess/ios/WKContentViewInteraction.mm (modified) (1 diff)
-
WebKit/UIProcess/ios/WebPageProxyIOS.mm (modified) (1 diff)
-
WebKit/WebProcess/WebPage/WebPage.h (modified) (1 diff)
-
WebKit/WebProcess/WebPage/WebPage.messages.in (modified) (1 diff)
-
WebKit/WebProcess/WebPage/ios/WebPageIOS.mm (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r242794 r242796 1 2019-03-12 Zalan Bujtas <zalan@apple.com> 2 3 [ContentChangeObserver] Stop content change observation when the touch event turns into long press 4 https://bugs.webkit.org/show_bug.cgi?id=195601 5 <rdar://problem/48796324> 6 7 Reviewed by Wenson Hsieh. 8 9 Cancel the ongoing content observation (started at touchStart) when the touch event does not turn into a tap gesture. 10 11 Not testable because any subsequent tap would reset the state anyway (though it might be measurable through some code triggering heavy content change). 12 13 * page/ios/ContentChangeObserver.cpp: 14 (WebCore::ContentChangeObserver::didRecognizeLongPress): 15 (WebCore::ContentChangeObserver::willNotProceedWithClick): 16 * page/ios/ContentChangeObserver.h: 17 1 18 2019-03-12 Antti Koivisto <antti@apple.com> 2 19 -
trunk/Source/WebCore/page/ios/ContentChangeObserver.cpp
r242689 r242796 45 45 } 46 46 47 void ContentChangeObserver::didRecognizeLongPress(Frame& mainframe) 48 { 49 LOG(ContentObservation, "didRecognizeLongPress: cancel ongoing content change observing."); 50 for (auto* frame = &mainframe; frame; frame = frame->tree().traverseNext()) { 51 if (auto* document = frame->document()) 52 document->contentChangeObserver().willNotProceedWithClick(); 53 } 54 } 55 47 56 void ContentChangeObserver::startContentObservationForDuration(Seconds duration) 48 57 { … … 93 102 LOG(ContentObservation, "willNotProceedWithClick: click will not happen."); 94 103 setIsBetweenTouchEndAndMouseMoved(false); 95 // FIXME: Add support for preventDefault() and long press.104 // FIXME: Add support for preventDefault(). 96 105 } 97 106 -
trunk/Source/WebCore/page/ios/ContentChangeObserver.h
r242714 r242796 47 47 void didRemoveDOMTimer(const DOMTimer&); 48 48 WEBCORE_EXPORT void willNotProceedWithClick(); 49 WEBCORE_EXPORT static void didRecognizeLongPress(Frame& mainframe); 49 50 void didSuspendActiveDOMObjects(); 50 51 void willDetachPage(); … … 104 105 void mouseMovedDidStart(); 105 106 void mouseMovedDidFinish(); 107 108 void didRecognizeLongPress(); 106 109 107 110 void contentVisibilityDidChange(); -
trunk/Source/WebKit/ChangeLog
r242795 r242796 1 2019-03-12 Zalan Bujtas <zalan@apple.com> 2 3 [ContentChangeObserver] Stop content change observation when the touch event turns into long press 4 https://bugs.webkit.org/show_bug.cgi?id=195601 5 <rdar://problem/48796324> 6 7 Reviewed by Wenson Hsieh. 8 9 Add didRecognizeLongPress() message to be able to cancel content observation (started at touchStart). 10 11 * UIProcess/WebPageProxy.h: 12 * UIProcess/ios/WKContentViewInteraction.mm: 13 (-[WKContentView _longPressRecognized:]): 14 * UIProcess/ios/WebPageProxyIOS.mm: 15 (WebKit::WebPageProxy::didRecognizeLongPress): 16 * WebProcess/WebPage/WebPage.h: 17 * WebProcess/WebPage/WebPage.messages.in: 18 * WebProcess/WebPage/ios/WebPageIOS.mm: 19 (WebKit::WebPage::didRecognizeLongPress): 20 1 21 2019-03-11 Andy Estes <aestes@apple.com> 2 22 -
trunk/Source/WebKit/UIProcess/WebPageProxy.h
r242760 r242796 1189 1189 void tapHighlightAtPosition(const WebCore::FloatPoint&, uint64_t& requestID); 1190 1190 void handleTap(const WebCore::FloatPoint&, OptionSet<WebKit::WebEvent::Modifier>, uint64_t layerTreeTransactionIdAtLastTouchStart); 1191 void didRecognizeLongPress(); 1191 1192 1192 1193 void inspectorNodeSearchMovedToPosition(const WebCore::FloatPoint&); -
trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
r242757 r242796 2176 2176 [self _resetIsDoubleTapPending]; 2177 2177 [self _cancelTouchEventGestureRecognizer]; 2178 _page->didRecognizeLongPress(); 2178 2179 2179 2180 _lastInteractionLocation = gestureRecognizer.startPoint; -
trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
r242757 r242796 839 839 } 840 840 841 void WebPageProxy::didRecognizeLongPress() 842 { 843 process().send(Messages::WebPage::DidRecognizeLongPress(), m_pageID); 844 } 845 841 846 void WebPageProxy::inspectorNodeSearchMovedToPosition(const WebCore::FloatPoint& position) 842 847 { -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.h
r242757 r242796 621 621 void cancelPotentialTapInFrame(WebFrame&); 622 622 void tapHighlightAtPosition(uint64_t requestID, const WebCore::FloatPoint&); 623 void didRecognizeLongPress(); 623 624 624 625 void inspectorNodeSearchMovedToPosition(const WebCore::FloatPoint&); -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in
r242757 r242796 57 57 CancelPotentialTap() 58 58 TapHighlightAtPosition(uint64_t requestID, WebCore::FloatPoint point) 59 DidRecognizeLongPress() 59 60 InspectorNodeSearchMovedToPosition(WebCore::FloatPoint point) 60 61 InspectorNodeSearchEndedAtPosition(WebCore::FloatPoint point) -
trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
r242777 r242796 891 891 } 892 892 893 void WebPage::didRecognizeLongPress() 894 { 895 ContentChangeObserver::didRecognizeLongPress(m_page->mainFrame()); 896 } 897 893 898 void WebPage::tapHighlightAtPosition(uint64_t requestID, const FloatPoint& position) 894 899 {
Note:
See TracChangeset
for help on using the changeset viewer.