⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 274245 in webkit


Ignore:
Timestamp:
Mar 10, 2021, 3:38:53 PM (6 years ago)
Author:
Russell Epstein
Message:

Revert r271193. rdar://problem/75273221

Location:
branches/safari-611.1.21.0-branch/Source/WebKit
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-611.1.21.0-branch/Source/WebKit/ChangeLog

    r274236 r274245  
     12021-03-10  Ruben Turcios  <rubent_22@apple.com>
     2
     3        Revert r271193. rdar://problem/75273221
     4
    152021-03-10  Ruben Turcios  <rubent_22@apple.com>
    26
  • branches/safari-611.1.21.0-branch/Source/WebKit/UIProcess/PageClient.h

    r273456 r274245  
    340340#endif
    341341#if ENABLE(IOS_TOUCH_EVENTS)
    342     virtual void doneDeferringTouchStart(bool preventNativeGestures) = 0;
     342    virtual void doneDeferringNativeGestures(bool preventNativeGestures) = 0;
    343343#endif
    344344
  • branches/safari-611.1.21.0-branch/Source/WebKit/UIProcess/WebPageProxy.cpp

    r274105 r274245  
    29152915    if (touchEventsTrackingType == TrackingType::NotTracking) {
    29162916        if (!isHandlingPreventableTouchStart())
    2917             pageClient().doneDeferringTouchStart(false);
     2917            pageClient().doneDeferringNativeGestures(false);
    29182918        return;
    29192919    }
     
    29302930        didReceiveEvent(event.type(), false);
    29312931        if (!isHandlingPreventableTouchStart())
    2932             pageClient().doneDeferringTouchStart(false);
     2932            pageClient().doneDeferringNativeGestures(false);
    29332933        return;
    29342934    }
     
    29372937        ++m_handlingPreventableTouchStartCount;
    29382938        Function<void(bool, CallbackBase::Error)> completionHandler = [this, protectedThis = makeRef(*this), event](bool handled, CallbackBase::Error error) {
    2939             bool didFinishDeferringTouchStart = false;
    2940             ASSERT_IMPLIES(event.type() == WebEvent::TouchStart, m_handlingPreventableTouchStartCount);
    2941             if (event.type() == WebEvent::TouchStart && m_handlingPreventableTouchStartCount)
    2942                 didFinishDeferringTouchStart = !--m_handlingPreventableTouchStartCount;
     2939            ASSERT(m_handlingPreventableTouchStartCount);
     2940            if (m_handlingPreventableTouchStartCount)
     2941                --m_handlingPreventableTouchStartCount;
    29432942
    29442943            bool handledOrFailedWithError = handled || error != CallbackBase::Error::None || m_handledSynchronousTouchEventWhileDispatchingPreventableTouchStart;
     
    29512950            didReceiveEvent(event.type(), handledOrFailedWithError);
    29522951            pageClient().doneWithTouchEvent(event, handledOrFailedWithError);
    2953 
    2954             if (didFinishDeferringTouchStart)
    2955                 pageClient().doneDeferringTouchStart(handledOrFailedWithError);
     2952            if (!isHandlingPreventableTouchStart())
     2953                pageClient().doneDeferringNativeGestures(handledOrFailedWithError);
    29562954        };
    29572955
     
    29702968    pageClient().doneWithTouchEvent(event, handled);
    29712969    if (!isHandlingPreventableTouchStart())
    2972         pageClient().doneDeferringTouchStart(handled);
     2970        pageClient().doneDeferringNativeGestures(handled);
    29732971    else if (handled)
    29742972        m_handledSynchronousTouchEventWhileDispatchingPreventableTouchStart = true;
  • branches/safari-611.1.21.0-branch/Source/WebKit/UIProcess/ios/PageClientImplIOS.h

    r271193 r274245  
    113113#endif
    114114#if ENABLE(IOS_TOUCH_EVENTS)
    115     void doneDeferringTouchStart(bool preventNativeGestures) override;
     115    void doneDeferringNativeGestures(bool preventNativeGestures) override;
    116116#endif
    117117    RefPtr<WebPopupMenuProxy> createPopupMenuProxy(WebPageProxy&) override;
  • branches/safari-611.1.21.0-branch/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm

    r271193 r274245  
    448448#if ENABLE(IOS_TOUCH_EVENTS)
    449449
    450 void PageClientImpl::doneDeferringTouchStart(bool preventNativeGestures)
    451 {
    452     [m_contentView _doneDeferringTouchStart:preventNativeGestures];
     450void PageClientImpl::doneDeferringNativeGestures(bool preventNativeGestures)
     451{
     452    [m_contentView _doneDeferringNativeGestures:preventNativeGestures];
    453453}
    454454
  • branches/safari-611.1.21.0-branch/Source/WebKit/UIProcess/ios/WKContentViewInteraction.h

    r271193 r274245  
    243243@interface WKContentView () {
    244244#if ENABLE(IOS_TOUCH_EVENTS)
    245     RetainPtr<WKDeferringGestureRecognizer> _touchStartDeferringGestureRecognizerForImmediatelyResettableGestures;
    246     RetainPtr<WKDeferringGestureRecognizer> _touchStartDeferringGestureRecognizerForDelayedResettableGestures;
    247     RetainPtr<WKDeferringGestureRecognizer> _touchStartDeferringGestureRecognizerForSyntheticTapGestures;
     245    RetainPtr<WKDeferringGestureRecognizer> _deferringGestureRecognizerForImmediatelyResettableGestures;
     246    RetainPtr<WKDeferringGestureRecognizer> _deferringGestureRecognizerForDelayedResettableGestures;
     247    RetainPtr<WKDeferringGestureRecognizer> _deferringGestureRecognizerForSyntheticTapGestures;
    248248#endif
    249249    RetainPtr<UIWebTouchEventsGestureRecognizer> _touchEventGestureRecognizer;
     
    540540#endif
    541541#if ENABLE(IOS_TOUCH_EVENTS)
    542 - (void)_doneDeferringTouchStart:(BOOL)preventNativeGestures;
     542- (void)_doneDeferringNativeGestures:(BOOL)preventNativeGestures;
    543543#endif
    544544- (void)_commitPotentialTapFailed;
  • branches/safari-611.1.21.0-branch/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm

    r271828 r274245  
    765765
    766766#if ENABLE(IOS_TOUCH_EVENTS)
    767     _touchStartDeferringGestureRecognizerForImmediatelyResettableGestures = adoptNS([[WKDeferringGestureRecognizer alloc] initWithDeferringGestureDelegate:self]);
    768     [_touchStartDeferringGestureRecognizerForImmediatelyResettableGestures setName:@"Touch start deferrer (immediate reset)"];
    769 
    770     _touchStartDeferringGestureRecognizerForDelayedResettableGestures = adoptNS([[WKDeferringGestureRecognizer alloc] initWithDeferringGestureDelegate:self]);
    771     [_touchStartDeferringGestureRecognizerForDelayedResettableGestures setName:@"Touch start deferrer (delayed reset)"];
    772 
    773     _touchStartDeferringGestureRecognizerForSyntheticTapGestures = adoptNS([[WKDeferringGestureRecognizer alloc] initWithDeferringGestureDelegate:self]);
    774     [_touchStartDeferringGestureRecognizerForSyntheticTapGestures setName:@"Touch start deferrer (synthetic tap)"];
    775 
    776     for (WKDeferringGestureRecognizer *gesture in self._touchStartDeferringGestures) {
     767    _deferringGestureRecognizerForImmediatelyResettableGestures = adoptNS([[WKDeferringGestureRecognizer alloc] initWithDeferringGestureDelegate:self]);
     768    [_deferringGestureRecognizerForImmediatelyResettableGestures setName:@"Touch event deferrer (immediate reset)"];
     769
     770    _deferringGestureRecognizerForDelayedResettableGestures = adoptNS([[WKDeferringGestureRecognizer alloc] initWithDeferringGestureDelegate:self]);
     771    [_deferringGestureRecognizerForDelayedResettableGestures setName:@"Touch event deferrer (delayed reset)"];
     772
     773    _deferringGestureRecognizerForSyntheticTapGestures = adoptNS([[WKDeferringGestureRecognizer alloc] initWithDeferringGestureDelegate:self]);
     774    [_deferringGestureRecognizerForSyntheticTapGestures setName:@"Touch event deferrer (synthetic tap)"];
     775
     776    for (WKDeferringGestureRecognizer *gesture in self._deferringGestureRecognizers) {
    777777        gesture.delegate = self;
    778778        [self addGestureRecognizer:gesture];
    779779    }
    780 #endif // ENABLE(IOS_TOUCH_EVENTS)
     780#endif
    781781
    782782    _touchEventGestureRecognizer = adoptNS([[UIWebTouchEventsGestureRecognizer alloc] initWithTarget:self action:@selector(_webTouchEventsRecognized:) touchDelegate:self]);
     
    954954
    955955#if ENABLE(IOS_TOUCH_EVENTS)
    956     for (WKDeferringGestureRecognizer *gesture in self._touchStartDeferringGestures) {
     956    for (WKDeferringGestureRecognizer *gesture in self._deferringGestureRecognizers) {
    957957        gesture.delegate = nil;
    958958        [self removeGestureRecognizer:gesture];
     
    10851085{
    10861086#if ENABLE(IOS_TOUCH_EVENTS)
    1087     for (WKDeferringGestureRecognizer *gesture in self._touchStartDeferringGestures)
     1087    for (WKDeferringGestureRecognizer *gesture in self._deferringGestureRecognizers)
    10881088        [self removeGestureRecognizer:gesture];
    10891089#endif
     
    11121112{
    11131113#if ENABLE(IOS_TOUCH_EVENTS)
    1114     for (WKDeferringGestureRecognizer *gesture in self._touchStartDeferringGestures)
     1114    for (WKDeferringGestureRecognizer *gesture in self._deferringGestureRecognizers)
    11151115        [self addGestureRecognizer:gesture];
    11161116#endif
     
    15491549        if (nativeWebTouchEvent.isPotentialTap() && self.hasHiddenContentEditable && self._hasFocusedElement && !self.window.keyWindow)
    15501550            [self.window makeKeyWindow];
    1551 
    1552 #if ENABLE(IOS_TOUCH_EVENTS)
    1553         if (!_page->isHandlingPreventableTouchStart()) {
    1554             for (WKDeferringGestureRecognizer *gesture in self._touchStartDeferringGestures) {
    1555                 if (gesture.state == UIGestureRecognizerStatePossible)
    1556                     gesture.state = UIGestureRecognizerStateFailed;
    1557             }
    1558         }
    1559 #endif // ENABLE(IOS_TOUCH_EVENTS)
    1560     }
    1561 #endif // ENABLE(TOUCH_EVENTS)
     1551    }
     1552#endif
    15621553}
    15631554
     
    17371728#if ENABLE(IOS_TOUCH_EVENTS)
    17381729
    1739 - (NSArray<WKDeferringGestureRecognizer *> *)_touchStartDeferringGestures
     1730- (NSArray<WKDeferringGestureRecognizer *> *)_deferringGestureRecognizers
    17401731{
    17411732    WKDeferringGestureRecognizer *recognizers[3];
     
    17451736            recognizers[count++] = recognizer.get();
    17461737    };
    1747     add(_touchStartDeferringGestureRecognizerForImmediatelyResettableGestures);
    1748     add(_touchStartDeferringGestureRecognizerForDelayedResettableGestures);
    1749     add(_touchStartDeferringGestureRecognizerForSyntheticTapGestures);
     1738    add(_deferringGestureRecognizerForImmediatelyResettableGestures);
     1739    add(_deferringGestureRecognizerForDelayedResettableGestures);
     1740    add(_deferringGestureRecognizerForSyntheticTapGestures);
    17501741    return [NSArray arrayWithObjects:recognizers count:count];
    17511742}
    17521743
    1753 - (void)_doneDeferringTouchStart:(BOOL)preventNativeGestures
    1754 {
    1755     for (WKDeferringGestureRecognizer *gesture in self._touchStartDeferringGestures)
     1744- (void)_doneDeferringNativeGestures:(BOOL)preventNativeGestures
     1745{
     1746    for (WKDeferringGestureRecognizer *gesture in self._deferringGestureRecognizers)
    17561747        [gesture setDefaultPrevented:preventNativeGestures];
    17571748}
     
    21542145{
    21552146#if ENABLE(IOS_TOUCH_EVENTS)
    2156     for (WKDeferringGestureRecognizer *gesture in self._touchStartDeferringGestures) {
     2147    for (WKDeferringGestureRecognizer *gesture in self._deferringGestureRecognizers) {
    21572148        if (isSamePair(gestureRecognizer, otherGestureRecognizer, _touchEventGestureRecognizer.get(), gesture))
    21582149            return YES;
     
    72897280}
    72907281
     7282- (BOOL)deferringGestureRecognizer:(WKDeferringGestureRecognizer *)deferringGestureRecognizer shouldDeferGesturesAfterEndingTouchesWithEvent:(UIEvent *)event
     7283{
     7284    return _page->isHandlingPreventableTouchStart();
     7285}
     7286
    72917287- (BOOL)deferringGestureRecognizer:(WKDeferringGestureRecognizer *)deferringGestureRecognizer shouldDeferOtherGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
    72927288{
     
    73407336    };
    73417337
    7342     if ([gestureRecognizer isKindOfClass:WKSyntheticTapGestureRecognizer.class])
    7343         return deferringGestureRecognizer == _touchStartDeferringGestureRecognizerForSyntheticTapGestures;
     7338    if (gestureRecognizer == _doubleTapGestureRecognizer || gestureRecognizer == _singleTapGestureRecognizer)
     7339        return deferringGestureRecognizer == _deferringGestureRecognizerForSyntheticTapGestures;
    73447340
    73457341    if (mayDelayResetOfContainingSubgraph(gestureRecognizer))
    7346         return deferringGestureRecognizer == _touchStartDeferringGestureRecognizerForDelayedResettableGestures;
    7347 
    7348     return deferringGestureRecognizer == _touchStartDeferringGestureRecognizerForImmediatelyResettableGestures;
     7342        return deferringGestureRecognizer == _deferringGestureRecognizerForDelayedResettableGestures;
     7343
     7344    return deferringGestureRecognizer == _deferringGestureRecognizerForImmediatelyResettableGestures;
    73497345#else
    73507346    UNUSED_PARAM(deferringGestureRecognizer);
  • branches/safari-611.1.21.0-branch/Source/WebKit/UIProcess/ios/WKDeferringGestureRecognizer.h

    r271193 r274245  
    3131
    3232@protocol WKDeferringGestureRecognizerDelegate
     33- (BOOL)deferringGestureRecognizer:(WKDeferringGestureRecognizer *)deferringGestureRecognizer shouldDeferGesturesAfterEndingTouchesWithEvent:(UIEvent *)event;
    3334- (BOOL)deferringGestureRecognizer:(WKDeferringGestureRecognizer *)deferringGestureRecognizer shouldDeferGesturesAfterBeginningTouchesWithEvent:(UIEvent *)event;
    3435- (BOOL)deferringGestureRecognizer:(WKDeferringGestureRecognizer *)deferringGestureRecognizer shouldDeferOtherGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer;
  • branches/safari-611.1.21.0-branch/Source/WebKit/UIProcess/ios/WKDeferringGestureRecognizer.mm

    r271193 r274245  
    5656}
    5757
     58- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
     59{
     60    [super touchesEnded:touches withEvent:event];
     61
     62    if (self.state != UIGestureRecognizerStatePossible)
     63        return;
     64
     65    if ([_deferringGestureDelegate deferringGestureRecognizer:self shouldDeferGesturesAfterEndingTouchesWithEvent:event])
     66        return;
     67
     68    self.state = UIGestureRecognizerStateFailed;
     69}
     70
    5871- (void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
    5972{
Note: See TracChangeset for help on using the changeset viewer.