[webkit-changes] [WebKit/WebKit] 9c20db: _WKHitTestResult should expose a frameInfo property
Jeff Miller
noreply at github.com
Mon Nov 6 21:27:25 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 9c20db5a05181f63b0989b73da5faf057f0c2445
https://github.com/WebKit/WebKit/commit/9c20db5a05181f63b0989b73da5faf057f0c2445
Author: Jeff Miller <jeffm at apple.com>
Date: 2023-11-06 (Mon, 06 Nov 2023)
Changed paths:
M Source/WebCore/rendering/HitTestResult.cpp
M Source/WebCore/rendering/HitTestResult.h
M Source/WebKit/Shared/API/Cocoa/_WKHitTestResult.h
M Source/WebKit/Shared/API/Cocoa/_WKHitTestResult.mm
M Source/WebKit/Shared/WebHitTestResultData.cpp
M Source/WebKit/Shared/WebHitTestResultData.h
M Source/WebKit/Shared/WebHitTestResultData.serialization.in
M Source/WebKit/UIProcess/API/APIContextMenuElementInfoMac.h
M Source/WebKit/UIProcess/API/APIHitTestResult.cpp
M Source/WebKit/UIProcess/API/APIHitTestResult.h
M Source/WebKit/UIProcess/API/C/WKPage.cpp
M Source/WebKit/UIProcess/API/Cocoa/WKNavigationAction.mm
M Source/WebKit/UIProcess/API/Cocoa/_WKContextMenuElementInfo.mm
M Source/WebKit/UIProcess/Cocoa/UIDelegate.mm
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/mac/WKImmediateActionController.mm
M Tools/TestWebKitAPI/Tests/mac/ContextMenuTests.mm
Log Message:
-----------
_WKHitTestResult should expose a frameInfo property
https://bugs.webkit.org/show_bug.cgi?id=263729
rdar://116254673
Reviewed by Chris Dumez and Alex Christensen.
Add a frameInfo property to _WKHitTestResult and the plumbing to support it.
* Source/WebCore/rendering/HitTestResult.cpp:
(WebCore::HitTestResult::frame const):
Added, this is the same frame returned by WKBundleHitTestResultGetFrame().
* Source/WebCore/rendering/HitTestResult.h:
* Source/WebKit/Shared/API/Cocoa/_WKHitTestResult.h:
* Source/WebKit/Shared/API/Cocoa/_WKHitTestResult.mm:
(-[_WKHitTestResult frameInfo]):
Added. Note that we need the page in order to create the WKFrameInfo.
* Source/WebKit/Shared/WebHitTestResultData.cpp:
(WebKit::WebHitTestResultData::WebHitTestResultData):
(WebKit::WebHitTestResultData::frameInfoDataFromHitTestResult):
Added. Creates a WebFrame from a LocalFrame and uses it to get the FrameInfoData.
* Source/WebKit/Shared/WebHitTestResultData.h:
* Source/WebKit/Shared/WebHitTestResultData.serialization.in:
* Source/WebKit/UIProcess/API/APIContextMenuElementInfoMac.h:
ContextMenuElementInfoMac now keeps track of the page.
* Source/WebKit/UIProcess/API/APIHitTestResult.cpp:
(API::HitTestResult::create):
API::HitTestResult now keeps track of the page.
* Source/WebKit/UIProcess/API/APIHitTestResult.h:
(API::HitTestResult::page):
(API::HitTestResult::frameInfo const):
(API::HitTestResult::HitTestResult):
* Source/WebKit/UIProcess/API/C/WKPage.cpp:
(WKPageSetPageContextMenuClient):
(WKPageSetPageUIClient):
* Source/WebKit/UIProcess/API/Cocoa/WKNavigationAction.mm:
(-[WKNavigationAction _hitTestResult]):
We require a page to create an API::HitTestResult.
* Source/WebKit/UIProcess/API/Cocoa/_WKContextMenuElementInfo.mm:
(-[_WKContextMenuElementInfo hitTestResult]):
* Source/WebKit/UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::ContextMenuClient::menuFromProposedMenu):
(WebKit::UIDelegate::UIClient::mouseDidMoveOverElement):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::mouseDidMoveOverElement):
* Source/WebKit/UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _webHitTestResult]):
* Tools/TestWebKitAPI/Tests/mac/ContextMenuTests.mm:
(TestWebKitAPI::TEST):'
Added a new HitTestResultWhenClickingInSubframe test. Verifies that right-clicking in an iframe
correctly sets frameInfo in _WKHitTestResult.
Canonical link: https://commits.webkit.org/270308@main
More information about the webkit-changes
mailing list