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

Reply via email to