Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d53ab7c16664e076925dd62f6a03e5074067d63e
      
https://github.com/WebKit/WebKit/commit/d53ab7c16664e076925dd62f6a03e5074067d63e
  Author: Wenson Hsieh <[email protected]>
  Date:   2024-09-03 (Tue, 03 Sep 2024)

  Changed paths:
    M Source/WebKit/UIProcess/ios/DragDropInteractionState.h
    M Source/WebKit/UIProcess/ios/DragDropInteractionState.mm
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
    M Tools/TestRunnerShared/spi/UIKitSPIForTesting.h
    M Tools/TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm
    M Tools/TestWebKitAPI/cocoa/DragAndDropSimulator.h
    M Tools/TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm

  Log Message:
  -----------
  Fix the iOS build after rdar://115866097
https://bugs.webkit.org/show_bug.cgi?id=279090
rdar://135224537

Reviewed by Abrar Rahman Protyasha.

Fix the iOS build, after the removal of the 
`UIDragInteractionDelegate_ForWebKitOnly` SPI protocol.

This was used to implement asynchronously-triggered drag interactions prior to 
iOS 17.4; however, on
iOS 17.4 and later, WebKit now uses public API from BrowserEngineKit's 
`BEDragInteractionDelegate`,
which offers parity with the SPI protocol.

The implementations of `BEDragInteractionDelegate` protocol methods currently 
wrap  implementations
of their SPI counterparts. This was only done to make it possible to easily 
switch between using the
API and SPI with a runtime flag, while maintining binary and source 
compatibility with both. This is
no longer necessary since the oldest maintained version of WebKit is now iOS 
17.5 (currently in EWS)
which uses the newer BrowserEngineKit APIs, so we can switch entirely to this 
new API.

* Source/WebKit/UIProcess/ios/DragDropInteractionState.h:
(WebKit::DragDropInteractionState::BlockPtr<BOOL):
(WebKit::DragDropInteractionState::BlockPtr<void): Deleted.
* Source/WebKit/UIProcess/ios/DragDropInteractionState.mm:
(WebKit::DragDropInteractionState::prepareForDragSession):
(WebKit::DragDropInteractionState::dragSessionWillRequestAdditionalItem):
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _didHandleDragStartRequest:]):
(-[WKContentView dragInteraction:prepareDragSession:completion:]):
(-[WKContentView 
dragInteraction:itemsForAddingToSession:forTouchAtPoint:completion:]):
(-[WKContentView 
_dragInteraction:itemsForAddingToSession:withTouchAtPoint:completion:]): 
Deleted.
(-[WKContentView _dragInteraction:prepareForSession:completion:]): Deleted.
* Tools/TestRunnerShared/spi/UIKitSPIForTesting.h:
* Tools/TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:
(TestWebKitAPI::TEST(DragAndDropTests, UnresponsivePageDoesNotHangUI)):
* Tools/TestWebKitAPI/cocoa/DragAndDropSimulator.h:
* Tools/TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:
(-[WKWebView dropInteractionDelegate]):
(-[WKWebView dragInteractionDelegate]):
(-[DragAndDropSimulator runFrom:to:additionalItemRequestLocations:]):
(-[DragAndDropSimulator _sendQueuedAdditionalItemRequest]):

Teach the drag and drop test harness to start simulated drag sessions by 
calling into
`BEDragInteractionDelegate` APIs, rather than the legacy UIKit SPI.

Canonical link: https://commits.webkit.org/283132@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to