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

Changeset 246253 in webkit


Ignore:
Timestamp:
Jun 9, 2019, 11:25:39 PM (7 years ago)
Author:
bshafiei@apple.com
Message:

Cherry-pick r246239. rdar://problem/51462498

Drag starting state can get stuck even though the drag has ended
https://bugs.webkit.org/show_bug.cgi?id=198696
<rdar://problem/51556045>

Reviewed by Wenson Hsieh.

In iOS 13, we're seeing cases of the DragSession not
correctly ending, and thus leaving m_isStartingDrag in
an incorrect state. Temporarily force this to be reset
in ::dragEnded while investigating

  • UIProcess/ios/WKContentViewInteraction.mm: Add some more release logging while here. (-[WKContentView dragInteraction:willAnimateLiftWithAnimator:session:]): (-[WKContentView dragInteraction:item:willAnimateCancelWithAnimator:]):
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::dragEnded):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@246239 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Location:
branches/safari-608.1.27-branch/Source/WebKit
Files:
3 edited

Legend:

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

    r246252 r246253  
     12019-06-09  Babak Shafiei  <bshafiei@apple.com>
     2
     3        Cherry-pick r246239. rdar://problem/51462498
     4
     5    Drag starting state can get stuck even though the drag has ended
     6    https://bugs.webkit.org/show_bug.cgi?id=198696
     7    <rdar://problem/51556045>
     8   
     9    Reviewed by Wenson Hsieh.
     10   
     11    In iOS 13, we're seeing cases of the DragSession not
     12    correctly ending, and thus leaving m_isStartingDrag in
     13    an incorrect state. Temporarily force this to be reset
     14    in ::dragEnded while investigating
     15   
     16    * UIProcess/ios/WKContentViewInteraction.mm: Add some more release logging
     17    while here.
     18    (-[WKContentView dragInteraction:willAnimateLiftWithAnimator:session:]):
     19    (-[WKContentView dragInteraction:item:willAnimateCancelWithAnimator:]):
     20    * WebProcess/WebPage/WebPage.cpp:
     21    (WebKit::WebPage::dragEnded):
     22   
     23    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@246239 268f45cc-cd09-0410-ab3c-d52691b4dbfc
     24
     25    2019-06-08  Dean Jackson  <dino@apple.com>
     26
     27            Drag starting state can get stuck even though the drag has ended
     28            https://bugs.webkit.org/show_bug.cgi?id=198696
     29            <rdar://problem/51556045>
     30
     31            Reviewed by Wenson Hsieh.
     32
     33            In iOS 13, we're seeing cases of the DragSession not
     34            correctly ending, and thus leaving m_isStartingDrag in
     35            an incorrect state. Temporarily force this to be reset
     36            in ::dragEnded while investigating
     37
     38            * UIProcess/ios/WKContentViewInteraction.mm: Add some more release logging
     39            while here.
     40            (-[WKContentView dragInteraction:willAnimateLiftWithAnimator:session:]):
     41            (-[WKContentView dragInteraction:item:willAnimateCancelWithAnimator:]):
     42            * WebProcess/WebPage/WebPage.cpp:
     43            (WebKit::WebPage::dragEnded):
     44
    1452019-06-09  Babak Shafiei  <bshafiei@apple.com>
    246
  • branches/safari-608.1.27-branch/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm

    r246252 r246253  
    67066706- (void)dragInteraction:(UIDragInteraction *)interaction willAnimateLiftWithAnimator:(id <UIDragAnimating>)animator session:(id <UIDragSession>)session
    67076707{
     6708    RELEASE_LOG(DragAndDrop, "Drag session willAnimateLiftWithAnimator: %p", session);
    67086709    if (!_shouldRestoreCalloutBarAfterDrop && _dragDropInteractionState.anyActiveDragSourceIs(WebCore::DragSourceActionSelection)) {
    67096710        // FIXME: This SPI should be renamed in UIKit to reflect a more general purpose of hiding interaction assistant controls.
     
    67246725            page->dragEnded(positionForDragEnd, positionForDragEnd, WebCore::DragOperationNone);
    67256726        }
     6727#if !RELEASE_LOG_DISABLED
     6728        else
     6729            RELEASE_LOG(DragAndDrop, "Drag session did not end at start: %p", session);
     6730#endif
    67266731    }];
    67276732}
     
    67756780- (void)dragInteraction:(UIDragInteraction *)interaction item:(UIDragItem *)item willAnimateCancelWithAnimator:(id <UIDragAnimating>)animator
    67766781{
     6782    RELEASE_LOG(DragAndDrop, "Drag interaction willAnimateCancelWithAnimator");
    67776783    [animator addCompletion:[protectedSelf = retainPtr(self), page = _page] (UIViewAnimatingPosition finalPosition) {
     6784        RELEASE_LOG(DragAndDrop, "Drag interaction willAnimateCancelWithAnimator (animation completion block fired)");
    67786785        page->dragCancelled();
    67796786        if (auto completion = protectedSelf->_dragDropInteractionState.takeDragCancelSetDownBlock()) {
  • branches/safari-608.1.27-branch/Source/WebKit/WebProcess/WebPage/WebPage.cpp

    r245902 r246253  
    39103910
    39113911    send(Messages::WebPageProxy::DidEndDragging());
     3912
     3913    m_isStartingDrag = false;
    39123914}
    39133915
Note: See TracChangeset for help on using the changeset viewer.