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

Changeset 249226 in webkit


Ignore:
Timestamp:
Aug 28, 2019, 5:01:03 PM (7 years ago)
Author:
Wenson Hsieh
Message:

WKAttachmentTests.DropFolderAsAttachmentAndMoveByDragging fails in some iOS simulator configurations
https://bugs.webkit.org/show_bug.cgi?id=201241
<rdar://problem/54317588>

Reviewed by Tim Horton.

For reasons that are still unknown, it's possible for iOS 13 simulators to get into a state where the IPC
communication delay between the web and UI processes can become extraordinarily long. Under these circumstances,
the drag and drop harness fails to simulate a drop, since it ends up firing all scheduled calls to
-dropInteraction:sessionDidUpdate: before the first response from the web process arrives in the UI process, so
it believes that the web view has rejected the drop from being handled.

Instead, make the drag and drop simulator robust by ensuring a presentation update between drop session updates,
to make sure that the web process has had time to send a response after each update.

  • TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:

(-[DragAndDropSimulator _advanceProgress]):

Location:
trunk/Tools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r249224 r249226  
     12019-08-28  Wenson Hsieh  <wenson_hsieh@apple.com>
     2
     3        WKAttachmentTests.DropFolderAsAttachmentAndMoveByDragging fails in some iOS simulator configurations
     4        https://bugs.webkit.org/show_bug.cgi?id=201241
     5        <rdar://problem/54317588>
     6
     7        Reviewed by Tim Horton.
     8
     9        For reasons that are still unknown, it's possible for iOS 13 simulators to get into a state where the IPC
     10        communication delay between the web and UI processes can become extraordinarily long. Under these circumstances,
     11        the drag and drop harness fails to simulate a drop, since it ends up firing all scheduled calls to
     12        -dropInteraction:sessionDidUpdate: before the first response from the web process arrives in the UI process, so
     13        it believes that the web view has rejected the drop from being handled.
     14
     15        Instead, make the drag and drop simulator robust by ensuring a presentation update between drop session updates,
     16        to make sure that the web process has had time to send a response after each update.
     17
     18        * TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:
     19        (-[DragAndDropSimulator _advanceProgress]):
     20
    1212019-08-28  Megan Gardner  <megan_gardner@apple.com>
    222
  • trunk/Tools/TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm

    r247022 r249226  
    625625    case DragAndDropPhaseEntered: {
    626626        _lastKnownDropProposal = [[_webView dropInteractionDelegate] dropInteraction:[_webView dropInteraction] sessionDidUpdate:_dropSession.get()];
     627        [_webView waitForNextPresentationUpdate];
    627628        if (![self shouldAllowMoveOperation] && [_lastKnownDropProposal operation] == UIDropOperationMove)
    628629            _lastKnownDropProposal = adoptNS([[UIDropProposal alloc] initWithDropOperation:UIDropOperationCancel]);
Note: See TracChangeset for help on using the changeset viewer.