Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 5d29c2a7ed7792a2af1fdd9270eb9c86aa89d725
https://github.com/WebKit/WebKit/commit/5d29c2a7ed7792a2af1fdd9270eb9c86aa89d725
Author: Wenson Hsieh <[email protected]>
Date: 2023-09-29 (Fri, 29 Sep 2023)
Changed paths:
M Source/WebKit/SourcesCocoa.txt
A Source/WebKit/UIProcess/ios/CompactContextMenuPresenter.h
A Source/WebKit/UIProcess/ios/CompactContextMenuPresenter.mm
M Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm
M Source/WebKit/UIProcess/mac/WKTextFinderClient.mm
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
Log Message:
-----------
Stop using -_contextMenuInteraction:styleForMenuWithConfiguration: in
WKFileUploadPanel
https://bugs.webkit.org/show_bug.cgi?id=262354
Reviewed by Richard Robinson.
Introduce the `CompactContextMenuPresenter` helper class, which is used to
present or dismiss a
UIContextMenu using compact layout; additionally, deploy this helper class in
`WKFileUploadPanel` to
eliminate uses of both
`-_contextMenuInteraction:styleForMenuWithConfiguration:` and
`_UIContextMenuLayoutCompactMenu`. See below for more details.
* Source/WebKit/Platform/spi/ios/UIKitSPI.h:
* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/UIProcess/ios/CompactContextMenuPresenter.h: Added.
* Source/WebKit/UIProcess/ios/CompactContextMenuPresenter.mm: Added.
Implement a new helper class that encapsulates a hidden and non-interactable
`UIButton`, as well as
its corresponding `UIContextMenuInteraction`. This helper class is constructed
with a context menu
interaction delegate, to which the helper class forwards delegate method calls;
this allows the
delegate to influence the hidden button's compact context menu as if it were
its own, but defers the
compact layout to the button itself.
This allows a `CompactContextMenuPresenter` to (functionally) act as a drop-in
replacement for an
actual `UIContextMenuInteraction`.
(-[WKCompactContextMenuPresenterButton
contextMenuInteraction:configurationForMenuAtLocation:]):
(-[WKCompactContextMenuPresenterButton
contextMenuInteraction:configuration:highlightPreviewForItemWithIdentifier:]):
(-[WKCompactContextMenuPresenterButton
contextMenuInteraction:willDisplayMenuForConfiguration:animator:]):
(-[WKCompactContextMenuPresenterButton
contextMenuInteraction:willEndForConfiguration:animator:]):
Forward delegate calls to the given external context menu delegate if
applicable (see
`WKFileUploadPanel` below).
(WebKit::CompactContextMenuPresenter::CompactContextMenuPresenter):
(WebKit::CompactContextMenuPresenter::~CompactContextMenuPresenter):
(WebKit::CompactContextMenuPresenter::present):
(WebKit::CompactContextMenuPresenter::interaction const):
(WebKit::CompactContextMenuPresenter::dismiss):
* Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:
(-[WKFileUploadPanel dealloc]):
Replace the existing `UIContextMenuInteraction`,
`_documentContextMenuInteraction`, with a
`CompactContextMenuPresenter` instead.
* Source/WebKit/UIProcess/mac/WKTextFinderClient.mm:
Unrelated unified source build fix.
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
Canonical link: https://commits.webkit.org/268655@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes