Expose UIAction identifiers for _WKElementActions
authordino@apple.com <dino@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 27 Jun 2019 01:04:48 +0000 (01:04 +0000)
committerdino@apple.com <dino@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 27 Jun 2019 01:04:48 +0000 (01:04 +0000)
commit122d5168e93c283f9dd1c7b0a5727a52bfc884d4
tree254047522a51d2f364312ade343e7e2b5452cf0f
parent6c0f866a5da47df4a5b24af640044eb0cee4a774
Expose UIAction identifiers for _WKElementActions
https://bugs.webkit.org/show_bug.cgi?id=199246
<rdar://problem/52218950>

Reviewed by Tim Horton.

In order for clients to create a contextual menu, they are given
a set of suggested UIActions, created from _WKElementActions.
By associating identifiers (strings) with the UIActions, clients
can inspect the suggestions and make a decision on whether or
not to include them in the final menu.

* UIProcess/API/Cocoa/_WKElementAction.h: Typedef UIActionIdentifier,
add a method to create a UIAction from an _WKElementAction, and a
helper to map between identifiers and types.

* UIProcess/API/Cocoa/_WKElementAction.mm:
(elementActionTypeToUIActionIdentifier): Helper to convert between the two types.
(uiActionIdentifierToElementActionType): The inverse of above.
(+[_WKElementAction elementActionTypeForUIActionIdentifier:]): A client given
a UIAction object can use this helper method to see what _WKElementActionType it
corresponds to.
(-[_WKElementAction uiActionForElementInfo:]): Used by WKContentViewInteraction to
create a UIAction from this _WKElementAction.

* UIProcess/ios/WKContentViewInteraction.mm:
(uiActionForLegacyPreviewAction): Renamed to make it clear this is a legacy approach.
(menuFromLegacyPreviewOrDefaultActions): Split these functions to separate the legacy
and non-legacy approach.
(-[WKContentView assignLegacyDataForContextMenuInteraction]):
(-[WKContentView continueContextMenuInteraction:]):
(uiActionForPreviewAction): Deleted.
(menuFromPreviewOrDefaults): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@246865 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebKit/ChangeLog
Source/WebKit/UIProcess/API/Cocoa/_WKElementAction.h
Source/WebKit/UIProcess/API/Cocoa/_WKElementAction.mm
Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm