Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e6c85cb486036022a925987ecfc05957ecf60cc8
https://github.com/WebKit/WebKit/commit/e6c85cb486036022a925987ecfc05957ecf60cc8
Author: Phinehas Fuachie <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M Source/WebCore/PAL/pal/spi/cocoa/AVKitSPI.h
M Source/WebKit/UIProcess/Cocoa/_WKCaptionStyleMenuController.h
M Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm
M Source/WebKit/UIProcess/ios/_WKCaptionStyleMenuControllerAVKit.mm
M Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm
M Source/WebKit/UIProcess/mac/WebViewImpl.mm
A Source/WebKit/UIProcess/mac/_WKCaptionStyleMenuControllerAVKitMac.h
A Source/WebKit/UIProcess/mac/_WKCaptionStyleMenuControllerAVKitMac.mm
M Source/WebKit/UIProcess/mac/_WKCaptionStyleMenuControllerMac.mm
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
M Tools/TestWebKitAPI/Tests/WebCore/cocoa/CaptionPreferencesTests.mm
Log Message:
-----------
[macOS] Third-party video apps lack standardized caption customization for
FCC compliance
https://bugs.webkit.org/show_bug.cgi?id=302891
rdar://165153469
Reviewed by Jer Noble.
Implements the same factory pattern used on iOS to prefer AVKit's
AVLegibleMediaOptionsMenuController when available, falling back to custom
AppKit implementation
when not.
- Implement the +menuController factory method in
_WKCaptionStyleMenuControllerMac with runtime detection
- Created _WKCaptionStyleMenuControllerAVKitMac for AVKit integration
- Maintains backward compatibility and consistent cross-platform API
Test: Tools/TestWebKitAPI/Tests/WebCore/cocoa/CaptionPreferencesTests.mm
* Source/WebCore/PAL/pal/spi/cocoa/AVKitSPI.h:
* Source/WebKit/UIProcess/Cocoa/_WKCaptionStyleMenuController.h:
* Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant
showCaptionDisplaySettingsMenu:withOptions:completionHandler:]):
* Source/WebKit/UIProcess/ios/_WKCaptionStyleMenuControllerAVKit.mm:
* Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::captionStyleMenuController):
* Source/WebKit/UIProcess/mac/WebViewImpl.mm:
(WebKit::WebViewImpl::showCaptionDisplaySettings):
* Source/WebKit/UIProcess/mac/_WKCaptionStyleMenuControllerAVKitMac.h: Copied
from Source/WebKit/UIProcess/Cocoa/_WKCaptionStyleMenuController.h.
* Source/WebKit/UIProcess/mac/_WKCaptionStyleMenuControllerAVKitMac.mm: Copied
from Source/WebKit/UIProcess/ios/_WKCaptionStyleMenuControllerAVKit.mm.
(-[_WKCaptionStyleMenuControllerAVKitMac init]):
(-[_WKCaptionStyleMenuControllerAVKitMac rebuildMenu]):
(-[_WKCaptionStyleMenuControllerAVKitMac isAncestorOf:]):
(-[_WKCaptionStyleMenuControllerAVKitMac captionStyleMenu]):
(-[_WKCaptionStyleMenuControllerAVKitMac
legibleMenuController:didRequestCaptionPreviewForProfileID:]):
(-[_WKCaptionStyleMenuControllerAVKitMac findAndDismissPopoverMenus]):
(-[_WKCaptionStyleMenuControllerAVKitMac searchForMenuInteractionsInWindow:]):
(-[_WKCaptionStyleMenuControllerAVKitMac menuWillOpen:]):
(-[_WKCaptionStyleMenuControllerAVKitMac menuDidClose:]):
* Source/WebKit/UIProcess/mac/_WKCaptionStyleMenuControllerMac.mm:
(+[WKCaptionStyleMenuController menuController]):
(-[WKCaptionStyleMenuController init]):
(-[WKCaptionStyleMenuController rebuildMenu]):
(-[WKCaptionStyleMenuController isAncestorOf:]):
(-[WKCaptionStyleMenuController captionStyleMenu]):
(-[WKCaptionStyleMenuController menu]):
(-[WKCaptionStyleMenuController setMenu:]):
(-[WKCaptionStyleMenuController profileMenuItemSelected:]):
(-[WKCaptionStyleMenuController profileMenuItemHighlighted:]):
(-[WKCaptionStyleMenuController menuWillOpen:]):
(-[WKCaptionStyleMenuController menuDidClose:]):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebCore/cocoa/CaptionPreferencesTests.mm:
(TestWebKitAPI::CaptionPreferenceTests::ensureController):
(TestWebKitAPI::TEST_F(CaptionPreferenceTests, ProfileIDSavingAndRestoration)):
(TestWebKitAPI::TEST_F(CaptionPreferenceTests, ContextMenuDismissalSearch)):
(TestWebKitAPI::TEST_F(CaptionPreferenceTests, MenuRebuildingWithAVKit)):
(TestWebKitAPI::TEST_F(CaptionPreferenceTests, MenuAncestryCheck)):
Canonical link: https://commits.webkit.org/303770@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications