[webkit-changes] [WebKit/WebKit] 4c3f84: [iOS] Remove the image analysis timeout gesture

Wenson Hsieh noreply at github.com
Mon Nov 6 18:15:15 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4c3f8479961b623e579564628b50243d9d30cbcc
      https://github.com/WebKit/WebKit/commit/4c3f8479961b623e579564628b50243d9d30cbcc
  Author: Wenson Hsieh <wenson_hsieh at apple.com>
  Date:   2023-11-06 (Mon, 06 Nov 2023)

  Changed paths:
    M Source/WebKit/Shared/ios/InteractionInformationRequest.cpp
    M Source/WebKit/Shared/ios/InteractionInformationRequest.h
    M Source/WebKit/Shared/ios/InteractionInformationRequest.serialization.in
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.h
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm

  Log Message:
  -----------
  [iOS] Remove the image analysis timeout gesture
https://bugs.webkit.org/show_bug.cgi?id=264289

Reviewed by Megan Gardner.

Remove the image analysis timeout gesture, along with the `disallowUserAgentShadowContent` position
information request flag (which was only set in this scenario). The timeout gesture currently allows
the user to show an image context menu after selecting Live Text, by continuing to hold down over
the image for 2 seconds after making a selection.

This was originally devised to make it possible to invoke the context menu over an image that is
completely covered by selectable Live Text; however:

1.  This scenario is extremely rare, and doesn't come up in practice; screenshots filled with text
    generally still contain enough space before or after lines, or in between paragraphs that it's
    possible to invoke the image context menu.

2.  The very long, 2 second delay made this fallback mechanism very difficult to discover in the
    first place.

For consistency with Live Text on the rest of the platform (e.g. Photos), and because it'll soon
become untennable to programmatically present context menus outside of the context of UI controls,
let's experiment with removing this fallback mechanism.

* Source/WebKit/Shared/ios/InteractionInformationRequest.cpp:
(WebKit::InteractionInformationRequest::isValidForRequest const):
* Source/WebKit/Shared/ios/InteractionInformationRequest.h:
(WebKit::InteractionInformationRequest::InteractionInformationRequest):
* Source/WebKit/Shared/ios/InteractionInformationRequest.serialization.in:
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setUpInteraction]):
(-[WKContentView cleanUpInteraction]):
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView gestureRecognizer:shouldRequireFailureOfGestureRecognizer:]):
(-[WKContentView gestureRecognizer:shouldBeRequiredToFailByGestureRecognizer:]):
(-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]):
(-[WKContentView _setUpImageAnalysis]):
(-[WKContentView _tearDownImageAnalysis]):
(-[WKContentView _internalContextMenuInteraction:configurationForMenuAtLocation:completion:]):
(-[WKContentView imageAnalysisGestureDidTimeOut:]): Deleted.
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:

Drive-by fix: add `InteractionInformationRequest.serialization.in` to the Xcode project.

* Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::positionInformation):

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




More information about the webkit-changes mailing list