[webkit-changes] [WebKit/WebKit] b6a6f0: REGRESSION (283132 at main): [visionOS] Unable to sta...

Wenson Hsieh noreply at github.com
Tue Sep 10 23:19:02 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b6a6f030b2287e57e7a3af51ca05fd999771ac95
      https://github.com/WebKit/WebKit/commit/b6a6f030b2287e57e7a3af51ca05fd999771ac95
  Author: Wenson Hsieh <wenson_hsieh at apple.com>
  Date:   2024-09-10 (Tue, 10 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:
  -----------
  REGRESSION (283132 at main): [visionOS] Unable to start drags over web content
https://bugs.webkit.org/show_bug.cgi?id=279482
rdar://135758350

Reviewed by Abrar Rahman Protyasha.

In 283132 at main, I attempted to fix the build after UIKit removed support for the legacy drag
interaction SPI delegate, which was previously used before transitioning to BrowserEngineKit.
However, visionOS and Catalyst both still use this legacy codepath, and are now broken as a result
of that change.

To fix this, we revert the `Source/` changes in 283132 at main, such that we're still compatible with
both legacy and BrowserEngineKit drag interaction codepaths, and additionally make the drag and drop
simulator in `Tools/` robust in both cases where BrowserEngineKit is used, or the legacy codepath is
used.

* Source/WebKit/UIProcess/ios/DragDropInteractionState.h:
(WebKit::DragDropInteractionState::BlockPtr<void):
(WebKit::DragDropInteractionState::BlockPtr<BOOL): Deleted.
* Source/WebKit/UIProcess/ios/DragDropInteractionState.mm:
(WebKit::DragDropInteractionState::prepareForDragSession):
(WebKit::DragDropInteractionState::dragSessionWillRequestAdditionalItem):
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _didHandleDragStartRequest:]):
(-[WKContentView _dragInteraction:itemsForAddingToSession:withTouchAtPoint:completion:]):
(-[WKContentView _dragInteraction:prepareForSession:completion:]):
(-[WKContentView dragInteraction:prepareDragSession:completion:]):
(-[WKContentView dragInteraction:itemsForAddingToSession:forTouchAtPoint:completion:]):

Completely revert all changes to the `Source/` directory in 283132 at main.

* 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 dragInteractionDelegate]):
(-[DragAndDropSimulator runFrom:to:additionalItemRequestLocations:]):
(-[DragAndDropSimulator _sendQueuedAdditionalItemRequest]):

Adjust the codepaths that were modified in 283132 at main, such that we preserve the non-
BrowserEngineKit test infrastructure as well as the new BrowserEngineKit path, depending on whether
`USE(BROWSERENGINEKIT)` is enabled.

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



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list