WebKit Bugzilla
Attachment 371693 Details for
Bug 198696
: Drag starting state can get stuck even though the drag has ended
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-198696-20190609114133.patch (text/plain), 4.18 KB, created by
Dean Jackson
on 2019-06-08 18:41:35 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Dean Jackson
Created:
2019-06-08 18:41:35 PDT
Size:
4.18 KB
patch
obsolete
>Subversion Revision: 246231 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 02848ee4d6d17d2c4a0f117ef61e5d9917291052..3f46b1d11344429c8fd4ea0c3e48ae390561bdaa 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,22 @@ >+2019-06-08 Dean Jackson <dino@apple.com> >+ >+ Drag starting state can get stuck even though the drag has ended >+ https://bugs.webkit.org/show_bug.cgi?id=198696 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ 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): >+ > 2019-06-07 Antti Koivisto <antti@apple.com> > > REGRESSION (r245006): Setting scrollview.scrollEnabled clobbers any scrollEnabled set by a client >diff --git a/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm b/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm >index b3a49eeac7f9f3dc1208efb3d01f794e89d141c8..7b66545909ff88820054392a4a7d6e9a0dee10fc 100644 >--- a/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm >+++ b/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm >@@ -6730,6 +6730,7 @@ static WebKit::DocumentEditingContextRequest toWebRequest(UIWKDocumentRequest *r > > - (void)dragInteraction:(UIDragInteraction *)interaction willAnimateLiftWithAnimator:(id <UIDragAnimating>)animator session:(id <UIDragSession>)session > { >+ RELEASE_LOG(DragAndDrop, "Drag session: %p willAnimateLiftWithAnimator: %p", session); > if (!_shouldRestoreCalloutBarAfterDrop && _dragDropInteractionState.anyActiveDragSourceIs(WebCore::DragSourceActionSelection)) { > // FIXME: This SPI should be renamed in UIKit to reflect a more general purpose of hiding interaction assistant controls. > [_textSelectionAssistant willStartScrollingOverflow]; >@@ -6742,6 +6743,7 @@ static WebKit::DocumentEditingContextRequest toWebRequest(UIWKDocumentRequest *r > #if RELEASE_LOG_DISABLED > UNUSED_PARAM(session); > #endif >+ RELEASE_LOG(DragAndDrop, "Drag session willAnimateLiftWithAnimator: %p (animation completion block fired)", session); > if (finalPosition == UIViewAnimatingPositionStart) { > RELEASE_LOG(DragAndDrop, "Drag session ended at start: %p", session); > // The lift was canceled, so -dropInteraction:sessionDidEnd: will never be invoked. This is the last chance to clean up. >@@ -6799,7 +6801,9 @@ static WebKit::DocumentEditingContextRequest toWebRequest(UIWKDocumentRequest *r > > - (void)dragInteraction:(UIDragInteraction *)interaction item:(UIDragItem *)item willAnimateCancelWithAnimator:(id <UIDragAnimating>)animator > { >+ RELEASE_LOG(DragAndDrop, "Drag interaction willAnimateCancelWithAnimator"); > [animator addCompletion:[protectedSelf = retainPtr(self), page = _page] (UIViewAnimatingPosition finalPosition) { >+ RELEASE_LOG(DragAndDrop, "Drag interaction willAnimateCancelWithAnimator (animation completion block fired)"); > page->dragCancelled(); > if (auto completion = protectedSelf->_dragDropInteractionState.takeDragCancelSetDownBlock()) { > page->callAfterNextPresentationUpdate([completion] (WebKit::CallbackBase::Error) { >diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.cpp b/Source/WebKit/WebProcess/WebPage/WebPage.cpp >index 2ed7e931822fcb6c04f2c8e2edc99563f8ae55f8..95716cfa5312a7d4e05ed0c42654112942f89659 100644 >--- a/Source/WebKit/WebProcess/WebPage/WebPage.cpp >+++ b/Source/WebKit/WebProcess/WebPage/WebPage.cpp >@@ -3911,6 +3911,8 @@ void WebPage::dragEnded(WebCore::IntPoint clientPosition, WebCore::IntPoint glob > m_page->mainFrame().eventHandler().dragSourceEndedAt(event, (DragOperation)operation); > > send(Messages::WebPageProxy::DidEndDragging()); >+ >+ m_isStartingDrag = false; > } > > void WebPage::willPerformLoadDragDestinationAction()
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
wenson_hsieh
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 198696
: 371693